gitxp 0.0.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 (48) hide show
  1. package/.output/nitro.json +17 -0
  2. package/.output/public/assets/index-BGHvBNtP.js +11 -0
  3. package/.output/public/assets/routes-DuE8S6pX.js +60 -0
  4. package/.output/public/assets/styles-D5xbQNYu.css +1 -0
  5. package/.output/server/_chunks/ssr-renderer.mjs +26 -0
  6. package/.output/server/_libs/@floating-ui/core+[...].mjs +671 -0
  7. package/.output/server/_libs/@floating-ui/dom+[...].mjs +649 -0
  8. package/.output/server/_libs/@floating-ui/react-dom+[...].mjs +856 -0
  9. package/.output/server/_libs/@radix-ui/react-arrow+[...].mjs +258 -0
  10. package/.output/server/_libs/@radix-ui/react-dialog+[...].mjs +1862 -0
  11. package/.output/server/_libs/@radix-ui/react-popper+[...].mjs +320 -0
  12. package/.output/server/_libs/@radix-ui/react-tooltip+[...].mjs +534 -0
  13. package/.output/server/_libs/@tanstack/db+[...].mjs +14680 -0
  14. package/.output/server/_libs/@tanstack/react-router+[...].mjs +14563 -0
  15. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +126 -0
  16. package/.output/server/_libs/@tanstack/router-core+[...].mjs +3636 -0
  17. package/.output/server/_libs/class-variance-authority+clsx.mjs +69 -0
  18. package/.output/server/_libs/cmdk.mjs +504 -0
  19. package/.output/server/_libs/h3+rou3+srvx.mjs +1361 -0
  20. package/.output/server/_libs/h3-v2.mjs +285 -0
  21. package/.output/server/_libs/lucide-react.mjs +158 -0
  22. package/.output/server/_libs/radix-ui__primitive.mjs +44 -0
  23. package/.output/server/_libs/radix-ui__react-context.mjs +108 -0
  24. package/.output/server/_libs/tailwind-merge.mjs +3380 -0
  25. package/.output/server/_libs/tanstack__history.mjs +384 -0
  26. package/.output/server/_libs/tanstack__query-core.mjs +2225 -0
  27. package/.output/server/_libs/tanstack__react-db.mjs +242 -0
  28. package/.output/server/_libs/tanstack__react-query.mjs +140 -0
  29. package/.output/server/_libs/ufo.mjs +64 -0
  30. package/.output/server/_runtime.mjs +35 -0
  31. package/.output/server/_ssr/empty-plugin-adapters-D9UWiqvJ.mjs +5 -0
  32. package/.output/server/_ssr/events-BNrmOvgU.mjs +13 -0
  33. package/.output/server/_ssr/notifications-DUoENv6E.mjs +514 -0
  34. package/.output/server/_ssr/router-DsUHD4bT.mjs +179 -0
  35. package/.output/server/_ssr/routes-DIFfr242.mjs +982 -0
  36. package/.output/server/_ssr/ssr.mjs +1854 -0
  37. package/.output/server/_ssr/start-5Z2QO8AU.mjs +4 -0
  38. package/.output/server/_tanstack-start-manifest_v-CrD0YpZr.mjs +20 -0
  39. package/.output/server/index.mjs +310 -0
  40. package/.output/server/node_modules/tslib/modules/index.js +70 -0
  41. package/.output/server/node_modules/tslib/modules/package.json +3 -0
  42. package/.output/server/node_modules/tslib/package.json +47 -0
  43. package/.output/server/node_modules/tslib/tslib.js +484 -0
  44. package/.output/server/package.json +9 -0
  45. package/LICENSE +21 -0
  46. package/README.md +325 -0
  47. package/bin/gitxp.js +85 -0
  48. package/package.json +92 -0
