lizaui 9.0.13 → 9.0.15

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 (70) hide show
  1. package/dist/button/index.es.js +1 -1
  2. package/dist/calendar/index.es.js +1 -1
  3. package/dist/checkbox/index.es.js +1 -1
  4. package/dist/chunks/{button-CA3Y2GZ1.js → button-B0fpJrMg.js} +2 -2
  5. package/dist/chunks/{button-CA3Y2GZ1.js.map → button-B0fpJrMg.js.map} +1 -1
  6. package/dist/chunks/{checkbox-qzZKMLRN.js → checkbox-C1Sssumg.js} +2 -2
  7. package/dist/chunks/{checkbox-qzZKMLRN.js.map → checkbox-C1Sssumg.js.map} +1 -1
  8. package/dist/chunks/{floating-ui.dom-N5ROFCJy.js → floating-ui.dom-B9hvXzxg.js} +11 -1
  9. package/dist/chunks/{floating-ui.dom-N5ROFCJy.js.map → floating-ui.dom-B9hvXzxg.js.map} +1 -1
  10. package/dist/chunks/{floating-ui.dom-NqZWWqNg.js → floating-ui.dom-DRSBqyFN.js} +14 -4
  11. package/dist/chunks/{floating-ui.dom-NqZWWqNg.js.map → floating-ui.dom-DRSBqyFN.js.map} +1 -1
  12. package/dist/chunks/floating-ui.react-dom-BUZLdP4-.js +294 -0
  13. package/dist/chunks/floating-ui.react-dom-BUZLdP4-.js.map +1 -0
  14. package/dist/chunks/floating-ui.react-dom-CI1b2uK3.js +310 -0
  15. package/dist/chunks/floating-ui.react-dom-CI1b2uK3.js.map +1 -0
  16. package/dist/chunks/{index-DiC9dI6_.js → index-B4RTH1-D.js} +4 -4
  17. package/dist/chunks/{index-DiC9dI6_.js.map → index-B4RTH1-D.js.map} +1 -1
  18. package/dist/chunks/{scroll-area-CgJodNZ_.js → scroll-area-B-5YmafW.js} +27 -27
  19. package/dist/chunks/{scroll-area-CgJodNZ_.js.map → scroll-area-B-5YmafW.js.map} +1 -1
  20. package/dist/chunks/{scroll-area-BcM0NCEM.js → scroll-area-WNAy-5-i.js} +3 -3
  21. package/dist/chunks/{scroll-area-BcM0NCEM.js.map → scroll-area-WNAy-5-i.js.map} +1 -1
  22. package/dist/chunks/{select-DyihZY-4.js → select-C9BYUpJm.js} +439 -83
  23. package/dist/chunks/select-C9BYUpJm.js.map +1 -0
  24. package/dist/chunks/{select-DaKy-WhC.js → select-CLIZOVIj.js} +366 -10
  25. package/dist/chunks/select-CLIZOVIj.js.map +1 -0
  26. package/dist/chunks/{textarea-By2Vv44z.js → textarea-D2_KC-J4.js} +587 -36
  27. package/dist/chunks/textarea-D2_KC-J4.js.map +1 -0
  28. package/dist/chunks/{textarea-ClJsk9Gp.js → textarea-_HQpXiCX.js} +586 -35
  29. package/dist/chunks/textarea-_HQpXiCX.js.map +1 -0
  30. package/dist/chunks/tooltip-CjmRm1rv.js +1937 -0
  31. package/dist/chunks/tooltip-CjmRm1rv.js.map +1 -0
  32. package/dist/chunks/tooltip-o938-GAz.js +1921 -0
  33. package/dist/chunks/tooltip-o938-GAz.js.map +1 -0
  34. package/dist/components/tooltip/tooltip.d.ts +1 -1
  35. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  36. package/dist/divider/index.es.js +1 -1
  37. package/dist/modal/index.es.js +1 -1
  38. package/dist/pagination/index.cjs.js +2 -2
  39. package/dist/pagination/index.es.js +3 -3
  40. package/dist/phone-input/index.cjs.js +2 -2
  41. package/dist/phone-input/index.es.js +3 -3
  42. package/dist/select-input/index.cjs.js +1 -1
  43. package/dist/select-input/index.es.js +2 -2
  44. package/dist/table/index.cjs.js +1 -1
  45. package/dist/table/index.es.js +2 -2
  46. package/dist/time-input/index.cjs.js +1 -1
  47. package/dist/time-input/index.es.js +2 -2
  48. package/dist/tooltip/index.cjs.js +1 -1
  49. package/dist/tooltip/index.es.js +1 -1
  50. package/dist/ui/index.cjs.js +290 -292
  51. package/dist/ui/index.cjs.js.map +1 -1
  52. package/dist/ui/index.es.js +180 -182
  53. package/dist/ui/index.es.js.map +1 -1
  54. package/package.json +2 -2
  55. package/dist/chunks/index-CuySPbdY.js +0 -559
  56. package/dist/chunks/index-CuySPbdY.js.map +0 -1
  57. package/dist/chunks/index-DBDBh58Q.js +0 -575
  58. package/dist/chunks/index-DBDBh58Q.js.map +0 -1
  59. package/dist/chunks/index-DNSql2gU.js +0 -662
  60. package/dist/chunks/index-DNSql2gU.js.map +0 -1
  61. package/dist/chunks/index-DlZi5TkN.js +0 -646
  62. package/dist/chunks/index-DlZi5TkN.js.map +0 -1
  63. package/dist/chunks/select-DaKy-WhC.js.map +0 -1
  64. package/dist/chunks/select-DyihZY-4.js.map +0 -1
  65. package/dist/chunks/textarea-By2Vv44z.js.map +0 -1
  66. package/dist/chunks/textarea-ClJsk9Gp.js.map +0 -1
  67. package/dist/chunks/tooltip-D4UvkD2G.js +0 -525
  68. package/dist/chunks/tooltip-D4UvkD2G.js.map +0 -1
  69. package/dist/chunks/tooltip-WGeoFpGx.js +0 -541
  70. package/dist/chunks/tooltip-WGeoFpGx.js.map +0 -1
