@drjoshcsimmons/scl 0.1.8 → 0.1.10

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 (112) hide show
  1. package/dist/index10.js +21 -21
  2. package/dist/index100.js +49 -29
  3. package/dist/index101.js +47 -12
  4. package/dist/index103.js +13 -53
  5. package/dist/index104.js +219 -30
  6. package/dist/index105.js +7 -46
  7. package/dist/index106.js +30 -15
  8. package/dist/index108.js +47 -29
  9. package/dist/index109.js +1 -1
  10. package/dist/index11.js +2 -2
  11. package/dist/index110.js +50 -645
  12. package/dist/index111.js +1 -1
  13. package/dist/index112.js +12 -8
  14. package/dist/index115.js +48 -6
  15. package/dist/index116.js +1 -1
  16. package/dist/index117.js +21 -206
  17. package/dist/index118.js +9 -22
  18. package/dist/index119.js +38 -400
  19. package/dist/index12.js +1 -1
  20. package/dist/index120.js +11 -14
  21. package/dist/index121.js +206 -9
  22. package/dist/index122.js +21 -37
  23. package/dist/index123.js +399 -17
  24. package/dist/index124.js +6 -48
  25. package/dist/index125.js +25 -2
  26. package/dist/index126.js +29 -53
  27. package/dist/index127.js +5 -65
  28. package/dist/index128.js +2 -25
  29. package/dist/index129.js +53 -29
  30. package/dist/index13.js +2 -2
  31. package/dist/index130.js +65 -5
  32. package/dist/index131.js +5 -2
  33. package/dist/index132.js +3 -2
  34. package/dist/index133.js +24 -5
  35. package/dist/index134.js +113 -3
  36. package/dist/index135.js +15 -23
  37. package/dist/index136.js +2 -113
  38. package/dist/index137.js +2 -16
  39. package/dist/index14.js +2 -2
  40. package/dist/index141.js +1 -1
  41. package/dist/index142.js +1 -1
  42. package/dist/index15.js +2 -2
  43. package/dist/index17.js +4 -4
  44. package/dist/index18.js +2 -2
  45. package/dist/index20.js +2 -2
  46. package/dist/index21.js +1 -1
  47. package/dist/index22.js +1 -1
  48. package/dist/index23.js +2 -2
  49. package/dist/index24.js +1 -1
  50. package/dist/index25.js +3 -3
  51. package/dist/index26.js +1 -1
  52. package/dist/index27.js +3 -3
  53. package/dist/index29.js +1 -1
  54. package/dist/index31.js +1 -1
  55. package/dist/index33.js +1 -1
  56. package/dist/index36.js +2 -2
  57. package/dist/index37.js +1 -1
  58. package/dist/index45.js +1 -1
  59. package/dist/index46.js +1 -1
  60. package/dist/index47.js +32 -529
  61. package/dist/index48.js +12 -241
  62. package/dist/index49.js +9 -33
  63. package/dist/index5.js +1 -1
  64. package/dist/index50.js +58 -234
  65. package/dist/index51.js +118 -11
  66. package/dist/index52.js +237 -61
  67. package/dist/index53.js +21 -129
  68. package/dist/index54.js +220 -109
  69. package/dist/index55.js +11 -60
  70. package/dist/index56.js +518 -242
  71. package/dist/index57.js +215 -72
  72. package/dist/index58.js +11 -260
  73. package/dist/index59.js +82 -12
  74. package/dist/index6.js +1 -1
  75. package/dist/index60.js +222 -822
  76. package/dist/index61.js +6 -3
  77. package/dist/index62.js +435 -9
  78. package/dist/index63.js +118 -303
  79. package/dist/index64.js +31 -12
  80. package/dist/index65.js +303 -111
  81. package/dist/index66.js +12 -225
  82. package/dist/index67.js +336 -11
  83. package/dist/index68.js +247 -242
  84. package/dist/index69.js +238 -15
  85. package/dist/index7.js +1 -1
  86. package/dist/index70.js +854 -16
  87. package/dist/index71.js +9 -161
  88. package/dist/index72.js +16 -334
  89. package/dist/index73.js +111 -416
  90. package/dist/index74.js +160 -30
  91. package/dist/index75.js +73 -12
  92. package/dist/index8.js +1 -1
  93. package/dist/index80.js +1 -1
  94. package/dist/index82.js +1 -1
  95. package/dist/index84.js +3 -68
  96. package/dist/index85.js +68 -10
  97. package/dist/index86.js +30 -4
  98. package/dist/index87.js +5 -3
  99. package/dist/index88.js +24 -180
  100. package/dist/index89.js +180 -24
  101. package/dist/index9.js +2 -2
  102. package/dist/index90.js +10 -5
  103. package/dist/index91.js +3 -124
  104. package/dist/index92.js +646 -11
  105. package/dist/index93.js +50 -130
  106. package/dist/index94.js +30 -219
  107. package/dist/index95.js +124 -13
  108. package/dist/index96.js +127 -40
  109. package/dist/index97.js +14 -50
  110. package/dist/index98.js +14 -8
  111. package/dist/index99.js +9 -55
  112. package/package.json +1 -8
