From d0017bf847c05f64c3bd131b9e57b2f90009fbe3 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Tue, 30 Apr 2024 18:14:18 +0200 Subject: [PATCH] feat(CommandPalette): new component (#80) --- package.json | 2 + playground/app.vue | 1 + playground/pages/command-palette.vue | 152 +++ playground/pages/dropdown-menu.vue | 4 +- pnpm-lock.yaml | 101 +- src/runtime/components/Chip.vue | 9 +- src/runtime/components/CommandPalette.vue | 248 ++++ src/runtime/components/ContextMenu.vue | 9 +- src/runtime/components/DropdownMenu.vue | 9 +- src/runtime/components/Popover.vue | 4 +- src/runtime/composables/defineShortcuts.ts | 3 + src/runtime/composables/useComponentIcons.ts | 9 + src/runtime/types/index.d.ts | 1 + src/runtime/utils/fuse.ts | 79 ++ src/theme/chip.ts | 5 +- src/theme/command-palette.ts | 25 + src/theme/index.ts | 1 + test/components/Alert.spec.ts | 2 +- test/components/AvatarGroup.spec.ts | 12 +- test/components/CommandPalette.spec.ts | 87 ++ test/components/FormField.spec.ts | 6 +- test/components/Toast.spec.ts | 12 +- test/components/Tooltip.spec.ts | 8 +- .../__snapshots__/Alert.spec.ts.snap | 2 +- .../__snapshots__/Chip.spec.ts.snap | 52 +- .../__snapshots__/CommandPalette.spec.ts.snap | 1065 +++++++++++++++++ .../__snapshots__/FormField.spec.ts.snap | 10 +- .../__snapshots__/Toast.spec.ts.snap | 14 +- .../__snapshots__/Tooltip.spec.ts.snap | 25 +- vitest.config.mts => vitest.config.ts | 0 30 files changed, 1832 insertions(+), 125 deletions(-) create mode 100644 playground/pages/command-palette.vue create mode 100644 src/runtime/components/CommandPalette.vue create mode 100644 src/runtime/utils/fuse.ts create mode 100644 src/theme/command-palette.ts create mode 100644 test/components/CommandPalette.spec.ts create mode 100644 test/components/__snapshots__/CommandPalette.spec.ts.snap rename vitest.config.mts => vitest.config.ts (100%) diff --git a/package.json b/package.json index e9b346ff..166efbed 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,9 @@ "@tailwindcss/postcss": "4.0.0-alpha.14", "@tailwindcss/vite": "4.0.0-alpha.14", "@vueuse/core": "^10.9.0", + "@vueuse/integrations": "^10.9.0", "defu": "^6.1.4", + "fuse.js": "^7.0.0", "ohash": "^1.1.3", "radix-vue": "^1.7.3", "scule": "^1.3.0", diff --git a/playground/app.vue b/playground/app.vue index 0c606a8a..0be468ba 100644 --- a/playground/app.vue +++ b/playground/app.vue @@ -21,6 +21,7 @@ const components = [ 'chip', 'collapsible', 'context-menu', + 'command-palette', 'drawer', 'dropdown-menu', 'form', diff --git a/playground/pages/command-palette.vue b/playground/pages/command-palette.vue new file mode 100644 index 00000000..c785d326 --- /dev/null +++ b/playground/pages/command-palette.vue @@ -0,0 +1,152 @@ + + + diff --git a/playground/pages/dropdown-menu.vue b/playground/pages/dropdown-menu.vue index a03e3658..b63a46f6 100644 --- a/playground/pages/dropdown-menu.vue +++ b/playground/pages/dropdown-menu.vue @@ -119,8 +119,8 @@ defineShortcuts(extractShortcuts(items))