mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-26 09:50:33 +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 type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/dropdown-menu'
|
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> } }
|
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 DropdownMenuEmits extends DropdownMenuRootEmits {}
|
||||||
|
|
||||||
export interface DropdownMenuSlots<T> extends DropdownMenuContentSlots<T> {
|
type SlotProps<T> = (props: { item: T, active?: boolean }) => any
|
||||||
default (): any
|
|
||||||
|
export interface DropdownMenuSlots<T> {
|
||||||
|
default(): any
|
||||||
|
leading: SlotProps<T>
|
||||||
|
label: SlotProps<T>
|
||||||
|
trailing: SlotProps<T>
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { DropdownMenuContentProps as RadixDropdownMenuContentProps, DropdownMenuContentEmits as RadixDropdownMenuContentEmits } from 'radix-vue'
|
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[][]
|
items?: T[] | T[][]
|
||||||
portal?: boolean
|
portal?: boolean
|
||||||
sub?: boolean
|
sub?: boolean
|
||||||
@@ -10,16 +10,9 @@ export interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuConte
|
|||||||
ui: any
|
ui: any
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DropdownMenuContentEmits extends RadixDropdownMenuContentEmits {}
|
interface DropdownMenuContentEmits extends RadixDropdownMenuContentEmits {}
|
||||||
|
|
||||||
type SlotProps<T> = (props: { item: T, active?: boolean }) => any
|
interface DropdownMenuContentSlots<T> extends DropdownMenuSlots<T> {}
|
||||||
|
|
||||||
export interface DropdownMenuContentSlots<T> {
|
|
||||||
default(): any
|
|
||||||
leading: SlotProps<T>
|
|
||||||
label: SlotProps<T>
|
|
||||||
trailing: SlotProps<T>
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script setup lang="ts" generic="T extends DropdownMenuItem">
|
<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/Collapsible.vue'
|
||||||
export * from '../components/Container.vue'
|
export * from '../components/Container.vue'
|
||||||
export * from '../components/DropdownMenu.vue'
|
export * from '../components/DropdownMenu.vue'
|
||||||
export * from '../components/DropdownMenuContent.vue'
|
|
||||||
export * from '../components/Form.vue'
|
export * from '../components/Form.vue'
|
||||||
export * from '../components/FormField.vue'
|
export * from '../components/FormField.vue'
|
||||||
export * from '../components/Icon.vue'
|
export * from '../components/Icon.vue'
|
||||||
|
|||||||
Reference in New Issue
Block a user