base-ui-vue 0.3.0 → 0.5.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.
Files changed (218) hide show
  1. package/dist/arrow/TooltipArrow.cjs +609 -0
  2. package/dist/arrow/TooltipArrow.cjs.map +1 -0
  3. package/dist/arrow/TooltipArrow.js +478 -0
  4. package/dist/arrow/TooltipArrow.js.map +1 -0
  5. package/dist/button/Button.cjs +5 -317
  6. package/dist/button/Button.cjs.map +1 -1
  7. package/dist/button/Button.js +3 -249
  8. package/dist/button/Button.js.map +1 -1
  9. package/dist/button/ToolbarButton.cjs +19 -6
  10. package/dist/button/ToolbarButton.cjs.map +1 -1
  11. package/dist/button/ToolbarButton.js +3 -2
  12. package/dist/button/ToolbarButton.js.map +1 -1
  13. package/dist/checkbox/index.cjs +20 -9
  14. package/dist/checkbox/index.cjs.map +1 -1
  15. package/dist/checkbox/index.js +7 -2
  16. package/dist/checkbox/index.js.map +1 -1
  17. package/dist/checkbox-group/CheckboxGroup.cjs +14 -13
  18. package/dist/checkbox-group/CheckboxGroup.cjs.map +1 -1
  19. package/dist/checkbox-group/CheckboxGroup.js +2 -1
  20. package/dist/checkbox-group/CheckboxGroup.js.map +1 -1
  21. package/dist/components/FloatingPortal.cjs +66 -0
  22. package/dist/components/FloatingPortal.cjs.map +1 -0
  23. package/dist/components/FloatingPortal.js +55 -0
  24. package/dist/components/FloatingPortal.js.map +1 -0
  25. package/dist/components/FloatingRootStore.cjs +101 -0
  26. package/dist/components/FloatingRootStore.cjs.map +1 -0
  27. package/dist/components/FloatingRootStore.js +84 -0
  28. package/dist/components/FloatingRootStore.js.map +1 -0
  29. package/dist/components/FloatingTree.cjs +33 -0
  30. package/dist/components/FloatingTree.cjs.map +1 -0
  31. package/dist/components/FloatingTree.js +22 -0
  32. package/dist/components/FloatingTree.js.map +1 -0
  33. package/dist/composite/composite.cjs +6 -0
  34. package/dist/composite/composite.js +1 -1
  35. package/dist/content/ScrollAreaContent.cjs +3 -3
  36. package/dist/content/ScrollAreaContent.cjs.map +1 -1
  37. package/dist/content/ScrollAreaContent.js +1 -1
  38. package/dist/control/FieldControl.cjs +3 -3
  39. package/dist/control/FieldControl.cjs.map +1 -1
  40. package/dist/control/FieldControl.js +1 -1
  41. package/dist/control/SliderControl.cjs +3 -3
  42. package/dist/control/SliderControl.cjs.map +1 -1
  43. package/dist/control/SliderControl.js +3 -3
  44. package/dist/corner/ScrollAreaCorner.cjs +3 -3
  45. package/dist/corner/ScrollAreaCorner.cjs.map +1 -1
  46. package/dist/corner/ScrollAreaCorner.js +1 -1
  47. package/dist/decrement/NumberFieldDecrement.cjs +868 -0
  48. package/dist/decrement/NumberFieldDecrement.cjs.map +1 -0
  49. package/dist/decrement/NumberFieldDecrement.js +701 -0
  50. package/dist/decrement/NumberFieldDecrement.js.map +1 -0
  51. package/dist/description/FieldDescription.cjs +2 -2
  52. package/dist/description/FieldDescription.cjs.map +1 -1
  53. package/dist/description/FieldDescription.js +1 -1
  54. package/dist/error/FieldError.cjs +2 -2
  55. package/dist/error/FieldError.cjs.map +1 -1
  56. package/dist/error/FieldError.js +1 -1
  57. package/dist/fallback/AvatarFallback.cjs +4 -48
  58. package/dist/fallback/AvatarFallback.cjs.map +1 -1
  59. package/dist/fallback/AvatarFallback.js +4 -42
  60. package/dist/fallback/AvatarFallback.js.map +1 -1
  61. package/dist/floating-ui-vue/index.js +638 -0
  62. package/dist/floating-ui-vue/index.js.map +1 -0
  63. package/dist/form/Form.cjs +3 -3
  64. package/dist/form/Form.cjs.map +1 -1
  65. package/dist/form/Form.js +1 -1
  66. package/dist/group/NumberFieldGroup.cjs +72 -0
  67. package/dist/group/NumberFieldGroup.cjs.map +1 -0
  68. package/dist/group/NumberFieldGroup.js +67 -0
  69. package/dist/group/NumberFieldGroup.js.map +1 -0
  70. package/dist/group/ToolbarGroup.cjs +2 -2
  71. package/dist/group/ToolbarGroup.cjs.map +1 -1
  72. package/dist/group/ToolbarGroup.js +1 -1
  73. package/dist/header/AccordionHeader.cjs +2 -2
  74. package/dist/header/AccordionHeader.cjs.map +1 -1
  75. package/dist/header/AccordionHeader.js +1 -1
  76. package/dist/hooks/useDismiss.cjs +502 -0
  77. package/dist/hooks/useDismiss.cjs.map +1 -0
  78. package/dist/hooks/useHoverFloatingInteraction.cjs +233 -0
  79. package/dist/hooks/useHoverFloatingInteraction.cjs.map +1 -0
  80. package/dist/image/AvatarImage.cjs +4 -4
  81. package/dist/image/AvatarImage.cjs.map +1 -1
  82. package/dist/image/AvatarImage.js +1 -1
  83. package/dist/increment/NumberFieldIncrement.cjs +113 -0
  84. package/dist/increment/NumberFieldIncrement.cjs.map +1 -0
  85. package/dist/increment/NumberFieldIncrement.js +108 -0
  86. package/dist/increment/NumberFieldIncrement.js.map +1 -0
  87. package/dist/index.cjs +80 -8
  88. package/dist/index.d.cts +4328 -1600
  89. package/dist/index.d.cts.map +1 -1
  90. package/dist/index.d.ts +4328 -1600
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +8 -4
  93. package/dist/index2.cjs +9435 -3236
  94. package/dist/index2.cjs.map +1 -1
  95. package/dist/index2.js +8905 -3049
  96. package/dist/index2.js.map +1 -1
  97. package/dist/rolldown-runtime.js +36 -0
  98. package/package.json +1 -1
  99. package/src/floating-ui-vue/components/FloatingPortal.ts +171 -0
  100. package/src/floating-ui-vue/components/FloatingPortal.vue +259 -0
  101. package/src/floating-ui-vue/components/FloatingRootStore.ts +83 -0
  102. package/src/floating-ui-vue/components/FloatingTree.ts +64 -0
  103. package/src/floating-ui-vue/components/FloatingTreeStore.ts +21 -0
  104. package/src/floating-ui-vue/hooks/useDismiss.ts +689 -0
  105. package/src/floating-ui-vue/hooks/useHoverFloatingInteraction.ts +244 -0
  106. package/src/floating-ui-vue/hooks/useHoverInteractionSharedState.ts +125 -0
  107. package/src/floating-ui-vue/hooks/useHoverShared.ts +53 -0
  108. package/src/floating-ui-vue/index.ts +48 -0
  109. package/src/floating-ui-vue/middleware/arrow.ts +114 -0
  110. package/src/floating-ui-vue/types.ts +117 -0
  111. package/src/floating-ui-vue/utils/composite.ts +20 -0
  112. package/src/floating-ui-vue/utils/constants.ts +2 -0
  113. package/src/floating-ui-vue/utils/createAttribute.ts +3 -0
  114. package/src/floating-ui-vue/utils/createEventEmitter.ts +20 -0
  115. package/src/floating-ui-vue/utils/element.ts +59 -0
  116. package/src/floating-ui-vue/utils/event.ts +15 -0
  117. package/src/floating-ui-vue/utils/nodes.ts +14 -0
  118. package/src/floating-ui-vue/utils/tabbable.ts +309 -0
  119. package/src/index.ts +7 -1
  120. package/src/number-field/decrement/NumberFieldDecrement.vue +109 -0
  121. package/src/number-field/group/NumberFieldGroup.vue +47 -0
  122. package/src/number-field/increment/NumberFieldIncrement.vue +109 -0
  123. package/src/number-field/index.ts +42 -0
  124. package/src/number-field/input/NumberFieldInput.vue +455 -0
  125. package/src/number-field/root/NumberFieldRoot.vue +626 -0
  126. package/src/number-field/root/NumberFieldRootContext.ts +94 -0
  127. package/src/number-field/root/useNumberFieldButton.ts +171 -0
  128. package/src/number-field/scrub-area/NumberFieldScrubArea.vue +359 -0
  129. package/src/number-field/scrub-area/NumberFieldScrubAreaContext.ts +26 -0
  130. package/src/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.vue +75 -0
  131. package/src/number-field/utils/constants.ts +4 -0
  132. package/src/number-field/utils/getViewportRect.ts +34 -0
  133. package/src/number-field/utils/parse.ts +248 -0
  134. package/src/number-field/utils/stateAttributesMapping.ts +9 -0
  135. package/src/number-field/utils/subscribeToVisualViewportResize.ts +27 -0
  136. package/src/number-field/utils/types.ts +24 -0
  137. package/src/number-field/utils/validate.ts +120 -0
  138. package/src/otp-field/index.ts +22 -0
  139. package/src/otp-field/input/OtpFieldInput.vue +336 -0
  140. package/src/otp-field/root/OtpFieldRoot.vue +583 -0
  141. package/src/otp-field/root/OtpFieldRootContext.ts +81 -0
  142. package/src/otp-field/utils/otp.ts +135 -0
  143. package/src/otp-field/utils/stateAttributesMapping.ts +16 -0
  144. package/src/radio/index.ts +28 -0
  145. package/src/radio/indicator/RadioIndicator.vue +90 -0
  146. package/src/radio/indicator/RadioIndicatorDataAttributes.ts +54 -0
  147. package/src/radio/root/RadioRoot.vue +544 -0
  148. package/src/radio/root/RadioRootContext.ts +18 -0
  149. package/src/radio/root/RadioRootDataAttributes.ts +46 -0
  150. package/src/radio/utils/stateAttributesMapping.ts +29 -0
  151. package/src/radio-group/RadioGroup.vue +381 -0
  152. package/src/radio-group/RadioGroupContext.ts +42 -0
  153. package/src/radio-group/RadioGroupDataAttributes.ts +6 -0
  154. package/src/radio-group/index.ts +10 -0
  155. package/src/tabs/index.ts +38 -0
  156. package/src/tabs/indicator/TabsIndicator.vue +201 -0
  157. package/src/tabs/indicator/TabsIndicatorCssVars.ts +26 -0
  158. package/src/tabs/indicator/TabsIndicatorDataAttributes.ts +12 -0
  159. package/src/tabs/indicator/prehydrationScript.min.ts +5 -0
  160. package/src/tabs/indicator/prehydrationScript.template.js +87 -0
  161. package/src/tabs/list/TabsList.vue +201 -0
  162. package/src/tabs/list/TabsListContext.ts +29 -0
  163. package/src/tabs/list/TabsListDataAttributes.ts +12 -0
  164. package/src/tabs/panel/TabsPanel.vue +167 -0
  165. package/src/tabs/panel/TabsPanelDataAttributes.ts +28 -0
  166. package/src/tabs/root/TabsRoot.vue +468 -0
  167. package/src/tabs/root/TabsRootContext.ts +56 -0
  168. package/src/tabs/root/TabsRootDataAttributes.ts +12 -0
  169. package/src/tabs/root/stateAttributesMapping.ts +9 -0
  170. package/src/tabs/tab/TabsTab.vue +274 -0
  171. package/src/tabs/tab/TabsTabDataAttributes.ts +20 -0
  172. package/src/tabs/utils/areTabValuesEqual.ts +6 -0
  173. package/src/tooltip/arrow/TooltipArrow.vue +116 -0
  174. package/src/tooltip/arrow/TooltipArrowDataAttributes.ts +31 -0
  175. package/src/tooltip/index.ts +54 -0
  176. package/src/tooltip/popup/TooltipPopup.vue +142 -0
  177. package/src/tooltip/popup/TooltipPopupDataAttributes.ts +35 -0
  178. package/src/tooltip/portal/TooltipPortal.vue +83 -0
  179. package/src/tooltip/portal/TooltipPortalContext.ts +19 -0
  180. package/src/tooltip/positioner/TooltipPositioner.vue +221 -0
  181. package/src/tooltip/positioner/TooltipPositionerContext.ts +23 -0
  182. package/src/tooltip/positioner/TooltipPositionerCssVars.ts +27 -0
  183. package/src/tooltip/positioner/TooltipPositionerDataAttributes.ts +26 -0
  184. package/src/tooltip/provider/TooltipProvider.vue +78 -0
  185. package/src/tooltip/provider/TooltipProviderContext.ts +19 -0
  186. package/src/tooltip/root/TooltipRoot.vue +401 -0
  187. package/src/tooltip/root/TooltipRootContext.ts +71 -0
  188. package/src/tooltip/store/TooltipHandle.ts +215 -0
  189. package/src/tooltip/trigger/TooltipTrigger.vue +343 -0
  190. package/src/tooltip/trigger/TooltipTriggerDataAttributes.ts +12 -0
  191. package/src/tooltip/utils/constants.ts +2 -0
  192. package/src/tooltip/viewport/TooltipViewport.vue +149 -0
  193. package/src/tooltip/viewport/TooltipViewportCssVars.ts +14 -0
  194. package/src/tooltip/viewport/TooltipViewportDataAttributes.ts +26 -0
  195. package/src/utils/FloatingPortalLite.vue +66 -0
  196. package/src/utils/FocusGuard.vue +36 -0
  197. package/src/utils/adaptiveOriginMiddleware.ts +79 -0
  198. package/src/utils/addEventListener.ts +16 -0
  199. package/src/utils/constants.ts +11 -0
  200. package/src/utils/createBaseUIEventDetails.ts +2 -0
  201. package/src/utils/detectBrowser.ts +15 -0
  202. package/src/utils/formatNumber.ts +35 -2
  203. package/src/utils/getCssDimensions.ts +19 -0
  204. package/src/utils/getDisabledMountTransitionStyles.ts +9 -0
  205. package/src/utils/hideMiddleware.ts +19 -0
  206. package/src/utils/mergeCleanups.ts +7 -0
  207. package/src/utils/platform.ts +18 -0
  208. package/src/utils/popupStateMapping.ts +103 -0
  209. package/src/utils/reasons.ts +4 -0
  210. package/src/utils/serializeValue.ts +17 -0
  211. package/src/utils/useAnchorPositioning.ts +644 -0
  212. package/src/utils/useInterval.ts +45 -0
  213. package/src/utils/usePopupAutoResize.ts +254 -0
  214. package/src/utils/usePopupViewport.ts +398 -0
  215. package/src/utils/usePositioner.ts +61 -0
  216. package/src/utils/usePressAndHold.ts +260 -0
  217. package/src/utils/useRenderElement.ts +3 -0
  218. package/src/utils/useValueChanged.ts +21 -0
