From 34d22b3b17d8199962edcfe88deff98ad3b97f4a Mon Sep 17 00:00:00 2001 From: valere Date: Tue, 4 Nov 2025 22:41:41 +0100 Subject: [PATCH] evilSpins v1 --- .env | 3 - .vscode/settings.json | 3 +- app/app.vue | 24 +- app/components/{box.vue => Box.vue} | 74 +- app/components/Boxes.vue | 79 + app/components/{card.vue => Card.vue} | 136 +- app/components/Deck.vue | 65 + app/components/Loader.vue | 4 +- app/components/Logo.vue | 6 + app/components/Newsletter.vue | 11 + app/components/PlayButton.vue | 45 + app/components/{player.vue => Player.vue} | 24 +- app/components/SearchModal.vue | 98 +- app/components/ToggleFavorite.vue | 41 + app/components/boxes.vue | 48 - app/components/deck.vue | 55 - app/components/deck/BlackJack.vue | 36 + app/components/logo.vue | 8 - app/components/newsletter.vue | 11 - app/error.vue | 4 +- app/layouts/default.vue | 23 +- app/pages/box/[id].vue | 11 +- app/pages/defaultDev.vue | 45 + app/pages/dev.vue | 190 + app/pages/draggable.vue | 130 + app/pages/studio.vue | 24 +- app/pages/track/[id].vue | 2 +- app/plugins/card.store.ts | 14 + app/plugins/shortcut.client.ts | 37 +- app/store/card.ts | 102 + app/store/data.ts | 4 +- app/store/favorites.ts | 136 +- app/store/player.ts | 290 +- app/store/ui.ts | 4 + assets/scss/z-index.scss | 3 + env.sh | 3 + eslint.config.mjs | 30 +- nuxt.config.ts | 11 +- package.json | 26 +- pnpm-lock.yaml | 5931 ++++++++++++++------- public/face-down.svg | 1 + server/api/artists.ts | 147 +- server/api/boxes.ts | 241 +- server/api/tracks/compilation.ts | 2 +- server/api/tracks/playlist.ts | 2 +- tailwind.config.js | 7 + tsconfig.app.json | 29 + types/types.ts | 10 +- utils/cards.ts | 8 +- 49 files changed, 5791 insertions(+), 2447 deletions(-) delete mode 100755 .env rename app/components/{box.vue => Box.vue} (85%) create mode 100644 app/components/Boxes.vue rename app/components/{card.vue => Card.vue} (50%) create mode 100644 app/components/Deck.vue create mode 100644 app/components/Logo.vue create mode 100644 app/components/Newsletter.vue create mode 100644 app/components/PlayButton.vue rename app/components/{player.vue => Player.vue} (52%) create mode 100644 app/components/ToggleFavorite.vue delete mode 100644 app/components/boxes.vue delete mode 100644 app/components/deck.vue create mode 100644 app/components/deck/BlackJack.vue delete mode 100644 app/components/logo.vue delete mode 100644 app/components/newsletter.vue create mode 100644 app/pages/defaultDev.vue create mode 100644 app/pages/dev.vue create mode 100644 app/pages/draggable.vue create mode 100644 app/plugins/card.store.ts create mode 100644 app/store/card.ts create mode 100644 assets/scss/z-index.scss create mode 100755 env.sh create mode 100644 public/face-down.svg create mode 100644 tsconfig.app.json diff --git a/.env b/.env deleted file mode 100755 index feb99fb..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -DOMAIN="evilspins.com" -PORT="7901" -PORT_EXPOSED="3000" diff --git a/.vscode/settings.json b/.vscode/settings.json index ee214f9..ee9373a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,6 @@ "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" - } + }, + "eslint.useFlatConfig": true } diff --git a/app/app.vue b/app/app.vue index e8947b9..a605268 100644 --- a/app/app.vue +++ b/app/app.vue @@ -14,7 +14,6 @@ import { watch, computed } from 'vue' const ui = useUiStore() const player = usePlayerStore() -const { $isMobile } = useNuxtApp() useHead({ bodyAttrs: { class: 'bg-slate-100' @@ -45,7 +44,7 @@ const selectedBoxId = computed(() => ui.getSelectedBox?.id) watch( () => selectedBoxId.value, (id) => { - if (process.client) { + if (import.meta.client) { if (!id) { // Back to root path without navigation to preserve UI state/animations if (location.pathname.startsWith('/box/')) { @@ -53,7 +52,9 @@ watch( } return } - const currentId = location.pathname.startsWith('/box/') ? location.pathname.split('/').pop() : null + const currentId = location.pathname.startsWith('/box/') + ? location.pathname.split('/').pop() + : null if (currentId === id) return requestAnimationFrame(() => { history.replaceState(null, '', `/box/${id}`) @@ -67,14 +68,23 @@ watch( \ No newline at end of file + +* { + user-select: none; +} + +img { + user-drag: none; + user-select: none; +} + diff --git a/app/components/box.vue b/app/components/Box.vue similarity index 85% rename from app/components/box.vue rename to app/components/Box.vue index 8801cc9..d8b9c9c 100644 --- a/app/components/box.vue +++ b/app/components/Box.vue @@ -2,19 +2,19 @@
- +
  • - - {{ track.order }}. - + {{ track.order }}.

    {{ track.title }} -
    {{ track.artist.name }} + +
    + {{ track.artist.name }}

  • @@ -22,15 +22,13 @@
    @@ -43,12 +41,14 @@ diff --git a/app/components/card.vue b/app/components/Card.vue similarity index 50% rename from app/components/card.vue rename to app/components/Card.vue index 8fa21e3..da545cc 100644 --- a/app/components/card.vue +++ b/app/components/Card.vue @@ -1,12 +1,24 @@ \ No newline at end of file + diff --git a/app/components/Deck.vue b/app/components/Deck.vue new file mode 100644 index 0000000..e8225df --- /dev/null +++ b/app/components/Deck.vue @@ -0,0 +1,65 @@ + + + diff --git a/app/components/Loader.vue b/app/components/Loader.vue index 96c67f2..515b927 100644 --- a/app/components/Loader.vue +++ b/app/components/Loader.vue @@ -1,8 +1,8 @@ diff --git a/app/components/Logo.vue b/app/components/Logo.vue new file mode 100644 index 0000000..7be3b77 --- /dev/null +++ b/app/components/Logo.vue @@ -0,0 +1,6 @@ + diff --git a/app/components/Newsletter.vue b/app/components/Newsletter.vue new file mode 100644 index 0000000..711b259 --- /dev/null +++ b/app/components/Newsletter.vue @@ -0,0 +1,11 @@ + diff --git a/app/components/PlayButton.vue b/app/components/PlayButton.vue new file mode 100644 index 0000000..6305d3d --- /dev/null +++ b/app/components/PlayButton.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/app/components/player.vue b/app/components/Player.vue similarity index 52% rename from app/components/player.vue rename to app/components/Player.vue index 8e0f3d7..d24460f 100644 --- a/app/components/player.vue +++ b/app/components/Player.vue @@ -1,9 +1,16 @@