@wix/site-ui 1.30.0 → 1.31.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 (173) hide show
  1. package/dist/1268.js +99 -0
  2. package/dist/1279.js +7 -0
  3. package/dist/1457.js +10 -0
  4. package/dist/1477.js +106 -0
  5. package/dist/1500.js +111 -0
  6. package/dist/167.js +6 -0
  7. package/dist/2274.js +34 -0
  8. package/dist/2287.js +17 -0
  9. package/dist/2418.js +31 -0
  10. package/dist/2801.js +20 -0
  11. package/dist/285.js +86 -0
  12. package/dist/2861.js +6 -0
  13. package/dist/3020.js +7 -0
  14. package/dist/3021.js +72 -0
  15. package/dist/3056.js +229 -0
  16. package/dist/3140.js +4 -0
  17. package/dist/3248.js +307 -0
  18. package/dist/3296.js +4 -0
  19. package/dist/3319.js +400 -0
  20. package/dist/3395.js +4 -0
  21. package/dist/3485.js +854 -0
  22. package/dist/353.js +14 -0
  23. package/dist/3670.js +418 -0
  24. package/dist/3829.js +113 -0
  25. package/dist/4026.js +12 -0
  26. package/dist/4143.js +46 -0
  27. package/dist/42.js +32 -0
  28. package/dist/4281.js +30 -0
  29. package/dist/4346.js +2 -0
  30. package/dist/4388.js +418 -0
  31. package/dist/4490.js +32 -0
  32. package/dist/4495.js +9 -0
  33. package/dist/4549.js +24 -0
  34. package/dist/4586.js +41 -0
  35. package/dist/4586.js.LICENSE.txt +19 -0
  36. package/dist/4707.js +19 -0
  37. package/dist/4723.js +7 -0
  38. package/dist/4745.js +7 -0
  39. package/dist/4768.js +35 -0
  40. package/dist/4922.js +15 -0
  41. package/dist/5036.js +17 -0
  42. package/dist/5085.js +20 -0
  43. package/dist/5299.js +597 -0
  44. package/dist/5659.js +4 -0
  45. package/dist/5778.js +10 -0
  46. package/dist/5864.js +86 -0
  47. package/dist/5992.js +913 -0
  48. package/dist/5992.js.LICENSE.txt +19 -0
  49. package/dist/6003.js +10 -0
  50. package/dist/6046.js +29 -0
  51. package/dist/6089.js +2355 -0
  52. package/dist/6107.js +10 -0
  53. package/dist/6247.js +20 -0
  54. package/dist/6270.js +487 -0
  55. package/dist/6329.js +32 -0
  56. package/dist/6330.js +30 -0
  57. package/dist/6499.js +7 -0
  58. package/dist/6535.js +71 -0
  59. package/dist/6588.js +382 -0
  60. package/dist/6706.js +16 -0
  61. package/dist/6825.js +7 -0
  62. package/dist/6882.js +1562 -0
  63. package/dist/6914.js +30 -0
  64. package/dist/7021.js +13 -0
  65. package/dist/7366.js +83 -0
  66. package/dist/7373.js +25 -0
  67. package/dist/7541.js +25 -0
  68. package/dist/7564.js +10 -0
  69. package/dist/7642.js +20 -0
  70. package/dist/7725.js +10 -0
  71. package/dist/7871.js +38 -0
  72. package/dist/8052.js +352 -0
  73. package/dist/8106.js +238 -0
  74. package/dist/8171.js +346 -0
  75. package/dist/8225.js +21 -0
  76. package/dist/8272.js +333 -0
  77. package/dist/8527.js +58 -0
  78. package/dist/8724.js +10 -0
  79. package/dist/8750.js +1920 -0
  80. package/dist/8758.js +43 -0
  81. package/dist/880.js +149 -0
  82. package/dist/8935.js +8 -0
  83. package/dist/8960.js +22 -0
  84. package/dist/8971.js +40 -0
  85. package/dist/8979.js +10 -0
  86. package/dist/8996.js +71 -0
  87. package/dist/904.js +121 -0
  88. package/dist/9048.js +52 -0
  89. package/dist/9087.js +256 -0
  90. package/dist/9189.js +158 -0
  91. package/dist/9255.js +136 -0
  92. package/dist/9352.js +148 -0
  93. package/dist/951.js +22 -0
  94. package/dist/9635.js +22 -0
  95. package/dist/9829.js +4 -0
  96. package/dist/9863.js +8 -0
  97. package/dist/Accordion/index.d.ts +569 -12
  98. package/dist/Accordion/index.js +423 -8
  99. package/dist/AlertDialog/index.d.ts +1417 -18
  100. package/dist/AlertDialog/index.js +34 -14
  101. package/dist/Autocomplete/index.d.ts +1861 -38
  102. package/dist/Autocomplete/index.js +98 -24
  103. package/dist/Avatar/index.d.ts +129 -7
  104. package/dist/Avatar/index.js +149 -6
  105. package/dist/Breadcrumbs/index.d.ts +960 -7
  106. package/dist/Breadcrumbs/index.js +5 -5
  107. package/dist/Button/index.d.ts +88 -6
  108. package/dist/Button/index.js +27 -3
  109. package/dist/Checkbox/index.d.ts +425 -5
  110. package/dist/Checkbox/index.js +45 -5
  111. package/dist/CheckboxGroup/index.d.ts +318 -3
  112. package/dist/CheckboxGroup/index.js +166 -3
  113. package/dist/Collapsible/index.d.ts +377 -7
  114. package/dist/Collapsible/index.js +160 -6
  115. package/dist/Combobox/index.d.ts +1984 -48
  116. package/dist/Combobox/index.js +352 -29
  117. package/dist/ContextMenu/index.d.ts +2340 -36
  118. package/dist/ContextMenu/index.js +197 -22
  119. package/dist/Dialog/index.d.ts +1355 -18
  120. package/dist/Dialog/index.js +16 -14
  121. package/dist/Drawer/index.d.ts +1653 -18
  122. package/dist/Drawer/index.js +2797 -20
  123. package/dist/Field/index.d.ts +655 -15
  124. package/dist/Field/index.js +677 -10
  125. package/dist/Fieldset/index.d.ts +94 -5
  126. package/dist/Fieldset/index.js +68 -5
  127. package/dist/Form/index.d.ts +331 -2
  128. package/dist/Form/index.js +106 -3
  129. package/dist/Input/index.d.ts +692 -3
  130. package/dist/Input/index.js +10 -3
  131. package/dist/Menu/index.d.ts +2301 -36
  132. package/dist/Menu/index.js +365 -26
  133. package/dist/Menubar/index.d.ts +2301 -3
  134. package/dist/Menubar/index.js +105 -3
  135. package/dist/Meter/index.d.ts +175 -11
  136. package/dist/Meter/index.js +129 -9
  137. package/dist/NavigationMenu/index.d.ts +978 -28
  138. package/dist/NavigationMenu/index.js +1034 -17
  139. package/dist/NumberField/index.d.ts +612 -15
  140. package/dist/NumberField/index.js +1409 -11
  141. package/dist/Popover/index.d.ts +1655 -20
  142. package/dist/Popover/index.js +792 -17
  143. package/dist/PreviewCard/index.d.ts +1523 -14
  144. package/dist/PreviewCard/index.js +679 -14
  145. package/dist/Progress/index.d.ts +183 -11
  146. package/dist/Progress/index.js +181 -9
  147. package/dist/Radio/index.d.ts +185 -6
  148. package/dist/Radio/index.js +253 -6
  149. package/dist/RadioGroup/index.d.ts +341 -2
  150. package/dist/RadioGroup/index.js +154 -3
  151. package/dist/ScrollArea/index.d.ts +265 -13
  152. package/dist/ScrollArea/index.js +892 -10
  153. package/dist/Select/index.d.ts +1493 -38
  154. package/dist/Select/index.js +1824 -23
  155. package/dist/Separator/index.d.ts +80 -6
  156. package/dist/Separator/index.js +3 -3
  157. package/dist/Slider/index.d.ts +678 -16
  158. package/dist/Slider/index.js +1199 -11
  159. package/dist/Switch/index.d.ts +393 -5
  160. package/dist/Switch/index.js +208 -6
  161. package/dist/Tabs/index.d.ts +523 -12
  162. package/dist/Tabs/index.js +685 -9
  163. package/dist/Toggle/index.d.ts +305 -2
  164. package/dist/Toggle/index.js +76 -3
  165. package/dist/ToggleGroup/index.d.ts +316 -2
  166. package/dist/ToggleGroup/index.js +102 -3
  167. package/dist/Toolbar/index.d.ts +282 -13
  168. package/dist/Toolbar/index.js +230 -9
  169. package/dist/Tooltip/index.d.ts +1572 -14
  170. package/dist/Tooltip/index.js +965 -14
  171. package/dist/index.d.ts +12749 -652
  172. package/dist/rslib-runtime.js +18 -0
  173. package/package.json +3 -3