package/dist/index96.js CHANGED
@@ -1,50 +1,137 @@
1
- import * as l from "react";
2
- import { composeRefs as m } from "./index78.js";
3
- import { jsx as u } from "react/jsx-runtime";
4
- // @__NO_SIDE_EFFECTS__
5
- function b(e) {
6
- const n = /* @__PURE__ */ y(e), o = l.forwardRef((t, r) => {
7
- const { children: i, ...c } = t, s = l.Children.toArray(i), a = s.find(E);
8
- if (a) {
9
- const f = a.props.children, d = s.map((p) => p === a ? l.Children.count(f) > 1 ? l.Children.only(null) : l.isValidElement(f) ? f.props.children : null : p);
10
- return /* @__PURE__ */ u(n, { ...c, ref: r, children: l.isValidElement(f) ? l.cloneElement(f, void 0, d) : null });
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 "./index90.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;
11
20
  }
12
- return /* @__PURE__ */ u(n, { ...c, ref: r, children: i });
13
- });
14
- return o.displayName = `${e}.Slot`, o;
15
- }
16
- // @__NO_SIDE_EFFECTS__
17
- function y(e) {
18
- const n = l.forwardRef((o, t) => {
19
- const { children: r, ...i } = o;
20
- if (l.isValidElement(r)) {
21
- const c = S(r), s = C(i, r.props);
22
- return r.type !== l.Fragment && (s.ref = t ? m(t, c) : c), l.cloneElement(r, s);
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));
50
+ }
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();
66
+ }
67
+ },
68
+ [t, u, a.paused]
69
+ );
70
+ return /* @__PURE__ */ _(M.div, { tabIndex: -1, ...g, ref: A, onKeyDown: P });
71
+ });
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];
81
+ }
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;
23
87
  }
24
- return l.Children.count(r) > 1 ? l.Children.only(null) : null;
25
88
  });
26
- return n.displayName = `${e}.SlotClone`, n;
89
+ for (; t.nextNode(); ) n.push(t.currentNode);
90
+ return n;
27
91
  }
