@kingsy/headlessui-vue 1.7.23-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/dist/components/combobox/combobox.d.ts +323 -0
- package/dist/components/combobox/combobox.js +1 -0
- package/dist/components/description/description.d.ts +32 -0
- package/dist/components/description/description.js +1 -0
- package/dist/components/dialog/dialog.d.ts +202 -0
- package/dist/components/dialog/dialog.js +1 -0
- package/dist/components/disclosure/disclosure.d.ts +105 -0
- package/dist/components/disclosure/disclosure.js +1 -0
- package/dist/components/focus-trap/focus-trap.d.ts +151 -0
- package/dist/components/focus-trap/focus-trap.js +1 -0
- package/dist/components/label/label.d.ts +41 -0
- package/dist/components/label/label.js +1 -0
- package/dist/components/listbox/listbox.d.ts +229 -0
- package/dist/components/listbox/listbox.js +1 -0
- package/dist/components/menu/menu.d.ts +131 -0
- package/dist/components/menu/menu.js +1 -0
- package/dist/components/popover/popover.d.ts +151 -0
- package/dist/components/popover/popover.js +1 -0
- package/dist/components/portal/portal.d.ts +45 -0
- package/dist/components/portal/portal.js +1 -0
- package/dist/components/radio-group/radio-group.d.ts +184 -0
- package/dist/components/radio-group/radio-group.js +1 -0
- package/dist/components/switch/switch.d.ts +166 -0
- package/dist/components/switch/switch.js +1 -0
- package/dist/components/tabs/tabs.d.ts +177 -0
- package/dist/components/tabs/tabs.js +1 -0
- package/dist/components/transitions/transition.d.ts +234 -0
- package/dist/components/transitions/transition.js +1 -0
- package/dist/components/transitions/utils/transition.d.ts +5 -0
- package/dist/components/transitions/utils/transition.js +1 -0
- package/dist/headlessui.dev.cjs +8042 -0
- package/dist/headlessui.esm.js +1 -0
- package/dist/headlessui.esm.js.map +7 -0
- package/dist/headlessui.prod.cjs +7 -0
- package/dist/hooks/__mocks__/use-id.d.ts +1 -0
- package/dist/hooks/document-overflow/adjust-scrollbar-padding.d.ts +2 -0
- package/dist/hooks/document-overflow/adjust-scrollbar-padding.js +1 -0
- package/dist/hooks/document-overflow/handle-ios-locking.d.ts +6 -0
- package/dist/hooks/document-overflow/handle-ios-locking.js +1 -0
- package/dist/hooks/document-overflow/overflow-store.d.ts +19 -0
- package/dist/hooks/document-overflow/overflow-store.js +1 -0
- package/dist/hooks/document-overflow/prevent-scroll.d.ts +2 -0
- package/dist/hooks/document-overflow/prevent-scroll.js +1 -0
- package/dist/hooks/document-overflow/use-document-overflow.d.ts +3 -0
- package/dist/hooks/document-overflow/use-document-overflow.js +1 -0
- package/dist/hooks/use-controllable.d.ts +2 -0
- package/dist/hooks/use-controllable.js +1 -0
- package/dist/hooks/use-disposables.d.ts +25 -0
- package/dist/hooks/use-disposables.js +1 -0
- package/dist/hooks/use-document-event.d.ts +2 -0
- package/dist/hooks/use-document-event.js +1 -0
- package/dist/hooks/use-event-listener.d.ts +1 -0
- package/dist/hooks/use-event-listener.js +1 -0
- package/dist/hooks/use-frame-debounce.d.ts +8 -0
- package/dist/hooks/use-frame-debounce.js +1 -0
- package/dist/hooks/use-id.d.ts +1 -0
- package/dist/hooks/use-id.js +1 -0
- package/dist/hooks/use-inert.d.ts +2 -0
- package/dist/hooks/use-inert.js +1 -0
- package/dist/hooks/use-outside-click.d.ts +6 -0
- package/dist/hooks/use-outside-click.js +1 -0
- package/dist/hooks/use-resolve-button-type.d.ts +5 -0
- package/dist/hooks/use-resolve-button-type.js +1 -0
- package/dist/hooks/use-root-containers.d.ts +19 -0
- package/dist/hooks/use-root-containers.js +1 -0
- package/dist/hooks/use-store.d.ts +2 -0
- package/dist/hooks/use-store.js +1 -0
- package/dist/hooks/use-tab-direction.d.ts +5 -0
- package/dist/hooks/use-tab-direction.js +1 -0
- package/dist/hooks/use-text-value.d.ts +2 -0
- package/dist/hooks/use-text-value.js +1 -0
- package/dist/hooks/use-tracked-pointer.d.ts +4 -0
- package/dist/hooks/use-tracked-pointer.js +1 -0
- package/dist/hooks/use-tree-walker.d.ts +9 -0
- package/dist/hooks/use-tree-walker.js +1 -0
- package/dist/hooks/use-window-event.d.ts +2 -0
- package/dist/hooks/use-window-event.js +1 -0
- package/dist/index.cjs +7 -0
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +1 -0
- package/dist/internal/dom-containers.d.ts +1 -0
- package/dist/internal/dom-containers.js +1 -0
- package/dist/internal/focus-sentinel.d.ts +13 -0
- package/dist/internal/focus-sentinel.js +1 -0
- package/dist/internal/hidden.d.ts +32 -0
- package/dist/internal/hidden.js +1 -0
- package/dist/internal/open-closed.d.ts +10 -0
- package/dist/internal/open-closed.js +1 -0
- package/dist/internal/portal-force-root.d.ts +27 -0
- package/dist/internal/portal-force-root.js +1 -0
- package/dist/internal/stack-context.d.ts +14 -0
- package/dist/internal/stack-context.js +1 -0
- package/dist/keyboard.d.ts +16 -0
- package/dist/keyboard.js +1 -0
- package/dist/mouse.d.ts +4 -0
- package/dist/mouse.js +1 -0
- package/dist/utils/active-element-history.d.ts +1 -0
- package/dist/utils/active-element-history.js +1 -0
- package/dist/utils/calculate-active-index.d.ts +25 -0
- package/dist/utils/calculate-active-index.js +1 -0
- package/dist/utils/disposables.d.ts +12 -0
- package/dist/utils/disposables.js +1 -0
- package/dist/utils/document-ready.d.ts +1 -0
- package/dist/utils/document-ready.js +1 -0
- package/dist/utils/dom.d.ts +4 -0
- package/dist/utils/dom.js +1 -0
- package/dist/utils/env.d.ts +13 -0
- package/dist/utils/env.js +1 -0
- package/dist/utils/focus-management.d.ts +38 -0
- package/dist/utils/focus-management.js +1 -0
- package/dist/utils/form.d.ts +4 -0
- package/dist/utils/form.js +1 -0
- package/dist/utils/get-text-value.d.ts +1 -0
- package/dist/utils/get-text-value.js +1 -0
- package/dist/utils/match.d.ts +1 -0
- package/dist/utils/match.js +1 -0
- package/dist/utils/micro-task.d.ts +1 -0
- package/dist/utils/micro-task.js +1 -0
- package/dist/utils/once.d.ts +1 -0
- package/dist/utils/once.js +1 -0
- package/dist/utils/owner.d.ts +2 -0
- package/dist/utils/owner.js +1 -0
- package/dist/utils/pipeline.d.ts +4 -0
- package/dist/utils/pipeline.js +1 -0
- package/dist/utils/platform.d.ts +3 -0
- package/dist/utils/platform.js +1 -0
- package/dist/utils/render.d.ts +39 -0
- package/dist/utils/render.js +4 -0
- package/dist/utils/resolve-prop-value.d.ts +1 -0
- package/dist/utils/resolve-prop-value.js +1 -0
- package/dist/utils/store.d.ts +11 -0
- package/dist/utils/store.js +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
export declare let SwitchGroup: import("vue").DefineComponent<{
|
|
2
|
+
as: {
|
|
3
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
4
|
+
default: string;
|
|
5
|
+
};
|
|
6
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
as: {
|
|
12
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
13
|
+
default: string;
|
|
14
|
+
};
|
|
15
|
+
}>>, {
|
|
16
|
+
as: string | Record<string, any>;
|
|
17
|
+
}>;
|
|
18
|
+
export declare let Switch: import("vue").DefineComponent<{
|
|
19
|
+
as: {
|
|
20
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
21
|
+
default: string;
|
|
22
|
+
};
|
|
23
|
+
modelValue: {
|
|
24
|
+
type: BooleanConstructor;
|
|
25
|
+
default: undefined;
|
|
26
|
+
};
|
|
27
|
+
defaultChecked: {
|
|
28
|
+
type: BooleanConstructor;
|
|
29
|
+
optional: boolean;
|
|
30
|
+
};
|
|
31
|
+
form: {
|
|
32
|
+
type: StringConstructor;
|
|
33
|
+
optional: boolean;
|
|
34
|
+
};
|
|
35
|
+
name: {
|
|
36
|
+
type: StringConstructor;
|
|
37
|
+
optional: boolean;
|
|
38
|
+
};
|
|
39
|
+
value: {
|
|
40
|
+
type: StringConstructor;
|
|
41
|
+
optional: boolean;
|
|
42
|
+
};
|
|
43
|
+
id: {
|
|
44
|
+
type: StringConstructor;
|
|
45
|
+
default: () => string;
|
|
46
|
+
};
|
|
47
|
+
disabled: {
|
|
48
|
+
type: BooleanConstructor;
|
|
49
|
+
default: boolean;
|
|
50
|
+
};
|
|
51
|
+
tabIndex: {
|
|
52
|
+
type: NumberConstructor;
|
|
53
|
+
default: number;
|
|
54
|
+
};
|
|
55
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
56
|
+
[key: string]: any;
|
|
57
|
+
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
58
|
+
'update:modelValue': (_value: boolean) => true;
|
|
59
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
60
|
+
as: {
|
|
61
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
62
|
+
default: string;
|
|
63
|
+
};
|
|
64
|
+
modelValue: {
|
|
65
|
+
type: BooleanConstructor;
|
|
66
|
+
default: undefined;
|
|
67
|
+
};
|
|
68
|
+
defaultChecked: {
|
|
69
|
+
type: BooleanConstructor;
|
|
70
|
+
optional: boolean;
|
|
71
|
+
};
|
|
72
|
+
form: {
|
|
73
|
+
type: StringConstructor;
|
|
74
|
+
optional: boolean;
|
|
75
|
+
};
|
|
76
|
+
name: {
|
|
77
|
+
type: StringConstructor;
|
|
78
|
+
optional: boolean;
|
|
79
|
+
};
|
|
80
|
+
value: {
|
|
81
|
+
type: StringConstructor;
|
|
82
|
+
optional: boolean;
|
|
83
|
+
};
|
|
84
|
+
id: {
|
|
85
|
+
type: StringConstructor;
|
|
86
|
+
default: () => string;
|
|
87
|
+
};
|
|
88
|
+
disabled: {
|
|
89
|
+
type: BooleanConstructor;
|
|
90
|
+
default: boolean;
|
|
91
|
+
};
|
|
92
|
+
tabIndex: {
|
|
93
|
+
type: NumberConstructor;
|
|
94
|
+
default: number;
|
|
95
|
+
};
|
|
96
|
+
}>> & {
|
|
97
|
+
"onUpdate:modelValue"?: ((_value: boolean) => any) | undefined;
|
|
98
|
+
}, {
|
|
99
|
+
id: string;
|
|
100
|
+
tabIndex: number;
|
|
101
|
+
as: string | Record<string, any>;
|
|
102
|
+
disabled: boolean;
|
|
103
|
+
modelValue: boolean;
|
|
104
|
+
defaultChecked: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
export declare let SwitchLabel: import("vue").DefineComponent<{
|
|
107
|
+
as: {
|
|
108
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
109
|
+
default: string;
|
|
110
|
+
};
|
|
111
|
+
passive: {
|
|
112
|
+
type: BooleanConstructor[];
|
|
113
|
+
default: boolean;
|
|
114
|
+
};
|
|
115
|
+
id: {
|
|
116
|
+
type: StringConstructor;
|
|
117
|
+
default: () => string;
|
|
118
|
+
};
|
|
119
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
120
|
+
[key: string]: any;
|
|
121
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
122
|
+
[key: string]: any;
|
|
123
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
124
|
+
as: {
|
|
125
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
126
|
+
default: string;
|
|
127
|
+
};
|
|
128
|
+
passive: {
|
|
129
|
+
type: BooleanConstructor[];
|
|
130
|
+
default: boolean;
|
|
131
|
+
};
|
|
132
|
+
id: {
|
|
133
|
+
type: StringConstructor;
|
|
134
|
+
default: () => string;
|
|
135
|
+
};
|
|
136
|
+
}>>, {
|
|
137
|
+
passive: boolean;
|
|
138
|
+
id: string;
|
|
139
|
+
as: string | Record<string, any>;
|
|
140
|
+
}>;
|
|
141
|
+
export declare let SwitchDescription: import("vue").DefineComponent<{
|
|
142
|
+
as: {
|
|
143
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
144
|
+
default: string;
|
|
145
|
+
};
|
|
146
|
+
id: {
|
|
147
|
+
type: StringConstructor;
|
|
148
|
+
default: () => string;
|
|
149
|
+
};
|
|
150
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
151
|
+
[key: string]: any;
|
|
152
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
153
|
+
[key: string]: any;
|
|
154
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
155
|
+
as: {
|
|
156
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
157
|
+
default: string;
|
|
158
|
+
};
|
|
159
|
+
id: {
|
|
160
|
+
type: StringConstructor;
|
|
161
|
+
default: () => string;
|
|
162
|
+
};
|
|
163
|
+
}>>, {
|
|
164
|
+
id: string;
|
|
165
|
+
as: string | Record<string, any>;
|
|
166
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as B,computed as d,defineComponent as y,h as b,inject as H,onMounted as M,provide as I,ref as v,watch as P}from"vue";import{useControllable as j}from'../../hooks/use-controllable.js';import{useId as G}from'../../hooks/use-id.js';import{useResolveButtonType as V}from'../../hooks/use-resolve-button-type.js';import{Hidden as F,Features as O}from'../../internal/hidden.js';import{Keys as S}from'../../keyboard.js';import{dom as A}from'../../utils/dom.js';import{attemptSubmit as N}from'../../utils/form.js';import{compact as $,omit as U,render as w}from'../../utils/render.js';import{Description as _,useDescriptions as q}from'../description/description.js';import{Label as z,useLabels as J}from'../label/label.js';let g=Symbol("GroupContext"),ie=y({name:"SwitchGroup",props:{as:{type:[Object,String],default:"template"}},setup(l,{slots:p,attrs:o}){let a=v(null),f=J({name:"SwitchLabel",props:{htmlFor:d(()=>{var n;return(n=a.value)==null?void 0:n.id}),onClick(n){a.value&&(n.currentTarget.tagName==="LABEL"&&n.preventDefault(),a.value.click(),a.value.focus({preventScroll:!0}))}}}),t=q({name:"SwitchDescription"});return I(g,{switchRef:a,labelledby:f,describedby:t}),()=>w({theirProps:l,ourProps:{},slot:{},slots:p,attrs:o,name:"SwitchGroup"})}}),oe=y({name:"Switch",emits:{"update:modelValue":l=>!0},props:{as:{type:[Object,String],default:"button"},modelValue:{type:Boolean,default:void 0},defaultChecked:{type:Boolean,optional:!0},form:{type:String,optional:!0},name:{type:String,optional:!0},value:{type:String,optional:!0},id:{type:String,default:()=>`headlessui-switch-${G()}`},disabled:{type:Boolean,default:!1},tabIndex:{type:Number,default:0}},inheritAttrs:!1,setup(l,{emit:p,attrs:o,slots:a,expose:f}){let t=H(g,null),[i,n]=j(d(()=>l.modelValue),e=>p("update:modelValue",e),d(()=>l.defaultChecked));function s(){n(!i.value)}let k=v(null),u=t===null?k:t.switchRef,C=V(d(()=>({as:l.as,type:o.type})),u);f({el:u,$el:u});function E(e){e.preventDefault(),s()}function L(e){e.key===S.Space?(e.preventDefault(),s()):e.key===S.Enter&&N(e.currentTarget)}function D(e){e.preventDefault()}let c=d(()=>{var e,r;return(r=(e=A(u))==null?void 0:e.closest)==null?void 0:r.call(e,"form")});return M(()=>{P([c],()=>{if(!c.value||l.defaultChecked===void 0)return;function e(){n(l.defaultChecked)}return c.value.addEventListener("reset",e),()=>{var r;(r=c.value)==null||r.removeEventListener("reset",e)}},{immediate:!0})}),()=>{let{id:e,name:r,value:R,form:x,tabIndex:m,...h}=l,K={checked:i.value},T={id:e,ref:u,role:"switch",type:C.value,tabIndex:m===-1?0:m,"aria-checked":i.value,"aria-labelledby":t==null?void 0:t.labelledby.value,"aria-describedby":t==null?void 0:t.describedby.value,onClick:E,onKeyup:L,onKeypress:D};return b(B,[r!=null&&i.value!=null?b(F,$({features:O.Hidden,as:"input",type:"checkbox",hidden:!0,readOnly:!0,checked:i.value,form:x,disabled:h.disabled,name:r,value:R})):null,w({ourProps:T,theirProps:{...o,...U(h,["modelValue","defaultChecked"])},slot:K,attrs:o,slots:a,name:"Switch"})])}}}),ue=z,de=_;export{oe as Switch,de as SwitchDescription,ie as SwitchGroup,ue as SwitchLabel};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
export declare let TabGroup: import("vue").DefineComponent<{
|
|
2
|
+
as: {
|
|
3
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
4
|
+
default: string;
|
|
5
|
+
};
|
|
6
|
+
selectedIndex: {
|
|
7
|
+
type: NumberConstructor[];
|
|
8
|
+
default: null;
|
|
9
|
+
};
|
|
10
|
+
defaultIndex: {
|
|
11
|
+
type: NumberConstructor[];
|
|
12
|
+
default: number;
|
|
13
|
+
};
|
|
14
|
+
vertical: {
|
|
15
|
+
type: BooleanConstructor[];
|
|
16
|
+
default: boolean;
|
|
17
|
+
};
|
|
18
|
+
manual: {
|
|
19
|
+
type: BooleanConstructor[];
|
|
20
|
+
default: boolean;
|
|
21
|
+
};
|
|
22
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
25
|
+
change: (_index: number) => true;
|
|
26
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
27
|
+
as: {
|
|
28
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
29
|
+
default: string;
|
|
30
|
+
};
|
|
31
|
+
selectedIndex: {
|
|
32
|
+
type: NumberConstructor[];
|
|
33
|
+
default: null;
|
|
34
|
+
};
|
|
35
|
+
defaultIndex: {
|
|
36
|
+
type: NumberConstructor[];
|
|
37
|
+
default: number;
|
|
38
|
+
};
|
|
39
|
+
vertical: {
|
|
40
|
+
type: BooleanConstructor[];
|
|
41
|
+
default: boolean;
|
|
42
|
+
};
|
|
43
|
+
manual: {
|
|
44
|
+
type: BooleanConstructor[];
|
|
45
|
+
default: boolean;
|
|
46
|
+
};
|
|
47
|
+
}>> & {
|
|
48
|
+
onChange?: ((_index: number) => any) | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
as: string | Record<string, any>;
|
|
51
|
+
vertical: boolean;
|
|
52
|
+
manual: boolean;
|
|
53
|
+
selectedIndex: number;
|
|
54
|
+
defaultIndex: number;
|
|
55
|
+
}>;
|
|
56
|
+
export declare let TabList: import("vue").DefineComponent<{
|
|
57
|
+
as: {
|
|
58
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
59
|
+
default: string;
|
|
60
|
+
};
|
|
61
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
62
|
+
[key: string]: any;
|
|
63
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
64
|
+
[key: string]: any;
|
|
65
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
66
|
+
as: {
|
|
67
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
68
|
+
default: string;
|
|
69
|
+
};
|
|
70
|
+
}>>, {
|
|
71
|
+
as: string | Record<string, any>;
|
|
72
|
+
}>;
|
|
73
|
+
export declare let Tab: import("vue").DefineComponent<{
|
|
74
|
+
as: {
|
|
75
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
76
|
+
default: string;
|
|
77
|
+
};
|
|
78
|
+
disabled: {
|
|
79
|
+
type: BooleanConstructor[];
|
|
80
|
+
default: boolean;
|
|
81
|
+
};
|
|
82
|
+
id: {
|
|
83
|
+
type: StringConstructor;
|
|
84
|
+
default: () => string;
|
|
85
|
+
};
|
|
86
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
87
|
+
[key: string]: any;
|
|
88
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
89
|
+
[key: string]: any;
|
|
90
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
91
|
+
as: {
|
|
92
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
93
|
+
default: string;
|
|
94
|
+
};
|
|
95
|
+
disabled: {
|
|
96
|
+
type: BooleanConstructor[];
|
|
97
|
+
default: boolean;
|
|
98
|
+
};
|
|
99
|
+
id: {
|
|
100
|
+
type: StringConstructor;
|
|
101
|
+
default: () => string;
|
|
102
|
+
};
|
|
103
|
+
}>>, {
|
|
104
|
+
id: string;
|
|
105
|
+
as: string | Record<string, any>;
|
|
106
|
+
disabled: boolean;
|
|
107
|
+
}>;
|
|
108
|
+
export declare let TabPanels: import("vue").DefineComponent<{
|
|
109
|
+
as: {
|
|
110
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
111
|
+
default: string;
|
|
112
|
+
};
|
|
113
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
114
|
+
[key: string]: any;
|
|
115
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
116
|
+
[key: string]: any;
|
|
117
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
118
|
+
as: {
|
|
119
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
120
|
+
default: string;
|
|
121
|
+
};
|
|
122
|
+
}>>, {
|
|
123
|
+
as: string | Record<string, any>;
|
|
124
|
+
}>;
|
|
125
|
+
export declare let TabPanel: import("vue").DefineComponent<{
|
|
126
|
+
as: {
|
|
127
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
128
|
+
default: string;
|
|
129
|
+
};
|
|
130
|
+
static: {
|
|
131
|
+
type: BooleanConstructor;
|
|
132
|
+
default: boolean;
|
|
133
|
+
};
|
|
134
|
+
unmount: {
|
|
135
|
+
type: BooleanConstructor;
|
|
136
|
+
default: boolean;
|
|
137
|
+
};
|
|
138
|
+
id: {
|
|
139
|
+
type: StringConstructor;
|
|
140
|
+
default: () => string;
|
|
141
|
+
};
|
|
142
|
+
tabIndex: {
|
|
143
|
+
type: NumberConstructor;
|
|
144
|
+
default: number;
|
|
145
|
+
};
|
|
146
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
147
|
+
[key: string]: any;
|
|
148
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
149
|
+
[key: string]: any;
|
|
150
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
151
|
+
as: {
|
|
152
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
153
|
+
default: string;
|
|
154
|
+
};
|
|
155
|
+
static: {
|
|
156
|
+
type: BooleanConstructor;
|
|
157
|
+
default: boolean;
|
|
158
|
+
};
|
|
159
|
+
unmount: {
|
|
160
|
+
type: BooleanConstructor;
|
|
161
|
+
default: boolean;
|
|
162
|
+
};
|
|
163
|
+
id: {
|
|
164
|
+
type: StringConstructor;
|
|
165
|
+
default: () => string;
|
|
166
|
+
};
|
|
167
|
+
tabIndex: {
|
|
168
|
+
type: NumberConstructor;
|
|
169
|
+
default: number;
|
|
170
|
+
};
|
|
171
|
+
}>>, {
|
|
172
|
+
id: string;
|
|
173
|
+
tabIndex: number;
|
|
174
|
+
as: string | Record<string, any>;
|
|
175
|
+
unmount: boolean;
|
|
176
|
+
static: boolean;
|
|
177
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as z,computed as c,defineComponent as D,h as H,inject as A,onMounted as M,onUnmounted as K,provide as N,ref as h,watch as _,watchEffect as J}from"vue";import{useId as $}from'../../hooks/use-id.js';import{useResolveButtonType as Q}from'../../hooks/use-resolve-button-type.js';import{FocusSentinel as V}from'../../internal/focus-sentinel.js';import{Hidden as X}from'../../internal/hidden.js';import{Keys as I}from'../../keyboard.js';import{dom as o}from'../../utils/dom.js';import{Focus as y,FocusResult as C,focusIn as R,sortByDomNode as O}from'../../utils/focus-management.js';import{match as F}from'../../utils/match.js';import{microTask as Y}from'../../utils/micro-task.js';import{getOwnerDocument as Z}from'../../utils/owner.js';import{Features as q,omit as ee,render as L}from'../../utils/render.js';var te=(i=>(i[i.Forwards=0]="Forwards",i[i.Backwards=1]="Backwards",i))(te||{}),le=(s=>(s[s.Less=-1]="Less",s[s.Equal=0]="Equal",s[s.Greater=1]="Greater",s))(le||{});let U=Symbol("TabsContext");function k(a){let v=A(U,null);if(v===null){let i=new Error(`<${a} /> is missing a parent <TabGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(i,k),i}return v}let j=Symbol("TabsSSRContext"),me=D({name:"TabGroup",emits:{change:a=>!0},props:{as:{type:[Object,String],default:"template"},selectedIndex:{type:[Number],default:null},defaultIndex:{type:[Number],default:0},vertical:{type:[Boolean],default:!1},manual:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(a,{slots:v,attrs:i,emit:s}){var P;let l=h((P=a.selectedIndex)!=null?P:a.defaultIndex),n=h([]),d=h([]),S=c(()=>a.selectedIndex!==null),b=c(()=>S.value?a.selectedIndex:l.value);function m(t){var T;let e=O(r.tabs.value,o),u=O(r.panels.value,o),f=e.filter(p=>{var x;return!((x=o(p))!=null&&x.hasAttribute("disabled"))});if(t<0||t>e.length-1){let p=F(l.value===null?0:Math.sign(t-l.value),{[-1]:()=>1,[0]:()=>F(Math.sign(t),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0}),x=F(p,{[0]:()=>e.indexOf(f[0]),[1]:()=>e.indexOf(f[f.length-1])});x!==-1&&(l.value=x),r.tabs.value=e,r.panels.value=u}else{let p=e.slice(0,t),G=[...e.slice(t),...p].find(W=>f.includes(W));if(!G)return;let B=(T=e.indexOf(G))!=null?T:r.selectedIndex.value;B===-1&&(B=r.selectedIndex.value),l.value=B,r.tabs.value=e,r.panels.value=u}}let r={selectedIndex:c(()=>{var t,e;return(e=(t=l.value)!=null?t:a.defaultIndex)!=null?e:null}),orientation:c(()=>a.vertical?"vertical":"horizontal"),activation:c(()=>a.manual?"manual":"auto"),tabs:n,panels:d,setSelectedIndex(t){b.value!==t&&s("change",t),S.value||m(t)},registerTab(t){var u;if(n.value.includes(t))return;let e=n.value[l.value];if(n.value.push(t),n.value=O(n.value,o),!S.value){let f=(u=n.value.indexOf(e))!=null?u:l.value;f!==-1&&(l.value=f)}},unregisterTab(t){let e=n.value.indexOf(t);e!==-1&&n.value.splice(e,1)},registerPanel(t){d.value.includes(t)||(d.value.push(t),d.value=O(d.value,o))},unregisterPanel(t){let e=d.value.indexOf(t);e!==-1&&d.value.splice(e,1)}};N(U,r);let w=h({tabs:[],panels:[]}),g=h(!1);M(()=>{g.value=!0}),N(j,c(()=>g.value?null:w.value));let E=c(()=>a.selectedIndex);return M(()=>{_([E],()=>{var t;return m((t=a.selectedIndex)!=null?t:a.defaultIndex)},{immediate:!0})}),J(()=>{if(!S.value||b.value==null||r.tabs.value.length<=0)return;let t=O(r.tabs.value,o);t.some((u,f)=>o(r.tabs.value[f])!==o(u))&&r.setSelectedIndex(t.findIndex(u=>o(u)===o(r.tabs.value[b.value])))}),()=>{let t={selectedIndex:l.value};return H(z,[n.value.length<=0&&H(V,{onFocus:()=>{for(let e of n.value){let u=o(e);if((u==null?void 0:u.tabIndex)===0)return u.focus(),!0}return!1}}),L({theirProps:{...i,...ee(a,["selectedIndex","defaultIndex","manual","vertical","onChange"])},ourProps:{},slot:t,slots:v,attrs:i,name:"TabGroup"})])}}}),pe=D({name:"TabList",props:{as:{type:[Object,String],default:"div"}},setup(a,{attrs:v,slots:i}){let s=k("TabList");return()=>{let l={selectedIndex:s.selectedIndex.value},n={role:"tablist","aria-orientation":s.orientation.value};return L({ourProps:n,theirProps:a,slot:l,attrs:v,slots:i,name:"TabList"})}}}),xe=D({name:"Tab",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-tabs-tab-${$()}`}},setup(a,{attrs:v,slots:i,expose:s}){let l=k("Tab"),n=h(null);s({el:n,$el:n}),M(()=>l.registerTab(n)),K(()=>l.unregisterTab(n));let d=A(j),S=c(()=>{if(d.value){let e=d.value.tabs.indexOf(a.id);return e===-1?d.value.tabs.push(a.id)-1:e}return-1}),b=c(()=>{let e=l.tabs.value.indexOf(n);return e===-1?S.value:e}),m=c(()=>b.value===l.selectedIndex.value);function r(e){var f;let u=e();if(u===C.Success&&l.activation.value==="auto"){let T=(f=Z(n))==null?void 0:f.activeElement,p=l.tabs.value.findIndex(x=>o(x)===T);p!==-1&&l.setSelectedIndex(p)}return u}function w(e){let u=l.tabs.value.map(T=>o(T)).filter(Boolean);if(e.key===I.Space||e.key===I.Enter){e.preventDefault(),e.stopPropagation(),l.setSelectedIndex(b.value);return}switch(e.key){case I.Home:case I.PageUp:return e.preventDefault(),e.stopPropagation(),r(()=>R(u,y.First));case I.End:case I.PageDown:return e.preventDefault(),e.stopPropagation(),r(()=>R(u,y.Last))}if(r(()=>F(l.orientation.value,{vertical(){return e.key===I.ArrowUp?R(u,y.Previous|y.WrapAround):e.key===I.ArrowDown?R(u,y.Next|y.WrapAround):C.Error},horizontal(){return e.key===I.ArrowLeft?R(u,y.Previous|y.WrapAround):e.key===I.ArrowRight?R(u,y.Next|y.WrapAround):C.Error}}))===C.Success)return e.preventDefault()}let g=h(!1);function E(){var e;g.value||(g.value=!0,!a.disabled&&((e=o(n))==null||e.focus({preventScroll:!0}),l.setSelectedIndex(b.value),Y(()=>{g.value=!1})))}function P(e){e.preventDefault()}let t=Q(c(()=>({as:a.as,type:v.type})),n);return()=>{var p,x;let e={selected:m.value,disabled:(p=a.disabled)!=null?p:!1},{id:u,...f}=a,T={ref:n,onKeydown:w,onMousedown:P,onClick:E,id:u,role:"tab",type:t.value,"aria-controls":(x=o(l.panels.value[b.value]))==null?void 0:x.id,"aria-selected":m.value,tabIndex:m.value?0:-1,disabled:a.disabled?!0:void 0};return L({ourProps:T,theirProps:f,slot:e,attrs:v,slots:i,name:"Tab"})}}}),Ie=D({name:"TabPanels",props:{as:{type:[Object,String],default:"div"}},setup(a,{slots:v,attrs:i}){let s=k("TabPanels");return()=>{let l={selectedIndex:s.selectedIndex.value};return L({theirProps:a,ourProps:{},slot:l,attrs:i,slots:v,name:"TabPanels"})}}}),ye=D({name:"TabPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-tabs-panel-${$()}`},tabIndex:{type:Number,default:0}},setup(a,{attrs:v,slots:i,expose:s}){let l=k("TabPanel"),n=h(null);s({el:n,$el:n}),M(()=>l.registerPanel(n)),K(()=>l.unregisterPanel(n));let d=A(j),S=c(()=>{if(d.value){let r=d.value.panels.indexOf(a.id);return r===-1?d.value.panels.push(a.id)-1:r}return-1}),b=c(()=>{let r=l.panels.value.indexOf(n);return r===-1?S.value:r}),m=c(()=>b.value===l.selectedIndex.value);return()=>{var t;let r={selected:m.value},{id:w,tabIndex:g,...E}=a,P={ref:n,id:w,role:"tabpanel","aria-labelledby":(t=o(l.tabs.value[b.value]))==null?void 0:t.id,tabIndex:m.value?g:-1};return!m.value&&a.unmount&&!a.static?H(X,{as:"span","aria-hidden":!0,...P}):L({ourProps:P,theirProps:E,slot:r,attrs:v,slots:i,features:q.Static|q.RenderStrategy,visible:m.value,name:"TabPanel"})}}});export{xe as Tab,me as TabGroup,pe as TabList,ye as TabPanel,Ie as TabPanels};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
export declare let TransitionChild: import("vue").DefineComponent<{
|
|
2
|
+
as: {
|
|
3
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
4
|
+
default: string;
|
|
5
|
+
};
|
|
6
|
+
show: {
|
|
7
|
+
type: BooleanConstructor[];
|
|
8
|
+
default: null;
|
|
9
|
+
};
|
|
10
|
+
unmount: {
|
|
11
|
+
type: BooleanConstructor[];
|
|
12
|
+
default: boolean;
|
|
13
|
+
};
|
|
14
|
+
appear: {
|
|
15
|
+
type: BooleanConstructor[];
|
|
16
|
+
default: boolean;
|
|
17
|
+
};
|
|
18
|
+
enter: {
|
|
19
|
+
type: StringConstructor[];
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
22
|
+
enterFrom: {
|
|
23
|
+
type: StringConstructor[];
|
|
24
|
+
default: string;
|
|
25
|
+
};
|
|
26
|
+
enterTo: {
|
|
27
|
+
type: StringConstructor[];
|
|
28
|
+
default: string;
|
|
29
|
+
};
|
|
30
|
+
entered: {
|
|
31
|
+
type: StringConstructor[];
|
|
32
|
+
default: string;
|
|
33
|
+
};
|
|
34
|
+
leave: {
|
|
35
|
+
type: StringConstructor[];
|
|
36
|
+
default: string;
|
|
37
|
+
};
|
|
38
|
+
leaveFrom: {
|
|
39
|
+
type: StringConstructor[];
|
|
40
|
+
default: string;
|
|
41
|
+
};
|
|
42
|
+
leaveTo: {
|
|
43
|
+
type: StringConstructor[];
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
46
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
49
|
+
[key: string]: any;
|
|
50
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
51
|
+
beforeEnter: () => true;
|
|
52
|
+
afterEnter: () => true;
|
|
53
|
+
beforeLeave: () => true;
|
|
54
|
+
afterLeave: () => true;
|
|
55
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
56
|
+
as: {
|
|
57
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
58
|
+
default: string;
|
|
59
|
+
};
|
|
60
|
+
show: {
|
|
61
|
+
type: BooleanConstructor[];
|
|
62
|
+
default: null;
|
|
63
|
+
};
|
|
64
|
+
unmount: {
|
|
65
|
+
type: BooleanConstructor[];
|
|
66
|
+
default: boolean;
|
|
67
|
+
};
|
|
68
|
+
appear: {
|
|
69
|
+
type: BooleanConstructor[];
|
|
70
|
+
default: boolean;
|
|
71
|
+
};
|
|
72
|
+
enter: {
|
|
73
|
+
type: StringConstructor[];
|
|
74
|
+
default: string;
|
|
75
|
+
};
|
|
76
|
+
enterFrom: {
|
|
77
|
+
type: StringConstructor[];
|
|
78
|
+
default: string;
|
|
79
|
+
};
|
|
80
|
+
enterTo: {
|
|
81
|
+
type: StringConstructor[];
|
|
82
|
+
default: string;
|
|
83
|
+
};
|
|
84
|
+
entered: {
|
|
85
|
+
type: StringConstructor[];
|
|
86
|
+
default: string;
|
|
87
|
+
};
|
|
88
|
+
leave: {
|
|
89
|
+
type: StringConstructor[];
|
|
90
|
+
default: string;
|
|
91
|
+
};
|
|
92
|
+
leaveFrom: {
|
|
93
|
+
type: StringConstructor[];
|
|
94
|
+
default: string;
|
|
95
|
+
};
|
|
96
|
+
leaveTo: {
|
|
97
|
+
type: StringConstructor[];
|
|
98
|
+
default: string;
|
|
99
|
+
};
|
|
100
|
+
}>> & {
|
|
101
|
+
onBeforeEnter?: (() => any) | undefined;
|
|
102
|
+
onAfterEnter?: (() => any) | undefined;
|
|
103
|
+
onBeforeLeave?: (() => any) | undefined;
|
|
104
|
+
onAfterLeave?: (() => any) | undefined;
|
|
105
|
+
}, {
|
|
106
|
+
as: string | Record<string, any>;
|
|
107
|
+
unmount: boolean;
|
|
108
|
+
show: boolean;
|
|
109
|
+
appear: boolean;
|
|
110
|
+
enter: string;
|
|
111
|
+
enterFrom: string;
|
|
112
|
+
enterTo: string;
|
|
113
|
+
entered: string;
|
|
114
|
+
leave: string;
|
|
115
|
+
leaveFrom: string;
|
|
116
|
+
leaveTo: string;
|
|
117
|
+
}>;
|
|
118
|
+
export declare let TransitionRoot: import("vue").DefineComponent<{
|
|
119
|
+
as: {
|
|
120
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
121
|
+
default: string;
|
|
122
|
+
};
|
|
123
|
+
show: {
|
|
124
|
+
type: BooleanConstructor[];
|
|
125
|
+
default: null;
|
|
126
|
+
};
|
|
127
|
+
unmount: {
|
|
128
|
+
type: BooleanConstructor[];
|
|
129
|
+
default: boolean;
|
|
130
|
+
};
|
|
131
|
+
appear: {
|
|
132
|
+
type: BooleanConstructor[];
|
|
133
|
+
default: boolean;
|
|
134
|
+
};
|
|
135
|
+
enter: {
|
|
136
|
+
type: StringConstructor[];
|
|
137
|
+
default: string;
|
|
138
|
+
};
|
|
139
|
+
enterFrom: {
|
|
140
|
+
type: StringConstructor[];
|
|
141
|
+
default: string;
|
|
142
|
+
};
|
|
143
|
+
enterTo: {
|
|
144
|
+
type: StringConstructor[];
|
|
145
|
+
default: string;
|
|
146
|
+
};
|
|
147
|
+
entered: {
|
|
148
|
+
type: StringConstructor[];
|
|
149
|
+
default: string;
|
|
150
|
+
};
|
|
151
|
+
leave: {
|
|
152
|
+
type: StringConstructor[];
|
|
153
|
+
default: string;
|
|
154
|
+
};
|
|
155
|
+
leaveFrom: {
|
|
156
|
+
type: StringConstructor[];
|
|
157
|
+
default: string;
|
|
158
|
+
};
|
|
159
|
+
leaveTo: {
|
|
160
|
+
type: StringConstructor[];
|
|
161
|
+
default: string;
|
|
162
|
+
};
|
|
163
|
+
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
164
|
+
[key: string]: any;
|
|
165
|
+
}> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
166
|
+
[key: string]: any;
|
|
167
|
+
}>[] | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
168
|
+
beforeEnter: () => true;
|
|
169
|
+
afterEnter: () => true;
|
|
170
|
+
beforeLeave: () => true;
|
|
171
|
+
afterLeave: () => true;
|
|
172
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
173
|
+
as: {
|
|
174
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
175
|
+
default: string;
|
|
176
|
+
};
|
|
177
|
+
show: {
|
|
178
|
+
type: BooleanConstructor[];
|
|
179
|
+
default: null;
|
|
180
|
+
};
|
|
181
|
+
unmount: {
|
|
182
|
+
type: BooleanConstructor[];
|
|
183
|
+
default: boolean;
|
|
184
|
+
};
|
|
185
|
+
appear: {
|
|
186
|
+
type: BooleanConstructor[];
|
|
187
|
+
default: boolean;
|
|
188
|
+
};
|
|
189
|
+
enter: {
|
|
190
|
+
type: StringConstructor[];
|
|
191
|
+
default: string;
|
|
192
|
+
};
|
|
193
|
+
enterFrom: {
|
|
194
|
+
type: StringConstructor[];
|
|
195
|
+
default: string;
|
|
196
|
+
};
|
|
197
|
+
enterTo: {
|
|
198
|
+
type: StringConstructor[];
|
|
199
|
+
default: string;
|
|
200
|
+
};
|
|
201
|
+
entered: {
|
|
202
|
+
type: StringConstructor[];
|
|
203
|
+
default: string;
|
|
204
|
+
};
|
|
205
|
+
leave: {
|
|
206
|
+
type: StringConstructor[];
|
|
207
|
+
default: string;
|
|
208
|
+
};
|
|
209
|
+
leaveFrom: {
|
|
210
|
+
type: StringConstructor[];
|
|
211
|
+
default: string;
|
|
212
|
+
};
|
|
213
|
+
leaveTo: {
|
|
214
|
+
type: StringConstructor[];
|
|
215
|
+
default: string;
|
|
216
|
+
};
|
|
217
|
+
}>> & {
|
|
218
|
+
onBeforeEnter?: (() => any) | undefined;
|
|
219
|
+
onAfterEnter?: (() => any) | undefined;
|
|
220
|
+
onBeforeLeave?: (() => any) | undefined;
|
|
221
|
+
onAfterLeave?: (() => any) | undefined;
|
|
222
|
+
}, {
|
|
223
|
+
as: string | Record<string, any>;
|
|
224
|
+
unmount: boolean;
|
|
225
|
+
show: boolean;
|
|
226
|
+
appear: boolean;
|
|
227
|
+
enter: string;
|
|
228
|
+
enterFrom: string;
|
|
229
|
+
enterTo: string;
|
|
230
|
+
entered: string;
|
|
231
|
+
leave: string;
|
|
232
|
+
leaveFrom: string;
|
|
233
|
+
leaveTo: string;
|
|
234
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{computed as w,defineComponent as K,h as k,inject as F,normalizeClass as ae,onMounted as C,onUnmounted as z,provide as B,ref as m,watch as le,watchEffect as x}from"vue";import{useId as ie}from'../../hooks/use-id.js';import{State as u,hasOpenClosed as se,useOpenClosed as oe,useOpenClosedProvider as ue}from'../../internal/open-closed.js';import{dom as $}from'../../utils/dom.js';import{env as fe}from'../../utils/env.js';import{match as O}from'../../utils/match.js';import{Features as de,RenderStrategy as T,omit as ve,render as q}from'../../utils/render.js';import{Reason as G,transition as J}from'./utils/transition.js';function g(e=""){return e.split(/\s+/).filter(t=>t.length>1)}let R=Symbol("TransitionContext");var pe=(a=>(a.Visible="visible",a.Hidden="hidden",a))(pe||{});function me(){return F(R,null)!==null}function Te(){let e=F(R,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}function ge(){let e=F(N,null);if(e===null)throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");return e}let N=Symbol("NestingContext");function L(e){return"children"in e?L(e.children):e.value.filter(({state:t})=>t==="visible").length>0}function Q(e){let t=m([]),a=m(!1);C(()=>a.value=!0),z(()=>a.value=!1);function s(n,r=T.Hidden){let l=t.value.findIndex(({id:f})=>f===n);l!==-1&&(O(r,{[T.Unmount](){t.value.splice(l,1)},[T.Hidden](){t.value[l].state="hidden"}}),!L(t)&&a.value&&(e==null||e()))}function h(n){let r=t.value.find(({id:l})=>l===n);return r?r.state!=="visible"&&(r.state="visible"):t.value.push({id:n,state:"visible"}),()=>s(n,T.Unmount)}return{children:t,register:h,unregister:s}}let W=de.RenderStrategy,he=K({props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:t,attrs:a,slots:s,expose:h}){let n=m(0);function r(){n.value|=u.Opening,t("beforeEnter")}function l(){n.value&=~u.Opening,t("afterEnter")}function f(){n.value|=u.Closing,t("beforeLeave")}function S(){n.value&=~u.Closing,t("afterLeave")}if(!me()&&se())return()=>k(Se,{...e,onBeforeEnter:r,onAfterEnter:l,onBeforeLeave:f,onAfterLeave:S},s);let d=m(null),y=w(()=>e.unmount?T.Unmount:T.Hidden);h({el:d,$el:d});let{show:v,appear:A}=Te(),{register:D,unregister:H}=ge(),i=m(v.value?"visible":"hidden"),I={value:!0},c=ie(),b={value:!1},P=Q(()=>{!b.value&&i.value!=="hidden"&&(i.value="hidden",H(c),S())});C(()=>{let o=D(c);z(o)}),x(()=>{if(y.value===T.Hidden&&c){if(v.value&&i.value!=="visible"){i.value="visible";return}O(i.value,{["hidden"]:()=>H(c),["visible"]:()=>D(c)})}});let j=g(e.enter),M=g(e.enterFrom),X=g(e.enterTo),_=g(e.entered),Y=g(e.leave),Z=g(e.leaveFrom),ee=g(e.leaveTo);C(()=>{x(()=>{if(i.value==="visible"){let o=$(d);if(o instanceof Comment&&o.data==="")throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}})});function te(o){let E=I.value&&!A.value,p=$(d);!p||!(p instanceof HTMLElement)||E||(b.value=!0,v.value&&r(),v.value||f(),o(v.value?J(p,j,M,X,_,V=>{b.value=!1,V===G.Finished&&l()}):J(p,Y,Z,ee,_,V=>{b.value=!1,V===G.Finished&&(L(P)||(i.value="hidden",H(c),S()))})))}return C(()=>{le([v],(o,E,p)=>{te(p),I.value=!1},{immediate:!0})}),B(N,P),ue(w(()=>O(i.value,{["visible"]:u.Open,["hidden"]:u.Closed})|n.value)),()=>{let{appear:o,show:E,enter:p,enterFrom:V,enterTo:Ce,entered:ye,leave:be,leaveFrom:Ee,leaveTo:Ve,...U}=e,ne={ref:d},re={...U,...A.value&&v.value&&fe.isServer?{class:ae([a.class,U.class,...j,...M])}:{}};return q({theirProps:re,ourProps:ne,slot:{},slots:s,attrs:a,features:W,visible:i.value==="visible",name:"TransitionChild"})}}}),ce=he,Se=K({inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:""},enterFrom:{type:[String],default:""},enterTo:{type:[String],default:""},entered:{type:[String],default:""},leave:{type:[String],default:""},leaveFrom:{type:[String],default:""},leaveTo:{type:[String],default:""}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(e,{emit:t,attrs:a,slots:s}){let h=oe(),n=w(()=>e.show===null&&h!==null?(h.value&u.Open)===u.Open:e.show);x(()=>{if(![!0,!1].includes(n.value))throw new Error('A <Transition /> is used but it is missing a `:show="true | false"` prop.')});let r=m(n.value?"visible":"hidden"),l=Q(()=>{r.value="hidden"}),f=m(!0),S={show:n,appear:w(()=>e.appear||!f.value)};return C(()=>{x(()=>{f.value=!1,n.value?r.value="visible":L(l)||(r.value="hidden")})}),B(N,l),B(R,S),()=>{let d=ve(e,["show","appear","unmount","onBeforeEnter","onBeforeLeave","onAfterEnter","onAfterLeave"]),y={unmount:e.unmount};return q({ourProps:{...y,as:"template"},theirProps:{},slot:{},slots:{...s,default:()=>[k(ce,{onBeforeEnter:()=>t("beforeEnter"),onAfterEnter:()=>t("afterEnter"),onBeforeLeave:()=>t("beforeLeave"),onAfterLeave:()=>t("afterLeave"),...a,...y,...d},s.default)]},attrs:{},features:W,visible:r.value==="visible",name:"Transition"})}}});export{he as TransitionChild,Se as TransitionRoot};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{disposables as p}from'../../../utils/disposables.js';import{once as f}from'../../../utils/once.js';function m(e,...t){e&&t.length>0&&e.classList.add(...t)}function d(e,...t){e&&t.length>0&&e.classList.remove(...t)}var g=(i=>(i.Finished="finished",i.Cancelled="cancelled",i))(g||{});function F(e,t){let i=p();if(!e)return i.dispose;let{transitionDuration:n,transitionDelay:a}=getComputedStyle(e),[l,s]=[n,a].map(o=>{let[u=0]=o.split(",").filter(Boolean).map(r=>r.includes("ms")?parseFloat(r):parseFloat(r)*1e3).sort((r,c)=>c-r);return u});return l!==0?i.setTimeout(()=>t("finished"),l+s):t("finished"),i.add(()=>t("cancelled")),i.dispose}function L(e,t,i,n,a,l){let s=p(),o=l!==void 0?f(l):()=>{};return d(e,...a),m(e,...t,...i),s.nextFrame(()=>{d(e,...i),m(e,...n),s.add(F(e,u=>(d(e,...n,...t),m(e,...a),o(u))))}),s.add(()=>d(e,...t,...i,...n,...a)),s.add(()=>o("cancelled")),s.dispose}export{g as Reason,L as transition};
|