@@ -1,7 +1,958 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Tooltip } from "@base-ui/react/tooltip";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import clsx from "clsx";
3
+ import { mergeProps, useRenderElement, esm_formatErrorMessage } from "../8272.js";
4
+ import { Timeout, useTimeout } from "../42.js";
5
+ import { useIsoLayoutEffect } from "../6499.js";
6
+ import { useHoverFloatingInteraction, useHoverInteractionSharedState, getDelay } from "../3056.js";
7
+ import { createChangeEventDetails } from "../4768.js";
8
+ import { POPUP_COLLISION_AVOIDANCE, triggerOpenStateMapping, popupStateMapping, popupStateMapping_CommonTriggerDataAttributes } from "../4388.js";
9
+ import { getWindow, isElement } from "../3829.js";
10
+ import { useDismiss, PopupTriggerMap, createSelector, fastComponent, fastComponentRef, ReactStore } from "../5992.js";
11
+ import { useBaseUiId } from "../6046.js";
12
+ import { useTriggerDataForwarding, usePopupInteractionProps, setOpenTriggerState, usePopupStore, useImplicitActiveTrigger, useOnFirstRender, useOpenStateTransitions, FOCUSABLE_POPUP_PROPS } from "../8106.js";
13
+ import { useValueAsRef } from "../4707.js";
14
+ import { getTarget, contains } from "../4549.js";
15
+ import { safePolygon, useHoverReferenceInteraction } from "../3670.js";
16
+ import { useFocus } from "../904.js";
17
+ import { imperativeAction, triggerFocus, escapeKey, disabled as reason_parts_disabled, triggerHover, triggerPress } from "../2418.js";
18
+ import { isMouseLikePointerType } from "../6330.js";
19
+ import { usePositioner, adaptiveOriginMiddleware_adaptiveOrigin, useAnchorPositioning, getDisabledMountTransitionStyles } from "../8750.js";
20
+ import { transitionStatusMapping, useOpenChangeComplete } from "../880.js";
21
+ import { usePopupViewport } from "../8171.js";
22
+ import { useStableCallback } from "../7541.js";
23
+ import { addEventListener } from "../4723.js";
24
+ import { createPopupFloatingRootContext, popupStoreSelectors, createInitialPopupStoreState } from "../6535.js";
25
+ import { FloatingPortalLite_FloatingPortalLite } from "../8960.js";
4
26
  import * as __rspack_external_react from "react";
