diff --git a/README.md b/README.md index 1d17dce1..e7ed357f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Useful tools for developer and people working in IT. [Have a look !](https://it- Please check the [issues](https://github.com/CorentinTh/it-tools/issues) to see if some feature listed to be implemented. -You have an idea of a tool? Submit a [feature request](https://github.com/CorentinTh/it-tools/issues/new?assignees=corentinth&labels=&template=feature_request.md&title=)! +You have an idea of a tool? Submit a [feature request](https://github.com/CorentinTh/it-tools/issues/new/choose)! ## Self host diff --git a/components.d.ts b/components.d.ts index 12d9ad43..cd3160f5 100644 --- a/components.d.ts +++ b/components.d.ts @@ -33,9 +33,13 @@ declare module '@vue/runtime-core' { 'CInputText.demo': typeof import('./src/ui/c-input-text/c-input-text.demo.vue')['default'] CLink: typeof import('./src/ui/c-link/c-link.vue')['default'] 'CLink.demo': typeof import('./src/ui/c-link/c-link.demo.vue')['default'] + CModal: typeof import('./src/ui/c-modal/c-modal.vue')['default'] + 'CModal.demo': typeof import('./src/ui/c-modal/c-modal.demo.vue')['default'] CollapsibleToolMenu: typeof import('./src/components/CollapsibleToolMenu.vue')['default'] ColorConverter: typeof import('./src/tools/color-converter/color-converter.vue')['default'] ColoredCard: typeof import('./src/components/ColoredCard.vue')['default'] + CommandPalette: typeof import('./src/modules/command-palette/command-palette.vue')['default'] + CommandPaletteOption: typeof import('./src/modules/command-palette/components/command-palette-option.vue')['default'] CrontabGenerator: typeof import('./src/tools/crontab-generator/crontab-generator.vue')['default'] DateTimeConverter: typeof import('./src/tools/date-time-converter/date-time-converter.vue')['default'] DemoWrapper: typeof import('./src/ui/demo/demo-wrapper.vue')['default'] diff --git a/package.json b/package.json index fe9ab407..5c286398 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "ts-pattern": "^4.2.2", "ua-parser-js": "^1.0.35", "uuid": "^8.3.2", - "vue": "^3.2.47", + "vue": "^3.3.4", "vue-i18n": "^9.2.2", "vue-router": "^4.1.6", "xml-formatter": "^3.3.2", @@ -105,6 +105,7 @@ "@vitejs/plugin-vue-jsx": "^1.3.10", "@vue/compiler-sfc": "^3.2.47", "@vue/runtime-core": "^3.2.47", + "@vue/runtime-dom": "^3.3.4", "@vue/test-utils": "^2.3.2", "@vue/tsconfig": "^0.1.3", "c8": "^7.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2374d68..5f7c7dd9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ dependencies: version: 2.0.3(@tiptap/pm@2.0.3) '@tiptap/vue-3': specifier: ^2.0.3 - version: 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3)(vue@3.2.47) + version: 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3)(vue@3.3.4) '@vicons/material': specifier: ^0.12.0 version: 0.12.0 @@ -31,13 +31,13 @@ dependencies: version: 0.12.0 '@vueuse/core': specifier: ^10.1.2 - version: 10.1.2(vue@3.2.47) + version: 10.1.2(vue@3.3.4) '@vueuse/head': specifier: ^0.7.13 - version: 0.7.13(vue@3.2.47) + version: 0.7.13(vue@3.3.4) '@vueuse/router': specifier: ^9.13.0 - version: 9.13.0(vue-router@4.1.6)(vue@3.2.47) + version: 9.13.0(vue-router@4.1.6)(vue@3.3.4) bcryptjs: specifier: ^2.4.3 version: 2.4.3 @@ -94,7 +94,7 @@ dependencies: version: 2.1.35 naive-ui: specifier: ^2.34.3 - version: 2.34.3(vue@3.2.47) + version: 2.34.3(vue@3.3.4) netmask: specifier: ^2.0.2 version: 2.0.2 @@ -106,7 +106,7 @@ dependencies: version: 12.0.52 pinia: specifier: ^2.0.34 - version: 2.0.34(typescript@4.5.5)(vue@3.2.47) + version: 2.0.34(typescript@4.5.5)(vue@3.3.4) plausible-tracker: specifier: ^0.3.8 version: 0.3.8 @@ -129,14 +129,14 @@ dependencies: specifier: ^8.3.2 version: 8.3.2 vue: - specifier: ^3.2.47 - version: 3.2.47 + specifier: ^3.3.4 + version: 3.3.4 vue-i18n: specifier: ^9.2.2 - version: 9.2.2(vue@3.2.47) + version: 9.2.2(vue@3.3.4) vue-router: specifier: ^4.1.6 - version: 4.1.6(vue@3.2.47) + version: 4.1.6(vue@3.3.4) xml-formatter: specifier: ^3.3.2 version: 3.3.2 @@ -207,7 +207,7 @@ devDependencies: version: 0.50.8(eslint@8.38.0)(typescript@4.5.5) '@vitejs/plugin-vue': specifier: ^2.3.4 - version: 2.3.4(vite@2.9.15)(vue@3.2.47) + version: 2.3.4(vite@2.9.15)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: ^1.3.10 version: 1.3.10 @@ -217,9 +217,12 @@ devDependencies: '@vue/runtime-core': specifier: ^3.2.47 version: 3.2.47 + '@vue/runtime-dom': + specifier: ^3.3.4 + version: 3.3.4 '@vue/test-utils': specifier: ^2.3.2 - version: 2.3.2(vue@3.2.47) + version: 2.3.2(vue@3.3.4) '@vue/tsconfig': specifier: ^0.1.3 version: 0.1.3(@types/node@16.18.23) @@ -258,7 +261,7 @@ devDependencies: version: 0.16.1(@vue/compiler-sfc@3.2.47) unplugin-vue-components: specifier: ^0.24.1 - version: 0.24.1(rollup@2.79.1)(vue@3.2.47) + version: 0.24.1(rollup@2.79.1)(vue@3.3.4) vite: specifier: ^2.9.15 version: 2.9.15(less@4.1.3) @@ -448,7 +451,7 @@ packages: '@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4) '@babel/helper-module-transforms': 7.21.2 '@babel/helpers': 7.21.0 - '@babel/parser': 7.21.4 + '@babel/parser': 7.22.5 '@babel/template': 7.20.7 '@babel/traverse': 7.21.4 '@babel/types': 7.21.4 @@ -487,7 +490,7 @@ packages: resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -506,7 +509,7 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-annotate-as-pure@7.22.5: @@ -631,7 +634,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-function-name@7.22.5: @@ -645,7 +648,7 @@ packages: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-hoist-variables@7.22.5: @@ -658,7 +661,7 @@ packages: resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-member-expression-to-functions@7.22.5: @@ -672,7 +675,7 @@ packages: resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-module-imports@7.22.5: @@ -692,7 +695,7 @@ packages: '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.20.7 '@babel/traverse': 7.21.4 - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: true @@ -716,7 +719,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-optimise-call-expression@7.22.5: @@ -759,7 +762,7 @@ packages: '@babel/helper-optimise-call-expression': 7.18.6 '@babel/template': 7.20.7 '@babel/traverse': 7.21.4 - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: true @@ -782,7 +785,7 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-simple-access@7.22.5: @@ -795,7 +798,7 @@ packages: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: @@ -809,7 +812,7 @@ packages: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /@babel/helper-split-export-declaration@7.22.5: @@ -821,6 +824,7 @@ packages: /@babel/helper-string-parser@7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -829,6 +833,7 @@ packages: /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} @@ -861,7 +866,7 @@ packages: dependencies: '@babel/template': 7.20.7 '@babel/traverse': 7.21.4 - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: true @@ -896,14 +901,13 @@ packages: /@babel/parser@7.21.4: resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} engines: {node: '>=6.0.0'} - hasBin: true dependencies: '@babel/types': 7.21.4 + dev: true /@babel/parser@7.22.5: resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} engines: {node: '>=6.0.0'} - hasBin: true dependencies: '@babel/types': 7.22.5 @@ -1852,8 +1856,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.21.4 - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 dev: true /@babel/template@7.22.5: @@ -1874,8 +1878,8 @@ packages: '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1906,6 +1910,7 @@ packages: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} @@ -1927,12 +1932,12 @@ packages: css-render: 0.15.12 dev: false - /@css-render/vue3-ssr@0.15.12(vue@3.2.47): + /@css-render/vue3-ssr@0.15.12(vue@3.3.4): resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==} peerDependencies: vue: ^3.0.11 dependencies: - vue: 3.2.47 + vue: 3.3.4 dev: false /@emmetio/abbreviation@2.3.1: @@ -2075,7 +2080,7 @@ packages: magic-string: 0.30.0 mlly: 1.2.0 source-map: 0.6.1 - vue-i18n: 9.2.2(vue@3.2.47) + vue-i18n: 9.2.2(vue@3.3.4) yaml-eslint-parser: 0.3.2 dev: true @@ -2145,7 +2150,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 unplugin: 1.3.1 - vue-i18n: 9.2.2(vue@3.2.47) + vue-i18n: 9.2.2(vue@3.3.4) transitivePeerDependencies: - rollup - supports-color @@ -2297,7 +2302,6 @@ packages: /@playwright/test@1.32.3: resolution: {integrity: sha512-BvWNvK0RfBriindxhLVabi8BRe3X0J9EVjKlcmhxjg4giWBD/xleLcg2dz7Tx0agu28rczjNIPQWznwzDwVsZQ==} engines: {node: '>=14'} - hasBin: true dependencies: '@types/node': 16.18.23 playwright-core: 1.32.3 @@ -2704,7 +2708,7 @@ packages: - '@tiptap/pm' dev: false - /@tiptap/vue-3@2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3)(vue@3.2.47): + /@tiptap/vue-3@2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3)(vue@3.3.4): resolution: {integrity: sha512-2CtNUzt+e7sgvIjxPOyBwoiRcuCHNeJzW+XGxNK2uCWlAKp/Yw3boJ51d51UuIbj9RitGHJ5GpCdLJoL7SDiQA==} peerDependencies: '@tiptap/core': ^2.0.0 @@ -2715,7 +2719,7 @@ packages: '@tiptap/extension-bubble-menu': 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3) '@tiptap/extension-floating-menu': 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3) '@tiptap/pm': 2.0.3(@tiptap/core@2.0.3) - vue: 3.2.47 + vue: 3.3.4 dev: false /@tootallnate/once@1.1.2: @@ -3155,7 +3159,6 @@ packages: /@unocss/cli@0.50.8(rollup@2.79.1): resolution: {integrity: sha512-LBLt8oxGQSfTubOreXs8L7cxHvuYt4wA1MZ45jf4GT/C4moS8cqL7QFX66+MN/cNwvojqXSXQ2HtRJ1IZojfgA==} engines: {node: '>=14'} - hasBin: true dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.0.2(rollup@2.79.1) @@ -3371,7 +3374,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-vue@2.3.4(vite@2.9.15)(vue@3.2.47): + /@vitejs/plugin-vue@2.3.4(vite@2.9.15)(vue@3.3.4): resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3379,7 +3382,7 @@ packages: vue: ^3.2.25 dependencies: vite: 2.9.15(less@4.1.3) - vue: 3.2.47 + vue: 3.3.4 dev: true /@volar/code-gen@0.31.4: @@ -3391,7 +3394,6 @@ packages: /@volar/html2pug@0.31.4: resolution: {integrity: sha512-+whoP4C34kbCIRyoojZE6luqs7Ep/0YDBD9yEWu82G1ECLIFoujtkZXHbAHiQH8MIs/GwjUmozd85pUGAVQf1w==} - deprecated: 'WARNING: This project has been renamed to @johnsoncodehk/html2pug. Install using @johnsoncodehk/html2pug instead.' dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 @@ -3428,9 +3430,9 @@ packages: '@volar/code-gen': 0.31.4 '@volar/shared': 0.31.4 '@volar/source-map': 0.31.4 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 upath: 2.0.1 dev: true @@ -3468,10 +3470,11 @@ packages: /@vue/compiler-core@3.2.47: resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} dependencies: - '@babel/parser': 7.21.4 + '@babel/parser': 7.22.5 '@vue/shared': 3.2.47 estree-walker: 2.0.2 source-map: 0.6.1 + dev: true /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} @@ -3480,22 +3483,19 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 - dev: true - optional: true /@vue/compiler-dom@3.2.47: resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} dependencies: '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 + dev: true /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 - dev: true - optional: true /@vue/compiler-sfc@3.2.47: resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} @@ -3510,20 +3510,34 @@ packages: magic-string: 0.25.9 postcss: 8.4.21 source-map: 0.6.1 + dev: true + + /@vue/compiler-sfc@3.3.4: + resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + dependencies: + '@babel/parser': 7.22.5 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-ssr': 3.3.4 + '@vue/reactivity-transform': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.0 + postcss: 8.4.24 + source-map-js: 1.0.2 /@vue/compiler-ssr@3.2.47: resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} dependencies: '@vue/compiler-dom': 3.2.47 '@vue/shared': 3.2.47 + dev: true /@vue/compiler-ssr@3.3.4: resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} dependencies: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 - dev: true - optional: true /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} @@ -3531,68 +3545,79 @@ packages: /@vue/reactivity-transform@3.2.47: resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} dependencies: - '@babel/parser': 7.21.4 + '@babel/parser': 7.22.5 '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 estree-walker: 2.0.2 magic-string: 0.25.9 + dev: true + + /@vue/reactivity-transform@3.3.4: + resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + dependencies: + '@babel/parser': 7.22.5 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.0 /@vue/reactivity@3.2.47: resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} dependencies: '@vue/shared': 3.2.47 + dev: true + + /@vue/reactivity@3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + dependencies: + '@vue/shared': 3.3.4 /@vue/runtime-core@3.2.47: resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} dependencies: '@vue/reactivity': 3.2.47 '@vue/shared': 3.2.47 + dev: true - /@vue/runtime-dom@3.2.47: - resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + /@vue/runtime-core@3.3.4: + resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} dependencies: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 - csstype: 2.6.21 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 - /@vue/server-renderer@3.2.47(vue@3.2.47): - resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} - peerDependencies: - vue: 3.2.47 + /@vue/runtime-dom@3.3.4: + resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} dependencies: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 - vue: 3.2.47 + '@vue/runtime-core': 3.3.4 + '@vue/shared': 3.3.4 + csstype: 3.1.2 - /@vue/server-renderer@3.3.4(vue@3.2.47): + /@vue/server-renderer@3.3.4(vue@3.3.4): resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} peerDependencies: vue: 3.3.4 dependencies: '@vue/compiler-ssr': 3.3.4 '@vue/shared': 3.3.4 - vue: 3.2.47 - dev: true - optional: true + vue: 3.3.4 /@vue/shared@3.2.47: resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + dev: true /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - dev: true - optional: true - /@vue/test-utils@2.3.2(vue@3.2.47): + /@vue/test-utils@2.3.2(vue@3.3.4): resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==} peerDependencies: vue: ^3.0.1 dependencies: js-beautify: 1.14.6 - vue: 3.2.47 + vue: 3.3.4 optionalDependencies: '@vue/compiler-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.2.47) + '@vue/server-renderer': 3.3.4(vue@3.3.4) dev: true /@vue/tsconfig@0.1.3(@types/node@16.18.23): @@ -3606,24 +3631,24 @@ packages: '@types/node': 16.18.23 dev: true - /@vueuse/core@10.1.2(vue@3.2.47): + /@vueuse/core@10.1.2(vue@3.3.4): resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==} dependencies: '@types/web-bluetooth': 0.0.17 '@vueuse/metadata': 10.1.2 - '@vueuse/shared': 10.1.2(vue@3.2.47) - vue-demi: 0.14.1(vue@3.2.47) + '@vueuse/shared': 10.1.2(vue@3.3.4) + vue-demi: 0.14.1(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/head@0.7.13(vue@3.2.47): + /@vueuse/head@0.7.13(vue@3.3.4): resolution: {integrity: sha512-VHSla/0uOAUii/mz+NWLFKMrMbz/lQoYxEcpS/ri7drepYjdB5QdbTnD2KdOX8EmQM/b07qpjKanr7erGrd3XA==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@zhead/schema-vue': 0.7.4(vue@3.2.47) - vue: 3.2.47 + '@zhead/schema-vue': 0.7.4(vue@3.3.4) + vue: 3.3.4 transitivePeerDependencies: - '@vue/composition-api' dev: false @@ -3631,44 +3656,44 @@ packages: /@vueuse/metadata@10.1.2: resolution: {integrity: sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==} - /@vueuse/router@9.13.0(vue-router@4.1.6)(vue@3.2.47): + /@vueuse/router@9.13.0(vue-router@4.1.6)(vue@3.3.4): resolution: {integrity: sha512-lcL6auSUGMGZMdDzZJb02QDe909AChzMXoxqFS3gL2E8mHmIx0SrNor+33UkqvvBPi18vXpDq/R7tPd9fxWwTg==} peerDependencies: vue-router: '>=4.0.0-rc.1' dependencies: - '@vueuse/shared': 9.13.0(vue@3.2.47) - vue-demi: 0.13.11(vue@3.2.47) - vue-router: 4.1.6(vue@3.2.47) + '@vueuse/shared': 9.13.0(vue@3.3.4) + vue-demi: 0.13.11(vue@3.3.4) + vue-router: 4.1.6(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/shared@10.1.2(vue@3.2.47): + /@vueuse/shared@10.1.2(vue@3.3.4): resolution: {integrity: sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==} dependencies: - vue-demi: 0.14.1(vue@3.2.47) + vue-demi: 0.14.1(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/shared@9.13.0(vue@3.2.47): + /@vueuse/shared@9.13.0(vue@3.3.4): resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - vue-demi: 0.14.1(vue@3.2.47) + vue-demi: 0.14.1(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@zhead/schema-vue@0.7.4(vue@3.2.47): + /@zhead/schema-vue@0.7.4(vue@3.3.4): resolution: {integrity: sha512-Q7wPUly3ZWbPYQ5SEJBUuD6Mw3wiUfPMPquGfqsR2KF6sxQKRF8oaHnRLuu2uxpjuXjkzpBlZBPu1JgQX+Lf6Q==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@vueuse/shared': 9.13.0(vue@3.2.47) + '@vueuse/shared': 9.13.0(vue@3.3.4) '@zhead/schema': 0.7.4 - vue: 3.2.47 + vue: 3.3.4 transitivePeerDependencies: - '@vue/composition-api' dev: false @@ -3716,13 +3741,11 @@ packages: /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} - hasBin: true dev: true /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} - hasBin: true dev: true /acorn@8.9.0: @@ -3940,7 +3963,7 @@ packages: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.21.4 + '@babel/types': 7.22.5 dev: true /balanced-match@1.0.2: @@ -3989,7 +4012,6 @@ packages: /browserslist@4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true dependencies: caniuse-lite: 1.0.30001478 electron-to-chromium: 1.4.360 @@ -4000,7 +4022,6 @@ packages: /browserslist@4.21.9: resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true dependencies: caniuse-lite: 1.0.30001504 electron-to-chromium: 1.4.433 @@ -4025,7 +4046,6 @@ packages: /c8@7.13.0: resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} engines: {node: '>=10.12.0'} - hasBin: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@istanbuljs/schema': 0.1.3 @@ -4277,7 +4297,6 @@ packages: /composerize-ts@0.6.2: resolution: {integrity: sha512-8tw5p/FBxg77ubjVftaXA+pknWbkUgbZ4rbZZs2yFUsj2yvO38IvtfpGLfaJ9mGFj324lFEr/OU9xULrKSF9Ag==} - hasBin: true dependencies: commander: 10.0.0 deepmerge-ts: 5.1.0 @@ -4316,8 +4335,8 @@ packages: /constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 dev: true /convert-source-map@1.9.0: @@ -4356,7 +4375,6 @@ packages: /cronstrue@2.26.0: resolution: {integrity: sha512-M1VdV3hpBAsd1Zzvqcvf63wgDpcwCuS4WiNEVFpJ0s33MGO2sVDTfswYq0EPypCmESrCzmgL8h68DTzJuSDbVA==} - hasBin: true dev: false /cross-spawn@7.0.3: @@ -4418,7 +4436,6 @@ packages: /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} - hasBin: true dev: true /csso@4.2.0: @@ -4443,13 +4460,13 @@ packages: cssom: 0.3.8 dev: true - /csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - /csstype@3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} dev: false + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /currency-symbol-map@2.2.0: resolution: {integrity: sha512-fPZJ3jqM68+AAgqQ7UaGbgHL/39rp6l7GyqS2k1HJPu/kpS8D07x/+Uup6a9tCUKIlOFcRrDCf1qxSt8jnI5BA==} dev: false @@ -4670,7 +4687,6 @@ packages: /editorconfig@0.15.3: resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} - hasBin: true dependencies: commander: 2.20.3 lru-cache: 4.1.5 @@ -4726,7 +4742,6 @@ packages: /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true requiresBuild: true dependencies: prr: 1.0.1 @@ -4986,7 +5001,6 @@ packages: /esbuild@0.14.54: resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} engines: {node: '>=12'} - hasBin: true requiresBuild: true optionalDependencies: '@esbuild/linux-loong64': 0.14.54 @@ -5035,7 +5049,6 @@ packages: /escodegen@2.0.0: resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} engines: {node: '>=6.0'} - hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 @@ -5345,7 +5358,6 @@ packages: /eslint@8.38.0: resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) '@eslint-community/regexpp': 4.5.0 @@ -5412,7 +5424,6 @@ packages: /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} - hasBin: true dev: true /esquery@1.5.0: @@ -6017,7 +6028,6 @@ packages: /image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} - hasBin: true requiresBuild: true dev: true optional: true @@ -6154,7 +6164,6 @@ packages: /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} - hasBin: true dev: true /is-expression@4.0.0: @@ -6370,7 +6379,6 @@ packages: /jiti@1.18.2: resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} - hasBin: true dev: true /joi@17.9.1: @@ -6386,7 +6394,6 @@ packages: /js-beautify@1.14.6: resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} engines: {node: '>=10'} - hasBin: true dependencies: config-chain: 1.1.13 editorconfig: 0.15.3 @@ -6411,7 +6418,6 @@ packages: /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 @@ -6419,7 +6425,6 @@ packages: /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true dependencies: argparse: 2.0.1 dev: true @@ -6472,18 +6477,15 @@ packages: /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} - hasBin: true /jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} - hasBin: true dev: true /json-parse-even-better-errors@2.3.1: @@ -6514,7 +6516,6 @@ packages: /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true dependencies: minimist: 1.2.8 dev: true @@ -6522,7 +6523,6 @@ packages: /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} - hasBin: true /jsonc-eslint-parser@1.4.1: resolution: {integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==} @@ -6598,7 +6598,6 @@ packages: /less@4.1.3: resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} engines: {node: '>=6'} - hasBin: true dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 @@ -6728,13 +6727,13 @@ packages: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 + dev: true /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -6763,7 +6762,6 @@ packages: /markdown-it@12.3.2: resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} - hasBin: true dependencies: argparse: 2.0.1 entities: 2.1.0 @@ -6774,7 +6772,6 @@ packages: /markdown-it@13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} - hasBin: true dependencies: argparse: 2.0.1 entities: 3.0.1 @@ -6786,7 +6783,6 @@ packages: /mathjs@10.6.4: resolution: {integrity: sha512-omQyvRE1jIy+3k2qsqkWASOcd45aZguXZDckr3HtnTYyXk5+2xpVfC3kATgbO2Srjxlqww3TVdhD0oUdZ/hiFA==} engines: {node: '>= 14'} - hasBin: true dependencies: '@babel/runtime': 7.21.0 complex.js: 2.1.1 @@ -6865,7 +6861,6 @@ packages: /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} - hasBin: true requiresBuild: true dev: true optional: true @@ -6922,13 +6917,13 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /naive-ui@2.34.3(vue@3.2.47): + /naive-ui@2.34.3(vue@3.3.4): resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==} peerDependencies: vue: ^3.0.0 dependencies: '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) - '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) '@types/katex': 0.14.0 '@types/lodash': 4.14.192 '@types/lodash-es': 4.17.7 @@ -6942,16 +6937,15 @@ packages: lodash-es: 4.17.21 seemly: 0.3.6 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.2.47) - vooks: 0.2.12(vue@3.2.47) - vue: 3.2.47 - vueuc: 0.4.51(vue@3.2.47) + vdirs: 0.1.8(vue@3.3.4) + vooks: 0.2.12(vue@3.3.4) + vue: 3.3.4 + vueuc: 0.4.51(vue@3.3.4) dev: false /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -6964,7 +6958,6 @@ packages: /needle@3.2.0: resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} engines: {node: '>= 4.4.x'} - hasBin: true requiresBuild: true dependencies: debug: 3.2.7 @@ -7032,7 +7025,6 @@ packages: /nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true dependencies: abbrev: 1.1.1 dev: true @@ -7174,7 +7166,6 @@ packages: /oui@12.0.52: resolution: {integrity: sha512-LqU1oQeGUpMrJ1ZUi7bQKrADD6CMkEe0wpviX/stOZTw4kzEy+yKXVprtVO5O6G4+S6XiTb6BOx6p8fh2o5vyw==} - hasBin: true dependencies: char-spinner: 1.0.1 country-data: 0.0.31 @@ -7331,7 +7322,7 @@ packages: dev: true optional: true - /pinia@2.0.34(typescript@4.5.5)(vue@3.2.47): + /pinia@2.0.34(typescript@4.5.5)(vue@3.3.4): resolution: {integrity: sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q==} peerDependencies: '@vue/composition-api': ^1.4.0 @@ -7345,8 +7336,8 @@ packages: dependencies: '@vue/devtools-api': 6.5.0 typescript: 4.5.5 - vue: 3.2.47 - vue-demi: 0.13.11(vue@3.2.47) + vue: 3.3.4 + vue-demi: 0.13.11(vue@3.3.4) dev: false /pkg-types@1.0.2: @@ -7365,7 +7356,6 @@ packages: /playwright-core@1.32.3: resolution: {integrity: sha512-SB+cdrnu74ZIn5Ogh/8278ngEh9NEEV0vR4sJFmK04h2iZpybfbqBY0bX6+BLYWVdV12JLLI+JEFtSnYgR+mWg==} engines: {node: '>=14'} - hasBin: true dev: true /pluralize@8.0.0: @@ -7393,6 +7383,7 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true /postcss@8.4.24: resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} @@ -7401,7 +7392,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -7416,7 +7406,6 @@ packages: /prettier@2.8.7: resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} engines: {node: '>=10.13.0'} - hasBin: true dev: true /pretty-bytes@5.6.0: @@ -7592,7 +7581,6 @@ packages: /ps-tree@1.2.0: resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} engines: {node: '>= 0.10'} - hasBin: true dependencies: event-stream: 3.3.4 dev: true @@ -7704,7 +7692,6 @@ packages: /qrcode@1.5.1: resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==} engines: {node: '>=10.13.0'} - hasBin: true dependencies: dijkstrajs: 1.0.2 encode-utf8: 1.0.3 @@ -7778,7 +7765,6 @@ packages: /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true dev: true /regexp.prototype.flags@1.4.3: @@ -7813,7 +7799,6 @@ packages: /regjsparser@0.10.0: resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true dependencies: jsesc: 0.5.0 dev: true @@ -7849,7 +7834,6 @@ packages: /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true dependencies: is-core-module: 2.12.0 path-parse: 1.0.7 @@ -7863,7 +7847,6 @@ packages: /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true dependencies: glob: 7.2.3 dev: true @@ -7884,7 +7867,6 @@ packages: /rollup@2.77.3: resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} engines: {node: '>=10.0.0'} - hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true @@ -7892,7 +7874,6 @@ packages: /rollup@2.79.1: resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} - hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true @@ -7968,17 +7949,14 @@ packages: /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true dev: true /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true /semver@7.4.0: resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} engines: {node: '>=10'} - hasBin: true dependencies: lru-cache: 6.0.0 dev: true @@ -7986,7 +7964,6 @@ packages: /semver@7.5.1: resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} engines: {node: '>=10'} - hasBin: true dependencies: lru-cache: 6.0.0 dev: true @@ -8095,7 +8072,7 @@ packages: /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -8134,20 +8111,17 @@ packages: /sql-formatter@8.2.0: resolution: {integrity: sha512-5hQOSOk8jfhPkNgUmpm+9Fn2aaLWcf4vKL/dIvUN5q9rsamKHSyN/gL79xpkETNOyL+Zv5BMQfA7z9Rmz/DJJg==} - hasBin: true dependencies: argparse: 2.0.1 dev: false /stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' dev: true /start-server-and-test@1.15.4: resolution: {integrity: sha512-ucQtp5+UCr0m4aHlY+aEV2JSYNTiMZKdSKK/bsIr6AlmwAWDYDnV7uGlWWEtWa7T4XvRI5cPYcPcQgeLqpz+Tg==} engines: {node: '>=6'} - hasBin: true dependencies: arg: 5.0.2 bluebird: 3.7.2 @@ -8291,7 +8265,6 @@ packages: /svgo@2.8.0: resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} engines: {node: '>=10.13.0'} - hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -8529,7 +8502,6 @@ packages: /typescript@4.5.5: resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} engines: {node: '>=4.2.0'} - hasBin: true /ua-parser-js@1.0.35: resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} @@ -8676,7 +8648,7 @@ packages: dependencies: '@antfu/utils': 0.7.2 '@rollup/pluginutils': 5.0.2(rollup@2.79.1) - '@vueuse/core': 10.1.2(vue@3.2.47) + '@vueuse/core': 10.1.2(vue@3.3.4) local-pkg: 0.4.3 magic-string: 0.30.0 minimatch: 7.4.6 @@ -8715,7 +8687,7 @@ packages: - supports-color dev: true - /unplugin-vue-components@0.24.1(rollup@2.79.1)(vue@3.2.47): + /unplugin-vue-components@0.24.1(rollup@2.79.1)(vue@3.3.4): resolution: {integrity: sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==} engines: {node: '>=14'} peerDependencies: @@ -8738,7 +8710,7 @@ packages: minimatch: 7.4.6 resolve: 1.22.2 unplugin: 1.3.1 - vue: 3.2.47 + vue: 3.3.4 transitivePeerDependencies: - rollup - supports-color @@ -8765,7 +8737,6 @@ packages: /update-browserslist-db@1.0.10(browserslist@4.21.5): resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: @@ -8776,7 +8747,6 @@ packages: /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: @@ -8815,7 +8785,6 @@ packages: /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true dev: false /v8-to-istanbul@9.1.0: @@ -8834,13 +8803,13 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vdirs@0.1.8(vue@3.2.47): + /vdirs@0.1.8(vue@3.3.4): resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} peerDependencies: vue: ^3.0.11 dependencies: evtd: 0.2.4 - vue: 3.2.47 + vue: 3.3.4 dev: false /vite-plugin-md@0.12.4(vite@2.9.15): @@ -8885,7 +8854,6 @@ packages: /vite@2.9.15(less@4.1.3): resolution: {integrity: sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==} engines: {node: '>=12.2.0'} - hasBin: true peerDependencies: less: '*' sass: '*' @@ -8910,7 +8878,6 @@ packages: /vitest@0.13.1(c8@7.13.0)(jsdom@19.0.0)(less@4.1.3): resolution: {integrity: sha512-CfSBf7YFw/i8HumSUQRtZKs0aV91DC9WU8nAgIJAlawKHaFuPHQohDwOTPIFgrxySiuFYUa0Yohf9gDFfBwjxA==} engines: {node: '>=v14.16.0'} - hasBin: true peerDependencies: '@vitest/ui': '*' c8: '*' @@ -8948,13 +8915,13 @@ packages: engines: {node: '>=0.10.0'} dev: true - /vooks@0.2.12(vue@3.2.47): + /vooks@0.2.12(vue@3.3.4): resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} peerDependencies: vue: ^3.0.0 dependencies: evtd: 0.2.4 - vue: 3.2.47 + vue: 3.3.4 dev: false /vscode-css-languageservice@5.4.2: @@ -9011,7 +8978,6 @@ packages: /vscode-pug-languageservice@0.31.4: resolution: {integrity: sha512-StQWV+v1v+an/pGKNPg4YkODFyKeYpUEzaSAoXIUsIoh7O4Nuv6zjd1M/fPxaMSD6Kk+OH/JGE36hbXsKXOz5A==} - deprecated: 'WARNING: This project has been renamed to @volar/pug-language-service. Install using @volar/pug-language-service instead.' dependencies: '@volar/code-gen': 0.31.4 '@volar/shared': 0.31.4 @@ -9025,7 +8991,6 @@ packages: /vscode-typescript-languageservice@0.31.4: resolution: {integrity: sha512-nsnRPEfg9t3oDlwzm3WTAv0p83vceqCuxvRo/+N7hXbmtaO7WMGCMvJx0xyIuUDS4NgaEK31oMR9FnX9JNcEQQ==} - deprecated: 'WARNING: This project has been renamed to @volar/typescript-language-service. Install using @volar/typescript-language-service instead.' dependencies: '@volar/shared': 0.31.4 semver: 7.4.0 @@ -9045,7 +9010,6 @@ packages: /vscode-vue-languageservice@0.31.4: resolution: {integrity: sha512-Pyvtj5iokBilGDH8KY6bocJh8NcIGoFmUksPOOZKBb+4usEHTBtWw/uoH4hjxWwLszMRQuStkXLMaSKtBIv3gQ==} - deprecated: 'WARNING: This project has been renamed to @volar/vue-language-service. Install using @volar/vue-language-service instead.' dependencies: '@volar/code-gen': 0.31.4 '@volar/html2pug': 0.31.4 @@ -9054,8 +9018,8 @@ packages: '@volar/transforms': 0.31.4 '@volar/vue-code-gen': 0.31.4 '@vscode/emmet-helper': 2.8.6 - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 upath: 2.0.1 vscode-css-languageservice: 5.4.2 vscode-html-languageservice: 4.2.5 @@ -9066,10 +9030,9 @@ packages: vscode-typescript-languageservice: 0.31.4 dev: true - /vue-demi@0.13.11(vue@3.2.47): + /vue-demi@0.13.11(vue@3.3.4): resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} - hasBin: true requiresBuild: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 @@ -9078,13 +9041,12 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.47 + vue: 3.3.4 dev: false - /vue-demi@0.14.1(vue@3.2.47): + /vue-demi@0.14.1(vue@3.3.4): resolution: {integrity: sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==} engines: {node: '>=12'} - hasBin: true requiresBuild: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 @@ -9093,7 +9055,7 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.47 + vue: 3.3.4 /vue-eslint-parser@9.3.0(eslint@8.38.0): resolution: {integrity: sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==} @@ -9113,7 +9075,7 @@ packages: - supports-color dev: true - /vue-i18n@9.2.2(vue@3.2.47): + /vue-i18n@9.2.2(vue@3.3.4): resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==} engines: {node: '>= 14'} peerDependencies: @@ -9123,20 +9085,19 @@ packages: '@intlify/shared': 9.2.2 '@intlify/vue-devtools': 9.2.2 '@vue/devtools-api': 6.5.0 - vue: 3.2.47 + vue: 3.3.4 - /vue-router@4.1.6(vue@3.2.47): + /vue-router@4.1.6(vue@3.3.4): resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.0 - vue: 3.2.47 + vue: 3.3.4 dev: false /vue-tsc@0.31.4(typescript@4.5.5): resolution: {integrity: sha512-8RnKGmQRo/0rbXkyZmKCOdT62fNWyEaMdS/BDAPE+saGNAniUZsjpOSOjAiLwsQc5qgeI9/mY1W3o4tX7H/7MA==} - hasBin: true peerDependencies: typescript: '*' dependencies: @@ -9145,33 +9106,32 @@ packages: vscode-vue-languageservice: 0.31.4 dev: true - /vue@3.2.47: - resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + /vue@3.3.4: + resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-sfc': 3.3.4 + '@vue/runtime-dom': 3.3.4 + '@vue/server-renderer': 3.3.4(vue@3.3.4) + '@vue/shared': 3.3.4 - /vueuc@0.4.51(vue@3.2.47): + /vueuc@0.4.51(vue@3.3.4): resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==} peerDependencies: vue: ^3.0.11 dependencies: - '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) '@juggle/resize-observer': 3.4.0 css-render: 0.15.12 evtd: 0.2.4 seemly: 0.3.6 - vdirs: 0.1.8(vue@3.2.47) - vooks: 0.2.12(vue@3.2.47) - vue: 3.2.47 + vdirs: 0.1.8(vue@3.3.4) + vooks: 0.2.12(vue@3.3.4) + vue: 3.3.4 dev: false /w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - deprecated: Use your platform's native performance.now() and performance.timeOrigin. dependencies: browser-process-hrtime: 1.0.0 dev: true @@ -9190,7 +9150,6 @@ packages: /wait-on@7.0.1(debug@4.3.4): resolution: {integrity: sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==} engines: {node: '>=12.0.0'} - hasBin: true dependencies: axios: 0.27.2(debug@4.3.4) joi: 17.9.1 @@ -9230,7 +9189,6 @@ packages: /webpod@0.0.2: resolution: {integrity: sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==} - hasBin: true dev: true /whatwg-encoding@2.0.0: @@ -9305,7 +9263,6 @@ packages: /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} - hasBin: true dependencies: isexe: 2.0.0 dev: true @@ -9313,7 +9270,6 @@ packages: /which@3.0.0: resolution: {integrity: sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true dependencies: isexe: 2.0.0 dev: true @@ -9322,8 +9278,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true @@ -9593,7 +9549,6 @@ packages: /yamljs@0.3.0: resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==} - hasBin: true dependencies: argparse: 1.0.10 glob: 7.2.3 @@ -9650,7 +9605,6 @@ packages: /zx@7.2.1: resolution: {integrity: sha512-TgKwppaMLMNAXHhlhbBh7rMoOSx3/9qqnkv8frmhVlSomEuWkDijh/BCmYntkoS7ZQyemApAUyEi24jIrrS+hA==} engines: {node: '>= 16.0.0'} - hasBin: true dependencies: '@types/fs-extra': 11.0.1 '@types/minimist': 1.2.2 diff --git a/src/components/SearchBar.vue b/src/components/SearchBar.vue deleted file mode 100644 index 6da0f369..00000000 --- a/src/components/SearchBar.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - (displayDropDown = true)" - > - - - - - - - - - - diff --git a/src/components/SearchBarItem.vue b/src/components/SearchBarItem.vue deleted file mode 100644 index 541695e6..00000000 --- a/src/components/SearchBarItem.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - {{ tool.name }} - - - {{ tool.description }} - - - - - - diff --git a/src/layouts/base.layout.vue b/src/layouts/base.layout.vue index ec1d5fee..36edd77d 100644 --- a/src/layouts/base.layout.vue +++ b/src/layouts/base.layout.vue @@ -3,7 +3,7 @@ import { NIcon, useThemeVars } from 'naive-ui'; import { RouterLink } from 'vue-router'; import { Heart, Home2, Menu2 } from '@vicons/tabler'; -import SearchBar from '../components/SearchBar.vue'; + import HeroGradient from '../assets/hero-gradient.svg?component'; import MenuLayout from '../components/MenuLayout.vue'; import NavbarButtons from '../components/NavbarButtons.vue'; @@ -104,7 +104,7 @@ const tools = computed(() => [ Home - + @@ -218,10 +218,6 @@ const tools = computed(() => [ justify-content: center; flex-direction: row; - & > *:not(:last-child) { - margin-right: 5px; - } - .search-bar { // width: 100%; flex-grow: 1; diff --git a/src/modules/command-palette/command-palette.store.ts b/src/modules/command-palette/command-palette.store.ts new file mode 100644 index 00000000..f2153884 --- /dev/null +++ b/src/modules/command-palette/command-palette.store.ts @@ -0,0 +1,68 @@ +import { defineStore } from 'pinia'; +import _ from 'lodash'; +import type { PaletteOption } from './command-palette.types'; +import { useToolStore } from '@/tools/tools.store'; +import { useFuzzySearch } from '@/composable/fuzzySearch'; +import { useStyleStore } from '@/stores/style.store'; + +import SunIcon from '~icons/mdi/white-balance-sunny'; +import GithubIcon from '~icons/mdi/github'; +import BugIcon from '~icons/mdi/bug-outline'; + +export const useCommandPaletteStore = defineStore('command-palette', () => { + const toolStore = useToolStore(); + const styleStore = useStyleStore(); + const searchPrompt = ref(''); + + const toolsOptions = toolStore.tools.map(tool => ({ + ...tool, + to: tool.path, + toolCategory: tool.category, + category: 'Tools', + })); + + const searchOptions: PaletteOption[] = [ + ...toolsOptions, + { + name: 'Toggle dark mode', + description: 'Toggle dark mode on or off.', + action: () => styleStore.toggleDark(), + icon: SunIcon, + category: 'Actions', + keywords: ['dark', 'theme', 'toggle', 'mode', 'light', 'system'], + }, + { + name: 'Github repository', + href: 'https://github.com/CorentinTh/it-tools', + category: 'External', + description: 'View the source code of it-tools on Github.', + keywords: ['github', 'repo', 'repository', 'source', 'code'], + icon: GithubIcon, + }, + { + name: 'Report a bug or an issue', + description: 'Report a bug or an issue to help improve it-tools.', + href: 'https://github.com/CorentinTh/it-tools/issues/new/choose', + category: 'Actions', + keywords: ['report', 'issue', 'bug', 'problem', 'error'], + icon: BugIcon, + }, + ]; + + const { searchResult } = useFuzzySearch({ + search: searchPrompt, + data: searchOptions, + options: { + keys: [{ name: 'name', weight: 2 }, 'description', 'keywords', 'category'], + threshold: 0.3, + }, + }); + + const filteredSearchResult = computed(() => + _.chain(searchResult.value).groupBy('category').mapValues(categoryOptions => _.take(categoryOptions, 5)).value()); + + return { + filteredSearchResult, + searchPrompt, + }; +}); diff --git a/src/modules/command-palette/command-palette.types.ts b/src/modules/command-palette/command-palette.types.ts new file mode 100644 index 00000000..0b072a7f --- /dev/null +++ b/src/modules/command-palette/command-palette.types.ts @@ -0,0 +1,13 @@ +import type { Component } from 'vue'; +import type { RouteLocationRaw } from 'vue-router'; + +export interface PaletteOption { + name: string + description?: string + icon?: Component + action?: () => void + to?: RouteLocationRaw + category: string + keywords?: string[] + href?: string +} diff --git a/src/modules/command-palette/command-palette.vue b/src/modules/command-palette/command-palette.vue new file mode 100644 index 00000000..bd431a02 --- /dev/null +++ b/src/modules/command-palette/command-palette.vue @@ -0,0 +1,137 @@ + + + + + + + + + Search... + + + {{ isMac ? 'Cmd' : 'Ctrl' }} + K + + + + + + + + + + {{ category }} + + + + + + + + diff --git a/src/modules/command-palette/components/command-palette-option.vue b/src/modules/command-palette/components/command-palette-option.vue new file mode 100644 index 00000000..9192bc04 --- /dev/null +++ b/src/modules/command-palette/components/command-palette-option.vue @@ -0,0 +1,36 @@ + + + + emit('activated', option)" + > + + + + + {{ option.name }} + + + + {{ option.description }} + + + + diff --git a/src/pages/About.vue b/src/pages/About.vue index cbf8964c..0a3dd3b3 100644 --- a/src/pages/About.vue +++ b/src/pages/About.vue @@ -46,7 +46,7 @@ const { tracker } = useTracker(); If you need a tool that is currently not present here, and you think can be relevant, you are welcome to submit a feature request in the @@ -57,7 +57,7 @@ const { tracker } = useTracker(); And if you found a bug, or something broken that doesn't work as expected, please fill a bug report in the diff --git a/src/ui/c-input-text/c-input-text.vue b/src/ui/c-input-text/c-input-text.vue index 513834dc..b89d1e40 100644 --- a/src/ui/c-input-text/c-input-text.vue +++ b/src/ui/c-input-text/c-input-text.vue @@ -29,6 +29,7 @@ const props = withDefaults( multiline?: boolean rows?: number | string autosize?: boolean + autofocus?: boolean }>(), { value: '', @@ -54,13 +55,14 @@ const props = withDefaults( multiline: false, rows: 3, autosize: false, + autofocus: false, }, ); const emit = defineEmits(['update:value']); const value = useVModel(props, 'value', emit); const showPassword = ref(false); -const { id, placeholder, label, validationRules, labelPosition, labelWidth, labelAlign, autosize, readonly, disabled, clearable, type, multiline, rows, rawText } = toRefs(props); +const { id, placeholder, label, validationRules, labelPosition, labelWidth, labelAlign, autosize, readonly, disabled, clearable, type, multiline, rows, rawText, autofocus } = toRefs(props); const validation = props.validation @@ -74,12 +76,9 @@ const theme = useTheme(); const appTheme = useAppTheme(); const textareaRef = ref(); +const inputRef = ref(); const inputWrapperRef = ref(); -defineExpose({ - inputWrapperRef, -}); - watch( value, () => { @@ -107,6 +106,38 @@ const htmlInputType = computed(() => { return 'text'; }); + +function focus() { + if (textareaRef.value) { + textareaRef.value.focus(); + } + + if (inputRef.value) { + inputRef.value.focus(); + } +} + +function blur() { + if (textareaRef.value) { + textareaRef.value.blur?.(); + } + + if (inputRef.value) { + inputRef.value.blur?.(); + } +} + +onMounted(() => { + if (autofocus.value) { + focus(); + } +}); + +defineExpose({ + inputWrapperRef, + focus, + blur, +}); @@ -140,6 +171,7 @@ const htmlInputType = computed(() => { +const modal1 = ref(); + + + + + modal1?.open()"> + Open Modal + + + + Content + + + diff --git a/src/ui/c-modal/c-modal.theme.ts b/src/ui/c-modal/c-modal.theme.ts new file mode 100644 index 00000000..0681417b --- /dev/null +++ b/src/ui/c-modal/c-modal.theme.ts @@ -0,0 +1,11 @@ +import { defineThemes } from '../theme/theme.models'; +import { appThemes } from '../theme/themes'; + +export const { useTheme } = defineThemes({ + dark: { + background: appThemes.dark.background, + }, + light: { + background: appThemes.light.background, + }, +}); diff --git a/src/ui/c-modal/c-modal.vue b/src/ui/c-modal/c-modal.vue new file mode 100644 index 00000000..af92f01a --- /dev/null +++ b/src/ui/c-modal/c-modal.vue @@ -0,0 +1,74 @@ + + + + + + + + + + + + + diff --git a/src/ui/theme/themes.ts b/src/ui/theme/themes.ts index 81d7ddfd..2c330b03 100644 --- a/src/ui/theme/themes.ts +++ b/src/ui/theme/themes.ts @@ -2,6 +2,7 @@ import { defineThemes } from './theme.models'; export const { themes: appThemes, useTheme: useAppTheme } = defineThemes({ light: { + background: '#ffffff', text: { baseColor: '#333639', mutedColor: '#767c82', @@ -37,6 +38,7 @@ export const { themes: appThemes, useTheme: useAppTheme } = defineThemes({ }, }, dark: { + background: '#1e1e1e', text: { baseColor: '#ffffffd1', mutedColor: '#ffffff80', diff --git a/unocss.config.ts b/unocss.config.ts index 3890ad15..06a92151 100644 --- a/unocss.config.ts +++ b/unocss.config.ts @@ -10,5 +10,9 @@ import { export default defineConfig({ presets: [presetUno(), presetAttributify(), presetTypography()], transformers: [transformerDirectives(), transformerVariantGroup()], - safelist: 'prose prose-sm m-auto text-left'.split(' '), + theme: { + colors: { + primary: '#1ea54c', + }, + }, });