@bioturing/components 0.19.0 → 0.20.0

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 (225) hide show
  1. package/dist/components/{Badge → badge}/component.js.map +1 -1
  2. package/dist/components/{Breadcrumb → breadcrumb}/component.js.map +1 -1
  3. package/dist/components/{Breadcrumb → breadcrumb}/useItemRender.js +6 -5
  4. package/dist/components/breadcrumb/useItemRender.js.map +1 -0
  5. package/dist/components/{Button → button}/component.js.map +1 -1
  6. package/dist/components/{Checkbox → checkbox}/component.js +1 -0
  7. package/dist/components/checkbox/component.js.map +1 -0
  8. package/dist/components/choice-list/component.js +54 -0
  9. package/dist/components/choice-list/component.js.map +1 -0
  10. package/dist/components/choice-list/style.css +1 -0
  11. package/dist/components/cmdk/command-score.js +48 -0
  12. package/dist/components/cmdk/command-score.js.map +1 -0
  13. package/dist/components/cmdk/index.js +611 -0
  14. package/dist/components/cmdk/index.js.map +1 -0
  15. package/dist/components/{CodeBlock → code-block}/component.js +4 -4
  16. package/dist/components/code-block/component.js.map +1 -0
  17. package/dist/components/{Collapse → collapse}/component.js.map +1 -1
  18. package/dist/components/{ColorSelect → color-select}/component.js +10 -10
  19. package/dist/components/color-select/component.js.map +1 -0
  20. package/dist/components/drag-drop/context.js.map +1 -0
  21. package/dist/components/drag-drop/draggable.js.map +1 -0
  22. package/dist/components/drag-drop/droppable.js.map +1 -0
  23. package/dist/components/{DragDrop → drag-drop}/hooks.js +1 -0
  24. package/dist/components/drag-drop/hooks.js.map +1 -0
  25. package/dist/components/drag-drop/index.js.map +1 -0
  26. package/dist/components/{DragDrop → drag-drop}/value.js +4 -4
  27. package/dist/components/drag-drop/value.js.map +1 -0
  28. package/dist/components/dropdown-menu/component.js +199 -0
  29. package/dist/components/dropdown-menu/component.js.map +1 -0
  30. package/dist/components/dropdown-menu/style.css +1 -0
  31. package/dist/components/{DSRoot → ds-root}/component.js +3 -3
  32. package/dist/components/ds-root/component.js.map +1 -0
  33. package/dist/components/ds-root/context.js.map +1 -0
  34. package/dist/components/{Empty → empty}/component.js +6 -5
  35. package/dist/components/empty/component.js.map +1 -0
  36. package/dist/components/{Field → field}/component.js.map +1 -1
  37. package/dist/components/{Form → form}/component.js.map +1 -1
  38. package/dist/components/{Form → form}/item.js +1 -1
  39. package/dist/components/form/item.js.map +1 -0
  40. package/dist/components/hooks/useCharts.js +1 -1
  41. package/dist/components/hooks/useCharts.js.map +1 -1
  42. package/dist/components/{IconButton → icon-button}/component.js +2 -2
  43. package/dist/components/icon-button/component.js.map +1 -0
  44. package/dist/components/input/component.js +26 -0
  45. package/dist/components/input/component.js.map +1 -0
  46. package/dist/components/{Modal → modal}/Modal.js +3 -3
  47. package/dist/components/modal/Modal.js.map +1 -0
  48. package/dist/components/{Modal → modal}/ModalProvider.js.map +1 -1
  49. package/dist/components/{Modal → modal}/ModalService.js +3 -2
  50. package/dist/components/modal/ModalService.js.map +1 -0
  51. package/dist/components/{Modal → modal}/constants.js.map +1 -1
  52. package/dist/components/{Modal → modal}/functions.js +8 -7
  53. package/dist/components/modal/functions.js.map +1 -0
  54. package/dist/components/{Modal → modal}/index.js.map +1 -1
  55. package/dist/components/{Nav → nav}/context.js.map +1 -1
  56. package/dist/components/{Nav → nav}/group.js.map +1 -1
  57. package/dist/components/{Nav → nav}/heading.js.map +1 -1
  58. package/dist/components/{Nav → nav}/index.js +3 -2
  59. package/dist/components/nav/index.js.map +1 -0
  60. package/dist/components/{Nav → nav}/item.js +0 -1
  61. package/dist/components/nav/item.js.map +1 -0
  62. package/dist/components/{Popover → popover}/component.js.map +1 -1
  63. package/dist/components/{PopupPanel → popup-panel}/component.js +47 -47
  64. package/dist/components/popup-panel/component.js.map +1 -0
  65. package/dist/components/popup-panel/constants.js.map +1 -0
  66. package/dist/components/{Radio → radio}/component.js +6 -5
  67. package/dist/components/radio/component.js.map +1 -0
  68. package/dist/components/scroll-area/component.js.map +1 -0
  69. package/dist/components/{Segmented → segmented}/component.js +3 -2
  70. package/dist/components/segmented/component.js.map +1 -0
  71. package/dist/components/{Select → select}/component.js +7 -6
  72. package/dist/components/select/component.js.map +1 -0
  73. package/dist/components/{Slider → slider}/component.js.map +1 -1
  74. package/dist/components/{Spin → spin}/component.js +5 -4
  75. package/dist/components/spin/component.js.map +1 -0
  76. package/dist/components/{Splitter → splitter}/component.js.map +1 -1
  77. package/dist/components/{Stack → stack}/Stack.js.map +1 -1
  78. package/dist/components/{Stack → stack}/StackChild.js.map +1 -1
  79. package/dist/components/{Stack → stack}/index.js.map +1 -1
  80. package/dist/components/{Switch → switch}/component.js +3 -2
  81. package/dist/components/switch/component.js.map +1 -0
  82. package/dist/components/{Table → table}/component.js +1 -1
  83. package/dist/components/{Table → table}/component.js.map +1 -1
  84. package/dist/components/{Tag → tag}/component.js.map +1 -1
  85. package/dist/components/theme-provider/component.js.map +1 -0
  86. package/dist/components/{Toast → toast}/component.js +4 -4
  87. package/dist/components/toast/component.js.map +1 -0
  88. package/dist/components/{Toast → toast}/function.js.map +1 -1
  89. package/dist/components/{Tooltip → tooltip}/component.js.map +1 -1
  90. package/dist/components/{Tour → tour}/component.js.map +1 -1
  91. package/dist/components/{Transition → transition}/component.js.map +1 -1
  92. package/dist/components/{Tree → tree}/components.js.map +1 -1
  93. package/dist/components/{Tree → tree}/helpers.js.map +1 -1
  94. package/dist/components/{Tree → tree}/useTreeCommon.js.map +1 -1
  95. package/dist/components/{Tree → tree}/useUniqueKeysTree.js.map +1 -1
  96. package/dist/components/{Truncate → truncate}/component.js.map +1 -1
  97. package/dist/components/{Truncate → truncate}/helpers.js.map +1 -1
  98. package/dist/components/{Upload → upload}/component.js +1 -1
  99. package/dist/components/{Upload → upload}/component.js.map +1 -1
  100. package/dist/components/{Upload → upload}/dragger.js.map +1 -1
  101. package/dist/components/{Upload → upload}/hooks.js.map +1 -1
  102. package/dist/components/{Upload → upload}/item.js +7 -6
  103. package/dist/components/upload/item.js.map +1 -0
  104. package/dist/components/{Upload → upload}/utils.js.map +1 -1
  105. package/dist/components/utils/WithRenderProp.js +15 -0
  106. package/dist/components/utils/WithRenderProp.js.map +1 -0
  107. package/dist/components/{VerticalCollapsiblePanel → vertical-collapsible-panel}/component.js +9 -9
  108. package/dist/components/vertical-collapsible-panel/component.js.map +1 -0
  109. package/dist/index.d.ts +223 -2
  110. package/dist/index.js +158 -154
  111. package/dist/index.js.map +1 -1
  112. package/dist/metadata.js +14 -0
  113. package/dist/metadata.js.map +1 -1
  114. package/package.json +2 -1
  115. package/dist/components/Breadcrumb/useItemRender.js.map +0 -1
  116. package/dist/components/Checkbox/component.js.map +0 -1
  117. package/dist/components/CodeBlock/component.js.map +0 -1
  118. package/dist/components/ColorSelect/component.js.map +0 -1
  119. package/dist/components/DSRoot/component.js.map +0 -1
  120. package/dist/components/DSRoot/context.js.map +0 -1
  121. package/dist/components/DragDrop/context.js.map +0 -1
  122. package/dist/components/DragDrop/draggable.js.map +0 -1
  123. package/dist/components/DragDrop/droppable.js.map +0 -1
  124. package/dist/components/DragDrop/hooks.js.map +0 -1
  125. package/dist/components/DragDrop/index.js.map +0 -1
  126. package/dist/components/DragDrop/value.js.map +0 -1
  127. package/dist/components/DropdownMenu/component.js +0 -156
  128. package/dist/components/DropdownMenu/component.js.map +0 -1
  129. package/dist/components/DropdownMenu/style.css +0 -1
  130. package/dist/components/Empty/component.js.map +0 -1
  131. package/dist/components/Form/item.js.map +0 -1
  132. package/dist/components/IconButton/component.js.map +0 -1
  133. package/dist/components/Input/component.js +0 -25
  134. package/dist/components/Input/component.js.map +0 -1
  135. package/dist/components/Modal/Modal.js.map +0 -1
  136. package/dist/components/Modal/ModalService.js.map +0 -1
  137. package/dist/components/Modal/functions.js.map +0 -1
  138. package/dist/components/Nav/index.js.map +0 -1
  139. package/dist/components/Nav/item.js.map +0 -1
  140. package/dist/components/PopupPanel/component.js.map +0 -1
  141. package/dist/components/PopupPanel/constants.js.map +0 -1
  142. package/dist/components/Radio/component.js.map +0 -1
  143. package/dist/components/ScrollArea/component.js.map +0 -1
  144. package/dist/components/Segmented/component.js.map +0 -1
  145. package/dist/components/Select/component.js.map +0 -1
  146. package/dist/components/Spin/component.js.map +0 -1
  147. package/dist/components/Switch/component.js.map +0 -1
  148. package/dist/components/ThemeProvider/component.js.map +0 -1
  149. package/dist/components/Toast/component.js.map +0 -1
  150. package/dist/components/Upload/item.js.map +0 -1
  151. package/dist/components/VerticalCollapsiblePanel/component.js.map +0 -1
  152. /package/dist/components/{Badge → badge}/component.js +0 -0
  153. /package/dist/components/{Badge → badge}/style.css +0 -0
  154. /package/dist/components/{Breadcrumb → breadcrumb}/component.js +0 -0
  155. /package/dist/components/{Breadcrumb → breadcrumb}/style.css +0 -0
  156. /package/dist/components/{Button → button}/component.js +0 -0
  157. /package/dist/components/{Button → button}/style.css +0 -0
  158. /package/dist/components/{Checkbox → checkbox}/style.css +0 -0
  159. /package/dist/components/{CodeBlock → code-block}/style.css +0 -0
  160. /package/dist/components/{Collapse → collapse}/component.js +0 -0
  161. /package/dist/components/{Collapse → collapse}/style.css +0 -0
  162. /package/dist/components/{ColorSelect → color-select}/style.css +0 -0
  163. /package/dist/components/{DragDrop → drag-drop}/context.js +0 -0
  164. /package/dist/components/{DragDrop → drag-drop}/draggable.js +0 -0
  165. /package/dist/components/{DragDrop → drag-drop}/droppable.js +0 -0
  166. /package/dist/components/{DragDrop → drag-drop}/index.js +0 -0
  167. /package/dist/components/{DragDrop → drag-drop}/style.css +0 -0
  168. /package/dist/components/{DSRoot → ds-root}/context.js +0 -0
  169. /package/dist/components/{DSRoot → ds-root}/style.css +0 -0
  170. /package/dist/components/{Empty → empty}/style.css +0 -0
  171. /package/dist/components/{Field → field}/component.js +0 -0
  172. /package/dist/components/{Field → field}/style.css +0 -0
  173. /package/dist/components/{Form → form}/component.js +0 -0
  174. /package/dist/components/{Form → form}/style.css +0 -0
  175. /package/dist/components/{IconButton → icon-button}/style.css +0 -0
  176. /package/dist/components/{Modal → modal}/ModalProvider.js +0 -0
  177. /package/dist/components/{Modal → modal}/constants.js +0 -0
  178. /package/dist/components/{Modal → modal}/index.js +0 -0
  179. /package/dist/components/{Modal → modal}/style.css +0 -0
  180. /package/dist/components/{Nav → nav}/context.js +0 -0
  181. /package/dist/components/{Nav → nav}/group.js +0 -0
  182. /package/dist/components/{Nav → nav}/heading.js +0 -0
  183. /package/dist/components/{Nav → nav}/style.css +0 -0
  184. /package/dist/components/{Popover → popover}/component.js +0 -0
  185. /package/dist/components/{PopupPanel → popup-panel}/constants.js +0 -0
  186. /package/dist/components/{PopupPanel → popup-panel}/style.css +0 -0
  187. /package/dist/components/{Radio → radio}/style.css +0 -0
  188. /package/dist/components/{ScrollArea → scroll-area}/component.js +0 -0
  189. /package/dist/components/{ScrollArea → scroll-area}/style.css +0 -0
  190. /package/dist/components/{Segmented → segmented}/style.css +0 -0
  191. /package/dist/components/{Select → select}/style.css +0 -0
  192. /package/dist/components/{Slider → slider}/component.js +0 -0
  193. /package/dist/components/{Spin → spin}/style.css +0 -0
  194. /package/dist/components/{Splitter → splitter}/component.js +0 -0
  195. /package/dist/components/{Splitter → splitter}/style.css +0 -0
  196. /package/dist/components/{Stack → stack}/Stack.js +0 -0
  197. /package/dist/components/{Stack → stack}/StackChild.js +0 -0
  198. /package/dist/components/{Stack → stack}/index.js +0 -0
  199. /package/dist/components/{Stack → stack}/style.css +0 -0
  200. /package/dist/components/{Switch → switch}/style.css +0 -0
  201. /package/dist/components/{Table → table}/style.css +0 -0
  202. /package/dist/components/{Tag → tag}/component.js +0 -0
  203. /package/dist/components/{Tag → tag}/style.css +0 -0
  204. /package/dist/components/{ThemeProvider → theme-provider}/component.js +0 -0
  205. /package/dist/components/{ThemeProvider → theme-provider}/style.css +0 -0
  206. /package/dist/components/{Toast → toast}/function.js +0 -0
  207. /package/dist/components/{Toast → toast}/style.css +0 -0
  208. /package/dist/components/{Tooltip → tooltip}/component.js +0 -0
  209. /package/dist/components/{Tooltip → tooltip}/style.css +0 -0
  210. /package/dist/components/{Tour → tour}/component.js +0 -0
  211. /package/dist/components/{Tour → tour}/style.css +0 -0
  212. /package/dist/components/{Transition → transition}/component.js +0 -0
  213. /package/dist/components/{Tree → tree}/components.js +0 -0
  214. /package/dist/components/{Tree → tree}/helpers.js +0 -0
  215. /package/dist/components/{Tree → tree}/style.css +0 -0
  216. /package/dist/components/{Tree → tree}/useTreeCommon.js +0 -0
  217. /package/dist/components/{Tree → tree}/useUniqueKeysTree.js +0 -0
  218. /package/dist/components/{Truncate → truncate}/component.js +0 -0
  219. /package/dist/components/{Truncate → truncate}/helpers.js +0 -0
  220. /package/dist/components/{Truncate → truncate}/style.css +0 -0
  221. /package/dist/components/{Upload → upload}/dragger.js +0 -0
  222. /package/dist/components/{Upload → upload}/hooks.js +0 -0
  223. /package/dist/components/{Upload → upload}/style.css +0 -0
  224. /package/dist/components/{Upload → upload}/utils.js +0 -0
  225. /package/dist/components/{VerticalCollapsiblePanel → vertical-collapsible-panel}/style.css +0 -0
