@destyler/popover 0.0.6 → 0.0.7-beta.1
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/dist/index.cjs +438 -24
- package/dist/index.d.cts +152 -5
- package/dist/index.d.mts +152 -5
- package/dist/index.d.ts +152 -5
- package/dist/index.mjs +437 -12
- package/package.json +12 -21
- package/README.md +0 -7
- package/dist/component.cjs +0 -56
- package/dist/component.d.cts +0 -1349
- package/dist/component.d.mts +0 -1349
- package/dist/component.d.ts +0 -1349
- package/dist/component.mjs +0 -35
- package/dist/resolver.cjs +0 -25
- package/dist/resolver.d.cts +0 -6
- package/dist/resolver.d.mts +0 -6
- package/dist/resolver.d.ts +0 -6
- package/dist/resolver.mjs +0 -22
- package/dist/shared/popover.005a231a.mjs +0 -399
- package/dist/shared/popover.2b6be8bf.d.cts +0 -885
- package/dist/shared/popover.2b6be8bf.d.mts +0 -885
- package/dist/shared/popover.2b6be8bf.d.ts +0 -885
- package/dist/shared/popover.49550c9f.cjs +0 -420
package/dist/component.mjs
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { defineComponent, onBeforeMount, onUnmounted, h, mergeProps } from 'vue';
|
|
2
|
-
import { popperAnchorProps, PopperAnchor } from '@destyler/popper';
|
|
3
|
-
import { i as injectPopoverRootContext } from './shared/popover.005a231a.mjs';
|
|
4
|
-
export { P as PopoverArrow, a as PopoverClose, c as PopoverContent, f as PopoverContentImpl, j as PopoverContentModal, k as PopoverContentNonModal, l as PopoverPortal, n as PopoverRoot, r as PopoverTrigger, p as popoverArrowProps, b as popoverCloseProps, e as popoverContentEmits, h as popoverContentImplEmits, g as popoverContentImplProps, d as popoverContentProps, m as popoverPortalProps, q as popoverRootEmits, o as popoverRootProps, s as popoverTriggerProps } from './shared/popover.005a231a.mjs';
|
|
5
|
-
import '@destyler/primitive';
|
|
6
|
-
import '@destyler/shared';
|
|
7
|
-
import '@destyler/composition';
|
|
8
|
-
import '@destyler/presence';
|
|
9
|
-
import '@destyler/dismissable-layer';
|
|
10
|
-
import '@destyler/dismissable-layer/component';
|
|
11
|
-
import '@destyler/focus-scope';
|
|
12
|
-
import '@destyler/directives';
|
|
13
|
-
import '@destyler/teleport';
|
|
14
|
-
|
|
15
|
-
const popoverAnchorProps = {
|
|
16
|
-
...popperAnchorProps
|
|
17
|
-
};
|
|
18
|
-
const PopoverAnchor = defineComponent({
|
|
19
|
-
name: "DestylerPopoverAnchor",
|
|
20
|
-
props: popoverAnchorProps,
|
|
21
|
-
setup() {
|
|
22
|
-
const rootContext = injectPopoverRootContext();
|
|
23
|
-
onBeforeMount(() => {
|
|
24
|
-
rootContext.hasCustomAnchor.value = true;
|
|
25
|
-
});
|
|
26
|
-
onUnmounted(() => {
|
|
27
|
-
rootContext.hasCustomAnchor.value = false;
|
|
28
|
-
});
|
|
29
|
-
},
|
|
30
|
-
render() {
|
|
31
|
-
return h(PopperAnchor, mergeProps(this.$props, {}), () => this.$slots.default?.());
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export { PopoverAnchor, popoverAnchorProps };
|
package/dist/resolver.cjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const name = "@destyler/popover";
|
|
4
|
-
|
|
5
|
-
const packageName = name;
|
|
6
|
-
const popoverComponentName = [
|
|
7
|
-
"PopoverArrow",
|
|
8
|
-
"PopoverClose",
|
|
9
|
-
"PopoverContent",
|
|
10
|
-
"PopoverPortal",
|
|
11
|
-
"PopoverRoot",
|
|
12
|
-
"PopoverTrigger"
|
|
13
|
-
];
|
|
14
|
-
function PopoverResolver() {
|
|
15
|
-
return {
|
|
16
|
-
type: "component",
|
|
17
|
-
resolve: (name2) => {
|
|
18
|
-
if (popoverComponentName.includes(name2))
|
|
19
|
-
return { name: name2, from: packageName };
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
exports.PopoverResolver = PopoverResolver;
|
|
25
|
-
exports.popoverComponentName = popoverComponentName;
|
package/dist/resolver.d.cts
DELETED
package/dist/resolver.d.mts
DELETED
package/dist/resolver.d.ts
DELETED
package/dist/resolver.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
const name = "@destyler/popover";
|
|
2
|
-
|
|
3
|
-
const packageName = name;
|
|
4
|
-
const popoverComponentName = [
|
|
5
|
-
"PopoverArrow",
|
|
6
|
-
"PopoverClose",
|
|
7
|
-
"PopoverContent",
|
|
8
|
-
"PopoverPortal",
|
|
9
|
-
"PopoverRoot",
|
|
10
|
-
"PopoverTrigger"
|
|
11
|
-
];
|
|
12
|
-
function PopoverResolver() {
|
|
13
|
-
return {
|
|
14
|
-
type: "component",
|
|
15
|
-
resolve: (name2) => {
|
|
16
|
-
if (popoverComponentName.includes(name2))
|
|
17
|
-
return { name: name2, from: packageName };
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { PopoverResolver, popoverComponentName };
|
|
@@ -1,399 +0,0 @@
|
|
|
1
|
-
import { defineComponent, h, mergeProps, toRef, ref, withDirectives, onMounted } from 'vue';
|
|
2
|
-
import { popperArrowProps, PopperArrow, PopperRoot, popperContentProps, PopperContent, PopperAnchor } from '@destyler/popper';
|
|
3
|
-
import { primitiveProps, Primitive } from '@destyler/primitive';
|
|
4
|
-
import { createContext } from '@destyler/shared';
|
|
5
|
-
import { useVModel, useId, useForwardProps, useFocusGuards, useForwardPropsEmits, useForwardExpose, useHideOthers } from '@destyler/composition';
|
|
6
|
-
import { Presence } from '@destyler/presence';
|
|
7
|
-
import { dismissableLayerProps, DismissableLayer } from '@destyler/dismissable-layer';
|
|
8
|
-
import { dismissableLayerEmits } from '@destyler/dismissable-layer/component';
|
|
9
|
-
import { focusScopeProps, FocusScope } from '@destyler/focus-scope';
|
|
10
|
-
import { BindOnceDirective } from '@destyler/directives';
|
|
11
|
-
import { teleportPrimitiveProps, TeleportPrimitive } from '@destyler/teleport';
|
|
12
|
-
|
|
13
|
-
const popoverArrowProps = {
|
|
14
|
-
...popperArrowProps
|
|
15
|
-
};
|
|
16
|
-
const PopoverArrow = defineComponent({
|
|
17
|
-
name: "DestylerPopoverArrow",
|
|
18
|
-
props: popoverArrowProps,
|
|
19
|
-
render() {
|
|
20
|
-
return h(PopperArrow, mergeProps(this.$props, {}), () => this.$slots.default?.());
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
const [injectPopoverRootContext, providePopoverRootContext] = createContext("DestylerPopoverRoot");
|
|
25
|
-
const popoverRootProps = {
|
|
26
|
-
/**
|
|
27
|
-
* The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
|
|
28
|
-
*
|
|
29
|
-
* @default false
|
|
30
|
-
*/
|
|
31
|
-
defaultOpen: {
|
|
32
|
-
type: Boolean,
|
|
33
|
-
required: false,
|
|
34
|
-
default: false
|
|
35
|
-
},
|
|
36
|
-
/**
|
|
37
|
-
* The controlled open state of the popover.
|
|
38
|
-
*
|
|
39
|
-
* @default undefined
|
|
40
|
-
*/
|
|
41
|
-
open: {
|
|
42
|
-
type: Boolean,
|
|
43
|
-
required: false,
|
|
44
|
-
default: void 0
|
|
45
|
-
},
|
|
46
|
-
/**
|
|
47
|
-
* The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.
|
|
48
|
-
*
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
modal: {
|
|
52
|
-
type: Boolean,
|
|
53
|
-
required: false,
|
|
54
|
-
default: false
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
const popoverRootEmits = {
|
|
58
|
-
/**
|
|
59
|
-
* Event handler called when the open state of the popover changes.
|
|
60
|
-
*/
|
|
61
|
-
"update:open": (_value) => true
|
|
62
|
-
};
|
|
63
|
-
const PopoverRoot = defineComponent({
|
|
64
|
-
name: "DestylerPopoverRoot",
|
|
65
|
-
props: popoverRootProps,
|
|
66
|
-
emits: popoverRootEmits,
|
|
67
|
-
setup(props, { emit }) {
|
|
68
|
-
const modalRef = toRef(props.modal);
|
|
69
|
-
const openRef = useVModel(props, "open", emit, {
|
|
70
|
-
defaultValue: props.defaultOpen,
|
|
71
|
-
passive: props.open === void 0
|
|
72
|
-
});
|
|
73
|
-
const triggerElement = ref();
|
|
74
|
-
const hasCustomAnchor = ref(false);
|
|
75
|
-
function handleUpdateOpen(value) {
|
|
76
|
-
openRef.value = value;
|
|
77
|
-
}
|
|
78
|
-
providePopoverRootContext({
|
|
79
|
-
contentId: useId(),
|
|
80
|
-
modal: modalRef,
|
|
81
|
-
open: openRef,
|
|
82
|
-
onOpenChange: (value) => {
|
|
83
|
-
handleUpdateOpen(value);
|
|
84
|
-
},
|
|
85
|
-
onOpenToggle: () => {
|
|
86
|
-
handleUpdateOpen(!openRef.value);
|
|
87
|
-
},
|
|
88
|
-
triggerElement,
|
|
89
|
-
hasCustomAnchor
|
|
90
|
-
});
|
|
91
|
-
return {
|
|
92
|
-
openRef,
|
|
93
|
-
modalRef,
|
|
94
|
-
triggerElement,
|
|
95
|
-
hasCustomAnchor
|
|
96
|
-
};
|
|
97
|
-
},
|
|
98
|
-
render() {
|
|
99
|
-
return h(PopperRoot, null, () => this.$slots.default?.());
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
const popoverCloseProps = {
|
|
104
|
-
...primitiveProps,
|
|
105
|
-
/**
|
|
106
|
-
* @default button
|
|
107
|
-
*/
|
|
108
|
-
as: {
|
|
109
|
-
...primitiveProps.as,
|
|
110
|
-
default: "button"
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
const PopoverClose = defineComponent({
|
|
114
|
-
name: "DestylerPopoverClose",
|
|
115
|
-
props: popoverCloseProps,
|
|
116
|
-
setup() {
|
|
117
|
-
const rootContext = injectPopoverRootContext();
|
|
118
|
-
return {
|
|
119
|
-
rootContext
|
|
120
|
-
};
|
|
121
|
-
},
|
|
122
|
-
render() {
|
|
123
|
-
return h(Primitive, {
|
|
124
|
-
as: this.$props.as,
|
|
125
|
-
asChild: this.$props.asChild,
|
|
126
|
-
type: this.$props.as === "button" ? "button" : void 0,
|
|
127
|
-
onClick: () => {
|
|
128
|
-
this.rootContext.onOpenChange(false);
|
|
129
|
-
}
|
|
130
|
-
}, () => this.$slots.default?.());
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
const popoverContentImplProps = {
|
|
135
|
-
...popperContentProps,
|
|
136
|
-
...dismissableLayerProps,
|
|
137
|
-
/**
|
|
138
|
-
* Used to force mounting when more control is needed. Useful when
|
|
139
|
-
* controlling animation with Vue animation libraries.
|
|
140
|
-
*/
|
|
141
|
-
trapFocus: {
|
|
142
|
-
...focusScopeProps.trapped
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
const popoverContentImplEmits = {
|
|
146
|
-
...dismissableLayerEmits,
|
|
147
|
-
/**
|
|
148
|
-
* Event handler called when auto-focusing on open.
|
|
149
|
-
* Can be prevented.
|
|
150
|
-
*/
|
|
151
|
-
openAutoFocus: (_event) => true,
|
|
152
|
-
/**
|
|
153
|
-
* Event handler called when auto-focusing on close.
|
|
154
|
-
* Can be prevented.
|
|
155
|
-
*/
|
|
156
|
-
closeAutoFocus: (_event) => true
|
|
157
|
-
};
|
|
158
|
-
const PopoverContentImpl = defineComponent({
|
|
159
|
-
name: "DestylerPopoverContentImpl",
|
|
160
|
-
props: popoverContentImplProps,
|
|
161
|
-
emits: popoverContentImplEmits,
|
|
162
|
-
setup(props) {
|
|
163
|
-
const forwarded = useForwardProps(props);
|
|
164
|
-
const rootContext = injectPopoverRootContext();
|
|
165
|
-
useFocusGuards();
|
|
166
|
-
return {
|
|
167
|
-
rootContext,
|
|
168
|
-
forwarded
|
|
169
|
-
};
|
|
170
|
-
},
|
|
171
|
-
render() {
|
|
172
|
-
return h(FocusScope, {
|
|
173
|
-
asChild: true,
|
|
174
|
-
loop: true,
|
|
175
|
-
trapped: this.$props.trapFocus,
|
|
176
|
-
onMountAutoFocus: (event) => {
|
|
177
|
-
this.$emit("openAutoFocus", event);
|
|
178
|
-
},
|
|
179
|
-
onUnmountAutoFocus: (event) => {
|
|
180
|
-
this.$emit("closeAutoFocus", event);
|
|
181
|
-
}
|
|
182
|
-
}, () => h(DismissableLayer, {
|
|
183
|
-
asChild: true,
|
|
184
|
-
disableOutsidePointerEvents: this.$props.disableOutsidePointerEvents,
|
|
185
|
-
onPointerDownOutside: (event) => {
|
|
186
|
-
this.$emit("pointerDownOutside", event);
|
|
187
|
-
},
|
|
188
|
-
onInteractOutside: (event) => {
|
|
189
|
-
this.$emit("interactOutside", event);
|
|
190
|
-
},
|
|
191
|
-
onEscapeKeyDown: (event) => {
|
|
192
|
-
this.$emit("escapeKeyDown", event);
|
|
193
|
-
},
|
|
194
|
-
onFocusOutside: (event) => {
|
|
195
|
-
this.$emit("focusOutside", event);
|
|
196
|
-
},
|
|
197
|
-
onDismiss: () => {
|
|
198
|
-
this.rootContext.onOpenChange(false);
|
|
199
|
-
}
|
|
200
|
-
}, () => withDirectives(h(PopperContent, mergeProps(this.forwarded, {
|
|
201
|
-
"data-state": this.rootContext.open.value ? "open" : "closed",
|
|
202
|
-
"role": "dialog",
|
|
203
|
-
"style": {
|
|
204
|
-
"--destyler-popover-content-transform-origin": "var(--destyler-popper-transform-origin)",
|
|
205
|
-
"--destyler-popover-content-available-width": "var(--destyler-popper-available-width)",
|
|
206
|
-
"--destyler-popover-content-available-height": "var(--destyler-popper-available-height)",
|
|
207
|
-
"--destyler-popover-trigger-width": "var(--destyler-popper-anchor-width)",
|
|
208
|
-
"--destyler-popover-trigger-height": "var(--destyler-popper-anchor-height)"
|
|
209
|
-
}
|
|
210
|
-
}), () => this.$slots.default?.()), [
|
|
211
|
-
[BindOnceDirective, { id: this.rootContext.contentId }]
|
|
212
|
-
])));
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
const PopoverContentModal = defineComponent({
|
|
217
|
-
name: "DestylerPopoverContentModal",
|
|
218
|
-
props: popoverContentImplProps,
|
|
219
|
-
emits: popoverContentImplEmits,
|
|
220
|
-
setup(props, { emit }) {
|
|
221
|
-
const rootContext = injectPopoverRootContext();
|
|
222
|
-
const isRightClickOutsideRef = ref(false);
|
|
223
|
-
const forwarded = useForwardPropsEmits(props, emit);
|
|
224
|
-
const { forwardRef, currentElement } = useForwardExpose();
|
|
225
|
-
useHideOthers(currentElement);
|
|
226
|
-
return {
|
|
227
|
-
rootContext,
|
|
228
|
-
forwarded,
|
|
229
|
-
isRightClickOutsideRef,
|
|
230
|
-
forwardRef
|
|
231
|
-
};
|
|
232
|
-
},
|
|
233
|
-
render() {
|
|
234
|
-
return h(PopoverContentImpl, {
|
|
235
|
-
ref: (el) => this.forwardRef(el),
|
|
236
|
-
...mergeProps(this.forwarded),
|
|
237
|
-
trapFocus: this.rootContext.open.value,
|
|
238
|
-
disableOutsidePointerEvents: true,
|
|
239
|
-
onCloseAutoFocusPrevent: (event) => {
|
|
240
|
-
this.$emit("closeAutoFocus", event);
|
|
241
|
-
if (!this.isRightClickOutsideRef)
|
|
242
|
-
this.rootContext.triggerElement.value?.focus();
|
|
243
|
-
},
|
|
244
|
-
onPointerDownOutside: (event) => {
|
|
245
|
-
this.$emit("pointerDownOutside", event);
|
|
246
|
-
const originalEvent = event.detail.originalEvent;
|
|
247
|
-
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
248
|
-
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
249
|
-
this.isRightClickOutsideRef = isRightClick;
|
|
250
|
-
}
|
|
251
|
-
}, () => this.$slots.default?.());
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
const PopoverContentNonModal = defineComponent({
|
|
256
|
-
name: "DestylerPopoverContentNonModal",
|
|
257
|
-
props: popoverContentImplProps,
|
|
258
|
-
emits: popoverContentImplEmits,
|
|
259
|
-
setup(props, { emit }) {
|
|
260
|
-
const rootContext = injectPopoverRootContext();
|
|
261
|
-
const hasInteractedOutsideRef = ref(false);
|
|
262
|
-
const hasPointerDownOutsideRef = ref(false);
|
|
263
|
-
const forwarded = useForwardPropsEmits(props, emit);
|
|
264
|
-
return {
|
|
265
|
-
forwarded,
|
|
266
|
-
rootContext,
|
|
267
|
-
hasInteractedOutsideRef,
|
|
268
|
-
hasPointerDownOutsideRef
|
|
269
|
-
};
|
|
270
|
-
},
|
|
271
|
-
render() {
|
|
272
|
-
return h(PopoverContentImpl, {
|
|
273
|
-
...this.forwarded,
|
|
274
|
-
trapFocus: false,
|
|
275
|
-
disableOutsidePointerEvents: false,
|
|
276
|
-
onCloseAutoFocus: (event) => {
|
|
277
|
-
this.$emit("closeAutoFocus", event);
|
|
278
|
-
if (!event.defaultPrevented) {
|
|
279
|
-
if (!this.hasInteractedOutsideRef)
|
|
280
|
-
this.rootContext.triggerElement.value?.focus();
|
|
281
|
-
event.preventDefault();
|
|
282
|
-
}
|
|
283
|
-
this.hasInteractedOutsideRef = false;
|
|
284
|
-
this.hasPointerDownOutsideRef = false;
|
|
285
|
-
},
|
|
286
|
-
onInteractOutside: async (event) => {
|
|
287
|
-
this.$emit("interactOutside", event);
|
|
288
|
-
if (!event.defaultPrevented) {
|
|
289
|
-
this.hasInteractedOutsideRef = true;
|
|
290
|
-
if (event.detail.originalEvent.type === "pointerdown")
|
|
291
|
-
this.hasPointerDownOutsideRef = true;
|
|
292
|
-
}
|
|
293
|
-
const target = event.target;
|
|
294
|
-
const targetIsTrigger = this.rootContext.triggerElement.value?.contains(target);
|
|
295
|
-
if (targetIsTrigger)
|
|
296
|
-
event.preventDefault();
|
|
297
|
-
if (event.detail.originalEvent.type === "focusin" && this.hasPointerDownOutsideRef)
|
|
298
|
-
event.preventDefault();
|
|
299
|
-
}
|
|
300
|
-
}, () => this.$slots.default?.());
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
const popoverContentProps = {
|
|
305
|
-
...popoverContentImplProps,
|
|
306
|
-
/**
|
|
307
|
-
* Used to force mounting when more control is needed. Useful when
|
|
308
|
-
* controlling animation with Vue animation libraries.
|
|
309
|
-
*
|
|
310
|
-
* @default false
|
|
311
|
-
*/
|
|
312
|
-
forceMount: {
|
|
313
|
-
type: Boolean,
|
|
314
|
-
required: false,
|
|
315
|
-
default: false
|
|
316
|
-
}
|
|
317
|
-
};
|
|
318
|
-
const popoverContentEmits = {
|
|
319
|
-
...popoverContentImplEmits
|
|
320
|
-
};
|
|
321
|
-
const PopoverContent = defineComponent({
|
|
322
|
-
name: "DestylerPopoverContent",
|
|
323
|
-
props: popoverContentProps,
|
|
324
|
-
emits: popoverContentEmits,
|
|
325
|
-
setup(props, { emit }) {
|
|
326
|
-
const rootContext = injectPopoverRootContext();
|
|
327
|
-
const forwarded = useForwardPropsEmits(props, emit);
|
|
328
|
-
return {
|
|
329
|
-
rootContext,
|
|
330
|
-
forwarded
|
|
331
|
-
};
|
|
332
|
-
},
|
|
333
|
-
render() {
|
|
334
|
-
const useVShow = this.rootContext.modal.value;
|
|
335
|
-
return h(Presence, {
|
|
336
|
-
present: this.forceMount || this.rootContext.open.value
|
|
337
|
-
}, () => useVShow ? h(PopoverContentModal, {
|
|
338
|
-
...this.forwarded
|
|
339
|
-
}, () => this.$slots.default?.()) : h(PopoverContentNonModal, {
|
|
340
|
-
...this.forwarded
|
|
341
|
-
}, () => this.$slots.default?.()));
|
|
342
|
-
}
|
|
343
|
-
});
|
|
344
|
-
|
|
345
|
-
const popoverPortalProps = {
|
|
346
|
-
...teleportPrimitiveProps
|
|
347
|
-
};
|
|
348
|
-
const PopoverPortal = defineComponent({
|
|
349
|
-
name: "DestylerPopoverPortal",
|
|
350
|
-
props: popoverPortalProps,
|
|
351
|
-
render() {
|
|
352
|
-
return h(TeleportPrimitive, mergeProps(this.$props), () => this.$slots.default?.());
|
|
353
|
-
}
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
const popoverTriggerProps = {
|
|
357
|
-
...primitiveProps,
|
|
358
|
-
/**
|
|
359
|
-
* @default button
|
|
360
|
-
*/
|
|
361
|
-
as: {
|
|
362
|
-
...primitiveProps.as,
|
|
363
|
-
default: "button"
|
|
364
|
-
}
|
|
365
|
-
};
|
|
366
|
-
const PopoverTrigger = defineComponent({
|
|
367
|
-
name: "DestylerPopoverTrigger",
|
|
368
|
-
props: popoverTriggerProps,
|
|
369
|
-
setup() {
|
|
370
|
-
const rootContext = injectPopoverRootContext();
|
|
371
|
-
const { forwardRef, currentElement: triggerElement } = useForwardExpose();
|
|
372
|
-
onMounted(() => {
|
|
373
|
-
rootContext.triggerElement.value = triggerElement.value;
|
|
374
|
-
});
|
|
375
|
-
return {
|
|
376
|
-
rootContext,
|
|
377
|
-
forwardRef
|
|
378
|
-
};
|
|
379
|
-
},
|
|
380
|
-
render() {
|
|
381
|
-
return h(this.rootContext.hasCustomAnchor.value ? Primitive : PopperAnchor, {
|
|
382
|
-
asChild: true
|
|
383
|
-
}, () => h(Primitive, {
|
|
384
|
-
"ref": (el) => this.forwardRef(el),
|
|
385
|
-
"type": this.$props.as === "button" ? "button" : void 0,
|
|
386
|
-
"as": this.$props.as,
|
|
387
|
-
"aria-haspopup": "dialog",
|
|
388
|
-
"asChild": this.$props.asChild,
|
|
389
|
-
"aria-expanded": this.rootContext.open.value,
|
|
390
|
-
"aria-controls": this.rootContext.contentId,
|
|
391
|
-
"data-state": this.rootContext.open.value ? "open" : "closed",
|
|
392
|
-
"onClick": () => {
|
|
393
|
-
this.rootContext.onOpenToggle();
|
|
394
|
-
}
|
|
395
|
-
}, () => this.$slots.default?.()));
|
|
396
|
-
}
|
|
397
|
-
});
|
|
398
|
-
|
|
399
|
-
export { PopoverArrow as P, PopoverClose as a, popoverCloseProps as b, PopoverContent as c, popoverContentProps as d, popoverContentEmits as e, PopoverContentImpl as f, popoverContentImplProps as g, popoverContentImplEmits as h, injectPopoverRootContext as i, PopoverContentModal as j, PopoverContentNonModal as k, PopoverPortal as l, popoverPortalProps as m, PopoverRoot as n, popoverRootProps as o, popoverArrowProps as p, popoverRootEmits as q, PopoverTrigger as r, popoverTriggerProps as s };
|