@@ -0,0 +1,534 @@
1
+ import { i as __toESM } from "../../_runtime.mjs";
2
+ import { u as require_react } from "../@floating-ui/react-dom+[...].mjs";
3
+ import { c as useComposedRefs, l as require_jsx_runtime, n as Primitive, o as createSlottable } from "./react-arrow+[...].mjs";
4
+ import { t as createContextScope } from "../radix-ui__react-context.mjs";
5
+ import { t as composeEventHandlers } from "../radix-ui__primitive.mjs";
6
+ import { c as Portal$1, d as useId, f as Presence, l as DismissableLayer, m as useLayoutEffect2, p as useControllableState } from "./react-dialog+[...].mjs";
7
+ import { a as createPopperScope, i as Root2, n as Arrow, r as Content, t as Anchor } from "./react-popper+[...].mjs";
8
+ //#region node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
9
+ var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
10
+ var import_jsx_runtime = require_jsx_runtime();
11
+ var __defProp$1 = Object.defineProperty;
12
+ var __name$1 = (target, value) => __defProp$1(target, "name", {
13
+ value,
14
+ configurable: true
15
+ });
16
+ var VISUALLY_HIDDEN_STYLES = Object.freeze({
17
+ position: "absolute",
18
+ border: 0,
19
+ width: 1,
20
+ height: 1,
21
+ padding: 0,
22
+ margin: -1,
23
+ overflow: "hidden",
24
+ clip: "rect(0, 0, 0, 0)",
25
+ whiteSpace: "nowrap",
26
+ wordWrap: "normal"
27
+ });
28
+ var Root = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name$1(function VisuallyHidden2(props, forwardedRef) {
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
30
+ ...props,
31
+ ref: forwardedRef,
32
+ style: {
33
+ ...VISUALLY_HIDDEN_STYLES,
34
+ ...props.style
35
+ }
36
+ });
37
+ }, "VisuallyHidden"));
38
+ //#endregion
39
+ //#region node_modules/@radix-ui/react-tooltip/dist/index.mjs
40
+ var __defProp = Object.defineProperty;
41
+ var __name = (target, value) => __defProp(target, "name", {
42
+ value,
43
+ configurable: true
44
+ });
45
+ var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [createPopperScope]);
46
+ var usePopperScope = createPopperScope();
47
+ var PROVIDER_NAME = "TooltipProvider";
48
+ var DEFAULT_DELAY_DURATION = 700;
49
+ var TOOLTIP_OPEN = "tooltip.open";
50
+ var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
51
+ var TooltipProvider = /* @__PURE__ */ __name((props) => {
52
+ const { __scopeTooltip, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;
53
+ const isOpenDelayedRef = import_react.useRef(true);
54
+ const isPointerInTransitRef = import_react.useRef(false);
55
+ const skipDelayTimerRef = import_react.useRef(0);
56
+ import_react.useEffect(() => {
57
+ const skipDelayTimer = skipDelayTimerRef.current;
58
+ return () => window.clearTimeout(skipDelayTimer);
59
+ }, []);
60
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProviderContextProvider, {
61
+ scope: __scopeTooltip,
62
+ isOpenDelayedRef,
63
+ delayDuration,
64
+ onOpen: import_react.useCallback(() => {
65
+ if (skipDelayDuration <= 0) return;
66
+ window.clearTimeout(skipDelayTimerRef.current);
67
+ isOpenDelayedRef.current = false;
68
+ }, [skipDelayDuration]),
69
+ onClose: import_react.useCallback(() => {
70
+ if (skipDelayDuration <= 0) return;
71
+ window.clearTimeout(skipDelayTimerRef.current);
72
+ skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
73
+ }, [skipDelayDuration]),
74
+ isPointerInTransitRef,
75
+ onPointerInTransitChange: import_react.useCallback((inTransit) => {
76
+ isPointerInTransitRef.current = inTransit;
77
+ }, []),
78
+ disableHoverableContent,
79
+ children
80
+ });
81
+ }, "TooltipProvider");
82
+ var TOOLTIP_NAME = "Tooltip";
83
+ var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
84
+ var Tooltip = /* @__PURE__ */ __name((props) => {
85
+ const { __scopeTooltip, children, open: openProp, defaultOpen, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;
86
+ const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
87
+ const popperScope = usePopperScope(__scopeTooltip);
88
+ const [trigger, setTrigger] = import_react.useState(null);
89
+ const [contentIdState, setContentId] = import_react.useState(void 0);
90
+ const generatedContentId = useId();
91
+ const openTimerRef = import_react.useRef(0);
92
+ const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
93
+ const delayDuration = delayDurationProp ?? providerContext.delayDuration;
94
+ const wasOpenDelayedRef = import_react.useRef(false);
95
+ const [open, setOpen] = useControllableState({
96
+ prop: openProp,
97
+ defaultProp: defaultOpen ?? false,
98
+ onChange: /* @__PURE__ */ __name((open2) => {
99
+ if (open2) {
100
+ providerContext.onOpen();
101
+ document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
102
+ } else providerContext.onClose();
103
+ onOpenChange?.(open2);
104
+ }, "onChange"),
105
+ caller: TOOLTIP_NAME
106
+ });
107
+ const stateAttribute = import_react.useMemo(() => {
108
+ return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
109
+ }, [open]);
110
+ const handleOpen = import_react.useCallback(() => {
111
+ window.clearTimeout(openTimerRef.current);
112
+ openTimerRef.current = 0;
113
+ wasOpenDelayedRef.current = false;
114
+ setOpen(true);
115
+ }, [setOpen]);
116
+ const handleClose = import_react.useCallback(() => {
117
+ window.clearTimeout(openTimerRef.current);
118
+ openTimerRef.current = 0;
119
+ setOpen(false);
120
+ }, [setOpen]);
121
+ const handleDelayedOpen = import_react.useCallback(() => {
122
+ window.clearTimeout(openTimerRef.current);
123
+ openTimerRef.current = window.setTimeout(() => {
124
+ wasOpenDelayedRef.current = true;
125
+ setOpen(true);
126
+ openTimerRef.current = 0;
127
+ }, delayDuration);
128
+ }, [delayDuration, setOpen]);
129
+ import_react.useEffect(() => {
130
+ return () => {
131
+ if (openTimerRef.current) {
132
+ window.clearTimeout(openTimerRef.current);
133
+ openTimerRef.current = 0;
134
+ }
135
+ };
136
+ }, []);
137
+ const contentId = contentIdState ?? generatedContentId;
138
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root2, {
139
+ ...popperScope,
140
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContextProvider, {
141
+ scope: __scopeTooltip,
142
+ contentId,
143
+ setContentId,
144
+ open,
145
+ stateAttribute,
146
+ trigger,
147
+ onTriggerChange: setTrigger,
148
+ onTriggerEnter: import_react.useCallback(() => {
149
+ if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();
150
+ else handleOpen();
151
+ }, [
152
+ providerContext.isOpenDelayedRef,
153
+ handleDelayedOpen,
154
+ handleOpen
155
+ ]),
156
+ onTriggerLeave: import_react.useCallback(() => {
157
+ if (disableHoverableContent) handleClose();
158
+ else {
159
+ window.clearTimeout(openTimerRef.current);
160
+ openTimerRef.current = 0;
161
+ }
162
+ }, [handleClose, disableHoverableContent]),
163
+ onOpen: handleOpen,
164
+ onClose: handleClose,
165
+ disableHoverableContent,
166
+ children
167
+ })
168
+ });
169
+ }, "Tooltip");
170
+ var TRIGGER_NAME = "TooltipTrigger";
171
+ var TooltipTrigger = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name(function TooltipTrigger2(props, forwardedRef) {
172
+ const { __scopeTooltip, ...triggerProps } = props;
173
+ const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
174
+ const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);
175
+ const popperScope = usePopperScope(__scopeTooltip);
176
+ const ref = import_react.useRef(null);
177
+ const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);
178
+ const isPointerDownRef = import_react.useRef(false);
179
+ const hasPointerMoveOpenedRef = import_react.useRef(false);
180
+ const handlePointerUp = import_react.useCallback(() => isPointerDownRef.current = false, []);
181
+ import_react.useEffect(() => {
182
+ return () => document.removeEventListener("pointerup", handlePointerUp);
183
+ }, [handlePointerUp]);
184
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Anchor, {
185
+ asChild: true,
186
+ ...popperScope,
187
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.button, {
188
+ "aria-describedby": context.open ? context.contentId : void 0,
189
+ "data-state": context.stateAttribute,
190
+ ...triggerProps,
191
+ ref: composedRefs,
192
+ onPointerMove: 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: composeEventHandlers(props.onPointerLeave, () => {
200
+ context.onTriggerLeave();
201
+ hasPointerMoveOpenedRef.current = false;
202
+ }),
203
+ onPointerDown: composeEventHandlers(props.onPointerDown, () => {
204
+ if (context.open) context.onClose();
205
+ isPointerDownRef.current = true;
206
+ document.addEventListener("pointerup", handlePointerUp, { once: true });
207
+ }),
208
+ onFocus: composeEventHandlers(props.onFocus, () => {
209
+ if (!isPointerDownRef.current) context.onOpen();
210
+ }),
211
+ onBlur: composeEventHandlers(props.onBlur, context.onClose),
212
+ onClick: composeEventHandlers(props.onClick, context.onClose)
213
+ })
214
+ });
215
+ }, "TooltipTrigger"));
216
+ var PORTAL_NAME = "TooltipPortal";
217
+ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, { forceMount: void 0 });
218
+ var TooltipPortal = /* @__PURE__ */ __name((props) => {
219
+ const { __scopeTooltip, forceMount, children, container } = props;
220
+ const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
221
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, {
222
+ scope: __scopeTooltip,
223
+ forceMount,
224
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
225
+ present: forceMount || context.open,
226
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal$1, {
227
+ asChild: true,
228
+ container,
229
+ children
230
+ })
231
+ })
232
+ });
233
+ }, "TooltipPortal");
234
+ var CONTENT_NAME = "TooltipContent";
235
+ var TooltipContent = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name(function TooltipContent2(props, forwardedRef) {
236
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
237
+ const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
238
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
239
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
240
+ present: forceMount || context.open,
241
+ children: context.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
242
+ side,
243
+ ...contentProps,
244
+ ref: forwardedRef
245
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentHoverable, {
246
+ side,
247
+ ...contentProps,
248
+ ref: forwardedRef
249
+ })
250
+ });
251
+ }, "TooltipContent"));
252
+ var TooltipContentHoverable = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name(function TooltipContentHoverable2(props, forwardedRef) {
253
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
254
+ const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);
255
+ const ref = import_react.useRef(null);
256
+ const composedRefs = useComposedRefs(forwardedRef, ref);
257
+ const [pointerGraceArea, setPointerGraceArea] = import_react.useState(null);
258
+ const { trigger, onClose } = context;
259
+ const content = ref.current;
260
+ const { onPointerInTransitChange } = providerContext;
261
+ const handleRemoveGraceArea = import_react.useCallback(() => {
262
+ setPointerGraceArea(null);
263
+ onPointerInTransitChange(false);
264
+ }, [onPointerInTransitChange]);
265
+ const handleCreateGraceArea = import_react.useCallback((event, hoverTarget) => {
266
+ const currentTarget = event.currentTarget;
267
+ const exitPoint = {
268
+ x: event.clientX,
269
+ y: event.clientY
270
+ };
271
+ const paddedExitPoints = getPaddedExitPoints(exitPoint, getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect()));
272
+ const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
273
+ const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);
274
+ setPointerGraceArea(graceArea);
275
+ onPointerInTransitChange(true);
276
+ }, [onPointerInTransitChange]);
277
+ import_react.useEffect(() => {
278
+ return () => handleRemoveGraceArea();
279
+ }, [handleRemoveGraceArea]);
280
+ import_react.useEffect(() => {
281
+ if (trigger && content) {
282
+ const handleTriggerLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, content), "handleTriggerLeave");
283
+ const handleContentLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, trigger), "handleContentLeave");
284
+ trigger.addEventListener("pointerleave", handleTriggerLeave);
285
+ content.addEventListener("pointerleave", handleContentLeave);
286
+ return () => {
287
+ trigger.removeEventListener("pointerleave", handleTriggerLeave);
288
+ content.removeEventListener("pointerleave", handleContentLeave);
289
+ };
290
+ }
291
+ }, [
292
+ trigger,
293
+ content,
294
+ handleCreateGraceArea,
295
+ handleRemoveGraceArea
296
+ ]);
297
+ import_react.useEffect(() => {
298
+ if (pointerGraceArea) {
299
+ const handleTrackPointerGrace = /* @__PURE__ */ __name((event) => {
300
+ const target = event.target;
301
+ const pointerPosition = {
302
+ x: event.clientX,
303
+ y: event.clientY
304
+ };
305
+ const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
306
+ const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
307
+ if (hasEnteredTarget) handleRemoveGraceArea();
308
+ else if (isPointerOutsideGraceArea) {
309
+ handleRemoveGraceArea();
310
+ onClose();
311
+ }
312
+ }, "handleTrackPointerGrace");
313
+ document.addEventListener("pointermove", handleTrackPointerGrace);
314
+ return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
315
+ }
316
+ }, [
317
+ trigger,
318
+ content,
319
+ pointerGraceArea,
320
+ onClose,
321
+ handleRemoveGraceArea
322
+ ]);
323
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
324
+ ...props,
325
+ ref: composedRefs
326
+ });
327
+ }, "TooltipContentHoverable"));
328
+ var Slottable = createSlottable("TooltipContent");
329
+ var TooltipContentImpl = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name(function TooltipContentImpl2(props, forwardedRef) {
330
+ const { __scopeTooltip, children, "aria-label": ariaLabel, id: idProp, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
331
+ const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
332
+ const popperScope = usePopperScope(__scopeTooltip);
333
+ const { onClose } = context;
334
+ import_react.useEffect(() => {
335
+ document.addEventListener(TOOLTIP_OPEN, onClose);
336
+ return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
337
+ }, [onClose]);
338
+ import_react.useEffect(() => {
339
+ if (context.trigger) {
340
+ const handleScroll = /* @__PURE__ */ __name((event) => {
341
+ if (event.target instanceof Node && event.target.contains(context.trigger)) onClose();
342
+ }, "handleScroll");
343
+ window.addEventListener("scroll", handleScroll, { capture: true });
344
+ return () => window.removeEventListener("scroll", handleScroll, { capture: true });
345
+ }
346
+ }, [context.trigger, onClose]);
347
+ const { setContentId } = context;
348
+ useLayoutEffect2(() => {
349
+ setContentId(idProp);
350
+ return () => {
351
+ setContentId(void 0);
352
+ };
353
+ }, [idProp, setContentId]);
354
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DismissableLayer, {
355
+ asChild: true,
356
+ disableOutsidePointerEvents: false,
357
+ onEscapeKeyDown,
358
+ onPointerDownOutside,
359
+ onFocusOutside: (event) => event.preventDefault(),
360
+ onDismiss: onClose,
361
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Content, {
362
+ "data-state": context.stateAttribute,
363
+ role: ariaLabel ? void 0 : "tooltip",
364
+ id: ariaLabel ? void 0 : context.contentId,
365
+ ...popperScope,
366
+ ...contentProps,
367
+ ref: forwardedRef,
368
+ style: {
369
+ ...contentProps.style,
370
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
371
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
372
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
373
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
374
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
375
+ },
376
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Slottable, { children }), ariaLabel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root, {
377
+ id: context.contentId,
378
+ role: "tooltip",
379
+ children: ariaLabel
380
+ }) : null]
381
+ })
382
+ });
383
+ }, "TooltipContentImpl"));
384
+ var TooltipArrow = /* @__PURE__ */ import_react.forwardRef(/* @__PURE__ */ __name(function TooltipArrow2(props, forwardedRef) {
385
+ const { __scopeTooltip, ...arrowProps } = props;
386
+ const popperScope = usePopperScope(__scopeTooltip);
387
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Arrow, {
388
+ ...popperScope,
389
+ ...arrowProps,
390
+ ref: forwardedRef
391
+ });
392
+ }, "TooltipArrow"));
393
+ function getExitSideFromRect(point, rect) {
394
+ const top = Math.abs(rect.top - point.y);
395
+ const bottom = Math.abs(rect.bottom - point.y);
396
+ const right = Math.abs(rect.right - point.x);
397
+ const left = Math.abs(rect.left - point.x);
398
+ switch (Math.min(top, bottom, right, left)) {
399
+ case left: return "left";
400
+ case right: return "right";
401
+ case top: return "top";
402
+ case bottom: return "bottom";
403
+ default: throw new Error("unreachable");
404
+ }
405
+ }
406
+ __name(getExitSideFromRect, "getExitSideFromRect");
407
+ function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
408
+ const paddedExitPoints = [];
409
+ switch (exitSide) {
410
+ case "top":
411
+ paddedExitPoints.push({
412
+ x: exitPoint.x - padding,
413
+ y: exitPoint.y + padding
414
+ }, {
415
+ x: exitPoint.x + padding,
416
+ y: exitPoint.y + padding
417
+ });
418
+ break;
419
+ case "bottom":
420
+ paddedExitPoints.push({
421
+ x: exitPoint.x - padding,
422
+ y: exitPoint.y - padding
423
+ }, {
424
+ x: exitPoint.x + padding,
425
+ y: exitPoint.y - padding
426
+ });
427
+ break;
428
+ case "left":
429
+ paddedExitPoints.push({
430
+ x: exitPoint.x + padding,
431
+ y: exitPoint.y - padding
432
+ }, {
433
+ x: exitPoint.x + padding,
434
+ y: exitPoint.y + padding
435
+ });
436
+ break;
437
+ case "right": paddedExitPoints.push({
438
+ x: exitPoint.x - padding,
439
+ y: exitPoint.y - padding
440
+ }, {
441
+ x: exitPoint.x - padding,
442
+ y: exitPoint.y + padding
443
+ });
444
+ }
445
+ return paddedExitPoints;
446
+ }
447
+ __name(getPaddedExitPoints, "getPaddedExitPoints");
448
+ function getPointsFromRect(rect) {
449
+ const { top, right, bottom, left } = rect;
450
+ return [
451
+ {
452
+ x: left,
453
+ y: top
454
+ },
455
+ {
456
+ x: right,
457
+ y: top
458
+ },
459
+ {
460
+ x: right,
461
+ y: bottom
462
+ },
463
+ {
464
+ x: left,
465
+ y: bottom
466
+ }
467
+ ];
468
+ }
469
+ __name(getPointsFromRect, "getPointsFromRect");
470
+ function isPointInPolygon(point, polygon) {
471
+ const { x, y } = point;
472
+ let inside = false;
473
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
474
+ const ii = polygon[i];
475
+ const jj = polygon[j];
476
+ const xi = ii.x;
477
+ const yi = ii.y;
478
+ const xj = jj.x;
479
+ const yj = jj.y;
480
+ if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) inside = !inside;
481
+ }
482
+ return inside;
483
+ }
484
+ __name(isPointInPolygon, "isPointInPolygon");
485
+ function getHull(points) {
486
+ const newPoints = points.slice();
487
+ newPoints.sort((a, b) => {
488
+ if (a.x < b.x) return -1;
489
+ else if (a.x > b.x) return 1;
490
+ else if (a.y < b.y) return -1;
491
+ else if (a.y > b.y) return 1;
492
+ else return 0;
493
+ });
494
+ return getHullPresorted(newPoints);
495
+ }
496
+ __name(getHull, "getHull");
497
+ function getHullPresorted(points) {
498
+ if (points.length <= 1) return points.slice();
499
+ const upperHull = [];
500
+ for (let i = 0; i < points.length; i++) {
501
+ const p = points[i];
502
+ while (upperHull.length >= 2) {
503
+ const q = upperHull[upperHull.length - 1];
504
+ const r = upperHull[upperHull.length - 2];
505
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
506
+ else break;
507
+ }
508
+ upperHull.push(p);
509
+ }
510
+ upperHull.pop();
511
+ const lowerHull = [];
512
+ for (let i = points.length - 1; i >= 0; i--) {
513
+ const p = points[i];
514
+ while (lowerHull.length >= 2) {
515
+ const q = lowerHull[lowerHull.length - 1];
516
+ const r = lowerHull[lowerHull.length - 2];
517
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
518
+ else break;
519
+ }
520
+ lowerHull.push(p);
521
+ }
522
+ lowerHull.pop();
523
+ if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) return upperHull;
524
+ else return upperHull.concat(lowerHull);
525
+ }
526
+ __name(getHullPresorted, "getHullPresorted");
527
+ var Provider = TooltipProvider;
528
+ var Root3 = Tooltip;
529
+ var Trigger = TooltipTrigger;
530
+ var Portal = TooltipPortal;
531
+ var Content2 = TooltipContent;
532
+ var Arrow2 = TooltipArrow;
533
+ //#endregion
534
+ export { Root3 as a, Provider as i, Content2 as n, Trigger as o, Portal as r, Arrow2 as t };