@@ -5,6 +5,11 @@ export type ComponentProps = ComponentPublicInstance['$props']
55export type ModalId = number | string | symbol
66export type StyleValue = string | CSSProperties | ( string | CSSProperties ) [ ]
77
8+ export type ModalSlot < T extends Record < string , any > = { } > = string | {
9+ component : Component
10+ attrs ?: T
11+ }
12+
813export type UseModalOptionsPrivate <
914 ModalProps extends ComponentProps = { } ,
1015 DefaultSlotProps extends ComponentProps = { } ,
@@ -13,11 +18,8 @@ export type UseModalOptionsPrivate<
1318 component : Component
1419 attrs ?: ModalProps
1520 slots ?: {
16- default : string | {
17- component : Component
18- attrs ?: DefaultSlotProps
19- }
20- [ key : string ] : any
21+ default : ModalSlot < DefaultSlotProps >
22+ [ key : string ] : ModalSlot
2123 }
2224
2325 id ?: symbol
@@ -26,22 +28,32 @@ export type UseModalOptionsPrivate<
2628 resolveClosed ?: ( ) => void
2729}
2830
31+ export type ModalOptions <
32+ ModalProps extends ComponentProps ,
33+ DefaultSlotProps extends ComponentProps = { } ,
34+ > = Pick <
35+ UseModalOptionsPrivate < ModalProps , DefaultSlotProps > ,
36+ | 'context'
37+ | 'component'
38+ | 'attrs'
39+ | 'slots'
40+ >
41+
2942export type UseModalOptions <
3043 ModalProps extends ComponentProps ,
3144 DefaultSlotProps extends ComponentProps = { } ,
32- > = Pick <
33- UseModalOptionsPrivate < ModalProps , DefaultSlotProps > ,
34- | 'context'
35- | 'component'
36- | 'attrs'
37- | 'slots'
38- >
45+ > = Omit < ModalOptions < ModalProps , DefaultSlotProps > , 'slots' > & {
46+ slots ?: {
47+ default : ModalSlot < DefaultSlotProps > | Component
48+ [ key : string ] : ModalSlot | Component
49+ }
50+ }
3951
4052export type UseModalReturnType < ModalProps extends ComponentProps , DefaultSlotProps extends ComponentProps > = {
41- options : UseModalOptions < ModalProps , DefaultSlotProps >
53+ options : ModalOptions < ModalProps , DefaultSlotProps >
4254 open : ( ) => Promise < string >
4355 close : ( ) => Promise < string >
44- patchOptions : ( options : UseModalOptions < ModalProps , DefaultSlotProps > ) => void
56+ patchOptions : ( options : ModalOptions < ModalProps , DefaultSlotProps > ) => void
4557 destroy : ( ) => void
4658}
4759
0 commit comments