@drjoshcsimmons/scl 0.2.1 → 0.2.2

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 (119) hide show
  1. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts +1 -7
  2. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts.map +1 -1
  3. package/dist/index100.js +9 -4
  4. package/dist/index101.js +4 -30
  5. package/dist/index102.js +647 -10
  6. package/dist/index103.js +5 -649
  7. package/dist/index104.js +25 -30
  8. package/dist/index105.js +30 -4
  9. package/dist/index106.js +29 -47
  10. package/dist/index107.js +15 -30
  11. package/dist/index108.js +177 -51
  12. package/dist/index109.js +47 -29
  13. package/dist/index11.js +2 -2
  14. package/dist/index110.js +51 -44
  15. package/dist/index111.js +30 -9
  16. package/dist/index112.js +45 -12
  17. package/dist/index113.js +6 -48
  18. package/dist/index114.js +1 -1
  19. package/dist/index115.js +47 -11
  20. package/dist/index116.js +10 -204
  21. package/dist/index117.js +204 -20
  22. package/dist/index118.js +21 -399
  23. package/dist/index119.js +400 -6
  24. package/dist/index12.js +1 -1
  25. package/dist/index120.js +1 -1
  26. package/dist/index125.js +2 -25
  27. package/dist/index126.js +53 -29
  28. package/dist/index127.js +65 -5
  29. package/dist/index128.js +25 -2
  30. package/dist/index129.js +29 -53
  31. package/dist/index13.js +2 -2
  32. package/dist/index130.js +5 -65
  33. package/dist/index136.js +1 -1
  34. package/dist/index137.js +1 -1
  35. package/dist/index14.js +2 -2
  36. package/dist/index141.js +1 -1
  37. package/dist/index142.js +1 -1
  38. package/dist/index143.js +1 -1
  39. package/dist/index148.js +11 -21
  40. package/dist/index149.js +26 -11
  41. package/dist/index15.js +2 -2
  42. package/dist/index150.js +4 -27
  43. package/dist/index151.js +22 -4
  44. package/dist/index17.js +4 -4
  45. package/dist/index18.js +2 -2
  46. package/dist/index20.js +2 -2
  47. package/dist/index21.js +1 -1
  48. package/dist/index22.js +1 -1
  49. package/dist/index23.js +2 -2
  50. package/dist/index24.js +1 -1
  51. package/dist/index25.js +4 -4
  52. package/dist/index26.js +1 -1
  53. package/dist/index27.js +3 -3
  54. package/dist/index29.js +1 -1
  55. package/dist/index31.js +1 -1
  56. package/dist/index33.js +1 -1
  57. package/dist/index34.js +18 -16
  58. package/dist/index36.js +2 -2
  59. package/dist/index37.js +1 -1
  60. package/dist/index4.js +2 -2
  61. package/dist/index45.js +33 -237
  62. package/dist/index46.js +125 -11
  63. package/dist/index47.js +237 -33
  64. package/dist/index48.js +11 -241
  65. package/dist/index49.js +58 -16
  66. package/dist/index5.js +1 -1
  67. package/dist/index50.js +64 -116
  68. package/dist/index51.js +238 -28
  69. package/dist/index52.js +326 -63
  70. package/dist/index53.js +505 -211
  71. package/dist/index54.js +225 -11
  72. package/dist/index55.js +9 -60
  73. package/dist/index56.js +11 -254
  74. package/dist/index57.js +11 -225
  75. package/dist/index58.js +130 -9
  76. package/dist/index59.js +310 -11
  77. package/dist/index6.js +1 -1
  78. package/dist/index60.js +12 -130
  79. package/dist/index61.js +17 -21
  80. package/dist/index62.js +16 -854
  81. package/dist/index63.js +254 -9
  82. package/dist/index64.js +107 -71
  83. package/dist/index65.js +140 -239
  84. package/dist/index66.js +260 -12
  85. package/dist/index67.js +12 -249
  86. package/dist/index68.js +71 -107
  87. package/dist/index69.js +811 -481
  88. package/dist/index7.js +1 -1
  89. package/dist/index70.js +2 -5
  90. package/dist/index71.js +30 -434
  91. package/dist/index72.js +224 -311
  92. package/dist/index73.js +224 -298
  93. package/dist/index74.js +4 -4
  94. package/dist/index75.js +403 -129
  95. package/dist/index77.js +25 -44
  96. package/dist/index78.js +5 -25
  97. package/dist/index79.js +8 -6
  98. package/dist/index8.js +1 -1
  99. package/dist/index80.js +44 -50
  100. package/dist/index81.js +51 -33
  101. package/dist/index82.js +33 -10
  102. package/dist/index83.js +10 -7
  103. package/dist/index84.js +7 -124
  104. package/dist/index85.js +52 -12
  105. package/dist/index86.js +10 -134
  106. package/dist/index87.js +3 -218
  107. package/dist/index88.js +30 -14
  108. package/dist/index89.js +11 -67
  109. package/dist/index9.js +2 -2
  110. package/dist/index90.js +120 -43
  111. package/dist/index91.js +218 -49
  112. package/dist/index92.js +12 -7
  113. package/dist/index93.js +68 -29
  114. package/dist/index95.js +27 -178
  115. package/dist/index96.js +14 -24
  116. package/dist/index97.js +134 -5
  117. package/dist/index98.js +44 -51
  118. package/dist/index99.js +50 -11
  119. package/package.json +1 -1
