@drjoshcsimmons/scl 0.1.12 → 0.1.14

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 (123) hide show
  1. package/dist/index100.js +12 -47
  2. package/dist/index101.js +8 -54
  3. package/dist/index102.js +30 -11
  4. package/dist/index103.js +4 -30
  5. package/dist/index104.js +24 -12
  6. package/dist/index105.js +6 -30
  7. package/dist/index107.js +1 -1
  8. package/dist/index108.js +30 -650
  9. package/dist/index109.js +1 -1
  10. package/dist/index11.js +2 -2
  11. package/dist/index110.js +647 -27
  12. package/dist/index112.js +14 -8
  13. package/dist/index113.js +11 -47
  14. package/dist/index114.js +200 -42
  15. package/dist/index115.js +21 -20
  16. package/dist/index116.js +400 -9
  17. package/dist/index117.js +48 -38
  18. package/dist/index118.js +48 -18
  19. package/dist/index119.js +21 -12
  20. package/dist/index12.js +1 -1
  21. package/dist/index120.js +9 -206
  22. package/dist/index121.js +37 -21
  23. package/dist/index122.js +17 -399
  24. package/dist/index124.js +1 -1
  25. package/dist/index126.js +3 -3
  26. package/dist/index127.js +3 -3
  27. package/dist/index129.js +1 -1
  28. package/dist/index13.js +2 -2
  29. package/dist/index130.js +1 -1
  30. package/dist/index131.js +5 -2
  31. package/dist/index132.js +3 -2
  32. package/dist/index133.js +24 -5
  33. package/dist/index134.js +113 -3
  34. package/dist/index135.js +15 -23
  35. package/dist/index136.js +519 -107
  36. package/dist/index137.js +126 -14
  37. package/dist/index138.js +125 -516
  38. package/dist/index139.js +2 -128
  39. package/dist/index14.js +2 -2
  40. package/dist/index140.js +2 -134
  41. package/dist/index141.js +69 -65
  42. package/dist/index142.js +8 -68
  43. package/dist/index143.js +14 -9
  44. package/dist/index144.js +66 -14
  45. package/dist/index145.js +64 -65
  46. package/dist/index15.js +2 -2
  47. package/dist/index17.js +4 -4
  48. package/dist/index18.js +2 -2
  49. package/dist/index20.js +2 -2
  50. package/dist/index21.js +1 -1
  51. package/dist/index22.js +1 -1
  52. package/dist/index23.js +2 -2
  53. package/dist/index24.js +1 -1
  54. package/dist/index25.js +4 -4
  55. package/dist/index26.js +1 -1
  56. package/dist/index27.js +3 -3
  57. package/dist/index29.js +1 -1
  58. package/dist/index31.js +1 -1
  59. package/dist/index33.js +1 -1
  60. package/dist/index36.js +2 -2
  61. package/dist/index37.js +1 -1
  62. package/dist/index4.js +2 -2
  63. package/dist/index45.js +33 -237
  64. package/dist/index46.js +241 -11
  65. package/dist/index47.js +212 -211
  66. package/dist/index48.js +4 -4
  67. package/dist/index49.js +246 -104
  68. package/dist/index5.js +1 -1
  69. package/dist/index50.js +12 -33
  70. package/dist/index51.js +509 -109
  71. package/dist/index52.js +20 -433
  72. package/dist/index53.js +158 -57
  73. package/dist/index54.js +66 -247
  74. package/dist/index55.js +334 -16
  75. package/dist/index56.js +236 -31
  76. package/dist/index57.js +11 -310
  77. package/dist/index58.js +82 -12
  78. package/dist/index59.js +221 -232
  79. package/dist/index6.js +1 -1
  80. package/dist/index60.js +3 -6
  81. package/dist/index61.js +112 -143
  82. package/dist/index62.js +16 -247
  83. package/dist/index63.js +860 -9
  84. package/dist/index64.js +9 -241
  85. package/dist/index65.js +30 -72
  86. package/dist/index66.js +433 -20
  87. package/dist/index67.js +53 -75
  88. package/dist/index68.js +102 -209
  89. package/dist/index69.js +225 -11
  90. package/dist/index7.js +1 -1
  91. package/dist/index70.js +4 -5
  92. package/dist/index71.js +12 -860
  93. package/dist/index72.js +125 -9
  94. package/dist/index73.js +283 -503
  95. package/dist/index74.js +12 -125
  96. package/dist/index75.js +241 -323
  97. package/dist/index76.js +5 -66
  98. package/dist/index77.js +25 -44
  99. package/dist/index78.js +64 -23
  100. package/dist/index79.js +123 -5
  101. package/dist/index8.js +1 -1
  102. package/dist/index80.js +13 -50
  103. package/dist/index81.js +133 -32
  104. package/dist/index82.js +1 -1
  105. package/dist/index83.js +218 -7
  106. package/dist/index84.js +14 -181
  107. package/dist/index85.js +67 -23
  108. package/dist/index86.js +33 -5
  109. package/dist/index87.js +42 -63
  110. package/dist/index88.js +52 -4
  111. package/dist/index89.js +50 -4
  112. package/dist/index9.js +2 -2
  113. package/dist/index90.js +9 -30
  114. package/dist/index91.js +45 -14
  115. package/dist/index92.js +7 -124
  116. package/dist/index93.js +40 -127
  117. package/dist/index94.js +30 -14
  118. package/dist/index95.js +179 -13
  119. package/dist/index96.js +55 -9
  120. package/dist/index97.js +11 -50
  121. package/dist/index98.js +4 -48
  122. package/dist/index99.js +30 -219
  123. package/package.json +1 -1
