@drjoshcsimmons/scl 0.1.7 → 0.1.9

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 (128) hide show
  1. package/dist/index100.js +14 -30
  2. package/dist/index101.js +44 -646
  3. package/dist/index102.js +48 -179
  4. package/dist/index103.js +9 -25
  5. package/dist/index104.js +3 -14
  6. package/dist/index105.js +48 -6
  7. package/dist/index106.js +30 -12
  8. package/dist/index107.js +48 -21
  9. package/dist/index108.js +30 -9
  10. package/dist/index109.js +179 -36
  11. package/dist/index11.js +2 -2
  12. package/dist/index110.js +9 -18
  13. package/dist/index111.js +642 -198
  14. package/dist/index112.js +30 -22
  15. package/dist/index113.js +40 -392
  16. package/dist/index114.js +48 -2
  17. package/dist/index115.js +6 -53
  18. package/dist/index116.js +18 -62
  19. package/dist/index117.js +9 -25
  20. package/dist/index118.js +38 -29
  21. package/dist/index119.js +18 -5
  22. package/dist/index12.js +1 -1
  23. package/dist/index120.js +12 -2
  24. package/dist/index121.js +206 -2
  25. package/dist/index122.js +22 -5
  26. package/dist/index123.js +400 -3
  27. package/dist/index124.js +45 -21
  28. package/dist/index125.js +2 -113
  29. package/dist/index126.js +52 -15
  30. package/dist/index127.js +58 -518
  31. package/dist/index128.js +2 -128
  32. package/dist/index129.js +2 -134
  33. package/dist/index13.js +2 -2
  34. package/dist/index130.js +22 -62
  35. package/dist/index131.js +28 -68
  36. package/dist/index132.js +5 -9
  37. package/dist/index133.js +5 -14
  38. package/dist/index134.js +3 -66
  39. package/dist/index135.js +23 -3
  40. package/dist/index136.js +110 -20
  41. package/dist/index137.js +15 -12
  42. package/dist/index138.js +519 -22
  43. package/dist/index139.js +127 -4
  44. package/dist/index14.js +2 -2
  45. package/dist/index140.js +133 -22
  46. package/dist/index141.js +67 -0
  47. package/dist/index142.js +71 -0
  48. package/dist/index143.js +11 -0
  49. package/dist/index144.js +16 -0
  50. package/dist/index145.js +68 -0
  51. package/dist/index146.js +6 -0
  52. package/dist/index147.js +25 -0
  53. package/dist/index148.js +25 -0
  54. package/dist/index149.js +15 -0
  55. package/dist/index15.js +2 -2
  56. package/dist/index150.js +30 -0
  57. package/dist/index151.js +7 -0
  58. package/dist/index17.js +4 -4
  59. package/dist/index18.js +2 -2
  60. package/dist/index20.js +2 -2
  61. package/dist/index21.js +1 -1
  62. package/dist/index22.js +1 -1
  63. package/dist/index23.js +2 -2
  64. package/dist/index24.js +1 -1
  65. package/dist/index25.js +4 -4
  66. package/dist/index26.js +1 -1
  67. package/dist/index27.js +3 -3
  68. package/dist/index29.js +1 -1
  69. package/dist/index31.js +1 -1
  70. package/dist/index33.js +1 -1
  71. package/dist/index36.js +2 -2
  72. package/dist/index37.js +1 -1
  73. package/dist/index4.js +2 -2
  74. package/dist/index45.js +237 -33
  75. package/dist/index46.js +11 -237
  76. package/dist/index47.js +33 -11
  77. package/dist/index48.js +5 -5
  78. package/dist/index49.js +2 -2
  79. package/dist/index5.js +1 -1
  80. package/dist/index50.js +244 -55
  81. package/dist/index51.js +9 -260
  82. package/dist/index52.js +310 -12
  83. package/dist/index53.js +5 -5
  84. package/dist/index54.js +60 -9
  85. package/dist/index55.js +12 -860
  86. package/dist/index56.js +118 -9
  87. package/dist/index57.js +72 -215
  88. package/dist/index58.js +241 -11
  89. package/dist/index59.js +860 -11
  90. package/dist/index60.js +9 -118
  91. package/dist/index61.js +252 -20
  92. package/dist/index62.js +254 -248
  93. package/dist/index63.js +12 -236
  94. package/dist/index64.js +403 -129
  95. package/dist/index65.js +16 -433
  96. package/dist/index66.js +119 -325
  97. package/dist/index67.js +530 -18
  98. package/dist/index68.js +206 -511
  99. package/dist/index69.js +11 -249
  100. package/dist/index70.js +11 -130
  101. package/dist/index71.js +235 -30
  102. package/dist/index72.js +311 -216
  103. package/dist/index73.js +31 -82
  104. package/dist/index74.js +153 -302
  105. package/dist/index75.js +22 -12
  106. package/dist/index77.js +1 -1
  107. package/dist/index8.js +1 -1
  108. package/dist/index80.js +1 -1
  109. package/dist/index81.js +1 -1
  110. package/dist/index82.js +1 -1
  111. package/dist/index84.js +8 -54
  112. package/dist/index85.js +54 -10
  113. package/dist/index86.js +11 -4
  114. package/dist/index87.js +4 -30
  115. package/dist/index88.js +30 -13
  116. package/dist/index89.js +12 -53
  117. package/dist/index9.js +2 -2
  118. package/dist/index90.js +5 -124
  119. package/dist/index91.js +24 -134
  120. package/dist/index92.js +69 -14
  121. package/dist/index93.js +12 -66
  122. package/dist/index94.js +52 -12
  123. package/dist/index95.js +30 -9
  124. package/dist/index96.js +122 -47
  125. package/dist/index97.js +14 -3
  126. package/dist/index98.js +128 -212
  127. package/dist/index99.js +218 -5
  128. package/package.json +12 -11