@@ -1,253 +1,7 @@
1
+ const require_arrow_TooltipArrow = require('../arrow/TooltipArrow.cjs');
1
2
  let vue = require("vue");
2
3
  let _floating_ui_utils_dom = require("@floating-ui/utils/dom");
3
4
 
4
- //#region src/merge-props/mergeProps.ts
5
- function makeEventPreventable(event) {
6
- const baseUIEvent = event;
7
- if (!baseUIEvent.preventBaseUIHandler) baseUIEvent.preventBaseUIHandler = () => {
8
- baseUIEvent.baseUIHandlerPrevented = true;
9
- };
10
- return baseUIEvent;
11
- }
12
- function mergeClasses(ourClass, theirClass) {
13
- if (theirClass) {
14
- if (ourClass) return `${theirClass} ${ourClass}`;
15
- return theirClass;
16
- }
17
- return ourClass;
18
- }
19
- function mergeObjects(a, b) {
20
- if (a && !b) return a;
21
- if (!a && b) return b;
22
- if (a || b) return {
23
- ...a,
24
- ...b
25
- };
26
- }
27
- function isEventHandler(key, value) {
28
- return key.startsWith("on") && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90 && (typeof value === "function" || Array.isArray(value) || typeof value === "undefined");
29
- }
30
- /**
31
- * Merges Vue prop/attr objects using Base UI Vue semantics.
32
- *
33
- * Later props overwrite earlier ones, except for:
34
- * - Event listeners: merged so the rightmost listener runs first and can prevent earlier listeners.
35
- * - `class`: merged in rightmost-first order.
36
- * - `style`: merged using Vue's native style merging.
37
- */
38
- function mergeProps(...args) {
39
- const definedArgs = args.filter((arg) => arg != null);
40
- const merged = (0, vue.mergeProps)(...definedArgs);
41
- const classValue = mergeClassValues(definedArgs);
42
- if (classValue !== void 0) merged.class = classValue;
43
- for (const propName in merged) if (isEventHandler(propName, merged[propName])) merged[propName] = wrapEventHandlers(merged[propName]);
44
- return merged;
45
- }
46
- /**
47
- * Merges an array of Vue prop/attr objects using the same semantics as {@link mergeProps}.
48
- *
49
- * Useful when prop layers are assembled dynamically before being bound with `v-bind`.
50
- */
51
- function mergePropsN(props) {
52
- const definedProps = props.filter((prop) => prop != null);
53
- if (definedProps.length === 0) return {};
54
- return mergeProps(...definedProps);
55
- }
56
- function mergeClassValues(args) {
57
- const classValues = args.map((props) => props?.class).filter((value) => value != null);
58
- if (classValues.length === 0) return;
59
- return (0, vue.normalizeClass)(classValues.reverse());
60
- }
61
- function wrapEventHandlers(handlers) {
62
- if (Array.isArray(handlers)) {
63
- const flatHandlers = handlers.flat(Infinity).filter((handler) => typeof handler === "function");
64
- return (...args) => {
65
- const preventableArgs = getPreventableArgs(args);
66
- if (preventableArgs) {
67
- let result;
68
- for (let i = flatHandlers.length - 1; i >= 0; i -= 1) {
69
- const handlerResult = flatHandlers[i](...preventableArgs.args);
70
- if (result === void 0) result = handlerResult;
71
- if (preventableArgs.event.baseUIHandlerPrevented) break;
72
- }
73
- return result;
74
- }
75
- let result;
76
- for (let i = flatHandlers.length - 1; i >= 0; i -= 1) {
77
- const handlerResult = flatHandlers[i](...args);
78
- if (result === void 0) result = handlerResult;
79
- }
80
- return result;
81
- };
82
- }
83
- if (typeof handlers !== "function") return handlers;
84
- return (...args) => {
85
- const preventableArgs = getPreventableArgs(args);
86
- if (preventableArgs) return handlers(...preventableArgs.args);
87
- return handlers(...args);
88
- };
89
- }
90
- function getPreventableArgs(args) {
91
- const eventIndex = args.findIndex(isPreventableEventArg);
92
- if (eventIndex === -1) return null;
93
- const nextArgs = [...args];
94
- const event = makeEventPreventable(nextArgs[eventIndex]);
95
- nextArgs[eventIndex] = event;
96
- return {
97
- args: nextArgs,
98
- event
99
- };
100
- }
101
- function isPreventableEventArg(value) {
102
- return Boolean(value && typeof value === "object" && (value instanceof Event || "nativeEvent" in value || "preventBaseUIHandler" in value));
103
- }
104
-
105
- //#endregion
106
- //#region src/utils/empty.ts
107
- function NOOP() {}
108
- const EMPTY_ARRAY = Object.freeze([]);
109
- const EMPTY_OBJECT = Object.freeze({});
110
-
111
- //#endregion
112
- //#region src/utils/getStateAttributesProps.ts
113
- function getStateAttributesProps(state, customMapping) {
114
- const props = {};
115
- for (const key in state) {
116
- const value = state[key];
117
- if (customMapping && Object.prototype.hasOwnProperty.call(customMapping, key)) {
118
- const customProps = customMapping[key](value);
119
- if (customProps != null) Object.assign(props, customProps);
120
- continue;
121
- }
122
- if (value === true) props[`data-${key.toLowerCase()}`] = "";
123
- else if (value !== false && value != null) props[`data-${key.toLowerCase()}`] = value.toString();
124
- }
125
- return props;
126
- }
127
-
128
- //#endregion
129
- //#region src/utils/slot.ts
130
- /**
131
- * Pass as the `as` prop to make a component renderless.
132
- */
133
- const Slot = Symbol("Slot");
134
-
135
- //#endregion
136
- //#region src/utils/useMergedRefs.ts
137
- /**
138
- * Merges multiple refs or ref callbacks into a single template ref callback.
139
- * Returns `undefined` when all input refs are nullish (optimization to avoid no-op callbacks).
140
- *
141
- * Supports cleanup callbacks: if a callback ref returns a function, it will be
142
- * called on unmount (when the ref receives `null`) instead of calling the
143
- * callback with `null` directly.
144
- *
145
- * Vue-specific: automatically unwraps `ComponentPublicInstance` to its root `$el`,
146
- * since Vue template refs on components return the instance, not the DOM element.
147
- *
148
- * @example
149
- * ```vue
150
- * <script setup>
151
- * const internalRef = ref(null)
152
- * const externalRef = ref(null)
153
- *
154
- * const mergedRef = useMergedRefs(internalRef, externalRef)
155
- * <\/script>
156
- *
157
- * <template>
158
- * <div :ref="mergedRef"></div>
159
- * </template>
160
- * ```
161
- */
162
- function useMergedRefs(...refs) {
163
- if (refs.every((ref) => ref == null)) return;
164
- const cleanupCallbacks = Array.from({ length: refs.length }, () => null);
165
- return (el) => {
166
- const instance = resolveRefTarget(el);
167
- if (instance != null) for (let i = 0; i < refs.length; i += 1) {
168
- const ref = refs[i];
169
- if (ref == null) continue;
170
- if (typeof ref === "function") {
171
- const refCleanup = ref(instance);
172
- if (typeof refCleanup === "function") cleanupCallbacks[i] = refCleanup;
173
- } else if ("value" in ref) ref.value = instance;
174
- }
175
- else for (let i = 0; i < refs.length; i += 1) {
176
- const ref = refs[i];
177
- if (ref == null) continue;
178
- if (typeof ref === "function") {
179
- const cleanupCallback = cleanupCallbacks[i];
180
- if (typeof cleanupCallback === "function") {
181
- cleanupCallback();
182
- cleanupCallbacks[i] = null;
183
- } else ref(null);
184
- } else if ("value" in ref) ref.value = null;
185
- }
186
- };
187
- }
188
- function resolveRefTarget(el) {
189
- if (el == null) return null;
190
- if (el instanceof Element) return el;
191
- if (typeof el === "object" && "element" in el) {
192
- const exposedElement = (0, vue.unref)(el.element);
193
- if (exposedElement instanceof Element) return exposedElement;
194
- }
195
- if ("$el" in el) return el.$el;
196
- return el;
197
- }
198
-
199
- //#endregion
200
- //#region src/utils/useRenderElement.ts
201
- /**
202
- * Renders a Base UI element (internal composable).
203
- *
204
- * Assembles state-to-data-attribute conversion, class/style resolution,
205
- * and ref wrapping into a single composable used by all polymorphic components.
206
- *
207
- * @param params - The render element parameters.
208
- */
209
- function useRenderElement(params) {
210
- const renderless = (0, vue.computed)(() => params.componentProps.as === Slot);
211
- return {
212
- tag: (0, vue.computed)(() => {
213
- if (renderless.value) return;
214
- return params.componentProps.as ?? params.defaultTagName ?? "div";
215
- }),
216
- mergedProps: (0, vue.computed)(() => {
217
- const state = (0, vue.unref)(params.state);
218
- const rawProps = (0, vue.unref)(params.props) ?? EMPTY_OBJECT;
219
- const merged = {
220
- ...getStateAttributesProps(state, params.stateAttributesMapping),
221
- ...rawProps
222
- };
223
- const resolvedClass = typeof params.componentProps.class === "function" ? params.componentProps.class(state) : params.componentProps.class;
224
- const resolvedStyle = typeof params.componentProps.style === "function" ? params.componentProps.style(state) : params.componentProps.style;
225
- if (resolvedClass !== void 0) merged.class = normalizeClass(merged.class, resolvedClass);
226
- if (resolvedStyle !== void 0) merged.style = normalizeStyle(merged.style, resolvedStyle);
227
- return merged;
228
- }),
229
- renderless,
230
- state: params.state,
231
- ref: params.ref ? useMergedRefs(params.ref) : void 0
232
- };
233
- }
234
- function normalizeClass(currentValue, nextValue) {
235
- if (currentValue == null) return nextValue;
236
- if (nextValue == null) return currentValue;
237
- if (typeof currentValue === "string" && typeof nextValue === "string") return mergeClasses(currentValue, nextValue);
238
- return [currentValue, nextValue];
239
- }
240
- function normalizeStyle(currentValue, nextValue) {
241
- if (currentValue == null) return nextValue;
242
- if (nextValue == null) return currentValue;
243
- if (isPlainObject(currentValue) && isPlainObject(nextValue)) return mergeObjects(currentValue, nextValue);
244
- return [currentValue, nextValue];
245
- }
246
- function isPlainObject(value) {
247
- return value != null && typeof value === "object" && !Array.isArray(value);
248
- }
249
-
250
- //#endregion
251
5
  //#region src/utils/error.ts
