mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 20:19:34 +01:00
chore(DropdownMenu): move slots type to parent
This commit is contained in:
@@ -4,7 +4,7 @@ import type { DropdownMenuRootProps, DropdownMenuRootEmits, DropdownMenuContentP
|
||||
import type { AppConfig } from '@nuxt/schema'
|
||||
import _appConfig from '#build/app.config'
|
||||
import theme from '#build/ui/dropdown-menu'
|
||||
import type { AvatarProps, IconProps, KbdProps, LinkProps, DropdownMenuContentSlots } from '#ui/types'
|
||||
import type { AvatarProps, IconProps, KbdProps, LinkProps } from '#ui/types'
|
||||
|
||||
const appConfig = _appConfig as AppConfig & { ui: { dropdownMenu: Partial<typeof theme> } }
|
||||
|
||||
@@ -37,8 +37,13 @@ export interface DropdownMenuProps<T> extends Omit<DropdownMenuRootProps, 'dir'>
|
||||
|
||||
export interface DropdownMenuEmits extends DropdownMenuRootEmits {}
|
||||
|
||||
export interface DropdownMenuSlots<T> extends DropdownMenuContentSlots<T> {
|
||||
default (): any
|
||||
type SlotProps<T> = (props: { item: T, active?: boolean }) => any
|
||||
|
||||
export interface DropdownMenuSlots<T> {
|
||||
default(): any
|
||||
leading: SlotProps<T>
|
||||
label: SlotProps<T>
|
||||
trailing: SlotProps<T>
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import type { DropdownMenuContentProps as RadixDropdownMenuContentProps, DropdownMenuContentEmits as RadixDropdownMenuContentEmits } from 'radix-vue'
|
||||
import type { DropdownMenuItem } from '#ui/types'
|
||||
import type { DropdownMenuItem, DropdownMenuSlots } from '#ui/types'
|
||||
|
||||
export interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuContentProps, 'asChild' | 'forceMount'> {
|
||||
interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuContentProps, 'asChild' | 'forceMount'> {
|
||||
items?: T[] | T[][]
|
||||
portal?: boolean
|
||||
sub?: boolean
|
||||
@@ -10,16 +10,9 @@ export interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuConte
|
||||
ui: any
|
||||
}
|
||||
|
||||
export interface DropdownMenuContentEmits extends RadixDropdownMenuContentEmits {}
|
||||
interface DropdownMenuContentEmits extends RadixDropdownMenuContentEmits {}
|
||||
|
||||
type SlotProps<T> = (props: { item: T, active?: boolean }) => any
|
||||
|
||||
export interface DropdownMenuContentSlots<T> {
|
||||
default(): any
|
||||
leading: SlotProps<T>
|
||||
label: SlotProps<T>
|
||||
trailing: SlotProps<T>
|
||||
}
|
||||
interface DropdownMenuContentSlots<T> extends DropdownMenuSlots<T> {}
|
||||
</script>
|
||||
|
||||
<script setup lang="ts" generic="T extends DropdownMenuItem">
|
||||
|
||||
1
src/runtime/types/index.d.ts
vendored
1
src/runtime/types/index.d.ts
vendored
@@ -9,7 +9,6 @@ export * from '../components/Chip.vue'
|
||||
export * from '../components/Collapsible.vue'
|
||||
export * from '../components/Container.vue'
|
||||
export * from '../components/DropdownMenu.vue'
|
||||
export * from '../components/DropdownMenuContent.vue'
|
||||
export * from '../components/Form.vue'
|
||||
export * from '../components/FormField.vue'
|
||||
export * from '../components/Icon.vue'
|
||||
|
||||
Reference in New Issue
Block a user