diff --git a/README.md b/README.md index 203e1ef..b923723 100644 --- a/README.md +++ b/README.md @@ -80,3 +80,7 @@ cd haex-vault pnpm i pnpm tauri dev ``` + +``` +shadcn components: pnpm dlx shadcn-vue@latest add alert-dialog button card dialog dropdown-menu input label menubar navigation-menu popover resizable sheet sonner switch tabs tooltip +``` diff --git a/nuxt.config.ts b/nuxt.config.ts index 89e2bd1..a9008e0 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,7 +1,14 @@ import tailwindcss from '@tailwindcss/vite' // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ - extends: ['github:haexhub/haex-base-ui', { install: true }], + modules: [ + 'nuxt-zod-i18n', + '@nuxtjs/i18n', + '@pinia/nuxt', + '@vueuse/nuxt', + '@nuxt/icon', + 'nuxt-snackbar', + ], compatibilityDate: '2024-11-01', @@ -37,26 +44,33 @@ export default defineNuxtConfig({ ], }, - /* i18n: { - strategy: "prefix_and_default", - defaultLocale: "de", - vueI18n: "~/i18n/i18n.config.ts", + i18n: { + strategy: 'prefix_and_default', + defaultLocale: 'de', + vueI18n: '~/i18n/i18n.config.ts', locales: [ - { code: "de", language: "de-DE", isCatchallLocale: true }, - { code: "en", language: "en-EN" }, + { code: 'de', language: 'de-DE', isCatchallLocale: true }, + { code: 'en', language: 'en-EN' }, ], detectBrowserLanguage: { useCookie: true, - cookieKey: "i18n_redirected", - redirectOn: "root", // recommended + cookieKey: 'i18n_redirected', + redirectOn: 'root', // recommended }, - types: "composition", + types: 'composition', bundle: { optimizeTranslationDirective: false, }, - }, */ + }, + + zodI18n: { + localeCodesMapping: { + 'en-GB': 'en', + 'de-DE': 'de', + }, + }, runtimeConfig: { public: { @@ -88,4 +102,4 @@ export default defineNuxtConfig({ strictPort: true, }, }, -}) +}) \ No newline at end of file diff --git a/package.json b/package.json index 3e6ca71..4303afd 100644 --- a/package.json +++ b/package.json @@ -30,26 +30,19 @@ "@tauri-apps/plugin-store": "^2.2.0", "@vueuse/core": "^13.2.0", "@vueuse/nuxt": "^13.2.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", "drizzle-orm": "^0.43.1", - "lucide-vue-next": "^0.511.0", + "flyonui": "^2.2.0", "nuxt": "^3.17.3", + "nuxt-snackbar": "1.3.0", "nuxt-zod-i18n": "^1.11.5", - "reka-ui": "^2.2.1", - "shadcn-nuxt": "^2.1.0", - "tailwind-merge": "^3.3.0", "tailwindcss": "^4.1.7", - "tw-animate-css": "^1.3.0", "vue": "^3.5.14", "vue-router": "^4.5.1", - "vue-sonner": "^2.0.0", "zod": "^3.25.20" }, "devDependencies": { "@iconify/json": "^2.2.340", "@iconify/tailwind4": "^1.0.6", - "@nuxtjs/color-mode": "^3.5.2", "@tauri-apps/cli": "^2.5.0", "drizzle-kit": "^0.31.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98c8571..eb86e96 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,45 +53,30 @@ importers: '@vueuse/nuxt': specifier: ^13.2.0 version: 13.2.0(magicast@0.3.5)(nuxt@3.17.4(@libsql/client@0.15.7)(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2(@libsql/client@0.15.7)(drizzle-orm@0.43.1(@libsql/client@0.15.7)))(drizzle-orm@0.43.1(@libsql/client@0.15.7))(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3)) - class-variance-authority: - specifier: ^0.7.1 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 drizzle-orm: specifier: ^0.43.1 version: 0.43.1(@libsql/client@0.15.7) - lucide-vue-next: - specifier: ^0.511.0 - version: 0.511.0(vue@3.5.14(typescript@5.8.3)) + flyonui: + specifier: ^2.2.0 + version: 2.2.0 nuxt: specifier: ^3.17.3 version: 3.17.4(@libsql/client@0.15.7)(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2(@libsql/client@0.15.7)(drizzle-orm@0.43.1(@libsql/client@0.15.7)))(drizzle-orm@0.43.1(@libsql/client@0.15.7))(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0) + nuxt-snackbar: + specifier: 1.3.0 + version: 1.3.0(magicast@0.3.5)(vue@3.5.14(typescript@5.8.3)) nuxt-zod-i18n: specifier: ^1.11.5 version: 1.11.5(magicast@0.3.5)(typescript@5.8.3) - reka-ui: - specifier: ^2.2.1 - version: 2.2.1(typescript@5.8.3)(vue@3.5.14(typescript@5.8.3)) - tailwind-merge: - specifier: ^3.3.0 - version: 3.3.0 tailwindcss: specifier: ^4.1.7 version: 4.1.7 - tw-animate-css: - specifier: ^1.3.0 - version: 1.3.0 vue: specifier: ^3.5.14 version: 3.5.14(typescript@5.8.3) vue-router: specifier: ^4.5.1 version: 4.5.1(vue@3.5.14(typescript@5.8.3)) - vue-sonner: - specifier: ^2.0.0 - version: 2.0.0 zod: specifier: ^3.25.20 version: 3.25.20 @@ -102,9 +87,6 @@ importers: '@iconify/tailwind4': specifier: ^1.0.6 version: 1.0.6(tailwindcss@4.1.7) - '@nuxtjs/color-mode': - specifier: ^3.5.2 - version: 3.5.2(magicast@0.3.5) '@tauri-apps/cli': specifier: ^2.5.0 version: 2.5.0 @@ -604,9 +586,6 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - '@floating-ui/vue@1.1.6': - resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -649,12 +628,6 @@ packages: peerDependencies: vue: '>=3' - '@internationalized/date@3.8.1': - resolution: {integrity: sha512-PgVE6B6eIZtzf9Gu5HvJxRK3ufUFz9DhspELuhW/N0GuMGMTLvPQNRkHP2hTuP9lblOk+f+1xi96sPiPXANXAA==} - - '@internationalized/number@3.6.2': - resolution: {integrity: sha512-E5QTOlMg9wo5OrKdHD6edo1JJlIoOsylh0+mbf0evi1tHJwMZfJSaBpGtnJV9N7w3jeiioox9EG/EWRWPh82vg==} - '@intlify/bundle-utils@10.0.1': resolution: {integrity: sha512-WkaXfSevtpgtUR4t8K2M6lbR7g03mtOxFeh+vXp5KExvPqS12ppaRj1QxzwRuRI5VUto54A22BjKoBMLyHILWQ==} engines: {node: '>= 18'} @@ -938,9 +911,6 @@ packages: peerDependencies: vue: ^3.3.4 - '@nuxtjs/color-mode@3.5.2': - resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} - '@nuxtjs/i18n@9.5.4': resolution: {integrity: sha512-HSCC6bLvkI74AOJ/Hsa8+52uy92Bzpu/lVOKYJZIR/HV4TtV48fgKLPRlL8RmCXx/AmKBtrPsLfhAAIj9RBAKQ==} engines: {node: '>=18.12.0'} @@ -1406,9 +1376,6 @@ packages: '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tailwindcss/node@4.1.7': resolution: {integrity: sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==} @@ -1499,14 +1466,6 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 - '@tanstack/virtual-core@3.13.9': - resolution: {integrity: sha512-3jztt0jpaoJO5TARe2WIHC1UQC3VMLAFUW5mmMo0yrkwtDB2AQP0+sh10BVUpWrnvHjSLvzFizydtEGLCJKFoQ==} - - '@tanstack/vue-virtual@3.13.9': - resolution: {integrity: sha512-HsvHaOo+o52cVcPhomKDZ3CMpTF/B2qg+BhPHIQJwzn4VIqDyt/rRVqtIomG6jE83IFsE2vlr6cmx7h3dHA0SA==} - peerDependencies: - vue: ^2.7.0 || ^3.0.0 - '@tauri-apps/api@2.5.0': resolution: {integrity: sha512-Ldux4ip+HGAcPUmuLT8EIkk6yafl5vK0P0c0byzAKzxJh7vxelVtdPONjfgTm96PbN24yjZNESY8CKo8qniluA==} @@ -1795,17 +1754,11 @@ packages: '@vue/shared@3.5.14': resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} - '@vueuse/core@12.8.2': - resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} - '@vueuse/core@13.2.0': resolution: {integrity: sha512-n5TZoIAxbWAQ3PqdVPDzLgIRQOujFfMlatdI+f7ditSmoEeNpPBvp7h2zamzikCmrhFIePAwdEQB6ENccHr7Rg==} peerDependencies: vue: ^3.5.0 - '@vueuse/metadata@12.8.2': - resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} - '@vueuse/metadata@13.2.0': resolution: {integrity: sha512-kPpzuQCU0+D8DZCzK0iPpIcXI+6ufWSgwnjJ6//GNpEn+SHViaCtR+XurzORChSgvpHO9YC8gGM97Y1kB+UabA==} @@ -1815,9 +1768,6 @@ packages: nuxt: ^3.0.0 || ^4.0.0-0 vue: ^3.5.0 - '@vueuse/shared@12.8.2': - resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} - '@vueuse/shared@13.2.0': resolution: {integrity: sha512-vx9ZPDF5HcU9up3Jgt3G62dMUfZEdk6tLyBAHYAG4F4n73vpaA7J5hdncDI/lS9Vm7GA/FPlbOmh9TrDZROTpg==} peerDependencies: @@ -1938,10 +1888,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -2086,9 +2032,6 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - clipboardy@4.0.0: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} @@ -2097,10 +2040,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - cluster-key-slot@1.1.2: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} @@ -2804,6 +2743,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flyonui@2.2.0: + resolution: {integrity: sha512-Gncal89zwklAYpqV8IjSgN/1edsXnbTlxhfKRcYa2WgeY8jBSuoNBQWqdL1DSLuXarxYluimwIv34YaRKNuSzg==} + fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -3262,7 +3204,6 @@ packages: libsql@0.5.11: resolution: {integrity: sha512-P2xY1nL2Jl7oM75LcguAEYqouVcevWhLWT8RU/p9ldaqQx5s/chF9t5ZFXPWP0x9myQQ4SguRqPO+FqdnCzKQg==} - cpu: [x64, arm64, wasm32, arm] os: [darwin, linux, win32] lightningcss-darwin-arm64@1.30.1: @@ -3395,11 +3336,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-vue-next@0.511.0: - resolution: {integrity: sha512-VSv0F3pHniGN7JMMzDcLFNMQbl8381+shNnHwV8hi+El7xl2ZL8qdNuzPoiBViKk8mTKK5K3ZDfmE/wEcTZVIQ==} - peerDependencies: - vue: '>=3.0.1' - luxon@3.6.1: resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} engines: {node: '>=12'} @@ -3652,6 +3588,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nuxt-snackbar@1.3.0: + resolution: {integrity: sha512-wfUR0BdvRUj6C4qdDmBPHtkCxH3wwfPI5dOkCZM4g6lXB7mssHji56We99Pj1ue8wXWBMYgcrF7pg/jJ6GGVIQ==} + nuxt-zod-i18n@1.11.5: resolution: {integrity: sha512-0XR7DLLR7JGSKxhxdOOFduLvjfPIeNfXpaWxQHBnwPg/zQjL2VuhlBuq1ltZioRw4f1Wfpy5+MwPyjK3PrmY0g==} @@ -4142,11 +4081,6 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} - reka-ui@2.2.1: - resolution: {integrity: sha512-oLHiyBn6gTIQGnTnv8G5LQuFp9j8HuUNl0qdnW3XPhFb/07hrxzFpjo2kt/jxOZive+n/XWDbOjSj2h9Hih3qA==} - peerDependencies: - vue: '>= 3.2.0' - remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} @@ -4429,9 +4363,6 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - tailwind-merge@3.3.0: - resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} - tailwindcss@4.1.7: resolution: {integrity: sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==} @@ -4465,6 +4396,9 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -4529,9 +4463,6 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tw-animate-css@1.3.0: - resolution: {integrity: sha512-jrJ0XenzS9KVuDThJDvnhalbl4IYiMQ/XvpA0a2FL8KmlK+6CSMviO7ROY/I7z1NnUs5NnDhlM6fXmF40xPxzw==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -4811,17 +4742,6 @@ packages: vue-bundle-renderer@2.1.1: resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -4836,15 +4756,22 @@ packages: peerDependencies: vue: ^3.2.0 - vue-sonner@2.0.0: - resolution: {integrity: sha512-nvlqGGWvxEv9UnKcZxsGdKpHrODEdv3CXAJF3er+1pLC03caJt2+v9HuWtRqlBQwUr1SFttsYuwVbpbEl05n4A==} - vue-tsc@2.2.10: resolution: {integrity: sha512-jWZ1xSaNbabEV3whpIDMbjVSVawjAyW+x1n3JeGQo7S0uv2n9F/JMgWW90tGWNFRKya4YwKMZgCtr0vRAM7DeQ==} hasBin: true peerDependencies: typescript: '>=5.0.0' + vue3-icon@3.0.3: + resolution: {integrity: sha512-B9/f/nwbVBUsBQVSNp7nFIsD/uM/M9MbK38FQFXs8IMSClrEG0gXWtyViQN28na25zpsoKH8Blrzcn/LbUV76Q==} + peerDependencies: + vue: ^3.0.0 + + vue3-snackbar@2.4.0: + resolution: {integrity: sha512-XDdaWf+9cjLICJyUNThqh4IRHWPzIqNvaEWS0zW5bxWHXDUCkXRhP7OjZky7EV7AfZa/6UNE82By4rpBaKohWg==} + peerDependencies: + vue: ^3.0.0 + vue@3.5.14: resolution: {integrity: sha512-LbOm50/vZFG6Mhy6KscQYXZMQ0LMCC/y40HDJPPvGFQ+i/lUH+PJHR6C3assgOQiXdl6tAfsXHbXYVBZZu65ew==} peerDependencies: @@ -5401,15 +5328,6 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@floating-ui/vue@1.1.6(vue@3.5.14(typescript@5.8.3))': - dependencies: - '@floating-ui/dom': 1.7.0 - '@floating-ui/utils': 0.2.9 - vue-demi: 0.14.10(vue@3.5.14(typescript@5.8.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -5460,14 +5378,6 @@ snapshots: '@iconify/types': 2.0.0 vue: 3.5.14(typescript@5.8.3) - '@internationalized/date@3.8.1': - dependencies: - '@swc/helpers': 0.5.17 - - '@internationalized/number@3.6.2': - dependencies: - '@swc/helpers': 0.5.17 - '@intlify/bundle-utils@10.0.1(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))': dependencies: '@intlify/message-compiler': 11.1.3 @@ -6025,15 +5935,6 @@ snapshots: - vue-tsc - yaml - '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': - dependencies: - '@nuxt/kit': 3.17.4(magicast@0.3.5) - pathe: 1.1.2 - pkg-types: 1.3.1 - semver: 7.7.2 - transitivePeerDependencies: - - magicast - '@nuxtjs/i18n@9.5.4(@vue/compiler-dom@3.5.14)(eslint@9.27.0(jiti@2.4.2))(magicast@0.3.5)(rollup@4.41.0)(vue@3.5.14(typescript@5.8.3))': dependencies: '@intlify/h3': 0.6.1 @@ -6384,10 +6285,6 @@ snapshots: '@speed-highlight/core@1.2.7': {} - '@swc/helpers@0.5.17': - dependencies: - tslib: 2.8.1 - '@tailwindcss/node@4.1.7': dependencies: '@ampproject/remapping': 2.3.0 @@ -6459,13 +6356,6 @@ snapshots: tailwindcss: 4.1.7 vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0) - '@tanstack/virtual-core@3.13.9': {} - - '@tanstack/vue-virtual@3.13.9(vue@3.5.14(typescript@5.8.3))': - dependencies: - '@tanstack/virtual-core': 3.13.9 - vue: 3.5.14(typescript@5.8.3) - '@tauri-apps/api@2.5.0': {} '@tauri-apps/cli-darwin-arm64@2.5.0': @@ -6842,15 +6732,6 @@ snapshots: '@vue/shared@3.5.14': {} - '@vueuse/core@12.8.2(typescript@5.8.3)': - dependencies: - '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 12.8.2 - '@vueuse/shared': 12.8.2(typescript@5.8.3) - vue: 3.5.14(typescript@5.8.3) - transitivePeerDependencies: - - typescript - '@vueuse/core@13.2.0(vue@3.5.14(typescript@5.8.3))': dependencies: '@types/web-bluetooth': 0.0.21 @@ -6858,8 +6739,6 @@ snapshots: '@vueuse/shared': 13.2.0(vue@3.5.14(typescript@5.8.3)) vue: 3.5.14(typescript@5.8.3) - '@vueuse/metadata@12.8.2': {} - '@vueuse/metadata@13.2.0': {} '@vueuse/nuxt@13.2.0(magicast@0.3.5)(nuxt@3.17.4(@libsql/client@0.15.7)(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2(@libsql/client@0.15.7)(drizzle-orm@0.43.1(@libsql/client@0.15.7)))(drizzle-orm@0.43.1(@libsql/client@0.15.7))(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.14(typescript@5.8.3))': @@ -6873,12 +6752,6 @@ snapshots: transitivePeerDependencies: - magicast - '@vueuse/shared@12.8.2(typescript@5.8.3)': - dependencies: - vue: 3.5.14(typescript@5.8.3) - transitivePeerDependencies: - - typescript - '@vueuse/shared@13.2.0(vue@3.5.14(typescript@5.8.3))': dependencies: vue: 3.5.14(typescript@5.8.3) @@ -7028,10 +6901,6 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.6: - dependencies: - tslib: 2.8.1 - array-union@2.1.0: {} ast-kit@1.4.3: @@ -7184,10 +7053,6 @@ snapshots: dependencies: consola: 3.4.2 - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - clipboardy@4.0.0: dependencies: execa: 8.0.1 @@ -7200,8 +7065,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} color-convert@1.9.3: @@ -7865,6 +7728,10 @@ snapshots: flatted@3.3.3: {} + flyonui@2.2.0: + dependencies: + '@floating-ui/dom': 1.7.0 + fn.name@1.1.0: {} foreground-child@3.3.1: @@ -8438,10 +8305,6 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-vue-next@0.511.0(vue@3.5.14(typescript@5.8.3)): - dependencies: - vue: 3.5.14(typescript@5.8.3) - luxon@3.6.1: {} magic-string-ast@0.7.1: @@ -8741,6 +8604,15 @@ snapshots: dependencies: boolbase: 1.0.0 + nuxt-snackbar@1.3.0(magicast@0.3.5)(vue@3.5.14(typescript@5.8.3)): + dependencies: + '@nuxt/kit': 3.17.4(magicast@0.3.5) + defu: 6.1.4 + vue3-snackbar: 2.4.0(vue@3.5.14(typescript@5.8.3)) + transitivePeerDependencies: + - magicast + - vue + nuxt-zod-i18n@1.11.5(magicast@0.3.5)(typescript@5.8.3): dependencies: '@intlify/shared': 11.1.3 @@ -9363,23 +9235,6 @@ snapshots: dependencies: redis-errors: 1.2.0 - reka-ui@2.2.1(typescript@5.8.3)(vue@3.5.14(typescript@5.8.3)): - dependencies: - '@floating-ui/dom': 1.7.0 - '@floating-ui/vue': 1.1.6(vue@3.5.14(typescript@5.8.3)) - '@internationalized/date': 3.8.1 - '@internationalized/number': 3.6.2 - '@tanstack/vue-virtual': 3.13.9(vue@3.5.14(typescript@5.8.3)) - '@vueuse/core': 12.8.2(typescript@5.8.3) - '@vueuse/shared': 12.8.2(typescript@5.8.3) - aria-hidden: 1.2.6 - defu: 6.1.4 - ohash: 2.0.11 - vue: 3.5.14(typescript@5.8.3) - transitivePeerDependencies: - - '@vue/composition-api' - - typescript - remove-trailing-separator@1.1.0: {} require-directory@2.1.1: {} @@ -9678,8 +9533,6 @@ snapshots: system-architecture@0.1.0: {} - tailwind-merge@3.3.0: {} - tailwindcss@4.1.7: {} tapable@2.2.2: {} @@ -9729,6 +9582,8 @@ snapshots: text-hex@1.0.0: {} + tiny-emitter@2.1.0: {} + tiny-invariant@1.3.3: {} tinyexec@0.3.2: {} @@ -9775,8 +9630,6 @@ snapshots: tslib: 1.14.1 typescript: 5.8.3 - tw-animate-css@1.3.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -10035,10 +9888,6 @@ snapshots: dependencies: ufo: 1.6.1 - vue-demi@0.14.10(vue@3.5.14(typescript@5.8.3)): - dependencies: - vue: 3.5.14(typescript@5.8.3) - vue-devtools-stub@0.1.0: {} vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)): @@ -10053,14 +9902,22 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.14(typescript@5.8.3) - vue-sonner@2.0.0: {} - vue-tsc@2.2.10(typescript@5.8.3): dependencies: '@volar/typescript': 2.4.14 '@vue/language-core': 2.2.10(typescript@5.8.3) typescript: 5.8.3 + vue3-icon@3.0.3(vue@3.5.14(typescript@5.8.3)): + dependencies: + vue: 3.5.14(typescript@5.8.3) + + vue3-snackbar@2.4.0(vue@3.5.14(typescript@5.8.3)): + dependencies: + tiny-emitter: 2.1.0 + vue: 3.5.14(typescript@5.8.3) + vue3-icon: 3.0.3(vue@3.5.14(typescript@5.8.3)) + vue@3.5.14(typescript@5.8.3): dependencies: '@vue/compiler-dom': 3.5.14 diff --git a/src/app.vue b/src/app.vue index 64f424b..2c27160 100644 --- a/src/app.vue +++ b/src/app.vue @@ -1,16 +1,15 @@