@hot-updater/console 0.28.0 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/.output/nitro.json +17 -0
  2. package/.output/public/apple-touch-icon.png +0 -0
  3. package/.output/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  4. package/.output/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  5. package/.output/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  6. package/.output/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  7. package/.output/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  8. package/.output/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  9. package/.output/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  10. package/.output/public/assets/main-Dlx8-qN-.js +61 -0
  11. package/.output/public/assets/routes-DB0tWmiJ.js +10 -0
  12. package/.output/public/assets/styles-Bfxg4M1x.css +2 -0
  13. package/.output/public/favicon-16x16.png +0 -0
  14. package/.output/public/favicon-32x32.png +0 -0
  15. package/.output/public/favicon.ico +0 -0
  16. package/.output/public/logo.svg +1 -0
  17. package/.output/public/manifest.json +30 -0
  18. package/.output/public/robots.txt +3 -0
  19. package/.output/server/_chunks/ssr-renderer.mjs +15 -0
  20. package/.output/server/_libs/@floating-ui/core+[...].mjs +698 -0
  21. package/.output/server/_libs/@floating-ui/dom+[...].mjs +644 -0
  22. package/.output/server/_libs/@floating-ui/react-dom+[...].mjs +839 -0
  23. package/.output/server/_libs/@radix-ui/react-alert-dialog+[...].mjs +2093 -0
  24. package/.output/server/_libs/@radix-ui/react-popper+[...].mjs +287 -0
  25. package/.output/server/_libs/@radix-ui/react-select+[...].mjs +1003 -0
  26. package/.output/server/_libs/@tanstack/devtools-event-client+[...].mjs +196 -0
  27. package/.output/server/_libs/@tanstack/form-core+[...].mjs +2396 -0
  28. package/.output/server/_libs/@tanstack/react-form+[...].mjs +298 -0
  29. package/.output/server/_libs/@tanstack/react-router+[...].mjs +13068 -0
  30. package/.output/server/_libs/@tanstack/react-table+[...].mjs +2372 -0
  31. package/.output/server/_libs/chownr.mjs +60 -0
  32. package/.output/server/_libs/class-variance-authority+clsx.mjs +69 -0
  33. package/.output/server/_libs/core-util-is.mjs +67 -0
  34. package/.output/server/_libs/dayjs.mjs +408 -0
  35. package/.output/server/_libs/h3+rou3+srvx.mjs +1158 -0
  36. package/.output/server/_libs/hookable.mjs +41 -0
  37. package/.output/server/_libs/immediate.mjs +57 -0
  38. package/.output/server/_libs/inherits.mjs +39 -0
  39. package/.output/server/_libs/isaacs__fs-minipass+minipass.mjs +1120 -0
  40. package/.output/server/_libs/isarray.mjs +10 -0
  41. package/.output/server/_libs/jszip+[...].mjs +8311 -0
  42. package/.output/server/_libs/lucide-react.mjs +371 -0
  43. package/.output/server/_libs/minizlib.mjs +345 -0
  44. package/.output/server/_libs/next-themes.mjs +49 -0
  45. package/.output/server/_libs/radix-ui__number.mjs +6 -0
  46. package/.output/server/_libs/radix-ui__primitive.mjs +9 -0
  47. package/.output/server/_libs/radix-ui__react-arrow.mjs +23 -0
  48. package/.output/server/_libs/radix-ui__react-collection.mjs +78 -0
  49. package/.output/server/_libs/radix-ui__react-direction.mjs +11 -0
  50. package/.output/server/_libs/radix-ui__react-label.mjs +22 -0
  51. package/.output/server/_libs/radix-ui__react-separator.mjs +31 -0
  52. package/.output/server/_libs/radix-ui__react-slider.mjs +451 -0
  53. package/.output/server/_libs/radix-ui__react-switch.mjs +118 -0
  54. package/.output/server/_libs/radix-ui__react-tooltip.mjs +491 -0
  55. package/.output/server/_libs/semver.mjs +1339 -0
  56. package/.output/server/_libs/sonner.mjs +908 -0
  57. package/.output/server/_libs/tailwind-merge.mjs +1962 -0
  58. package/.output/server/_libs/tanstack__history.mjs +322 -0
  59. package/.output/server/_libs/tanstack__query-core.mjs +2073 -0
  60. package/.output/server/_libs/tanstack__react-query.mjs +146 -0
  61. package/.output/server/_libs/tanstack__router-core.mjs +6 -0
  62. package/.output/server/_libs/tar.mjs +1996 -0
  63. package/.output/server/_libs/ufo.mjs +64 -0
  64. package/.output/server/_runtime.mjs +26 -0
  65. package/.output/server/_ssr/api-rpc-D3ZehMIN.mjs +217 -0
  66. package/.output/server/_ssr/config.server-JUYQ7UbI.mjs +26 -0
  67. package/.output/server/_ssr/deleteBundle-DWUxu9-K.mjs +22 -0
  68. package/.output/server/_ssr/extract-timestamp-from-uuidv7-B90UBADU.mjs +24 -0
  69. package/.output/server/_ssr/promoteBundle-DtMHuubR.mjs +1571 -0
  70. package/.output/server/_ssr/router-pgc7NX76.mjs +250 -0
  71. package/.output/server/_ssr/routes-PqTTQSoI.mjs +1833 -0
  72. package/.output/server/_ssr/sidebar-DXng0IOP.mjs +439 -0
  73. package/.output/server/_ssr/ssr.mjs +5050 -0
  74. package/.output/server/_ssr/start-DQK0r85G.mjs +4 -0
  75. package/.output/server/_tanstack-start-manifest_v-DTbQVOpU.mjs +17 -0
  76. package/.output/server/index.mjs +417 -0
  77. package/.output/server/node_modules/tslib/modules/index.js +70 -0
  78. package/.output/server/node_modules/tslib/modules/package.json +3 -0
  79. package/.output/server/node_modules/tslib/package.json +47 -0
  80. package/.output/server/node_modules/tslib/tslib.js +484 -0
  81. package/.output/server/package.json +9 -0
  82. package/README.md +191 -2
  83. package/package.json +77 -50
  84. package/dist/.gitkeep +0 -0
  85. package/dist/assets/favicon-BkwcEHsj.ico +0 -0
  86. package/dist/assets/index-DUlKsori.css +0 -1
  87. package/dist/assets/index-ijmIcyn1.js +0 -27
  88. package/dist/assets/logo-BYNFyja1.png +0 -0
  89. package/dist/index.cjs +0 -2129
  90. package/dist/index.d.cts +0 -218
  91. package/dist/index.d.ts +0 -218
  92. package/dist/index.html +0 -14
  93. package/dist/index.js +0 -2125
