diff --git a/playground/pages/accordion.vue b/playground/pages/accordion.vue index baf3973b..7b977061 100644 --- a/playground/pages/accordion.vue +++ b/playground/pages/accordion.vue @@ -22,7 +22,7 @@ const items = [{ content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.' }, { label: 'Utilities', - slot: 'toto', + slot: 'custom' as const, icon: 'i-heroicons-wrench-screwdriver', content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.' }] @@ -30,6 +30,10 @@ const items = [{ diff --git a/playground/pages/breadcrumb.vue b/playground/pages/breadcrumb.vue index 727d8ebc..6ee53117 100644 --- a/playground/pages/breadcrumb.vue +++ b/playground/pages/breadcrumb.vue @@ -3,7 +3,7 @@ const items = [{ label: 'Home', to: '/' }, { - slot: 'dropdown', + slot: 'dropdown' as const, icon: 'i-heroicons-ellipsis-horizontal', children: [{ label: 'Documentation' diff --git a/playground/pages/dropdown-menu.vue b/playground/pages/dropdown-menu.vue index 2c5ae0ce..08a176d9 100644 --- a/playground/pages/dropdown-menu.vue +++ b/playground/pages/dropdown-menu.vue @@ -1,4 +1,6 @@ diff --git a/src/runtime/components/Accordion.vue b/src/runtime/components/Accordion.vue index f3171533..4df29738 100644 --- a/src/runtime/components/Accordion.vue +++ b/src/runtime/components/Accordion.vue @@ -4,6 +4,7 @@ import type { AccordionRootProps, AccordionRootEmits, AccordionContentProps } fr import type { AppConfig } from '@nuxt/schema' import _appConfig from '#build/app.config' import theme from '#build/ui/accordion' +import type { DynamicSlots } from '#ui/types/utils' const appConfig = _appConfig as AppConfig & { ui: { accordion: Partial } } @@ -31,14 +32,13 @@ export interface AccordionEmits extends AccordionRootEmits {} type SlotProps = (props: { item: T, index: number }) => any -export type AccordionSlots = { +export type AccordionSlots = { default: SlotProps leading: SlotProps label: SlotProps trailing: SlotProps content: SlotProps - [key: string]: SlotProps -} +} & DynamicSlots> diff --git a/src/runtime/components/DropdownMenuContent.vue b/src/runtime/components/DropdownMenuContent.vue index a5923e8b..ff0aa9cc 100644 --- a/src/runtime/components/DropdownMenuContent.vue +++ b/src/runtime/components/DropdownMenuContent.vue @@ -16,7 +16,7 @@ interface DropdownMenuContentProps extends Omit extends DropdownMenuSlots {} +type DropdownMenuContentSlots = DropdownMenuSlots