@forgedevstack/bear 1.0.4 → 1.0.6

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 (133) hide show
  1. package/dist/components/AppBar/AppBar.cjs +1 -1
  2. package/dist/components/AppBar/AppBar.js +8 -8
  3. package/dist/components/Button/Button.constants.cjs +1 -1
  4. package/dist/components/Button/Button.constants.js +1 -1
  5. package/dist/components/Button/Button.d.ts +5 -3
  6. package/dist/components/Calendar/Calendar.cjs +1 -1
  7. package/dist/components/Calendar/Calendar.const.cjs +1 -1
  8. package/dist/components/Calendar/Calendar.const.d.ts +1 -0
  9. package/dist/components/Calendar/Calendar.const.js +6 -5
  10. package/dist/components/Calendar/Calendar.helpers.cjs +1 -1
  11. package/dist/components/Calendar/Calendar.helpers.js +4 -4
  12. package/dist/components/Calendar/Calendar.js +128 -128
  13. package/dist/components/Cascader/Cascader.cjs +1 -0
  14. package/dist/components/Cascader/Cascader.const.cjs +1 -0
  15. package/dist/components/Cascader/Cascader.const.d.ts +33 -0
  16. package/dist/components/Cascader/Cascader.const.js +21 -0
  17. package/dist/components/Cascader/Cascader.d.ts +17 -0
  18. package/dist/components/Cascader/Cascader.js +227 -0
  19. package/dist/components/Cascader/Cascader.types.d.ts +94 -0
  20. package/dist/components/Cascader/index.d.ts +2 -0
  21. package/dist/components/CommandPalette/CommandPalette.cjs +1 -0
  22. package/dist/components/CommandPalette/CommandPalette.const.cjs +1 -0
  23. package/dist/components/CommandPalette/CommandPalette.const.d.ts +25 -0
  24. package/dist/components/CommandPalette/CommandPalette.const.js +13 -0
  25. package/dist/components/CommandPalette/CommandPalette.d.ts +18 -0
  26. package/dist/components/CommandPalette/CommandPalette.js +190 -0
  27. package/dist/components/CommandPalette/CommandPalette.types.d.ts +90 -0
  28. package/dist/components/CommandPalette/CommandPalette.utils.cjs +1 -0
  29. package/dist/components/CommandPalette/CommandPalette.utils.d.ts +17 -0
  30. package/dist/components/CommandPalette/CommandPalette.utils.js +63 -0
  31. package/dist/components/CommandPalette/index.d.ts +2 -0
  32. package/dist/components/CreditInput/CreditInput.cjs +1 -0
  33. package/dist/components/CreditInput/CreditInput.const.cjs +1 -0
  34. package/dist/components/CreditInput/CreditInput.const.d.ts +37 -0
  35. package/dist/components/CreditInput/CreditInput.const.js +66 -0
  36. package/dist/components/CreditInput/CreditInput.d.ts +15 -0
  37. package/dist/components/CreditInput/CreditInput.js +214 -0
  38. package/dist/components/CreditInput/CreditInput.types.d.ts +93 -0
  39. package/dist/components/CreditInput/CreditInput.utils.cjs +1 -0
  40. package/dist/components/CreditInput/CreditInput.utils.d.ts +48 -0
  41. package/dist/components/CreditInput/CreditInput.utils.js +79 -0
  42. package/dist/components/CreditInput/index.d.ts +2 -0
  43. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  44. package/dist/components/DatePicker/DatePicker.js +108 -84
  45. package/dist/components/DatePicker/DatePicker.types.d.ts +2 -1
  46. package/dist/components/Drawer/Drawer.cjs +1 -1
  47. package/dist/components/Drawer/Drawer.js +75 -44
  48. package/dist/components/Form/Form.cjs +1 -0
  49. package/dist/components/Form/Form.const.cjs +1 -0
  50. package/dist/components/Form/Form.const.d.ts +33 -0
  51. package/dist/components/Form/Form.const.js +27 -0
  52. package/dist/components/Form/Form.context.cjs +1 -0
  53. package/dist/components/Form/Form.context.d.ts +13 -0
  54. package/dist/components/Form/Form.context.js +12 -0
  55. package/dist/components/Form/Form.d.ts +18 -0
  56. package/dist/components/Form/Form.js +230 -0
  57. package/dist/components/Form/Form.types.d.ts +166 -0
  58. package/dist/components/Form/Form.utils.cjs +1 -0
  59. package/dist/components/Form/Form.utils.d.ts +17 -0
  60. package/dist/components/Form/Form.utils.js +31 -0
  61. package/dist/components/Form/index.d.ts +3 -0
  62. package/dist/components/Input/Input.cjs +1 -1
  63. package/dist/components/Input/Input.js +36 -36
  64. package/dist/components/NotificationCenter/NotificationCenter.cjs +1 -0
  65. package/dist/components/NotificationCenter/NotificationCenter.const.cjs +1 -0
  66. package/dist/components/NotificationCenter/NotificationCenter.const.d.ts +25 -0
  67. package/dist/components/NotificationCenter/NotificationCenter.const.js +28 -0
  68. package/dist/components/NotificationCenter/NotificationCenter.d.ts +15 -0
  69. package/dist/components/NotificationCenter/NotificationCenter.js +223 -0
  70. package/dist/components/NotificationCenter/NotificationCenter.types.d.ts +117 -0
  71. package/dist/components/NotificationCenter/NotificationCenter.utils.cjs +1 -0
  72. package/dist/components/NotificationCenter/NotificationCenter.utils.d.ts +11 -0
  73. package/dist/components/NotificationCenter/NotificationCenter.utils.js +19 -0
  74. package/dist/components/NotificationCenter/index.d.ts +2 -0
  75. package/dist/components/PhoneInput/PhoneInput.cjs +1 -0
  76. package/dist/components/PhoneInput/PhoneInput.const.cjs +1 -0
  77. package/dist/components/PhoneInput/PhoneInput.const.d.ts +33 -0
  78. package/dist/components/PhoneInput/PhoneInput.const.js +82 -0
  79. package/dist/components/PhoneInput/PhoneInput.d.ts +16 -0
  80. package/dist/components/PhoneInput/PhoneInput.js +194 -0
  81. package/dist/components/PhoneInput/PhoneInput.types.d.ts +108 -0
  82. package/dist/components/PhoneInput/PhoneInput.utils.cjs +1 -0
  83. package/dist/components/PhoneInput/PhoneInput.utils.d.ts +25 -0
  84. package/dist/components/PhoneInput/PhoneInput.utils.js +39 -0
  85. package/dist/components/PhoneInput/index.d.ts +2 -0
  86. package/dist/components/Select/Select.cjs +1 -1
  87. package/dist/components/Select/Select.js +37 -37
  88. package/dist/components/Sidebar/Sidebar.cjs +1 -1
  89. package/dist/components/Sidebar/Sidebar.const.cjs +1 -1
  90. package/dist/components/Sidebar/Sidebar.const.d.ts +6 -2
  91. package/dist/components/Sidebar/Sidebar.const.js +24 -17
  92. package/dist/components/Sidebar/Sidebar.js +36 -31
  93. package/dist/components/Sidebar/Sidebar.types.d.ts +9 -0
  94. package/dist/components/Sidebar/components/SidebarItem/SidebarItem.cjs +1 -1
  95. package/dist/components/Sidebar/components/SidebarItem/SidebarItem.js +30 -29
  96. package/dist/components/SignPad/SignPad.cjs +1 -1
  97. package/dist/components/SignPad/SignPad.js +56 -56
  98. package/dist/components/TimePicker/TimePicker.cjs +1 -1
  99. package/dist/components/TimePicker/TimePicker.constants.cjs +1 -1
  100. package/dist/components/TimePicker/TimePicker.constants.d.ts +22 -1
  101. package/dist/components/TimePicker/TimePicker.constants.js +36 -19
  102. package/dist/components/TimePicker/TimePicker.js +97 -131
  103. package/dist/components/TimePicker/TimePicker.types.d.ts +47 -6
  104. package/dist/components/TimePicker/components/TimePickerColumnsDropdown/TimePickerColumnsDropdown.cjs +1 -0
  105. package/dist/components/TimePicker/components/TimePickerColumnsDropdown/TimePickerColumnsDropdown.d.ts +3 -0
  106. package/dist/components/TimePicker/components/TimePickerColumnsDropdown/TimePickerColumnsDropdown.js +81 -0
  107. package/dist/components/TimePicker/components/TimePickerColumnsDropdown/index.d.ts +1 -0
  108. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.cjs +1 -0
  109. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.d.ts +3 -0
  110. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.js +84 -0
  111. package/dist/components/TimePicker/components/TimePickerDialDropdown/index.d.ts +1 -0
  112. package/dist/components/TimePicker/helpers/ClockFaceSvg.cjs +1 -0
  113. package/dist/components/TimePicker/helpers/ClockFaceSvg.d.ts +18 -0
  114. package/dist/components/TimePicker/helpers/ClockFaceSvg.js +67 -0
  115. package/dist/components/TimePicker/helpers/index.d.ts +2 -0
  116. package/dist/components/TimePicker/index.d.ts +1 -1
  117. package/dist/components/index.cjs +1 -1
  118. package/dist/components/index.d.ts +13 -3
  119. package/dist/components/index.js +139 -126
  120. package/dist/context/BearProvider.cjs +1 -1
  121. package/dist/context/BearProvider.js +25 -25
  122. package/dist/index.cjs +1 -1
  123. package/dist/index.js +247 -234
  124. package/dist/styles.css +1 -1
  125. package/package.json +1 -1
  126. package/dist/components/DateTimePicker/DateTimePicker.cjs +0 -1
  127. package/dist/components/DateTimePicker/DateTimePicker.d.ts +0 -3
  128. package/dist/components/DateTimePicker/DateTimePicker.js +0 -178
  129. package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +0 -26
  130. package/dist/components/DateTimePicker/DateTimePicker.utils.cjs +0 -1
  131. package/dist/components/DateTimePicker/DateTimePicker.utils.d.ts +0 -2
  132. package/dist/components/DateTimePicker/DateTimePicker.utils.js +0 -16
  133. package/dist/components/DateTimePicker/index.d.ts +0 -2
