@spear-ai/spectral 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +6 -5
  2. package/dist/.js +112 -239
  3. package/dist/Accordion-CDXdSAST.js +363 -0
  4. package/dist/Accordion.js +3 -498
  5. package/dist/Alert/AlertBase.js +69 -152
  6. package/dist/Alert.js +58 -106
  7. package/dist/AnimatePresence-D-9jXfgI.js +178 -0
  8. package/dist/App.js +6 -6
  9. package/dist/Avatar.js +83 -65
  10. package/dist/Badge.d.ts +1 -3
  11. package/dist/Badge.js +21 -25
  12. package/dist/Button.js +102 -178
  13. package/dist/ButtonGroup/ButtonGroupButton.js +38 -40
  14. package/dist/ButtonGroup.js +55 -59
  15. package/dist/ButtonIcon.js +58 -134
  16. package/dist/Calendar-s4lyijkn.js +3109 -0
  17. package/dist/Checkbox/CheckboxBase.js +94 -126
  18. package/dist/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox.js +40 -105
  20. package/dist/Combobox/ComboboxBase.js +2 -79
  21. package/dist/Combobox.js +106 -172
  22. package/dist/ComboboxBase-D8Nf4xC-.js +491 -0
  23. package/dist/ControlGroup/ControlGroupSelect.d.ts +1 -1
  24. package/dist/ControlGroup/ControlGroupSelect.js +85 -101
  25. package/dist/ControlGroup.js +45 -48
  26. package/dist/DataCard/Card.js +37 -12
  27. package/dist/DataCard.d.ts +1 -1
  28. package/dist/DataCard.js +36 -16
  29. package/dist/DateTimePicker/Calendar.js +2 -2967
  30. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts +1 -1
  31. package/dist/DateTimePicker/DateTimeDisplayInput.js +379 -274
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +5 -3
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -88
  34. package/dist/DateTimePicker/DateTimeUtils.js +2 -2193
  35. package/dist/DateTimePicker/TimePeriodSelect.d.ts +1 -1
  36. package/dist/DateTimePicker/TimePeriodSelect.js +45 -20
  37. package/dist/DateTimePicker/TimePicker.d.ts +1 -1
  38. package/dist/DateTimePicker/TimePicker.js +76 -60
  39. package/dist/DateTimePicker.d.ts +2 -2
  40. package/dist/DateTimePicker.js +87 -205
  41. package/dist/DateTimeUtils-DVvG6H-p.js +2098 -0
  42. package/dist/Dialog.js +74 -74
  43. package/dist/Drawer.js +67 -37
  44. package/dist/HoverCard-CYDsIiVK.js +201 -0
  45. package/dist/HoverCard.d.ts +1 -1
  46. package/dist/HoverCard.js +2 -218
  47. package/dist/Icons/AnalyzeIcon.js +50 -57
  48. package/dist/Icons/AnnotationsIcon.js +20 -15
  49. package/dist/Icons/ApprovedIcon.js +26 -18
  50. package/dist/Icons/ArrowDownIcon.js +20 -6
  51. package/dist/Icons/ArrowUpIcon.js +20 -6
  52. package/dist/Icons/BoxToolIcon.js +17 -12
  53. package/dist/Icons/CalendarIcon.js +43 -20
  54. package/dist/Icons/CheckCircleIcon.js +26 -10
  55. package/dist/Icons/CheckSquareIcon.js +26 -10
  56. package/dist/Icons/CheckmarkIcon.js +22 -9
  57. package/dist/Icons/ChevronDownIcon.js +22 -9
  58. package/dist/Icons/ChevronUpIcon.js +22 -9
  59. package/dist/Icons/ClockIcon.js +26 -18
  60. package/dist/Icons/CloseCircleIcon.js +26 -10
  61. package/dist/Icons/CloseIcon.js +18 -9
  62. package/dist/Icons/DashboardIcon.js +36 -10
  63. package/dist/Icons/DatabaseIcon.js +36 -19
  64. package/dist/Icons/DeleteIcon.js +36 -19
  65. package/dist/Icons/DurationIcon.js +57 -22
  66. package/dist/Icons/EditIcon.js +26 -27
  67. package/dist/Icons/EmailIcon.js +26 -10
  68. package/dist/Icons/EraserIcon.js +41 -25
  69. package/dist/Icons/ErrorIcon.js +27 -11
  70. package/dist/Icons/EyeClosedIcon.js +29 -13
  71. package/dist/Icons/EyeClosedIcon2.js +27 -11
  72. package/dist/Icons/EyeOpenIcon.js +22 -9
  73. package/dist/Icons/FileDownloadIcon.js +43 -20
  74. package/dist/Icons/GoToFirstIcon.js +26 -9
  75. package/dist/Icons/GoToLastIcon.js +26 -9
  76. package/dist/Icons/HarmonicCursorsIcon.js +23 -9
  77. package/dist/Icons/IconBase.d.ts +3 -3
  78. package/dist/Icons/IconBase.js +49 -23
  79. package/dist/Icons/InfoIcon.js +36 -10
  80. package/dist/Icons/KeyboardIcon.js +26 -27
  81. package/dist/Icons/LabelIcon.js +19 -14
  82. package/dist/Icons/LassoIcon.js +36 -28
  83. package/dist/Icons/LineToolIcon.js +48 -39
  84. package/dist/Icons/LiveViewIcon.js +50 -12
  85. package/dist/Icons/LoaderIcon.js +67 -27
  86. package/dist/Icons/LocationIcon.js +26 -27
  87. package/dist/Icons/LogoutIcon.js +20 -15
  88. package/dist/Icons/MeasureIcon.js +78 -25
  89. package/dist/Icons/MessagesIcon.js +33 -18
  90. package/dist/Icons/MetadataIcon.js +20 -15
  91. package/dist/Icons/MinusIcon.d.ts +1 -1
  92. package/dist/Icons/MinusIcon.js +18 -6
  93. package/dist/Icons/OntologyIcon.js +87 -71
  94. package/dist/Icons/PanelIconClose.js +28 -10
  95. package/dist/Icons/PanelIconOpen.js +28 -10
  96. package/dist/Icons/PlayIcon.js +20 -6
  97. package/dist/Icons/PlusIcon.js +20 -14
  98. package/dist/Icons/PolygonIcon.js +50 -39
  99. package/dist/Icons/ProgressCheckIcon.d.ts +5 -0
  100. package/dist/Icons/ProgressCheckIcon.js +58 -0
  101. package/dist/Icons/ResetIcon.js +17 -12
  102. package/dist/Icons/ReviewedIcon.js +36 -19
  103. package/dist/Icons/ScissorsIcon.js +22 -17
  104. package/dist/Icons/SearchIcon.js +26 -9
  105. package/dist/Icons/SettingsIcon.js +26 -27
  106. package/dist/Icons/SortAscendingIcon.js +50 -12
  107. package/dist/Icons/SortAtoZIcon.js +50 -12
  108. package/dist/Icons/SortDescendingIcon.js +50 -12
  109. package/dist/Icons/SortZtoAIcon.js +50 -12
  110. package/dist/Icons/StackIcon.js +26 -9
  111. package/dist/Icons/StarIcon.js +20 -6
  112. package/dist/Icons/TrashIcon.js +17 -12
  113. package/dist/Icons/UndoIcon.js +20 -15
  114. package/dist/Icons/User2Icon.js +26 -10
  115. package/dist/Icons/UserIcon.js +19 -14
  116. package/dist/Icons/WarningIcon.js +19 -14
  117. package/dist/Icons/ZoomAllIcon.js +71 -15
  118. package/dist/Icons/ZoomXIcon.js +36 -10
  119. package/dist/Icons/ZoomYIcon.js +36 -10
  120. package/dist/Icons/index.d.ts +1 -0
  121. package/dist/Icons.js +68 -136
  122. package/dist/IconsAnimated/PanelLeftCloseIcon.js +66 -36
  123. package/dist/IconsAnimated/PanelLeftOpenIcon.js +66 -36
  124. package/dist/IconsAnimated.js +3 -6
  125. package/dist/Input/InputUtils.js +51 -52
  126. package/dist/Input.js +132 -185
  127. package/dist/InputOTP-XUWW9xcI.js +461 -0
  128. package/dist/InputOTP.js +2 -382
  129. package/dist/Kbd.d.ts +1 -1
  130. package/dist/Kbd.js +182 -86
  131. package/dist/Label.js +12 -14
  132. package/dist/MultiSelect/MultiSelectBase.js +331 -403
  133. package/dist/MultiSelect.d.ts +1 -1
  134. package/dist/MultiSelect.js +23 -23
  135. package/dist/Popover.js +28 -32
  136. package/dist/RadioButton.d.ts +17 -0
  137. package/dist/RadioButton.js +33 -0
  138. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +3 -1
  139. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +49 -46
  140. package/dist/RadioButtonGroup.d.ts +1 -1
  141. package/dist/RadioButtonGroup.js +11 -8
  142. package/dist/RadioGroup-w_q6RGEK.js +447 -0
  143. package/dist/RadioGroup.js +2 -505
  144. package/dist/Select.js +163 -186
  145. package/dist/Separator.js +16 -19
  146. package/dist/Skeleton.js +10 -6
  147. package/dist/Slider-BzzZT3Zm.js +490 -0
  148. package/dist/Slider.js +2 -562
  149. package/dist/SpectralProvider.js +8 -5
  150. package/dist/Switch/SwitchBase.js +91 -95
  151. package/dist/Switch-CVzRJ-0n.js +126 -0
  152. package/dist/Switch.d.ts +1 -1
  153. package/dist/Switch.js +2 -134
  154. package/dist/Tabs/TabsBase.js +242 -250
  155. package/dist/Tabs/tabsUtils.js +65 -73
  156. package/dist/Tabs.d.ts +1 -1
  157. package/dist/Tabs.js +73 -103
  158. package/dist/Textarea/TextareaUtils.js +35 -46
  159. package/dist/Textarea.js +83 -160
  160. package/dist/Toast-9zqXxKKO.js +711 -0
  161. package/dist/Toast.js +2 -885
  162. package/dist/Toggle/ToggleBase.js +46 -56
  163. package/dist/Toggle.d.ts +1 -1
  164. package/dist/Toggle.js +52 -62
  165. package/dist/ToggleGroup/ToggleGroupBase.js +128 -104
  166. package/dist/ToggleGroup.d.ts +1 -1
  167. package/dist/ToggleGroup.js +52 -63
  168. package/dist/Tooltip-D1K8kY1y.js +389 -0
  169. package/dist/Tooltip.js +2 -365
  170. package/dist/Tray.js +174 -217
  171. package/dist/chunk-h9knIhTc.js +20 -0
  172. package/dist/clsx-jM1GlMvB.js +16 -0
  173. package/dist/dist-3Af8168y.js +913 -0
  174. package/dist/dist-7HRQ5IKN.js +249 -0
  175. package/dist/dist-B2k1iWFp.js +129 -0
  176. package/dist/dist-B4FgboI8.js +122 -0
  177. package/dist/dist-B4g6zpUF.js +33 -0
  178. package/dist/dist-B9tup-4O.js +216 -0
  179. package/dist/dist-BK1K0g9W.js +29 -0
  180. package/dist/dist-Bfjk-jx9.js +28 -0
  181. package/dist/dist-Bft31cJh.js +65 -0
  182. package/dist/dist-BtdmHAzK.js +190 -0
  183. package/dist/dist-C0Hifjgh.js +1287 -0
  184. package/dist/dist-CGzgmYB9.js +68 -0
  185. package/dist/dist-ClmepHp4.js +10 -0
  186. package/dist/dist-D8Wb_MX9.js +6 -0
  187. package/dist/dist-Dtvmk11N.js +12 -0
  188. package/dist/dist-fW81qjVl.js +677 -0
  189. package/dist/dist-s1uWaZYZ.js +11 -0
  190. package/dist/es2015-YHaMV-St.js +701 -0
  191. package/dist/hooks/useAccordionAutoScroll.js +66 -67
  192. package/dist/hooks/useControllableState.js +14 -13
  193. package/dist/hooks/useTheme.js +21 -17
  194. package/dist/index.d.ts +2 -1
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/main.js +18954 -27224
  197. package/dist/primitives/button.js +39 -41
  198. package/dist/primitives/input-group.js +57 -73
  199. package/dist/primitives/input.js +11 -20
  200. package/dist/primitives/popover.d.ts.map +1 -1
  201. package/dist/primitives/popover.js +34 -25
  202. package/dist/primitives/select.js +70 -138
  203. package/dist/primitives/slot.js +32 -31
  204. package/dist/primitives/textarea.js +10 -16
  205. package/dist/proxy-Dn10Pl_g.js +4920 -0
  206. package/dist/styles/main.css +2 -1
  207. package/dist/styles/spectral.css +1 -1
  208. package/dist/twUtils-VNWgstKL.js +1673 -0
  209. package/dist/use-animation-CBUDycyW.js +57 -0
  210. package/dist/utils/constants.js +4 -4
  211. package/dist/utils/formFieldUtils.js +136 -148
  212. package/dist/utils/sharedUtils.js +26 -7
  213. package/dist/utils/twUtils.js +2 -2919
  214. package/package.json +24 -28
  215. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  216. package/dist/clsx-OuTLNxxd.js +0 -16
  217. package/dist/index-0ioNhtNM.js +0 -10
  218. package/dist/index-6oYKCvIn.js +0 -677
  219. package/dist/index-BFOf48AQ.js +0 -69
  220. package/dist/index-BZPx6jYI.js +0 -8
  221. package/dist/index-BlHU_t18.js +0 -142
  222. package/dist/index-Bm1RbF6w.js +0 -1037
  223. package/dist/index-Bv2OIg5P.js +0 -225
  224. package/dist/index-CKEI0pDv.js +0 -56
  225. package/dist/index-CM_hWgfC.js +0 -32
  226. package/dist/index-C_YVr64u.js +0 -1538
  227. package/dist/index-Cl8VeY0o.js +0 -149
  228. package/dist/index-CwSyIPrv.js +0 -13
  229. package/dist/index-D29mdTf5.js +0 -34
  230. package/dist/index-DEYs15GP.js +0 -66
  231. package/dist/index-Dc0No4pV.js +0 -233
  232. package/dist/index-T6XEa11q.js +0 -822
  233. package/dist/index-pBCLb6Gr.js +0 -240
  234. package/dist/index-psiVrsnE.js +0 -27
  235. package/dist/index-rKs9bXHr.js +0 -6
  236. package/dist/proxy-CO_-Vget.js +0 -4975
  237. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -0,0 +1,389 @@
