diff --git a/packages/api-generator/src/locale/en/VCommandPalette.json b/packages/api-generator/src/locale/en/VCommandPalette.json
new file mode 100644
index 00000000000..db6c6f03a82
--- /dev/null
+++ b/packages/api-generator/src/locale/en/VCommandPalette.json
@@ -0,0 +1,25 @@
+{
+ "props": {
+ "modelValue": "Controls the visibility of the command palette dialog. Use `v-model` for two-way binding.",
+ "search": "The current search query. Use `v-model:search` to control or monitor the search input value.",
+ "items": "Array of command palette items. Objects should have **title** and optionally **subtitle**, **prependIcon**, **appendIcon**, **prependAvatar**, **appendAvatar**, **hotkey**, **onClick**, **to**, **href**, and **value** properties. Use `type: 'subheader'` with a **title** for section headers, or `type: 'divider'` for visual separators between groups.",
+ "hotkey": "Global keyboard shortcut to toggle the palette. Accepts hotkey strings like `'ctrl+shift+p'` or `'meta+j'`. The shortcut is automatically registered on mount and cleaned up on unmount.",
+ "placeholder": "Placeholder text displayed in the search input. Defaults to the `$vuetify.command.search` locale string.",
+ "inputIcon": "Icon to display at the start of the search input field. Defaults to `'mdi-magnify'`.",
+ "noDataText": "Text displayed when no items match the current search query. Defaults to `$vuetify.noDataText`.",
+ "location": "Controls the position of the dialog. Supports values like `'top'`, `'bottom'`, `'center'` and combinations. Passed to the underlying **v-dialog**.",
+ "activator": "Element to use as the activator. Set to `'parent'` to use the parent element, or provide a CSS selector or element reference. Passed to the underlying **v-dialog**.",
+ "dialogProps": "Additional props to pass through to the underlying **v-dialog** component. Useful for customizing behavior like `persistent`, `fullscreen`, `width`, `maxWidth`, etc."
+ },
+ "events": {
+ "update:modelValue": "Emitted when the dialog visibility changes.",
+ "update:search": "Emitted when the search query changes.",
+ "click:item": "Emitted when an item is clicked or activated via Enter key. The payload includes the selected item object and the triggering event (MouseEvent or KeyboardEvent). The palette automatically closes after this event."
+ },
+ "slots": {
+ "prepend": "Content to render above the search input, inside the command palette card. Useful for headers, breadcrumbs, or instructions.",
+ "input": "Custom search input field. Replaces the default **v-text-field**. Useful for providing a completely custom search implementation.",
+ "append": "Content to render below the items list, inside the command palette card. Useful for footers, keyboard shortcut hints, or additional actions.",
+ "no-data": "Custom content to display when no items match the search query. Replaces the default no-data message."
+ }
+}
diff --git a/packages/api-generator/src/locale/en/VList.json b/packages/api-generator/src/locale/en/VList.json
index 6d0822e5a21..8ef3b2684cf 100644
--- a/packages/api-generator/src/locale/en/VList.json
+++ b/packages/api-generator/src/locale/en/VList.json
@@ -30,9 +30,10 @@
"update:selected": "Emitted when the list item is selected."
},
"slots": {
- "divider": "Slot for the divider.",
- "header": "Slot for the header.",
- "subheader": "Removes the top padding from `v-list-subheader` components. When used as a **String**, renders a subheader for you.",
+ "item": "Slot for rendering custom list items. Receives `{ props }` where `props` contains item data (`title`, `subtitle`, `value`, etc.) plus `index` (the item's position in the list). Use this to completely customize item rendering while still using VList's navigation and selection features.",
+ "divider": "Slot for rendering custom dividers. Receives `{ props }` containing divider item data including `value`. Note: dividers do not receive `index` since they are not navigable items.",
+ "subheader": "Slot for rendering custom subheaders. Receives `{ props }` containing subheader item data including `title` and `value`. Note: subheaders do not receive `index` since they are not navigable items.",
+ "header": "Slot for rendering custom group headers when using nested items. Receives `{ props }` containing the group's header item data plus activator props for expand/collapse functionality.",
"children": "Slot for the children.",
"focus": "Slot for the focus.",
"open": "Slot for the open.",
diff --git a/packages/docs/src/data/nav.json b/packages/docs/src/data/nav.json
index 97570e96313..d408f0f6d0d 100644
--- a/packages/docs/src/data/nav.json
+++ b/packages/docs/src/data/nav.json
@@ -254,6 +254,10 @@
"title": "color-inputs",
"subfolder": "components"
},
+ {
+ "title": "command-palettes",
+ "subfolder": "components"
+ },
{
"title": "date-inputs",
"subfolder": "components"
diff --git a/packages/docs/src/examples/v-command-palette/prop-dialog.vue b/packages/docs/src/examples/v-command-palette/prop-dialog.vue
new file mode 100644
index 00000000000..1f178522bb9
--- /dev/null
+++ b/packages/docs/src/examples/v-command-palette/prop-dialog.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+ Default (Center)
+
+
+ Open Default
+
+
+
+
+
+
+
+
+
+ Top Position
+
+
+ Open at Top
+
+
+
+
+
+
+
+
+
+ Parent Activator
+
+
+ Click to Open
+
+
+
+
+
+
+
+
+
+
+ Custom Dialog Props
+
+
+ Open Persistent (No Close on Click Outside)
+
+
+
+
+
+
+
+
+
+ Selected: {{ selectedItem }}
+
+
+
+
+
+
+
diff --git a/packages/docs/src/examples/v-command-palette/prop-hotkey.vue b/packages/docs/src/examples/v-command-palette/prop-hotkey.vue
new file mode 100644
index 00000000000..21abd65dbb2
--- /dev/null
+++ b/packages/docs/src/examples/v-command-palette/prop-hotkey.vue
@@ -0,0 +1,225 @@
+
+