252
6
  let set;
253
7
  if (process.env.NODE_ENV !== "production") set = /* @__PURE__ */ new Set();
@@ -323,7 +77,7 @@ function useButton(parameters = {}) {
323
77
  const { onClick: externalOnClick, onMousedown: externalOnMousedown, onKeydown: externalOnKeydown, onKeyup: externalOnKeyup, onPointerdown: externalOnPointerdown, ...otherExternalProps } = externalProps;
324
78
  const disabled = (0, vue.toValue)(parameters.disabled) ?? false;
325
79
  const isNativeButton = (0, vue.toValue)(parameters.native) ?? true;
326
- return mergeProps({
80
+ return require_arrow_TooltipArrow.mergeProps({
327
81
  type: isNativeButton ? "button" : void 0,
328
82
  onClick(event) {
329
83
  if (disabled) {
@@ -337,7 +91,7 @@ function useButton(parameters = {}) {
337
91
  },
338
92
  onKeydown(event) {
339
93
  if (disabled) return;
340
- makeEventPreventable(event);
94
+ require_arrow_TooltipArrow.makeEventPreventable(event);
341
95
  externalOnKeydown?.(event);
342
96
  if (event.baseUIHandlerPrevented) return;
343
97
  if (event.target === event.currentTarget && !isNativeButton && !isValidLinkElement(buttonRef.value)) {
@@ -348,7 +102,7 @@ function useButton(parameters = {}) {
348
102
  },
349
103
  onKeyup(event) {
350
104
  if (disabled) return;
351
- makeEventPreventable(event);
105
+ require_arrow_TooltipArrow.makeEventPreventable(event);
352
106
  externalOnKeyup?.(event);
353
107
  if (event.baseUIHandlerPrevented) return;
354
108
  if (event.target === event.currentTarget && !isNativeButton && event.key === " ") externalOnClick?.(event);
@@ -431,7 +185,7 @@ var Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue
431
185
  })
432
186
  });
433
187
  const state = (0, vue.computed)(() => ({ disabled: props.disabled }));
434
- const { tag, mergedProps, renderless, ref: renderRef } = useRenderElement({
188
+ const { tag, mergedProps, renderless, ref: renderRef } = require_arrow_TooltipArrow.useRenderElement({
435
189
  componentProps: props,
436
190
  state,
437
191
  props: (0, vue.computed)(() => getButtonProps({ ...attrs })),
@@ -466,30 +220,6 @@ Object.defineProperty(exports, 'Button_default', {
466
220
  return Button_default;
467
221
  }
468
222
  });
469
- Object.defineProperty(exports, 'EMPTY_ARRAY', {
470
- enumerable: true,
471
- get: function () {
472
- return EMPTY_ARRAY;
473
- }
474
- });
475
- Object.defineProperty(exports, 'EMPTY_OBJECT', {
476
- enumerable: true,
477
- get: function () {
478
- return EMPTY_OBJECT;
479
- }
480
- });
481
- Object.defineProperty(exports, 'NOOP', {
482
- enumerable: true,
483
- get: function () {
484
- return NOOP;
485
- }
486
- });
487
- Object.defineProperty(exports, 'Slot', {
488
- enumerable: true,
489
- get: function () {
490
- return Slot;
491
- }
492
- });
493
223
  Object.defineProperty(exports, 'compositeRootContextKey', {
494
224
  enumerable: true,
495
225
  get: function () {
@@ -502,36 +232,6 @@ Object.defineProperty(exports, 'error', {
502
232
  return error;
503
233
  }
504
234
  });
505
- Object.defineProperty(exports, 'makeEventPreventable', {
506
- enumerable: true,
507
- get: function () {
508
- return makeEventPreventable;
509
- }
510
- });
511
- Object.defineProperty(exports, 'mergeClasses', {
512
- enumerable: true,
513
- get: function () {
514
- return mergeClasses;
515
- }
516
- });
517
- Object.defineProperty(exports, 'mergeObjects', {
518
- enumerable: true,
519
- get: function () {
520
- return mergeObjects;
521
- }
522
- });
523
- Object.defineProperty(exports, 'mergeProps', {
524
- enumerable: true,
525
- get: function () {
526
- return mergeProps;
527
- }
528
- });
529
- Object.defineProperty(exports, 'mergePropsN', {
530
- enumerable: true,
531
- get: function () {
532
- return mergePropsN;
533
- }
534
- });
535
235
  Object.defineProperty(exports, 'useButton', {
536
236
  enumerable: true,
537
237
  get: function () {
@@ -550,16 +250,4 @@ Object.defineProperty(exports, 'useFocusableWhenDisabled', {
550
250
  return useFocusableWhenDisabled;
551
251
  }
552
252
  });
553
- Object.defineProperty(exports, 'useMergedRefs', {
554
- enumerable: true,
555
- get: function () {
556
- return useMergedRefs;
557
- }
558
- });
559
- Object.defineProperty(exports, 'useRenderElement', {
560
- enumerable: true,
561
- get: function () {
562
- return useRenderElement;
563
- }
564
- });
565
253
  //# sourceMappingURL=Button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","names":[],"sources":["../../src/merge-props/mergeProps.ts","../../src/utils/empty.ts","../../src/utils/getStateAttributesProps.ts","../../src/utils/slot.ts","../../src/utils/useMergedRefs.ts","../../src/utils/useRenderElement.ts","../../src/utils/error.ts","../../src/composite/root/CompositeRootContext.ts","../../src/utils/useFocusableWhenDisabled.ts","../../src/use-button/useButton.ts","../../src/button/Button.vue","../../src/button/Button.vue"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.cjs","names":["mergeProps"],"sources":["../../src/utils/error.ts","../../src/composite/root/CompositeRootContext.ts","../../src/utils/useFocusableWhenDisabled.ts","../../src/use-button/useButton.ts","../../src/button/Button.vue","../../src/button/Button.vue"],"sourcesContent":[],"mappings":"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"}
@@ -1,253 +1,7 @@
1
- import { computed, createBlock, createCommentVNode, defineComponent, inject, mergeProps, normalizeClass, openBlock, ref, renderSlot, resolveDynamicComponent, toValue, unref, useAttrs, watchEffect, withCtx } from "vue";
1
+ import { makeEventPreventable, mergeProps as mergeProps$1, useRenderElement } from "../arrow/TooltipArrow.js";
2
+ import { computed, createBlock, createCommentVNode, defineComponent, inject, mergeProps, openBlock, ref, renderSlot, resolveDynamicComponent, toValue, unref, useAttrs, watchEffect, withCtx } from "vue";
2
3
  import { isHTMLElement } from "@floating-ui/utils/dom";
3
4
 
4
- //#region src/merge-props/mergeProps.ts
5
- function makeEventPreventable(event) {
6
- const baseUIEvent = event;
7
- if (!baseUIEvent.preventBaseUIHandler) baseUIEvent.preventBaseUIHandler = () => {
8
- baseUIEvent.baseUIHandlerPrevented = true;
9
- };
10
- return baseUIEvent;
11
- }
12
- function mergeClasses(ourClass, theirClass) {
13
- if (theirClass) {
14
- if (ourClass) return `${theirClass} ${ourClass}`;
15
- return theirClass;
16
- }
17
- return ourClass;
18
- }
19
- function mergeObjects(a, b) {
20
- if (a && !b) return a;
21
- if (!a && b) return b;
22
- if (a || b) return {
23
- ...a,
24
- ...b
25
- };
26
- }
27
- function isEventHandler(key, value) {
28
- return key.startsWith("on") && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90 && (typeof value === "function" || Array.isArray(value) || typeof value === "undefined");
29
- }
30
- /**
31
- * Merges Vue prop/attr objects using Base UI Vue semantics.
32
- *
33
- * Later props overwrite earlier ones, except for:
34
- * - Event listeners: merged so the rightmost listener runs first and can prevent earlier listeners.
35
- * - `class`: merged in rightmost-first order.
36
- * - `style`: merged using Vue's native style merging.
37
- */
38
- function mergeProps$1(...args) {
39
- const definedArgs = args.filter((arg) => arg != null);
40
- const merged = mergeProps(...definedArgs);
41
- const classValue = mergeClassValues(definedArgs);
42
- if (classValue !== void 0) merged.class = classValue;
43
- for (const propName in merged) if (isEventHandler(propName, merged[propName])) merged[propName] = wrapEventHandlers(merged[propName]);
44
- return merged;
45
- }
46
- /**
47
- * Merges an array of Vue prop/attr objects using the same semantics as {@link mergeProps}.
48
- *
49
- * Useful when prop layers are assembled dynamically before being bound with `v-bind`.
50
- */
51
- function mergePropsN(props) {
52
- const definedProps = props.filter((prop) => prop != null);
53
- if (definedProps.length === 0) return {};
54
- return mergeProps$1(...definedProps);
55
- }
56
- function mergeClassValues(args) {
57
- const classValues = args.map((props) => props?.class).filter((value) => value != null);
58
- if (classValues.length === 0) return;
59
- return normalizeClass(classValues.reverse());
60
- }
61
- function wrapEventHandlers(handlers) {
62
- if (Array.isArray(handlers)) {
63
- const flatHandlers = handlers.flat(Infinity).filter((handler) => typeof handler === "function");
64
- return (...args) => {
65
- const preventableArgs = getPreventableArgs(args);
66
- if (preventableArgs) {
67
- let result;
68
- for (let i = flatHandlers.length - 1; i >= 0; i -= 1) {
69
- const handlerResult = flatHandlers[i](...preventableArgs.args);
70
- if (result === void 0) result = handlerResult;
71
- if (preventableArgs.event.baseUIHandlerPrevented) break;
72
- }
73
- return result;
74
- }
75
- let result;
76
- for (let i = flatHandlers.length - 1; i >= 0; i -= 1) {
77
- const handlerResult = flatHandlers[i](...args);
78
- if (result === void 0) result = handlerResult;
79
- }
80
- return result;
81
- };
82
- }
83
- if (typeof handlers !== "function") return handlers;
84
- return (...args) => {
85
- const preventableArgs = getPreventableArgs(args);
86
- if (preventableArgs) return handlers(...preventableArgs.args);
87
- return handlers(...args);
88
- };
89
- }
90
- function getPreventableArgs(args) {
91
- const eventIndex = args.findIndex(isPreventableEventArg);
92
- if (eventIndex === -1) return null;
93
- const nextArgs = [...args];
94
- const event = makeEventPreventable(nextArgs[eventIndex]);
95
- nextArgs[eventIndex] = event;
96
- return {
97
- args: nextArgs,
98
- event
99
- };
100
- }
101
- function isPreventableEventArg(value) {
102
- return Boolean(value && typeof value === "object" && (value instanceof Event || "nativeEvent" in value || "preventBaseUIHandler" in value));
103
- }
104
-
105
- //#endregion
106
- //#region src/utils/empty.ts
107
- function NOOP() {}
108
- const EMPTY_ARRAY = Object.freeze([]);
109
- const EMPTY_OBJECT = Object.freeze({});
110
-
111
- //#endregion
112
- //#region src/utils/getStateAttributesProps.ts
113
- function getStateAttributesProps(state, customMapping) {
114
- const props = {};
115
- for (const key in state) {
116
- const value = state[key];
117
- if (customMapping && Object.prototype.hasOwnProperty.call(customMapping, key)) {
118
- const customProps = customMapping[key](value);
119
- if (customProps != null) Object.assign(props, customProps);
120
- continue;
121
- }
122
- if (value === true) props[`data-${key.toLowerCase()}`] = "";
123
- else if (value !== false && value != null) props[`data-${key.toLowerCase()}`] = value.toString();
124
- }
125
- return props;
126
- }
127
-
128
- //#endregion
129
- //#region src/utils/slot.ts
130
- /**
131
- * Pass as the `as` prop to make a component renderless.
132
- */
133
- const Slot = Symbol("Slot");
134
-
135
- //#endregion
136
- //#region src/utils/useMergedRefs.ts
137
- /**
138
- * Merges multiple refs or ref callbacks into a single template ref callback.
139
- * Returns `undefined` when all input refs are nullish (optimization to avoid no-op callbacks).
140
- *
141
- * Supports cleanup callbacks: if a callback ref returns a function, it will be
142
- * called on unmount (when the ref receives `null`) instead of calling the
143
- * callback with `null` directly.
144
- *
145
- * Vue-specific: automatically unwraps `ComponentPublicInstance` to its root `$el`,
146
- * since Vue template refs on components return the instance, not the DOM element.
147
- *
148
- * @example
149
- * ```vue
150
- * <script setup>
151
- * const internalRef = ref(null)
152
- * const externalRef = ref(null)
153
- *
154
- * const mergedRef = useMergedRefs(internalRef, externalRef)
155
- * <\/script>
156
- *
157
- * <template>
158
- * <div :ref="mergedRef"></div>
159
- * </template>
160
- * ```
161
- */
162
- function useMergedRefs(...refs) {
163
- if (refs.every((ref) => ref == null)) return;
164
- const cleanupCallbacks = Array.from({ length: refs.length }, () => null);
165
- return (el) => {
166
- const instance = resolveRefTarget(el);
167
- if (instance != null) for (let i = 0; i < refs.length; i += 1) {
168
- const ref = refs[i];
169
- if (ref == null) continue;
170
- if (typeof ref === "function") {
171
- const refCleanup = ref(instance);
172
- if (typeof refCleanup === "function") cleanupCallbacks[i] = refCleanup;
173
- } else if ("value" in ref) ref.value = instance;
174
- }
175
- else for (let i = 0; i < refs.length; i += 1) {
176
- const ref = refs[i];
177
- if (ref == null) continue;
178
- if (typeof ref === "function") {
179
- const cleanupCallback = cleanupCallbacks[i];
180
- if (typeof cleanupCallback === "function") {
181
- cleanupCallback();
182
- cleanupCallbacks[i] = null;
183
- } else ref(null);
184
- } else if ("value" in ref) ref.value = null;
185
- }
186
- };
187
- }
188
- function resolveRefTarget(el) {
189
- if (el == null) return null;
190
- if (el instanceof Element) return el;
191
- if (typeof el === "object" && "element" in el) {
192
- const exposedElement = unref(el.element);
193
- if (exposedElement instanceof Element) return exposedElement;
194
- }
195
- if ("$el" in el) return el.$el;
196
- return el;
197
- }
198
-
199
- //#endregion
200
- //#region src/utils/useRenderElement.ts
201
- /**
202
- * Renders a Base UI element (internal composable).
203
- *
204
- * Assembles state-to-data-attribute conversion, class/style resolution,
205
- * and ref wrapping into a single composable used by all polymorphic components.
206
- *
207
- * @param params - The render element parameters.
208
- */
209
- function useRenderElement(params) {
210
- const renderless = computed(() => params.componentProps.as === Slot);
211
- return {
212
- tag: computed(() => {
213
- if (renderless.value) return;
214
- return params.componentProps.as ?? params.defaultTagName ?? "div";
215
- }),
216
- mergedProps: computed(() => {
217
- const state = unref(params.state);
218
- const rawProps = unref(params.props) ?? EMPTY_OBJECT;
219
- const merged = {
220
- ...getStateAttributesProps(state, params.stateAttributesMapping),
221
- ...rawProps
222
- };
223
- const resolvedClass = typeof params.componentProps.class === "function" ? params.componentProps.class(state) : params.componentProps.class;
224
- const resolvedStyle = typeof params.componentProps.style === "function" ? params.componentProps.style(state) : params.componentProps.style;
225
- if (resolvedClass !== void 0) merged.class = normalizeClass$1(merged.class, resolvedClass);
226
- if (resolvedStyle !== void 0) merged.style = normalizeStyle$1(merged.style, resolvedStyle);
227
- return merged;
228
- }),
229
- renderless,
230
- state: params.state,
231
- ref: params.ref ? useMergedRefs(params.ref) : void 0
232
- };
233
- }
234
- function normalizeClass$1(currentValue, nextValue) {
235
- if (currentValue == null) return nextValue;
236
- if (nextValue == null) return currentValue;
237
- if (typeof currentValue === "string" && typeof nextValue === "string") return mergeClasses(currentValue, nextValue);
238
- return [currentValue, nextValue];
239
- }
240
- function normalizeStyle$1(currentValue, nextValue) {
241
- if (currentValue == null) return nextValue;
242
- if (nextValue == null) return currentValue;
243
- if (isPlainObject(currentValue) && isPlainObject(nextValue)) return mergeObjects(currentValue, nextValue);
244
- return [currentValue, nextValue];
245
- }
246
- function isPlainObject(value) {
247
- return value != null && typeof value === "object" && !Array.isArray(value);
248
- }
249
-
250
- //#endregion
251
5
  //#region src/utils/error.ts
252
6
  let set;
253
7
  if (process.env.NODE_ENV !== "production") set = /* @__PURE__ */ new Set();
@@ -460,5 +214,5 @@ var Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
460
214
  var Button_default = Button_vue_vue_type_script_setup_true_lang_default;
461
215
 
462
216
  //#endregion
463
- export { Button_default, EMPTY_ARRAY, EMPTY_OBJECT, NOOP, Slot, compositeRootContextKey, error, makeEventPreventable, mergeClasses, mergeObjects, mergeProps$1 as mergeProps, mergePropsN, useButton, useCompositeRootContext, useFocusableWhenDisabled, useMergedRefs, useRenderElement };
217
+ export { Button_default, compositeRootContextKey, error, useButton, useCompositeRootContext, useFocusableWhenDisabled };
464
218
  //# sourceMappingURL=Button.js.map