@@ -1,541 +0,0 @@
1
- "use strict";
2
- const jsxRuntime = require("react/jsx-runtime");
3
- const React = require("react");
4
- const tailwindMerge = require("tailwind-merge");
5
- const clsx = require("clsx");
6
- const index = require("./index-DBDBh58Q.js");
7
- const index$2 = require("./index-C_sOsPRt.js");
8
- const index$1 = require("./index-DNSql2gU.js");
9
- const utils = require("./utils-ij3i9zTT.js");
10
- function _interopNamespaceDefault(e) {
11
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
12
- if (e) {
13
- for (const k in e) {
14
- if (k !== "default") {
15
- const d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: () => e[k]
19
- });
20
- }
21
- }
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
- const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
27
- var [createTooltipContext] = index.createContextScope("Tooltip", [
28
- index$1.createPopperScope
29
- ]);
30
- var usePopperScope = index$1.createPopperScope();
31
- var PROVIDER_NAME = "TooltipProvider";
32
- var DEFAULT_DELAY_DURATION = 700;
33
- var TOOLTIP_OPEN = "tooltip.open";
34
- var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
35
- var TooltipProvider$1 = (props) => {
36
- const {
37
- __scopeTooltip,
38
- delayDuration = DEFAULT_DELAY_DURATION,
39
- skipDelayDuration = 300,
40
- disableHoverableContent = false,
41
- children
42
- } = props;
43
- const isOpenDelayedRef = React__namespace.useRef(true);
44
- const isPointerInTransitRef = React__namespace.useRef(false);
45
- const skipDelayTimerRef = React__namespace.useRef(0);
46
- React__namespace.useEffect(() => {
47
- const skipDelayTimer = skipDelayTimerRef.current;
48
- return () => window.clearTimeout(skipDelayTimer);
49
- }, []);
50
- return /* @__PURE__ */ jsxRuntime.jsx(
51
- TooltipProviderContextProvider,
52
- {
53
- scope: __scopeTooltip,
54
- isOpenDelayedRef,
55
- delayDuration,
56
- onOpen: React__namespace.useCallback(() => {
57
- window.clearTimeout(skipDelayTimerRef.current);
58
- isOpenDelayedRef.current = false;
59
- }, []),
60
- onClose: React__namespace.useCallback(() => {
61
- window.clearTimeout(skipDelayTimerRef.current);
62
- skipDelayTimerRef.current = window.setTimeout(
63
- () => isOpenDelayedRef.current = true,
64
- skipDelayDuration
65
- );
66
- }, [skipDelayDuration]),
67
- isPointerInTransitRef,
68
- onPointerInTransitChange: React__namespace.useCallback((inTransit) => {
69
- isPointerInTransitRef.current = inTransit;
70
- }, []),
71
- disableHoverableContent,
72
- children
73
- }
74
- );
75
- };
76
- TooltipProvider$1.displayName = PROVIDER_NAME;
77
- var TOOLTIP_NAME = "Tooltip";
78
- var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
79
- var Tooltip$1 = (props) => {
80
- const {
81
- __scopeTooltip,
82
- children,
83
- open: openProp,
84
- defaultOpen,
85
- onOpenChange,
86
- disableHoverableContent: disableHoverableContentProp,
87
- delayDuration: delayDurationProp
88
- } = props;
89
- const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
90
- const popperScope = usePopperScope(__scopeTooltip);
91
- const [trigger, setTrigger] = React__namespace.useState(null);
92
- const contentId = index.useId();
93
- const openTimerRef = React__namespace.useRef(0);
94
- const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
95
- const delayDuration = delayDurationProp ?? providerContext.delayDuration;
96
- const wasOpenDelayedRef = React__namespace.useRef(false);
97
- const [open, setOpen] = index.useControllableState({
98
- prop: openProp,
99
- defaultProp: defaultOpen ?? false,
100
- onChange: (open2) => {
101
- if (open2) {
102
- providerContext.onOpen();
103
- document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
104
- } else {
105
- providerContext.onClose();
106
- }
107
- onOpenChange?.(open2);
108
- },
109
- caller: TOOLTIP_NAME
110
- });
111
- const stateAttribute = React__namespace.useMemo(() => {
112
- return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
113
- }, [open]);
114
- const handleOpen = React__namespace.useCallback(() => {
115
- window.clearTimeout(openTimerRef.current);
116
- openTimerRef.current = 0;
117
- wasOpenDelayedRef.current = false;
118
- setOpen(true);
119
- }, [setOpen]);
120
- const handleClose = React__namespace.useCallback(() => {
121
- window.clearTimeout(openTimerRef.current);
122
- openTimerRef.current = 0;
123
- setOpen(false);
124
- }, [setOpen]);
125
- const handleDelayedOpen = React__namespace.useCallback(() => {
126
- window.clearTimeout(openTimerRef.current);
127
- openTimerRef.current = window.setTimeout(() => {
128
- wasOpenDelayedRef.current = true;
129
- setOpen(true);
130
- openTimerRef.current = 0;
131
- }, delayDuration);
132
- }, [delayDuration, setOpen]);
133
- React__namespace.useEffect(() => {
134
- return () => {
135
- if (openTimerRef.current) {
136
- window.clearTimeout(openTimerRef.current);
137
- openTimerRef.current = 0;
138
- }
139
- };
140
- }, []);
141
- return /* @__PURE__ */ jsxRuntime.jsx(index$1.Root2, { ...popperScope, children: /* @__PURE__ */ jsxRuntime.jsx(
142
- TooltipContextProvider,
143
- {
144
- scope: __scopeTooltip,
145
- contentId,
146
- open,
147
- stateAttribute,
148
- trigger,
149
- onTriggerChange: setTrigger,
150
- onTriggerEnter: React__namespace.useCallback(() => {
151
- if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();
152
- else handleOpen();
153
- }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),
154
- onTriggerLeave: React__namespace.useCallback(() => {
155
- if (disableHoverableContent) {
156
- handleClose();
157
- } else {
158
- window.clearTimeout(openTimerRef.current);
159
- openTimerRef.current = 0;
160
- }
161
- }, [handleClose, disableHoverableContent]),
162
- onOpen: handleOpen,
163
- onClose: handleClose,
164
- disableHoverableContent,
165
- children
166
- }
167
- ) });
168
- };
169
- Tooltip$1.displayName = TOOLTIP_NAME;
170
- var TRIGGER_NAME = "TooltipTrigger";
171
- var TooltipTrigger$1 = React__namespace.forwardRef(
172
- (props, forwardedRef) => {
173
- const { __scopeTooltip, ...triggerProps } = props;
174
- const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
175
- const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);
176
- const popperScope = usePopperScope(__scopeTooltip);
177
- const ref = React__namespace.useRef(null);
178
- const composedRefs = index$2.useComposedRefs(forwardedRef, ref, context.onTriggerChange);
179
- const isPointerDownRef = React__namespace.useRef(false);
180
- const hasPointerMoveOpenedRef = React__namespace.useRef(false);
181
- const handlePointerUp = React__namespace.useCallback(() => isPointerDownRef.current = false, []);
182
- React__namespace.useEffect(() => {
183
- return () => document.removeEventListener("pointerup", handlePointerUp);
184
- }, [handlePointerUp]);
185
- return /* @__PURE__ */ jsxRuntime.jsx(index$1.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsxRuntime.jsx(
186
- index.Primitive.button,
187
- {
188
- "aria-describedby": context.open ? context.contentId : void 0,
189
- "data-state": context.stateAttribute,
190
- ...triggerProps,
191
- ref: composedRefs,
192
- onPointerMove: index.composeEventHandlers(props.onPointerMove, (event) => {
193
- if (event.pointerType === "touch") return;
194
- if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {
195
- context.onTriggerEnter();
196
- hasPointerMoveOpenedRef.current = true;
197
- }
198
- }),
199
- onPointerLeave: index.composeEventHandlers(props.onPointerLeave, () => {
200
- context.onTriggerLeave();
201
- hasPointerMoveOpenedRef.current = false;
202
- }),
203
- onPointerDown: index.composeEventHandlers(props.onPointerDown, () => {
204
- if (context.open) {
205
- context.onClose();
206
- }
207
- isPointerDownRef.current = true;
208
- document.addEventListener("pointerup", handlePointerUp, { once: true });
209
- }),
210
- onFocus: index.composeEventHandlers(props.onFocus, () => {
211
- if (!isPointerDownRef.current) context.onOpen();
212
- }),
213
- onBlur: index.composeEventHandlers(props.onBlur, context.onClose),
214
- onClick: index.composeEventHandlers(props.onClick, context.onClose)
215
- }
216
- ) });
217
- }
218
- );
219
- TooltipTrigger$1.displayName = TRIGGER_NAME;
220
- var PORTAL_NAME = "TooltipPortal";
221
- var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
222
- forceMount: void 0
223
- });
224
- var TooltipPortal = (props) => {
225
- const { __scopeTooltip, forceMount, children, container } = props;
226
- const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
227
- return /* @__PURE__ */ jsxRuntime.jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntime.jsx(index.Portal, { asChild: true, container, children }) }) });
228
- };
229
- TooltipPortal.displayName = PORTAL_NAME;
230
- var CONTENT_NAME = "TooltipContent";
231
- var TooltipContent$1 = React__namespace.forwardRef(
232
- (props, forwardedRef) => {
233
- const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
234
- const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
235
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
236
- return /* @__PURE__ */ jsxRuntime.jsx(index.Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsxRuntime.jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsxRuntime.jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
237
- }
238
- );
239
- var TooltipContentHoverable = React__namespace.forwardRef((props, forwardedRef) => {
240
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
241
- const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);
242
- const ref = React__namespace.useRef(null);
243
- const composedRefs = index$2.useComposedRefs(forwardedRef, ref);
244
- const [pointerGraceArea, setPointerGraceArea] = React__namespace.useState(null);
245
- const { trigger, onClose } = context;
246
- const content = ref.current;
247
- const { onPointerInTransitChange } = providerContext;
248
- const handleRemoveGraceArea = React__namespace.useCallback(() => {
249
- setPointerGraceArea(null);
250
- onPointerInTransitChange(false);
251
- }, [onPointerInTransitChange]);
252
- const handleCreateGraceArea = React__namespace.useCallback(
253
- (event, hoverTarget) => {
254
- const currentTarget = event.currentTarget;
255
- const exitPoint = { x: event.clientX, y: event.clientY };
256
- const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
257
- const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
258
- const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
259
- const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);
260
- setPointerGraceArea(graceArea);
261
- onPointerInTransitChange(true);
262
- },
263
- [onPointerInTransitChange]
264
- );
265
- React__namespace.useEffect(() => {
266
- return () => handleRemoveGraceArea();
267
- }, [handleRemoveGraceArea]);
268
- React__namespace.useEffect(() => {
269
- if (trigger && content) {
270
- const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
271
- const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
272
- trigger.addEventListener("pointerleave", handleTriggerLeave);
273
- content.addEventListener("pointerleave", handleContentLeave);
274
- return () => {
275
- trigger.removeEventListener("pointerleave", handleTriggerLeave);
276
- content.removeEventListener("pointerleave", handleContentLeave);
277
- };
278
- }
279
- }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);
280
- React__namespace.useEffect(() => {
281
- if (pointerGraceArea) {
282
- const handleTrackPointerGrace = (event) => {
283
- const target = event.target;
284
- const pointerPosition = { x: event.clientX, y: event.clientY };
285
- const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
286
- const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
287
- if (hasEnteredTarget) {
288
- handleRemoveGraceArea();
289
- } else if (isPointerOutsideGraceArea) {
290
- handleRemoveGraceArea();
291
- onClose();
292
- }
293
- };
294
- document.addEventListener("pointermove", handleTrackPointerGrace);
295
- return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
296
- }
297
- }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
298
- return /* @__PURE__ */ jsxRuntime.jsx(TooltipContentImpl, { ...props, ref: composedRefs });
299
- });
300
- var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
301
- var Slottable = index$2.createSlottable("TooltipContent");
302
- var TooltipContentImpl = React__namespace.forwardRef(
303
- (props, forwardedRef) => {
304
- const {
305
- __scopeTooltip,
306
- children,
307
- "aria-label": ariaLabel,
308
- onEscapeKeyDown,
309
- onPointerDownOutside,
310
- ...contentProps
311
- } = props;
312
- const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
313
- const popperScope = usePopperScope(__scopeTooltip);
314
- const { onClose } = context;
315
- React__namespace.useEffect(() => {
316
- document.addEventListener(TOOLTIP_OPEN, onClose);
317
- return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
318
- }, [onClose]);
319
- React__namespace.useEffect(() => {
320
- if (context.trigger) {
321
- const handleScroll = (event) => {
322
- const target = event.target;
323
- if (target?.contains(context.trigger)) onClose();
324
- };
325
- window.addEventListener("scroll", handleScroll, { capture: true });
326
- return () => window.removeEventListener("scroll", handleScroll, { capture: true });
327
- }
328
- }, [context.trigger, onClose]);
329
- return /* @__PURE__ */ jsxRuntime.jsx(
330
- index.DismissableLayer,
331
- {
332
- asChild: true,
333
- disableOutsidePointerEvents: false,
334
- onEscapeKeyDown,
335
- onPointerDownOutside,
336
- onFocusOutside: (event) => event.preventDefault(),
337
- onDismiss: onClose,
338
- children: /* @__PURE__ */ jsxRuntime.jsxs(
339
- index$1.Content,
340
- {
341
- "data-state": context.stateAttribute,
342
- ...popperScope,
343
- ...contentProps,
344
- ref: forwardedRef,
345
- style: {
346
- ...contentProps.style,
347
- // re-namespace exposed content custom properties
348
- ...{
349
- "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
350
- "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
351
- "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
352
- "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
353
- "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
354
- }
355
- },
356
- children: [
357
- /* @__PURE__ */ jsxRuntime.jsx(Slottable, { children }),
358
- /* @__PURE__ */ jsxRuntime.jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsxRuntime.jsx(index$1.Root, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
359
- ]
360
- }
361
- )
362
- }
363
- );
364
- }
365
- );
366
- TooltipContent$1.displayName = CONTENT_NAME;
367
- var ARROW_NAME = "TooltipArrow";
368
- var TooltipArrow = React__namespace.forwardRef(
369
- (props, forwardedRef) => {
370
- const { __scopeTooltip, ...arrowProps } = props;
371
- const popperScope = usePopperScope(__scopeTooltip);
372
- const visuallyHiddenContentContext = useVisuallyHiddenContentContext(
373
- ARROW_NAME,
374
- __scopeTooltip
375
- );
376
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsxRuntime.jsx(index$1.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
377
- }
378
- );
379
- TooltipArrow.displayName = ARROW_NAME;
380
- function getExitSideFromRect(point, rect) {
381
- const top = Math.abs(rect.top - point.y);
382
- const bottom = Math.abs(rect.bottom - point.y);
383
- const right = Math.abs(rect.right - point.x);
384
- const left = Math.abs(rect.left - point.x);
385
- switch (Math.min(top, bottom, right, left)) {
386
- case left:
387
- return "left";
388
- case right:
389
- return "right";
390
- case top:
391
- return "top";
392
- case bottom:
393
- return "bottom";
394
- default:
395
- throw new Error("unreachable");
396
- }
397
- }
398
- function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
399
- const paddedExitPoints = [];
400
- switch (exitSide) {
401
- case "top":
402
- paddedExitPoints.push(
403
- { x: exitPoint.x - padding, y: exitPoint.y + padding },
404
- { x: exitPoint.x + padding, y: exitPoint.y + padding }
405
- );
406
- break;
407
- case "bottom":
408
- paddedExitPoints.push(
409
- { x: exitPoint.x - padding, y: exitPoint.y - padding },
410
- { x: exitPoint.x + padding, y: exitPoint.y - padding }
411
- );
412
- break;
413
- case "left":
414
- paddedExitPoints.push(
415
- { x: exitPoint.x + padding, y: exitPoint.y - padding },
416
- { x: exitPoint.x + padding, y: exitPoint.y + padding }
417
- );
418
- break;
419
- case "right":
420
- paddedExitPoints.push(
421
- { x: exitPoint.x - padding, y: exitPoint.y - padding },
422
- { x: exitPoint.x - padding, y: exitPoint.y + padding }
423
- );
424
- break;
425
- }
426
- return paddedExitPoints;
427
- }
428
- function getPointsFromRect(rect) {
429
- const { top, right, bottom, left } = rect;
430
- return [
431
- { x: left, y: top },
432
- { x: right, y: top },
433
- { x: right, y: bottom },
434
- { x: left, y: bottom }
435
- ];
436
- }
437
- function isPointInPolygon(point, polygon) {
438
- const { x, y } = point;
439
- let inside = false;
440
- for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
441
- const ii = polygon[i];
442
- const jj = polygon[j];
443
- const xi = ii.x;
444
- const yi = ii.y;
445
- const xj = jj.x;
446
- const yj = jj.y;
447
- const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
448
- if (intersect) inside = !inside;
449
- }
450
- return inside;
451
- }
452
- function getHull(points) {
453
- const newPoints = points.slice();
454
- newPoints.sort((a, b) => {
455
- if (a.x < b.x) return -1;
456
- else if (a.x > b.x) return 1;
457
- else if (a.y < b.y) return -1;
458
- else if (a.y > b.y) return 1;
459
- else return 0;
460
- });
461
- return getHullPresorted(newPoints);
462
- }
463
- function getHullPresorted(points) {
464
- if (points.length <= 1) return points.slice();
465
- const upperHull = [];
466
- for (let i = 0; i < points.length; i++) {
467
- const p = points[i];
468
- while (upperHull.length >= 2) {
469
- const q = upperHull[upperHull.length - 1];
470
- const r = upperHull[upperHull.length - 2];
471
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
472
- else break;
473
- }
474
- upperHull.push(p);
475
- }
476
- upperHull.pop();
477
- const lowerHull = [];
478
- for (let i = points.length - 1; i >= 0; i--) {
479
- const p = points[i];
480
- while (lowerHull.length >= 2) {
481
- const q = lowerHull[lowerHull.length - 1];
482
- const r = lowerHull[lowerHull.length - 2];
483
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
484
- else break;
485
- }
486
- lowerHull.push(p);
487
- }
488
- lowerHull.pop();
489
- if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
490
- return upperHull;
491
- } else {
492
- return upperHull.concat(lowerHull);
493
- }
494
- }
495
- var Provider = TooltipProvider$1;
496
- var Root3 = Tooltip$1;
497
- var Trigger = TooltipTrigger$1;
498
- var Portal = TooltipPortal;
499
- var Content2 = TooltipContent$1;
500
- var Arrow2 = TooltipArrow;
501
- function TooltipProvider({ delayDuration = 0, ...props }) {
502
- return /* @__PURE__ */ jsxRuntime.jsx(Provider, { "data-slot": "tooltip-provider", delayDuration, ...props });
503
- }
504
- function TooltipContainer({ ...props }) {
505
- return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(Root3, { "data-slot": "tooltip", ...props }) });
506
- }
507
- function TooltipTrigger({ ...props }) {
508
- return /* @__PURE__ */ jsxRuntime.jsx(Trigger, { "data-slot": "tooltip-trigger", ...props });
509
- }
510
- function TooltipContent({ className, sideOffset = 0, children, ...props }) {
511
- return /* @__PURE__ */ jsxRuntime.jsx(Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
512
- Content2,
513
- {
514
- "data-slot": "tooltip-content",
515
- sideOffset,
516
- className: utils.cn(
517
- "animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
518
- className
519
- ),
520
- ...props,
521
- children: [
522
- children,
523
- /* @__PURE__ */ jsxRuntime.jsx(Arrow2, { className: "bg-content1 fill-content1 z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
524
- ]
525
- }
526
- ) });
527
- }
528
- const Tooltip = ({ children, content, className, placement = "top", sideOffset = 0 }) => {
529
- const mergedClass = tailwindMerge.twMerge(
530
- clsx(
531
- "bg-content1 font-normal text-sm rounded-md filter-(--filter-drop-shadow-small) flex justify-center items-center z-10 px-2.5 py-1 outline-none box-border subpixel-antialiased normal-case",
532
- className
533
- )
534
- );
535
- return /* @__PURE__ */ jsxRuntime.jsxs(TooltipContainer, { children: [
536
- /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { children }),
537
- /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { className: mergedClass, side: placement, sideOffset, children: content })
538
- ] });
539
- };
540
- exports.Tooltip = Tooltip;
541
- //# sourceMappingURL=tooltip-WGeoFpGx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip-WGeoFpGx.js","sources":["../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.1.9_@types+react@19.1.14__@types+react@19.1_qmnolanwhktlj7hcdwdtgr57qq/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport clsx from \"clsx\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({ delayDuration = 0, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n\treturn <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\n}\n\nfunction TooltipContainer({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n\t\t</TooltipProvider>\n\t);\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n\treturn <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({ className, sideOffset = 0, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n\treturn (\n\t\t<TooltipPrimitive.Portal>\n\t\t\t<TooltipPrimitive.Content\n\t\t\t\tdata-slot=\"tooltip-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<TooltipPrimitive.Arrow className=\"bg-content1 fill-content1 z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n\t\t\t</TooltipPrimitive.Content>\n\t\t</TooltipPrimitive.Portal>\n\t);\n}\ninterface TooltipProps {\n\tchildren: React.ReactNode;\n\tcontent: React.ReactNode;\n\tplacement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n\tclassName?: string;\n\tsideOffset?: number;\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({ children, content, className, placement = \"top\", sideOffset = 0 }) => {\n\tconst mergedClass = twMerge(\n\t\tclsx(\n\t\t\t\"bg-content1 font-normal text-sm rounded-md filter-(--filter-drop-shadow-small) flex justify-center items-center z-10 px-2.5 py-1 outline-none box-border subpixel-antialiased normal-case\",\n\t\t\tclassName,\n\t\t),\n\t);\n\n\treturn (\n\t\t<TooltipContainer>\n\t\t\t<TooltipTrigger>{children}</TooltipTrigger>\n\t\t\t<TooltipContent className={mergedClass} side={placement} sideOffset={sideOffset}>\n\t\t\t\t{content}\n\t\t\t</TooltipContent>\n\t\t</TooltipContainer>\n\t);\n};\n"],"names":["createContextScope","createPopperScope","TooltipProvider","React","jsx","Tooltip","useId","useControllableState","PopperPrimitive.Root","TooltipTrigger","useComposedRefs","PopperPrimitive.Anchor","Primitive","composeEventHandlers","Presence","PortalPrimitive","TooltipContent","createSlottable","DismissableLayer","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","PopperPrimitive.Arrow","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","TooltipPrimitive.Portal","TooltipPrimitive.Content","cn","TooltipPrimitive.Arrow","twMerge"],"mappings":"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","x_google_ignoreList":[0]}