@@ -0,0 +1,21 @@
1
+ const e = {
2
+ placeholder: "Select option",
3
+ noOptions: "No options available",
4
+ loading: "Loading...",
5
+ clear: "Clear"
6
+ }, r = {
7
+ sm: "bear-py-1.5 bear-px-3 bear-text-sm",
8
+ md: "bear-py-2 bear-px-4 bear-text-sm",
9
+ lg: "bear-py-2.5 bear-px-5 bear-text-base"
10
+ }, a = {
11
+ default: "bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",
12
+ filled: "bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",
13
+ outline: "bear-bg-transparent bear-border-zinc-300 dark:bear-border-zinc-500"
14
+ }, b = 9999, n = " / ";
15
+ export {
16
+ e as CASCADER_DEFAULT_TRANSLATIONS,
17
+ b as CASCADER_DROPDOWN_Z_INDEX,
18
+ n as CASCADER_PATH_SEPARATOR,
19
+ r as CASCADER_SIZE_CLASSES,
20
+ a as CASCADER_VARIANT_CLASSES
21
+ };
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { CascaderProps } from './Cascader.types';
3
+ /**
4
+ * Cascader - Hierarchical selection component
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <Cascader
9
+ * options={[
10
+ * { value: 'electronics', label: 'Electronics', children: [...] }
11
+ * ]}
12
+ * value={['electronics', 'phones']}
13
+ * onChange={(value, options) => console.log(value, options)}
14
+ * />
15
+ * ```
16
+ */
17
+ export declare const Cascader: FC<CascaderProps>;
@@ -0,0 +1,227 @@
1
+ import { jsxs as h, jsx as c } from "react/jsx-runtime";
2
+ import { useState as R, useRef as H, useMemo as O, useEffect as P, useCallback as w } from "react";
3
+ import { createPortal as $ } from "react-dom";
4
+ import { cn as y } from "../../utils/cn.js";
5
+ import { CASCADER_DEFAULT_TRANSLATIONS as ee, CASCADER_PATH_SEPARATOR as re, CASCADER_VARIANT_CLASSES as ae, CASCADER_SIZE_CLASSES as te, CASCADER_DROPDOWN_Z_INDEX as ne } from "./Cascader.const.js";
6
+ const ce = ({
7
+ options: b,
8
+ selectedPath: s,
9
+ expandedPath: o,
10
+ onSelect: B,
11
+ onExpand: p,
12
+ expandTrigger: k,
13
+ level: i
14
+ }) => {
15
+ const m = (a) => {
16
+ var d;
17
+ B(a, i), (d = a.children) != null && d.length && p(a, i);
18
+ }, v = (a) => {
19
+ var d;
20
+ k === "hover" && ((d = a.children) != null && d.length) && p(a, i);
21
+ };
22
+ return /* @__PURE__ */ c("div", { className: "Bear-Cascader__panel bear-min-w-[180px] bear-max-h-[280px] bear-overflow-y-auto bear-border-r bear-border-zinc-200 dark:bear-border-zinc-700 last:bear-border-r-0", children: b.map((a) => {
23
+ const d = s[i] === a.value, C = o[i] === a.value, N = a.children && a.children.length > 0;
24
+ return /* @__PURE__ */ h(
25
+ "button",
26
+ {
27
+ type: "button",
28
+ disabled: a.disabled,
29
+ onClick: () => m(a),
30
+ onMouseEnter: () => v(a),
31
+ className: y(
32
+ "Bear-Cascader__option bear-w-full bear-flex bear-items-center bear-justify-between bear-px-3 bear-py-2 bear-text-sm bear-text-left bear-transition-colors",
33
+ d && "Bear-Cascader__option--selected bear-bg-pink-500/20 bear-text-pink-600 dark:bear-text-pink-400",
34
+ C && !d && "Bear-Cascader__option--expanded bear-bg-gray-100 dark:bear-bg-zinc-700",
35
+ !d && !C && "bear-text-gray-700 dark:bear-text-zinc-300 hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700",
36
+ a.disabled && "Bear-Cascader__option--disabled bear-opacity-50 bear-cursor-not-allowed"
37
+ ),
38
+ children: [
39
+ /* @__PURE__ */ h("span", { className: "bear-flex bear-items-center bear-gap-2", children: [
40
+ a.icon && /* @__PURE__ */ c("span", { className: "Bear-Cascader__option-icon", children: a.icon }),
41
+ /* @__PURE__ */ c("span", { className: "Bear-Cascader__option-label", children: a.label })
42
+ ] }),
43
+ N && /* @__PURE__ */ c("svg", { className: "Bear-Cascader__arrow bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ c("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
44
+ ]
45
+ },
46
+ a.value
47
+ );
48
+ }) });
49
+ }, be = ({
50
+ options: b,
51
+ value: s = [],
52
+ onChange: o,
53
+ placeholder: B,
54
+ label: p,
55
+ helperText: k,
56
+ error: i,
57
+ disabled: m = !1,
58
+ loading: v = !1,
59
+ clearable: a = !0,
60
+ size: d = "md",
61
+ variant: C = "default",
62
+ expandTrigger: N = "click",
63
+ showFullPath: D = !0,
64
+ pathSeparator: j = re,
65
+ changeOnSelect: M = !1,
66
+ className: U,
67
+ testId: V,
68
+ translations: T,
69
+ icon: Y
70
+ }) => {
71
+ const [x, E] = R(!1), [_, A] = R([]), [I, q] = R({ top: 0, left: 0 }), W = H(null), z = H(null), S = O(() => ({
72
+ ...ee,
73
+ ...T
74
+ }), [T]);
75
+ P(() => {
76
+ if (x && z.current) {
77
+ const e = z.current.getBoundingClientRect(), t = window.scrollY || document.documentElement.scrollTop, r = window.scrollX || document.documentElement.scrollLeft;
78
+ q({
79
+ top: e.bottom + t + 8,
80
+ left: e.left + r
81
+ });
82
+ }
83
+ }, [x]), P(() => {
84
+ const e = (t) => {
85
+ var n, l;
86
+ const r = t.target;
87
+ (n = W.current) != null && n.contains(r) || (l = r.closest) != null && l.call(r, "[data-bear-cascader-dropdown]") || E(!1);
88
+ };
89
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
90
+ }, []), P(() => {
91
+ s.length > 0 && A(s.slice(0, -1));
92
+ }, [s]);
93
+ const F = w((e, t) => {
94
+ for (const r of e) {
95
+ if (r.value === t) return r;
96
+ if (r.children) {
97
+ const n = F(r.children, t);
98
+ if (n) return n;
99
+ }
100
+ }
101
+ }, []), X = O(() => {
102
+ var t;
103
+ if (s.length === 0) return "";
104
+ const e = s.map((r, n) => {
105
+ let l = b;
106
+ for (let f = 0; f < n; f++) {
107
+ const u = l.find((L) => L.value === s[f]);
108
+ u != null && u.children && (l = u.children);
109
+ }
110
+ return l.find((f) => f.value === r);
111
+ }).filter(Boolean);
112
+ return D ? e.map((r) => r.label).join(j) : ((t = e[e.length - 1]) == null ? void 0 : t.label) || "";
113
+ }, [s, b, D, j]), Z = O(() => {
114
+ const e = [b];
115
+ let t = b;
116
+ for (const r of _) {
117
+ const n = t.find((l) => l.value === r);
118
+ if (n != null && n.children)
119
+ e.push(n.children), t = n.children;
120
+ else
121
+ break;
122
+ }
123
+ return e;
124
+ }, [b, _]), G = w((e, t) => {
125
+ var n, l;
126
+ const r = [..._.slice(0, t), e.value];
127
+ if (!((n = e.children) != null && n.length) || M) {
128
+ const f = [];
129
+ let u = b;
130
+ for (const L of r) {
131
+ const g = u.find((Q) => Q.value === L);
132
+ g && (f.push(g), g.children && (u = g.children));
133
+ }
134
+ o == null || o(r, f), (l = e.children) != null && l.length || E(!1);
135
+ }
136
+ }, [_, b, o, M]), J = w((e, t) => {
137
+ A((r) => [...r.slice(0, t), e.value]);
138
+ }, []), K = w((e) => {
139
+ e.stopPropagation(), o == null || o([], []), A([]);
140
+ }, [o]);
141
+ return /* @__PURE__ */ h(
142
+ "div",
143
+ {
144
+ ref: W,
145
+ className: y("Bear-Cascader bear-relative", U),
146
+ "data-testid": V,
147
+ children: [
148
+ p && /* @__PURE__ */ c("label", { className: "Bear-Cascader__label bear-block bear-text-sm bear-font-medium bear-text-zinc-700 dark:bear-text-zinc-300 bear-mb-1.5", children: p }),
149
+ /* @__PURE__ */ h(
150
+ "button",
151
+ {
152
+ ref: z,
153
+ type: "button",
154
+ onClick: () => !m && E(!x),
155
+ disabled: m,
156
+ className: y(
157
+ "Bear-Cascader__trigger bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",
158
+ te[d],
159
+ ae[C],
160
+ i ? "bear-border-red-500" : "focus:bear-border-pink-500",
161
+ m && "bear-opacity-50 bear-cursor-not-allowed",
162
+ X ? "bear-text-gray-900 dark:bear-text-white" : "bear-text-gray-500 dark:bear-text-zinc-500"
163
+ ),
164
+ children: [
165
+ /* @__PURE__ */ c("span", { className: "Bear-Cascader__value bear-truncate bear-flex-1", children: v ? S.loading : X || B || S.placeholder }),
166
+ /* @__PURE__ */ h("span", { className: "Bear-Cascader__icons bear-flex bear-items-center bear-gap-1", children: [
167
+ a && s.length > 0 && !m && /* @__PURE__ */ c(
168
+ "span",
169
+ {
170
+ onClick: K,
171
+ className: "Bear-Cascader__clear bear-p-0.5 bear-rounded hover:bear-bg-gray-200 dark:hover:bear-bg-zinc-700 bear-cursor-pointer",
172
+ children: /* @__PURE__ */ c("svg", { className: "bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ c("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
173
+ }
174
+ ),
175
+ Y ?? /* @__PURE__ */ c(
176
+ "svg",
177
+ {
178
+ className: y(
179
+ "Bear-Cascader__chevron bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400 bear-transition-transform",
180
+ x && "bear-rotate-180"
181
+ ),
182
+ fill: "none",
183
+ viewBox: "0 0 24 24",
184
+ stroke: "currentColor",
185
+ children: /* @__PURE__ */ c("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
186
+ }
187
+ )
188
+ ] })
189
+ ]
190
+ }
191
+ ),
192
+ i && /* @__PURE__ */ c("p", { className: "Bear-Cascader__error bear-mt-1 bear-text-xs bear-text-red-400", children: i }),
193
+ k && !i && /* @__PURE__ */ c("p", { className: "Bear-Cascader__helper bear-mt-1 bear-text-xs bear-text-zinc-500 dark:bear-text-zinc-400", children: k }),
194
+ x && typeof document < "u" && $(
195
+ /* @__PURE__ */ h(
196
+ "div",
197
+ {
198
+ "data-bear-cascader-dropdown": !0,
199
+ className: "Bear-Cascader__dropdown bear-fixed bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-zinc-200 dark:bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-flex bear-overflow-hidden",
200
+ style: { top: I.top, left: I.left, zIndex: ne },
201
+ children: [
202
+ Z.map((e, t) => /* @__PURE__ */ c(
203
+ ce,
204
+ {
205
+ options: e,
206
+ selectedPath: s,
207
+ expandedPath: _,
208
+ onSelect: G,
209
+ onExpand: J,
210
+ expandTrigger: N,
211
+ level: t
212
+ },
213
+ t
214
+ )),
215
+ Z.every((e) => e.length === 0) && /* @__PURE__ */ c("div", { className: "Bear-Cascader__empty bear-px-4 bear-py-3 bear-text-sm bear-text-gray-500 dark:bear-text-zinc-500", children: S.noOptions })
216
+ ]
217
+ }
218
+ ),
219
+ document.body
220
+ )
221
+ ]
222
+ }
223
+ );
224
+ };
225
+ export {
226
+ be as Cascader
227
+ };
@@ -0,0 +1,94 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Cascader option interface
4
+ */
5
+ export interface CascaderOption {
6
+ /** Unique value for the option */
7
+ value: string;
8
+ /** Display label */
9
+ label: string;
10
+ /** Child options for nested levels */
11
+ children?: CascaderOption[];
12
+ /** Whether the option is disabled */
13
+ disabled?: boolean;
14
+ /** Optional icon */
15
+ icon?: ReactNode;
16
+ }
17
+ /**
18
+ * Cascader size variants
19
+ */
20
+ export type CascaderSize = 'sm' | 'md' | 'lg';
21
+ /**
22
+ * Cascader variant styles
23
+ */
24
+ export type CascaderVariant = 'default' | 'filled' | 'outline';
25
+ /**
26
+ * Trigger type for expanding options
27
+ */
28
+ export type CascaderExpandTrigger = 'click' | 'hover';
29
+ /**
30
+ * Translations for Cascader component
31
+ */
32
+ export interface CascaderTranslations {
33
+ placeholder: string;
34
+ noOptions: string;
35
+ loading: string;
36
+ clear: string;
37
+ }
38
+ /**
39
+ * Cascader component props
40
+ */
41
+ export interface CascaderProps {
42
+ /** Available options (hierarchical) */
43
+ options: CascaderOption[];
44
+ /** Selected value path (array of values) */
45
+ value?: string[];
46
+ /** Callback when value changes */
47
+ onChange?: (value: string[], selectedOptions: CascaderOption[]) => void;
48
+ /** Placeholder text */
49
+ placeholder?: string;
50
+ /** Input label */
51
+ label?: string;
52
+ /** Helper text below input */
53
+ helperText?: string;
54
+ /** Error message */
55
+ error?: string;
56
+ /** Whether the input is disabled */
57
+ disabled?: boolean;
58
+ /** Whether the input is loading */
59
+ loading?: boolean;
60
+ /** Whether to allow clearing the selection */
61
+ clearable?: boolean;
62
+ /** Size variant */
63
+ size?: CascaderSize;
64
+ /** Style variant */
65
+ variant?: CascaderVariant;
66
+ /** How to expand child options */
67
+ expandTrigger?: CascaderExpandTrigger;
68
+ /** Whether to show the full path in the input */
69
+ showFullPath?: boolean;
70
+ /** Path separator for display */
71
+ pathSeparator?: string;
72
+ /** Allow selecting parent options */
73
+ changeOnSelect?: boolean;
74
+ /** Custom class name */
75
+ className?: string;
76
+ /** Test ID for testing */
77
+ testId?: string;
78
+ /** Translation strings */
79
+ translations?: Partial<CascaderTranslations>;
80
+ /** Custom icon */
81
+ icon?: ReactNode;
82
+ }
83
+ /**
84
+ * Cascader panel props (internal)
85
+ */
86
+ export interface CascaderPanelProps {
87
+ options: CascaderOption[];
88
+ selectedPath: string[];
89
+ expandedPath: string[];
90
+ onSelect: (option: CascaderOption, level: number) => void;
91
+ onExpand: (option: CascaderOption, level: number) => void;
92
+ expandTrigger: CascaderExpandTrigger;
93
+ level: number;
94
+ }
@@ -0,0 +1,2 @@
1
+ export { Cascader } from './Cascader';
2
+ export type { CascaderProps, CascaderOption, CascaderSize, CascaderVariant, CascaderExpandTrigger, CascaderTranslations, } from './Cascader.types';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),Q=require("react-dom"),L=require("../../utils/cn.cjs"),k=require("./CommandPalette.const.cjs"),E=require("./CommandPalette.utils.cjs"),z=({command:s,isHighlighted:g,onSelect:m})=>t.jsxs("button",{type:"button",onClick:m,disabled:s.disabled,className:L.cn("Bear-CommandPalette__item bear-w-full bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-2.5 bear-text-left bear-transition-colors",g?"bear-bg-pink-500/20 bear-text-pink-400":"bear-text-zinc-300 hover:bear-bg-zinc-700",s.disabled&&"bear-opacity-50 bear-cursor-not-allowed"),children:[s.icon&&t.jsx("span",{className:"Bear-CommandPalette__item-icon bear-text-zinc-400 bear-shrink-0",children:s.icon}),t.jsxs("div",{className:"Bear-CommandPalette__item-content bear-flex-1 bear-min-w-0",children:[t.jsx("div",{className:"Bear-CommandPalette__item-label bear-text-sm bear-font-medium bear-truncate",children:s.label}),s.description&&t.jsx("div",{className:"Bear-CommandPalette__item-description bear-text-xs bear-text-zinc-500 bear-truncate",children:s.description})]}),s.shortcut&&t.jsx("div",{className:"Bear-CommandPalette__item-shortcut bear-flex bear-gap-1 bear-shrink-0",children:E.formatShortcut(s.shortcut).map((N,p)=>t.jsx("kbd",{className:"bear-px-1.5 bear-py-0.5 bear-text-xs bear-font-mono bear-bg-zinc-700 bear-rounded bear-text-zinc-400",children:N},p))})]}),V=({commands:s,open:g,onOpenChange:m,placeholder:N,showRecent:p=!0,maxRecent:h=k.COMMAND_PALETTE_MAX_RECENT,recentIds:q,onRecentChange:_,groupByCategory:y=!1,filterFn:B=E.defaultFilterFn,triggerKey:D=k.COMMAND_PALETTE_TRIGGER_KEY,className:O,testId:R,translations:I,icon:K,footer:M})=>{const[H,F]=r.useState(!1),[i,A]=r.useState(""),[n,v]=r.useState(0),[G,U]=r.useState([]),S=r.useRef(null),P=r.useRef(null),u=g??H,l=r.useCallback(e=>{m==null||m(e),F(e)},[m]),d=q??G,T=r.useCallback(e=>{_==null||_(e),U(e)},[_]),j=r.useMemo(()=>({...k.COMMAND_PALETTE_DEFAULT_TRANSLATIONS,...I}),[I]),x=r.useMemo(()=>i.trim()?s.filter(e=>B(e,i)):s,[s,i,B]),c=r.useMemo(()=>!p||i.trim()?[]:d.slice(0,h).map(e=>s.find(a=>a.id===e)).filter(Boolean),[p,i,d,h,s]),C=r.useMemo(()=>y?E.groupCommandsByCategory(x):null,[x,y]),o=r.useMemo(()=>{const e=[];return c.length>0&&e.push(...c),e.push(...x.filter(a=>!d.includes(a.id))),e},[c,x,d]);r.useEffect(()=>{const e=a=>{(a.metaKey||a.ctrlKey)&&a.key.toLowerCase()===D&&(a.preventDefault(),l(!u)),a.key==="Escape"&&u&&(a.preventDefault(),l(!1))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[u,D,l]),r.useEffect(()=>{u&&(A(""),v(0),setTimeout(()=>{var e;return(e=S.current)==null?void 0:e.focus()},50))},[u]),r.useEffect(()=>{if(n>=0&&P.current){const a=P.current.querySelectorAll("[data-command-item]")[n];a&&a.scrollIntoView({block:"nearest"})}},[n]);const f=r.useCallback(e=>{const a=[e.id,...d.filter(b=>b!==e.id)].slice(0,h);T(a),l(!1),e.onSelect()},[d,h,T,l]),X=r.useCallback(e=>{switch(e.key){case"ArrowDown":e.preventDefault(),v(a=>a<o.length-1?a+1:0);break;case"ArrowUp":e.preventDefault(),v(a=>a>0?a-1:o.length-1);break;case"Enter":e.preventDefault(),o[n]&&!o[n].disabled&&f(o[n]);break;case"Escape":e.preventDefault(),l(!1);break}},[o,n,f,l]);return u&&typeof document<"u"?Q.createPortal(t.jsxs("div",{className:L.cn("Bear-CommandPalette bear-fixed bear-inset-0 bear-flex bear-items-start bear-justify-center bear-pt-[15vh]",O),style:{zIndex:k.COMMAND_PALETTE_Z_INDEX},"data-testid":R,children:[t.jsx("div",{className:"Bear-CommandPalette__backdrop bear-absolute bear-inset-0 bear-bg-black/50 bear-backdrop-blur-sm",onClick:()=>l(!1)}),t.jsxs("div",{className:"Bear-CommandPalette__content bear-relative bear-w-full bear-max-w-xl bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-xl bear-shadow-2xl bear-overflow-hidden",children:[t.jsxs("div",{className:"Bear-CommandPalette__search bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-3 bear-border-b bear-border-zinc-700",children:[K??t.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-zinc-400 bear-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),t.jsx("input",{ref:S,type:"text",value:i,onChange:e=>{A(e.target.value),v(0)},onKeyDown:X,placeholder:N||j.placeholder,className:"Bear-CommandPalette__input bear-flex-1 bear-bg-transparent bear-border-0 bear-outline-none bear-text-white placeholder:bear-text-zinc-500"}),t.jsx("kbd",{className:"bear-px-2 bear-py-1 bear-text-xs bear-font-mono bear-bg-zinc-700 bear-rounded bear-text-zinc-400",children:"esc"})]}),t.jsx("div",{ref:P,className:"Bear-CommandPalette__list bear-max-h-[60vh] bear-overflow-y-auto",children:o.length===0?t.jsx("div",{className:"Bear-CommandPalette__empty bear-px-4 bear-py-8 bear-text-center bear-text-sm bear-text-zinc-500",children:j.noResults}):t.jsxs(t.Fragment,{children:[c.length>0&&!i.trim()&&t.jsxs("div",{className:"Bear-CommandPalette__group",children:[t.jsx("div",{className:"Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50",children:j.recentCommands}),c.map((e,a)=>t.jsx("div",{"data-command-item":!0,children:t.jsx(z,{command:e,isHighlighted:n===a,onSelect:()=>f(e)})},`recent-${e.id}`))]}),y&&C?C.map(e=>{const a=c.length+C.slice(0,C.indexOf(e)).reduce((b,w)=>b+w.commands.length,0);return t.jsxs("div",{className:"Bear-CommandPalette__group",children:[t.jsx("div",{className:"Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50",children:e.name}),e.commands.map((b,w)=>t.jsx("div",{"data-command-item":!0,children:t.jsx(z,{command:b,isHighlighted:n===a+w,onSelect:()=>f(b)})},b.id))]},e.name)}):t.jsxs("div",{className:"Bear-CommandPalette__group",children:[!i.trim()&&c.length>0&&t.jsx("div",{className:"Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50",children:j.allCommands}),x.filter(e=>!d.includes(e.id)||i.trim()).map((e,a)=>t.jsx("div",{"data-command-item":!0,children:t.jsx(z,{command:e,isHighlighted:n===c.length+a,onSelect:()=>f(e)})},e.id))]})]})}),M&&t.jsx("div",{className:"Bear-CommandPalette__footer bear-px-4 bear-py-2 bear-border-t bear-border-zinc-700 bear-text-xs bear-text-zinc-500",children:M})]})]}),document.body):null};exports.CommandPalette=V;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E={placeholder:"Type a command or search...",noResults:"No commands found",recentCommands:"Recent",allCommands:"All Commands",closeHint:"Press ESC to close"},T="k",A=5,_=9999;exports.COMMAND_PALETTE_DEFAULT_TRANSLATIONS=E;exports.COMMAND_PALETTE_MAX_RECENT=A;exports.COMMAND_PALETTE_TRIGGER_KEY=T;exports.COMMAND_PALETTE_Z_INDEX=_;
@@ -0,0 +1,25 @@
1
+ import { CommandPaletteTranslations } from './CommandPalette.types';
2
+ /**
3
+ * Default translations
4
+ */
5
+ export declare const COMMAND_PALETTE_DEFAULT_TRANSLATIONS: CommandPaletteTranslations;
6
+ /**
7
+ * Default trigger key
8
+ */
9
+ export declare const COMMAND_PALETTE_TRIGGER_KEY = "k";
10
+ /**
11
+ * Maximum recent commands
12
+ */
13
+ export declare const COMMAND_PALETTE_MAX_RECENT = 5;
14
+ /**
15
+ * Z-index for palette
16
+ */
17
+ export declare const COMMAND_PALETTE_Z_INDEX = 9999;
18
+ /**
19
+ * Animation duration
20
+ */
21
+ export declare const COMMAND_PALETTE_ANIMATION_DURATION = 150;
22
+ /**
23
+ * Maximum visible commands
24
+ */
25
+ export declare const COMMAND_PALETTE_MAX_VISIBLE = 10;
@@ -0,0 +1,13 @@
1
+ const o = {
2
+ placeholder: "Type a command or search...",
3
+ noResults: "No commands found",
4
+ recentCommands: "Recent",
5
+ allCommands: "All Commands",
6
+ closeHint: "Press ESC to close"
7
+ }, s = "k", E = 5, n = 9999;
8
+ export {
9
+ o as COMMAND_PALETTE_DEFAULT_TRANSLATIONS,
10
+ E as COMMAND_PALETTE_MAX_RECENT,
11
+ s as COMMAND_PALETTE_TRIGGER_KEY,
12
+ n as COMMAND_PALETTE_Z_INDEX
13
+ };
@@ -0,0 +1,18 @@
1
+ import { FC } from 'react';
2
+ import { CommandPaletteProps } from './CommandPalette.types';
3
+ /**
4
+ * CommandPalette - Command palette component (Cmd+K style)
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <CommandPalette
9
+ * commands={[
10
+ * { id: '1', label: 'New File', shortcut: 'Ctrl+N', onSelect: () => {} },
11
+ * { id: '2', label: 'Open Settings', shortcut: 'Ctrl+,', onSelect: () => {} },
12
+ * ]}
13
+ * open={isOpen}
14
+ * onOpenChange={setIsOpen}
15
+ * />
16
+ * ```
17
+ */
18
+ export declare const CommandPalette: FC<CommandPaletteProps>;
@@ -0,0 +1,190 @@
1
+ import { jsxs as l, jsx as t, Fragment as Y } from "react/jsx-runtime";
2
+ import { useState as C, useRef as j, useCallback as y, useMemo as h, useEffect as I } from "react";
3
+ import { createPortal as Z } from "react-dom";
4
+ import { cn as H } from "../../utils/cn.js";
5
+ import { COMMAND_PALETTE_DEFAULT_TRANSLATIONS as $, COMMAND_PALETTE_MAX_RECENT as J, COMMAND_PALETTE_TRIGGER_KEY as ee, COMMAND_PALETTE_Z_INDEX as re } from "./CommandPalette.const.js";
6
+ import { defaultFilterFn as te, groupCommandsByCategory as ae, formatShortcut as ne } from "./CommandPalette.utils.js";
7
+ const D = ({
8
+ command: a,
9
+ isHighlighted: P,
10
+ onSelect: m
11
+ }) => /* @__PURE__ */ l(
12
+ "button",
13
+ {
14
+ type: "button",
15
+ onClick: m,
16
+ disabled: a.disabled,
17
+ className: H(
18
+ "Bear-CommandPalette__item bear-w-full bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-2.5 bear-text-left bear-transition-colors",
19
+ P ? "bear-bg-pink-500/20 bear-text-pink-400" : "bear-text-zinc-300 hover:bear-bg-zinc-700",
20
+ a.disabled && "bear-opacity-50 bear-cursor-not-allowed"
21
+ ),
22
+ children: [
23
+ a.icon && /* @__PURE__ */ t("span", { className: "Bear-CommandPalette__item-icon bear-text-zinc-400 bear-shrink-0", children: a.icon }),
24
+ /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__item-content bear-flex-1 bear-min-w-0", children: [
25
+ /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__item-label bear-text-sm bear-font-medium bear-truncate", children: a.label }),
26
+ a.description && /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__item-description bear-text-xs bear-text-zinc-500 bear-truncate", children: a.description })
27
+ ] }),
28
+ a.shortcut && /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__item-shortcut bear-flex bear-gap-1 bear-shrink-0", children: ne(a.shortcut).map((w, x) => /* @__PURE__ */ t(
29
+ "kbd",
30
+ {
31
+ className: "bear-px-1.5 bear-py-0.5 bear-text-xs bear-font-mono bear-bg-zinc-700 bear-rounded bear-text-zinc-400",
32
+ children: w
33
+ },
34
+ x
35
+ )) })
36
+ ]
37
+ }
38
+ ), be = ({
39
+ commands: a,
40
+ open: P,
41
+ onOpenChange: m,
42
+ placeholder: w,
43
+ showRecent: x = !0,
44
+ maxRecent: _ = J,
45
+ recentIds: F,
46
+ onRecentChange: v,
47
+ groupByCategory: z = !1,
48
+ filterFn: A = te,
49
+ triggerKey: T = ee,
50
+ className: R,
51
+ testId: q,
52
+ translations: L,
53
+ icon: G,
54
+ footer: M
55
+ }) => {
56
+ const [U, X] = C(!1), [i, S] = C(""), [n, N] = C(0), [Q, V] = C([]), K = j(null), B = j(null), u = P ?? U, s = y((e) => {
57
+ m == null || m(e), X(e);
58
+ }, [m]), c = F ?? Q, O = y((e) => {
59
+ v == null || v(e), V(e);
60
+ }, [v]), k = h(() => ({
61
+ ...$,
62
+ ...L
63
+ }), [L]), p = h(() => i.trim() ? a.filter((e) => A(e, i)) : a, [a, i, A]), d = h(() => !x || i.trim() ? [] : c.slice(0, _).map((e) => a.find((r) => r.id === e)).filter(Boolean), [x, i, c, _, a]), g = h(() => z ? ae(p) : null, [p, z]), o = h(() => {
64
+ const e = [];
65
+ return d.length > 0 && e.push(...d), e.push(...p.filter((r) => !c.includes(r.id))), e;
66
+ }, [d, p, c]);
67
+ I(() => {
68
+ const e = (r) => {
69
+ (r.metaKey || r.ctrlKey) && r.key.toLowerCase() === T && (r.preventDefault(), s(!u)), r.key === "Escape" && u && (r.preventDefault(), s(!1));
70
+ };
71
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
72
+ }, [u, T, s]), I(() => {
73
+ u && (S(""), N(0), setTimeout(() => {
74
+ var e;
75
+ return (e = K.current) == null ? void 0 : e.focus();
76
+ }, 50));
77
+ }, [u]), I(() => {
78
+ if (n >= 0 && B.current) {
79
+ const r = B.current.querySelectorAll("[data-command-item]")[n];
80
+ r && r.scrollIntoView({ block: "nearest" });
81
+ }
82
+ }, [n]);
83
+ const f = y((e) => {
84
+ const r = [e.id, ...c.filter((b) => b !== e.id)].slice(0, _);
85
+ O(r), s(!1), e.onSelect();
86
+ }, [c, _, O, s]), W = y((e) => {
87
+ switch (e.key) {
88
+ case "ArrowDown":
89
+ e.preventDefault(), N((r) => r < o.length - 1 ? r + 1 : 0);
90
+ break;
91
+ case "ArrowUp":
92
+ e.preventDefault(), N((r) => r > 0 ? r - 1 : o.length - 1);
93
+ break;
94
+ case "Enter":
95
+ e.preventDefault(), o[n] && !o[n].disabled && f(o[n]);
96
+ break;
97
+ case "Escape":
98
+ e.preventDefault(), s(!1);
99
+ break;
100
+ }
101
+ }, [o, n, f, s]);
102
+ return u && typeof document < "u" ? Z(
103
+ /* @__PURE__ */ l(
104
+ "div",
105
+ {
106
+ className: H("Bear-CommandPalette bear-fixed bear-inset-0 bear-flex bear-items-start bear-justify-center bear-pt-[15vh]", R),
107
+ style: { zIndex: re },
108
+ "data-testid": q,
109
+ children: [
110
+ /* @__PURE__ */ t(
111
+ "div",
112
+ {
113
+ className: "Bear-CommandPalette__backdrop bear-absolute bear-inset-0 bear-bg-black/50 bear-backdrop-blur-sm",
114
+ onClick: () => s(!1)
115
+ }
116
+ ),
117
+ /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__content bear-relative bear-w-full bear-max-w-xl bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-xl bear-shadow-2xl bear-overflow-hidden", children: [
118
+ /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__search bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-3 bear-border-b bear-border-zinc-700", children: [
119
+ G ?? /* @__PURE__ */ t("svg", { className: "bear-w-5 bear-h-5 bear-text-zinc-400 bear-shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ t("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) }),
120
+ /* @__PURE__ */ t(
121
+ "input",
122
+ {
123
+ ref: K,
124
+ type: "text",
125
+ value: i,
126
+ onChange: (e) => {
127
+ S(e.target.value), N(0);
128
+ },
129
+ onKeyDown: W,
130
+ placeholder: w || k.placeholder,
131
+ className: "Bear-CommandPalette__input bear-flex-1 bear-bg-transparent bear-border-0 bear-outline-none bear-text-white placeholder:bear-text-zinc-500"
132
+ }
133
+ ),
134
+ /* @__PURE__ */ t("kbd", { className: "bear-px-2 bear-py-1 bear-text-xs bear-font-mono bear-bg-zinc-700 bear-rounded bear-text-zinc-400", children: "esc" })
135
+ ] }),
136
+ /* @__PURE__ */ t(
137
+ "div",
138
+ {
139
+ ref: B,
140
+ className: "Bear-CommandPalette__list bear-max-h-[60vh] bear-overflow-y-auto",
141
+ children: o.length === 0 ? /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__empty bear-px-4 bear-py-8 bear-text-center bear-text-sm bear-text-zinc-500", children: k.noResults }) : /* @__PURE__ */ l(Y, { children: [
142
+ d.length > 0 && !i.trim() && /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__group", children: [
143
+ /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50", children: k.recentCommands }),
144
+ d.map((e, r) => /* @__PURE__ */ t("div", { "data-command-item": !0, children: /* @__PURE__ */ t(
145
+ D,
146
+ {
147
+ command: e,
148
+ isHighlighted: n === r,
149
+ onSelect: () => f(e)
150
+ }
151
+ ) }, `recent-${e.id}`))
152
+ ] }),
153
+ z && g ? g.map((e) => {
154
+ const r = d.length + g.slice(0, g.indexOf(e)).reduce((b, E) => b + E.commands.length, 0);
155
+ return /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__group", children: [
156
+ /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50", children: e.name }),
157
+ e.commands.map((b, E) => /* @__PURE__ */ t("div", { "data-command-item": !0, children: /* @__PURE__ */ t(
158
+ D,
159
+ {
160
+ command: b,
161
+ isHighlighted: n === r + E,
162
+ onSelect: () => f(b)
163
+ }
164
+ ) }, b.id))
165
+ ] }, e.name);
166
+ }) : /* @__PURE__ */ l("div", { className: "Bear-CommandPalette__group", children: [
167
+ !i.trim() && d.length > 0 && /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__group-header bear-px-4 bear-py-2 bear-text-xs bear-font-medium bear-text-zinc-500 bear-uppercase bear-tracking-wider bear-bg-zinc-800/50", children: k.allCommands }),
168
+ p.filter((e) => !c.includes(e.id) || i.trim()).map((e, r) => /* @__PURE__ */ t("div", { "data-command-item": !0, children: /* @__PURE__ */ t(
169
+ D,
170
+ {
171
+ command: e,
172
+ isHighlighted: n === d.length + r,
173
+ onSelect: () => f(e)
174
+ }
175
+ ) }, e.id))
176
+ ] })
177
+ ] })
178
+ }
179
+ ),
180
+ M && /* @__PURE__ */ t("div", { className: "Bear-CommandPalette__footer bear-px-4 bear-py-2 bear-border-t bear-border-zinc-700 bear-text-xs bear-text-zinc-500", children: M })
181
+ ] })
182
+ ]
183
+ }
184
+ ),
185
+ document.body
186
+ ) : null;
187
+ };
188
+ export {
189
+ be as CommandPalette
190
+ };