28
- var g = Symbol("radix.slottable");
29
- function E(e) {
30
- return l.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === g;
92
+ function O(e, n) {
93
+ for (const t of e)
94
+ if (!D(t, { upTo: n })) return t;
31
95
  }
32
- function C(e, n) {
33
- const o = { ...n };
34
- for (const t in n) {
35
- const r = e[t], i = n[t];
36
- /^on[A-Z]/.test(t) ? r && i ? o[t] = (...s) => {
37
- const a = i(...s);
38
- return r(...s), a;
39
- } : r && (o[t] = r) : t === "style" ? o[t] = { ...r, ...i } : t === "className" && (o[t] = [r, i].filter(Boolean).join(" "));
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;
40
102
  }
41
- return { ...e, ...o };
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;
42
131
  }
43
- function S(e) {
44
- var t, r;
45
- let n = (t = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : t.get, o = n && "isReactWarning" in n && n.isReactWarning;
46
- return o ? e.ref : (n = (r = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : r.get, o = n && "isReactWarning" in n && n.isReactWarning, o ? e.props.ref : e.props.ref || e.ref);
132
+ function W(e) {
133
+ return e.filter((n) => n.tagName !== "A");
47
134
  }
48
135
  export {
49
- b as createSlot
136
+ k as FocusScope
50
137
  };
package/dist/index97.js CHANGED
@@ -1,52 +1,16 @@
1
- var S = function(r) {
2
- if (typeof document > "u")
3
- return null;
4
- var u = Array.isArray(r) ? r[0] : r;
5
- return u.ownerDocument.body;
6
- }, f = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), p = {}, h = 0, W = function(r) {
7
- return r && (r.host || W(r.parentNode));
8
- }, D = function(r, u) {
9
- return u.map(function(e) {
10
- if (r.contains(e))
11
- return e;
12
- var n = W(e);
13
- return n && r.contains(n) ? n : (console.error("aria-hidden", e, "in not contained inside", r, ". Doing nothing"), null);
14
- }).filter(function(e) {
15
- return !!e;
16
- });
17
- }, E = function(r, u, e, n) {
18
- var i = D(u, Array.isArray(r) ? r : [r]);
19
- p[e] || (p[e] = /* @__PURE__ */ new WeakMap());
20
- var s = p[e], l = [], o = /* @__PURE__ */ new Set(), b = new Set(i), y = function(t) {
21
- !t || o.has(t) || (o.add(t), y(t.parentNode));
22
- };
23
- i.forEach(y);
24
- var A = function(t) {
25
- !t || b.has(t) || Array.prototype.forEach.call(t.children, function(a) {
26
- if (o.has(a))
27
- A(a);
28
- else
29
- try {
30
- var c = a.getAttribute(n), w = c !== null && c !== "false", d = (f.get(a) || 0) + 1, M = (s.get(a) || 0) + 1;
31
- f.set(a, d), s.set(a, M), l.push(a), d === 1 && w && v.set(a, !0), M === 1 && a.setAttribute(e, "true"), w || a.setAttribute(n, "true");
32
- } catch (k) {
33
- console.error("aria-hidden: cannot operate on ", a, k);
34
- }
35
- });
36
- };
37
- return A(u), o.clear(), h++, function() {
38
- l.forEach(function(t) {
39
- var a = f.get(t) - 1, c = s.get(t) - 1;
40
- f.set(t, a), s.set(t, c), a || (v.has(t) || t.removeAttribute(n), v.delete(t)), c || t.removeAttribute(e);
41
- }), h--, h || (f = /* @__PURE__ */ new WeakMap(), f = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), p = {});
42
- };
43
- }, C = function(r, u, e) {
44
- e === void 0 && (e = "data-aria-hidden");
45
- var n = Array.from(Array.isArray(r) ? r : [r]), i = S(r);
46
- return i ? (n.push.apply(n, Array.from(i.querySelectorAll("[aria-live], script"))), E(n, i, e, "aria-hidden")) : function() {
47
- return null;
48
- };
49
- };
1
+ import * as r from "react";
2
+ import s from "react-dom";
3
+ import { Primitive as c } from "./index81.js";
4
+ import { useLayoutEffect as u } from "./index84.js";
5
+ import { jsx as l } from "react/jsx-runtime";
6
+ var p = "Portal", d = r.forwardRef((e, a) => {
7
+ var o;
8
+ const { container: f, ...i } = e, [m, n] = r.useState(!1);
9
+ u(() => n(!0), []);
10
+ const t = f || m && ((o = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : o.body);
11
+ return t ? s.createPortal(/* @__PURE__ */ l(c.div, { ...i, ref: a }), t) : null;
12
+ });
13
+ d.displayName = p;
50
14
  export {
51
- C as hideOthers
15
+ d as Portal
52
16
  };
package/dist/index98.js CHANGED
@@ -1,11 +1,17 @@
1
- import { __assign as m } from "./index128.js";
2
1
  import * as r from "react";
3
- import { RemoveScroll as e } from "./index129.js";
4
- import t from "./index130.js";
5
- var s = r.forwardRef(function(a, o) {
6
- return r.createElement(e, m({}, a, { ref: o, sideCar: t }));
7
- });
8
- s.classNames = e.classNames;
2
+ var t = 0;
3
+ function a() {
4
+ r.useEffect(() => {
5
+ const e = document.querySelectorAll("[data-radix-focus-guard]");
6
+ return document.body.insertAdjacentElement("afterbegin", e[0] ?? n()), document.body.insertAdjacentElement("beforeend", e[1] ?? n()), t++, () => {
7
+ t === 1 && document.querySelectorAll("[data-radix-focus-guard]").forEach((o) => o.remove()), t--;
8
+ };
9
+ }, []);
10
+ }
11
+ function n() {
12
+ const e = document.createElement("span");
13
+ return e.setAttribute("data-radix-focus-guard", ""), e.tabIndex = 0, e.style.outline = "none", e.style.opacity = "0", e.style.position = "fixed", e.style.pointerEvents = "none", e;
14
+ }
9
15
  export {
10
- s as default
16
+ a as useFocusGuards
11
17
  };
package/dist/index99.js CHANGED
@@ -1,57 +1,11 @@
1
- import * as i from "react";
2
- import { jsx as _ } from "react/jsx-runtime";
3
- function $(e, x = []) {
4
- let o = [];
5
- function f(r, n) {
6
- const t = i.createContext(n);
7
- t.displayName = r + "Context";
8
- const c = o.length;
9
- o = [...o, n];
10
- const m = (a) => {
11
- var l;
12
- const { scope: s, children: C, ...p } = a, d = ((l = s == null ? void 0 : s[e]) == null ? void 0 : l[c]) || t, v = i.useMemo(() => p, Object.values(p));
13
- return /* @__PURE__ */ _(d.Provider, { value: v, children: C });
14
- };
15
- m.displayName = r + "Provider";
16
- function S(a, s) {
17
- var d;
18
- const C = ((d = s == null ? void 0 : s[e]) == null ? void 0 : d[c]) || t, p = i.useContext(C);
19
- if (p) return p;
20
- if (n !== void 0) return n;
21
- throw new Error(`\`${a}\` must be used within \`${r}\``);
22
- }
23
- return [m, S];
24
- }
25
- const u = () => {
26
- const r = o.map((n) => i.createContext(n));
27
- return function(t) {
28
- const c = (t == null ? void 0 : t[e]) || r;
29
- return i.useMemo(
30
- () => ({ [`__scope${e}`]: { ...t, [e]: c } }),
31
- [t, c]
32
- );
33
- };
34
- };
35
- return u.scopeName = e, [f, h(u, ...x)];
36
- }
37
- function h(...e) {
38
- const x = e[0];
39
- if (e.length === 1) return x;
40
- const o = () => {
41
- const f = e.map((u) => ({
42
- useScope: u(),
43
- scopeName: u.scopeName
44
- }));
45
- return function(r) {
46
- const n = f.reduce((t, { useScope: c, scopeName: m }) => {
47
- const a = c(r)[`__scope${m}`];
48
- return { ...t, ...a };
49
- }, {});
50
- return i.useMemo(() => ({ [`__scope${x.scopeName}`]: n }), [n]);
51
- };
52
- };
53
- return o.scopeName = x.scopeName, o;
54
- }
1
+ import { __assign as m } from "./index125.js";
2
+ import * as r from "react";
3
+ import { RemoveScroll as e } from "./index126.js";
4
+ import t from "./index127.js";
5
+ var s = r.forwardRef(function(a, o) {
6
+ return r.createElement(e, m({}, a, { ref: o, sideCar: t }));
7
+ });
8
+ s.classNames = e.classNames;
55
9
  export {
56
- $ as createContextScope
10
+ s as default
57
11
  };
package/package.json CHANGED
@@ -1,18 +1,11 @@
1
1
  {
2
2
  "name": "@drjoshcsimmons/scl",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/jcpsimmons/scl"
8
8
  },
9
- "pnpm": {
10
- "overrides": {
11
- "lru-cache": "^10.0.0",
12
- "semver": "^7.6.0",
13
- "browserslist": "^4.24.0"
14
- }
15
- },
16
9
  "main": "./dist/index.js",
17
10
  "module": "./dist/index.js",
18
11
  "types": "./dist/index.d.ts",