diff --git a/src/runtime/components/CommandPalette.vue b/src/runtime/components/CommandPalette.vue index 8af30c4a85..c96174e772 100644 --- a/src/runtime/components/CommandPalette.vue +++ b/src/runtime/components/CommandPalette.vue @@ -554,7 +554,7 @@ function onSelect(e: Event, item: T) { :loading="loading" :loading-icon="loadingIcon" :trailing-icon="trailingIcon" - :icon="icon || appConfig.ui.icons.search" + :icon="icon ?? appConfig.ui.icons.search" data-slot="input" :class="ui.input({ class: uiProp?.input })" @keydown.backspace="onBackspace" diff --git a/src/runtime/components/DashboardSearch.vue b/src/runtime/components/DashboardSearch.vue index fd68553515..421043d91c 100644 --- a/src/runtime/components/DashboardSearch.vue +++ b/src/runtime/components/DashboardSearch.vue @@ -3,7 +3,7 @@ import type { VNode } from 'vue' import type { AppConfig } from '@nuxt/schema' import theme from '#build/ui/dashboard-search' -import type { ButtonProps, ModalProps, CommandPaletteProps, CommandPaletteSlots, CommandPaletteGroup, CommandPaletteItem, LinkPropsKeys } from '../types' +import type { ButtonProps, ModalProps, CommandPaletteProps, CommandPaletteSlots, CommandPaletteGroup, CommandPaletteItem, LinkPropsKeys, InputProps } from '../types' import type { ComponentConfig } from '../types/tv' type DashboardSearch = ComponentConfig @@ -39,6 +39,11 @@ export interface DashboardSearchProps, CommandPaletteItem>['ui'] + /** + * Configure the input or hide it with `false`. + * @defaultValue true + */ + input?: boolean | Omit } export type DashboardSearchSlots = CommandPaletteSlots & { @@ -82,7 +87,7 @@ const colorMode = useColorMode() const appConfig = useAppConfig() as DashboardSearch['AppConfig'] const uiProp = useComponentUI('dashboardSearch', props) -const commandPaletteProps = useForwardProps(reactivePick(props, 'size', 'icon', 'placeholder', 'autofocus', 'loading', 'loadingIcon', 'close', 'closeIcon', 'searchDelay')) +const commandPaletteProps = useForwardProps(reactivePick(props, 'size', 'icon', 'placeholder', 'autofocus', 'loading', 'loadingIcon', 'close', 'closeIcon', 'searchDelay', 'input')) const modalProps = useForwardProps(reactivePick(props, 'overlay', 'transition', 'content', 'dismissible', 'fullscreen', 'modal', 'portal')) const getProxySlots = () => omit(slots, ['content']) @@ -176,7 +181,7 @@ defineExpose({ v-bind="commandPaletteProps" :groups="groups" :fuse="fuse" - :input="{ fixed: true }" + :input="commandPaletteProps.input ?? { fixed: true }" :ui="transformUI(omit(ui, ['modal']), uiProp)" @update:model-value="onSelect" @update:open="open = $event"