@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/index56.js CHANGED
@@ -1,256 +1,532 @@
1
- import u from "react";
2
- var z = (e) => e.type === "checkbox", k = (e) => e instanceof Date, w = (e) => e == null;
3
- const H = (e) => typeof e == "object";
4
- var p = (e) => !w(e) && !Array.isArray(e) && H(e) && !k(e), J = (e) => p(e) && e.target ? z(e.target) ? e.target.checked : e.target.value : e, Q = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, X = (e, s) => e.has(Q(s)), Y = (e) => {
5
- const s = e.constructor && e.constructor.prototype;
6
- return p(s) && s.hasOwnProperty("isPrototypeOf");
7
- }, Z = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
8
- function W(e) {
9
- if (e instanceof Date)
10
- return new Date(e);
11
- const s = typeof FileList < "u" && e instanceof FileList;
12
- if (Z && (e instanceof Blob || s))
13
- return e;
14
- const t = Array.isArray(e);
15
- if (!t && !(p(e) && Y(e)))
16
- return e;
17
- const n = t ? [] : Object.create(Object.getPrototypeOf(e));
18
- for (const r in e)
19
- Object.prototype.hasOwnProperty.call(e, r) && (n[r] = W(e[r]));
20
- return n;
1
+ import * as c from "react";
2
+ import { Primitive as L } from "./index81.js";
3
+ import { Presence as I } from "./index85.js";
4
+ import { createContextScope as te } from "./index76.js";
5
+ import { useComposedRefs as A } from "./index78.js";
6
+ import { useCallbackRef as C } from "./index90.js";
7
+ import { useDirection as ne } from "./index83.js";
8
+ import { useLayoutEffect as le } from "./index84.js";
9
+ import { clamp as ce } from "./index91.js";
10
+ import { composeEventHandlers as R } from "./index79.js";
11
+ import { jsx as b, jsxs as ie, Fragment as se } from "react/jsx-runtime";
12
+ function ae(e, t) {
13
+ return c.useReducer((r, l) => t[r][l] ?? r, e);
21
14
  }
22
- var G = (e) => /^\w*$/.test(e), R = (e) => e === void 0, j = (e) => Array.isArray(e) ? e.filter(Boolean) : [], $ = (e) => j(e.replace(/["|']|\]/g, "").split(/\.|\[/)), y = (e, s, t) => {
23
- if (!s || !p(e))
24
- return t;
25
- const n = (G(s) ? [s] : $(s)).reduce((r, a) => w(r) ? r : r[a], e);
26
- return R(n) || n === e ? R(e[s]) ? t : e[s] : n;
27
- }, P = (e) => typeof e == "boolean", E = (e) => typeof e == "function", D = (e, s, t) => {
28
- let n = -1;
29
- const r = G(s) ? [s] : $(s), a = r.length, i = a - 1;
30
- for (; ++n < a; ) {
31
- const l = r[n];
32
- let c = t;
33
- if (n !== i) {
34
- const f = e[l];
35
- c = p(f) || Array.isArray(f) ? f : isNaN(+r[n + 1]) ? {} : [];
36
- }
37
- if (l === "__proto__" || l === "constructor" || l === "prototype")
38
- return;
39
- e[l] = c, e = e[l];
40
- }
41
- };
42
- const I = {
43
- BLUR: "blur",
44
- CHANGE: "change"
45
- }, B = {
46
- all: "all"
47
- }, L = u.createContext(null);
48
- L.displayName = "HookFormContext";
49
- const M = () => u.useContext(L), oe = (e) => {
50
- const { children: s, ...t } = e;
51
- return u.createElement(L.Provider, { value: t }, s);
52
- };
53
- var ee = (e, s, t, n = !0) => {
54
- const r = {
55
- defaultValues: s._defaultValues
56
- };
57
- for (const a in e)
58
- Object.defineProperty(r, a, {
59
- get: () => {
60
- const i = a;
61
- return s._proxyFormState[i] !== B.all && (s._proxyFormState[i] = !n || B.all), t && (t[i] = !0), e[i];
15
+ var V = "ScrollArea", [j] = te(V), [de, v] = j(V), q = c.forwardRef(
16
+ (e, t) => {
17
+ const {
18
+ __scopeScrollArea: r,
19
+ type: l = "hover",
20
+ dir: o,
21
+ scrollHideDelay: n = 600,
22
+ ...i
23
+ } = e, [s, a] = c.useState(null), [f, d] = c.useState(null), [h, u] = c.useState(null), [S, p] = c.useState(null), [y, M] = c.useState(null), [P, _] = c.useState(0), [U, D] = c.useState(0), [W, x] = c.useState(!1), [H, z] = c.useState(!1), m = A(t, (E) => a(E)), w = ne(o);
24
+ return /* @__PURE__ */ b(
25
+ de,
26
+ {
27
+ scope: r,
28
+ type: l,
29
+ dir: w,
30
+ scrollHideDelay: n,
31
+ scrollArea: s,
32
+ viewport: f,
33
+ onViewportChange: d,
34
+ content: h,
35
+ onContentChange: u,
36
+ scrollbarX: S,
37
+ onScrollbarXChange: p,
38
+ scrollbarXEnabled: W,
39
+ onScrollbarXEnabledChange: x,
40
+ scrollbarY: y,
41
+ onScrollbarYChange: M,
42
+ scrollbarYEnabled: H,
43
+ onScrollbarYEnabledChange: z,
44
+ onCornerWidthChange: _,
45
+ onCornerHeightChange: D,
46
+ children: /* @__PURE__ */ b(
47
+ L.div,
48
+ {
49
+ dir: w,
50
+ ...i,
51
+ ref: m,
52
+ style: {
53
+ position: "relative",
54
+ // Pass corner sizes as CSS vars to reduce re-renders of context consumers
55
+ "--radix-scroll-area-corner-width": P + "px",
56
+ "--radix-scroll-area-corner-height": U + "px",
57
+ ...e.style
58
+ }
59
+ }
60
+ )
62
61
  }
63
- });
64
- return r;
65
- };
66
- const q = typeof window < "u" ? u.useLayoutEffect : u.useEffect;
67
- function te(e) {
68
- const s = M(), { control: t = s.control, disabled: n, name: r, exact: a } = e || {}, [i, l] = u.useState(t._formState), c = u.useRef({
69
- isDirty: !1,
70
- isLoading: !1,
71
- dirtyFields: !1,
72
- touchedFields: !1,
73
- validatingFields: !1,
74
- isValidating: !1,
75
- isValid: !1,
76
- errors: !1
77
- });
78
- return q(() => t._subscribe({
79
- name: r,
80
- formState: c.current,
81
- exact: a,
82
- callback: (f) => {
83
- !n && l({
84
- ...t._formState,
85
- ...f
86
- });
87
- }
88
- }), [r, n, a]), u.useEffect(() => {
89
- c.current.isValid && t._setValid(!0);
90
- }, [t]), u.useMemo(() => ee(i, t, c.current, !1), [i, t]);
91
- }
92
- var re = (e) => typeof e == "string", T = (e, s, t, n, r) => re(e) ? y(t, e, r) : Array.isArray(e) ? e.map((a) => y(t, a)) : t, U = (e) => w(e) || !H(e);
93
- function S(e, s, t = /* @__PURE__ */ new WeakSet()) {
94
- if (U(e) || U(s))
95
- return Object.is(e, s);
96
- if (k(e) && k(s))
97
- return e.getTime() === s.getTime();
98
- const n = Object.keys(e), r = Object.keys(s);
99
- if (n.length !== r.length)
100
- return !1;
101
- if (t.has(e) || t.has(s))
102
- return !0;
103
- t.add(e), t.add(s);
104
- for (const a of n) {
105
- const i = e[a];
106
- if (!r.includes(a))
107
- return !1;
108
- if (a !== "ref") {
109
- const l = s[a];
110
- if (k(i) && k(l) || p(i) && p(l) || Array.isArray(i) && Array.isArray(l) ? !S(i, l, t) : !Object.is(i, l))
111
- return !1;
112
- }
62
+ );
113
63
  }
114
- return !0;
115
- }
116
- function se(e) {
117
- const s = M(), { control: t = s.control, name: n, defaultValue: r, disabled: a, exact: i, compute: l } = e || {}, c = u.useRef(r), f = u.useRef(l), V = u.useRef(void 0), d = u.useRef(t), g = u.useRef(n);
118
- f.current = l;
119
- const [A, v] = u.useState(() => {
120
- const o = t._getWatch(n, c.current);
121
- return f.current ? f.current(o) : o;
122
- }), C = u.useCallback((o) => {
123
- const m = T(n, t._names, o || t._formValues, !1, c.current);
124
- return f.current ? f.current(m) : m;
125
- }, [t._formValues, t._names, n]), b = u.useCallback((o) => {
126
- if (!a) {
127
- const m = T(n, t._names, o || t._formValues, !1, c.current);
128
- if (f.current) {
129
- const _ = f.current(m);
130
- S(_, V.current) || (v(_), V.current = _);
131
- } else
132
- v(m);
64
+ );
65
+ q.displayName = V;
66
+ var $ = "ScrollAreaViewport", G = c.forwardRef(
67
+ (e, t) => {
68
+ const { __scopeScrollArea: r, children: l, nonce: o, ...n } = e, i = v($, r), s = c.useRef(null), a = A(t, s, i.onViewportChange);
69
+ return /* @__PURE__ */ ie(se, { children: [
70
+ /* @__PURE__ */ b(
71
+ "style",
72
+ {
73
+ dangerouslySetInnerHTML: {
74
+ __html: "[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"
75
+ },
76
+ nonce: o
77
+ }
78
+ ),
79
+ /* @__PURE__ */ b(
80
+ L.div,
81
+ {
82
+ "data-radix-scroll-area-viewport": "",
83
+ ...n,
84
+ ref: a,
85
+ style: {
86
+ /**
87
+ * We don't support `visible` because the intention is to have at least one scrollbar
88
+ * if this component is used and `visible` will behave like `auto` in that case
89
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
90
+ *
91
+ * We don't handle `auto` because the intention is for the native implementation
92
+ * to be hidden if using this component. We just want to ensure the node is scrollable
93
+ * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
94
+ * the browser from having to work out whether to render native scrollbars or not,
95
+ * we tell it to with the intention of hiding them in CSS.
96
+ */
97
+ overflowX: i.scrollbarXEnabled ? "scroll" : "hidden",
98
+ overflowY: i.scrollbarYEnabled ? "scroll" : "hidden",
99
+ ...e.style
100
+ },
101
+ children: /* @__PURE__ */ b("div", { ref: i.onContentChange, style: { minWidth: "100%", display: "table" }, children: l })
102
+ }
103
+ )
104
+ ] });
105
+ }
106
+ );
107
+ G.displayName = $;
108
+ var g = "ScrollAreaScrollbar", ue = c.forwardRef(
109
+ (e, t) => {
110
+ const { forceMount: r, ...l } = e, o = v(g, e.__scopeScrollArea), { onScrollbarXEnabledChange: n, onScrollbarYEnabledChange: i } = o, s = e.orientation === "horizontal";
111
+ return c.useEffect(() => (s ? n(!0) : i(!0), () => {
112
+ s ? n(!1) : i(!1);
113
+ }), [s, n, i]), o.type === "hover" ? /* @__PURE__ */ b(fe, { ...l, ref: t, forceMount: r }) : o.type === "scroll" ? /* @__PURE__ */ b(he, { ...l, ref: t, forceMount: r }) : o.type === "auto" ? /* @__PURE__ */ b(J, { ...l, ref: t, forceMount: r }) : o.type === "always" ? /* @__PURE__ */ b(k, { ...l, ref: t }) : null;
114
+ }
115
+ );
116
+ ue.displayName = g;
117
+ var fe = c.forwardRef((e, t) => {
118
+ const { forceMount: r, ...l } = e, o = v(g, e.__scopeScrollArea), [n, i] = c.useState(!1);
119
+ return c.useEffect(() => {
120
+ const s = o.scrollArea;
121
+ let a = 0;
122
+ if (s) {
123
+ const f = () => {
124
+ window.clearTimeout(a), i(!0);
125
+ }, d = () => {
126
+ a = window.setTimeout(() => i(!1), o.scrollHideDelay);
127
+ };
128
+ return s.addEventListener("pointerenter", f), s.addEventListener("pointerleave", d), () => {
129
+ window.clearTimeout(a), s.removeEventListener("pointerenter", f), s.removeEventListener("pointerleave", d);
130
+ };
133
131
  }
134
- }, [t._formValues, t._names, a, n]);
135
- q(() => ((d.current !== t || !S(g.current, n)) && (d.current = t, g.current = n, b()), t._subscribe({
136
- name: n,
137
- formState: {
138
- values: !0
139
- },
140
- exact: i,
141
- callback: (o) => {
142
- b(o.values);
132
+ }, [o.scrollArea, o.scrollHideDelay]), /* @__PURE__ */ b(I, { present: r || n, children: /* @__PURE__ */ b(
133
+ J,
134
+ {
135
+ "data-state": n ? "visible" : "hidden",
136
+ ...l,
137
+ ref: t
143
138
  }
144
- })), [t, i, n, b]), u.useEffect(() => t._removeUnmounted());
145
- const h = d.current !== t, F = g.current, O = u.useMemo(() => {
146
- if (a)
147
- return null;
148
- const o = !h && !S(F, n);
149
- return h || o ? C() : null;
150
- }, [a, h, n, F, C]);
151
- return O !== null ? O : A;
152
- }
153
- function ne(e) {
154
- const s = M(), { name: t, disabled: n, control: r = s.control, shouldUnregister: a, defaultValue: i, exact: l = !0 } = e, c = X(r._names.array, t), f = u.useMemo(() => y(r._formValues, t, y(r._defaultValues, t, i)), [r, t, i]), V = se({
155
- control: r,
156
- name: t,
157
- defaultValue: f,
158
- exact: l
159
- }), d = te({
160
- control: r,
161
- name: t,
162
- exact: l
163
- }), g = u.useRef(e), A = u.useRef(void 0), v = u.useRef(r.register(t, {
164
- ...e.rules,
165
- value: V,
166
- ...P(e.disabled) ? { disabled: e.disabled } : {}
167
- }));
168
- g.current = e;
169
- const C = u.useMemo(() => Object.defineProperties({}, {
170
- invalid: {
171
- enumerable: !0,
172
- get: () => !!y(d.errors, t)
173
- },
174
- isDirty: {
175
- enumerable: !0,
176
- get: () => !!y(d.dirtyFields, t)
139
+ ) });
140
+ }), he = c.forwardRef((e, t) => {
141
+ const { forceMount: r, ...l } = e, o = v(g, e.__scopeScrollArea), n = e.orientation === "horizontal", i = Y(() => a("SCROLL_END"), 100), [s, a] = ae("hidden", {
142
+ hidden: {
143
+ SCROLL: "scrolling"
177
144
  },
178
- isTouched: {
179
- enumerable: !0,
180
- get: () => !!y(d.touchedFields, t)
145
+ scrolling: {
146
+ SCROLL_END: "idle",
147
+ POINTER_ENTER: "interacting"
181
148
  },
182
- isValidating: {
183
- enumerable: !0,
184
- get: () => !!y(d.validatingFields, t)
149
+ interacting: {
150
+ SCROLL: "interacting",
151
+ POINTER_LEAVE: "idle"
185
152
  },
186
- error: {
187
- enumerable: !0,
188
- get: () => y(d.errors, t)
153
+ idle: {
154
+ HIDE: "hidden",
155
+ SCROLL: "scrolling",
156
+ POINTER_ENTER: "interacting"
189
157
  }
190
- }), [d, t]), b = u.useCallback((o) => v.current.onChange({
191
- target: {
192
- value: J(o),
193
- name: t
194
- },
195
- type: I.CHANGE
196
- }), [t]), h = u.useCallback(() => v.current.onBlur({
197
- target: {
198
- value: y(r._formValues, t),
199
- name: t
200
- },
201
- type: I.BLUR
202
- }), [t, r._formValues]), F = u.useCallback((o) => {
203
- const m = y(r._fields, t);
204
- m && m._f && o && (m._f.ref = {
205
- focus: () => E(o.focus) && o.focus(),
206
- select: () => E(o.select) && o.select(),
207
- setCustomValidity: (_) => E(o.setCustomValidity) && o.setCustomValidity(_),
208
- reportValidity: () => E(o.reportValidity) && o.reportValidity()
209
- });
210
- }, [r._fields, t]), O = u.useMemo(() => ({
211
- name: t,
212
- value: V,
213
- ...P(n) || d.disabled ? { disabled: d.disabled || n } : {},
214
- onChange: b,
215
- onBlur: h,
216
- ref: F
217
- }), [t, n, d.disabled, b, h, F, V]);
218
- return u.useEffect(() => {
219
- const o = r._options.shouldUnregister || a, m = A.current;
220
- m && m !== t && !c && r.unregister(m), r.register(t, {
221
- ...g.current.rules,
222
- ...P(g.current.disabled) ? { disabled: g.current.disabled } : {}
223
- });
224
- const _ = (x, K) => {
225
- const N = y(r._fields, x);
226
- N && N._f && (N._f.mount = K);
227
- };
228
- if (_(t, !0), o) {
229
- const x = W(y(r._options.defaultValues, t, g.current.defaultValue));
230
- D(r._defaultValues, t, x), R(y(r._formValues, t)) && D(r._formValues, t, x);
158
+ });
159
+ return c.useEffect(() => {
160
+ if (s === "idle") {
161
+ const f = window.setTimeout(() => a("HIDE"), o.scrollHideDelay);
162
+ return () => window.clearTimeout(f);
163
+ }
164
+ }, [s, o.scrollHideDelay, a]), c.useEffect(() => {
165
+ const f = o.viewport, d = n ? "scrollLeft" : "scrollTop";
166
+ if (f) {
167
+ let h = f[d];
168
+ const u = () => {
169
+ const S = f[d];
170
+ h !== S && (a("SCROLL"), i()), h = S;
171
+ };
172
+ return f.addEventListener("scroll", u), () => f.removeEventListener("scroll", u);
173
+ }
174
+ }, [o.viewport, n, a, i]), /* @__PURE__ */ b(I, { present: r || s !== "hidden", children: /* @__PURE__ */ b(
175
+ k,
176
+ {
177
+ "data-state": s === "hidden" ? "hidden" : "visible",
178
+ ...l,
179
+ ref: t,
180
+ onPointerEnter: R(e.onPointerEnter, () => a("POINTER_ENTER")),
181
+ onPointerLeave: R(e.onPointerLeave, () => a("POINTER_LEAVE"))
182
+ }
183
+ ) });
184
+ }), J = c.forwardRef((e, t) => {
185
+ const r = v(g, e.__scopeScrollArea), { forceMount: l, ...o } = e, [n, i] = c.useState(!1), s = e.orientation === "horizontal", a = Y(() => {
186
+ if (r.viewport) {
187
+ const f = r.viewport.offsetWidth < r.viewport.scrollWidth, d = r.viewport.offsetHeight < r.viewport.scrollHeight;
188
+ i(s ? f : d);
189
+ }
190
+ }, 10);
191
+ return T(r.viewport, a), T(r.content, a), /* @__PURE__ */ b(I, { present: l || n, children: /* @__PURE__ */ b(
192
+ k,
193
+ {
194
+ "data-state": n ? "visible" : "hidden",
195
+ ...o,
196
+ ref: t
197
+ }
198
+ ) });
199
+ }), k = c.forwardRef((e, t) => {
200
+ const { orientation: r = "vertical", ...l } = e, o = v(g, e.__scopeScrollArea), n = c.useRef(null), i = c.useRef(0), [s, a] = c.useState({
201
+ content: 0,
202
+ viewport: 0,
203
+ scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }
204
+ }), f = ee(s.viewport, s.content), d = {
205
+ ...l,
206
+ sizes: s,
207
+ onSizesChange: a,
208
+ hasThumb: f > 0 && f < 1,
209
+ onThumbChange: (u) => n.current = u,
210
+ onThumbPointerUp: () => i.current = 0,
211
+ onThumbPointerDown: (u) => i.current = u
212
+ };
213
+ function h(u, S) {
214
+ return ge(u, i.current, s, S);
215
+ }
216
+ return r === "horizontal" ? /* @__PURE__ */ b(
217
+ be,
218
+ {
219
+ ...d,
220
+ ref: t,
221
+ onThumbPositionChange: () => {
222
+ if (o.viewport && n.current) {
223
+ const u = o.viewport.scrollLeft, S = F(u, s, o.dir);
224
+ n.current.style.transform = `translate3d(${S}px, 0, 0)`;
225
+ }
226
+ },
227
+ onWheelScroll: (u) => {
228
+ o.viewport && (o.viewport.scrollLeft = u);
229
+ },
230
+ onDragScroll: (u) => {
231
+ o.viewport && (o.viewport.scrollLeft = h(u, o.dir));
232
+ }
231
233
  }
232
- return !c && r.register(t), A.current = t, () => {
233
- (c ? o && !r._state.action : o) ? r.unregister(t) : _(t, !1);
234
+ ) : r === "vertical" ? /* @__PURE__ */ b(
235
+ Se,
236
+ {
237
+ ...d,
238
+ ref: t,
239
+ onThumbPositionChange: () => {
240
+ if (o.viewport && n.current) {
241
+ const u = o.viewport.scrollTop, S = F(u, s);
242
+ n.current.style.transform = `translate3d(0, ${S}px, 0)`;
243
+ }
244
+ },
245
+ onWheelScroll: (u) => {
246
+ o.viewport && (o.viewport.scrollTop = u);
247
+ },
248
+ onDragScroll: (u) => {
249
+ o.viewport && (o.viewport.scrollTop = h(u));
250
+ }
251
+ }
252
+ ) : null;
253
+ }), be = c.forwardRef((e, t) => {
254
+ const { sizes: r, onSizesChange: l, ...o } = e, n = v(g, e.__scopeScrollArea), [i, s] = c.useState(), a = c.useRef(null), f = A(t, a, n.onScrollbarXChange);
255
+ return c.useEffect(() => {
256
+ a.current && s(getComputedStyle(a.current));
257
+ }, [a]), /* @__PURE__ */ b(
258
+ Q,
259
+ {
260
+ "data-orientation": "horizontal",
261
+ ...o,
262
+ ref: f,
263
+ sizes: r,
264
+ style: {
265
+ bottom: 0,
266
+ left: n.dir === "rtl" ? "var(--radix-scroll-area-corner-width)" : 0,
267
+ right: n.dir === "ltr" ? "var(--radix-scroll-area-corner-width)" : 0,
268
+ "--radix-scroll-area-thumb-width": X(r) + "px",
269
+ ...e.style
270
+ },
271
+ onThumbPointerDown: (d) => e.onThumbPointerDown(d.x),
272
+ onDragScroll: (d) => e.onDragScroll(d.x),
273
+ onWheelScroll: (d, h) => {
274
+ if (n.viewport) {
275
+ const u = n.viewport.scrollLeft + d.deltaX;
276
+ e.onWheelScroll(u), oe(u, h) && d.preventDefault();
277
+ }
278
+ },
279
+ onResize: () => {
280
+ a.current && n.viewport && i && l({
281
+ content: n.viewport.scrollWidth,
282
+ viewport: n.viewport.offsetWidth,
283
+ scrollbar: {
284
+ size: a.current.clientWidth,
285
+ paddingStart: O(i.paddingLeft),
286
+ paddingEnd: O(i.paddingRight)
287
+ }
288
+ });
289
+ }
290
+ }
291
+ );
292
+ }), Se = c.forwardRef((e, t) => {
293
+ const { sizes: r, onSizesChange: l, ...o } = e, n = v(g, e.__scopeScrollArea), [i, s] = c.useState(), a = c.useRef(null), f = A(t, a, n.onScrollbarYChange);
294
+ return c.useEffect(() => {
295
+ a.current && s(getComputedStyle(a.current));
296
+ }, [a]), /* @__PURE__ */ b(
297
+ Q,
298
+ {
299
+ "data-orientation": "vertical",
300
+ ...o,
301
+ ref: f,
302
+ sizes: r,
303
+ style: {
304
+ top: 0,
305
+ right: n.dir === "ltr" ? 0 : void 0,
306
+ left: n.dir === "rtl" ? 0 : void 0,
307
+ bottom: "var(--radix-scroll-area-corner-height)",
308
+ "--radix-scroll-area-thumb-height": X(r) + "px",
309
+ ...e.style
310
+ },
311
+ onThumbPointerDown: (d) => e.onThumbPointerDown(d.y),
312
+ onDragScroll: (d) => e.onDragScroll(d.y),
313
+ onWheelScroll: (d, h) => {
314
+ if (n.viewport) {
315
+ const u = n.viewport.scrollTop + d.deltaY;
316
+ e.onWheelScroll(u), oe(u, h) && d.preventDefault();
317
+ }
318
+ },
319
+ onResize: () => {
320
+ a.current && n.viewport && i && l({
321
+ content: n.viewport.scrollHeight,
322
+ viewport: n.viewport.offsetHeight,
323
+ scrollbar: {
324
+ size: a.current.clientHeight,
325
+ paddingStart: O(i.paddingTop),
326
+ paddingEnd: O(i.paddingBottom)
327
+ }
328
+ });
329
+ }
330
+ }
331
+ );
332
+ }), [me, K] = j(g), Q = c.forwardRef((e, t) => {
333
+ const {
334
+ __scopeScrollArea: r,
335
+ sizes: l,
336
+ hasThumb: o,
337
+ onThumbChange: n,
338
+ onThumbPointerUp: i,
339
+ onThumbPointerDown: s,
340
+ onThumbPositionChange: a,
341
+ onDragScroll: f,
342
+ onWheelScroll: d,
343
+ onResize: h,
344
+ ...u
345
+ } = e, S = v(g, r), [p, y] = c.useState(null), M = A(t, (m) => y(m)), P = c.useRef(null), _ = c.useRef(""), U = S.viewport, D = l.content - l.viewport, W = C(d), x = C(a), H = Y(h, 10);
346
+ function z(m) {
347
+ if (P.current) {
348
+ const w = m.clientX - P.current.left, E = m.clientY - P.current.top;
349
+ f({ x: w, y: E });
350
+ }
351
+ }
352
+ return c.useEffect(() => {
353
+ const m = (w) => {
354
+ const E = w.target;
355
+ (p == null ? void 0 : p.contains(E)) && W(w, D);
234
356
  };
235
- }, [t, r, c, a]), u.useEffect(() => {
236
- r._setDisabledField({
237
- disabled: n,
238
- name: t
239
- });
240
- }, [n, t, r]), u.useMemo(() => ({
241
- field: O,
242
- formState: d,
243
- fieldState: C
244
- }), [O, d, C]);
357
+ return document.addEventListener("wheel", m, { passive: !1 }), () => document.removeEventListener("wheel", m, { passive: !1 });
358
+ }, [U, p, D, W]), c.useEffect(x, [l, x]), T(p, H), T(S.content, H), /* @__PURE__ */ b(
359
+ me,
360
+ {
361
+ scope: r,
362
+ scrollbar: p,
363
+ hasThumb: o,
364
+ onThumbChange: C(n),
365
+ onThumbPointerUp: C(i),
366
+ onThumbPositionChange: x,
367
+ onThumbPointerDown: C(s),
368
+ children: /* @__PURE__ */ b(
369
+ L.div,
370
+ {
371
+ ...u,
372
+ ref: M,
373
+ style: { position: "absolute", ...u.style },
374
+ onPointerDown: R(e.onPointerDown, (m) => {
375
+ m.button === 0 && (m.target.setPointerCapture(m.pointerId), P.current = p.getBoundingClientRect(), _.current = document.body.style.webkitUserSelect, document.body.style.webkitUserSelect = "none", S.viewport && (S.viewport.style.scrollBehavior = "auto"), z(m));
376
+ }),
377
+ onPointerMove: R(e.onPointerMove, z),
378
+ onPointerUp: R(e.onPointerUp, (m) => {
379
+ const w = m.target;
380
+ w.hasPointerCapture(m.pointerId) && w.releasePointerCapture(m.pointerId), document.body.style.webkitUserSelect = _.current, S.viewport && (S.viewport.style.scrollBehavior = ""), P.current = null;
381
+ })
382
+ }
383
+ )
384
+ }
385
+ );
386
+ }), N = "ScrollAreaThumb", pe = c.forwardRef(
387
+ (e, t) => {
388
+ const { forceMount: r, ...l } = e, o = K(N, e.__scopeScrollArea);
389
+ return /* @__PURE__ */ b(I, { present: r || o.hasThumb, children: /* @__PURE__ */ b(ve, { ref: t, ...l }) });
390
+ }
391
+ ), ve = c.forwardRef(
392
+ (e, t) => {
393
+ const { __scopeScrollArea: r, style: l, ...o } = e, n = v(N, r), i = K(N, r), { onThumbPositionChange: s } = i, a = A(
394
+ t,
395
+ (h) => i.onThumbChange(h)
396
+ ), f = c.useRef(void 0), d = Y(() => {
397
+ f.current && (f.current(), f.current = void 0);
398
+ }, 100);
399
+ return c.useEffect(() => {
400
+ const h = n.viewport;
401
+ if (h) {
402
+ const u = () => {
403
+ if (d(), !f.current) {
404
+ const S = Pe(h, s);
405
+ f.current = S, s();
406
+ }
407
+ };
408
+ return s(), h.addEventListener("scroll", u), () => h.removeEventListener("scroll", u);
409
+ }
410
+ }, [n.viewport, d, s]), /* @__PURE__ */ b(
411
+ L.div,
412
+ {
413
+ "data-state": i.hasThumb ? "visible" : "hidden",
414
+ ...o,
415
+ ref: a,
416
+ style: {
417
+ width: "var(--radix-scroll-area-thumb-width)",
418
+ height: "var(--radix-scroll-area-thumb-height)",
419
+ ...l
420
+ },
421
+ onPointerDownCapture: R(e.onPointerDownCapture, (h) => {
422
+ const S = h.target.getBoundingClientRect(), p = h.clientX - S.left, y = h.clientY - S.top;
423
+ i.onThumbPointerDown({ x: p, y });
424
+ }),
425
+ onPointerUp: R(e.onPointerUp, i.onThumbPointerUp)
426
+ }
427
+ );
428
+ }
429
+ );
430
+ pe.displayName = N;
431
+ var B = "ScrollAreaCorner", Z = c.forwardRef(
432
+ (e, t) => {
433
+ const r = v(B, e.__scopeScrollArea), l = !!(r.scrollbarX && r.scrollbarY);
434
+ return r.type !== "scroll" && l ? /* @__PURE__ */ b(we, { ...e, ref: t }) : null;
435
+ }
436
+ );
437
+ Z.displayName = B;
438
+ var we = c.forwardRef((e, t) => {
439
+ const { __scopeScrollArea: r, ...l } = e, o = v(B, r), [n, i] = c.useState(0), [s, a] = c.useState(0), f = !!(n && s);
440
+ return T(o.scrollbarX, () => {
441
+ var h;
442
+ const d = ((h = o.scrollbarX) == null ? void 0 : h.offsetHeight) || 0;
443
+ o.onCornerHeightChange(d), a(d);
444
+ }), T(o.scrollbarY, () => {
445
+ var h;
446
+ const d = ((h = o.scrollbarY) == null ? void 0 : h.offsetWidth) || 0;
447
+ o.onCornerWidthChange(d), i(d);
448
+ }), f ? /* @__PURE__ */ b(
449
+ L.div,
450
+ {
451
+ ...l,
452
+ ref: t,
453
+ style: {
454
+ width: n,
455
+ height: s,
456
+ position: "absolute",
457
+ right: o.dir === "ltr" ? 0 : void 0,
458
+ left: o.dir === "rtl" ? 0 : void 0,
459
+ bottom: 0,
460
+ ...e.style
461
+ }
462
+ }
463
+ ) : null;
464
+ });
465
+ function O(e) {
466
+ return e ? parseInt(e, 10) : 0;
467
+ }
468
+ function ee(e, t) {
469
+ const r = e / t;
470
+ return isNaN(r) ? 0 : r;
471
+ }
472
+ function X(e) {
473
+ const t = ee(e.viewport, e.content), r = e.scrollbar.paddingStart + e.scrollbar.paddingEnd, l = (e.scrollbar.size - r) * t;
474
+ return Math.max(l, 18);
475
+ }
476
+ function ge(e, t, r, l = "ltr") {
477
+ const o = X(r), n = o / 2, i = t || n, s = o - i, a = r.scrollbar.paddingStart + i, f = r.scrollbar.size - r.scrollbar.paddingEnd - s, d = r.content - r.viewport, h = l === "ltr" ? [0, d] : [d * -1, 0];
478
+ return re([a, f], h)(e);
479
+ }
480
+ function F(e, t, r = "ltr") {
481
+ const l = X(t), o = t.scrollbar.paddingStart + t.scrollbar.paddingEnd, n = t.scrollbar.size - o, i = t.content - t.viewport, s = n - l, a = r === "ltr" ? [0, i] : [i * -1, 0], f = ce(e, a);
482
+ return re([0, i], [0, s])(f);
483
+ }
484
+ function re(e, t) {
485
+ return (r) => {
486
+ if (e[0] === e[1] || t[0] === t[1]) return t[0];
487
+ const l = (t[1] - t[0]) / (e[1] - e[0]);
488
+ return t[0] + l * (r - e[0]);
489
+ };
490
+ }
491
+ function oe(e, t) {
492
+ return e > 0 && e < t;
493
+ }
494
+ var Pe = (e, t = () => {
495
+ }) => {
496
+ let r = { left: e.scrollLeft, top: e.scrollTop }, l = 0;
497
+ return function o() {
498
+ const n = { left: e.scrollLeft, top: e.scrollTop }, i = r.left !== n.left, s = r.top !== n.top;
499
+ (i || s) && t(), r = n, l = window.requestAnimationFrame(o);
500
+ }(), () => window.cancelAnimationFrame(l);
501
+ };
502
+ function Y(e, t) {
503
+ const r = C(e), l = c.useRef(0);
504
+ return c.useEffect(() => () => window.clearTimeout(l.current), []), c.useCallback(() => {
505
+ window.clearTimeout(l.current), l.current = window.setTimeout(r, t);
506
+ }, [r, t]);
507
+ }
508
+ function T(e, t) {
509
+ const r = C(t);
510
+ le(() => {
511
+ let l = 0;
512
+ if (e) {
513
+ const o = new ResizeObserver(() => {
514
+ cancelAnimationFrame(l), l = window.requestAnimationFrame(r);
515
+ });
516
+ return o.observe(e), () => {
517
+ window.cancelAnimationFrame(l), o.unobserve(e);
518
+ };
519
+ }
520
+ }, [e, r]);
245
521
  }
246
- const ae = (e) => e.render(ne(e));
522
+ var He = q, ze = G, Ne = Z;
247
523
  export {
248
- ae as Controller,
249
- oe as FormProvider,
250
- y as get,
251
- D as set,
252
- ne as useController,
253
- M as useFormContext,
254
- te as useFormState,
255
- se as useWatch
524
+ Ne as Corner,
525
+ He as Root,
526
+ q as ScrollArea,
527
+ Z as ScrollAreaCorner,
528
+ ue as ScrollAreaScrollbar,
529
+ pe as ScrollAreaThumb,
530
+ G as ScrollAreaViewport,
531
+ ze as Viewport
256
532
  };