1
+ import "./styles/main.css";
2
+ import { a as e, d as t, l as n, r, s as i, t as a } from "./dist-7HRQ5IKN.js";
3
+ import { t as o } from "./dist-Bft31cJh.js";
4
+ import { t as s } from "./dist-Dtvmk11N.js";
5
+ import { t as c } from "./twUtils-VNWgstKL.js";
6
+ import { t as l } from "./dist-B4g6zpUF.js";
7
+ import { n as u, t as d } from "./dist-B2k1iWFp.js";
8
+ import { a as f, i as p, n as m, r as h, t as g } from "./dist-C0Hifjgh.js";
9
+ import { t as _ } from "./dist-Bfjk-jx9.js";
10
+ import * as v from "react";
11
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
12
+ //#region node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+reac_f164644780a8f95ec4733d733b3b08bc/node_modules/@radix-ui/react-tooltip/dist/index.mjs
13
+ var [x, S] = t("Tooltip", [f]), C = f(), w = "TooltipProvider", T = 700, E = "tooltip.open", [D, O] = x(w), k = (e) => {
14
+ let { __scopeTooltip: t, delayDuration: n = T, skipDelayDuration: r = 300, disableHoverableContent: i = !1, children: a } = e, o = v.useRef(!0), s = v.useRef(!1), c = v.useRef(0);
15
+ return v.useEffect(() => {
16
+ let e = c.current;
17
+ return () => window.clearTimeout(e);
18
+ }, []), /* @__PURE__ */ y(D, {
19
+ scope: t,
20
+ isOpenDelayedRef: o,
21
+ delayDuration: n,
22
+ onOpen: v.useCallback(() => {
23
+ window.clearTimeout(c.current), o.current = !1;
24
+ }, []),
25
+ onClose: v.useCallback(() => {
26
+ window.clearTimeout(c.current), c.current = window.setTimeout(() => o.current = !0, r);
27
+ }, [r]),
28
+ isPointerInTransitRef: s,
29
+ onPointerInTransitChange: v.useCallback((e) => {
30
+ s.current = e;
31
+ }, []),
32
+ disableHoverableContent: i,
33
+ children: a
34
+ });
35
+ };
36
+ k.displayName = w;
37
+ var A = "Tooltip", [j, M] = x(A), N = (e) => {
38
+ let { __scopeTooltip: t, children: n, open: i, defaultOpen: a, onOpenChange: o, disableHoverableContent: c, delayDuration: l } = e, u = O(A, e.__scopeTooltip), d = C(t), [f, m] = v.useState(null), h = s(), g = v.useRef(0), _ = c ?? u.disableHoverableContent, b = l ?? u.delayDuration, x = v.useRef(!1), [S, w] = r({
39
+ prop: i,
40
+ defaultProp: a ?? !1,
41
+ onChange: (e) => {
42
+ e ? (u.onOpen(), document.dispatchEvent(new CustomEvent(E))) : u.onClose(), o?.(e);
43
+ },
44
+ caller: A
45
+ }), T = v.useMemo(() => S ? x.current ? "delayed-open" : "instant-open" : "closed", [S]), D = v.useCallback(() => {
46
+ window.clearTimeout(g.current), g.current = 0, x.current = !1, w(!0);
47
+ }, [w]), k = v.useCallback(() => {
48
+ window.clearTimeout(g.current), g.current = 0, w(!1);
49
+ }, [w]), M = v.useCallback(() => {
50
+ window.clearTimeout(g.current), g.current = window.setTimeout(() => {
51
+ x.current = !0, w(!0), g.current = 0;
52
+ }, b);
53
+ }, [b, w]);
54
+ return v.useEffect(() => () => {
55
+ g.current &&= (window.clearTimeout(g.current), 0);
56
+ }, []), /* @__PURE__ */ y(p, {
57
+ ...d,
58
+ children: /* @__PURE__ */ y(j, {
59
+ scope: t,
60
+ contentId: h,
61
+ open: S,
62
+ stateAttribute: T,
63
+ trigger: f,
64
+ onTriggerChange: m,
65
+ onTriggerEnter: v.useCallback(() => {
66
+ u.isOpenDelayedRef.current ? M() : D();
67
+ }, [
68
+ u.isOpenDelayedRef,
69
+ M,
70
+ D
71
+ ]),
72
+ onTriggerLeave: v.useCallback(() => {
73
+ _ ? k() : (window.clearTimeout(g.current), g.current = 0);
74
+ }, [k, _]),
75
+ onOpen: D,
76
+ onClose: k,
77
+ disableHoverableContent: _,
78
+ children: n
79
+ })
80
+ });
81
+ };
82
+ N.displayName = A;
83
+ var P = "TooltipTrigger", F = v.forwardRef((t, r) => {
84
+ let { __scopeTooltip: i, ...o } = t, s = M(P, i), c = O(P, i), l = C(i), u = n(r, v.useRef(null), s.onTriggerChange), d = v.useRef(!1), f = v.useRef(!1), p = v.useCallback(() => d.current = !1, []);
85
+ return v.useEffect(() => () => document.removeEventListener("pointerup", p), [p]), /* @__PURE__ */ y(g, {
86
+ asChild: !0,
87
+ ...l,
88
+ children: /* @__PURE__ */ y(a.button, {
89
+ "aria-describedby": s.open ? s.contentId : void 0,
90
+ "data-state": s.stateAttribute,
91
+ ...o,
92
+ ref: u,
93
+ onPointerMove: e(t.onPointerMove, (e) => {
94
+ e.pointerType !== "touch" && !f.current && !c.isPointerInTransitRef.current && (s.onTriggerEnter(), f.current = !0);
95
+ }),
96
+ onPointerLeave: e(t.onPointerLeave, () => {
97
+ s.onTriggerLeave(), f.current = !1;
98
+ }),
99
+ onPointerDown: e(t.onPointerDown, () => {
100
+ s.open && s.onClose(), d.current = !0, document.addEventListener("pointerup", p, { once: !0 });
101
+ }),
102
+ onFocus: e(t.onFocus, () => {
103
+ d.current || s.onOpen();
104
+ }),
105
+ onBlur: e(t.onBlur, s.onClose),
106
+ onClick: e(t.onClick, s.onClose)
107
+ })
108
+ });
109
+ });
110
+ F.displayName = P;
111
+ var I = "TooltipPortal", [L, R] = x(I, { forceMount: void 0 }), z = (e) => {
112
+ let { __scopeTooltip: t, forceMount: n, children: r, container: i } = e, a = M(I, t);
113
+ return /* @__PURE__ */ y(L, {
114
+ scope: t,
115
+ forceMount: n,
116
+ children: /* @__PURE__ */ y(o, {
117
+ present: n || a.open,
118
+ children: /* @__PURE__ */ y(d, {
119
+ asChild: !0,
120
+ container: i,
121
+ children: r
122
+ })
123
+ })
124
+ });
125
+ };
126
+ z.displayName = I;
127
+ var B = "TooltipContent", V = v.forwardRef((e, t) => {
128
+ let n = R(B, e.__scopeTooltip), { forceMount: r = n.forceMount, side: i = "top", ...a } = e, s = M(B, e.__scopeTooltip);
129
+ return /* @__PURE__ */ y(o, {
130
+ present: r || s.open,
131
+ children: s.disableHoverableContent ? /* @__PURE__ */ y(W, {
132
+ side: i,
133
+ ...a,
134
+ ref: t
135
+ }) : /* @__PURE__ */ y(ee, {
136
+ side: i,
137
+ ...a,
138
+ ref: t
139
+ })
140
+ });
141
+ }), ee = v.forwardRef((e, t) => {
142
+ let r = M(B, e.__scopeTooltip), i = O(B, e.__scopeTooltip), a = v.useRef(null), o = n(t, a), [s, c] = v.useState(null), { trigger: l, onClose: u } = r, d = a.current, { onPointerInTransitChange: f } = i, p = v.useCallback(() => {
143
+ c(null), f(!1);
144
+ }, [f]), m = v.useCallback((e, t) => {
145
+ let n = e.currentTarget, r = {
146
+ x: e.clientX,
147
+ y: e.clientY
148
+ }, i = J(r, q(r, n.getBoundingClientRect())), a = Y(t.getBoundingClientRect());
149
+ c(Z([...i, ...a])), f(!0);
150
+ }, [f]);
151
+ return v.useEffect(() => () => p(), [p]), v.useEffect(() => {
152
+ if (l && d) {
153
+ let e = (e) => m(e, d), t = (e) => m(e, l);
154
+ return l.addEventListener("pointerleave", e), d.addEventListener("pointerleave", t), () => {
155
+ l.removeEventListener("pointerleave", e), d.removeEventListener("pointerleave", t);
156
+ };
157
+ }
158
+ }, [
159
+ l,
160
+ d,
161
+ m,
162
+ p
163
+ ]), v.useEffect(() => {
164
+ if (s) {
165
+ let e = (e) => {
166
+ let t = e.target, n = {
167
+ x: e.clientX,
168
+ y: e.clientY
169
+ }, r = l?.contains(t) || d?.contains(t), i = !X(n, s);
170
+ r ? p() : i && (p(), u());
171
+ };
172
+ return document.addEventListener("pointermove", e), () => document.removeEventListener("pointermove", e);
173
+ }
174
+ }, [
175
+ l,
176
+ d,
177
+ s,
178
+ u,
179
+ p
180
+ ]), /* @__PURE__ */ y(W, {
181
+ ...e,
182
+ ref: o
183
+ });
184
+ }), [te, H] = x(A, { isInside: !1 }), U = i("TooltipContent"), W = v.forwardRef((e, t) => {
185
+ let { __scopeTooltip: n, children: r, "aria-label": i, onEscapeKeyDown: a, onPointerDownOutside: o, ...s } = e, c = M(B, n), l = C(n), { onClose: d } = c;
186
+ return v.useEffect(() => (document.addEventListener(E, d), () => document.removeEventListener(E, d)), [d]), v.useEffect(() => {
187
+ if (c.trigger) {
188
+ let e = (e) => {
189
+ e.target?.contains(c.trigger) && d();
190
+ };
191
+ return window.addEventListener("scroll", e, { capture: !0 }), () => window.removeEventListener("scroll", e, { capture: !0 });
192
+ }
193
+ }, [c.trigger, d]), /* @__PURE__ */ y(u, {
194
+ asChild: !0,
195
+ disableOutsidePointerEvents: !1,
196
+ onEscapeKeyDown: a,
197
+ onPointerDownOutside: o,
198
+ onFocusOutside: (e) => e.preventDefault(),
199
+ onDismiss: d,
200
+ children: /* @__PURE__ */ b(h, {
201
+ "data-state": c.stateAttribute,
202
+ ...l,
203
+ ...s,
204
+ ref: t,
205
+ style: {
206
+ ...s.style,
207
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
208
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
209
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
210
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
211
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
212
+ },
213
+ children: [/* @__PURE__ */ y(U, { children: r }), /* @__PURE__ */ y(te, {
214
+ scope: n,
215
+ isInside: !0,
216
+ children: /* @__PURE__ */ y(_, {
217
+ id: c.contentId,
218
+ role: "tooltip",
219
+ children: i || r
220
+ })
221
+ })]
222
+ })
223
+ });
224
+ });
225
+ V.displayName = B;
226
+ var G = "TooltipArrow", K = v.forwardRef((e, t) => {
227
+ let { __scopeTooltip: n, ...r } = e, i = C(n);
228
+ return H(G, n).isInside ? null : /* @__PURE__ */ y(m, {
229
+ ...i,
230
+ ...r,
231
+ ref: t
232
+ });
233
+ });
234
+ K.displayName = G;
235
+ function q(e, t) {
236
+ let n = Math.abs(t.top - e.y), r = Math.abs(t.bottom - e.y), i = Math.abs(t.right - e.x), a = Math.abs(t.left - e.x);
237
+ switch (Math.min(n, r, i, a)) {
238
+ case a: return "left";
239
+ case i: return "right";
240
+ case n: return "top";
241
+ case r: return "bottom";
242
+ default: throw Error("unreachable");
243
+ }
244
+ }
245
+ function J(e, t, n = 5) {
246
+ let r = [];
247
+ switch (t) {
248
+ case "top":
249
+ r.push({
250
+ x: e.x - n,
251
+ y: e.y + n
252
+ }, {
253
+ x: e.x + n,
254
+ y: e.y + n
255
+ });
256
+ break;
257
+ case "bottom":
258
+ r.push({
259
+ x: e.x - n,
260
+ y: e.y - n
261
+ }, {
262
+ x: e.x + n,
263
+ y: e.y - n
264
+ });
265
+ break;
266
+ case "left":
267
+ r.push({
268
+ x: e.x + n,
269
+ y: e.y - n
270
+ }, {
271
+ x: e.x + n,
272
+ y: e.y + n
273
+ });
274
+ break;
275
+ case "right":
276
+ r.push({
277
+ x: e.x - n,
278
+ y: e.y - n
279
+ }, {
280
+ x: e.x - n,
281
+ y: e.y + n
282
+ });
283
+ break;
284
+ }
285
+ return r;
286
+ }
287
+ function Y(e) {
288
+ let { top: t, right: n, bottom: r, left: i } = e;
289
+ return [
290
+ {
291
+ x: i,
292
+ y: t
293
+ },
294
+ {
295
+ x: n,
296
+ y: t
297
+ },
298
+ {
299
+ x: n,
300
+ y: r
301
+ },
302
+ {
303
+ x: i,
304
+ y: r
305
+ }
306
+ ];
307
+ }
308
+ function X(e, t) {
309
+ let { x: n, y: r } = e, i = !1;
310
+ for (let e = 0, a = t.length - 1; e < t.length; a = e++) {
311
+ let o = t[e], s = t[a], c = o.x, l = o.y, u = s.x, d = s.y;
312
+ l > r != d > r && n < (u - c) * (r - l) / (d - l) + c && (i = !i);
313
+ }
314
+ return i;
315
+ }
316
+ function Z(e) {
317
+ let t = e.slice();
318
+ return t.sort((e, t) => e.x < t.x ? -1 : e.x > t.x ? 1 : e.y < t.y ? -1 : e.y > t.y ? 1 : 0), ne(t);
319
+ }
320
+ function ne(e) {
321
+ if (e.length <= 1) return e.slice();
322
+ let t = [];
323
+ for (let n = 0; n < e.length; n++) {
324
+ let r = e[n];
325
+ for (; t.length >= 2;) {
326
+ let e = t[t.length - 1], n = t[t.length - 2];
327
+ if ((e.x - n.x) * (r.y - n.y) >= (e.y - n.y) * (r.x - n.x)) t.pop();
328
+ else break;
329
+ }
330
+ t.push(r);
331
+ }
332
+ t.pop();
333
+ let n = [];
334
+ for (let t = e.length - 1; t >= 0; t--) {
335
+ let r = e[t];
336
+ for (; n.length >= 2;) {
337
+ let e = n[n.length - 1], t = n[n.length - 2];
338
+ if ((e.x - t.x) * (r.y - t.y) >= (e.y - t.y) * (r.x - t.x)) n.pop();
339
+ else break;
340
+ }
341
+ n.push(r);
342
+ }
343
+ return n.pop(), t.length === 1 && n.length === 1 && t[0].x === n[0].x && t[0].y === n[0].y ? t : t.concat(n);
344
+ }
345
+ var re = k, ie = N, Q = F, ae = z, oe = V, se = K, $ = ({ delayDuration: e = 0, ...t }) => /* @__PURE__ */ y(re, {
346
+ "data-slot": "tooltip-provider",
347
+ delayDuration: e,
348
+ ...t
349
+ }), ce = ({ ...e }) => /* @__PURE__ */ y($, { children: /* @__PURE__ */ y(ie, {
350
+ "data-slot": "tooltip",
351
+ "data-testid": "spectral-tooltip",
352
+ ...e
353
+ }) }), le = ({ asChild: e, children: t, ...n }) => /* @__PURE__ */ y(Q, {
354
+ asChild: e,
355
+ className: "w-fit",
356
+ "data-slot": "tooltip-trigger",
357
+ "data-testid": "spectral-tooltip-trigger",
358
+ ...n,
359
+ children: t
360
+ }), ue = l("tooltip-effects rounded-md px-3 py-1.5 text-xs pointer-events-auto z-50 w-fit bg-tooltip-bg text-text-primary will-change-transform outline-none select-none motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:animate-in motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95", {
361
+ variants: { variant: {
362
+ default: "",
363
+ outline: "border-2 border-tooltip-outline-border"
364
+ } },
365
+ defaultVariants: { variant: "default" }
366
+ }), de = l("size-2.5 z-[-1] rotate-45 rounded-[2px] bg-tooltip-arrow fill-tooltip-arrow", {
367
+ variants: { variant: {
368
+ default: "-translate-y-[calc(50%+1px)]",
369
+ outline: "-translate-y-[calc(50%-1.5px)] border-2 border-t-0 border-l-0 border-tooltip-outline-arrow"
370
+ } },
371
+ defaultVariants: { variant: "default" }
372
+ }), fe = ({ children: e, className: t, showArrow: n = !1, side: r, sideOffset: i = 0, variant: a = "default", ...o }) => /* @__PURE__ */ y(ae, {
373
+ "data-testid": "spectral-tooltip-portal",
374
+ "data-slot": "tooltip-portal",
375
+ children: /* @__PURE__ */ b(oe, {
376
+ className: c(ue({ variant: a }), t),
377
+ "data-slot": "tooltip-content",
378
+ "data-testid": "spectral-tooltip-content",
379
+ side: r,
380
+ sideOffset: i,
381
+ ...o,
382
+ children: [e, n && /* @__PURE__ */ y(se, {
383
+ className: c(de({ variant: a })),
384
+ height: 8
385
+ })]
386
+ })
387
+ });
388
+ //#endregion
389
+ export { le as i, fe as n, $ as r, ce as t };