diff --git a/frontend/package.json b/frontend/package.json index 0c9e7d9fb..3ca8ce7c0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -81,6 +81,7 @@ "@typescript-eslint/parser": "^8.18.0", "@unovis/svelte": "1.4.3-beta.0", "@unovis/ts": "1.4.3-beta.0", + "cmdk-sv": "^0.0.18", "dotenv": "^16.4.7", "echarts": "^5.5.1", "eslint-plugin-storybook": "^0.10.2", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 556fe75fd..0b37da127 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: '@unovis/ts': specifier: 1.4.3-beta.0 version: 1.4.3-beta.0 + cmdk-sv: + specifier: ^0.0.18 + version: 0.0.18(svelte@4.2.19) dotenv: specifier: ^16.4.7 version: 16.4.7 @@ -749,6 +752,9 @@ packages: '@inlang/translatable@1.3.1': resolution: {integrity: sha512-VAtle21vRpIrB+axtHFrFB0d1HtDaaNj+lV77eZQTJyOWbTFYTVIQJ8WAbyw9eu4F6h6QC2FutLyxjMomxfpcQ==} + '@internationalized/date@3.6.0': + resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -825,6 +831,11 @@ packages: '@types/react': '>=16' react: '>=16' + '@melt-ui/svelte@0.76.2': + resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==} + peerDependencies: + svelte: '>=3 <5' + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1338,6 +1349,9 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tailwindcss/forms@0.5.9': resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} peerDependencies: @@ -1842,6 +1856,11 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bits-ui@0.21.16: + resolution: {integrity: sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.118 + bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} @@ -1944,6 +1963,11 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + cmdk-sv@0.0.18: + resolution: {integrity: sha512-istixiQSy9Ez/mQ4VXWB69btqNyDZckbd1XFEwR46Vw+n5zjdmvoWAcOTj0uX3FZXtw9ikwLVmfoW2nwwMClRg==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.1 + code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} @@ -2579,6 +2603,9 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + focus-trap@7.6.2: + resolution: {integrity: sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -3158,6 +3185,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -3836,6 +3868,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tailwindcss@3.4.16: resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==} engines: {node: '>=14.0.0'} @@ -4763,6 +4798,10 @@ snapshots: dependencies: '@inlang/language-tag': 1.5.1 + '@internationalized/date@3.6.0': + dependencies: + '@swc/helpers': 0.5.15 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -4842,6 +4881,16 @@ snapshots: '@types/react': 18.3.12 react: 18.3.1 + '@melt-ui/svelte@0.76.2(svelte@4.2.19)': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/dom': 1.6.12 + '@internationalized/date': 3.6.0 + dequal: 2.0.3 + focus-trap: 7.6.2 + nanoid: 5.0.9 + svelte: 4.2.19 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5462,6 +5511,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.16)': dependencies: mini-svg-data-uri: 1.4.4 @@ -6111,6 +6164,13 @@ snapshots: binary-extensions@2.3.0: {} + bits-ui@0.21.16(svelte@4.2.19): + dependencies: + '@internationalized/date': 3.6.0 + '@melt-ui/svelte': 0.76.2(svelte@4.2.19) + nanoid: 5.0.9 + svelte: 4.2.19 + bottleneck@2.19.5: {} brace-expansion@1.1.11: @@ -6226,6 +6286,12 @@ snapshots: clean-stack@2.2.0: {} + cmdk-sv@0.0.18(svelte@4.2.19): + dependencies: + bits-ui: 0.21.16(svelte@4.2.19) + nanoid: 5.0.9 + svelte: 4.2.19 + code-red@1.0.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -6961,6 +7027,10 @@ snapshots: flatted@3.3.2: {} + focus-trap@7.6.2: + dependencies: + tabbable: 6.2.0 + follow-redirects@1.15.9: {} for-each@0.3.3: @@ -7519,6 +7589,8 @@ snapshots: nanoid@3.3.8: {} + nanoid@5.0.9: {} + natural-compare@1.4.0: {} no-case@3.0.4: @@ -8242,6 +8314,8 @@ snapshots: symbol-tree@3.2.4: {} + tabbable@6.2.0: {} + tailwindcss@3.4.16: dependencies: '@alloc/quick-lru': 5.2.0 diff --git a/frontend/src/routes/(app)/(internal)/experimental/+layout.svelte b/frontend/src/routes/(app)/(internal)/experimental/+layout.svelte index 4cc2bd606..47493f306 100644 --- a/frontend/src/routes/(app)/(internal)/experimental/+layout.svelte +++ b/frontend/src/routes/(app)/(internal)/experimental/+layout.svelte @@ -1,3 +1,8 @@ + + +
diff --git a/frontend/src/routes/(app)/(internal)/experimental/CommandPalette.svelte b/frontend/src/routes/(app)/(internal)/experimental/CommandPalette.svelte new file mode 100644 index 000000000..97fb9214b --- /dev/null +++ b/frontend/src/routes/(app)/(internal)/experimental/CommandPalette.svelte @@ -0,0 +1,105 @@ + + + + + + + No results found. + + + {#each navigationCommands as command} + + {command.label} + + {/each} + + + + + + + +