package/dist/index98.js CHANGED
@@ -1,221 +1,137 @@
1
- import * as p from "react";
2
- import { useFloating as xe, offset as Pe, shift as ye, flip as Ae, size as ve, arrow as Ce, hide as be, limitShift as Se } from "./index111.js";
3
- import { Root as Oe } from "./index112.js";
4
- import { useComposedRefs as j } from "./index78.js";
5
- import { createContextScope as Re } from "./index76.js";
6
- import { Primitive as z } from "./index81.js";
7
- import { useCallbackRef as Ee } from "./index85.js";
8
- import { useLayoutEffect as T } from "./index86.js";
9
- import { useSize as Ne } from "./index103.js";
10
- import { jsx as f } from "react/jsx-runtime";
11
- import { autoUpdate as _e } from "./index113.js";
12
- var N = "Popper", [L, Ue] = Re(N), [$e, Z] = L(N), U = (e) => {
13
- const { __scopePopper: s, children: a } = e, [t, i] = p.useState(null);
14
- return /* @__PURE__ */ f($e, { scope: s, anchor: t, onAnchorChange: i, children: a });
15
- };
16
- U.displayName = N;
17
- var q = "PopperAnchor", G = p.forwardRef(
18
- (e, s) => {
19
- const { __scopePopper: a, virtualRef: t, ...i } = e, r = Z(q, a), o = p.useRef(null), w = j(s, o), n = p.useRef(null);
20
- return p.useEffect(() => {
21
- const c = n.current;
22
- n.current = (t == null ? void 0 : t.current) || o.current, c !== n.current && r.onAnchorChange(n.current);
23
- }), t ? null : /* @__PURE__ */ f(z.div, { ...i, ref: w });
24
- }
25
- );
26
- G.displayName = q;
27
- var _ = "PopperContent", [He, We] = L(_), J = p.forwardRef(
28
- (e, s) => {
29
- var Y, M, X, D, F, k;
30
- const {
31
- __scopePopper: a,
32
- side: t = "bottom",
33
- sideOffset: i = 0,
34
- align: r = "center",
35
- alignOffset: o = 0,
36
- arrowPadding: w = 0,
37
- avoidCollisions: n = !0,
38
- collisionBoundary: c = [],
39
- collisionPadding: x = 0,
40
- sticky: m = "partial",
41
- hideWhenDetached: y = !1,
42
- updatePositionStrategy: A = "optimized",
43
- onPlaced: l,
44
- ...d
45
- } = e, v = Z(_, a), [h, C] = p.useState(null), ee = j(s, (P) => C(P)), [E, te] = p.useState(null), u = Ne(E), re = (u == null ? void 0 : u.width) ?? 0, $ = (u == null ? void 0 : u.height) ?? 0, oe = t + (r !== "center" ? "-" + r : ""), ne = typeof x == "number" ? x : { top: 0, right: 0, bottom: 0, left: 0, ...x }, H = Array.isArray(c) ? c : [c], ae = H.length > 0, b = {
46
- padding: ne,
47
- boundary: H.filter(Ye),
48
- // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
49
- altBoundary: ae
50
- }, { refs: ie, floatingStyles: W, placement: se, isPositioned: S, middlewareData: g } = xe({
51
- // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
52
- strategy: "fixed",
53
- placement: oe,
54
- whileElementsMounted: (...P) => _e(...P, {
55
- animationFrame: A === "always"
56
- }),
57
- elements: {
58
- reference: v.anchor
59
- },
60
- middleware: [
61
- Pe({ mainAxis: i + $, alignmentAxis: o }),
62
- n && ye({
63
- mainAxis: !0,
64
- crossAxis: !1,
65
- limiter: m === "partial" ? Se() : void 0,
66
- ...b
67
- }),
68
- n && Ae({ ...b }),
69
- ve({
70
- ...b,
71
- apply: ({ elements: P, rects: B, availableWidth: he, availableHeight: ue }) => {
72
- const { width: ge, height: we } = B.reference, R = P.floating.style;
73
- R.setProperty("--radix-popper-available-width", `${he}px`), R.setProperty("--radix-popper-available-height", `${ue}px`), R.setProperty("--radix-popper-anchor-width", `${ge}px`), R.setProperty("--radix-popper-anchor-height", `${we}px`);
74
- }
75
- }),
76
- E && Ce({ element: E, padding: w }),
77
- Me({ arrowWidth: re, arrowHeight: $ }),
78
- y && be({ strategy: "referenceHidden", ...b })
79
- ]
80
- }), [I, ce] = V(se), O = Ee(l);
81
- T(() => {
82
- S && (O == null || O());
83
- }, [S, O]);
84
- const pe = (Y = g.arrow) == null ? void 0 : Y.x, de = (M = g.arrow) == null ? void 0 : M.y, le = ((X = g.arrow) == null ? void 0 : X.centerOffset) !== 0, [fe, me] = p.useState();
85
- return T(() => {
86
- h && me(window.getComputedStyle(h).zIndex);
87
- }, [h]), /* @__PURE__ */ f(
88
- "div",
89
- {
90
- ref: ie.setFloating,
91
- "data-radix-popper-content-wrapper": "",
92
- style: {
93
- ...W,
94
- transform: S ? W.transform : "translate(0, -200%)",
95
- // keep off the page when measuring
96
- minWidth: "max-content",
97
- zIndex: fe,
98
- "--radix-popper-transform-origin": [
99
- (D = g.transformOrigin) == null ? void 0 : D.x,
100
- (F = g.transformOrigin) == null ? void 0 : F.y
101
- ].join(" "),
102
- // hide the content if using the hide middleware and should be hidden
103
- // set visibility to hidden and disable pointer events so the UI behaves
104
- // as if the PopperContent isn't there at all
105
- ...((k = g.hide) == null ? void 0 : k.referenceHidden) && {
106
- visibility: "hidden",
107
- pointerEvents: "none"
108
- }
109
- },
110
- dir: e.dir,
111
- children: /* @__PURE__ */ f(
112
- He,
113
- {
114
- scope: a,
115
- placedSide: I,
116
- onArrowChange: te,
117
- arrowX: pe,
118
- arrowY: de,
119
- shouldHideArrow: le,
120
- children: /* @__PURE__ */ f(
121
- z.div,
122
- {
123
- "data-side": I,
124
- "data-align": ce,
125
- ...d,
126
- ref: ee,
127
- style: {
128
- ...d.style,
129
- // if the PopperContent hasn't been placed yet (not all measurements done)
130
- // we prevent animations so that users's animation don't kick in too early referring wrong sides
131
- animation: S ? void 0 : "none"
132
- }
133
- }
134
- )
135
- }
136
- )
1
+ import * as d from "react";
2
+ import { useComposedRefs as R } from "./index78.js";
3
+ import { Primitive as M } from "./index81.js";
4
+ import { useCallbackRef as y } from "./index86.js";
5
+ import { jsx as _ } from "react/jsx-runtime";
6
+ var F = "focusScope.autoFocusOnMount", T = "focusScope.autoFocusOnUnmount", N = { bubbles: !1, cancelable: !0 }, K = "FocusScope", k = d.forwardRef((e, n) => {
7
+ const {
8
+ loop: t = !1,
9
+ trapped: u = !1,
10
+ onMountAutoFocus: p,
11
+ onUnmountAutoFocus: L,
12
+ ...g
13
+ } = e, [o, U] = d.useState(null), E = y(p), v = y(L), b = d.useRef(null), A = R(n, (s) => U(s)), a = d.useRef({
14
+ paused: !1,
15
+ pause() {
16
+ this.paused = !0;
17
+ },
18
+ resume() {
19
+ this.paused = !1;
20
+ }
21
+ }).current;
22
+ d.useEffect(() => {
23
+ if (u) {
24
+ let s = function(i) {
25
+ if (a.paused || !o) return;
26
+ const c = i.target;
27
+ o.contains(c) ? b.current = c : f(b.current, { select: !0 });
28
+ }, l = function(i) {
29
+ if (a.paused || !o) return;
30
+ const c = i.relatedTarget;
31
+ c !== null && (o.contains(c) || f(b.current, { select: !0 }));
32
+ }, r = function(i) {
33
+ if (document.activeElement === document.body)
34
+ for (const h of i)
35
+ h.removedNodes.length > 0 && f(o);
36
+ };
37
+ document.addEventListener("focusin", s), document.addEventListener("focusout", l);
38
+ const m = new MutationObserver(r);
39
+ return o && m.observe(o, { childList: !0, subtree: !0 }), () => {
40
+ document.removeEventListener("focusin", s), document.removeEventListener("focusout", l), m.disconnect();
41
+ };
42
+ }
43
+ }, [u, o, a.paused]), d.useEffect(() => {
44
+ if (o) {
45
+ S.add(a);
46
+ const s = document.activeElement;
47
+ if (!o.contains(s)) {
48
+ const r = new CustomEvent(F, N);
49
+ o.addEventListener(F, E), o.dispatchEvent(r), r.defaultPrevented || (w(W(I(o)), { select: !0 }), document.activeElement === s && f(o));
137
50
  }
138
- );
139
- }
140
- );
141
- J.displayName = _;
142
- var K = "PopperArrow", Ie = {
143
- top: "bottom",
144
- right: "left",
145
- bottom: "top",
146
- left: "right"
147
- }, Q = p.forwardRef(function(s, a) {
148
- const { __scopePopper: t, ...i } = s, r = We(K, t), o = Ie[r.placedSide];
149
- return (
150
- // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
151
- // doesn't report size as we'd expect on SVG elements.
152
- // it reports their bounding box which is effectively the largest path inside the SVG.
153
- /* @__PURE__ */ f(
154
- "span",
155
- {
156
- ref: r.onArrowChange,
157
- style: {
158
- position: "absolute",
159
- left: r.arrowX,
160
- top: r.arrowY,
161
- [o]: 0,
162
- transformOrigin: {
163
- top: "",
164
- right: "0 0",
165
- bottom: "center 0",
166
- left: "100% 0"
167
- }[r.placedSide],
168
- transform: {
169
- top: "translateY(100%)",
170
- right: "translateY(50%) rotate(90deg) translateX(-50%)",
171
- bottom: "rotate(180deg)",
172
- left: "translateY(50%) rotate(-90deg) translateX(50%)"
173
- }[r.placedSide],
174
- visibility: r.shouldHideArrow ? "hidden" : void 0
175
- },
176
- children: /* @__PURE__ */ f(
177
- Oe,
178
- {
179
- ...i,
180
- ref: a,
181
- style: {
182
- ...i.style,
183
- // ensures the element can be measured correctly (mostly for if SVG)
184
- display: "block"
185
- }
186
- }
187
- )
51
+ return () => {
52
+ o.removeEventListener(F, E), setTimeout(() => {
53
+ const r = new CustomEvent(T, N);
54
+ o.addEventListener(T, v), o.dispatchEvent(r), r.defaultPrevented || f(s ?? document.body, { select: !0 }), o.removeEventListener(T, v), S.remove(a);
55
+ }, 0);
56
+ };
57
+ }
58
+ }, [o, E, v, a]);
59
+ const P = d.useCallback(
60
+ (s) => {
61
+ if (!t && !u || a.paused) return;
62
+ const l = s.key === "Tab" && !s.altKey && !s.ctrlKey && !s.metaKey, r = document.activeElement;
63
+ if (l && r) {
64
+ const m = s.currentTarget, [i, c] = x(m);
65
+ i && c ? !s.shiftKey && r === c ? (s.preventDefault(), t && f(i, { select: !0 })) : s.shiftKey && r === i && (s.preventDefault(), t && f(c, { select: !0 })) : r === m && s.preventDefault();
188
66
  }
189
- )
67
+ },
68
+ [t, u, a.paused]
190
69
  );
70
+ return /* @__PURE__ */ _(M.div, { tabIndex: -1, ...g, ref: A, onKeyDown: P });
191
71
  });
192
- Q.displayName = K;
193
- function Ye(e) {
194
- return e !== null;
72
+ k.displayName = K;
73
+ function w(e, { select: n = !1 } = {}) {
74
+ const t = document.activeElement;
75
+ for (const u of e)
76
+ if (f(u, { select: n }), document.activeElement !== t) return;
77
+ }
78
+ function x(e) {
79
+ const n = I(e), t = O(n, e), u = O(n.reverse(), e);
80
+ return [t, u];
195
81
  }
196
- var Me = (e) => ({
197
- name: "transformOrigin",
198
- options: e,
199
- fn(s) {
200
- var v, h, C;
201
- const { placement: a, rects: t, middlewareData: i } = s, o = ((v = i.arrow) == null ? void 0 : v.centerOffset) !== 0, w = o ? 0 : e.arrowWidth, n = o ? 0 : e.arrowHeight, [c, x] = V(a), m = { start: "0%", center: "50%", end: "100%" }[x], y = (((h = i.arrow) == null ? void 0 : h.x) ?? 0) + w / 2, A = (((C = i.arrow) == null ? void 0 : C.y) ?? 0) + n / 2;
202
- let l = "", d = "";
203
- return c === "bottom" ? (l = o ? m : `${y}px`, d = `${-n}px`) : c === "top" ? (l = o ? m : `${y}px`, d = `${t.floating.height + n}px`) : c === "right" ? (l = `${-n}px`, d = o ? m : `${A}px`) : c === "left" && (l = `${t.floating.width + n}px`, d = o ? m : `${A}px`), { data: { x: l, y: d } };
82
+ function I(e) {
83
+ const n = [], t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
84
+ acceptNode: (u) => {
85
+ const p = u.tagName === "INPUT" && u.type === "hidden";
86
+ return u.disabled || u.hidden || p ? NodeFilter.FILTER_SKIP : u.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
87
+ }
88
+ });
89
+ for (; t.nextNode(); ) n.push(t.currentNode);
90
+ return n;
91
+ }
92
+ function O(e, n) {
93
+ for (const t of e)
94
+ if (!D(t, { upTo: n })) return t;
95
+ }
96
+ function D(e, { upTo: n }) {
97
+ if (getComputedStyle(e).visibility === "hidden") return !0;
98
+ for (; e; ) {
99
+ if (n !== void 0 && e === n) return !1;
100
+ if (getComputedStyle(e).display === "none") return !0;
101
+ e = e.parentElement;
204
102
  }
205
- });
206
- function V(e) {
207
- const [s, a = "center"] = e.split("-");
208
- return [s, a];
103
+ return !1;
104
+ }
105
+ function H(e) {
106
+ return e instanceof HTMLInputElement && "select" in e;
107
+ }
108
+ function f(e, { select: n = !1 } = {}) {
109
+ if (e && e.focus) {
110
+ const t = document.activeElement;
111
+ e.focus({ preventScroll: !0 }), e !== t && H(e) && n && e.select();
112
+ }
113
+ }
114
+ var S = V();
115
+ function V() {
116
+ let e = [];
117
+ return {
118
+ add(n) {
119
+ const t = e[0];
120
+ n !== t && (t == null || t.pause()), e = C(e, n), e.unshift(n);
121
+ },
122
+ remove(n) {
123
+ var t;
124
+ e = C(e, n), (t = e[0]) == null || t.resume();
125
+ }
126
+ };
127
+ }
128
+ function C(e, n) {
129
+ const t = [...e], u = t.indexOf(n);
130
+ return u !== -1 && t.splice(u, 1), t;
131
+ }
132
+ function W(e) {
133
+ return e.filter((n) => n.tagName !== "A");
209
134
  }
210
- var qe = U, Ge = G, Je = J, Ke = Q;
211
135
  export {
212
- Ge as Anchor,
213
- Ke as Arrow,
214
- Je as Content,
215
- U as Popper,
216
- G as PopperAnchor,
217
- Q as PopperArrow,
218
- J as PopperContent,
219
- qe as Root,
220
- Ue as createPopperScope
136
+ k as FocusScope
221
137
  };
package/dist/index99.js CHANGED
@@ -1,8 +1,221 @@
1
- import * as u from "react";
2
- function t(r) {
3
- const e = u.useRef({ value: r, previous: r });
4
- return u.useMemo(() => (e.current.value !== r && (e.current.previous = e.current.value, e.current.value = r), e.current.previous), [r]);
1
+ import * as p from "react";
2
+ import { useFloating as xe, offset as Pe, shift as ye, flip as Ae, size as ve, arrow as Ce, hide as be, limitShift as Se } from "./index121.js";
3
+ import { Root as Oe } from "./index122.js";
4
+ import { useComposedRefs as j } from "./index78.js";
5
+ import { createContextScope as Re } from "./index76.js";
6
+ import { Primitive as z } from "./index81.js";
7
+ import { useCallbackRef as Ee } from "./index86.js";
8
+ import { useLayoutEffect as T } from "./index87.js";
9
+ import { useSize as Ne } from "./index91.js";
10
+ import { jsx as f } from "react/jsx-runtime";
11
+ import { autoUpdate as _e } from "./index123.js";
12
+ var N = "Popper", [L, Ue] = Re(N), [$e, Z] = L(N), U = (e) => {
13
+ const { __scopePopper: s, children: a } = e, [t, i] = p.useState(null);
14
+ return /* @__PURE__ */ f($e, { scope: s, anchor: t, onAnchorChange: i, children: a });
15
+ };
16
+ U.displayName = N;
17
+ var q = "PopperAnchor", G = p.forwardRef(
18
+ (e, s) => {
19
+ const { __scopePopper: a, virtualRef: t, ...i } = e, r = Z(q, a), o = p.useRef(null), w = j(s, o), n = p.useRef(null);
20
+ return p.useEffect(() => {
21
+ const c = n.current;
22
+ n.current = (t == null ? void 0 : t.current) || o.current, c !== n.current && r.onAnchorChange(n.current);
23
+ }), t ? null : /* @__PURE__ */ f(z.div, { ...i, ref: w });
24
+ }
25
+ );
26
+ G.displayName = q;
27
+ var _ = "PopperContent", [He, We] = L(_), J = p.forwardRef(
28
+ (e, s) => {
29
+ var Y, M, X, D, F, k;
30
+ const {
31
+ __scopePopper: a,
32
+ side: t = "bottom",
33
+ sideOffset: i = 0,
34
+ align: r = "center",
35
+ alignOffset: o = 0,
36
+ arrowPadding: w = 0,
37
+ avoidCollisions: n = !0,
38
+ collisionBoundary: c = [],
39
+ collisionPadding: x = 0,
40
+ sticky: m = "partial",
41
+ hideWhenDetached: y = !1,
42
+ updatePositionStrategy: A = "optimized",
43
+ onPlaced: l,
44
+ ...d
45
+ } = e, v = Z(_, a), [h, C] = p.useState(null), ee = j(s, (P) => C(P)), [E, te] = p.useState(null), u = Ne(E), re = (u == null ? void 0 : u.width) ?? 0, $ = (u == null ? void 0 : u.height) ?? 0, oe = t + (r !== "center" ? "-" + r : ""), ne = typeof x == "number" ? x : { top: 0, right: 0, bottom: 0, left: 0, ...x }, H = Array.isArray(c) ? c : [c], ae = H.length > 0, b = {
46
+ padding: ne,
47
+ boundary: H.filter(Ye),
48
+ // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
49
+ altBoundary: ae
50
+ }, { refs: ie, floatingStyles: W, placement: se, isPositioned: S, middlewareData: g } = xe({
51
+ // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
52
+ strategy: "fixed",
53
+ placement: oe,
54
+ whileElementsMounted: (...P) => _e(...P, {
55
+ animationFrame: A === "always"
56
+ }),
57
+ elements: {
58
+ reference: v.anchor
59
+ },
60
+ middleware: [
61
+ Pe({ mainAxis: i + $, alignmentAxis: o }),
62
+ n && ye({
63
+ mainAxis: !0,
64
+ crossAxis: !1,
65
+ limiter: m === "partial" ? Se() : void 0,
66
+ ...b
67
+ }),
68
+ n && Ae({ ...b }),
69
+ ve({
70
+ ...b,
71
+ apply: ({ elements: P, rects: B, availableWidth: he, availableHeight: ue }) => {
72
+ const { width: ge, height: we } = B.reference, R = P.floating.style;
73
+ R.setProperty("--radix-popper-available-width", `${he}px`), R.setProperty("--radix-popper-available-height", `${ue}px`), R.setProperty("--radix-popper-anchor-width", `${ge}px`), R.setProperty("--radix-popper-anchor-height", `${we}px`);
74
+ }
75
+ }),
76
+ E && Ce({ element: E, padding: w }),
77
+ Me({ arrowWidth: re, arrowHeight: $ }),
78
+ y && be({ strategy: "referenceHidden", ...b })
79
+ ]
80
+ }), [I, ce] = V(se), O = Ee(l);
81
+ T(() => {
82
+ S && (O == null || O());
83
+ }, [S, O]);
84
+ const pe = (Y = g.arrow) == null ? void 0 : Y.x, de = (M = g.arrow) == null ? void 0 : M.y, le = ((X = g.arrow) == null ? void 0 : X.centerOffset) !== 0, [fe, me] = p.useState();
85
+ return T(() => {
86
+ h && me(window.getComputedStyle(h).zIndex);
87
+ }, [h]), /* @__PURE__ */ f(
88
+ "div",
89
+ {
90
+ ref: ie.setFloating,
91
+ "data-radix-popper-content-wrapper": "",
92
+ style: {
93
+ ...W,
94
+ transform: S ? W.transform : "translate(0, -200%)",
95
+ // keep off the page when measuring
96
+ minWidth: "max-content",
97
+ zIndex: fe,
98
+ "--radix-popper-transform-origin": [
99
+ (D = g.transformOrigin) == null ? void 0 : D.x,
100
+ (F = g.transformOrigin) == null ? void 0 : F.y
101
+ ].join(" "),
102
+ // hide the content if using the hide middleware and should be hidden
103
+ // set visibility to hidden and disable pointer events so the UI behaves
104
+ // as if the PopperContent isn't there at all
105
+ ...((k = g.hide) == null ? void 0 : k.referenceHidden) && {
106
+ visibility: "hidden",
107
+ pointerEvents: "none"
108
+ }
109
+ },
110
+ dir: e.dir,
111
+ children: /* @__PURE__ */ f(
112
+ He,
113
+ {
114
+ scope: a,
115
+ placedSide: I,
116
+ onArrowChange: te,
117
+ arrowX: pe,
118
+ arrowY: de,
119
+ shouldHideArrow: le,
120
+ children: /* @__PURE__ */ f(
121
+ z.div,
122
+ {
123
+ "data-side": I,
124
+ "data-align": ce,
125
+ ...d,
126
+ ref: ee,
127
+ style: {
128
+ ...d.style,
129
+ // if the PopperContent hasn't been placed yet (not all measurements done)
130
+ // we prevent animations so that users's animation don't kick in too early referring wrong sides
131
+ animation: S ? void 0 : "none"
132
+ }
133
+ }
134
+ )
135
+ }
136
+ )
137
+ }
138
+ );
139
+ }
140
+ );
141
+ J.displayName = _;
142
+ var K = "PopperArrow", Ie = {
143
+ top: "bottom",
144
+ right: "left",
145
+ bottom: "top",
146
+ left: "right"
147
+ }, Q = p.forwardRef(function(s, a) {
148
+ const { __scopePopper: t, ...i } = s, r = We(K, t), o = Ie[r.placedSide];
149
+ return (
150
+ // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
151
+ // doesn't report size as we'd expect on SVG elements.
152
+ // it reports their bounding box which is effectively the largest path inside the SVG.
153
+ /* @__PURE__ */ f(
154
+ "span",
155
+ {
156
+ ref: r.onArrowChange,
157
+ style: {
158
+ position: "absolute",
159
+ left: r.arrowX,
160
+ top: r.arrowY,
161
+ [o]: 0,
162
+ transformOrigin: {
163
+ top: "",
164
+ right: "0 0",
165
+ bottom: "center 0",
166
+ left: "100% 0"
167
+ }[r.placedSide],
168
+ transform: {
169
+ top: "translateY(100%)",
170
+ right: "translateY(50%) rotate(90deg) translateX(-50%)",
171
+ bottom: "rotate(180deg)",
172
+ left: "translateY(50%) rotate(-90deg) translateX(50%)"
173
+ }[r.placedSide],
174
+ visibility: r.shouldHideArrow ? "hidden" : void 0
175
+ },
176
+ children: /* @__PURE__ */ f(
177
+ Oe,
178
+ {
179
+ ...i,
180
+ ref: a,
181
+ style: {
182
+ ...i.style,
183
+ // ensures the element can be measured correctly (mostly for if SVG)
184
+ display: "block"
185
+ }
186
+ }
187
+ )
188
+ }
189
+ )
190
+ );
191
+ });
192
+ Q.displayName = K;
193
+ function Ye(e) {
194
+ return e !== null;
195
+ }
196
+ var Me = (e) => ({
197
+ name: "transformOrigin",
198
+ options: e,
199
+ fn(s) {
200
+ var v, h, C;
201
+ const { placement: a, rects: t, middlewareData: i } = s, o = ((v = i.arrow) == null ? void 0 : v.centerOffset) !== 0, w = o ? 0 : e.arrowWidth, n = o ? 0 : e.arrowHeight, [c, x] = V(a), m = { start: "0%", center: "50%", end: "100%" }[x], y = (((h = i.arrow) == null ? void 0 : h.x) ?? 0) + w / 2, A = (((C = i.arrow) == null ? void 0 : C.y) ?? 0) + n / 2;
202
+ let l = "", d = "";
203
+ return c === "bottom" ? (l = o ? m : `${y}px`, d = `${-n}px`) : c === "top" ? (l = o ? m : `${y}px`, d = `${t.floating.height + n}px`) : c === "right" ? (l = `${-n}px`, d = o ? m : `${A}px`) : c === "left" && (l = `${t.floating.width + n}px`, d = o ? m : `${A}px`), { data: { x: l, y: d } };
204
+ }
205
+ });
206
+ function V(e) {
207
+ const [s, a = "center"] = e.split("-");
208
+ return [s, a];
5
209
  }
210
+ var qe = U, Ge = G, Je = J, Ke = Q;
6
211
  export {
7
- t as usePrevious
212
+ Ge as Anchor,
213
+ Ke as Arrow,
214
+ Je as Content,
215
+ U as Popper,
216
+ G as PopperAnchor,
217
+ Q as PopperArrow,
218
+ J as PopperContent,
219
+ qe as Root,
220
+ Ue as createPopperScope
8
221
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drjoshcsimmons/scl",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,6 +22,16 @@
22
22
  "sideEffects": [
23
23
  "**/*.css"
24
24
  ],
25
+ "scripts": {
26
+ "dev": "storybook dev -p 6006",
27
+ "build": "tsc && vite build && cp src/styles/globals.css dist/globals.css",
28
+ "build:storybook": "storybook build -o storybook-static",
29
+ "test": "vitest",
30
+ "test:coverage": "vitest --coverage",
31
+ "lint": "eslint src --ext .ts,.tsx",
32
+ "typecheck": "tsc --noEmit",
33
+ "prepublishOnly": "npm run build"
34
+ },
25
35
  "peerDependencies": {
26
36
  "react": "^18.0.0 || ^19.0.0",
27
37
  "react-dom": "^18.0.0 || ^19.0.0"
@@ -120,14 +130,5 @@
120
130
  "@lezer/highlight": "^1.2.3",
121
131
  "@replit/codemirror-vim": "^6.3.0",
122
132
  "@vercel/analytics": "^1.6.1"
123
- },
124
- "scripts": {
125
- "dev": "storybook dev -p 6006",
126
- "build": "tsc && vite build && cp src/styles/globals.css dist/globals.css",
127
- "build:storybook": "storybook build -o storybook-static",
128
- "test": "vitest",
129
- "test:coverage": "vitest --coverage",
130
- "lint": "eslint src --ext .ts,.tsx",
131
- "typecheck": "tsc --noEmit"
132
133
  }
133
- }
134
+ }