@@ -0,0 +1,611 @@
1
+ "use client";
2
+ import { jsxs as ee, jsx as S } from "react/jsx-runtime";
3
+ import s, { useId as D } from "react";
4
+ import { Dialog as N } from "@base-ui-components/react";
5
+ import { commandScore as be } from "./command-score.js";
6
+ import G from "merge-refs";
7
+ import { WithRenderProp as A } from "../utils/WithRenderProp.js";
8
+ const F = '[cmdk-group=""]', Y = '[cmdk-group-items=""]', pe = '[cmdk-group-heading=""]', ae = '[cmdk-item=""]', le = `${ae}:not([aria-disabled="true"])`, Z = "cmdk-item-select", M = "data-value", Se = (r, n, t) => be(r, n, t), ue = s.createContext(void 0), K = () => s.useContext(ue), de = s.createContext(void 0), te = () => s.useContext(de), fe = s.createContext(void 0), me = s.forwardRef(
9
+ (r, n) => {
10
+ const t = P(() => ({
11
+ /** Value of the search query. */
12
+ search: "",
13
+ /** Currently selected item value. */
14
+ value: r.value ?? r.defaultValue ?? "",
15
+ /** Currently selected item id. */
16
+ selectedItemId: void 0,
17
+ filtered: {
18
+ /** The count of all visible items. */
19
+ count: 0,
20
+ /** Map from visible item id to its search score. */
21
+ items: /* @__PURE__ */ new Map(),
22
+ /** Set of groups with at least one visible item. */
23
+ groups: /* @__PURE__ */ new Set()
24
+ }
25
+ })), a = P(() => /* @__PURE__ */ new Set()), i = P(() => /* @__PURE__ */ new Map()), u = P(
26
+ () => /* @__PURE__ */ new Map()
27
+ ), d = P(() => /* @__PURE__ */ new Set()), h = he(r), {
28
+ label: v,
29
+ children: m,
30
+ value: g,
31
+ onValueChange: k,
32
+ filter: y,
33
+ shouldFilter: C,
34
+ loop: T,
35
+ disablePointerSelection: ge = !1,
36
+ vimBindings: j = !0,
37
+ ...O
38
+ } = r, q = D(), U = D(), V = D(), b = s.useRef(null), I = Le();
39
+ _(() => {
40
+ if (g !== void 0) {
41
+ const e = g.trim();
42
+ t.current.value = e, E.emit();
43
+ }
44
+ }, [g]), _(() => {
45
+ I(6, ne);
46
+ }, []);
47
+ const E = s.useMemo(() => ({
48
+ subscribe: (e) => (d.current.add(e), () => d.current.delete(e)),
49
+ snapshot: () => t.current,
50
+ setState: (e, l, c) => {
51
+ var o, f, p, w;
52
+ if (!Object.is(t.current[e], l)) {
53
+ if (t.current[e] = l, e === "search")
54
+ J(), H(), I(1, W);
55
+ else if (e === "value") {
56
+ if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
57
+ const R = document.getElementById(V);
58
+ R ? R.focus() : (o = document.getElementById(q)) == null || o.focus();
59
+ }
60
+ if (I(7, () => {
61
+ var R;
62
+ t.current.selectedItemId = (R = L()) == null ? void 0 : R.id, E.emit();
63
+ }), c || I(5, ne), ((f = h.current) == null ? void 0 : f.value) !== void 0) {
64
+ const R = l ?? "";
65
+ (w = (p = h.current).onValueChange) == null || w.call(p, R);
66
+ return;
67
+ }
68
+ }
69
+ E.emit();
70
+ }
71
+ },
72
+ emit: () => {
73
+ d.current.forEach((e) => e());
74
+ }
75
+ }), []), z = s.useMemo(
76
+ () => ({
77
+ // Keep id → {value, keywords} mapping up-to-date
78
+ value: (e, l, c) => {
79
+ var o;
80
+ l !== ((o = u.current.get(e)) == null ? void 0 : o.value) && (u.current.set(e, { value: l, keywords: c }), t.current.filtered.items.set(e, re(l, c)), I(2, () => {
81
+ H(), E.emit();
82
+ }));
83
+ },
84
+ // Track item lifecycle (mount, unmount)
85
+ item: (e, l) => (a.current.add(e), l && (i.current.has(l) ? i.current.get(l).add(e) : i.current.set(l, /* @__PURE__ */ new Set([e]))), I(3, () => {
86
+ J(), H(), t.current.value || W(), E.emit();
87
+ }), () => {
88
+ u.current.delete(e), a.current.delete(e), t.current.filtered.items.delete(e);
89
+ const c = L();
90
+ I(4, () => {
91
+ J(), (c == null ? void 0 : c.getAttribute("id")) === e && W(), E.emit();
92
+ });
93
+ }),
94
+ // Track group lifecycle (mount, unmount)
95
+ group: (e) => (i.current.has(e) || i.current.set(e, /* @__PURE__ */ new Set()), () => {
96
+ u.current.delete(e), i.current.delete(e);
97
+ }),
98
+ filter: () => h.current.shouldFilter,
99
+ label: v || r["aria-label"],
100
+ getDisablePointerSelection: () => h.current.disablePointerSelection,
101
+ listId: q,
102
+ inputId: V,
103
+ labelId: U,
104
+ listInnerRef: b
105
+ }),
106
+ []
107
+ );
108
+ function re(e, l) {
109
+ var o;
110
+ const c = ((o = h.current) == null ? void 0 : o.filter) ?? Se;
111
+ return e ? c(e, t.current.search, l) : 0;
112
+ }
113
+ function H() {
114
+ if (!t.current.search || // Explicitly false, because true | undefined is the default
115
+ h.current.shouldFilter === !1)
116
+ return;
117
+ const e = t.current.filtered.items, l = [];
118
+ t.current.filtered.groups.forEach((o) => {
119
+ const f = i.current.get(o);
120
+ let p = 0;
121
+ f.forEach((w) => {
122
+ const R = e.get(w);
123
+ p = Math.max(R, p);
124
+ }), l.push([o, p]);
125
+ });
126
+ const c = b.current;
127
+ B().sort((o, f) => {
128
+ const p = o.getAttribute("id"), w = f.getAttribute("id");
129
+ return (e.get(w) ?? 0) - (e.get(p) ?? 0);
130
+ }).forEach((o) => {
131
+ const f = o.closest(Y);
132
+ f ? f.appendChild(
133
+ o.parentElement === f ? o : o.closest(`${Y} > *`)
134
+ ) : c.appendChild(
135
+ o.parentElement === c ? o : o.closest(`${Y} > *`)
136
+ );
137
+ }), l.sort((o, f) => f[1] - o[1]).forEach((o) => {
138
+ var p;
139
+ const f = (p = b.current) == null ? void 0 : p.querySelector(
140
+ `${F}[${M}="${encodeURIComponent(o[0])}"]`
141
+ );
142
+ f == null || f.parentElement.appendChild(f);
143
+ });
144
+ }
145
+ function W() {
146
+ const e = B().find(
147
+ (c) => c.getAttribute("aria-disabled") !== "true"
148
+ ), l = e == null ? void 0 : e.getAttribute(M);
149
+ E.setState("value", l || void 0);
150
+ }
151
+ function J() {
152
+ var l, c;
153
+ if (!t.current.search || // Explicitly false, because true | undefined is the default
154
+ h.current.shouldFilter === !1) {
155
+ t.current.filtered.count = a.current.size;
156
+ return;
157
+ }
158
+ t.current.filtered.groups = /* @__PURE__ */ new Set();
159
+ let e = 0;
160
+ for (const o of a.current) {
161
+ const f = ((l = u.current.get(o)) == null ? void 0 : l.value) ?? "", p = ((c = u.current.get(o)) == null ? void 0 : c.keywords) ?? [], w = re(f, p);
162
+ t.current.filtered.items.set(o, w), w > 0 && e++;
163
+ }
164
+ for (const [o, f] of i.current)
165
+ for (const p of f)
166
+ if (t.current.filtered.items.get(p) > 0) {
167
+ t.current.filtered.groups.add(o);
168
+ break;
169
+ }
170
+ t.current.filtered.count = e;
171
+ }
172
+ function ne() {
173
+ var l, c, o;
174
+ const e = L();
175
+ e && (((l = e.parentElement) == null ? void 0 : l.firstChild) === e && ((o = (c = e.closest(F)) == null ? void 0 : c.querySelector(pe)) == null || o.scrollIntoView({ block: "nearest" })), e.scrollIntoView({ block: "nearest" }));
176
+ }
177
+ function L() {
178
+ var e;
179
+ return (e = b.current) == null ? void 0 : e.querySelector(
180
+ `${ae}[aria-selected="true"]`
181
+ );
182
+ }
183
+ function B() {
184
+ var e;
185
+ return Array.from(
186
+ ((e = b.current) == null ? void 0 : e.querySelectorAll(le)) || []
187
+ );
188
+ }
189
+ function Q(e) {
190
+ const c = B()[e];
191
+ c && E.setState("value", c.getAttribute(M));
192
+ }
193
+ function X(e) {
194
+ var p;
195
+ const l = L(), c = B(), o = c.findIndex((w) => w === l);
196
+ let f = c[o + e];
197
+ (p = h.current) != null && p.loop && (f = o + e < 0 ? c[c.length - 1] : o + e === c.length ? c[0] : c[o + e]), f && E.setState("value", f.getAttribute(M));
198
+ }
199
+ function oe(e) {
200
+ const l = L();
201
+ let c = l == null ? void 0 : l.closest(F), o;
202
+ for (; c && !o; )
203
+ c = e > 0 ? Ae(c, F) : _e(c, F), o = c == null ? void 0 : c.querySelector(le);
204
+ o ? E.setState("value", o.getAttribute(M)) : X(e);
205
+ }
206
+ const ce = () => Q(B().length - 1), se = (e) => {
207
+ e.preventDefault(), e.metaKey ? ce() : e.altKey ? oe(1) : X(1);
208
+ }, ie = (e) => {
209
+ e.preventDefault(), e.metaKey ? Q(0) : e.altKey ? oe(-1) : X(-1);
210
+ };
211
+ return /* @__PURE__ */ ee(
212
+ A,
213
+ {
214
+ ref: n,
215
+ tabIndex: -1,
216
+ ...O,
217
+ "cmdk-root": "",
218
+ onKeyDown: (e) => {
219
+ var c;
220
+ (c = O.onKeyDown) == null || c.call(O, e);
221
+ const l = e.nativeEvent.isComposing || e.keyCode === 229;
222
+ if (!(e.defaultPrevented || l))
223
+ switch (e.key) {
224
+ case "n":
225
+ case "j": {
226
+ j && e.ctrlKey && se(e);
227
+ break;
228
+ }
229
+ case "ArrowDown": {
230
+ se(e);
231
+ break;
232
+ }
233
+ case "p":
234
+ case "k": {
235
+ j && e.ctrlKey && ie(e);
236
+ break;
237
+ }
238
+ case "ArrowUp": {
239
+ ie(e);
240
+ break;
241
+ }
242
+ case "Home": {
243
+ e.preventDefault(), Q(0);
244
+ break;
245
+ }
246
+ case "End": {
247
+ e.preventDefault(), ce();
248
+ break;
249
+ }
250
+ case "Enter": {
251
+ e.preventDefault();
252
+ const o = L();
253
+ if (o) {
254
+ const f = new Event(Z);
255
+ o.dispatchEvent(f);
256
+ }
257
+ }
258
+ }
259
+ },
260
+ children: [
261
+ /* @__PURE__ */ S(
262
+ "label",
263
+ {
264
+ "cmdk-label": "",
265
+ htmlFor: z.inputId,
266
+ id: z.labelId,
267
+ style: Pe,
268
+ children: v
269
+ }
270
+ ),
271
+ $(r, (e) => /* @__PURE__ */ S(de.Provider, { value: E, children: /* @__PURE__ */ S(ue.Provider, { value: z, children: e }) }))
272
+ ]
273
+ }
274
+ );
275
+ }
276
+ ), Ee = s.forwardRef(
277
+ (r, n) => {
278
+ var V;
279
+ const t = D(), a = s.useRef(null), i = s.useContext(fe), u = K(), d = he(r), h = ((V = d.current) == null ? void 0 : V.forceMount) ?? (i == null ? void 0 : i.forceMount);
280
+ _(() => {
281
+ if (!h)
282
+ return u.item(t, i == null ? void 0 : i.id);
283
+ }, [h]);
284
+ const v = ve(
285
+ t,
286
+ a,
287
+ [r.value, r.children, a],
288
+ r.keywords
289
+ ), m = te(), g = x(
290
+ (b) => b.value && b.value === v.current
291
+ ), k = x(
292
+ (b) => h || u.filter() === !1 ? !0 : b.search ? b.filtered.items.get(t) > 0 : !0
293
+ );
294
+ s.useEffect(() => {
295
+ const b = a.current;
296
+ if (!(!b || r.disabled))
297
+ return b.addEventListener(Z, y), () => b.removeEventListener(Z, y);
298
+ }, [k, r.onSelect, r.disabled]);
299
+ function y() {
300
+ var b, I;
301
+ C(), (I = (b = d.current).onSelect) == null || I.call(b, v.current);
302
+ }
303
+ function C() {
304
+ m.setState("value", v.current, !0);
305
+ }
306
+ if (!k) return null;
307
+ const {
308
+ disabled: T,
309
+ value: ge,
310
+ onSelect: j,
311
+ forceMount: O,
312
+ keywords: q,
313
+ ...U
314
+ } = r;
315
+ return /* @__PURE__ */ S(
316
+ A,
317
+ {
318
+ ref: G(a, n),
319
+ ...U,
320
+ id: t,
321
+ "cmdk-item": "",
322
+ role: "option",
323
+ "aria-disabled": !!T,
324
+ "aria-selected": !!g,
325
+ "data-disabled": !!T,
326
+ "data-selected": !!g,
327
+ onPointerMove: T || u.getDisablePointerSelection() ? void 0 : C,
328
+ onClick: T ? void 0 : y,
329
+ children: r.children
330
+ }
331
+ );
332
+ }
333
+ ), we = s.forwardRef(
334
+ (r, n) => {
335
+ const { heading: t, children: a, forceMount: i, ...u } = r, d = D(), h = s.useRef(null), v = s.useRef(null), m = D(), g = K(), k = x(
336
+ (C) => i || g.filter() === !1 ? !0 : C.search ? C.filtered.groups.has(d) : !0
337
+ );
338
+ _(() => g.group(d), []), ve(d, h, [r.value, r.heading, v]);
339
+ const y = s.useMemo(
340
+ () => ({ id: d, forceMount: i }),
341
+ [i]
342
+ );
343
+ return /* @__PURE__ */ ee(
344
+ A,
345
+ {
346
+ ref: G(h, n),
347
+ ...u,
348
+ "cmdk-group": "",
349
+ role: "presentation",
350
+ hidden: k ? void 0 : !0,
351
+ children: [
352
+ t && /* @__PURE__ */ S(
353
+ "div",
354
+ {
355
+ ref: v,
356
+ "cmdk-group-heading": "",
357
+ "aria-hidden": !0,
358
+ id: m,
359
+ children: t
360
+ }
361
+ ),
362
+ $(r, (C) => /* @__PURE__ */ S(
363
+ "div",
364
+ {
365
+ "cmdk-group-items": "",
366
+ role: "group",
367
+ "aria-labelledby": t ? m : void 0,
368
+ children: /* @__PURE__ */ S(fe.Provider, { value: y, children: C })
369
+ }
370
+ ))
371
+ ]
372
+ }
373
+ );
374
+ }
375
+ ), Ce = s.forwardRef(
376
+ (r, n) => {
377
+ const { alwaysRender: t, ...a } = r, i = s.useRef(null), u = x((d) => !d.search);
378
+ return !t && !u ? null : /* @__PURE__ */ S(
379
+ A,
380
+ {
381
+ ref: G(i, n),
382
+ ...a,
383
+ "cmdk-separator": "",
384
+ role: "separator"
385
+ }
386
+ );
387
+ }
388
+ ), Ie = s.forwardRef(
389
+ (r, n) => {
390
+ const { onValueChange: t, ...a } = r, i = r.value != null, u = te(), d = x((m) => m.search), h = x((m) => m.selectedItemId), v = K();
391
+ return s.useEffect(() => {
392
+ r.value != null && u.setState("search", r.value);
393
+ }, [r.value]), /* @__PURE__ */ S(
394
+ A,
395
+ {
396
+ as: "input",
397
+ ref: n,
398
+ ...a,
399
+ "cmdk-input": "",
400
+ autoComplete: "off",
401
+ autoCorrect: "off",
402
+ spellCheck: !1,
403
+ "aria-autocomplete": "list",
404
+ role: "combobox",
405
+ "aria-expanded": !0,
406
+ "aria-controls": v.listId,
407
+ "aria-labelledby": v.labelId,
408
+ "aria-activedescendant": h,
409
+ id: v.inputId,
410
+ type: "text",
411
+ value: i ? r.value : d,
412
+ onChange: (m) => {
413
+ i || u.setState("search", m.target.value), t == null || t(m.target.value);
414
+ }
415
+ }
416
+ );
417
+ }
418
+ ), ye = s.forwardRef(
419
+ (r, n) => {
420
+ const { children: t, label: a = "Suggestions", ...i } = r, u = s.useRef(null), d = s.useRef(null), h = x((m) => m.selectedItemId), v = K();
421
+ return s.useEffect(() => {
422
+ if (d.current && u.current) {
423
+ const m = d.current, g = u.current;
424
+ let k;
425
+ const y = new ResizeObserver(() => {
426
+ k = requestAnimationFrame(() => {
427
+ const C = m.offsetHeight;
428
+ g.style.setProperty(
429
+ "--cmdk-list-height",
430
+ C.toFixed(1) + "px"
431
+ );
432
+ });
433
+ });
434
+ return y.observe(m), () => {
435
+ cancelAnimationFrame(k), y.unobserve(m);
436
+ };
437
+ }
438
+ }, []), /* @__PURE__ */ S(
439
+ A,
440
+ {
441
+ ref: G(u, n),
442
+ ...i,
443
+ "cmdk-list": "",
444
+ role: "listbox",
445
+ tabIndex: -1,
446
+ "aria-activedescendant": h,
447
+ "aria-label": a,
448
+ id: v.listId,
449
+ children: $(r, (m) => /* @__PURE__ */ S(
450
+ "div",
451
+ {
452
+ ref: G(d, v.listInnerRef),
453
+ "cmdk-list-sizer": "",
454
+ children: m
455
+ }
456
+ ))
457
+ }
458
+ );
459
+ }
460
+ ), Re = s.forwardRef(
461
+ (r, n) => {
462
+ const {
463
+ open: t,
464
+ onOpenChange: a,
465
+ overlayClassName: i,
466
+ contentClassName: u,
467
+ container: d,
468
+ ...h
469
+ } = r;
470
+ return /* @__PURE__ */ S(N.Root, { open: t, onOpenChange: a, children: /* @__PURE__ */ ee(N.Portal, { container: d, children: [
471
+ /* @__PURE__ */ S(N.Backdrop, { "cmdk-overlay": "", className: i }),
472
+ /* @__PURE__ */ S(
473
+ N.Popup,
474
+ {
475
+ "aria-label": r.label,
476
+ "cmdk-dialog": "",
477
+ className: u,
478
+ children: /* @__PURE__ */ S(me, { ref: n, ...h })
479
+ }
480
+ )
481
+ ] }) });
482
+ }
483
+ ), ke = s.forwardRef(
484
+ (r, n) => x((a) => a.filtered.count === 0) ? /* @__PURE__ */ S(
485
+ A,
486
+ {
487
+ ref: n,
488
+ ...r,
489
+ "cmdk-empty": "",
490
+ role: "presentation"
491
+ }
492
+ ) : null
493
+ ), xe = s.forwardRef(
494
+ (r, n) => {
495
+ const { progress: t, children: a, label: i = "Loading...", ...u } = r;
496
+ return /* @__PURE__ */ S(
497
+ A,
498
+ {
499
+ ref: n,
500
+ ...u,
501
+ "cmdk-loading": "",
502
+ role: "progressbar",
503
+ "aria-valuenow": t,
504
+ "aria-valuemin": 0,
505
+ "aria-valuemax": 100,
506
+ "aria-label": i,
507
+ children: $(r, (d) => /* @__PURE__ */ S("div", { "aria-hidden": !0, children: d }))
508
+ }
509
+ );
510
+ }
511
+ ), Ge = Object.assign(me, {
512
+ List: ye,
513
+ Item: Ee,
514
+ Input: Ie,
515
+ Group: we,
516
+ Separator: Ce,
517
+ Dialog: Re,
518
+ Empty: ke,
519
+ Loading: xe
520
+ });
521
+ function Ae(r, n) {
522
+ let t = r.nextElementSibling;
523
+ for (; t; ) {
524
+ if (t.matches(n)) return t;
525
+ t = t.nextElementSibling;
526
+ }
527
+ }
528
+ function _e(r, n) {
529
+ let t = r.previousElementSibling;
530
+ for (; t; ) {
531
+ if (t.matches(n)) return t;
532
+ t = t.previousElementSibling;
533
+ }
534
+ }
535
+ function he(r) {
536
+ const n = s.useRef(r);
537
+ return _(() => {
538
+ n.current = r;
539
+ }), n;
540
+ }
541
+ const _ = typeof window > "u" ? s.useEffect : s.useLayoutEffect;
542
+ function P(r) {
543
+ const n = s.useRef(void 0);
544
+ return n.current === void 0 && (n.current = r()), n;
545
+ }
546
+ function x(r) {
547
+ const n = te(), t = () => r(n.snapshot());
548
+ return s.useSyncExternalStore(n.subscribe, t, t);
549
+ }
550
+ function ve(r, n, t, a = []) {
551
+ const i = s.useRef(void 0), u = K();
552
+ return _(() => {
553
+ var v;
554
+ const d = (() => {
555
+ var m;
556
+ for (const g of t) {
557
+ if (typeof g == "string")
558
+ return g.trim();
559
+ if (typeof g == "object" && "current" in g)
560
+ return g.current ? (m = g.current.textContent) == null ? void 0 : m.trim() : i.current;
561
+ }
562
+ })(), h = a.map((m) => m.trim());
563
+ u.value(r, d, h), (v = n.current) == null || v.setAttribute(M, d), i.current = d;
564
+ }), i;
565
+ }
566
+ const Le = () => {
567
+ const [r, n] = s.useState(), t = P(() => /* @__PURE__ */ new Map());
568
+ return _(() => {
569
+ t.current.forEach((a) => a()), t.current = /* @__PURE__ */ new Map();
570
+ }, [r]), (a, i) => {
571
+ t.current.set(a, i), n({});
572
+ };
573
+ };
574
+ function Me(r) {
575
+ const n = r.type;
576
+ return typeof n == "function" ? n(r.props) : "render" in n ? n.render(r.props) : r;
577
+ }
578
+ function $({ asChild: r, children: n }, t) {
579
+ return r && s.isValidElement(n) ? s.cloneElement(
580
+ Me(n),
581
+ { ref: n.ref },
582
+ // @ts-expect-error expect error here
583
+ t(n.props.children)
584
+ ) : t(n);
585
+ }
586
+ const Pe = {
587
+ position: "absolute",
588
+ width: "1px",
589
+ height: "1px",
590
+ padding: "0",
591
+ margin: "-1px",
592
+ overflow: "hidden",
593
+ clip: "rect(0, 0, 0, 0)",
594
+ whiteSpace: "nowrap",
595
+ borderWidth: "0"
596
+ };
597
+ export {
598
+ Ge as Command,
599
+ Re as CommandDialog,
600
+ ke as CommandEmpty,
601
+ we as CommandGroup,
602
+ Ie as CommandInput,
603
+ Ee as CommandItem,
604
+ ye as CommandList,
605
+ xe as CommandLoading,
606
+ me as CommandRoot,
607
+ Ce as CommandSeparator,
608
+ Se as defaultFilter,
609
+ x as useCommandState
610
+ };
611
+ //# sourceMappingURL=index.js.map