package/dist/index73.js CHANGED
@@ -1,532 +1,312 @@
1
- import * as c from "react";
2
- import { Primitive as L } from "./index81.js";
3
- import { Presence as I } from "./index87.js";
4
- import { createContextScope as te } from "./index76.js";
5
- import { useComposedRefs as A } from "./index78.js";
6
- import { useCallbackRef as C } from "./index102.js";
7
- import { useDirection as ne } from "./index83.js";
8
- import { useLayoutEffect as le } from "./index88.js";
9
- import { clamp as ce } from "./index89.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);
14
- }
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
- )
61
- }
62
- );
63
- }
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
1
+ import { a as pe } from "./index112.js";
2
+ import { Root as ge, Portal as he, Overlay as be, Content as Ee } from "./index49.js";
3
+ import * as n from "react";
4
+ import { Primitive as I } from "./index86.js";
5
+ import { useId as K } from "./index82.js";
6
+ import { composeRefs as q } from "./index77.js";
7
+ var $ = '[cmdk-group=""]', X = '[cmdk-group-items=""]', ye = '[cmdk-group-heading=""]', oe = '[cmdk-item=""]', ie = `${oe}:not([aria-disabled="true"])`, Y = "cmdk-item-select", D = "data-value", Ce = (t, a, r) => pe(t, a, r), ce = n.createContext(void 0), O = () => n.useContext(ce), de = n.createContext(void 0), Z = () => n.useContext(de), se = n.createContext(void 0), fe = n.forwardRef((t, a) => {
8
+ let r = F(() => {
9
+ var e, u;
10
+ return { search: "", value: (u = (e = t.value) != null ? e : t.defaultValue) != null ? u : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } };
11
+ }), v = F(() => /* @__PURE__ */ new Set()), i = F(() => /* @__PURE__ */ new Map()), c = F(() => /* @__PURE__ */ new Map()), d = F(() => /* @__PURE__ */ new Set()), m = me(t), { label: b, children: s, value: h, onValueChange: R, filter: k, shouldFilter: w, loop: V, disablePointerSelection: B = !1, vimBindings: x = !0, ...j } = t, U = K(), ee = K(), W = K(), A = n.useRef(null), g = Fe();
12
+ M(() => {
13
+ if (h !== void 0) {
14
+ let e = h.trim();
15
+ r.current.value = e, y.emit();
16
+ }
17
+ }, [h]), M(() => {
18
+ g(6, re);
19
+ }, []);
20
+ let y = n.useMemo(() => ({ subscribe: (e) => (d.current.add(e), () => d.current.delete(e)), snapshot: () => r.current, setState: (e, u, o) => {
21
+ var l, f, p, C;
22
+ if (!Object.is(r.current[e], u)) {
23
+ if (r.current[e] = u, e === "search") T(), G(), g(1, H);
24
+ else if (e === "value") {
25
+ if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
26
+ let E = document.getElementById(W);
27
+ E ? E.focus() : (l = document.getElementById(U)) == null || l.focus();
77
28
  }
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 })
29
+ if (g(7, () => {
30
+ var E;
31
+ r.current.selectedItemId = (E = P()) == null ? void 0 : E.id, y.emit();
32
+ }), o || g(5, re), ((f = m.current) == null ? void 0 : f.value) !== void 0) {
33
+ let E = u ?? "";
34
+ (C = (p = m.current).onValueChange) == null || C.call(p, E);
35
+ return;
102
36
  }
103
- )
104
- ] });
37
+ }
38
+ y.emit();
39
+ }
40
+ }, emit: () => {
41
+ d.current.forEach((e) => e());
42
+ } }), []), _ = n.useMemo(() => ({ value: (e, u, o) => {
43
+ var l;
44
+ u !== ((l = c.current.get(e)) == null ? void 0 : l.value) && (c.current.set(e, { value: u, keywords: o }), r.current.filtered.items.set(e, te(u, o)), g(2, () => {
45
+ G(), y.emit();
46
+ }));
47
+ }, item: (e, u) => (v.current.add(e), u && (i.current.has(u) ? i.current.get(u).add(e) : i.current.set(u, /* @__PURE__ */ new Set([e]))), g(3, () => {
48
+ T(), G(), r.current.value || H(), y.emit();
49
+ }), () => {
50
+ c.current.delete(e), v.current.delete(e), r.current.filtered.items.delete(e);
51
+ let o = P();
52
+ g(4, () => {
53
+ T(), (o == null ? void 0 : o.getAttribute("id")) === e && H(), y.emit();
54
+ });
55
+ }), group: (e) => (i.current.has(e) || i.current.set(e, /* @__PURE__ */ new Set()), () => {
56
+ c.current.delete(e), i.current.delete(e);
57
+ }), filter: () => m.current.shouldFilter, label: b || t["aria-label"], getDisablePointerSelection: () => m.current.disablePointerSelection, listId: U, inputId: W, labelId: ee, listInnerRef: A }), []);
58
+ function te(e, u) {
59
+ var o, l;
60
+ let f = (l = (o = m.current) == null ? void 0 : o.filter) != null ? l : Ce;
61
+ return e ? f(e, r.current.search, u) : 0;
105
62
  }
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;
63
+ function G() {
64
+ if (!r.current.search || m.current.shouldFilter === !1) return;
65
+ let e = r.current.filtered.items, u = [];
66
+ r.current.filtered.groups.forEach((l) => {
67
+ let f = i.current.get(l), p = 0;
68
+ f.forEach((C) => {
69
+ let E = e.get(C);
70
+ p = Math.max(E, p);
71
+ }), u.push([l, p]);
72
+ });
73
+ let o = A.current;
74
+ L().sort((l, f) => {
75
+ var p, C;
76
+ let E = l.getAttribute("id"), N = f.getAttribute("id");
77
+ return ((p = e.get(N)) != null ? p : 0) - ((C = e.get(E)) != null ? C : 0);
78
+ }).forEach((l) => {
79
+ let f = l.closest(X);
80
+ f ? f.appendChild(l.parentElement === f ? l : l.closest(`${X} > *`)) : o.appendChild(l.parentElement === o ? l : l.closest(`${X} > *`));
81
+ }), u.sort((l, f) => f[1] - l[1]).forEach((l) => {
82
+ var f;
83
+ let p = (f = A.current) == null ? void 0 : f.querySelector(`${$}[${D}="${encodeURIComponent(l[0])}"]`);
84
+ p == null || p.parentElement.appendChild(p);
85
+ });
114
86
  }
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
- };
131
- }
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
138
- }
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"
144
- },
145
- scrolling: {
146
- SCROLL_END: "idle",
147
- POINTER_ENTER: "interacting"
148
- },
149
- interacting: {
150
- SCROLL: "interacting",
151
- POINTER_LEAVE: "idle"
152
- },
153
- idle: {
154
- HIDE: "hidden",
155
- SCROLL: "scrolling",
156
- POINTER_ENTER: "interacting"
157
- }
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"))
87
+ function H() {
88
+ let e = L().find((o) => o.getAttribute("aria-disabled") !== "true"), u = e == null ? void 0 : e.getAttribute(D);
89
+ y.setState("value", u || void 0);
90
+ }
91
+ function T() {
92
+ var e, u, o, l;
93
+ if (!r.current.search || m.current.shouldFilter === !1) {
94
+ r.current.filtered.count = v.current.size;
95
+ return;
182
96
  }
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);
97
+ r.current.filtered.groups = /* @__PURE__ */ new Set();
98
+ let f = 0;
99
+ for (let p of v.current) {
100
+ let C = (u = (e = c.current.get(p)) == null ? void 0 : e.value) != null ? u : "", E = (l = (o = c.current.get(p)) == null ? void 0 : o.keywords) != null ? l : [], N = te(C, E);
101
+ r.current.filtered.items.set(p, N), N > 0 && f++;
189
102
  }
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
103
+ for (let [p, C] of i.current) for (let E of C) if (r.current.filtered.items.get(E) > 0) {
104
+ r.current.filtered.groups.add(p);
105
+ break;
197
106
  }
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);
107
+ r.current.filtered.count = f;
215
108
  }
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));
109
+ function re() {
110
+ var e, u, o;
111
+ let l = P();
112
+ l && (((e = l.parentElement) == null ? void 0 : e.firstChild) === l && ((o = (u = l.closest($)) == null ? void 0 : u.querySelector(ye)) == null || o.scrollIntoView({ block: "nearest" })), l.scrollIntoView({ block: "nearest" }));
113
+ }
114
+ function P() {
115
+ var e;
116
+ return (e = A.current) == null ? void 0 : e.querySelector(`${oe}[aria-selected="true"]`);
117
+ }
118
+ function L() {
119
+ var e;
120
+ return Array.from(((e = A.current) == null ? void 0 : e.querySelectorAll(ie)) || []);
121
+ }
122
+ function J(e) {
123
+ let u = L()[e];
124
+ u && y.setState("value", u.getAttribute(D));
125
+ }
126
+ function Q(e) {
127
+ var u;
128
+ let o = P(), l = L(), f = l.findIndex((C) => C === o), p = l[f + e];
129
+ (u = m.current) != null && u.loop && (p = f + e < 0 ? l[l.length - 1] : f + e === l.length ? l[0] : l[f + e]), p && y.setState("value", p.getAttribute(D));
130
+ }
131
+ function ne(e) {
132
+ let u = P(), o = u == null ? void 0 : u.closest($), l;
133
+ for (; o && !l; ) o = e > 0 ? Pe(o, $) : De(o, $), l = o == null ? void 0 : o.querySelector(ie);
134
+ l ? y.setState("value", l.getAttribute(D)) : Q(e);
135
+ }
136
+ let le = () => J(L().length - 1), ae = (e) => {
137
+ e.preventDefault(), e.metaKey ? le() : e.altKey ? ne(1) : Q(1);
138
+ }, ue = (e) => {
139
+ e.preventDefault(), e.metaKey ? J(0) : e.altKey ? ne(-1) : Q(-1);
140
+ };
141
+ return n.createElement(I.div, { ref: a, tabIndex: -1, ...j, "cmdk-root": "", onKeyDown: (e) => {
142
+ var u;
143
+ (u = j.onKeyDown) == null || u.call(j, e);
144
+ let o = e.nativeEvent.isComposing || e.keyCode === 229;
145
+ if (!(e.defaultPrevented || o)) switch (e.key) {
146
+ case "n":
147
+ case "j": {
148
+ x && e.ctrlKey && ae(e);
149
+ break;
232
150
  }
233
- }
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));
151
+ case "ArrowDown": {
152
+ ae(e);
153
+ break;
250
154
  }
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
- });
155
+ case "p":
156
+ case "k": {
157
+ x && e.ctrlKey && ue(e);
158
+ break;
289
159
  }
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();
160
+ case "ArrowUp": {
161
+ ue(e);
162
+ break;
163
+ }
164
+ case "Home": {
165
+ e.preventDefault(), J(0);
166
+ break;
167
+ }
168
+ case "End": {
169
+ e.preventDefault(), le();
170
+ break;
171
+ }
172
+ case "Enter": {
173
+ e.preventDefault();
174
+ let l = P();
175
+ if (l) {
176
+ let f = new Event(Y);
177
+ l.dispatchEvent(f);
317
178
  }
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
179
  }