27
+ import * as __rspack_external_react_dom_7136dc57 from "react-dom";
28
+ const TooltipRootContext = /*#__PURE__*/ __rspack_external_react.createContext(void 0);
29
+ if ("production" !== process.env.NODE_ENV) TooltipRootContext.displayName = "TooltipRootContext";
30
+ function useTooltipRootContext(optional) {
31
+ const context = __rspack_external_react.useContext(TooltipRootContext);
32
+ if (void 0 === context && !optional) throw new Error("production" !== process.env.NODE_ENV ? 'Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.' : esm_formatErrorMessage(72));
33
+ return context;
34
+ }
35
+ const TooltipProviderContext = /*#__PURE__*/ __rspack_external_react.createContext(void 0);
36
+ if ("production" !== process.env.NODE_ENV) TooltipProviderContext.displayName = "TooltipProviderContext";
37
+ function useTooltipProviderContext() {
38
+ return __rspack_external_react.useContext(TooltipProviderContext);
39
+ }
40
+ const FloatingDelayGroupContext = /*#__PURE__*/ __rspack_external_react.createContext({
41
+ hasProvider: false,
42
+ timeoutMs: 0,
43
+ delayRef: {
44
+ current: 0
45
+ },
46
+ initialDelayRef: {
47
+ current: 0
48
+ },
49
+ timeout: new Timeout(),
50
+ currentIdRef: {
51
+ current: null
52
+ },
53
+ currentContextRef: {
54
+ current: null
55
+ }
56
+ });
57
+ if ("production" !== process.env.NODE_ENV) FloatingDelayGroupContext.displayName = "FloatingDelayGroupContext";
58
+ function FloatingDelayGroup(props) {
59
+ const { children, delay, timeoutMs = 0 } = props;
60
+ const delayRef = __rspack_external_react.useRef(delay);
61
+ const initialDelayRef = __rspack_external_react.useRef(delay);
62
+ const currentIdRef = __rspack_external_react.useRef(null);
63
+ const currentContextRef = __rspack_external_react.useRef(null);
64
+ const timeout = useTimeout();
65
+ return /*#__PURE__*/ jsx(FloatingDelayGroupContext.Provider, {
66
+ value: __rspack_external_react.useMemo(()=>({
67
+ hasProvider: true,
68
+ delayRef,
69
+ initialDelayRef,
70
+ currentIdRef,
71
+ timeoutMs,
72
+ currentContextRef,
73
+ timeout
74
+ }), [
75
+ timeoutMs,
76
+ timeout
77
+ ]),
78
+ children: children
79
+ });
80
+ }
81
+ function useDelayGroup(context, options = {
82
+ open: false
83
+ }) {
84
+ const { open } = options;
85
+ const store = 'rootStore' in context ? context.rootStore : context;
86
+ const floatingId = store.useState('floatingId');
87
+ const groupContext = __rspack_external_react.useContext(FloatingDelayGroupContext);
88
+ const { currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, hasProvider, timeout } = groupContext;
89
+ const [isInstantPhase, setIsInstantPhase] = __rspack_external_react.useState(false);
90
+ useIsoLayoutEffect(()=>{
91
+ function unset() {
92
+ setIsInstantPhase(false);
93
+ currentContextRef.current?.setIsInstantPhase(false);
94
+ currentIdRef.current = null;
95
+ currentContextRef.current = null;
96
+ delayRef.current = initialDelayRef.current;
97
+ }
98
+ if (!currentIdRef.current) return;
99
+ if (!open && currentIdRef.current === floatingId) {
100
+ setIsInstantPhase(false);
101
+ if (timeoutMs) {
102
+ const closingId = floatingId;
103
+ timeout.start(timeoutMs, ()=>{
104
+ if (store.select('open') || currentIdRef.current && currentIdRef.current !== closingId) return;
105
+ unset();
106
+ });
107
+ return ()=>{
108
+ timeout.clear();
109
+ };
110
+ }
111
+ unset();
112
+ }
113
+ }, [
114
+ open,
115
+ floatingId,
116
+ currentIdRef,
117
+ delayRef,
118
+ timeoutMs,
119
+ initialDelayRef,
120
+ currentContextRef,
121
+ timeout,
122
+ store
123
+ ]);
124
+ useIsoLayoutEffect(()=>{
125
+ if (!open) return;
126
+ const prevContext = currentContextRef.current;
127
+ const prevId = currentIdRef.current;
128
+ timeout.clear();
129
+ currentContextRef.current = {
130
+ onOpenChange: store.setOpen,
131
+ setIsInstantPhase
132
+ };
133
+ currentIdRef.current = floatingId;
134
+ delayRef.current = {
135
+ open: 0,
136
+ close: getDelay(initialDelayRef.current, 'close')
137
+ };
138
+ if (null !== prevId && prevId !== floatingId) {
139
+ setIsInstantPhase(true);
140
+ prevContext?.setIsInstantPhase(true);
141
+ prevContext?.onOpenChange(false, createChangeEventDetails("none"));
142
+ } else {
143
+ setIsInstantPhase(false);
144
+ prevContext?.setIsInstantPhase(false);
145
+ }
146
+ }, [
147
+ open,
148
+ floatingId,
149
+ store,
150
+ currentIdRef,
151
+ delayRef,
152
+ initialDelayRef,
153
+ currentContextRef,
154
+ timeout
155
+ ]);
156
+ useIsoLayoutEffect(()=>()=>{
157
+ currentContextRef.current = null;
158
+ }, [
159
+ currentContextRef
160
+ ]);
161
+ return __rspack_external_react.useMemo(()=>({
162
+ hasProvider,
163
+ delayRef,
164
+ isInstantPhase
165
+ }), [
166
+ hasProvider,
167
+ delayRef,
168
+ isInstantPhase
169
+ ]);
170
+ }
171
+ let TooltipTriggerDataAttributes_TooltipTriggerDataAttributes = function(TooltipTriggerDataAttributes) {
172
+ TooltipTriggerDataAttributes[TooltipTriggerDataAttributes["popupOpen"] = popupStateMapping_CommonTriggerDataAttributes.popupOpen] = "popupOpen";
173
+ TooltipTriggerDataAttributes["triggerDisabled"] = "data-trigger-disabled";
174
+ return TooltipTriggerDataAttributes;
175
+ }({});
176
+ const TOOLTIP_TRIGGER_IDENTIFIER = 'data-base-ui-tooltip-trigger';
177
+ function getTargetElement(event) {
178
+ if ('composedPath' in event) {
179
+ const path = event.composedPath();
180
+ for(let i = 0; i < path.length; i += 1){
181
+ const element = path[i];
182
+ if (isElement(element)) return element;
183
+ }
184
+ }
185
+ const target = event.target;
186
+ if (isElement(target)) return target;
187
+ return null;
188
+ }
189
+ function closestEnabledTooltipTrigger(element) {
190
+ let current = element;
191
+ while(current){
192
+ if (current.hasAttribute(TOOLTIP_TRIGGER_IDENTIFIER)) return current;
193
+ const parentElement = current.parentElement;
194
+ if (parentElement) {
195
+ current = parentElement;
196
+ continue;
197
+ }
198
+ const root = current.getRootNode();
199
+ current = 'host' in root && isElement(root.host) ? root.host : null;
200
+ }
201
+ return null;
202
+ }
203
+ const TooltipTrigger_TooltipTrigger = fastComponentRef(function(componentProps, forwardedRef) {
204
+ const { render, className, style, handle, payload, disabled: disabledProp, delay, closeOnClick = true, closeDelay, id: idProp, ...elementProps } = componentProps;
205
+ const rootContext = useTooltipRootContext(true);
206
+ const store = handle?.store ?? rootContext;
207
+ if (!store) throw new Error("production" !== process.env.NODE_ENV ? 'Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle.' : esm_formatErrorMessage(82));
208
+ const thisTriggerId = useBaseUiId(idProp);
209
+ const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);
210
+ const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);
211
+ const floatingRootContext = store.useState('floatingRootContext');
212
+ const triggerElementRef = __rspack_external_react.useRef(null);
213
+ const delayWithDefault = delay ?? 600;
214
+ const closeDelayWithDefault = closeDelay ?? 0;
215
+ const { registerTrigger, isMountedByThisTrigger } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {
216
+ payload,
217
+ closeOnClick,
218
+ closeDelay: closeDelayWithDefault
219
+ });
220
+ const providerContext = useTooltipProviderContext();
221
+ const { delayRef, isInstantPhase, hasProvider } = useDelayGroup(floatingRootContext, {
222
+ open: isOpenedByThisTrigger
223
+ });
224
+ const hoverInteraction = useHoverInteractionSharedState(floatingRootContext);
225
+ store.useSyncedValue('isInstantPhase', isInstantPhase);
226
+ const rootDisabled = store.useState('disabled');
227
+ const disabled = disabledProp ?? rootDisabled;
228
+ const disabledRef = useValueAsRef(disabled);
229
+ const trackCursorAxis = store.useState('trackCursorAxis');
230
+ const disableHoverablePopup = store.useState('disableHoverablePopup');
231
+ const isNestedTriggerHoveredRef = __rspack_external_react.useRef(false);
232
+ const nestedTriggerOpenTimeout = useTimeout();
233
+ const pointerTypeRef = __rspack_external_react.useRef(void 0);
234
+ function getOpenDelay() {
235
+ const providerDelay = providerContext?.delay;
236
+ const groupOpenValue = 'object' == typeof delayRef.current ? delayRef.current.open : void 0;
237
+ let computedOpenDelay = delayWithDefault;
238
+ if (hasProvider) computedOpenDelay = 0 !== groupOpenValue ? delay ?? providerDelay ?? delayWithDefault : 0;
239
+ return computedOpenDelay;
240
+ }
241
+ function isEnabledNestedTriggerTarget(target) {
242
+ const triggerEl = triggerElementRef.current;
243
+ if (!triggerEl || !target) return false;
244
+ const nearestTrigger = closestEnabledTooltipTrigger(target);
245
+ return null !== nearestTrigger && nearestTrigger !== triggerEl && contains(triggerEl, nearestTrigger);
246
+ }
247
+ function detectNestedTriggerHover(target) {
248
+ const nestedTriggerHovered = isEnabledNestedTriggerTarget(target);
249
+ isNestedTriggerHoveredRef.current = nestedTriggerHovered;
250
+ if (nestedTriggerHovered) {
251
+ hoverInteraction.openChangeTimeout.clear();
252
+ hoverInteraction.restTimeout.clear();
253
+ hoverInteraction.restTimeoutPending = false;
254
+ nestedTriggerOpenTimeout.clear();
255
+ }
256
+ return nestedTriggerHovered;
257
+ }
258
+ const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
259
+ enabled: !disabled,
260
+ mouseOnly: true,
261
+ move: false,
262
+ handleClose: disableHoverablePopup || 'both' === trackCursorAxis ? null : safePolygon(),
263
+ restMs: getOpenDelay,
264
+ delay () {
265
+ const closeValue = 'object' == typeof delayRef.current ? delayRef.current.close : void 0;
266
+ let computedCloseDelay = closeDelayWithDefault;
267
+ if (null == closeDelay && hasProvider) computedCloseDelay = closeValue;
268
+ return {
269
+ close: computedCloseDelay
270
+ };
271
+ },
272
+ triggerElementRef,
273
+ isActiveTrigger: isTriggerActive,
274
+ isClosing: ()=>'ending' === store.select('transitionStatus'),
275
+ shouldOpen () {
276
+ return !isNestedTriggerHoveredRef.current;
277
+ }
278
+ });
279
+ const focusProps = useFocus(floatingRootContext, {
280
+ enabled: !disabled
281
+ }).reference;
282
+ const handleNestedTriggerHover = (event)=>{
283
+ const wasNestedTriggerHovered = isNestedTriggerHoveredRef.current;
284
+ const target = getTargetElement(event);
285
+ const nestedTriggerHovered = detectNestedTriggerHover(target);
286
+ const triggerEl = triggerElementRef.current;
287
+ const targetInsideTrigger = triggerEl && target && contains(triggerEl, target);
288
+ if (nestedTriggerHovered && store.select('open') && store.select('lastOpenChangeReason') === triggerHover) return void store.setOpen(false, createChangeEventDetails(triggerHover, event));
289
+ if (wasNestedTriggerHovered && !nestedTriggerHovered && targetInsideTrigger && !disabledRef.current && !store.select('open') && triggerEl && isMouseLikePointerType(pointerTypeRef.current)) {
290
+ const open = ()=>{
291
+ if (!isNestedTriggerHoveredRef.current && !disabledRef.current && !store.select('open')) store.setOpen(true, createChangeEventDetails(triggerHover, event, triggerEl));
292
+ };
293
+ const openDelay = getOpenDelay();
294
+ if (0 === openDelay) {
295
+ nestedTriggerOpenTimeout.clear();
296
+ open();
297
+ } else nestedTriggerOpenTimeout.start(openDelay, open);
298
+ }
299
+ };
300
+ const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);
301
+ const shouldApplyRootTriggerProps = isMountedByThisTrigger || 'none' !== trackCursorAxis;
302
+ const state = {
303
+ open: isOpenedByThisTrigger
304
+ };
305
+ const element = useRenderElement('button', componentProps, {
306
+ state,
307
+ ref: [
308
+ forwardedRef,
309
+ registerTrigger,
310
+ triggerElementRef
311
+ ],
312
+ props: [
313
+ hoverProps,
314
+ focusProps,
315
+ shouldApplyRootTriggerProps ? rootTriggerProps : void 0,
316
+ {
317
+ onMouseOver (event) {
318
+ handleNestedTriggerHover(event.nativeEvent);
319
+ },
320
+ onFocus (event) {
321
+ if (isEnabledNestedTriggerTarget(getTargetElement(event.nativeEvent))) event.preventBaseUIHandler();
322
+ },
323
+ onMouseLeave () {
324
+ isNestedTriggerHoveredRef.current = false;
325
+ nestedTriggerOpenTimeout.clear();
326
+ pointerTypeRef.current = void 0;
327
+ },
328
+ onPointerEnter (event) {
329
+ pointerTypeRef.current = event.pointerType;
330
+ },
331
+ onPointerDown (event) {
332
+ pointerTypeRef.current = event.pointerType;
333
+ store.set('closeOnClick', closeOnClick);
334
+ if (closeOnClick && !store.select('open')) store.cancelPendingOpen(event.nativeEvent);
335
+ },
336
+ onClick (event) {
337
+ if (closeOnClick && !store.select('open')) store.cancelPendingOpen(event.nativeEvent);
338
+ },
339
+ id: thisTriggerId,
340
+ [TooltipTriggerDataAttributes_TooltipTriggerDataAttributes.triggerDisabled]: disabled ? '' : void 0,
341
+ [TOOLTIP_TRIGGER_IDENTIFIER]: disabled ? void 0 : ''
342
+ },
343
+ elementProps
344
+ ],
345
+ stateAttributesMapping: triggerOpenStateMapping
346
+ });
347
+ return element;
348
+ });
349
+ if ("production" !== process.env.NODE_ENV) TooltipTrigger_TooltipTrigger.displayName = "TooltipTrigger";
350
+ const TooltipPositionerContext = /*#__PURE__*/ __rspack_external_react.createContext(void 0);
351
+ if ("production" !== process.env.NODE_ENV) TooltipPositionerContext.displayName = "TooltipPositionerContext";
352
+ function useTooltipPositionerContext() {
353
+ const context = __rspack_external_react.useContext(TooltipPositionerContext);
354
+ if (void 0 === context) throw new Error("production" !== process.env.NODE_ENV ? 'Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.' : esm_formatErrorMessage(71));
355
+ return context;
356
+ }
357
+ const TooltipPortalContext = /*#__PURE__*/ __rspack_external_react.createContext(void 0);
358
+ if ("production" !== process.env.NODE_ENV) TooltipPortalContext.displayName = "TooltipPortalContext";
359
+ function useTooltipPortalContext() {
360
+ const value = __rspack_external_react.useContext(TooltipPortalContext);
361
+ if (void 0 === value) throw new Error("production" !== process.env.NODE_ENV ? 'Base UI: <Tooltip.Portal> is missing.' : esm_formatErrorMessage(70));
362
+ return value;
363
+ }
364
+ const TooltipPositioner_TooltipPositioner = /*#__PURE__*/ __rspack_external_react.forwardRef(function(componentProps, forwardedRef) {
365
+ const { render, className, anchor, positionMethod = 'absolute', side = 'top', align = 'center', sideOffset = 0, alignOffset = 0, collisionBoundary = 'clipping-ancestors', collisionPadding = 5, arrowPadding = 5, sticky = false, disableAnchorTracking = false, collisionAvoidance = POPUP_COLLISION_AVOIDANCE, style, ...elementProps } = componentProps;
366
+ const store = useTooltipRootContext();
367
+ const keepMounted = useTooltipPortalContext();
368
+ const open = store.useState('open');
369
+ const mounted = store.useState('mounted');
370
+ const trackCursorAxis = store.useState('trackCursorAxis');
371
+ const disableHoverablePopup = store.useState('disableHoverablePopup');
372
+ const floatingRootContext = store.useState('floatingRootContext');
373
+ const instantType = store.useState('instantType');
374
+ const transitionStatus = store.useState('transitionStatus');
375
+ const hasViewport = store.useState('hasViewport');
376
+ const positioning = useAnchorPositioning({
377
+ anchor,
378
+ positionMethod,
379
+ floatingRootContext,
380
+ mounted,
381
+ side,
382
+ sideOffset,
383
+ align,
384
+ alignOffset,
385
+ collisionBoundary,
386
+ collisionPadding,
387
+ sticky,
388
+ arrowPadding,
389
+ disableAnchorTracking,
390
+ keepMounted,
391
+ collisionAvoidance,
392
+ adaptiveOrigin: hasViewport ? adaptiveOriginMiddleware_adaptiveOrigin : void 0
393
+ });
394
+ const state = __rspack_external_react.useMemo(()=>({
395
+ open,
396
+ side: positioning.side,
397
+ align: positioning.align,
398
+ anchorHidden: positioning.anchorHidden,
399
+ instant: 'none' !== trackCursorAxis ? 'tracking-cursor' : instantType
400
+ }), [
401
+ open,
402
+ positioning.side,
403
+ positioning.align,
404
+ positioning.anchorHidden,
405
+ trackCursorAxis,
406
+ instantType
407
+ ]);
408
+ const element = usePositioner(componentProps, state, {
409
+ styles: positioning.positionerStyles,
410
+ transitionStatus,
411
+ props: elementProps,
412
+ refs: [
413
+ forwardedRef,
414
+ store.useStateSetter('positionerElement')
415
+ ],
416
+ hidden: !mounted,
417
+ inert: !open || 'both' === trackCursorAxis || disableHoverablePopup
418
+ });
419
+ return /*#__PURE__*/ jsx(TooltipPositionerContext.Provider, {
420
+ value: positioning,
421
+ children: element
422
+ });
423
+ });
424
+ if ("production" !== process.env.NODE_ENV) TooltipPositioner_TooltipPositioner.displayName = "TooltipPositioner";
425
+ const stateAttributesMapping = {
426
+ ...popupStateMapping,
427
+ ...transitionStatusMapping
428
+ };
429
+ const TooltipPopup_TooltipPopup = /*#__PURE__*/ __rspack_external_react.forwardRef(function(componentProps, forwardedRef) {
430
+ const { render, className, style, ...elementProps } = componentProps;
431
+ const store = useTooltipRootContext();
432
+ const { side, align } = useTooltipPositionerContext();
433
+ const open = store.useState('open');
434
+ const instantType = store.useState('instantType');
435
+ const transitionStatus = store.useState('transitionStatus');
436
+ const popupProps = store.useState('popupProps');
437
+ const floatingContext = store.useState('floatingRootContext');
438
+ const disabled = store.useState('disabled');
439
+ const closeDelay = store.useState('closeDelay');
440
+ useOpenChangeComplete({
441
+ open,
442
+ ref: store.context.popupRef,
443
+ onComplete () {
444
+ if (open) store.context.onOpenChangeComplete?.(true);
445
+ }
446
+ });
447
+ useHoverFloatingInteraction(floatingContext, {
448
+ enabled: !disabled,
449
+ closeDelay
450
+ });
451
+ const setPopupElement = store.useStateSetter('popupElement');
452
+ const state = {
453
+ open,
454
+ side,
455
+ align,
456
+ instant: instantType,
457
+ transitionStatus
458
+ };
459
+ const element = useRenderElement('div', componentProps, {
460
+ state,
461
+ ref: [
462
+ forwardedRef,
463
+ store.context.popupRef,
464
+ setPopupElement
465
+ ],
466
+ props: [
467
+ popupProps,
468
+ getDisabledMountTransitionStyles(transitionStatus),
469
+ elementProps
470
+ ],
471
+ stateAttributesMapping: stateAttributesMapping
472
+ });
473
+ return element;
474
+ });
475
+ if ("production" !== process.env.NODE_ENV) TooltipPopup_TooltipPopup.displayName = "TooltipPopup";
476
+ const TooltipArrow_TooltipArrow = /*#__PURE__*/ __rspack_external_react.forwardRef(function(componentProps, forwardedRef) {
477
+ const { render, className, style, ...elementProps } = componentProps;
478
+ const store = useTooltipRootContext();
479
+ const { arrowRef, side, align, arrowUncentered, arrowStyles } = useTooltipPositionerContext();
480
+ const open = store.useState('open');
481
+ const instantType = store.useState('instantType');
482
+ const state = {
483
+ open,
484
+ side,
485
+ align,
486
+ uncentered: arrowUncentered,
487
+ instant: instantType
488
+ };
489
+ const element = useRenderElement('div', componentProps, {
490
+ state,
491
+ ref: [
492
+ forwardedRef,
493
+ arrowRef
494
+ ],
495
+ props: [
496
+ {
497
+ style: arrowStyles,
498
+ 'aria-hidden': true
499
+ },
500
+ elementProps
501
+ ],
502
+ stateAttributesMapping: popupStateMapping
503
+ });
504
+ return element;
505
+ });
506
+ if ("production" !== process.env.NODE_ENV) TooltipArrow_TooltipArrow.displayName = "TooltipArrow";
507
+ let TooltipViewportCssVars_TooltipViewportCssVars = /*#__PURE__*/ function(TooltipViewportCssVars) {
508
+ TooltipViewportCssVars["popupWidth"] = "--popup-width";
509
+ TooltipViewportCssVars["popupHeight"] = "--popup-height";
510
+ return TooltipViewportCssVars;
511
+ }({});
512
+ const TooltipViewport_stateAttributesMapping = {
513
+ activationDirection: (value)=>value ? {
514
+ 'data-activation-direction': value
515
+ } : null
516
+ };
517
+ const TooltipViewport_TooltipViewport = /*#__PURE__*/ __rspack_external_react.forwardRef(function(componentProps, forwardedRef) {
518
+ const { render, className, style, children, ...elementProps } = componentProps;
519
+ const store = useTooltipRootContext();
520
+ const positioner = useTooltipPositionerContext();
521
+ const instantType = store.useState('instantType');
522
+ const { children: childrenToRender, state: viewportState } = usePopupViewport({
523
+ store,
524
+ side: positioner.side,
525
+ cssVars: TooltipViewportCssVars_TooltipViewportCssVars,
526
+ children
527
+ });
528
+ const state = {
529
+ activationDirection: viewportState.activationDirection,
530
+ transitioning: viewportState.transitioning,
531
+ instant: instantType
532
+ };
533
+ return useRenderElement('div', componentProps, {
534
+ state,
535
+ ref: forwardedRef,
536
+ props: [
537
+ elementProps,
538
+ {
539
+ children: childrenToRender
540
+ }
541
+ ],
542
+ stateAttributesMapping: TooltipViewport_stateAttributesMapping
543
+ });
544
+ });
545
+ if ("production" !== process.env.NODE_ENV) TooltipViewport_TooltipViewport.displayName = "TooltipViewport";
546
+ function createVirtualElement(domElement, data) {
547
+ let offsetX = null;
548
+ let offsetY = null;
549
+ let isAutoUpdateEvent = false;
550
+ return {
551
+ contextElement: domElement || void 0,
552
+ getBoundingClientRect () {
553
+ const domRect = domElement?.getBoundingClientRect() || {
554
+ width: 0,
555
+ height: 0,
556
+ x: 0,
557
+ y: 0
558
+ };
559
+ const isXAxis = 'x' === data.axis || 'both' === data.axis;
560
+ const isYAxis = 'y' === data.axis || 'both' === data.axis;
561
+ const canTrackCursorOnAutoUpdate = [
562
+ 'mouseenter',
563
+ 'mousemove'
564
+ ].includes(data.dataRef.current.openEvent?.type || '') && 'touch' !== data.pointerType;
565
+ let width = domRect.width;
566
+ let height = domRect.height;
567
+ let x = domRect.x;
568
+ let y = domRect.y;
569
+ if (null == offsetX && data.x && isXAxis) offsetX = domRect.x - data.x;
570
+ if (null == offsetY && data.y && isYAxis) offsetY = domRect.y - data.y;
571
+ x -= offsetX || 0;
572
+ y -= offsetY || 0;
573
+ width = 0;
574
+ height = 0;
575
+ if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {
576
+ width = 'y' === data.axis ? domRect.width : 0;
577
+ height = 'x' === data.axis ? domRect.height : 0;
578
+ x = isXAxis && null != data.x ? data.x : x;
579
+ y = isYAxis && null != data.y ? data.y : y;
580
+ } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {
581
+ height = 'x' === data.axis ? domRect.height : height;
582
+ width = 'y' === data.axis ? domRect.width : width;
583
+ }
584
+ isAutoUpdateEvent = true;
585
+ return {
586
+ width,
587
+ height,
588
+ x,
589
+ y,
590
+ top: y,
591
+ right: x + width,
592
+ bottom: y + height,
593
+ left: x
594
+ };
595
+ }
596
+ };
597
+ }
598
+ function isMouseBasedEvent(event) {
599
+ return null != event && null != event.clientX;
600
+ }
601
+ function useClientPoint(context, props = {}) {
602
+ const { enabled = true, axis = 'both' } = props;
603
+ const store = 'rootStore' in context ? context.rootStore : context;
604
+ const open = store.useState('open');
605
+ const floating = store.useState('floatingElement');
606
+ const domReference = store.useState('domReferenceElement');
607
+ const dataRef = store.context.dataRef;
608
+ const initialRef = __rspack_external_react.useRef(false);
609
+ const cleanupListenerRef = __rspack_external_react.useRef(null);
610
+ const [pointerType, setPointerType] = __rspack_external_react.useState();
611
+ const [reactive, setReactive] = __rspack_external_react.useState([]);
612
+ const resetReference = useStableCallback((reference)=>{
613
+ store.set('positionReference', reference);
614
+ });
615
+ const setReference = useStableCallback((newX, newY, referenceElement)=>{
616
+ if (initialRef.current) return;
617
+ if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) return;
618
+ store.set('positionReference', createVirtualElement(referenceElement ?? domReference, {
619
+ x: newX,
620
+ y: newY,
621
+ axis,
622
+ dataRef,
623
+ pointerType
624
+ }));
625
+ });
626
+ const handleReferenceEnterOrMove = useStableCallback((event)=>{
627
+ if (open) {
628
+ if (!cleanupListenerRef.current) {
629
+ setReference(event.clientX, event.clientY, event.currentTarget);
630
+ setReactive([]);
631
+ }
632
+ } else setReference(event.clientX, event.clientY, event.currentTarget);
633
+ });
634
+ const openCheck = isMouseLikePointerType(pointerType) ? floating : open;
635
+ __rspack_external_react.useEffect(()=>{
636
+ if (!enabled) return void resetReference(domReference);
637
+ if (!openCheck) return;
638
+ function cleanupListener() {
639
+ cleanupListenerRef.current?.();
640
+ cleanupListenerRef.current = null;
641
+ }
642
+ const win = getWindow(floating);
643
+ function handleMouseMove(event) {
644
+ const target = getTarget(event);
645
+ if (contains(floating, target)) cleanupListener();
646
+ else setReference(event.clientX, event.clientY);
647
+ }
648
+ if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) cleanupListenerRef.current = addEventListener(win, 'mousemove', handleMouseMove);
649
+ else resetReference(domReference);
650
+ return cleanupListener;
651
+ }, [
652
+ openCheck,
653
+ enabled,
654
+ floating,
655
+ dataRef,
656
+ domReference,
657
+ store,
658
+ setReference,
659
+ resetReference,
660
+ reactive
661
+ ]);
662
+ __rspack_external_react.useEffect(()=>()=>{
663
+ store.set('positionReference', null);
664
+ }, [
665
+ store
666
+ ]);
667
+ __rspack_external_react.useEffect(()=>{
668
+ if (enabled && !floating) initialRef.current = false;
669
+ }, [
670
+ enabled,
671
+ floating
672
+ ]);
673
+ __rspack_external_react.useEffect(()=>{
674
+ if (!enabled && open) initialRef.current = true;
675
+ }, [
676
+ enabled,
677
+ open
678
+ ]);
679
+ const reference = __rspack_external_react.useMemo(()=>{
680
+ function setPointerTypeRef(event) {
681
+ setPointerType(event.pointerType);
682
+ }
683
+ return {
684
+ onPointerDown: setPointerTypeRef,
685
+ onPointerEnter: setPointerTypeRef,
686
+ onMouseMove: handleReferenceEnterOrMove,
687
+ onMouseEnter: handleReferenceEnterOrMove
688
+ };
689
+ }, [
690
+ handleReferenceEnterOrMove
691
+ ]);
692
+ return __rspack_external_react.useMemo(()=>enabled ? {
693
+ reference,
694
+ trigger: reference
695
+ } : {}, [
696
+ enabled,
697
+ reference
698
+ ]);
699
+ }
700
+ const selectors = {
701
+ ...popupStoreSelectors,
702
+ disabled: createSelector((state)=>state.disabled),
703
+ instantType: createSelector((state)=>state.instantType),
704
+ isInstantPhase: createSelector((state)=>state.isInstantPhase),
705
+ trackCursorAxis: createSelector((state)=>state.trackCursorAxis),
706
+ disableHoverablePopup: createSelector((state)=>state.disableHoverablePopup),
707
+ lastOpenChangeReason: createSelector((state)=>state.openChangeReason),
708
+ closeOnClick: createSelector((state)=>state.closeOnClick),
709
+ closeDelay: createSelector((state)=>state.closeDelay),
710
+ hasViewport: createSelector((state)=>state.hasViewport)
711
+ };
712
+ class TooltipStore extends ReactStore {
713
+ constructor(initialState, floatingId, nested = false){
714
+ const triggerElements = new PopupTriggerMap();
715
+ const state = {
716
+ ...createInitialState(),
717
+ ...initialState
718
+ };
719
+ state.floatingRootContext = createPopupFloatingRootContext(triggerElements, floatingId, nested);
720
+ super(state, {
721
+ popupRef: /*#__PURE__*/ __rspack_external_react.createRef(),
722
+ onOpenChange: void 0,
723
+ onOpenChangeComplete: void 0,
724
+ triggerElements
725
+ }, selectors);
726
+ }
727
+ setOpen = (nextOpen, eventDetails)=>{
728
+ const reason = eventDetails.reason;
729
+ const isHover = reason === triggerHover;
730
+ const isFocusOpen = nextOpen && reason === triggerFocus;
731
+ const isDismissClose = !nextOpen && (reason === triggerPress || reason === escapeKey);
732
+ eventDetails.preventUnmountOnClose = ()=>{
733
+ this.set('preventUnmountingOnClose', true);
734
+ };
735
+ this.context.onOpenChange?.(nextOpen, eventDetails);
736
+ if (eventDetails.isCanceled) return;
737
+ this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
738
+ const changeState = ()=>{
739
+ const updatedState = {
740
+ open: nextOpen,
741
+ openChangeReason: reason
742
+ };
743
+ if (isFocusOpen) updatedState.instantType = 'focus';
744
+ else if (isDismissClose) updatedState.instantType = 'dismiss';
745
+ else if (reason === triggerHover) updatedState.instantType = void 0;
746
+ setOpenTriggerState(updatedState, nextOpen, eventDetails.trigger);
747
+ this.update(updatedState);
748
+ };
749
+ if (isHover) __rspack_external_react_dom_7136dc57.flushSync(changeState);
750
+ else changeState();
751
+ };
752
+ cancelPendingOpen(event) {
753
+ this.state.floatingRootContext.dispatchOpenChange(false, createChangeEventDetails(triggerPress, event));
754
+ }
755
+ static useStore(externalStore, initialState) {
756
+ const store = usePopupStore(externalStore, (floatingId, nested)=>new TooltipStore(initialState, floatingId, nested)).store;
757
+ return store;
758
+ }
759
+ }
760
+ function createInitialState() {
761
+ return {
762
+ ...createInitialPopupStoreState(),
763
+ disabled: false,
764
+ instantType: void 0,
765
+ isInstantPhase: false,
766
+ trackCursorAxis: 'none',
767
+ disableHoverablePopup: false,
768
+ openChangeReason: null,
769
+ closeOnClick: true,
770
+ closeDelay: 0,
771
+ hasViewport: false
772
+ };
773
+ }
774
+ const TooltipRoot_TooltipRoot = fastComponent(function(props) {
775
+ const { disabled = false, defaultOpen = false, open: openProp, disableHoverablePopup = false, trackCursorAxis = 'none', actionsRef, onOpenChange, onOpenChangeComplete, handle, triggerId: triggerIdProp, defaultTriggerId: defaultTriggerIdProp = null, children } = props;
776
+ const store = TooltipStore.useStore(handle?.store, {
777
+ open: defaultOpen,
778
+ openProp,
779
+ activeTriggerId: defaultTriggerIdProp,
780
+ triggerIdProp
781
+ });
782
+ useOnFirstRender(()=>{
783
+ if (void 0 === openProp && false === store.state.open && true === defaultOpen) store.update({
784
+ open: true,
785
+ activeTriggerId: defaultTriggerIdProp
786
+ });
787
+ });
788
+ store.useControlledProp('openProp', openProp);
789
+ store.useControlledProp('triggerIdProp', triggerIdProp);
790
+ store.useContextCallback('onOpenChange', onOpenChange);
791
+ store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);
792
+ const openState = store.useState('open');
793
+ const open = !disabled && openState;
794
+ const activeTriggerId = store.useState('activeTriggerId');
795
+ const mounted = store.useState('mounted');
796
+ const payload = store.useState('payload');
797
+ store.useSyncedValues({
798
+ trackCursorAxis,
799
+ disableHoverablePopup
800
+ });
801
+ store.useSyncedValue('disabled', disabled);
802
+ useImplicitActiveTrigger(store);
803
+ const { forceUnmount, transitionStatus } = useOpenStateTransitions(open, store);
804
+ const isInstantPhase = store.useState('isInstantPhase');
805
+ const instantType = store.useState('instantType');
806
+ const lastOpenChangeReason = store.useState('lastOpenChangeReason');
807
+ const previousInstantTypeRef = __rspack_external_react.useRef(null);
808
+ useIsoLayoutEffect(()=>{
809
+ if (openState && disabled) store.setOpen(false, createChangeEventDetails(reason_parts_disabled));
810
+ }, [
811
+ openState,
812
+ disabled,
813
+ store
814
+ ]);
815
+ useIsoLayoutEffect(()=>{
816
+ if ('ending' === transitionStatus && "none" === lastOpenChangeReason || 'ending' !== transitionStatus && isInstantPhase) {
817
+ if ('delay' !== instantType) previousInstantTypeRef.current = instantType;
818
+ store.set('instantType', 'delay');
819
+ } else if (null !== previousInstantTypeRef.current) {
820
+ store.set('instantType', previousInstantTypeRef.current);
821
+ previousInstantTypeRef.current = null;
822
+ }
823
+ }, [
824
+ transitionStatus,
825
+ isInstantPhase,
826
+ lastOpenChangeReason,
827
+ instantType,
828
+ store
829
+ ]);
830
+ useIsoLayoutEffect(()=>{
831
+ if (open) {
832
+ if (null == activeTriggerId) store.set('payload', void 0);
833
+ }
834
+ }, [
835
+ store,
836
+ activeTriggerId,
837
+ open
838
+ ]);
839
+ const handleImperativeClose = __rspack_external_react.useCallback(()=>{
840
+ store.setOpen(false, createChangeEventDetails(imperativeAction));
841
+ }, [
842
+ store
843
+ ]);
844
+ __rspack_external_react.useImperativeHandle(actionsRef, ()=>({
845
+ unmount: forceUnmount,
846
+ close: handleImperativeClose
847
+ }), [
848
+ forceUnmount,
849
+ handleImperativeClose
850
+ ]);
851
+ const shouldRenderInteractions = open || mounted || !disabled && 'none' !== trackCursorAxis;
852
+ return /*#__PURE__*/ jsxs(TooltipRootContext.Provider, {
853
+ value: store,
854
+ children: [
855
+ shouldRenderInteractions && /*#__PURE__*/ jsx(TooltipInteractions, {
856
+ store: store,
857
+ disabled: disabled,
858
+ trackCursorAxis: trackCursorAxis
859
+ }),
860
+ 'function' == typeof children ? children({
861
+ payload
862
+ }) : children
863
+ ]
864
+ });
865
+ });
866
+ if ("production" !== process.env.NODE_ENV) TooltipRoot_TooltipRoot.displayName = "TooltipRoot";
867
+ function TooltipInteractions({ store, disabled, trackCursorAxis }) {
868
+ const floatingRootContext = store.useState('floatingRootContext');
869
+ const dismiss = useDismiss(floatingRootContext, {
870
+ enabled: !disabled,
871
+ referencePress: ()=>store.select('closeOnClick')
872
+ });
873
+ const clientPoint = useClientPoint(floatingRootContext, {
874
+ enabled: !disabled && 'none' !== trackCursorAxis,
875
+ axis: 'none' === trackCursorAxis ? void 0 : trackCursorAxis
876
+ });
877
+ const activeTriggerProps = __rspack_external_react.useMemo(()=>mergeProps(clientPoint.reference, dismiss.reference), [
878
+ clientPoint.reference,
879
+ dismiss.reference
880
+ ]);
881
+ const inactiveTriggerProps = __rspack_external_react.useMemo(()=>mergeProps(clientPoint.trigger, dismiss.trigger), [
882
+ clientPoint.trigger,
883
+ dismiss.trigger
884
+ ]);
885
+ const popupProps = __rspack_external_react.useMemo(()=>mergeProps(FOCUSABLE_POPUP_PROPS, clientPoint.floating, dismiss.floating), [
886
+ clientPoint.floating,
887
+ dismiss.floating
888
+ ]);
889
+ usePopupInteractionProps(store, {
890
+ activeTriggerProps,
891
+ inactiveTriggerProps,
892
+ popupProps
893
+ });
894
+ return null;
895
+ }
896
+ const TooltipPortal_TooltipPortal = /*#__PURE__*/ __rspack_external_react.forwardRef(function(props, forwardedRef) {
897
+ const { keepMounted = false, ...portalProps } = props;
898
+ const store = useTooltipRootContext();
899
+ const mounted = store.useState('mounted');
900
+ const shouldRender = mounted || keepMounted;
901
+ if (!shouldRender) return null;
902
+ return /*#__PURE__*/ jsx(TooltipPortalContext.Provider, {
903
+ value: keepMounted,
904
+ children: /*#__PURE__*/ jsx(FloatingPortalLite_FloatingPortalLite, {
905
+ ref: forwardedRef,
906
+ ...portalProps
907
+ })
908
+ });
909
+ });
910
+ if ("production" !== process.env.NODE_ENV) TooltipPortal_TooltipPortal.displayName = "TooltipPortal";
911
+ const TooltipProvider_TooltipProvider = function(props) {
912
+ const { delay, closeDelay, timeout = 400 } = props;
913
+ const contextValue = __rspack_external_react.useMemo(()=>({
914
+ delay,
915
+ closeDelay
916
+ }), [
917
+ delay,
918
+ closeDelay
919
+ ]);
920
+ const delayValue = __rspack_external_react.useMemo(()=>({
921
+ open: delay,
922
+ close: closeDelay
923
+ }), [
924
+ delay,
925
+ closeDelay
926
+ ]);
927
+ return /*#__PURE__*/ jsx(TooltipProviderContext.Provider, {
928
+ value: contextValue,
929
+ children: /*#__PURE__*/ jsx(FloatingDelayGroup, {
930
+ delay: delayValue,
931
+ timeoutMs: timeout,
932
+ children: props.children
933
+ })
934
+ });
935
+ };
936
+ if ("production" !== process.env.NODE_ENV) TooltipProvider_TooltipProvider.displayName = "TooltipProvider";
937
+ class TooltipHandle {
938
+ constructor(){
939
+ this.store = new TooltipStore();
940
+ }
941
+ open(triggerId) {
942
+ const triggerElement = triggerId ? this.store.context.triggerElements.getById(triggerId) : void 0;
943
+ if (triggerId && !triggerElement) throw new Error("production" !== process.env.NODE_ENV ? `Base UI: TooltipHandle.open: No trigger found with id "${triggerId}".` : esm_formatErrorMessage(81, triggerId));
944
+ this.store.setOpen(true, createChangeEventDetails(imperativeAction, void 0, triggerElement));
945
+ }
946
+ close() {
947
+ this.store.setOpen(false, createChangeEventDetails(imperativeAction, void 0, void 0));
948
+ }
949
+ get isOpen() {
950
+ return this.store.select('open');
951
+ }
952
+ }
953
+ function createTooltipHandle() {
954
+ return new TooltipHandle();
955
+ }
5
956
  const Tooltip_module = {
6
957
  trigger: "trigger-xVlrp2",
7
958
  positioner: "positioner-sRKHj5",
@@ -9,41 +960,41 @@ const Tooltip_module = {
9
960
  arrow: "arrow-aUAEXL"
10
961
  };
11
962
  function Trigger({ className, ...props }) {
12
- return /*#__PURE__*/ jsx(Tooltip.Trigger, {
963
+ return /*#__PURE__*/ jsx(TooltipTrigger_TooltipTrigger, {
13
964
  ...props,
14
965
  className: clsx(Tooltip_module.trigger, className)
15
966
  });
16
967
  }
17
- const Positioner = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Tooltip.Positioner, {
968
+ const Positioner = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(TooltipPositioner_TooltipPositioner, {
18
969
  ref: ref,
19
970
  className: clsx(Tooltip_module.positioner, className),
20
971
  ...props
21
972
  }));
22
- const Popup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Tooltip.Popup, {
973
+ const Popup = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(TooltipPopup_TooltipPopup, {
23
974
  ref: ref,
24
975
  className: clsx(Tooltip_module.popup, className),
25
976
  ...props
26
977
  }));
27
- const Arrow = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Tooltip.Arrow, {
978
+ const Arrow = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(TooltipArrow_TooltipArrow, {
28
979
  ref: ref,
29
980
  className: clsx(Tooltip_module.arrow, className),
30
981
  ...props
31
982
  }));
32
- const Viewport = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(Tooltip.Viewport, {
983
+ const Viewport = /*#__PURE__*/ __rspack_external_react.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx(TooltipViewport_TooltipViewport, {
33
984
  ref: ref,
34
985
  className: clsx(Tooltip_module.viewport, className),
35
986
  ...props
36
987
  }));
37
- const Tooltip_Tooltip = {
988
+ const Tooltip = {
38
989
  Trigger: Trigger,
39
990
  Positioner: Positioner,
40
991
  Popup: Popup,
41
992
  Arrow: Arrow,
42
993
  Viewport: Viewport,
43
- Root: Tooltip.Root,
44
- Portal: Tooltip.Portal,
45
- Provider: Tooltip.Provider,
46
- Handle: Tooltip.Handle,
47
- createHandle: Tooltip.createHandle
994
+ Root: TooltipRoot_TooltipRoot,
995
+ Portal: TooltipPortal_TooltipPortal,
996
+ Provider: TooltipProvider_TooltipProvider,
997
+ Handle: TooltipHandle,
998
+ createHandle: createTooltipHandle
48
999
  };
49
- export { Tooltip_Tooltip as Tooltip };
1000
+ export { Tooltip };