From 47809dfaf69523045d1a0437c1813ba6bd6382ca Mon Sep 17 00:00:00 2001 From: Patrick Mulligan Date: Wed, 1 Apr 2026 16:17:11 -0400 Subject: [PATCH] Initial scaffold: Vue + Vite + Tailwind CSS + shadcn-vue --- .gitignore | 24 + .vscode/extensions.json | 3 + README.md | 5 + components.json | 21 + index.html | 13 + package.json | 29 + pnpm-lock.yaml | 1077 +++++++++++++++++++++++++++++++++ public/favicon.svg | 1 + public/icons.svg | 24 + src/App.vue | 7 + src/assets/hero.png | Bin 0 -> 44919 bytes src/assets/vite.svg | 1 + src/assets/vue.svg | 1 + src/components/HelloWorld.vue | 93 +++ src/lib/utils.ts | 7 + src/main.ts | 5 + src/style.css | 120 ++++ tsconfig.app.json | 20 + tsconfig.json | 13 + tsconfig.node.json | 26 + vite.config.ts | 13 + 21 files changed, 1503 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 components.json create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/favicon.svg create mode 100644 public/icons.svg create mode 100644 src/App.vue create mode 100644 src/assets/hero.png create mode 100644 src/assets/vite.svg create mode 100644 src/assets/vue.svg create mode 100644 src/components/HelloWorld.vue create mode 100644 src/lib/utils.ts create mode 100644 src/main.ts create mode 100644 src/style.css create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..33895ab --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..0e4c0d3 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "atio-home", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.2.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-vue-next": "^1.0.0", + "tailwind-merge": "^3.5.0", + "tailwindcss": "^4.2.2", + "vue": "^3.5.30" + }, + "devDependencies": { + "@types/node": "^24.12.0", + "@vitejs/plugin-vue": "^6.0.5", + "@vue/tsconfig": "^0.9.0", + "tw-animate-css": "^1.4.0", + "typescript": "~5.9.3", + "vite": "^8.0.1", + "vue-tsc": "^3.2.5" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..f6c1285 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1077 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tailwindcss/vite': + specifier: ^4.2.2 + version: 4.2.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1)) + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-vue-next: + specifier: ^1.0.0 + version: 1.0.0(vue@3.5.31(typescript@5.9.3)) + tailwind-merge: + specifier: ^3.5.0 + version: 3.5.0 + tailwindcss: + specifier: ^4.2.2 + version: 4.2.2 + vue: + specifier: ^3.5.30 + version: 3.5.31(typescript@5.9.3) + devDependencies: + '@types/node': + specifier: ^24.12.0 + version: 24.12.0 + '@vitejs/plugin-vue': + specifier: ^6.0.5 + version: 6.0.5(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1))(vue@3.5.31(typescript@5.9.3)) + '@vue/tsconfig': + specifier: ^0.9.0 + version: 0.9.1(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 + typescript: + specifier: ~5.9.3 + version: 5.9.3 + vite: + specifier: ^8.0.1 + version: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1) + vue-tsc: + specifier: ^3.2.5 + version: 3.2.6(typescript@5.9.3) + +packages: + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@oxc-project/types@0.122.0': + resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + + '@rolldown/binding-android-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-rc.12': + resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': + resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': + resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': + resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': + resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': + resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': + resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': + resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-rc.12': + resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} + + '@rolldown/pluginutils@1.0.0-rc.2': + resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} + + '@tailwindcss/node@4.2.2': + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + + '@tailwindcss/oxide-android-arm64@4.2.2': + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.2.2': + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.2.2': + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.2.2': + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.2.2': + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.2.2': + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/node@24.12.0': + resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==} + + '@vitejs/plugin-vue@6.0.5': + resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vue: ^3.2.25 + + '@volar/language-core@2.4.28': + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} + + '@volar/source-map@2.4.28': + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} + + '@volar/typescript@2.4.28': + resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + + '@vue/compiler-core@3.5.31': + resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} + + '@vue/compiler-dom@3.5.31': + resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} + + '@vue/compiler-sfc@3.5.31': + resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} + + '@vue/compiler-ssr@3.5.31': + resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} + + '@vue/language-core@3.2.6': + resolution: {integrity: sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==} + + '@vue/reactivity@3.5.31': + resolution: {integrity: sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==} + + '@vue/runtime-core@3.5.31': + resolution: {integrity: sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==} + + '@vue/runtime-dom@3.5.31': + resolution: {integrity: sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==} + + '@vue/server-renderer@3.5.31': + resolution: {integrity: sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==} + peerDependencies: + vue: 3.5.31 + + '@vue/shared@3.5.31': + resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} + + '@vue/tsconfig@0.9.1': + resolution: {integrity: sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w==} + peerDependencies: + typescript: '>= 5.8' + vue: ^3.4.0 + peerDependenciesMeta: + typescript: + optional: true + vue: + optional: true + + alien-signals@3.1.2: + resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + engines: {node: '>=10.13.0'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lucide-vue-next@1.0.0: + resolution: {integrity: sha512-V6SPvx1IHTj/UY+FrIYWV5faISsPSb8BnWSFDxAtezWKvWc9ZZ40PDrdu1/Qb5vg4lHWr1hs1BAMGVGm6V1Xdg==} + peerDependencies: + vue: '>=3.0.1' + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + + rolldown@1.0.0-rc.12: + resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tailwind-merge@3.5.0: + resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} + + tailwindcss@4.2.2: + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + engines: {node: '>=6'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + vite@8.0.3: + resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.27.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-tsc@3.2.6: + resolution: {integrity: sha512-gYW/kWI0XrwGzd0PKc7tVB/qpdeAkIZLNZb10/InizkQjHjnT8weZ/vBarZoj4kHKbUTZT/bAVgoOr8x4NsQ/Q==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.31: + resolution: {integrity: sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + +snapshots: + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.29.2': + dependencies: + '@babel/types': 7.29.0 + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@emnapi/core@1.9.1': + dependencies: + '@emnapi/wasi-threads': 1.2.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.9.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': + dependencies: + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@oxc-project/types@0.122.0': {} + + '@rolldown/binding-android-arm64@1.0.0-rc.12': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-rc.12': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': + dependencies: + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': + optional: true + + '@rolldown/pluginutils@1.0.0-rc.12': {} + + '@rolldown/pluginutils@1.0.0-rc.2': {} + + '@tailwindcss/node@4.2.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.20.1 + jiti: 2.6.1 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.2 + + '@tailwindcss/oxide-android-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide@4.2.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-x64': 4.2.2 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + + '@tailwindcss/vite@4.2.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1))': + dependencies: + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + tailwindcss: 4.2.2 + vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1) + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/node@24.12.0': + dependencies: + undici-types: 7.16.0 + + '@vitejs/plugin-vue@6.0.5(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1))(vue@3.5.31(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-rc.2 + vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1) + vue: 3.5.31(typescript@5.9.3) + + '@volar/language-core@2.4.28': + dependencies: + '@volar/source-map': 2.4.28 + + '@volar/source-map@2.4.28': {} + + '@volar/typescript@2.4.28': + dependencies: + '@volar/language-core': 2.4.28 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue/compiler-core@3.5.31': + dependencies: + '@babel/parser': 7.29.2 + '@vue/shared': 3.5.31 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.31': + dependencies: + '@vue/compiler-core': 3.5.31 + '@vue/shared': 3.5.31 + + '@vue/compiler-sfc@3.5.31': + dependencies: + '@babel/parser': 7.29.2 + '@vue/compiler-core': 3.5.31 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.8 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.31': + dependencies: + '@vue/compiler-dom': 3.5.31 + '@vue/shared': 3.5.31 + + '@vue/language-core@3.2.6': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.31 + '@vue/shared': 3.5.31 + alien-signals: 3.1.2 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.4 + + '@vue/reactivity@3.5.31': + dependencies: + '@vue/shared': 3.5.31 + + '@vue/runtime-core@3.5.31': + dependencies: + '@vue/reactivity': 3.5.31 + '@vue/shared': 3.5.31 + + '@vue/runtime-dom@3.5.31': + dependencies: + '@vue/reactivity': 3.5.31 + '@vue/runtime-core': 3.5.31 + '@vue/shared': 3.5.31 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 + vue: 3.5.31(typescript@5.9.3) + + '@vue/shared@3.5.31': {} + + '@vue/tsconfig@0.9.1(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))': + optionalDependencies: + typescript: 5.9.3 + vue: 3.5.31(typescript@5.9.3) + + alien-signals@3.1.2: {} + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + clsx@2.1.1: {} + + csstype@3.2.3: {} + + detect-libc@2.1.2: {} + + enhanced-resolve@5.20.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.2 + + entities@7.0.1: {} + + estree-walker@2.0.2: {} + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + fsevents@2.3.3: + optional: true + + graceful-fs@4.2.11: {} + + jiti@2.6.1: {} + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + lucide-vue-next@1.0.0(vue@3.5.31(typescript@5.9.3)): + dependencies: + vue: 3.5.31(typescript@5.9.3) + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + muggle-string@0.4.1: {} + + nanoid@3.3.11: {} + + path-browserify@1.0.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.4: {} + + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): + dependencies: + '@oxc-project/types': 0.122.0 + '@rolldown/pluginutils': 1.0.0-rc.12 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.12 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.12 + '@rolldown/binding-darwin-x64': 1.0.0-rc.12 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.12 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.12 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.12 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + source-map-js@1.2.1: {} + + tailwind-merge@3.5.0: {} + + tailwindcss@4.2.2: {} + + tapable@2.3.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tslib@2.8.1: + optional: true + + tw-animate-css@1.4.0: {} + + typescript@5.9.3: {} + + undici-types@7.16.0: {} + + vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@24.12.0)(jiti@2.6.1): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.12.0 + fsevents: 2.3.3 + jiti: 2.6.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + vscode-uri@3.1.0: {} + + vue-tsc@3.2.6(typescript@5.9.3): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.2.6 + typescript: 5.9.3 + + vue@3.5.31(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-sfc': 3.5.31 + '@vue/runtime-dom': 3.5.31 + '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@5.9.3)) + '@vue/shared': 3.5.31 + optionalDependencies: + typescript: 5.9.3 diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons.svg b/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..388b05e --- /dev/null +++ b/src/App.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/assets/hero.png b/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..cc51a3d20ad4bc961b596a6adfd686685cd84bb0 GIT binary patch literal 44919 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 KelF{r5}E+d8+Ql* literal 0 HcmV?d00001 diff --git a/src/assets/vite.svg b/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/src/assets/vue.svg b/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..5917e16 --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..c66a9d9 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,7 @@ +import type { ClassValue } from "clsx" +import { clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..2425c0f --- /dev/null +++ b/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..f4c1e9b --- /dev/null +++ b/src/style.css @@ -0,0 +1,120 @@ +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +@theme inline { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..37211ee --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,20 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "types": ["vite/client"], + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..fec8c8e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..8a67f62 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..01de06d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,13 @@ +import path from 'node:path' +import { defineConfig } from 'vite' +import tailwindcss from '@tailwindcss/vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue(), tailwindcss()], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +})