ropav 0.1.7 → 0.1.9

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.
Files changed (167) hide show
  1. package/README.md +5 -4
  2. package/dist/ancestry.js +136 -0
  3. package/dist/calendar.css +184 -0
  4. package/dist/calendar.js +739 -0
  5. package/dist/calendar2.js +37 -0
  6. package/dist/chevron-left.js +12 -0
  7. package/dist/color-picker.js +38 -88
  8. package/dist/combobox.css +251 -0
  9. package/dist/combobox.js +410 -0
  10. package/dist/components/calendar/calendar.d.ts +30 -0
  11. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  12. package/dist/components/calendar/index.d.ts +3 -0
  13. package/dist/components/calendar/index.js +3 -0
  14. package/dist/components/calendar/types.d.ts +56 -0
  15. package/dist/components/calendar/useCalendar.d.ts +24 -0
  16. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  17. package/dist/components/color-picker/useColorPickerSaturation.d.ts +1 -1
  18. package/dist/components/color-picker/useColorPickerSlider.d.ts +1 -1
  19. package/dist/components/combobox/combobox.d.ts +29 -0
  20. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  21. package/dist/components/combobox/index.d.ts +3 -0
  22. package/dist/components/combobox/index.js +2 -0
  23. package/dist/components/combobox/types.d.ts +43 -0
  24. package/dist/components/combobox/useCombobox.d.ts +45 -0
  25. package/dist/components/date-picker/date-picker.d.ts +33 -0
  26. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  27. package/dist/components/date-picker/index.d.ts +4 -0
  28. package/dist/components/date-picker/index.js +2 -0
  29. package/dist/components/date-picker/types.d.ts +59 -0
  30. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  31. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  32. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  33. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  34. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  35. package/dist/components/dropdown-menu/dropdownMenuContext.d.ts +7 -18
  36. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -3
  37. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +58 -29
  38. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +4 -3
  39. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +6 -4
  40. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +3 -4
  41. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +5 -5
  42. package/dist/components/dropzone/dropzone.d.ts +31 -0
  43. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  44. package/dist/components/dropzone/index.d.ts +3 -0
  45. package/dist/components/dropzone/index.js +2 -0
  46. package/dist/components/dropzone/types.d.ts +56 -0
  47. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  48. package/dist/components/file-input/file-input.d.ts +29 -0
  49. package/dist/components/file-input/index.d.ts +3 -0
  50. package/dist/components/file-input/index.js +2 -0
  51. package/dist/components/file-input/types.d.ts +37 -0
  52. package/dist/components/file-input/useFileInput.d.ts +15 -0
  53. package/dist/components/floating/index.js +1 -1
  54. package/dist/components/floating/useFloatingPosition.d.ts +1 -13
  55. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  56. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  57. package/dist/components/hover-card/hover-card.d.ts +25 -0
  58. package/dist/components/hover-card/index.d.ts +3 -0
  59. package/dist/components/hover-card/index.js +2 -0
  60. package/dist/components/hover-card/types.d.ts +45 -0
  61. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  62. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  63. package/dist/components/multi-select/index.d.ts +3 -0
  64. package/dist/components/multi-select/index.js +2 -0
  65. package/dist/components/multi-select/multi-select.d.ts +30 -0
  66. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  67. package/dist/components/multi-select/types.d.ts +49 -0
  68. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  69. package/dist/components/number-input/useNumberInput.d.ts +1 -3
  70. package/dist/components/popover/usePopoverBindings.d.ts +3 -6
  71. package/dist/components/scroll-area/useScrollArea.d.ts +4 -4
  72. package/dist/components/scroll-area/useScrollAreaAttributes.d.ts +3 -3
  73. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +1 -1
  74. package/dist/components/segmented-control/index.d.ts +3 -0
  75. package/dist/components/segmented-control/index.js +2 -0
  76. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  77. package/dist/components/segmented-control/types.d.ts +47 -0
  78. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  79. package/dist/components/select/useSelect.d.ts +31 -19
  80. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  81. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  82. package/dist/components/slider/useSlider.d.ts +1 -1
  83. package/dist/components/slider/useSliderPointer.d.ts +15 -0
  84. package/dist/components/slider/useSliderValueState.d.ts +1 -0
  85. package/dist/components/tags-input/index.d.ts +3 -0
  86. package/dist/components/tags-input/index.js +2 -0
  87. package/dist/components/tags-input/tags-input.d.ts +27 -0
  88. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  89. package/dist/components/tags-input/types.d.ts +37 -0
  90. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  91. package/dist/components/toolbar/index.d.ts +3 -0
  92. package/dist/components/toolbar/index.js +2 -0
  93. package/dist/components/toolbar/toolbar.d.ts +24 -0
  94. package/dist/components/toolbar/types.d.ts +12 -0
  95. package/dist/components/toolbar/useToolbar.d.ts +7 -0
  96. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  97. package/dist/date-picker.css +49 -0
  98. package/dist/date-picker.js +811 -0
  99. package/dist/dialog.js +9 -20
  100. package/dist/direction.js +6 -0
  101. package/dist/dropdown-menu.css +21 -3
  102. package/dist/dropdown-menu.js +341 -261
  103. package/dist/dropzone.css +135 -0
  104. package/dist/dropzone.js +431 -0
  105. package/dist/file-input.css +135 -0
  106. package/dist/file-input.js +198 -0
  107. package/dist/focusNavigation.js +12 -6
  108. package/dist/hover-card.css +80 -0
  109. package/dist/hover-card.js +402 -0
  110. package/dist/index.d.ts +10 -0
  111. package/dist/index.js +15 -3
  112. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  113. package/dist/modal.js +1 -1
  114. package/dist/multi-select.css +316 -0
  115. package/dist/multi-select.js +481 -0
  116. package/dist/nativeChoice.js +169 -0
  117. package/dist/number-input.css +18 -18
  118. package/dist/number-input.js +36 -38
  119. package/dist/pagination.js +1 -10
  120. package/dist/pointerSession.js +130 -0
  121. package/dist/popover.css +21 -3
  122. package/dist/popover.js +37 -62
  123. package/dist/scroll-area.js +52 -62
  124. package/dist/segmented-control.css +176 -0
  125. package/dist/segmented-control.js +382 -0
  126. package/dist/select.css +50 -48
  127. package/dist/select.js +121 -271
  128. package/dist/slider.css +78 -69
  129. package/dist/slider.js +161 -145
  130. package/dist/tags-input.css +197 -0
  131. package/dist/tags-input.js +380 -0
  132. package/dist/toolbar.css +15 -0
  133. package/dist/toolbar.js +143 -0
  134. package/dist/tooltip.js +35 -30
  135. package/dist/useEditableOptionList.js +216 -0
  136. package/dist/useFlatOptionCollection.js +134 -0
  137. package/dist/useFloatingPosition.js +4 -160
  138. package/dist/useFloatingTargetLifecycle.js +127 -0
  139. package/dist/useFormControl.js +1 -0
  140. package/dist/{floating.js → useHoverDisclosure.js} +338 -421
  141. package/dist/useNativeChoiceTransaction.js +46 -0
  142. package/dist/useNativeFileSelection.js +86 -0
  143. package/dist/useOverlayZIndex.js +246 -15
  144. package/dist/utils/date.d.ts +13 -0
  145. package/dist/utils/dateAvailability.d.ts +7 -0
  146. package/dist/utils/dom/ancestry.d.ts +1 -0
  147. package/dist/utils/dom/direction.d.ts +2 -0
  148. package/dist/utils/dom/files.d.ts +3 -0
  149. package/dist/utils/dom/focusNavigation.d.ts +4 -1
  150. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  151. package/dist/utils/dom/pointerSession.d.ts +20 -0
  152. package/dist/utils/dom/scroll.d.ts +2 -1
  153. package/dist/utils/optionFilter.d.ts +5 -0
  154. package/docs/public-floating-api.md +7 -4
  155. package/docs/public-styles-api.md +28 -12
  156. package/package.json +68 -40
  157. package/src/styles/_mixins.scss +26 -0
  158. package/src/styles/styles-manifest.json +1 -2
  159. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +0 -42
  160. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +0 -32
  161. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +0 -25
  162. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +0 -27
  163. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  164. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  165. package/dist/pointer.js +0 -9
  166. package/dist/utils/dom/pointer.d.ts +0 -2
  167. package/docs/code-architecture.md +0 -118
@@ -0,0 +1,402 @@
1
+ import './hover-card.css';
2
+ import { t as useStylesApi } from "./styles-api.js";
3
+ import { n as toPresenceAttribute } from "./attributes.js";
4
+ import { t as bem } from "./bem.js";
5
+ import { t as isElement } from "./query.js";
6
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
7
+ import { n as observeComposedAncestry, t as getComposedAncestry } from "./ancestry.js";
8
+ import { n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
9
+ import { t as getFloatingOffsetStyle } from "./floatingOffset.js";
10
+ import { t as useFloatingPosition } from "./useFloatingPosition.js";
11
+ import { t as useFloatingTargetLifecycle } from "./useFloatingTargetLifecycle.js";
12
+ import { n as useTeleportTarget } from "./useTeleportTarget.js";
13
+ import { t as getElementDirection } from "./direction.js";
14
+ import { n as useHoverDisclosureWithExternalDismissal } from "./useHoverDisclosure.js";
15
+ import { VaporTeleport, VaporTransition, applyVShow, computed, createComponent, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, onBeforeUnmount, readonly, ref, renderEffect, setAttr, setDynamicProps, setInsertionState, setStyle, setTemplateRefBinding, template, toValue, unref, useId, useSlots, watch } from "vue";
16
+ //#region src/internal/composables/useElementDirection.ts
17
+ var directionAttributeFilter = [
18
+ "class",
19
+ "dir",
20
+ "style"
21
+ ];
22
+ function getMutationObserverConstructor(element) {
23
+ return element.ownerDocument.defaultView?.MutationObserver ?? globalThis.MutationObserver;
24
+ }
25
+ function observeDirectionAttributes(element, onChange) {
26
+ const observers = /* @__PURE__ */ new Map();
27
+ const ancestry = [element, ...getComposedAncestry(element)];
28
+ for (const node of ancestry) {
29
+ if (!isElement(node)) continue;
30
+ const MutationObserverConstructor = getMutationObserverConstructor(node);
31
+ if (!MutationObserverConstructor) continue;
32
+ let observer = observers.get(MutationObserverConstructor);
33
+ if (!observer) {
34
+ observer = new MutationObserverConstructor(onChange);
35
+ observers.set(MutationObserverConstructor, observer);
36
+ }
37
+ observer.observe(node, {
38
+ attributes: true,
39
+ attributeFilter: directionAttributeFilter
40
+ });
41
+ }
42
+ return () => {
43
+ for (const observer of observers.values()) observer.disconnect();
44
+ };
45
+ }
46
+ function useElementDirection(elementSource) {
47
+ const direction = ref("ltr");
48
+ let disconnectElement;
49
+ function readDirection(element) {
50
+ direction.value = element ? getElementDirection(element) : "ltr";
51
+ }
52
+ function connectElement(element) {
53
+ disconnectElement?.();
54
+ disconnectElement = void 0;
55
+ readDirection(element);
56
+ if (!element) return;
57
+ const target = element;
58
+ let disconnectAttributes;
59
+ function reconnectAttributes() {
60
+ disconnectAttributes?.();
61
+ disconnectAttributes = observeDirectionAttributes(target, () => readDirection(target));
62
+ readDirection(target);
63
+ }
64
+ reconnectAttributes();
65
+ const disconnectAncestry = observeComposedAncestry(() => [target], reconnectAttributes, {
66
+ deferWhileDisconnected: true,
67
+ notifyOnDisconnect: true
68
+ });
69
+ disconnectElement = () => {
70
+ disconnectAttributes?.();
71
+ disconnectAncestry();
72
+ };
73
+ }
74
+ const stopSourceWatch = watch(() => toValue(elementSource), connectElement, {
75
+ immediate: true,
76
+ flush: "post"
77
+ });
78
+ onBeforeUnmount(() => {
79
+ stopSourceWatch();
80
+ disconnectElement?.();
81
+ });
82
+ return readonly(direction);
83
+ }
84
+ //#endregion
85
+ //#region src/components/hover-card/useHoverCardDisclosure.ts
86
+ function useHoverCardDisclosure(options, layerOptions) {
87
+ const { disclosure, dismissalHandlers } = useHoverDisclosureWithExternalDismissal(options);
88
+ const layer = useOverlayLayer({
89
+ active: disclosure.isOpen,
90
+ baseZIndex: layerOptions.baseZIndex,
91
+ element: layerOptions.element
92
+ });
93
+ onBeforeUnmount(layer.connectInteraction({
94
+ inside: layerOptions.inside,
95
+ escapeKeyDown: dismissalHandlers.escapeKeyDown,
96
+ pointerDownOutside: dismissalHandlers.pointerDownOutside
97
+ }));
98
+ return {
99
+ ...disclosure,
100
+ zIndex: layer.zIndex
101
+ };
102
+ }
103
+ //#endregion
104
+ //#region src/components/hover-card/useHoverCard.ts
105
+ var DEFAULT_PLACEMENT = "bottom-start";
106
+ var HOVER_CARD_OFFSET_PROPERTIES = {
107
+ mainAxis: "--_rp-hover-card-main-axis-offset",
108
+ crossAxis: "--_rp-hover-card-cross-axis-offset"
109
+ };
110
+ function useHoverCard(props, onOpenChange) {
111
+ const slots = useSlots();
112
+ const generatedId = useId();
113
+ const rootRef = ref(null);
114
+ const contentRef = ref(null);
115
+ const arrowRef = ref(null);
116
+ const hoverCardId = computed(() => props.id ?? `${generatedId}-hover-card`);
117
+ const placement = computed(() => props.placement ?? DEFAULT_PLACEMENT);
118
+ const teleportTo = useTeleportTarget(() => props.teleportTo);
119
+ const { isExplicitTarget, reference, targetElement } = useFloatingTargetLifecycle({
120
+ target: () => props.target,
121
+ fallback: rootRef
122
+ });
123
+ const contentDirection = useElementDirection(computed(() => {
124
+ const currentReference = reference.value;
125
+ if (isElement(currentReference)) return currentReference;
126
+ return isElement(currentReference?.contextElement) ? currentReference.contextElement : rootRef.value;
127
+ }));
128
+ const hasContent = computed(() => Boolean(slots.content || isExplicitTarget.value && slots.default));
129
+ const disclosureDisabled = computed(() => Boolean(props.disabled || !hasContent.value));
130
+ const baseZIndex = useOverlayZIndex({
131
+ baseZIndex: () => props.baseZIndex,
132
+ defaultBaseZIndex: 100,
133
+ aboveParent: false
134
+ });
135
+ const disclosure = useHoverCardDisclosure({
136
+ open: () => props.open,
137
+ defaultOpen: props.defaultOpen,
138
+ openDelay: () => props.openDelay,
139
+ closeDelay: () => props.closeDelay,
140
+ disabled: disclosureDisabled,
141
+ openOnFocus: () => props.openOnFocus,
142
+ closeOnEscape: () => props.closeOnEscape,
143
+ touchBehavior: () => props.touchBehavior,
144
+ interactionTarget: reference,
145
+ contentTarget: contentRef,
146
+ onOpenChange
147
+ }, {
148
+ baseZIndex,
149
+ element: contentRef,
150
+ inside: () => [rootRef.value, targetElement.value]
151
+ });
152
+ const isVisible = disclosure.isOpen;
153
+ const shouldRenderContent = computed(() => !disclosure.isDisabled.value && (Boolean(props.keepMounted) || disclosure.isOpen.value));
154
+ const shouldShowContent = computed(() => !props.keepMounted || disclosure.isOpen.value);
155
+ const floating = useFloatingPosition({
156
+ reference,
157
+ floating: contentRef,
158
+ arrow: arrowRef,
159
+ open: isVisible,
160
+ placement,
161
+ strategy: () => props.strategy ?? "absolute",
162
+ offset: () => props.offset,
163
+ flip: () => props.flip !== false,
164
+ flipOptions: () => props.flipOptions,
165
+ shift: () => props.shift !== false,
166
+ collisionPadding: () => props.collisionPadding ?? 8,
167
+ autoUpdateOptions: () => props.autoUpdateOptions,
168
+ restartKey: contentDirection
169
+ });
170
+ const placementSide = computed(() => floating.actualPlacement.value.split("-")[0]);
171
+ const rootClass = computed(() => bem("rp-hover-card", {
172
+ [`placement-${floating.actualPlacement.value}`]: true,
173
+ target: isExplicitTarget.value,
174
+ open: isVisible.value,
175
+ disabled: disclosure.isDisabled.value,
176
+ arrow: props.arrow
177
+ }));
178
+ const contentStyle = computed(() => ({
179
+ ...floating.floatingStyle.value,
180
+ ...getFloatingOffsetStyle(props.offset, HOVER_CARD_OFFSET_PROPERTIES),
181
+ zIndex: disclosure.zIndex.value
182
+ }));
183
+ const contentSlotProps = computed(() => ({
184
+ isOpen: isVisible.value,
185
+ open: disclosure.open,
186
+ close: disclosure.close,
187
+ toggle: disclosure.toggle
188
+ }));
189
+ return {
190
+ rootRef,
191
+ contentRef,
192
+ arrowRef,
193
+ hoverCardId,
194
+ isDisabled: disclosure.isDisabled,
195
+ isVisible,
196
+ isTargetMode: isExplicitTarget,
197
+ state: disclosure.state,
198
+ shouldRenderContent,
199
+ shouldShowContent,
200
+ rootClass,
201
+ contentStyle,
202
+ contentDirection,
203
+ contentSlotProps,
204
+ actualPlacement: floating.actualPlacement,
205
+ placementSide,
206
+ arrowStyle: floating.arrowStyle,
207
+ teleportTo
208
+ };
209
+ }
210
+ //#endregion
211
+ //#region src/components/hover-card/hover-card.vue?vue&type=script&setup=true&vapor=true&lang.ts
212
+ var t0 = template("<span data-v-55e74041 class=rp-hover-card__arrow aria-hidden=true>");
213
+ var t1 = template("<div data-v-55e74041>");
214
+ var t2 = template("<span data-v-55e74041>", 1);
215
+ //#endregion
216
+ //#region src/components/hover-card/hover-card.vue
217
+ var hover_card_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
218
+ name: "RpHoverCard",
219
+ inheritAttrs: false,
220
+ __name: "hover-card",
221
+ props: {
222
+ id: {},
223
+ baseZIndex: {},
224
+ open: {
225
+ type: Boolean,
226
+ default: void 0
227
+ },
228
+ defaultOpen: {
229
+ type: Boolean,
230
+ default: false
231
+ },
232
+ openDelay: { default: 700 },
233
+ closeDelay: { default: 300 },
234
+ disabled: {
235
+ type: Boolean,
236
+ default: false
237
+ },
238
+ openOnFocus: {
239
+ type: Boolean,
240
+ default: true
241
+ },
242
+ closeOnEscape: {
243
+ type: Boolean,
244
+ default: true
245
+ },
246
+ touchBehavior: { default: "none" },
247
+ keepMounted: {
248
+ type: Boolean,
249
+ default: false
250
+ },
251
+ target: {},
252
+ placement: { default: "bottom-start" },
253
+ strategy: { default: "absolute" },
254
+ offset: {},
255
+ flip: {
256
+ type: Boolean,
257
+ default: true
258
+ },
259
+ flipOptions: {},
260
+ shift: {
261
+ type: Boolean,
262
+ default: true
263
+ },
264
+ collisionPadding: { default: 8 },
265
+ autoUpdateOptions: {},
266
+ arrow: {
267
+ type: Boolean,
268
+ default: false
269
+ },
270
+ teleport: {
271
+ type: Boolean,
272
+ default: true
273
+ },
274
+ teleportTo: {},
275
+ classNames: {},
276
+ styles: {}
277
+ },
278
+ emits: ["update:open", "openChange"],
279
+ setup(__props, { emit: __emit }) {
280
+ const props = __props;
281
+ const emit = __emit;
282
+ const { rootRef, contentRef, arrowRef, hoverCardId, isDisabled, isTargetMode, state, shouldRenderContent, shouldShowContent, rootClass, contentStyle, contentDirection, contentSlotProps, actualPlacement, placementSide, arrowStyle, teleportTo } = useHoverCard(props, (open, details) => {
283
+ emit("update:open", open);
284
+ emit("openChange", open, details);
285
+ });
286
+ const templateRefs = {
287
+ root: rootRef,
288
+ content: contentRef,
289
+ arrow: arrowRef
290
+ };
291
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
292
+ const rootAttrs = computed(() => getRootAttrs({
293
+ class: rootClass.value,
294
+ "data-state": state.value,
295
+ "data-disabled": toPresenceAttribute(isDisabled.value)
296
+ }));
297
+ const publicTriggerProps = computed(() => {
298
+ const partAttrs = getPartAttrs("trigger");
299
+ return {
300
+ ...props.classNames?.trigger !== void 0 ? { class: partAttrs.class } : {},
301
+ ...props.styles?.trigger !== void 0 ? { style: partAttrs.style } : {},
302
+ "data-state": state.value,
303
+ "data-disabled": toPresenceAttribute(isDisabled.value)
304
+ };
305
+ });
306
+ const contentAttrs = computed(() => ({
307
+ ...getPartAttrs("content", {
308
+ class: "rp-hover-card__content",
309
+ style: contentStyle.value
310
+ }),
311
+ "data-state": state.value,
312
+ "data-placement": actualPlacement.value
313
+ }));
314
+ const _setTemplateRef = createTemplateRefSetter();
315
+ const n16 = t2();
316
+ renderEffect(() => setDynamicProps(n16, [rootAttrs.value]));
317
+ setInsertionState(n16, null, 0);
318
+ createIf(() => !unref(isTargetMode), () => {
319
+ return createSlot("default", {
320
+ triggerProps: () => publicTriggerProps.value,
321
+ isOpen: () => unref(contentSlotProps).isOpen,
322
+ open: () => unref(contentSlotProps).open,
323
+ close: () => unref(contentSlotProps).close,
324
+ toggle: () => unref(contentSlotProps).toggle
325
+ }, null, 1);
326
+ });
327
+ setInsertionState(n16, null, 1);
328
+ createComponent(VaporTeleport, {
329
+ to: () => unref(teleportTo),
330
+ disabled: () => !__props.teleport
331
+ }, () => {
332
+ return createComponent(VaporTransition, { name: "rp-hover-card-content" }, extend(() => {
333
+ return createIf(() => unref(shouldRenderContent), () => {
334
+ const n13 = t1();
335
+ renderEffect(() => setDynamicProps(n13, [
336
+ { id: unref(hoverCardId) },
337
+ contentAttrs.value,
338
+ {
339
+ dir: unref(contentDirection),
340
+ "data-side": unref(placementSide)
341
+ }
342
+ ]));
343
+ setInsertionState(n13, null, 0);
344
+ createSlot("content", {
345
+ isOpen: () => unref(contentSlotProps).isOpen,
346
+ open: () => unref(contentSlotProps).open,
347
+ close: () => unref(contentSlotProps).close,
348
+ toggle: () => unref(contentSlotProps).toggle
349
+ }, () => {
350
+ return createIf(() => unref(isTargetMode), () => {
351
+ return createSlot("default", {
352
+ triggerProps: () => publicTriggerProps.value,
353
+ isOpen: () => unref(contentSlotProps).isOpen,
354
+ open: () => unref(contentSlotProps).open,
355
+ close: () => unref(contentSlotProps).close,
356
+ toggle: () => unref(contentSlotProps).toggle
357
+ }, null, 1);
358
+ }, null, 129);
359
+ }, 1);
360
+ setInsertionState(n13, null, 1);
361
+ createIf(() => __props.arrow, () => {
362
+ const n12 = t0();
363
+ renderEffect(() => {
364
+ setAttr(n12, "data-side", unref(placementSide));
365
+ setStyle(n12, unref(arrowStyle));
366
+ _setTemplateRef(n12, templateRefs.arrow);
367
+ });
368
+ return n12;
369
+ });
370
+ applyVShow(n13, () => unref(shouldShowContent));
371
+ setTemplateRefBinding(n13, () => templateRefs.content, _setTemplateRef);
372
+ return n13;
373
+ }, null, 129);
374
+ }, { _: 8 }));
375
+ });
376
+ setTemplateRefBinding(n16, () => templateRefs.root);
377
+ return n16;
378
+ }
379
+ }), [["__scopeId", "data-v-55e74041"]]);
380
+ //#endregion
381
+ //#region src/components/hover-card/types.ts
382
+ var hoverCardPlacements = [
383
+ "top-start",
384
+ "top",
385
+ "top-end",
386
+ "right-start",
387
+ "right",
388
+ "right-end",
389
+ "bottom-start",
390
+ "bottom",
391
+ "bottom-end",
392
+ "left-start",
393
+ "left",
394
+ "left-end"
395
+ ];
396
+ var hoverCardParts = [
397
+ "root",
398
+ "trigger",
399
+ "content"
400
+ ];
401
+ //#endregion
402
+ export { hoverCardPlacements as n, hover_card_default as r, hoverCardParts as t };
package/dist/index.d.ts CHANGED
@@ -8,20 +8,27 @@ export * from './components/badge/index.js';
8
8
  export * from './components/button/index.js';
9
9
  export * from './components/button-group/index.js';
10
10
  export * from './components/button-link/index.js';
11
+ export * from './components/calendar/index.js';
11
12
  export * from './components/card/index.js';
12
13
  export * from './components/checkbox/index.js';
13
14
  export * from './components/collapse/index.js';
14
15
  export * from './components/color-input/index.js';
15
16
  export * from './components/color-picker/index.js';
16
17
  export * from './components/color-swatch/index.js';
18
+ export * from './components/combobox/index.js';
19
+ export * from './components/date-picker/index.js';
17
20
  export * from './components/dialog/index.js';
18
21
  export * from './components/dropdown-menu/index.js';
22
+ export * from './components/dropzone/index.js';
19
23
  export * from './components/field/index.js';
24
+ export * from './components/file-input/index.js';
20
25
  export * from './components/floating/index.js';
21
26
  export * from './components/focus-trap/index.js';
27
+ export * from './components/hover-card/index.js';
22
28
  export * from './components/icon-button/index.js';
23
29
  export * from './components/input/index.js';
24
30
  export * from './components/modal/index.js';
31
+ export * from './components/multi-select/index.js';
25
32
  export * from './components/number-input/index.js';
26
33
  export * from './components/overlay/index.js';
27
34
  export * from './components/pagination/index.js';
@@ -29,11 +36,14 @@ export * from './components/popover/index.js';
29
36
  export * from './components/progress/index.js';
30
37
  export * from './components/radio/index.js';
31
38
  export * from './components/scroll-area/index.js';
39
+ export * from './components/segmented-control/index.js';
32
40
  export * from './components/select/index.js';
33
41
  export * from './components/slider/index.js';
34
42
  export * from './components/switch/index.js';
35
43
  export * from './components/tabs/index.js';
44
+ export * from './components/tags-input/index.js';
36
45
  export * from './components/teleport-provider/index.js';
37
46
  export * from './components/textarea/index.js';
38
47
  export * from './components/toast/index.js';
48
+ export * from './components/toolbar/index.js';
39
49
  export * from './components/tooltip/index.js';
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ import { a as badgeVariants, i as badgeSizes, n as badgeParts, o as badge_defaul
9
9
  import { n as button_default, t as buttonParts } from "./button.js";
10
10
  import { n as button_group_default, t as buttonGroupParts } from "./button-group.js";
11
11
  import { n as button_link_default, t as buttonLinkParts } from "./button-link.js";
12
+ import { t as calendar_default } from "./calendar.js";
13
+ import { i as calendarWeekdayFormats, n as calendarRadiuses, r as calendarSizes, t as calendarParts } from "./calendar2.js";
12
14
  import { n as card_default, t as cardParts } from "./card.js";
13
15
  import { n as checkbox_default, t as checkboxParts } from "./checkbox.js";
14
16
  import { n as collapse_default, t as collapseParts } from "./collapse.js";
@@ -23,17 +25,24 @@ import { n as useTeleportTarget } from "./useTeleportTarget.js";
23
25
  import { t as popover_default } from "./popover.js";
24
26
  import { n as colorPickerSizes, t as colorPickerParts } from "./color-picker2.js";
25
27
  import { t as colorSwatchParts } from "./color-swatch2.js";
28
+ import { t as scroll_area_default } from "./scroll-area.js";
29
+ import { n as combobox_default, t as comboboxParts } from "./combobox.js";
30
+ import { a as normalizeDatePickerValue, i as formatDatePickerValue, n as date_picker_default, o as parseDatePickerValue, r as defaultDatePickerFormat, t as datePickerParts } from "./date-picker.js";
26
31
  import { a as dialog_overlay_default, c as dialog_close_default, i as dialog_portal_default, n as dialog_title_default, o as dialog_description_default, r as dialog_root_default, s as dialog_content_default, t as dialog_trigger_default } from "./dialog.js";
27
32
  import { _ as dropdown_menu_content_default, a as dropdown_menu_trigger_default, c as dropdown_menu_sub_default, d as dropdown_menu_radio_item_default, f as dropdown_menu_radio_group_default, g as dropdown_menu_context_trigger_default, h as dropdown_menu_item_indicator_default, i as useDropdownMenu, l as dropdown_menu_separator_default, m as dropdown_menu_label_default, n as dropdownMenuParts, o as dropdown_menu_sub_trigger_default, p as dropdown_menu_portal_default, r as dropdown_menu_default, s as dropdown_menu_sub_content_default, t as DropdownMenuItem, u as dropdown_menu_root_default, v as dropdown_menu_checkbox_item_default } from "./dropdown-menu.js";
33
+ import { i as dropzone_default, n as dropzoneParts, r as dropzoneStatuses, t as dropzoneErrorCodes } from "./dropzone.js";
28
34
  import { n as field_default, t as fieldParts } from "./field.js";
29
- import { t as useHoverDisclosure } from "./floating.js";
35
+ import { n as file_input_default, t as fileInputParts } from "./file-input.js";
36
+ import { t as useHoverDisclosure } from "./useHoverDisclosure.js";
37
+ import "./components/floating/index.js";
30
38
  import { n as focus_trap_default, t as focusTrapParts } from "./focus-trap.js";
39
+ import { n as hoverCardPlacements, r as hover_card_default, t as hoverCardParts } from "./hover-card.js";
31
40
  import { t as icon_button_default } from "./icon-button.js";
32
41
  import { t as iconButtonParts } from "./icon-button2.js";
33
42
  import { t as inputParts } from "./input2.js";
34
43
  import { t as overlay_default } from "./overlay.js";
35
- import { t as scroll_area_default } from "./scroll-area.js";
36
44
  import { n as modal_default, t as modalParts } from "./modal.js";
45
+ import { n as multi_select_default, t as multiSelectParts } from "./multi-select.js";
37
46
  import { n as number_input_default, t as numberInputParts } from "./number-input.js";
38
47
  import { n as overlay_layer_provider_default, t as overlayParts } from "./overlay2.js";
39
48
  import { a as pagination_default, c as normalizePaginationPage, i as paginationSizes, l as normalizePaginationTotal, n as paginationParts, o as usePagination, r as paginationRadiuses, s as getPaginationItems, t as paginationColors } from "./pagination.js";
@@ -41,13 +50,16 @@ import { n as popoverPlacements, t as popoverParts } from "./popover2.js";
41
50
  import { a as progress_default, i as progressSizes, n as progressParts, r as progressRadiuses, t as progressColors } from "./progress.js";
42
51
  import { i as radioParts, n as radio_default, r as radioGroupParts, t as radio_group_default } from "./radio.js";
43
52
  import { n as scrollAreaScrollbars, r as scrollAreaTypes, t as scrollAreaParts } from "./scroll-area2.js";
53
+ import { a as segmentedControlSizes, i as segmentedControlRadiuses, n as segmentedControlOrientations, o as segmented_control_default, r as segmentedControlParts, t as segmentedControlColors } from "./segmented-control.js";
44
54
  import { n as select_default, t as selectParts } from "./select.js";
45
55
  import { t as tooltip_default } from "./tooltip.js";
46
56
  import { a as sliderSizes, i as sliderParts, n as sliderColors, o as range_slider_default, r as sliderOrientations, s as slider_default, t as rangeSliderParts } from "./slider.js";
47
57
  import { n as switch_default, t as switchParts } from "./switch.js";
48
58
  import { a as tabs_trigger_default, c as tabs_default, d as useTabsList, f as useTabsTrigger, i as tabsTriggerParts, l as useTabs, n as tabsListParts, o as tabs_list_default, r as tabsParts, s as tabs_content_default, t as tabsContentParts, u as useTabsContent } from "./tabs.js";
59
+ import { n as tags_input_default, t as tagsInputParts } from "./tags-input.js";
49
60
  import { t as teleport_provider_default } from "./teleport-provider.js";
50
61
  import { n as textarea_default, t as textareaParts } from "./textarea.js";
51
62
  import { a as toastColors, c as toastRadiuses, d as toastViewportParts, f as createToastStore, i as useToast, l as toastTypes, n as toast_viewport_default, o as toastParts, p as toast_default, r as toast_provider_default, s as toastPositions, t as useToastState, u as toastVariants } from "./toast.js";
63
+ import { n as toolbarParts, r as toolbar_default, t as toolbarOrientations } from "./toolbar.js";
52
64
  import { t as tooltipParts } from "./tooltip2.js";
53
- export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, field_default as Field, focus_trap_default as FocusTrap, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, overlay_layer_provider_default as OverlayLayerProvider, pagination_default as Pagination, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, scroll_area_default as ScrollArea, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, createToastStore, dropdownMenuParts, fieldParts, focusTrapParts, getPaginationItems, iconButtonParts, inputParts, modalParts, normalizePaginationPage, normalizePaginationTotal, numberInputParts, overlayParts, paginationColors, paginationParts, paginationRadiuses, paginationSizes, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, scrollAreaParts, scrollAreaScrollbars, scrollAreaTypes, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useControllableValue, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useOverlayZIndex, usePagination, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
65
+ export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, calendar_default as Calendar, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, combobox_default as Combobox, date_picker_default as DatePicker, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, dropzone_default as Dropzone, field_default as Field, file_input_default as FileInput, focus_trap_default as FocusTrap, hover_card_default as HoverCard, icon_button_default as IconButton, input_default as Input, modal_default as Modal, multi_select_default as MultiSelect, number_input_default as NumberInput, overlay_default as Overlay, overlay_layer_provider_default as OverlayLayerProvider, pagination_default as Pagination, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, scroll_area_default as ScrollArea, segmented_control_default as SegmentedControl, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, tags_input_default as TagsInput, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, toolbar_default as Toolbar, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, calendarParts, calendarRadiuses, calendarSizes, calendarWeekdayFormats, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, comboboxParts, createToastStore, datePickerParts, defaultDatePickerFormat, dropdownMenuParts, dropzoneErrorCodes, dropzoneParts, dropzoneStatuses, fieldParts, fileInputParts, focusTrapParts, formatDatePickerValue, getPaginationItems, hoverCardParts, hoverCardPlacements, iconButtonParts, inputParts, modalParts, multiSelectParts, normalizeDatePickerValue, normalizePaginationPage, normalizePaginationTotal, numberInputParts, overlayParts, paginationColors, paginationParts, paginationRadiuses, paginationSizes, parseDatePickerValue, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, scrollAreaParts, scrollAreaScrollbars, scrollAreaTypes, segmentedControlColors, segmentedControlOrientations, segmentedControlParts, segmentedControlRadiuses, segmentedControlSizes, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, tagsInputParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, toolbarOrientations, toolbarParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useControllableValue, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useOverlayZIndex, usePagination, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
@@ -1,4 +1,15 @@
1
1
  import { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
2
+ export interface OverlayLayerInteraction {
3
+ inside?: MaybeRefOrGetter<readonly (Element | null | undefined)[]>;
4
+ escapeKeyDown?: (event: KeyboardEvent) => void;
5
+ pointerDownOutside?: (event: PointerEvent) => void;
6
+ focusOutside?: (event: FocusEvent) => void;
7
+ clickOutside?: (event: MouseEvent) => void;
8
+ }
9
+ export interface OverlayLayerInteractionConnection {
10
+ (): void;
11
+ refresh: () => void;
12
+ }
2
13
  export interface OverlayLayerContext {
3
14
  id: symbol;
4
15
  element: Ref<HTMLElement | null>;
@@ -15,6 +26,7 @@ export interface OverlayLayerContext {
15
26
  focus?: boolean;
16
27
  inside?: boolean;
17
28
  }) => () => void;
29
+ connectInteraction: (interaction: OverlayLayerInteraction) => OverlayLayerInteractionConnection;
18
30
  }
19
31
  export interface UseOverlayLayerOptions {
20
32
  active: MaybeRefOrGetter<boolean>;
package/dist/modal.js CHANGED
@@ -4,10 +4,10 @@ import { t as useStylesApi } from "./styles-api.js";
4
4
  import { t as bem } from "./bem.js";
5
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
6
  import { t as x_default } from "./x.js";
7
+ import { t as scroll_area_default } from "./scroll-area.js";
7
8
  import { a as dialog_overlay_default, c as dialog_close_default, i as dialog_portal_default, l as resolveDialogCloseReason, n as dialog_title_default, o as dialog_description_default, r as dialog_root_default, s as dialog_content_default } from "./dialog.js";
8
9
  import { t as icon_button_default } from "./icon-button.js";
9
10
  import { t as overlay_default } from "./overlay.js";
10
- import { t as scroll_area_default } from "./scroll-area.js";
11
11
  import { VaporTransition, applyVShow, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, mergeProps, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
12
12
  //#region src/components/modal/useModal.ts
13
13
  var DEFAULT_ROLE = "dialog";