package/dist/index51.js CHANGED
@@ -1,33 +1,243 @@
1
- import * as f from "react";
2
- import { composeEventHandlers as m } from "./index79.js";
3
- import { useControllableState as p } from "./index80.js";
4
- import { Primitive as b } from "./index81.js";
5
- import { jsx as c } from "react/jsx-runtime";
6
- var r = "Toggle", t = f.forwardRef((e, a) => {
7
- const { pressed: s, defaultPressed: d, onPressedChange: i, ...l } = e, [o, n] = p({
8
- prop: s,
9
- onChange: i,
10
- defaultProp: d ?? !1,
11
- caller: r
1
+ import * as i from "react";
2
+ import { composeEventHandlers as P } from "./index78.js";
3
+ import { useComposedRefs as O } from "./index77.js";
4
+ import { createContextScope as G } from "./index76.js";
5
+ import { DismissableLayer as H } from "./index90.js";
6
+ import { useFocusGuards as K } from "./index96.js";
7
+ import { FocusScope as $ } from "./index97.js";
8
+ import { useId as j } from "./index83.js";
9
+ import { createPopperScope as _, Root as U, Anchor as x, Content as V, Arrow as W } from "./index91.js";
10
+ import { Portal as Z } from "./index92.js";
11
+ import { Presence as w } from "./index93.js";
12
+ import { Primitive as E } from "./index82.js";
13
+ import { createSlot as q } from "./index98.js";
14
+ import { useControllableState as z } from "./index81.js";
15
+ import { hideOthers as B } from "./index99.js";
16
+ import J from "./index100.js";
17
+ import { jsx as p } from "react/jsx-runtime";
18
+ var C = "Popover", [b] = G(C, [
19
+ _
20
+ ]), m = _(), [Q, f] = b(C), F = (o) => {
21
+ const {
22
+ __scopePopover: n,
23
+ children: t,
24
+ open: a,
25
+ defaultOpen: e,
26
+ onOpenChange: r,
27
+ modal: s = !1
28
+ } = o, c = m(n), u = i.useRef(null), [l, g] = i.useState(!1), [h, d] = z({
29
+ prop: a,
30
+ defaultProp: e ?? !1,
31
+ onChange: r,
32
+ caller: C
12
33
  });
13
- return /* @__PURE__ */ c(
14
- b.button,
34
+ return /* @__PURE__ */ p(U, { ...c, children: /* @__PURE__ */ p(
35
+ Q,
15
36
  {
16
- type: "button",
17
- "aria-pressed": o,
18
- "data-state": o ? "on" : "off",
19
- "data-disabled": e.disabled ? "" : void 0,
20
- ...l,
21
- ref: a,
22
- onClick: m(e.onClick, () => {
23
- e.disabled || n(!o);
24
- })
37
+ scope: n,
38
+ contentId: j(),
39
+ triggerRef: u,
40
+ open: h,
41
+ onOpenChange: d,
42
+ onOpenToggle: i.useCallback(() => d((R) => !R), [d]),
43
+ hasCustomAnchor: l,
44
+ onCustomAnchorAdd: i.useCallback(() => g(!0), []),
45
+ onCustomAnchorRemove: i.useCallback(() => g(!1), []),
46
+ modal: s,
47
+ children: t
25
48
  }
26
- );
27
- });
28
- t.displayName = r;
29
- var C = t;
49
+ ) });
50
+ };
51
+ F.displayName = C;
52
+ var N = "PopoverAnchor", S = i.forwardRef(
53
+ (o, n) => {
54
+ const { __scopePopover: t, ...a } = o, e = f(N, t), r = m(t), { onCustomAnchorAdd: s, onCustomAnchorRemove: c } = e;
55
+ return i.useEffect(() => (s(), () => c()), [s, c]), /* @__PURE__ */ p(x, { ...r, ...a, ref: n });
56
+ }
57
+ );
58
+ S.displayName = N;
59
+ var y = "PopoverTrigger", D = i.forwardRef(
60
+ (o, n) => {
61
+ const { __scopePopover: t, ...a } = o, e = f(y, t), r = m(t), s = O(n, e.triggerRef), c = /* @__PURE__ */ p(
62
+ E.button,
63
+ {
64
+ type: "button",
65
+ "aria-haspopup": "dialog",
66
+ "aria-expanded": e.open,
67
+ "aria-controls": e.contentId,
68
+ "data-state": L(e.open),
69
+ ...a,
70
+ ref: s,
71
+ onClick: P(o.onClick, e.onOpenToggle)
72
+ }
73
+ );
74
+ return e.hasCustomAnchor ? c : /* @__PURE__ */ p(x, { asChild: !0, ...r, children: c });
75
+ }
76
+ );
77
+ D.displayName = y;
78
+ var A = "PopoverPortal", [X, Y] = b(A, {
79
+ forceMount: void 0
80
+ }), M = (o) => {
81
+ const { __scopePopover: n, forceMount: t, children: a, container: e } = o, r = f(A, n);
82
+ return /* @__PURE__ */ p(X, { scope: n, forceMount: t, children: /* @__PURE__ */ p(w, { present: t || r.open, children: /* @__PURE__ */ p(Z, { asChild: !0, container: e, children: a }) }) });
83
+ };
84
+ M.displayName = A;
85
+ var v = "PopoverContent", k = i.forwardRef(
86
+ (o, n) => {
87
+ const t = Y(v, o.__scopePopover), { forceMount: a = t.forceMount, ...e } = o, r = f(v, o.__scopePopover);
88
+ return /* @__PURE__ */ p(w, { present: a || r.open, children: r.modal ? /* @__PURE__ */ p(eo, { ...e, ref: n }) : /* @__PURE__ */ p(ro, { ...e, ref: n }) });
89
+ }
90
+ );
91
+ k.displayName = v;
92
+ var oo = q("PopoverContent.RemoveScroll"), eo = i.forwardRef(
93
+ (o, n) => {
94
+ const t = f(v, o.__scopePopover), a = i.useRef(null), e = O(n, a), r = i.useRef(!1);
95
+ return i.useEffect(() => {
96
+ const s = a.current;
97
+ if (s) return B(s);
98
+ }, []), /* @__PURE__ */ p(J, { as: oo, allowPinchZoom: !0, children: /* @__PURE__ */ p(
99
+ I,
100
+ {
101
+ ...o,
102
+ ref: e,
103
+ trapFocus: t.open,
104
+ disableOutsidePointerEvents: !0,
105
+ onCloseAutoFocus: P(o.onCloseAutoFocus, (s) => {
106
+ var c;
107
+ s.preventDefault(), r.current || (c = t.triggerRef.current) == null || c.focus();
108
+ }),
109
+ onPointerDownOutside: P(
110
+ o.onPointerDownOutside,
111
+ (s) => {
112
+ const c = s.detail.originalEvent, u = c.button === 0 && c.ctrlKey === !0, l = c.button === 2 || u;
113
+ r.current = l;
114
+ },
115
+ { checkForDefaultPrevented: !1 }
116
+ ),
117
+ onFocusOutside: P(
118
+ o.onFocusOutside,
119
+ (s) => s.preventDefault(),
120
+ { checkForDefaultPrevented: !1 }
121
+ )
122
+ }
123
+ ) });
124
+ }
125
+ ), ro = i.forwardRef(
126
+ (o, n) => {
127
+ const t = f(v, o.__scopePopover), a = i.useRef(!1), e = i.useRef(!1);
128
+ return /* @__PURE__ */ p(
129
+ I,
130
+ {
131
+ ...o,
132
+ ref: n,
133
+ trapFocus: !1,
134
+ disableOutsidePointerEvents: !1,
135
+ onCloseAutoFocus: (r) => {
136
+ var s, c;
137
+ (s = o.onCloseAutoFocus) == null || s.call(o, r), r.defaultPrevented || (a.current || (c = t.triggerRef.current) == null || c.focus(), r.preventDefault()), a.current = !1, e.current = !1;
138
+ },
139
+ onInteractOutside: (r) => {
140
+ var u, l;
141
+ (u = o.onInteractOutside) == null || u.call(o, r), r.defaultPrevented || (a.current = !0, r.detail.originalEvent.type === "pointerdown" && (e.current = !0));
142
+ const s = r.target;
143
+ ((l = t.triggerRef.current) == null ? void 0 : l.contains(s)) && r.preventDefault(), r.detail.originalEvent.type === "focusin" && e.current && r.preventDefault();
144
+ }
145
+ }
146
+ );
147
+ }
148
+ ), I = i.forwardRef(
149
+ (o, n) => {
150
+ const {
151
+ __scopePopover: t,
152
+ trapFocus: a,
153
+ onOpenAutoFocus: e,
154
+ onCloseAutoFocus: r,
155
+ disableOutsidePointerEvents: s,
156
+ onEscapeKeyDown: c,
157
+ onPointerDownOutside: u,
158
+ onFocusOutside: l,
159
+ onInteractOutside: g,
160
+ ...h
161
+ } = o, d = f(v, t), R = m(t);
162
+ return K(), /* @__PURE__ */ p(
163
+ $,
164
+ {
165
+ asChild: !0,
166
+ loop: !0,
167
+ trapped: a,
168
+ onMountAutoFocus: e,
169
+ onUnmountAutoFocus: r,
170
+ children: /* @__PURE__ */ p(
171
+ H,
172
+ {
173
+ asChild: !0,
174
+ disableOutsidePointerEvents: s,
175
+ onInteractOutside: g,
176
+ onEscapeKeyDown: c,
177
+ onPointerDownOutside: u,
178
+ onFocusOutside: l,
179
+ onDismiss: () => d.onOpenChange(!1),
180
+ children: /* @__PURE__ */ p(
181
+ V,
182
+ {
183
+ "data-state": L(d.open),
184
+ role: "dialog",
185
+ id: d.contentId,
186
+ ...R,
187
+ ...h,
188
+ ref: n,
189
+ style: {
190
+ ...h.style,
191
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
192
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
193
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
194
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
195
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
196
+ }
197
+ }
198
+ )
199
+ }
200
+ )
201
+ }
202
+ );
203
+ }
204
+ ), T = "PopoverClose", to = i.forwardRef(
205
+ (o, n) => {
206
+ const { __scopePopover: t, ...a } = o, e = f(T, t);
207
+ return /* @__PURE__ */ p(
208
+ E.button,
209
+ {
210
+ type: "button",
211
+ ...a,
212
+ ref: n,
213
+ onClick: P(o.onClick, () => e.onOpenChange(!1))
214
+ }
215
+ );
216
+ }
217
+ );
218
+ to.displayName = T;
219
+ var no = "PopoverArrow", ao = i.forwardRef(
220
+ (o, n) => {
221
+ const { __scopePopover: t, ...a } = o, e = m(t);
222
+ return /* @__PURE__ */ p(W, { ...e, ...a, ref: n });
223
+ }
224
+ );
225
+ ao.displayName = no;
226
+ function L(o) {
227
+ return o ? "open" : "closed";
228
+ }
229
+ var _o = F, xo = S, wo = D, Eo = M, bo = k;
30
230
  export {
31
- C as Root,
32
- t as Toggle
231
+ xo as Anchor,
232
+ bo as Content,
233
+ F as Popover,
234
+ S as PopoverAnchor,
235
+ ao as PopoverArrow,
236
+ to as PopoverClose,
237
+ k as PopoverContent,
238
+ M as PopoverPortal,
239
+ D as PopoverTrigger,
240
+ Eo as Portal,
241
+ _o as Root,
242
+ wo as Trigger
33
243
  };
package/dist/index52.js CHANGED
@@ -1,75 +1,338 @@
1
- import * as i from "react";
2
- import { createContextScope as C } from "./index98.js";
3
- import { useCallbackRef as h } from "./index99.js";
4
- import { useLayoutEffect as f } from "./index100.js";
5
- import { Primitive as m } from "./index101.js";
6
- import { useIsHydrated as _ } from "./index102.js";
7
- import { jsx as l } from "react/jsx-runtime";
8
- var v = "Avatar", [y] = C(v), [x, A] = y(v), L = i.forwardRef(
9
- (t, e) => {
10
- const { __scopeAvatar: o, ...r } = t, [n, a] = i.useState("idle");
11
- return /* @__PURE__ */ l(
12
- x,
1
+ import * as s from "react";
2
+ import { composeEventHandlers as g } from "./index78.js";
3
+ import { useComposedRefs as N } from "./index77.js";
4
+ import { createContextScope as K } from "./index76.js";
5
+ import { DismissableLayer as W } from "./index90.js";
6
+ import { useId as $ } from "./index83.js";
7
+ import { createPopperScope as S, Root as z, Anchor as J, Content as Q, Arrow as Z } from "./index91.js";
8
+ import { Portal as ee } from "./index92.js";
9
+ import { Presence as G } from "./index93.js";
10
+ import { Primitive as te } from "./index82.js";
11
+ import { createSlottable as oe } from "./index94.js";
12
+ import { useControllableState as re } from "./index81.js";
13
+ import { Root as ne } from "./index95.js";
14
+ import { jsx as f, jsxs as se } from "react/jsx-runtime";
15
+ var [D] = K("Tooltip", [
16
+ S
17
+ ]), O = S(), j = "TooltipProvider", ie = 700, L = "tooltip.open", [ae, k] = D(j), F = (t) => {
18
+ const {
19
+ __scopeTooltip: o,
20
+ delayDuration: e = ie,
21
+ skipDelayDuration: r = 300,
22
+ disableHoverableContent: n = !1,
23
+ children: a
24
+ } = t, l = s.useRef(!0), v = s.useRef(!1), i = s.useRef(0);
25
+ return s.useEffect(() => {
26
+ const p = i.current;
27
+ return () => window.clearTimeout(p);
28
+ }, []), /* @__PURE__ */ f(
29
+ ae,
30
+ {
31
+ scope: o,
32
+ isOpenDelayedRef: l,
33
+ delayDuration: e,
34
+ onOpen: s.useCallback(() => {
35
+ window.clearTimeout(i.current), l.current = !1;
36
+ }, []),
37
+ onClose: s.useCallback(() => {
38
+ window.clearTimeout(i.current), i.current = window.setTimeout(
39
+ () => l.current = !0,
40
+ r
41
+ );
42
+ }, [r]),
43
+ isPointerInTransitRef: v,
44
+ onPointerInTransitChange: s.useCallback((p) => {
45
+ v.current = p;
46
+ }, []),
47
+ disableHoverableContent: n,
48
+ children: a
49
+ }
50
+ );
51
+ };
52
+ F.displayName = j;
53
+ var R = "Tooltip", [le, _] = D(R), B = (t) => {
54
+ const {
55
+ __scopeTooltip: o,
56
+ children: e,
57
+ open: r,
58
+ defaultOpen: n,
59
+ onOpenChange: a,
60
+ disableHoverableContent: l,
61
+ delayDuration: v
62
+ } = t, i = k(R, t.__scopeTooltip), p = O(o), [c, d] = s.useState(null), h = $(), u = s.useRef(0), m = l ?? i.disableHoverableContent, y = v ?? i.delayDuration, T = s.useRef(!1), [x, C] = re({
63
+ prop: r,
64
+ defaultProp: n ?? !1,
65
+ onChange: (H) => {
66
+ H ? (i.onOpen(), document.dispatchEvent(new CustomEvent(L))) : i.onClose(), a == null || a(H);
67
+ },
68
+ caller: R
69
+ }), w = s.useMemo(() => x ? T.current ? "delayed-open" : "instant-open" : "closed", [x]), P = s.useCallback(() => {
70
+ window.clearTimeout(u.current), u.current = 0, T.current = !1, C(!0);
71
+ }, [C]), E = s.useCallback(() => {
72
+ window.clearTimeout(u.current), u.current = 0, C(!1);
73
+ }, [C]), I = s.useCallback(() => {
74
+ window.clearTimeout(u.current), u.current = window.setTimeout(() => {
75
+ T.current = !0, C(!0), u.current = 0;
76
+ }, y);
77
+ }, [y, C]);
78
+ return s.useEffect(() => () => {
79
+ u.current && (window.clearTimeout(u.current), u.current = 0);
80
+ }, []), /* @__PURE__ */ f(z, { ...p, children: /* @__PURE__ */ f(
81
+ le,
82
+ {
83
+ scope: o,
84
+ contentId: h,
85
+ open: x,
86
+ stateAttribute: w,
87
+ trigger: c,
88
+ onTriggerChange: d,
89
+ onTriggerEnter: s.useCallback(() => {
90
+ i.isOpenDelayedRef.current ? I() : P();
91
+ }, [i.isOpenDelayedRef, I, P]),
92
+ onTriggerLeave: s.useCallback(() => {
93
+ m ? E() : (window.clearTimeout(u.current), u.current = 0);
94
+ }, [E, m]),
95
+ onOpen: P,
96
+ onClose: E,
97
+ disableHoverableContent: m,
98
+ children: e
99
+ }
100
+ ) });
101
+ };
102
+ B.displayName = R;
103
+ var A = "TooltipTrigger", U = s.forwardRef(
104
+ (t, o) => {
105
+ const { __scopeTooltip: e, ...r } = t, n = _(A, e), a = k(A, e), l = O(e), v = s.useRef(null), i = N(o, v, n.onTriggerChange), p = s.useRef(!1), c = s.useRef(!1), d = s.useCallback(() => p.current = !1, []);
106
+ return s.useEffect(() => () => document.removeEventListener("pointerup", d), [d]), /* @__PURE__ */ f(J, { asChild: !0, ...l, children: /* @__PURE__ */ f(
107
+ te.button,
13
108
  {
14
- scope: o,
15
- imageLoadingStatus: n,
16
- onImageLoadingStatusChange: a,
17
- children: /* @__PURE__ */ l(m.span, { ...r, ref: e })
109
+ "aria-describedby": n.open ? n.contentId : void 0,
110
+ "data-state": n.stateAttribute,
111
+ ...r,
112
+ ref: i,
113
+ onPointerMove: g(t.onPointerMove, (h) => {
114
+ h.pointerType !== "touch" && !c.current && !a.isPointerInTransitRef.current && (n.onTriggerEnter(), c.current = !0);
115
+ }),
116
+ onPointerLeave: g(t.onPointerLeave, () => {
117
+ n.onTriggerLeave(), c.current = !1;
118
+ }),
119
+ onPointerDown: g(t.onPointerDown, () => {
120
+ n.open && n.onClose(), p.current = !0, document.addEventListener("pointerup", d, { once: !0 });
121
+ }),
122
+ onFocus: g(t.onFocus, () => {
123
+ p.current || n.onOpen();
124
+ }),
125
+ onBlur: g(t.onBlur, n.onClose),
126
+ onClick: g(t.onClick, n.onClose)
18
127
  }
19
- );
128
+ ) });
20
129
  }
21
130
  );
22
- L.displayName = v;
23
- var S = "AvatarImage", E = i.forwardRef(
24
- (t, e) => {
25
- const { __scopeAvatar: o, src: r, onLoadingStatusChange: n = () => {
26
- }, ...a } = t, u = A(S, o), s = N(r, a), d = h((c) => {
27
- n(c), u.onImageLoadingStatusChange(c);
28
- });
29
- return f(() => {
30
- s !== "idle" && d(s);
31
- }, [s, d]), s === "loaded" ? /* @__PURE__ */ l(m.img, { ...a, ref: e, src: r }) : null;
131
+ U.displayName = A;
132
+ var M = "TooltipPortal", [ce, ue] = D(M, {
133
+ forceMount: void 0
134
+ }), V = (t) => {
135
+ const { __scopeTooltip: o, forceMount: e, children: r, container: n } = t, a = _(M, o);
136
+ return /* @__PURE__ */ f(ce, { scope: o, forceMount: e, children: /* @__PURE__ */ f(G, { present: e || a.open, children: /* @__PURE__ */ f(ee, { asChild: !0, container: n, children: r }) }) });
137
+ };
138
+ V.displayName = M;
139
+ var b = "TooltipContent", Y = s.forwardRef(
140
+ (t, o) => {
141
+ const e = ue(b, t.__scopeTooltip), { forceMount: r = e.forceMount, side: n = "top", ...a } = t, l = _(b, t.__scopeTooltip);
142
+ return /* @__PURE__ */ f(G, { present: r || l.open, children: l.disableHoverableContent ? /* @__PURE__ */ f(q, { side: n, ...a, ref: o }) : /* @__PURE__ */ f(pe, { side: n, ...a, ref: o }) });
32
143
  }
33
- );
34
- E.displayName = S;
35
- var I = "AvatarFallback", R = i.forwardRef(
36
- (t, e) => {
37
- const { __scopeAvatar: o, delayMs: r, ...n } = t, a = A(I, o), [u, s] = i.useState(r === void 0);
38
- return i.useEffect(() => {
39
- if (r !== void 0) {
40
- const d = window.setTimeout(() => s(!0), r);
41
- return () => window.clearTimeout(d);
144
+ ), pe = s.forwardRef((t, o) => {
145
+ const e = _(b, t.__scopeTooltip), r = k(b, t.__scopeTooltip), n = s.useRef(null), a = N(o, n), [l, v] = s.useState(null), { trigger: i, onClose: p } = e, c = n.current, { onPointerInTransitChange: d } = r, h = s.useCallback(() => {
146
+ v(null), d(!1);
147
+ }, [d]), u = s.useCallback(
148
+ (m, y) => {
149
+ const T = m.currentTarget, x = { x: m.clientX, y: m.clientY }, C = me(x, T.getBoundingClientRect()), w = Te(x, C), P = ye(y.getBoundingClientRect()), E = xe([...w, ...P]);
150
+ v(E), d(!0);
151
+ },
152
+ [d]
153
+ );
154
+ return s.useEffect(() => () => h(), [h]), s.useEffect(() => {
155
+ if (i && c) {
156
+ const m = (T) => u(T, c), y = (T) => u(T, i);
157
+ return i.addEventListener("pointerleave", m), c.addEventListener("pointerleave", y), () => {
158
+ i.removeEventListener("pointerleave", m), c.removeEventListener("pointerleave", y);
159
+ };
160
+ }
161
+ }, [i, c, u, h]), s.useEffect(() => {
162
+ if (l) {
163
+ const m = (y) => {
164
+ const T = y.target, x = { x: y.clientX, y: y.clientY }, C = (i == null ? void 0 : i.contains(T)) || (c == null ? void 0 : c.contains(T)), w = !Ce(x, l);
165
+ C ? h() : w && (h(), p());
166
+ };
167
+ return document.addEventListener("pointermove", m), () => document.removeEventListener("pointermove", m);
168
+ }
169
+ }, [i, c, l, p, h]), /* @__PURE__ */ f(q, { ...t, ref: a });
170
+ }), [de, fe] = D(R, { isInside: !1 }), ve = oe("TooltipContent"), q = s.forwardRef(
171
+ (t, o) => {
172
+ const {
173
+ __scopeTooltip: e,
174
+ children: r,
175
+ "aria-label": n,
176
+ onEscapeKeyDown: a,
177
+ onPointerDownOutside: l,
178
+ ...v
179
+ } = t, i = _(b, e), p = O(e), { onClose: c } = i;
180
+ return s.useEffect(() => (document.addEventListener(L, c), () => document.removeEventListener(L, c)), [c]), s.useEffect(() => {
181
+ if (i.trigger) {
182
+ const d = (h) => {
183
+ const u = h.target;
184
+ u != null && u.contains(i.trigger) && c();
185
+ };
186
+ return window.addEventListener("scroll", d, { capture: !0 }), () => window.removeEventListener("scroll", d, { capture: !0 });
187
+ }
188
+ }, [i.trigger, c]), /* @__PURE__ */ f(
189
+ W,
190
+ {
191
+ asChild: !0,
192
+ disableOutsidePointerEvents: !1,
193
+ onEscapeKeyDown: a,
194
+ onPointerDownOutside: l,
195
+ onFocusOutside: (d) => d.preventDefault(),
196
+ onDismiss: c,
197
+ children: /* @__PURE__ */ se(
198
+ Q,
199
+ {
200
+ "data-state": i.stateAttribute,
201
+ ...p,
202
+ ...v,
203
+ ref: o,
204
+ style: {
205
+ ...v.style,
206
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
207
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
208
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
209
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
210
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
211
+ },
212
+ children: [
213
+ /* @__PURE__ */ f(ve, { children: r }),
214
+ /* @__PURE__ */ f(de, { scope: e, isInside: !0, children: /* @__PURE__ */ f(ne, { id: i.contentId, role: "tooltip", children: n || r }) })
215
+ ]
216
+ }
217
+ )
42
218
  }
43
- }, [r]), u && a.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ l(m.span, { ...n, ref: e }) : null;
219
+ );
220
+ }
221
+ );
222
+ Y.displayName = b;
223
+ var X = "TooltipArrow", he = s.forwardRef(
224
+ (t, o) => {
225
+ const { __scopeTooltip: e, ...r } = t, n = O(e);
226
+ return fe(
227
+ X,
228
+ e
229
+ ).isInside ? null : /* @__PURE__ */ f(Z, { ...n, ...r, ref: o });
44
230
  }
45
231
  );
46
- R.displayName = I;
47
- function p(t, e) {
48
- return t ? e ? (t.src !== e && (t.src = e), t.complete && t.naturalWidth > 0 ? "loaded" : "loading") : "error" : "idle";
232
+ he.displayName = X;
233
+ function me(t, o) {
234
+ const e = Math.abs(o.top - t.y), r = Math.abs(o.bottom - t.y), n = Math.abs(o.right - t.x), a = Math.abs(o.left - t.x);
235
+ switch (Math.min(e, r, n, a)) {
236
+ case a:
237
+ return "left";
238
+ case n:
239
+ return "right";
240
+ case e:
241
+ return "top";
242
+ case r:
243
+ return "bottom";
244
+ default:
245
+ throw new Error("unreachable");
246
+ }
49
247
  }
50
- function N(t, { referrerPolicy: e, crossOrigin: o }) {
51
- const r = _(), n = i.useRef(null), a = r ? (n.current || (n.current = new window.Image()), n.current) : null, [u, s] = i.useState(
52
- () => p(a, t)
53
- );
54
- return f(() => {
55
- s(p(a, t));
56
- }, [a, t]), f(() => {
57
- const d = (w) => () => {
58
- s(w);
59
- };
60
- if (!a) return;
61
- const c = d("loaded"), g = d("error");
62
- return a.addEventListener("load", c), a.addEventListener("error", g), e && (a.referrerPolicy = e), typeof o == "string" && (a.crossOrigin = o), () => {
63
- a.removeEventListener("load", c), a.removeEventListener("error", g);
64
- };
65
- }, [a, o, e]), u;
248
+ function Te(t, o, e = 5) {
249
+ const r = [];
250
+ switch (o) {
251
+ case "top":
252
+ r.push(
253
+ { x: t.x - e, y: t.y + e },
254
+ { x: t.x + e, y: t.y + e }
255
+ );
256
+ break;
257
+ case "bottom":
258
+ r.push(
259
+ { x: t.x - e, y: t.y - e },
260
+ { x: t.x + e, y: t.y - e }
261
+ );
262
+ break;
263
+ case "left":
264
+ r.push(
265
+ { x: t.x + e, y: t.y - e },
266
+ { x: t.x + e, y: t.y + e }
267
+ );
268
+ break;
269
+ case "right":
270
+ r.push(
271
+ { x: t.x - e, y: t.y - e },
272
+ { x: t.x - e, y: t.y + e }
273
+ );
274
+ break;
275
+ }
276
+ return r;
277
+ }
278
+ function ye(t) {
279
+ const { top: o, right: e, bottom: r, left: n } = t;
280
+ return [
281
+ { x: n, y: o },
282
+ { x: e, y: o },
283
+ { x: e, y: r },
284
+ { x: n, y: r }
285
+ ];
286
+ }
287
+ function Ce(t, o) {
288
+ const { x: e, y: r } = t;
289
+ let n = !1;
290
+ for (let a = 0, l = o.length - 1; a < o.length; l = a++) {
291
+ const v = o[a], i = o[l], p = v.x, c = v.y, d = i.x, h = i.y;
292
+ c > r != h > r && e < (d - p) * (r - c) / (h - c) + p && (n = !n);
293
+ }
294
+ return n;
295
+ }
296
+ function xe(t) {
297
+ const o = t.slice();
298
+ return o.sort((e, r) => e.x < r.x ? -1 : e.x > r.x ? 1 : e.y < r.y ? -1 : e.y > r.y ? 1 : 0), ge(o);
299
+ }
300
+ function ge(t) {
301
+ if (t.length <= 1) return t.slice();
302
+ const o = [];
303
+ for (let r = 0; r < t.length; r++) {
304
+ const n = t[r];
305
+ for (; o.length >= 2; ) {
306
+ const a = o[o.length - 1], l = o[o.length - 2];
307
+ if ((a.x - l.x) * (n.y - l.y) >= (a.y - l.y) * (n.x - l.x)) o.pop();
308
+ else break;
309
+ }
310
+ o.push(n);
311
+ }
312
+ o.pop();
313
+ const e = [];
314
+ for (let r = t.length - 1; r >= 0; r--) {
315
+ const n = t[r];
316
+ for (; e.length >= 2; ) {
317
+ const a = e[e.length - 1], l = e[e.length - 2];
318
+ if ((a.x - l.x) * (n.y - l.y) >= (a.y - l.y) * (n.x - l.x)) e.pop();
319
+ else break;
320
+ }
321
+ e.push(n);
322
+ }
323
+ return e.pop(), o.length === 1 && e.length === 1 && o[0].x === e[0].x && o[0].y === e[0].y ? o : o.concat(e);
66
324
  }
67
- var H = L, j = E, B = R;
325
+ var He = F, Ne = B, Se = U, Ge = V, je = Y;
68
326
  export {
69
- L as Avatar,
70
- R as AvatarFallback,
71
- E as AvatarImage,
72
- B as Fallback,
73
- j as Image,
74
- H as Root
327
+ je as Content,
328
+ Ge as Portal,
329
+ He as Provider,
330
+ Ne as Root,
331
+ B as Tooltip,
332
+ he as TooltipArrow,
333
+ Y as TooltipContent,
334
+ V as TooltipPortal,
335
+ F as TooltipProvider,
336
+ U as TooltipTrigger,
337
+ Se as Trigger
75
338
  };