330
180
  }
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
- }
181
+ } }, n.createElement("label", { "cmdk-label": "", htmlFor: _.inputId, id: _.labelId, style: Le }, b), z(t, (e) => n.createElement(de.Provider, { value: y }, n.createElement(ce.Provider, { value: _ }, e))));
182
+ }), we = n.forwardRef((t, a) => {
183
+ var r, v;
184
+ let i = K(), c = n.useRef(null), d = n.useContext(se), m = O(), b = me(t), s = (v = (r = b.current) == null ? void 0 : r.forceMount) != null ? v : d == null ? void 0 : d.forceMount;
185
+ M(() => {
186
+ if (!s) return m.item(i, d == null ? void 0 : d.id);
187
+ }, [s]);
188
+ let h = ve(i, c, [t.value, t.children, c], t.keywords), R = Z(), k = S((g) => g.value && g.value === h.current), w = S((g) => s || m.filter() === !1 ? !0 : g.search ? g.filtered.items.get(i) > 0 : !0);
189
+ n.useEffect(() => {
190
+ let g = c.current;
191
+ if (!(!g || t.disabled)) return g.addEventListener(Y, V), () => g.removeEventListener(Y, V);
192
+ }, [w, t.onSelect, t.disabled]);
193
+ function V() {
194
+ var g, y;
195
+ B(), (y = (g = b.current).onSelect) == null || y.call(g, h.current);
351
196
  }
352
- return c.useEffect(() => {
353
- const m = (w) => {
354
- const E = w.target;
355
- (p == null ? void 0 : p.contains(E)) && W(w, D);
356
- };
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 }) });
197
+ function B() {
198
+ R.setState("value", h.current, !0);
390
199
  }
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
- );
200
+ if (!w) return null;
201
+ let { disabled: x, value: j, onSelect: U, forceMount: ee, keywords: W, ...A } = t;
202
+ return n.createElement(I.div, { ref: q(c, a), ...A, id: i, "cmdk-item": "", role: "option", "aria-disabled": !!x, "aria-selected": !!k, "data-disabled": !!x, "data-selected": !!k, onPointerMove: x || m.getDisablePointerSelection() ? void 0 : B, onClick: x ? void 0 : V }, t.children);
203
+ }), ke = n.forwardRef((t, a) => {
204
+ let { heading: r, children: v, forceMount: i, ...c } = t, d = K(), m = n.useRef(null), b = n.useRef(null), s = K(), h = O(), R = S((w) => i || h.filter() === !1 ? !0 : w.search ? w.filtered.groups.has(d) : !0);
205
+ M(() => h.group(d), []), ve(d, m, [t.value, t.heading, b]);
206
+ let k = n.useMemo(() => ({ id: d, forceMount: i }), [i]);
207
+ return n.createElement(I.div, { ref: q(m, a), ...c, "cmdk-group": "", role: "presentation", hidden: R ? void 0 : !0 }, r && n.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": !0, id: s }, r), z(t, (w) => n.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": r ? s : void 0 }, n.createElement(se.Provider, { value: k }, w))));
208
+ }), Se = n.forwardRef((t, a) => {
209
+ let { alwaysRender: r, ...v } = t, i = n.useRef(null), c = S((d) => !d.search);
210
+ return !r && !c ? null : n.createElement(I.div, { ref: q(i, a), ...v, "cmdk-separator": "", role: "separator" });
211
+ }), Ie = n.forwardRef((t, a) => {
212
+ let { onValueChange: r, ...v } = t, i = t.value != null, c = Z(), d = S((s) => s.search), m = S((s) => s.selectedItemId), b = O();
213
+ return n.useEffect(() => {
214
+ t.value != null && c.setState("search", t.value);
215
+ }, [t.value]), n.createElement(I.input, { ref: a, ...v, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: !1, "aria-autocomplete": "list", role: "combobox", "aria-expanded": !0, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": m, id: b.inputId, type: "text", value: i ? t.value : d, onChange: (s) => {
216
+ i || c.setState("search", s.target.value), r == null || r(s.target.value);
217
+ } });
218
+ }), Re = n.forwardRef((t, a) => {
219
+ let { children: r, label: v = "Suggestions", ...i } = t, c = n.useRef(null), d = n.useRef(null), m = S((s) => s.selectedItemId), b = O();
220
+ return n.useEffect(() => {
221
+ if (d.current && c.current) {
222
+ let s = d.current, h = c.current, R, k = new ResizeObserver(() => {
223
+ R = requestAnimationFrame(() => {
224
+ let w = s.offsetHeight;
225
+ h.style.setProperty("--cmdk-list-height", w.toFixed(1) + "px");
226
+ });
227
+ });
228
+ return k.observe(s), () => {
229
+ cancelAnimationFrame(R), k.unobserve(s);
230
+ };
231
+ }
232
+ }, []), n.createElement(I.div, { ref: q(c, a), ...i, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": m, "aria-label": v, id: b.listId }, z(t, (s) => n.createElement("div", { ref: q(d, b.listInnerRef), "cmdk-list-sizer": "" }, s)));
233
+ }), xe = n.forwardRef((t, a) => {
234
+ let { open: r, onOpenChange: v, overlayClassName: i, contentClassName: c, container: d, ...m } = t;
235
+ return n.createElement(ge, { open: r, onOpenChange: v }, n.createElement(he, { container: d }, n.createElement(be, { "cmdk-overlay": "", className: i }), n.createElement(Ee, { "aria-label": t.label, "cmdk-dialog": "", className: c }, n.createElement(fe, { ref: a, ...m }))));
236
+ }), Ae = n.forwardRef((t, a) => S((r) => r.filtered.count === 0) ? n.createElement(I.div, { ref: a, ...t, "cmdk-empty": "", role: "presentation" }) : null), Me = n.forwardRef((t, a) => {
237
+ let { progress: r, children: v, label: i = "Loading...", ...c } = t;
238
+ return n.createElement(I.div, { ref: a, ...c, "cmdk-loading": "", role: "progressbar", "aria-valuenow": r, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": i }, z(t, (d) => n.createElement("div", { "aria-hidden": !0 }, d)));
239
+ }), Ne = Object.assign(fe, { List: Re, Item: we, Input: Ie, Group: ke, Separator: Se, Dialog: xe, Empty: Ae, Loading: Me });
240
+ function Pe(t, a) {
241
+ let r = t.nextElementSibling;
242
+ for (; r; ) {
243
+ if (r.matches(a)) return r;
244
+ r = r.nextElementSibling;
428
245
  }
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;
246
+ }
247
+ function De(t, a) {
248
+ let r = t.previousElementSibling;
249
+ for (; r; ) {
250
+ if (r.matches(a)) return r;
251
+ r = r.previousElementSibling;
435
252
  }
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
253
  }
468
- function ee(e, t) {
469
- const r = e / t;
470
- return isNaN(r) ? 0 : r;
254
+ function me(t) {
255
+ let a = n.useRef(t);
256
+ return M(() => {
257
+ a.current = t;
258
+ }), a;
471
259
  }
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);
260
+ var M = typeof window > "u" ? n.useEffect : n.useLayoutEffect;
261
+ function F(t) {
262
+ let a = n.useRef();
263
+ return a.current === void 0 && (a.current = t()), a;
475
264
  }
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);
265
+ function S(t) {
266
+ let a = Z(), r = () => t(a.snapshot());
267
+ return n.useSyncExternalStore(a.subscribe, r, r);
479
268
  }
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);
269
+ function ve(t, a, r, v = []) {
270
+ let i = n.useRef(), c = O();
271
+ return M(() => {
272
+ var d;
273
+ let m = (() => {
274
+ var s;
275
+ for (let h of r) {
276
+ if (typeof h == "string") return h.trim();
277
+ if (typeof h == "object" && "current" in h) return h.current ? (s = h.current.textContent) == null ? void 0 : s.trim() : i.current;
278
+ }
279
+ })(), b = v.map((s) => s.trim());
280
+ c.value(t, m, b), (d = a.current) == null || d.setAttribute(D, m), i.current = m;
281
+ }), i;
483
282
  }
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]);
283
+ var Fe = () => {
284
+ let [t, a] = n.useState(), r = F(() => /* @__PURE__ */ new Map());
285
+ return M(() => {
286
+ r.current.forEach((v) => v()), r.current = /* @__PURE__ */ new Map();
287
+ }, [t]), (v, i) => {
288
+ r.current.set(v, i), a({});
489
289
  };
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
290
  };
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]);
291
+ function Ke(t) {
292
+ let a = t.type;
293
+ return typeof a == "function" ? a(t.props) : "render" in a ? a.render(t.props) : t;
507
294
  }
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]);
295
+ function z({ asChild: t, children: a }, r) {
296
+ return t && n.isValidElement(a) ? n.cloneElement(Ke(a), { ref: a.ref }, r(a.props.children)) : r(a);
521
297
  }
522
- var He = q, ze = G, Ne = Z;
298
+ var Le = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" };
523
299
  export {
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
300
+ Ne as Command,
301
+ xe as CommandDialog,
302
+ Ae as CommandEmpty,
303
+ ke as CommandGroup,
304
+ Ie as CommandInput,
305
+ we as CommandItem,
306
+ Re as CommandList,
307
+ Me as CommandLoading,
308
+ fe as CommandRoot,
309
+ Se as CommandSeparator,
310
+ Ce as defaultFilter,
311
+ S as useCommandState
532
312
  };