diff --git a/.gitignore b/.gitignore index 1139e42..6ad341f 100644 --- a/.gitignore +++ b/.gitignore @@ -172,4 +172,3 @@ dist vite.config.*.timestamp-*.mjs *.timestamp-* -kv-admin \ No newline at end of file diff --git a/package.json b/package.json index 01e1b34..9a2b20a 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "Classworks", + "name": "classworks", "private": true, "type": "module", "version": "0.0.0", @@ -14,17 +14,21 @@ "@examaware-cs/player": "^1.0.2", "@mdi/font": "7.4.47", "@microsoft/clarity": "^1.0.0", + "@vueuse/core": "^13.9.0", "axios": "^1.11.0", "idb": "^8.0.3", "js-base64": "^3.7.8", "js-yaml": "^4.1.0", + "lucide-vue-next": "^0.545.0", + "marked": "^16.4.0", "pinyin-pro": "^3.27.0", "ratelimit-header-parser": "^0.1.0", "roboto-fontface": "*", - "tdesign-vue-next": "^1.17.1", + "socket.io-client": "^4.8.1", "typewriter-effect": "^2.21.0", "uuid": "^9.0.1", "vue": "^3.5.20", + "vue-sonner": "^2.0.9", "vuetify": "^3.9.6" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47676e0..44074de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: '@microsoft/clarity': specifier: ^1.0.0 version: 1.0.0 + '@vueuse/core': + specifier: ^13.9.0 + version: 13.9.0(vue@3.5.20) axios: specifier: ^1.11.0 version: 1.11.0 @@ -32,6 +35,12 @@ importers: js-yaml: specifier: ^4.1.0 version: 4.1.0 + lucide-vue-next: + specifier: ^0.545.0 + version: 0.545.0(vue@3.5.20) + marked: + specifier: ^16.4.0 + version: 16.4.0 pinyin-pro: specifier: ^3.27.0 version: 3.27.0 @@ -41,9 +50,9 @@ importers: roboto-fontface: specifier: '*' version: 0.10.0 - tdesign-vue-next: - specifier: ^1.17.1 - version: 1.17.1(vue@3.5.20) + socket.io-client: + specifier: ^4.8.1 + version: 4.8.1 typewriter-effect: specifier: ^2.21.0 version: 2.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -53,6 +62,9 @@ importers: vue: specifier: ^3.5.20 version: 3.5.20 + vue-sonner: + specifier: ^2.0.9 + version: 2.0.9 vuetify: specifier: ^3.9.6 version: 3.9.6(vite-plugin-vuetify@2.1.2)(vue@3.5.20) @@ -65,25 +77,25 @@ importers: version: 1.0.0 '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20) + version: 5.2.3(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20) eslint: specifier: ^9.14.0 - version: 9.15.0(jiti@2.4.2) + version: 9.15.0(jiti@2.6.1) eslint-plugin-import: specifier: ^2.29.1 - version: 2.31.0(eslint@9.15.0(jiti@2.4.2)) + version: 2.31.0(eslint@9.15.0(jiti@2.6.1)) eslint-plugin-n: specifier: ^16.6.2 - version: 16.6.2(eslint@9.15.0(jiti@2.4.2)) + version: 16.6.2(eslint@9.15.0(jiti@2.6.1)) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@9.15.0(jiti@2.4.2)) + version: 11.1.0(eslint@9.15.0(jiti@2.6.1)) eslint-plugin-promise: specifier: ^6.4.0 - version: 6.6.0(eslint@9.15.0(jiti@2.4.2)) + version: 6.6.0(eslint@9.15.0(jiti@2.6.1)) eslint-plugin-vue: specifier: ^9.30.0 - version: 9.31.0(eslint@9.15.0(jiti@2.4.2)) + version: 9.31.0(eslint@9.15.0(jiti@2.6.1)) pinia: specifier: ^3.0.3 version: 3.0.3(vue@3.5.20) @@ -95,10 +107,10 @@ importers: version: 1.86.3 unplugin-auto-import: specifier: ^19.1.2 - version: 19.1.2 + version: 19.1.2(@vueuse/core@13.9.0(vue@3.5.20)) unplugin-fonts: specifier: ^1.3.1 - version: 1.3.1(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0)) + version: 1.3.1(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0)) unplugin-vue-components: specifier: ^28.4.1 version: 28.4.1(@babel/parser@7.28.3)(vue@3.5.20) @@ -107,16 +119,16 @@ importers: version: 0.12.0(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20) vite: specifier: ^5.4.17 - version: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + version: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) vite-plugin-pwa: specifier: ^1.0.3 - version: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0) vite-plugin-vue-layouts: specifier: ^0.11.0 - version: 0.11.0(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20) + version: 0.11.0(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20) vite-plugin-vuetify: specifier: ^2.1.2 - version: 2.1.2(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6) + version: 2.1.2(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6) vue-router: specifier: ^4.5.1 version: 4.5.1(vue@3.5.20) @@ -212,18 +224,10 @@ packages: resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} @@ -240,16 +244,6 @@ packages: resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.3': resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} engines: {node: '>=6.0.0'} @@ -632,14 +626,6 @@ packages: resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} @@ -977,6 +963,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1239,6 +1228,9 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -1278,6 +1270,9 @@ packages: '@types/validator@13.15.3': resolution: {integrity: sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q==} + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@vite-pwa/assets-generator@1.0.0': resolution: {integrity: sha512-tWRF/tsqGkND5+dDVnJz7DzQkIRjtTRRYvA3y6l4FwTwK47OK72p1X7ResSz6T7PimIZMuFd+arsB8NRIG+Sww==} engines: {node: '>=16.14.0'} @@ -1299,27 +1294,15 @@ packages: vue: optional: true - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-core@3.5.20': resolution: {integrity: sha512-8TWXUyiqFd3GmP4JTX9hbiTFRwYHgVL/vr3cqhr4YQ258+9FADwvj7golk2sWNGHR67QgmCZ8gz80nQcMokhwg==} - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-dom@3.5.20': resolution: {integrity: sha512-whB44M59XKjqUEYOMPYU0ijUV0G+4fdrHVKDe32abNdX/kJe1NUEMqsi4cwzXa9kyM9w5S8WqFsrfo1ogtBZGQ==} - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - '@vue/compiler-sfc@3.5.20': resolution: {integrity: sha512-SFcxapQc0/feWiSBfkGsa1v4DOrnMAQSYuvDMpEaxbpH5dKbnEM5KobSNSgU+1MbHCl+9ftm7oQWxvwDB6iBfw==} - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - '@vue/compiler-ssr@3.5.20': resolution: {integrity: sha512-RSl5XAMc5YFUXpDQi+UQDdVjH9FnEpLDHIALg5J0ITHxkEzJ8uQLlo7CIbjPYqmZtt6w0TsIPbo1izYXwDG7JA==} @@ -1349,9 +1332,6 @@ packages: peerDependencies: vue: 3.5.20 - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vue/shared@3.5.20': resolution: {integrity: sha512-SoRGP596KU/ig6TfgkCMbXkr4YJ91n/QSdMuqeP5r3hVIYA3CPHUBCc7Skak0EAKV+5lL4KyIh61VA/pK1CIAA==} @@ -1361,6 +1341,19 @@ packages: vue: ^3.0.0 vuetify: ^3.0.0 + '@vueuse/core@13.9.0': + resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} + peerDependencies: + vue: ^3.5.0 + + '@vueuse/metadata@13.9.0': + resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==} + + '@vueuse/shared@13.9.0': + resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} + peerDependencies: + vue: ^3.5.0 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1425,12 +1418,8 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - ast-kit@1.3.1: - resolution: {integrity: sha512-3bIRV4s/cNAee2rKjuvYdoG+0CMqtOIgCvWrJL6zG8R0fDyMwYzStspX5JqXPbdMzM+qxHZ6g2rMHKhr3HkPlQ==} - engines: {node: '>=16.14.0'} - - ast-kit@1.4.2: - resolution: {integrity: sha512-lvGehj1XsrIoQrD5CfPduIzQbcpuX2EPjlk/vDMDQF9U9HLRB6WwMTdighj5n52hdhh8xg9VgPTU7Q25MuJ/rw==} + ast-kit@1.4.3: + resolution: {integrity: sha512-MdJqjpodkS5J149zN0Po+HPshkTdUyrvF7CKTafUgv69vBSPtncrj+3IiUgqdd7ElIEkbeXCsEouBUwLrw9Ilg==} engines: {node: '>=16.14.0'} ast-walker-scope@0.6.2: @@ -1715,6 +1704,10 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -1731,6 +1724,13 @@ packages: electron-to-chromium@1.5.132: resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==} + engine.io-client@6.6.3: + resolution: {integrity: sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2379,6 +2379,10 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + js-base64@3.7.8: resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} @@ -2444,6 +2448,70 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} + local-pkg@1.1.1: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} @@ -2474,6 +2542,11 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-vue-next@0.545.0: + resolution: {integrity: sha512-UXOQYVdJ2dmwkC0jawC9D5efCw/vyogTKvPx7gJ8ZzhrDblcP5oUt44CyMgjX1WJX7gG5XxGdB5FrT/sYM637Q==} + peerDependencies: + vue: '>=3.0.1' + magic-string-ast@0.7.1: resolution: {integrity: sha512-ub9iytsEbT7Yw/Pd29mSo/cNQpaEu67zR1VVcXDiYjSFwzeBxNdTd0FMnSslLQXiRj8uGPzwsaoefrMD5XAmdw==} engines: {node: '>=16.14.0'} @@ -2481,12 +2554,14 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + marked@16.4.0: + resolution: {integrity: sha512-CTPAcRBq57cn3R8n3hwc2REddc28hjR7RzDXQ+lXLmMJYqn20BaI2cGw6QjgZGIgVfp2Wdfw4aMzgNteQ6qJgQ==} + engines: {node: '>= 20'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2534,11 +2609,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2628,9 +2698,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -2677,10 +2744,6 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} @@ -3050,6 +3113,14 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + socket.io-client@4.8.1: + resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + sortablejs@1.15.6: resolution: {integrity: sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==} @@ -3435,6 +3506,20 @@ packages: peerDependencies: vue: ^3.2.0 + vue-sonner@2.0.9: + resolution: {integrity: sha512-i6BokNlNDL93fpzNxN/LZSn6D6MzlO+i3qXt6iVZne3x1k7R46d5HlFB4P8tYydhgqOrRbIZEsnRd3kG7qGXyw==} + peerDependencies: + '@nuxt/kit': ^4.0.3 + '@nuxt/schema': ^4.0.3 + nuxt: ^4.0.3 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@nuxt/schema': + optional: true + nuxt: + optional: true + vue@3.5.20: resolution: {integrity: sha512-2sBz0x/wis5TkF1XZ2vH25zWq3G1bFEPOfkBcx2ikowmphoQsPH6X0V3mmPCXA2K1N/XGTnifVyDQP4GfDDeQw==} peerDependencies: @@ -3552,16 +3637,32 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} hasBin: true yocto-queue@0.1.0: @@ -3715,12 +3816,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-option@7.25.9': {} @@ -3738,14 +3835,6 @@ snapshots: '@babel/template': 7.27.0 '@babel/types': 7.28.2 - '@babel/parser@7.26.2': - dependencies: - '@babel/types': 7.26.0 - - '@babel/parser@7.27.0': - dependencies: - '@babel/types': 7.27.0 - '@babel/parser@7.28.3': dependencies: '@babel/types': 7.28.2 @@ -4228,16 +4317,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.27.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -4321,9 +4400,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.6.1))': dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -4462,7 +4541,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -4476,10 +4555,12 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@mdi/font@7.4.47': {} @@ -4674,6 +4755,8 @@ snapshots: '@rtsao/scc@1.1.0': {} + '@socket.io/component-emitter@3.1.2': {} + '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: ejs: 3.1.10 @@ -4707,6 +4790,8 @@ snapshots: '@types/validator@13.15.3': {} + '@types/web-bluetooth@0.0.21': {} + '@vite-pwa/assets-generator@1.0.0': dependencies: cac: 6.7.14 @@ -4716,15 +4801,15 @@ snapshots: sharp-ico: 0.1.5 unconfig: 7.3.1 - '@vitejs/plugin-vue@5.2.3(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)': + '@vitejs/plugin-vue@5.2.3(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)': dependencies: - vite: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + vite: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) vue: 3.5.20 '@vue-macros/common@1.16.1(vue@3.5.20)': dependencies: - '@vue/compiler-sfc': 3.5.13 - ast-kit: 1.4.2 + '@vue/compiler-sfc': 3.5.20 + ast-kit: 1.4.3 local-pkg: 1.1.1 magic-string-ast: 0.7.1 pathe: 2.0.3 @@ -4732,14 +4817,6 @@ snapshots: optionalDependencies: vue: 3.5.20 - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.26.2 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.20': dependencies: '@babel/parser': 7.28.3 @@ -4748,28 +4825,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - '@vue/compiler-dom@3.5.20': dependencies: '@vue/compiler-core': 3.5.20 '@vue/shared': 3.5.20 - '@vue/compiler-sfc@3.5.13': - dependencies: - '@babel/parser': 7.26.2 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.12 - postcss: 8.4.49 - source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.20': dependencies: '@babel/parser': 7.28.3 @@ -4782,11 +4842,6 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.13': - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - '@vue/compiler-ssr@3.5.20': dependencies: '@vue/compiler-dom': 3.5.20 @@ -4834,8 +4889,6 @@ snapshots: '@vue/shared': 3.5.20 vue: 3.5.20 - '@vue/shared@3.5.13': {} - '@vue/shared@3.5.20': {} '@vuetify/loader-shared@2.1.1(vue@3.5.20)(vuetify@3.9.6)': @@ -4844,6 +4897,19 @@ snapshots: vue: 3.5.20 vuetify: 3.9.6(vite-plugin-vuetify@2.1.2)(vue@3.5.20) + '@vueuse/core@13.9.0(vue@3.5.20)': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 13.9.0 + '@vueuse/shared': 13.9.0(vue@3.5.20) + vue: 3.5.20 + + '@vueuse/metadata@13.9.0': {} + + '@vueuse/shared@13.9.0(vue@3.5.20)': + dependencies: + vue: 3.5.20 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -4940,20 +5006,15 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - ast-kit@1.3.1: + ast-kit@1.4.3: dependencies: - '@babel/parser': 7.27.0 - pathe: 1.1.2 - - ast-kit@1.4.2: - dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.28.3 pathe: 2.0.3 ast-walker-scope@0.6.2: dependencies: - '@babel/parser': 7.27.0 - ast-kit: 1.3.1 + '@babel/parser': 7.28.3 + ast-kit: 1.4.3 async-function@1.0.0: {} @@ -5233,6 +5294,9 @@ snapshots: detect-libc@2.0.3: {} + detect-libc@2.1.2: + optional: true + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -5249,6 +5313,20 @@ snapshots: electron-to-chromium@1.5.132: {} + engine.io-client@6.6.3: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + entities@4.5.0: {} es-abstract@1.23.5: @@ -5431,9 +5509,9 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@2.6.1)): dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) semver: 7.6.3 eslint-import-resolver-node@0.3.9: @@ -5444,29 +5522,29 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.15.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.15.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.15.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.15.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.15.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@2.6.1)) - eslint-plugin-es@3.0.1(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-es@3.0.1(eslint@9.15.0(jiti@2.6.1)): dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-import@2.31.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(eslint@9.15.0(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -5475,9 +5553,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.15.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.15.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -5493,12 +5571,12 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@16.6.2(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-n@16.6.2(eslint@9.15.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.6.1)) builtins: 5.1.0 - eslint: 9.15.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.15.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@9.15.0(jiti@2.6.1)) get-tsconfig: 4.8.1 globals: 13.24.0 ignore: 5.3.2 @@ -5508,30 +5586,30 @@ snapshots: resolve: 1.22.8 semver: 7.6.3 - eslint-plugin-node@11.1.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-node@11.1.0(eslint@9.15.0(jiti@2.6.1)): dependencies: - eslint: 9.15.0(jiti@2.4.2) - eslint-plugin-es: 3.0.1(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.15.0(jiti@2.6.1) + eslint-plugin-es: 3.0.1(eslint@9.15.0(jiti@2.6.1)) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 - eslint-plugin-promise@6.6.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-promise@6.6.0(eslint@9.15.0(jiti@2.6.1)): dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) - eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) - eslint: 9.15.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.6.1)) + eslint: 9.15.0(jiti@2.6.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.15.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.15.0(jiti@2.6.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5556,9 +5634,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.15.0(jiti@2.4.2): + eslint@9.15.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.0 '@eslint/core': 0.9.0 @@ -5593,7 +5671,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -6076,6 +6154,9 @@ snapshots: jiti@2.4.2: {} + jiti@2.6.1: + optional: true + js-base64@3.7.8: {} js-tokens@4.0.0: {} @@ -6125,6 +6206,52 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-darwin-arm64@1.30.1: + optional: true + + lightningcss-darwin-x64@1.30.1: + optional: true + + lightningcss-freebsd-x64@1.30.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.1: + optional: true + + lightningcss-linux-arm64-gnu@1.30.1: + optional: true + + lightningcss-linux-arm64-musl@1.30.1: + optional: true + + lightningcss-linux-x64-gnu@1.30.1: + optional: true + + lightningcss-linux-x64-musl@1.30.1: + optional: true + + lightningcss-win32-arm64-msvc@1.30.1: + optional: true + + lightningcss-win32-x64-msvc@1.30.1: + optional: true + + lightningcss@1.30.1: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 + optional: true + local-pkg@1.1.1: dependencies: mlly: 1.7.4 @@ -6153,6 +6280,10 @@ snapshots: dependencies: yallist: 3.1.1 + lucide-vue-next@0.545.0(vue@3.5.20): + dependencies: + vue: 3.5.20 + magic-string-ast@0.7.1: dependencies: magic-string: 0.30.17 @@ -6161,14 +6292,12 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + marked@16.4.0: {} + math-intrinsics@1.1.0: {} merge2@1.4.1: {} @@ -6209,8 +6338,6 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.7: {} - natural-compare@1.4.0: {} node-addon-api@7.1.1: @@ -6306,8 +6433,6 @@ snapshots: path-parse@1.0.7: {} - pathe@1.1.2: {} - pathe@2.0.3: {} perfect-debounce@1.0.0: {} @@ -6346,12 +6471,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.4.49: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.3: dependencies: nanoid: 3.3.11 @@ -6766,6 +6885,24 @@ snapshots: smob@1.5.0: {} + socket.io-client@4.8.1: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.6.3 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + sortablejs@1.15.6: {} source-map-js@1.2.1: {} @@ -7074,7 +7211,7 @@ snapshots: universalify@2.0.1: {} - unplugin-auto-import@19.1.2: + unplugin-auto-import@19.1.2(@vueuse/core@13.9.0(vue@3.5.20)): dependencies: local-pkg: 1.1.1 magic-string: 0.30.17 @@ -7082,12 +7219,14 @@ snapshots: unimport: 4.1.3 unplugin: 2.2.2 unplugin-utils: 0.2.4 + optionalDependencies: + '@vueuse/core': 13.9.0(vue@3.5.20) - unplugin-fonts@1.3.1(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0)): + unplugin-fonts@1.3.1(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0)): dependencies: fast-glob: 3.3.2 unplugin: 2.0.0-beta.1 - vite: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + vite: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) unplugin-utils@0.2.4: dependencies: @@ -7112,7 +7251,7 @@ snapshots: unplugin-vue-router@0.12.0(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20): dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.2 '@vue-macros/common': 1.16.1(vue@3.5.20) ast-walker-scope: 0.6.2 chokidar: 4.0.3 @@ -7126,7 +7265,7 @@ snapshots: scule: 1.3.0 unplugin: 2.2.2 unplugin-utils: 0.2.4 - yaml: 2.7.1 + yaml: 2.8.1 optionalDependencies: vue-router: 4.5.1(vue@3.5.20) transitivePeerDependencies: @@ -7164,12 +7303,12 @@ snapshots: varint@6.0.0: {} - vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.0 pretty-bytes: 6.1.1 tinyglobby: 0.2.12 - vite: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + vite: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) workbox-build: 7.3.0 workbox-window: 7.3.0 optionalDependencies: @@ -7177,42 +7316,43 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vue-layouts@0.11.0(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20): + vite-plugin-vue-layouts@0.11.0(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue-router@4.5.1(vue@3.5.20))(vue@3.5.20): dependencies: debug: 4.3.7 fast-glob: 3.3.2 - vite: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + vite: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) vue: 3.5.20 vue-router: 4.5.1(vue@3.5.20) transitivePeerDependencies: - supports-color - vite-plugin-vuetify@2.1.2(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6): + vite-plugin-vuetify@2.1.2(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6): dependencies: '@vuetify/loader-shared': 2.1.1(vue@3.5.20)(vuetify@3.9.6) debug: 4.4.0 upath: 2.0.1 - vite: 5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) + vite: 5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0) vue: 3.5.20 vuetify: 3.9.6(vite-plugin-vuetify@2.1.2)(vue@3.5.20) transitivePeerDependencies: - supports-color - vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0): + vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0): dependencies: esbuild: 0.21.5 postcss: 8.5.3 rollup: 4.39.0 optionalDependencies: fsevents: 2.3.3 + lightningcss: 1.30.1 sass: 1.86.3 sass-embedded: 1.86.3 terser: 5.39.0 - vue-eslint-parser@9.4.3(eslint@9.15.0(jiti@2.4.2)): + vue-eslint-parser@9.4.3(eslint@9.15.0(jiti@2.6.1)): dependencies: debug: 4.3.7 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.15.0(jiti@2.6.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -7227,6 +7367,8 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.20 + vue-sonner@2.0.9: {} + vue@3.5.20: dependencies: '@vue/compiler-dom': 3.5.20 @@ -7239,7 +7381,7 @@ snapshots: dependencies: vue: 3.5.20 optionalDependencies: - vite-plugin-vuetify: 2.1.2(vite@5.4.17(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6) + vite-plugin-vuetify: 2.1.2(vite@5.4.17(lightningcss@1.30.1)(sass-embedded@1.86.3)(sass@1.86.3)(terser@5.39.0))(vue@3.5.20)(vuetify@3.9.6) webidl-conversions@4.0.2: {} @@ -7429,10 +7571,14 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + xml-name-validator@4.0.0: {} + xmlhttprequest-ssl@2.1.2: {} + yallist@3.1.1: {} - yaml@2.7.1: {} + yaml@2.8.1: {} yocto-queue@0.1.0: {} diff --git a/src/App.vue b/src/App.vue index d97ba1c..17abb14 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,11 +1,15 @@