@@ -0,0 +1,491 @@
1
+ import { r as __toESM } from "../_runtime.mjs";
2
+ import { E as useControllableState, M as createSlottable, N as useComposedRefs, O as createContextScope, P as require_jsx_runtime, S as DismissableLayer, T as Presence, b as Portal$1, k as Primitive, w as useId } from "./@radix-ui/react-alert-dialog+[...].mjs";
3
+ import { u as require_react } from "./@floating-ui/react-dom+[...].mjs";
4
+ import { m as Root } from "./@radix-ui/react-select+[...].mjs";
5
+ import { t as composeEventHandlers } from "./radix-ui__primitive.mjs";
6
+ import { a as createPopperScope, i as Root2, n as Arrow, r as Content, t as Anchor } from "./@radix-ui/react-popper+[...].mjs";
7
+ //#region ../../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_9074d9fb06315b089b2bee17c4c65951/node_modules/@radix-ui/react-tooltip/dist/index.mjs
8
+ var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
9
+ var import_jsx_runtime = require_jsx_runtime();
10
+ var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [createPopperScope]);
11
+ var usePopperScope = createPopperScope();
12
+ var PROVIDER_NAME = "TooltipProvider";
13
+ var DEFAULT_DELAY_DURATION = 700;
14
+ var TOOLTIP_OPEN = "tooltip.open";
15
+ var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
16
+ var TooltipProvider = (props) => {
17
+ const { __scopeTooltip, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;
18
+ const isOpenDelayedRef = import_react.useRef(true);
19
+ const isPointerInTransitRef = import_react.useRef(false);
20
+ const skipDelayTimerRef = import_react.useRef(0);
21
+ import_react.useEffect(() => {
22
+ const skipDelayTimer = skipDelayTimerRef.current;
23
+ return () => window.clearTimeout(skipDelayTimer);
24
+ }, []);
25
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProviderContextProvider, {
26
+ scope: __scopeTooltip,
27
+ isOpenDelayedRef,
28
+ delayDuration,
29
+ onOpen: import_react.useCallback(() => {
30
+ window.clearTimeout(skipDelayTimerRef.current);
31
+ isOpenDelayedRef.current = false;
32
+ }, []),
33
+ onClose: import_react.useCallback(() => {
34
+ window.clearTimeout(skipDelayTimerRef.current);
35
+ skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
36
+ }, [skipDelayDuration]),
37
+ isPointerInTransitRef,
38
+ onPointerInTransitChange: import_react.useCallback((inTransit) => {
39
+ isPointerInTransitRef.current = inTransit;
40
+ }, []),
41
+ disableHoverableContent,
42
+ children
43
+ });
44
+ };
45
+ TooltipProvider.displayName = PROVIDER_NAME;
46
+ var TOOLTIP_NAME = "Tooltip";
47
+ var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
48
+ var Tooltip = (props) => {
49
+ const { __scopeTooltip, children, open: openProp, defaultOpen, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;
50
+ const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
51
+ const popperScope = usePopperScope(__scopeTooltip);
52
+ const [trigger, setTrigger] = import_react.useState(null);
53
+ const contentId = useId();
54
+ const openTimerRef = import_react.useRef(0);
55
+ const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
56
+ const delayDuration = delayDurationProp ?? providerContext.delayDuration;
57
+ const wasOpenDelayedRef = import_react.useRef(false);
58
+ const [open, setOpen] = useControllableState({
59
+ prop: openProp,
60
+ defaultProp: defaultOpen ?? false,
61
+ onChange: (open2) => {
62
+ if (open2) {
63
+ providerContext.onOpen();
64
+ document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
65
+ } else providerContext.onClose();
66
+ onOpenChange?.(open2);
67
+ },
68
+ caller: TOOLTIP_NAME
69
+ });
70
+ const stateAttribute = import_react.useMemo(() => {
71
+ return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
72
+ }, [open]);
73
+ const handleOpen = import_react.useCallback(() => {
74
+ window.clearTimeout(openTimerRef.current);
75
+ openTimerRef.current = 0;
76
+ wasOpenDelayedRef.current = false;
77
+ setOpen(true);
78
+ }, [setOpen]);
79
+ const handleClose = import_react.useCallback(() => {
80
+ window.clearTimeout(openTimerRef.current);
81
+ openTimerRef.current = 0;
82
+ setOpen(false);
83
+ }, [setOpen]);
84
+ const handleDelayedOpen = import_react.useCallback(() => {
85
+ window.clearTimeout(openTimerRef.current);
86
+ openTimerRef.current = window.setTimeout(() => {
87
+ wasOpenDelayedRef.current = true;
88
+ setOpen(true);
89
+ openTimerRef.current = 0;
90
+ }, delayDuration);
91
+ }, [delayDuration, setOpen]);
92
+ import_react.useEffect(() => {
93
+ return () => {
94
+ if (openTimerRef.current) {
95
+ window.clearTimeout(openTimerRef.current);
96
+ openTimerRef.current = 0;
97
+ }
98
+ };
99
+ }, []);
100
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root2, {
101
+ ...popperScope,
102
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContextProvider, {
103
+ scope: __scopeTooltip,
104
+ contentId,
105
+ open,
106
+ stateAttribute,
107
+ trigger,
108
+ onTriggerChange: setTrigger,
109
+ onTriggerEnter: import_react.useCallback(() => {
110
+ if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();
111
+ else handleOpen();
112
+ }, [
113
+ providerContext.isOpenDelayedRef,
114
+ handleDelayedOpen,
115
+ handleOpen
116
+ ]),
117
+ onTriggerLeave: import_react.useCallback(() => {
118
+ if (disableHoverableContent) handleClose();
119
+ else {
120
+ window.clearTimeout(openTimerRef.current);
121
+ openTimerRef.current = 0;
122
+ }
123
+ }, [handleClose, disableHoverableContent]),
124
+ onOpen: handleOpen,
125
+ onClose: handleClose,
126
+ disableHoverableContent,
127
+ children
128
+ })
129
+ });
130
+ };
131
+ Tooltip.displayName = TOOLTIP_NAME;
132
+ var TRIGGER_NAME = "TooltipTrigger";
133
+ var TooltipTrigger = import_react.forwardRef((props, forwardedRef) => {
134
+ const { __scopeTooltip, ...triggerProps } = props;
135
+ const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
136
+ const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);
137
+ const popperScope = usePopperScope(__scopeTooltip);
138
+ const composedRefs = useComposedRefs(forwardedRef, import_react.useRef(null), context.onTriggerChange);
139
+ const isPointerDownRef = import_react.useRef(false);
140
+ const hasPointerMoveOpenedRef = import_react.useRef(false);
141
+ const handlePointerUp = import_react.useCallback(() => isPointerDownRef.current = false, []);
142
+ import_react.useEffect(() => {
143
+ return () => document.removeEventListener("pointerup", handlePointerUp);
144
+ }, [handlePointerUp]);
145
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Anchor, {
146
+ asChild: true,
147
+ ...popperScope,
148
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.button, {
149
+ "aria-describedby": context.open ? context.contentId : void 0,
150
+ "data-state": context.stateAttribute,
151
+ ...triggerProps,
152
+ ref: composedRefs,
153
+ onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
154
+ if (event.pointerType === "touch") return;
155
+ if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {
156
+ context.onTriggerEnter();
157
+ hasPointerMoveOpenedRef.current = true;
158
+ }
159
+ }),
160
+ onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {
161
+ context.onTriggerLeave();
162
+ hasPointerMoveOpenedRef.current = false;
163
+ }),
164
+ onPointerDown: composeEventHandlers(props.onPointerDown, () => {
165
+ if (context.open) context.onClose();
166
+ isPointerDownRef.current = true;
167
+ document.addEventListener("pointerup", handlePointerUp, { once: true });
168
+ }),
169
+ onFocus: composeEventHandlers(props.onFocus, () => {
170
+ if (!isPointerDownRef.current) context.onOpen();
171
+ }),
172
+ onBlur: composeEventHandlers(props.onBlur, context.onClose),
173
+ onClick: composeEventHandlers(props.onClick, context.onClose)
174
+ })
175
+ });
176
+ });
177
+ TooltipTrigger.displayName = TRIGGER_NAME;
178
+ var PORTAL_NAME = "TooltipPortal";
179
+ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, { forceMount: void 0 });
180
+ var TooltipPortal = (props) => {
181
+ const { __scopeTooltip, forceMount, children, container } = props;
182
+ const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
183
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, {
184
+ scope: __scopeTooltip,
185
+ forceMount,
186
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
187
+ present: forceMount || context.open,
188
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal$1, {
189
+ asChild: true,
190
+ container,
191
+ children
192
+ })
193
+ })
194
+ });
195
+ };
196
+ TooltipPortal.displayName = PORTAL_NAME;
197
+ var CONTENT_NAME = "TooltipContent";
198
+ var TooltipContent = import_react.forwardRef((props, forwardedRef) => {
199
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
200
+ const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
201
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
202
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
203
+ present: forceMount || context.open,
204
+ children: context.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
205
+ side,
206
+ ...contentProps,
207
+ ref: forwardedRef
208
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentHoverable, {
209
+ side,
210
+ ...contentProps,
211
+ ref: forwardedRef
212
+ })
213
+ });
214
+ });
215
+ var TooltipContentHoverable = import_react.forwardRef((props, forwardedRef) => {
216
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
217
+ const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);
218
+ const ref = import_react.useRef(null);
219
+ const composedRefs = useComposedRefs(forwardedRef, ref);
220
+ const [pointerGraceArea, setPointerGraceArea] = import_react.useState(null);
221
+ const { trigger, onClose } = context;
222
+ const content = ref.current;
223
+ const { onPointerInTransitChange } = providerContext;
224
+ const handleRemoveGraceArea = import_react.useCallback(() => {
225
+ setPointerGraceArea(null);
226
+ onPointerInTransitChange(false);
227
+ }, [onPointerInTransitChange]);
228
+ const handleCreateGraceArea = import_react.useCallback((event, hoverTarget) => {
229
+ const currentTarget = event.currentTarget;
230
+ const exitPoint = {
231
+ x: event.clientX,
232
+ y: event.clientY
233
+ };
234
+ const paddedExitPoints = getPaddedExitPoints(exitPoint, getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect()));
235
+ const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
236
+ setPointerGraceArea(getHull([...paddedExitPoints, ...hoverTargetPoints]));
237
+ onPointerInTransitChange(true);
238
+ }, [onPointerInTransitChange]);
239
+ import_react.useEffect(() => {
240
+ return () => handleRemoveGraceArea();
241
+ }, [handleRemoveGraceArea]);
242
+ import_react.useEffect(() => {
243
+ if (trigger && content) {
244
+ const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
245
+ const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
246
+ trigger.addEventListener("pointerleave", handleTriggerLeave);
247
+ content.addEventListener("pointerleave", handleContentLeave);
248
+ return () => {
249
+ trigger.removeEventListener("pointerleave", handleTriggerLeave);
250
+ content.removeEventListener("pointerleave", handleContentLeave);
251
+ };
252
+ }
253
+ }, [
254
+ trigger,
255
+ content,
256
+ handleCreateGraceArea,
257
+ handleRemoveGraceArea
258
+ ]);
259
+ import_react.useEffect(() => {
260
+ if (pointerGraceArea) {
261
+ const handleTrackPointerGrace = (event) => {
262
+ const target = event.target;
263
+ const pointerPosition = {
264
+ x: event.clientX,
265
+ y: event.clientY
266
+ };
267
+ const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
268
+ const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
269
+ if (hasEnteredTarget) handleRemoveGraceArea();
270
+ else if (isPointerOutsideGraceArea) {
271
+ handleRemoveGraceArea();
272
+ onClose();
273
+ }
274
+ };
275
+ document.addEventListener("pointermove", handleTrackPointerGrace);
276
+ return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
277
+ }
278
+ }, [
279
+ trigger,
280
+ content,
281
+ pointerGraceArea,
282
+ onClose,
283
+ handleRemoveGraceArea
284
+ ]);
285
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
286
+ ...props,
287
+ ref: composedRefs
288
+ });
289
+ });
290
+ var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
291
+ var Slottable = createSlottable("TooltipContent");
292
+ var TooltipContentImpl = import_react.forwardRef((props, forwardedRef) => {
293
+ const { __scopeTooltip, children, "aria-label": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
294
+ const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
295
+ const popperScope = usePopperScope(__scopeTooltip);
296
+ const { onClose } = context;
297
+ import_react.useEffect(() => {
298
+ document.addEventListener(TOOLTIP_OPEN, onClose);
299
+ return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
300
+ }, [onClose]);
301
+ import_react.useEffect(() => {
302
+ if (context.trigger) {
303
+ const handleScroll = (event) => {
304
+ if (event.target?.contains(context.trigger)) onClose();
305
+ };
306
+ window.addEventListener("scroll", handleScroll, { capture: true });
307
+ return () => window.removeEventListener("scroll", handleScroll, { capture: true });
308
+ }
309
+ }, [context.trigger, onClose]);
310
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DismissableLayer, {
311
+ asChild: true,
312
+ disableOutsidePointerEvents: false,
313
+ onEscapeKeyDown,
314
+ onPointerDownOutside,
315
+ onFocusOutside: (event) => event.preventDefault(),
316
+ onDismiss: onClose,
317
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Content, {
318
+ "data-state": context.stateAttribute,
319
+ ...popperScope,
320
+ ...contentProps,
321
+ ref: forwardedRef,
322
+ style: {
323
+ ...contentProps.style,
324
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
325
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
326
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
327
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
328
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
329
+ },
330
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Slottable, { children }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VisuallyHiddenContentContextProvider, {
331
+ scope: __scopeTooltip,
332
+ isInside: true,
333
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root, {
334
+ id: context.contentId,
335
+ role: "tooltip",
336
+ children: ariaLabel || children
337
+ })
338
+ })]
339
+ })
340
+ });
341
+ });
342
+ TooltipContent.displayName = CONTENT_NAME;
343
+ var ARROW_NAME = "TooltipArrow";
344
+ var TooltipArrow = import_react.forwardRef((props, forwardedRef) => {
345
+ const { __scopeTooltip, ...arrowProps } = props;
346
+ const popperScope = usePopperScope(__scopeTooltip);
347
+ return useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip).isInside ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Arrow, {
348
+ ...popperScope,
349
+ ...arrowProps,
350
+ ref: forwardedRef
351
+ });
352
+ });
353
+ TooltipArrow.displayName = ARROW_NAME;
354
+ function getExitSideFromRect(point, rect) {
355
+ const top = Math.abs(rect.top - point.y);
356
+ const bottom = Math.abs(rect.bottom - point.y);
357
+ const right = Math.abs(rect.right - point.x);
358
+ const left = Math.abs(rect.left - point.x);
359
+ switch (Math.min(top, bottom, right, left)) {
360
+ case left: return "left";
361
+ case right: return "right";
362
+ case top: return "top";
363
+ case bottom: return "bottom";
364
+ default: throw new Error("unreachable");
365
+ }
366
+ }
367
+ function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
368
+ const paddedExitPoints = [];
369
+ switch (exitSide) {
370
+ case "top":
371
+ paddedExitPoints.push({
372
+ x: exitPoint.x - padding,
373
+ y: exitPoint.y + padding
374
+ }, {
375
+ x: exitPoint.x + padding,
376
+ y: exitPoint.y + padding
377
+ });
378
+ break;
379
+ case "bottom":
380
+ paddedExitPoints.push({
381
+ x: exitPoint.x - padding,
382
+ y: exitPoint.y - padding
383
+ }, {
384
+ x: exitPoint.x + padding,
385
+ y: exitPoint.y - padding
386
+ });
387
+ break;
388
+ case "left":
389
+ paddedExitPoints.push({
390
+ x: exitPoint.x + padding,
391
+ y: exitPoint.y - padding
392
+ }, {
393
+ x: exitPoint.x + padding,
394
+ y: exitPoint.y + padding
395
+ });
396
+ break;
397
+ case "right":
398
+ paddedExitPoints.push({
399
+ x: exitPoint.x - padding,
400
+ y: exitPoint.y - padding
401
+ }, {
402
+ x: exitPoint.x - padding,
403
+ y: exitPoint.y + padding
404
+ });
405
+ break;
406
+ }
407
+ return paddedExitPoints;
408
+ }
409
+ function getPointsFromRect(rect) {
410
+ const { top, right, bottom, left } = rect;
411
+ return [
412
+ {
413
+ x: left,
414
+ y: top
415
+ },
416
+ {
417
+ x: right,
418
+ y: top
419
+ },
420
+ {
421
+ x: right,
422
+ y: bottom
423
+ },
424
+ {
425
+ x: left,
426
+ y: bottom
427
+ }
428
+ ];
429
+ }
430
+ function isPointInPolygon(point, polygon) {
431
+ const { x, y } = point;
432
+ let inside = false;
433
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
434
+ const ii = polygon[i];
435
+ const jj = polygon[j];
436
+ const xi = ii.x;
437
+ const yi = ii.y;
438
+ const xj = jj.x;
439
+ const yj = jj.y;
440
+ if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) inside = !inside;
441
+ }
442
+ return inside;
443
+ }
444
+ function getHull(points) {
445
+ const newPoints = points.slice();
446
+ newPoints.sort((a, b) => {
447
+ if (a.x < b.x) return -1;
448
+ else if (a.x > b.x) return 1;
449
+ else if (a.y < b.y) return -1;
450
+ else if (a.y > b.y) return 1;
451
+ else return 0;
452
+ });
453
+ return getHullPresorted(newPoints);
454
+ }
455
+ function getHullPresorted(points) {
456
+ if (points.length <= 1) return points.slice();
457
+ const upperHull = [];
458
+ for (let i = 0; i < points.length; i++) {
459
+ const p = points[i];
460
+ while (upperHull.length >= 2) {
461
+ const q = upperHull[upperHull.length - 1];
462
+ const r = upperHull[upperHull.length - 2];
463
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
464
+ else break;
465
+ }
466
+ upperHull.push(p);
467
+ }
468
+ upperHull.pop();
469
+ const lowerHull = [];
470
+ for (let i = points.length - 1; i >= 0; i--) {
471
+ const p = points[i];
472
+ while (lowerHull.length >= 2) {
473
+ const q = lowerHull[lowerHull.length - 1];
474
+ const r = lowerHull[lowerHull.length - 2];
475
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
476
+ else break;
477
+ }
478
+ lowerHull.push(p);
479
+ }
480
+ lowerHull.pop();
481
+ if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) return upperHull;
482
+ else return upperHull.concat(lowerHull);
483
+ }
484
+ var Provider = TooltipProvider;
485
+ var Root3 = Tooltip;
486
+ var Trigger = TooltipTrigger;
487
+ var Portal = TooltipPortal;
488
+ var Content2 = TooltipContent;
489
+ var Arrow2 = TooltipArrow;
490
+ //#endregion
491
+ export { Root3 as a, Provider as i, Content2 as n, Trigger as o, Portal as r, Arrow2 as t };