@devalok/shilp-sutra 0.33.2 → 0.34.1

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 (175) hide show
  1. package/dist/_chunks/badge-group.js +306 -246
  2. package/dist/_chunks/chat.js +513 -0
  3. package/dist/_chunks/date-picker.js +748 -0
  4. package/dist/_chunks/document-preview.js +109 -90
  5. package/dist/_chunks/file-preview.js +492 -504
  6. package/dist/_chunks/framer.js +5564 -5613
  7. package/dist/_chunks/image-preview.js +127 -88
  8. package/dist/_chunks/keybinding.js +12 -14
  9. package/dist/_chunks/link-context.js +19 -16
  10. package/dist/_chunks/mention-suggestion.js +353 -350
  11. package/dist/_chunks/motion-provider.js +26 -20
  12. package/dist/_chunks/popover.js +127 -0
  13. package/dist/_chunks/primitives.js +7584 -6425
  14. package/dist/_chunks/rich-chat-input.js +2070 -0
  15. package/dist/_chunks/rolldown-runtime.js +21 -0
  16. package/dist/_chunks/shared.js +126 -0
  17. package/dist/_chunks/sonner.js +605 -734
  18. package/dist/_chunks/stat-row.js +418 -440
  19. package/dist/_chunks/tiptap.js +15850 -19964
  20. package/dist/_chunks/tree-view.js +231 -290
  21. package/dist/_chunks/use-calendar.js +161 -208
  22. package/dist/_chunks/vendor-client.js +314 -2199
  23. package/dist/_chunks/vendor-utils.js +1721 -2978
  24. package/dist/ai/ai-command-provider.js +23 -17
  25. package/dist/ai/block-renderer.js +68 -51
  26. package/dist/ai/blocks/index.js +2 -12
  27. package/dist/ai/command-bar.js +470 -519
  28. package/dist/ai/conversation.js +241 -227
  29. package/dist/ai/index.js +181 -167
  30. package/dist/ai/types.js +0 -1
  31. package/dist/composed/activity-feed.js +232 -202
  32. package/dist/composed/avatar-group.js +164 -222
  33. package/dist/composed/bulk-action-bar.js +174 -165
  34. package/dist/composed/command-palette.js +290 -308
  35. package/dist/composed/confirm-dialog.js +28 -48
  36. package/dist/composed/content-card.js +69 -108
  37. package/dist/composed/date-picker/index.js +3 -13
  38. package/dist/composed/deadline-indicator.js +68 -74
  39. package/dist/composed/emoji-picker.js +83 -110
  40. package/dist/composed/empty-state.js +64 -103
  41. package/dist/composed/error-boundary.js +129 -127
  42. package/dist/composed/file-preview.js +2 -12
  43. package/dist/composed/filter-bar.js +98 -130
  44. package/dist/composed/form-section.js +61 -45
  45. package/dist/composed/global-loading.js +34 -47
  46. package/dist/composed/index.js +34 -92
  47. package/dist/composed/inline-edit.js +92 -107
  48. package/dist/composed/lib/string-utils.js +8 -8
  49. package/dist/composed/loading-skeleton.js +103 -171
  50. package/dist/composed/markdown-viewer.js +187 -139
  51. package/dist/composed/master-detail.js +147 -156
  52. package/dist/composed/member-picker.js +46 -49
  53. package/dist/composed/multi-select-popover.js +181 -179
  54. package/dist/composed/page-header.js +54 -76
  55. package/dist/composed/page-skeletons.js +143 -127
  56. package/dist/composed/priority-indicator.js +105 -111
  57. package/dist/composed/responsive-overlay.js +36 -41
  58. package/dist/composed/rich-chat-input.js +2 -1860
  59. package/dist/composed/rich-text-editor.js +561 -424
  60. package/dist/composed/schedule-view.js +134 -185
  61. package/dist/composed/simple-tooltip.js +21 -21
  62. package/dist/composed/status-badge.js +133 -137
  63. package/dist/hooks/index.js +7 -12
  64. package/dist/hooks/use-color-mode.js +28 -25
  65. package/dist/hooks/use-mobile.js +13 -13
  66. package/dist/hooks/use-toast.js +2 -4
  67. package/dist/hooks/use-touch-device.js +9 -11
  68. package/dist/hooks/use-viewport-height.js +14 -14
  69. package/dist/motion/index.js +3 -11
  70. package/dist/motion/primitives-index.js +226 -186
  71. package/dist/shell/app-command-palette.js +203 -234
  72. package/dist/shell/bottom-navbar.js +150 -190
  73. package/dist/shell/command-registry.js +13 -14
  74. package/dist/shell/index.js +10 -20
  75. package/dist/shell/link-context.js +2 -5
  76. package/dist/shell/notification-center.js +238 -259
  77. package/dist/shell/notification-preferences.js +241 -184
  78. package/dist/shell/sidebar.js +251 -281
  79. package/dist/shell/top-bar.js +203 -237
  80. package/dist/tailwind/index.cjs +426 -451
  81. package/dist/tailwind/index.js +2 -4
  82. package/dist/tailwind/preset.d.ts.map +1 -1
  83. package/dist/tailwind/preset.js +443 -468
  84. package/dist/ui/accordion.js +52 -60
  85. package/dist/ui/alert-dialog.js +111 -156
  86. package/dist/ui/alert.js +177 -99
  87. package/dist/ui/aspect-ratio.js +13 -16
  88. package/dist/ui/autocomplete.js +112 -148
  89. package/dist/ui/avatar.js +196 -169
  90. package/dist/ui/badge-group.js +2 -7
  91. package/dist/ui/badge-indicator.js +42 -51
  92. package/dist/ui/badge.js +2 -15
  93. package/dist/ui/banner.js +76 -68
  94. package/dist/ui/breadcrumb.js +65 -84
  95. package/dist/ui/button-group.js +109 -102
  96. package/dist/ui/button-processing.js +69 -73
  97. package/dist/ui/button.js +393 -279
  98. package/dist/ui/card.js +151 -157
  99. package/dist/ui/charts/index.js +1002 -1319
  100. package/dist/ui/chat/index.js +2 -11
  101. package/dist/ui/checkbox.js +77 -100
  102. package/dist/ui/code.js +18 -32
  103. package/dist/ui/collapsible.js +21 -29
  104. package/dist/ui/color-input.js +453 -372
  105. package/dist/ui/color-swatch.js +60 -90
  106. package/dist/ui/combobox.js +244 -293
  107. package/dist/ui/container.js +18 -24
  108. package/dist/ui/context-menu.js +154 -203
  109. package/dist/ui/data-table-body.js +116 -213
  110. package/dist/ui/data-table-bulk-actions.js +43 -59
  111. package/dist/ui/data-table-card.js +84 -71
  112. package/dist/ui/data-table-context.js +39 -42
  113. package/dist/ui/data-table-header.js +98 -139
  114. package/dist/ui/data-table-pagination.js +69 -82
  115. package/dist/ui/data-table-toolbar.js +104 -130
  116. package/dist/ui/data-table.js +278 -354
  117. package/dist/ui/devalok-grain.js +77 -66
  118. package/dist/ui/dialog.js +122 -151
  119. package/dist/ui/dropdown-menu.js +152 -203
  120. package/dist/ui/file-upload.js +242 -266
  121. package/dist/ui/form.js +60 -56
  122. package/dist/ui/hover-card.js +54 -54
  123. package/dist/ui/icon-button.js +21 -26
  124. package/dist/ui/icon-context.js +17 -17
  125. package/dist/ui/icon-group.js +22 -29
  126. package/dist/ui/icon.js +201 -121
  127. package/dist/ui/index.js +74 -350
  128. package/dist/ui/input-otp.d.ts.map +1 -1
  129. package/dist/ui/input-otp.js +44 -48
  130. package/dist/ui/input.js +92 -169
  131. package/dist/ui/label.js +17 -22
  132. package/dist/ui/lib/date-utils.js +14 -11
  133. package/dist/ui/lib/motion.js +77 -36
  134. package/dist/ui/lib/utils.js +39 -16
  135. package/dist/ui/link.js +13 -24
  136. package/dist/ui/menubar.js +132 -210
  137. package/dist/ui/navigation-menu.js +164 -194
  138. package/dist/ui/number-input.js +72 -95
  139. package/dist/ui/pagination.js +122 -159
  140. package/dist/ui/popover.js +2 -131
  141. package/dist/ui/progress-ring.js +133 -143
  142. package/dist/ui/progress.js +51 -95
  143. package/dist/ui/radio.js +41 -50
  144. package/dist/ui/search-input.js +51 -53
  145. package/dist/ui/segmented-control.js +93 -114
  146. package/dist/ui/select.js +131 -157
  147. package/dist/ui/separator.js +15 -25
  148. package/dist/ui/sheet.js +135 -163
  149. package/dist/ui/sidebar.js +357 -600
  150. package/dist/ui/skeleton.js +179 -231
  151. package/dist/ui/slider.js +24 -34
  152. package/dist/ui/spinner.js +226 -205
  153. package/dist/ui/split-button.js +227 -276
  154. package/dist/ui/stack.js +56 -70
  155. package/dist/ui/stat-card.js +259 -251
  156. package/dist/ui/status-dot.js +67 -63
  157. package/dist/ui/stepper.js +119 -168
  158. package/dist/ui/switch.js +51 -54
  159. package/dist/ui/table.js +57 -90
  160. package/dist/ui/tabs.js +139 -156
  161. package/dist/ui/text.js +52 -59
  162. package/dist/ui/textarea.js +40 -57
  163. package/dist/ui/toast-types.js +0 -1
  164. package/dist/ui/toast.js +554 -536
  165. package/dist/ui/toaster.js +23 -33
  166. package/dist/ui/toggle-group.js +37 -41
  167. package/dist/ui/toggle.js +36 -40
  168. package/dist/ui/tooltip.js +80 -65
  169. package/dist/ui/tree-view/index.js +2 -6
  170. package/dist/ui/visually-hidden.js +12 -10
  171. package/llms-full.txt +1 -1
  172. package/llms.txt +12 -0
  173. package/package.json +3 -3
  174. package/dist/_chunks/date-time-picker.js +0 -851
  175. package/dist/_chunks/typing-indicator.js +0 -565
@@ -1,524 +1,475 @@
1
1
  "use client";
2
- import { jsxs as r, jsx as e, Fragment as De } from "react/jsx-runtime";
3
- import * as s from "react";
4
- import { Dialog as Ae, DialogPortal as Ee, DialogOverlay as Me, DialogContentRaw as Re, DialogTitle as Se, DialogDescription as ze } from "../ui/dialog.js";
5
- import { IconArrowUp as Le, IconArrowDown as Be, IconCornerDownLeft as le, IconSearch as je, IconLoader2 as Fe, IconX as $e } from "@tabler/icons-react";
6
- import { Icon as v } from "../ui/icon.js";
7
- import { cn as u } from "../ui/lib/utils.js";
8
- import { springs as ue, tweens as Z } from "../ui/lib/motion.js";
9
- import { VisuallyHidden as Pe } from "../ui/visually-hidden.js";
10
- import { u as fe } from "../_chunks/motion-provider.js";
11
- import { g as Ke, m as Oe, a as Ve } from "../_chunks/keybinding.js";
12
- import { m as x, A as _ } from "../_chunks/framer.js";
13
- function qe({
14
- active: n,
15
- rounded: p,
16
- reducedMotion: h,
17
- children: l
18
- }) {
19
- return n ? h ? /* @__PURE__ */ e("div", { className: u("p-[1.5px] bg-accent-9", p), children: l }) : /* @__PURE__ */ r(
20
- x.div,
21
- {
22
- className: u("relative p-[1.5px]", p),
23
- style: {
24
- background: "linear-gradient(var(--gradient-angle, 0deg), #D33163, #9B5DE5, #C850C0, #D33163)",
25
- backgroundSize: "300% 300%"
26
- },
27
- animate: {
28
- // Rotate the gradient angle — creates the flowing border effect
29
- // Using CSS custom property animation via backgroundPosition as proxy
30
- backgroundPosition: ["0% 0%", "100% 100%", "0% 0%"]
31
- },
32
- transition: {
33
- backgroundPosition: {
34
- duration: 4,
35
- repeat: 1 / 0,
36
- ease: "linear"
37
- }
38
- },
39
- children: [
40
- /* @__PURE__ */ e(
41
- x.div,
42
- {
43
- className: u("absolute inset-0 -z-10", p),
44
- style: {
45
- background: "linear-gradient(var(--gradient-angle, 0deg), #D33163, #9B5DE5, #C850C0, #D33163)",
46
- backgroundSize: "300% 300%",
47
- filter: "blur(8px)"
48
- },
49
- animate: {
50
- opacity: [0.3, 0.5, 0.3],
51
- backgroundPosition: ["0% 0%", "100% 100%", "0% 0%"]
52
- },
53
- transition: {
54
- opacity: { duration: 3, repeat: 1 / 0, ease: "easeInOut" },
55
- backgroundPosition: { duration: 4, repeat: 1 / 0, ease: "linear" }
56
- }
57
- }
58
- ),
59
- l
60
- ]
61
- }
62
- ) : /* @__PURE__ */ e(De, { children: l });
2
+ import { a as e, c as t } from "../_chunks/framer.js";
3
+ import { springs as n, tweens as r } from "../ui/lib/motion.js";
4
+ import { cn as i } from "../ui/lib/utils.js";
5
+ import { Icon as a } from "../ui/icon.js";
6
+ import { Dialog as o, DialogContentRaw as s, DialogDescription as c, DialogOverlay as ee, DialogPortal as te, DialogTitle as ne } from "../ui/dialog.js";
7
+ import { VisuallyHidden as re } from "../ui/visually-hidden.js";
8
+ import { n as ie } from "../_chunks/motion-provider.js";
9
+ import { n as ae, r as oe, t as se } from "../_chunks/keybinding.js";
10
+ import * as l from "react";
11
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
12
+ import { IconArrowDown as ce, IconArrowUp as le, IconCornerDownLeft as p, IconLoader2 as ue, IconSearch as de, IconX as fe } from "@tabler/icons-react";
13
+ //#region src/ai/command-bar.tsx
14
+ function pe({ active: t, rounded: n, reducedMotion: r, children: a }) {
15
+ return t ? r ? /* @__PURE__ */ d("div", {
16
+ className: i("p-[1.5px] bg-accent-9", n),
17
+ children: a
18
+ }) : /* @__PURE__ */ f(e.div, {
19
+ className: i("relative p-[1.5px]", n),
20
+ style: {
21
+ background: "linear-gradient(var(--gradient-angle, 0deg), #D33163, #9B5DE5, #C850C0, #D33163)",
22
+ backgroundSize: "300% 300%"
23
+ },
24
+ animate: { backgroundPosition: [
25
+ "0% 0%",
26
+ "100% 100%",
27
+ "0% 0%"
28
+ ] },
29
+ transition: { backgroundPosition: {
30
+ duration: 4,
31
+ repeat: Infinity,
32
+ ease: "linear"
33
+ } },
34
+ children: [/* @__PURE__ */ d(e.div, {
35
+ className: i("absolute inset-0 -z-10", n),
36
+ style: {
37
+ background: "linear-gradient(var(--gradient-angle, 0deg), #D33163, #9B5DE5, #C850C0, #D33163)",
38
+ backgroundSize: "300% 300%",
39
+ filter: "blur(8px)"
40
+ },
41
+ animate: {
42
+ opacity: [
43
+ .3,
44
+ .5,
45
+ .3
46
+ ],
47
+ backgroundPosition: [
48
+ "0% 0%",
49
+ "100% 100%",
50
+ "0% 0%"
51
+ ]
52
+ },
53
+ transition: {
54
+ opacity: {
55
+ duration: 3,
56
+ repeat: Infinity,
57
+ ease: "easeInOut"
58
+ },
59
+ backgroundPosition: {
60
+ duration: 4,
61
+ repeat: Infinity,
62
+ ease: "linear"
63
+ }
64
+ }
65
+ }), a]
66
+ }) : /* @__PURE__ */ d(u, { children: a });
63
67
  }
64
- function Qe(n) {
65
- return n.filterValue ? n.filterValue : typeof n.label == "string" ? n.label : "";
68
+ function me(e) {
69
+ return e.filterValue ? e.filterValue : typeof e.label == "string" ? e.label : "";
66
70
  }
67
- function Te(n) {
68
- return typeof n.description == "string" ? n.description : "";
71
+ function he(e) {
72
+ return typeof e.description == "string" ? e.description : "";
69
73
  }
70
- function Ge({
71
- placeholders: n,
72
- interval: p,
73
- paused: h
74
- }) {
75
- const [l, L] = s.useState(0), { reducedMotion: O } = fe();
76
- return s.useEffect(() => {
77
- if (h || n.length <= 1) return;
78
- const V = setInterval(() => {
79
- L((d) => (d + 1) % n.length);
80
- }, p);
81
- return () => clearInterval(V);
82
- }, [h, n.length, p]), O ? /* @__PURE__ */ e("span", { className: "pointer-events-none absolute text-surface-fg-subtle", children: n[l] }) : /* @__PURE__ */ e(_, { mode: "wait", children: /* @__PURE__ */ e(
83
- x.span,
84
- {
85
- initial: { opacity: 0, y: -4 },
86
- animate: { opacity: 1, y: 0 },
87
- exit: { opacity: 0, y: 4 },
88
- transition: Z.fade,
89
- className: "pointer-events-none absolute text-surface-fg-subtle",
90
- children: n[l]
91
- },
92
- n[l]
93
- ) });
74
+ function ge({ placeholders: n, interval: i, paused: a }) {
75
+ let [o, s] = l.useState(0), { reducedMotion: c } = ie();
76
+ return l.useEffect(() => {
77
+ if (a || n.length <= 1) return;
78
+ let e = setInterval(() => {
79
+ s((e) => (e + 1) % n.length);
80
+ }, i);
81
+ return () => clearInterval(e);
82
+ }, [
83
+ a,
84
+ n.length,
85
+ i
86
+ ]), c ? /* @__PURE__ */ d("span", {
87
+ className: "pointer-events-none absolute text-surface-fg-subtle",
88
+ children: n[o]
89
+ }) : /* @__PURE__ */ d(t, {
90
+ mode: "wait",
91
+ children: /* @__PURE__ */ d(e.span, {
92
+ initial: {
93
+ opacity: 0,
94
+ y: -4
95
+ },
96
+ animate: {
97
+ opacity: 1,
98
+ y: 0
99
+ },
100
+ exit: {
101
+ opacity: 0,
102
+ y: 4
103
+ },
104
+ transition: r.fade,
105
+ className: "pointer-events-none absolute text-surface-fg-subtle",
106
+ children: n[o]
107
+ }, n[o])
108
+ });
94
109
  }
95
- const Ue = s.forwardRef(
96
- function({
97
- onSubmit: p,
98
- state: h = "idle",
99
- groups: l = [],
100
- onSearch: L,
101
- emptyMessage: O = "No results found.",
102
- emptyState: V,
103
- variant: d = "hero",
104
- placeholder: B = "Ask anything...",
105
- placeholderInterval: me = 5e3,
106
- greeting: ee,
107
- hints: q,
108
- agentName: te,
109
- agentIcon: He,
110
- open: se,
111
- defaultOpen: pe,
112
- onOpenChange: ae,
113
- keybinding: M = "mod+j",
114
- disabled: j = !1,
115
- maxHeight: Q = "320px",
116
- children: N,
117
- className: T,
118
- ...G
119
- }, U) {
120
- const H = se !== void 0, [be, ge] = s.useState(pe ?? !1), R = H ? se : be, re = s.useRef(R);
121
- re.current = R;
122
- const w = s.useCallback(
123
- (t) => {
124
- const a = typeof t == "function" ? t(re.current) : t;
125
- H || ge(a), ae?.(a);
126
- },
127
- [H, ae]
128
- ), [o, k] = s.useState(""), [f, C] = s.useState(-1), [ne, xe] = s.useState(""), [I, oe] = s.useState(!1), [J, he] = s.useState(!1), S = s.useRef(null), ie = s.useRef(null), W = s.useId(), de = `command-bar-listbox-${W}`, { reducedMotion: b } = fe(), F = { duration: 0 }, ye = s.useMemo(() => Ke(), []), $ = s.useMemo(
129
- () => Array.isArray(B) ? B : [B],
130
- [B]
131
- ), c = l.length > 0, y = s.useMemo(() => {
132
- if (!c) return [];
133
- if (!o.trim()) return l;
134
- const t = o.toLowerCase();
135
- return l.map((a) => ({
136
- ...a,
137
- items: a.items.filter(
138
- (g) => Qe(g).toLowerCase().includes(t) || Te(g).toLowerCase().includes(t)
139
- )
140
- })).filter((a) => a.items.length > 0);
141
- }, [l, o, c]), m = s.useMemo(
142
- () => y.flatMap((t) => t.items),
143
- [y]
144
- ), ve = s.useMemo(() => {
145
- const t = /* @__PURE__ */ new Map();
146
- let a = 0;
147
- for (const g of y)
148
- for (const i of g.items)
149
- t.set(i.id, a++);
150
- return t;
151
- }, [y]), Ne = typeof Q == "number" ? `${Q}px` : Q;
152
- s.useEffect(() => {
153
- if (d !== "floating" || M === !1) return;
154
- const t = Array.isArray(M) ? M : [M];
155
- function a(g) {
156
- for (const i of t)
157
- if (Oe(g, i)) {
158
- g.preventDefault(), w((E) => !E);
159
- return;
160
- }
161
- }
162
- return document.addEventListener("keydown", a), () => document.removeEventListener("keydown", a);
163
- }, [d, M, w]), s.useEffect(() => {
164
- d === "floating" && R && (k(""), C(-1), requestAnimationFrame(() => {
165
- S.current?.focus();
166
- }));
167
- }, [d, R]), s.useEffect(() => {
168
- if (f < 0) return;
169
- ie.current?.querySelector(
170
- `[data-command-index="${f}"]`
171
- )?.scrollIntoView({ block: "nearest" });
172
- }, [f]);
173
- const we = (t) => {
174
- k(t), C(c && t.trim() ? 0 : -1), L?.(t);
175
- }, ce = s.useCallback(() => {
176
- !o.trim() || j || (xe(o), p?.(o));
177
- }, [o, j, p]), ke = (t) => {
178
- switch (t.key) {
179
- case "ArrowDown": {
180
- if (!c || m.length === 0) return;
181
- t.preventDefault(), C(
182
- (a) => a < m.length - 1 ? a + 1 : 0
183
- );
184
- break;
185
- }
186
- case "ArrowUp": {
187
- c && m.length > 0 ? (t.preventDefault(), C(
188
- (a) => a > 0 ? a - 1 : m.length - 1
189
- )) : !c && !o && ne && (t.preventDefault(), k(ne));
190
- break;
191
- }
192
- case "Enter": {
193
- t.preventDefault(), t.metaKey || t.ctrlKey ? ce() : c && f >= 0 && m[f] ? (m[f].onSelect(), d === "floating" && w(!1)) : ce();
194
- break;
195
- }
196
- case "Escape": {
197
- t.preventDefault(), h === "responded" ? k("") : d === "floating" ? w(!1) : S.current?.blur();
198
- break;
199
- }
200
- }
201
- }, Ce = () => {
202
- k(""), C(-1), S.current?.focus();
203
- };
204
- s.useEffect(() => {
205
- if (J) {
206
- const t = setTimeout(() => he(!1), 500);
207
- return () => clearTimeout(t);
208
- }
209
- }, [J]), b || ue.snappy;
210
- const P = b ? F : Z.fade, z = b ? { opacity: 1, scale: 1, y: 0 } : void 0, D = d === "inline", A = h === "processing", Ie = h === "responded", X = () => /* @__PURE__ */ e(
211
- qe,
212
- {
213
- active: A,
214
- rounded: D ? "rounded-ds-md" : "rounded-ds-lg",
215
- reducedMotion: b,
216
- children: /* @__PURE__ */ r(
217
- "div",
218
- {
219
- className: u(
220
- "flex items-center gap-ds-04 border bg-surface-overlay transition-colors transition-shadow duration-fast-02 ease-productive-standard",
221
- D ? "rounded-ds-md px-ds-04" : "rounded-ds-lg px-ds-05",
222
- A ? "border-transparent" : "border-surface-border-strong",
223
- I && !A && "border-accent-7 shadow-ring",
224
- J && "animate-shake"
225
- ),
226
- children: [
227
- /* @__PURE__ */ e(
228
- v,
229
- {
230
- icon: je,
231
- size: D ? "xs" : "sm",
232
- stroke: "light",
233
- className: u(
234
- "shrink-0 transition-colors duration-fast-02 ease-productive-standard",
235
- I ? "text-accent-9" : "text-surface-fg-subtle"
236
- )
237
- }
238
- ),
239
- /* @__PURE__ */ r("div", { className: "relative flex flex-1 items-center", children: [
240
- !o && !I && $.length > 1 && /* @__PURE__ */ e(
241
- Ge,
242
- {
243
- placeholders: $,
244
- interval: me,
245
- paused: I || !!o
246
- }
247
- ),
248
- /* @__PURE__ */ e(
249
- "input",
250
- {
251
- ref: S,
252
- value: o,
253
- onChange: (t) => we(t.target.value),
254
- onFocus: () => oe(!0),
255
- onBlur: () => oe(!1),
256
- onKeyDown: ke,
257
- placeholder: $.length === 1 || I ? $[0] : "",
258
- readOnly: A,
259
- disabled: j,
260
- role: "combobox",
261
- "aria-expanded": c && m.length > 0,
262
- "aria-controls": c ? de : void 0,
263
- "aria-activedescendant": c && f >= 0 && m[f] ? `command-bar-item-${W}-${m[f].id}` : void 0,
264
- "aria-autocomplete": c ? "list" : void 0,
265
- "aria-label": te ? `Ask ${te}` : "AI Command Bar",
266
- className: u(
267
- "flex-1 bg-transparent text-surface-fg outline-none",
268
- "placeholder:text-surface-fg-subtle",
269
- D ? "h-9 text-ds-sm" : "h-12 text-ds-base",
270
- A && "cursor-wait",
271
- j && "cursor-not-allowed opacity-50"
272
- ),
273
- autoComplete: "off",
274
- autoCorrect: "off",
275
- spellCheck: !1
276
- }
277
- )
278
- ] }),
279
- A ? /* @__PURE__ */ e("span", { "data-testid": "command-bar-spinner", className: "shrink-0", children: /* @__PURE__ */ e(
280
- v,
281
- {
282
- icon: Fe,
283
- size: D ? "xs" : "sm",
284
- stroke: "light",
285
- animate: "spin",
286
- className: "text-accent-9"
287
- }
288
- ) }) : Ie ? /* @__PURE__ */ e(
289
- "button",
290
- {
291
- type: "button",
292
- onClick: Ce,
293
- className: "shrink-0 rounded-ds-sm p-ds-01 text-surface-fg-subtle transition-colors duration-fast-01 hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-9",
294
- "aria-label": "Clear",
295
- title: "Clear",
296
- children: /* @__PURE__ */ e(
297
- v,
298
- {
299
- icon: $e,
300
- size: D ? "xs" : "sm",
301
- stroke: "light"
302
- }
303
- )
304
- }
305
- ) : d === "hero" ? /* @__PURE__ */ e(_, { children: !I && /* @__PURE__ */ r(
306
- x.kbd,
307
- {
308
- initial: z ?? { opacity: 0 },
309
- animate: { opacity: 1 },
310
- exit: b ? void 0 : { opacity: 0 },
311
- transition: P,
312
- className: "hidden shrink-0 select-none rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b py-ds-01 text-ds-sm font-medium text-surface-fg-subtle shadow-kbd sm:inline-flex",
313
- children: [
314
- Ve(ye),
315
- "J"
316
- ]
317
- }
318
- ) }) : null
319
- ]
320
- }
321
- )
322
- }
323
- ), Y = () => !c || !(m.length > 0 || o.trim() && y.length === 0) && !o.trim() ? null : /* @__PURE__ */ r(
324
- "div",
325
- {
326
- ref: ie,
327
- id: de,
328
- role: "listbox",
329
- "aria-label": "Command results",
330
- className: "overflow-y-auto px-ds-03 py-ds-03",
331
- style: { maxHeight: Ne },
332
- children: [
333
- y.length === 0 && o.trim() && /* @__PURE__ */ e(
334
- x.div,
335
- {
336
- initial: z ?? { opacity: 0 },
337
- animate: { opacity: 1 },
338
- transition: P,
339
- className: "flex items-center justify-center py-ds-07",
340
- children: V ?? /* @__PURE__ */ e("p", { className: "text-ds-md text-surface-fg-subtle", children: O })
341
- }
342
- ),
343
- y.map((a, g) => /* @__PURE__ */ r(
344
- x.div,
345
- {
346
- initial: z ?? { opacity: 0 },
347
- animate: { opacity: 1 },
348
- transition: b ? F : { ...Z.fade, delay: g * 0.06 },
349
- className: "mb-ds-02",
350
- children: [
351
- /* @__PURE__ */ e("div", { className: "px-ds-03 pb-ds-02 pt-ds-03", children: /* @__PURE__ */ e("span", { className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle", children: a.label }) }),
352
- a.items.map((i) => {
353
- const E = ve.get(i.id) ?? 0, K = E === f;
354
- return /* @__PURE__ */ r(
355
- x.button,
356
- {
357
- id: `command-bar-item-${W}-${i.id}`,
358
- type: "button",
359
- role: "option",
360
- "aria-selected": K,
361
- "data-command-index": E,
362
- initial: z ?? { opacity: 0, y: 4 },
363
- animate: { opacity: 1, y: 0 },
364
- transition: b ? F : { ...ue.snappy, delay: E * 0.03 },
365
- onClick: () => {
366
- i.onSelect(), d === "floating" && w(!1);
367
- },
368
- onMouseEnter: () => C(E),
369
- className: u(
370
- "flex w-full items-center gap-ds-04 rounded-ds-lg px-ds-03 py-ds-03 text-left transition-[color,background-color] duration-fast-02 ease-productive-standard",
371
- K ? "bg-surface-raised-hover text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"
372
- ),
373
- children: [
374
- i.icon && /* @__PURE__ */ e(
375
- "span",
376
- {
377
- className: u(
378
- "[&>svg]:h-ico-sm [&>svg]:w-ico-sm shrink-0 transition-colors duration-fast-02 ease-productive-standard",
379
- K ? "text-accent-11" : "text-surface-fg-subtle"
380
- ),
381
- "aria-hidden": "true",
382
- children: i.icon
383
- }
384
- ),
385
- /* @__PURE__ */ r("div", { className: "flex flex-1 flex-col", children: [
386
- /* @__PURE__ */ e("span", { className: "text-ds-md", children: i.renderLabel ? i.renderLabel(o) : i.label }),
387
- i.description && /* @__PURE__ */ e("span", { className: "text-ds-sm text-surface-fg-subtle", children: i.description })
388
- ] }),
389
- /* @__PURE__ */ e(_, { children: K && /* @__PURE__ */ e(
390
- x.span,
391
- {
392
- initial: b ? void 0 : { opacity: 0 },
393
- animate: { opacity: 1 },
394
- exit: b ? void 0 : { opacity: 0 },
395
- transition: P,
396
- className: "inline-flex shrink-0",
397
- children: /* @__PURE__ */ e(
398
- v,
399
- {
400
- icon: le,
401
- size: "sm",
402
- stroke: "light",
403
- className: "text-surface-fg-subtle"
404
- }
405
- )
406
- }
407
- ) })
408
- ]
409
- },
410
- i.id
411
- );
412
- })
413
- ]
414
- },
415
- a.label
416
- ))
417
- ]
418
- }
419
- );
420
- return d === "hero" ? /* @__PURE__ */ r(
421
- "div",
422
- {
423
- ref: U,
424
- role: "search",
425
- className: u(
426
- "bg-surface-raised rounded-ds-xl shadow-raised p-ds-07",
427
- T
428
- ),
429
- ...G,
430
- children: [
431
- ee && /* @__PURE__ */ e("p", { className: "text-ds-lg text-surface-fg-muted mb-ds-04", children: ee }),
432
- X(),
433
- Y(),
434
- q && q.length > 0 && /* @__PURE__ */ e("div", { className: "mt-ds-04 flex flex-wrap gap-ds-02b", children: q.map((t) => /* @__PURE__ */ e(
435
- "button",
436
- {
437
- type: "button",
438
- onClick: () => {
439
- k(t), L?.(t), S.current?.focus();
440
- },
441
- className: "rounded-ds-md border border-surface-border-strong bg-surface-overlay px-ds-03 py-ds-01 text-ds-sm text-surface-fg-subtle transition-colors duration-fast-02 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted",
442
- children: t
443
- },
444
- t
445
- )) }),
446
- N && /* @__PURE__ */ e("div", { className: "mt-ds-05", children: N })
447
- ]
448
- }
449
- ) : d === "inline" ? /* @__PURE__ */ r(
450
- "div",
451
- {
452
- ref: U,
453
- role: "search",
454
- className: u("w-full", T),
455
- ...G,
456
- children: [
457
- X(),
458
- Y(),
459
- N && /* @__PURE__ */ e("div", { className: "mt-ds-03", children: N })
460
- ]
461
- }
462
- ) : /* @__PURE__ */ e(Ae, { open: R, onOpenChange: (t) => {
463
- w(t);
464
- }, children: /* @__PURE__ */ r(Ee, { children: [
465
- /* @__PURE__ */ e(Me, { className: "fixed inset-0 z-overlay bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }),
466
- /* @__PURE__ */ r(
467
- Re,
468
- {
469
- ref: U,
470
- ...G,
471
- className: u(
472
- "fixed left-1/2 top-[20%] z-modal w-full max-w-[560px] -translate-x-1/2",
473
- "overflow-hidden rounded-ds-xl border border-surface-border-strong bg-surface-overlay shadow-overlay",
474
- "duration-moderate-02 data-[state=open]:animate-in data-[state=closed]:animate-out",
475
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
476
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
477
- "data-[state=closed]:slide-out-to-left-1/2 data-[state=open]:slide-in-from-left-1/2",
478
- "data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2",
479
- T
480
- ),
481
- children: [
482
- /* @__PURE__ */ r(Pe, { children: [
483
- /* @__PURE__ */ e(Se, { children: "AI Command Bar" }),
484
- /* @__PURE__ */ e(ze, { children: "Search commands or ask a question" })
485
- ] }),
486
- /* @__PURE__ */ e("div", { className: "p-ds-04", children: X() }),
487
- Y(),
488
- N && /* @__PURE__ */ e("div", { className: "border-t border-surface-border-strong p-ds-04", children: N }),
489
- /* @__PURE__ */ r(
490
- x.div,
491
- {
492
- initial: z ?? { opacity: 0 },
493
- animate: { opacity: 1 },
494
- transition: P,
495
- className: "flex items-center gap-ds-05 border-t border-surface-border-strong px-ds-05 py-ds-03",
496
- children: [
497
- c && /* @__PURE__ */ r("div", { className: "flex items-center gap-ds-02b", children: [
498
- /* @__PURE__ */ r("div", { className: "flex items-center gap-ds-01", children: [
499
- /* @__PURE__ */ e("kbd", { className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded border border-surface-border-strong bg-surface-raised shadow-kbd", children: /* @__PURE__ */ e(v, { icon: Le, size: "xs", className: "text-surface-fg-subtle" }) }),
500
- /* @__PURE__ */ e("kbd", { className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded border border-surface-border-strong bg-surface-raised shadow-kbd", children: /* @__PURE__ */ e(v, { icon: Be, size: "xs", className: "text-surface-fg-subtle" }) })
501
- ] }),
502
- /* @__PURE__ */ e("span", { className: "text-ds-xs text-surface-fg-subtle", children: "Navigate" })
503
- ] }),
504
- /* @__PURE__ */ r("div", { className: "flex items-center gap-ds-02b", children: [
505
- /* @__PURE__ */ e("kbd", { className: "inline-flex h-[20px] items-center justify-center rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b shadow-kbd", children: /* @__PURE__ */ e(v, { icon: le, size: "xs", className: "text-surface-fg-subtle" }) }),
506
- /* @__PURE__ */ e("span", { className: "text-ds-xs text-surface-fg-subtle", children: "Submit" })
507
- ] }),
508
- /* @__PURE__ */ r("div", { className: "flex items-center gap-ds-02b", children: [
509
- /* @__PURE__ */ e("kbd", { className: "inline-flex h-[20px] items-center justify-center rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b text-ds-xs font-medium text-surface-fg-subtle shadow-kbd", children: "Esc" }),
510
- /* @__PURE__ */ e("span", { className: "text-ds-xs text-surface-fg-subtle", children: "Close" })
511
- ] })
512
- ]
513
- }
514
- )
515
- ]
516
- }
517
- )
518
- ] }) });
519
- }
520
- );
521
- Ue.displayName = "CommandBar";
522
- export {
523
- Ue as CommandBar
524
- };
110
+ var m = l.forwardRef(function({ onSubmit: u, state: m = "idle", groups: h = [], onSearch: _e, emptyMessage: ve = "No results found.", emptyState: ye, variant: g = "hero", placeholder: _ = "Ask anything...", placeholderInterval: be = 5e3, greeting: v, hints: y, agentName: b, agentIcon: xe, open: x, defaultOpen: Se, onOpenChange: S, keybinding: C = "mod+j", disabled: w = !1, maxHeight: T = "320px", children: E, className: D, ...O }, k) {
111
+ let A = x !== void 0, [Ce, we] = l.useState(Se ?? !1), j = A ? x : Ce, M = l.useRef(j);
112
+ M.current = j;
113
+ let N = l.useCallback((e) => {
114
+ let t = typeof e == "function" ? e(M.current) : e;
115
+ A || we(t), S?.(t);
116
+ }, [A, S]), [P, F] = l.useState(""), [I, L] = l.useState(-1), [Te, Ee] = l.useState(""), [R, De] = l.useState(!1), [z, Oe] = l.useState(!1), B = l.useRef(null), ke = l.useRef(null), V = l.useId(), Ae = `command-bar-listbox-${V}`, { reducedMotion: H } = ie(), U = { duration: 0 }, je = l.useMemo(() => se(), []), W = l.useMemo(() => Array.isArray(_) ? _ : [_], [_]), G = h.length > 0, K = l.useMemo(() => {
117
+ if (!G) return [];
118
+ if (!P.trim()) return h;
119
+ let e = P.toLowerCase();
120
+ return h.map((t) => ({
121
+ ...t,
122
+ items: t.items.filter((t) => me(t).toLowerCase().includes(e) || he(t).toLowerCase().includes(e))
123
+ })).filter((e) => e.items.length > 0);
124
+ }, [
125
+ h,
126
+ P,
127
+ G
128
+ ]), q = l.useMemo(() => K.flatMap((e) => e.items), [K]), Me = l.useMemo(() => {
129
+ let e = /* @__PURE__ */ new Map(), t = 0;
130
+ for (let n of K) for (let r of n.items) e.set(r.id, t++);
131
+ return e;
132
+ }, [K]), Ne = typeof T == "number" ? `${T}px` : T;
133
+ l.useEffect(() => {
134
+ if (g !== "floating" || C === !1) return;
135
+ let e = Array.isArray(C) ? C : [C];
136
+ function t(t) {
137
+ for (let n of e) if (oe(t, n)) {
138
+ t.preventDefault(), N((e) => !e);
139
+ return;
140
+ }
141
+ }
142
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
143
+ }, [
144
+ g,
145
+ C,
146
+ N
147
+ ]), l.useEffect(() => {
148
+ g === "floating" && j && (F(""), L(-1), requestAnimationFrame(() => {
149
+ B.current?.focus();
150
+ }));
151
+ }, [g, j]), l.useEffect(() => {
152
+ I < 0 || (ke.current?.querySelector(`[data-command-index="${I}"]`))?.scrollIntoView({ block: "nearest" });
153
+ }, [I]);
154
+ let Pe = (e) => {
155
+ F(e), L(G && e.trim() ? 0 : -1), _e?.(e);
156
+ }, Fe = l.useCallback(() => {
157
+ !P.trim() || w || (Ee(P), u?.(P));
158
+ }, [
159
+ P,
160
+ w,
161
+ u
162
+ ]), Ie = (e) => {
163
+ switch (e.key) {
164
+ case "ArrowDown":
165
+ if (!G || q.length === 0) return;
166
+ e.preventDefault(), L((e) => e < q.length - 1 ? e + 1 : 0);
167
+ break;
168
+ case "ArrowUp":
169
+ G && q.length > 0 ? (e.preventDefault(), L((e) => e > 0 ? e - 1 : q.length - 1)) : !G && !P && Te && (e.preventDefault(), F(Te));
170
+ break;
171
+ case "Enter":
172
+ e.preventDefault(), e.metaKey || e.ctrlKey ? Fe() : G && I >= 0 && q[I] ? (q[I].onSelect(), g === "floating" && N(!1)) : Fe();
173
+ break;
174
+ case "Escape":
175
+ e.preventDefault(), m === "responded" ? F("") : g === "floating" ? N(!1) : B.current?.blur();
176
+ break;
177
+ }
178
+ }, Le = () => {
179
+ F(""), L(-1), B.current?.focus();
180
+ };
181
+ l.useEffect(() => {
182
+ if (z) {
183
+ let e = setTimeout(() => Oe(!1), 500);
184
+ return () => clearTimeout(e);
185
+ }
186
+ }, [z]), H || n.snappy;
187
+ let J = H ? U : r.fade, Y = H ? {
188
+ opacity: 1,
189
+ scale: 1,
190
+ y: 0
191
+ } : void 0, X = g === "inline", Z = m === "processing", Re = m === "responded", Q = () => /* @__PURE__ */ d(pe, {
192
+ active: Z,
193
+ rounded: X ? "rounded-ds-md" : "rounded-ds-lg",
194
+ reducedMotion: H,
195
+ children: /* @__PURE__ */ f("div", {
196
+ className: i("flex items-center gap-ds-04 border bg-surface-overlay transition-colors transition-shadow duration-fast-02 ease-productive-standard", X ? "rounded-ds-md px-ds-04" : "rounded-ds-lg px-ds-05", Z ? "border-transparent" : "border-surface-border-strong", R && !Z && "border-accent-7 shadow-ring", z && "animate-shake"),
197
+ children: [
198
+ /* @__PURE__ */ d(a, {
199
+ icon: de,
200
+ size: X ? "xs" : "sm",
201
+ stroke: "light",
202
+ className: i("shrink-0 transition-colors duration-fast-02 ease-productive-standard", R ? "text-accent-9" : "text-surface-fg-subtle")
203
+ }),
204
+ /* @__PURE__ */ f("div", {
205
+ className: "relative flex flex-1 items-center",
206
+ children: [!P && !R && W.length > 1 && /* @__PURE__ */ d(ge, {
207
+ placeholders: W,
208
+ interval: be,
209
+ paused: R || !!P
210
+ }), /* @__PURE__ */ d("input", {
211
+ ref: B,
212
+ value: P,
213
+ onChange: (e) => Pe(e.target.value),
214
+ onFocus: () => De(!0),
215
+ onBlur: () => De(!1),
216
+ onKeyDown: Ie,
217
+ placeholder: W.length === 1 || R ? W[0] : "",
218
+ readOnly: Z,
219
+ disabled: w,
220
+ role: "combobox",
221
+ "aria-expanded": G && q.length > 0,
222
+ "aria-controls": G ? Ae : void 0,
223
+ "aria-activedescendant": G && I >= 0 && q[I] ? `command-bar-item-${V}-${q[I].id}` : void 0,
224
+ "aria-autocomplete": G ? "list" : void 0,
225
+ "aria-label": b ? `Ask ${b}` : "AI Command Bar",
226
+ className: i("flex-1 bg-transparent text-surface-fg outline-hidden", "placeholder:text-surface-fg-subtle", X ? "h-9 text-ds-sm" : "h-12 text-ds-base", Z && "cursor-wait", w && "cursor-not-allowed opacity-50"),
227
+ autoComplete: "off",
228
+ autoCorrect: "off",
229
+ spellCheck: !1
230
+ })]
231
+ }),
232
+ Z ? /* @__PURE__ */ d("span", {
233
+ "data-testid": "command-bar-spinner",
234
+ className: "shrink-0",
235
+ children: /* @__PURE__ */ d(a, {
236
+ icon: ue,
237
+ size: X ? "xs" : "sm",
238
+ stroke: "light",
239
+ animate: "spin",
240
+ className: "text-accent-9"
241
+ })
242
+ }) : Re ? /* @__PURE__ */ d("button", {
243
+ type: "button",
244
+ onClick: Le,
245
+ className: "shrink-0 rounded-ds-sm p-ds-01 text-surface-fg-subtle transition-colors duration-fast-01 hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9",
246
+ "aria-label": "Clear",
247
+ title: "Clear",
248
+ children: /* @__PURE__ */ d(a, {
249
+ icon: fe,
250
+ size: X ? "xs" : "sm",
251
+ stroke: "light"
252
+ })
253
+ }) : g === "hero" ? /* @__PURE__ */ d(t, { children: !R && /* @__PURE__ */ f(e.kbd, {
254
+ initial: Y ?? { opacity: 0 },
255
+ animate: { opacity: 1 },
256
+ exit: H ? void 0 : { opacity: 0 },
257
+ transition: J,
258
+ className: "hidden shrink-0 select-none rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b py-ds-01 text-ds-sm font-medium text-surface-fg-subtle shadow-kbd sm:inline-flex",
259
+ children: [ae(je), "J"]
260
+ }) }) : null
261
+ ]
262
+ })
263
+ }), $ = () => !G || !(q.length > 0 || P.trim() && K.length === 0) && !P.trim() ? null : /* @__PURE__ */ f("div", {
264
+ ref: ke,
265
+ id: Ae,
266
+ role: "listbox",
267
+ "aria-label": "Command results",
268
+ className: "overflow-y-auto px-ds-03 py-ds-03",
269
+ style: { maxHeight: Ne },
270
+ children: [K.length === 0 && P.trim() && /* @__PURE__ */ d(e.div, {
271
+ initial: Y ?? { opacity: 0 },
272
+ animate: { opacity: 1 },
273
+ transition: J,
274
+ className: "flex items-center justify-center py-ds-07",
275
+ children: ye ?? /* @__PURE__ */ d("p", {
276
+ className: "text-ds-md text-surface-fg-subtle",
277
+ children: ve
278
+ })
279
+ }), K.map((o, s) => /* @__PURE__ */ f(e.div, {
280
+ initial: Y ?? { opacity: 0 },
281
+ animate: { opacity: 1 },
282
+ transition: H ? U : {
283
+ ...r.fade,
284
+ delay: s * .06
285
+ },
286
+ className: "mb-ds-02",
287
+ children: [/* @__PURE__ */ d("div", {
288
+ className: "px-ds-03 pb-ds-02 pt-ds-03",
289
+ children: /* @__PURE__ */ d("span", {
290
+ className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle",
291
+ children: o.label
292
+ })
293
+ }), o.items.map((r) => {
294
+ let o = Me.get(r.id) ?? 0, s = o === I;
295
+ return /* @__PURE__ */ f(e.button, {
296
+ id: `command-bar-item-${V}-${r.id}`,
297
+ type: "button",
298
+ role: "option",
299
+ "aria-selected": s,
300
+ "data-command-index": o,
301
+ initial: Y ?? {
302
+ opacity: 0,
303
+ y: 4
304
+ },
305
+ animate: {
306
+ opacity: 1,
307
+ y: 0
308
+ },
309
+ transition: H ? U : {
310
+ ...n.snappy,
311
+ delay: o * .03
312
+ },
313
+ onClick: () => {
314
+ r.onSelect(), g === "floating" && N(!1);
315
+ },
316
+ onMouseEnter: () => L(o),
317
+ className: i("flex w-full items-center gap-ds-04 rounded-ds-lg px-ds-03 py-ds-03 text-left transition-[color,background-color] duration-fast-02 ease-productive-standard", s ? "bg-surface-raised-hover text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"),
318
+ children: [
319
+ r.icon && /* @__PURE__ */ d("span", {
320
+ className: i("[&>svg]:h-ico-sm [&>svg]:w-ico-sm shrink-0 transition-colors duration-fast-02 ease-productive-standard", s ? "text-accent-11" : "text-surface-fg-subtle"),
321
+ "aria-hidden": "true",
322
+ children: r.icon
323
+ }),
324
+ /* @__PURE__ */ f("div", {
325
+ className: "flex flex-1 flex-col",
326
+ children: [/* @__PURE__ */ d("span", {
327
+ className: "text-ds-md",
328
+ children: r.renderLabel ? r.renderLabel(P) : r.label
329
+ }), r.description && /* @__PURE__ */ d("span", {
330
+ className: "text-ds-sm text-surface-fg-subtle",
331
+ children: r.description
332
+ })]
333
+ }),
334
+ /* @__PURE__ */ d(t, { children: s && /* @__PURE__ */ d(e.span, {
335
+ initial: H ? void 0 : { opacity: 0 },
336
+ animate: { opacity: 1 },
337
+ exit: H ? void 0 : { opacity: 0 },
338
+ transition: J,
339
+ className: "inline-flex shrink-0",
340
+ children: /* @__PURE__ */ d(a, {
341
+ icon: p,
342
+ size: "sm",
343
+ stroke: "light",
344
+ className: "text-surface-fg-subtle"
345
+ })
346
+ }) })
347
+ ]
348
+ }, r.id);
349
+ })]
350
+ }, o.label))]
351
+ });
352
+ return g === "hero" ? /* @__PURE__ */ f("div", {
353
+ ref: k,
354
+ role: "search",
355
+ className: i("bg-surface-raised rounded-ds-xl shadow-raised p-ds-07", D),
356
+ ...O,
357
+ children: [
358
+ v && /* @__PURE__ */ d("p", {
359
+ className: "text-ds-lg text-surface-fg-muted mb-ds-04",
360
+ children: v
361
+ }),
362
+ Q(),
363
+ $(),
364
+ y && y.length > 0 && /* @__PURE__ */ d("div", {
365
+ className: "mt-ds-04 flex flex-wrap gap-ds-02b",
366
+ children: y.map((e) => /* @__PURE__ */ d("button", {
367
+ type: "button",
368
+ onClick: () => {
369
+ F(e), _e?.(e), B.current?.focus();
370
+ },
371
+ className: "rounded-ds-md border border-surface-border-strong bg-surface-overlay px-ds-03 py-ds-01 text-ds-sm text-surface-fg-subtle transition-colors duration-fast-02 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted",
372
+ children: e
373
+ }, e))
374
+ }),
375
+ E && /* @__PURE__ */ d("div", {
376
+ className: "mt-ds-05",
377
+ children: E
378
+ })
379
+ ]
380
+ }) : g === "inline" ? /* @__PURE__ */ f("div", {
381
+ ref: k,
382
+ role: "search",
383
+ className: i("w-full", D),
384
+ ...O,
385
+ children: [
386
+ Q(),
387
+ $(),
388
+ E && /* @__PURE__ */ d("div", {
389
+ className: "mt-ds-03",
390
+ children: E
391
+ })
392
+ ]
393
+ }) : /* @__PURE__ */ d(o, {
394
+ open: j,
395
+ onOpenChange: (e) => {
396
+ N(e);
397
+ },
398
+ children: /* @__PURE__ */ f(te, { children: [/* @__PURE__ */ d(ee, { className: "fixed inset-0 z-overlay bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }), /* @__PURE__ */ f(s, {
399
+ ref: k,
400
+ ...O,
401
+ className: i("fixed left-1/2 top-[20%] z-modal w-full max-w-[560px] -translate-x-1/2", "overflow-hidden rounded-ds-xl border border-surface-border-strong bg-surface-overlay shadow-overlay", "duration-moderate-02 data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", "data-[state=closed]:slide-out-to-left-1/2 data-[state=open]:slide-in-from-left-1/2", "data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2", D),
402
+ children: [
403
+ /* @__PURE__ */ f(re, { children: [/* @__PURE__ */ d(ne, { children: "AI Command Bar" }), /* @__PURE__ */ d(c, { children: "Search commands or ask a question" })] }),
404
+ /* @__PURE__ */ d("div", {
405
+ className: "p-ds-04",
406
+ children: Q()
407
+ }),
408
+ $(),
409
+ E && /* @__PURE__ */ d("div", {
410
+ className: "border-t border-surface-border-strong p-ds-04",
411
+ children: E
412
+ }),
413
+ /* @__PURE__ */ f(e.div, {
414
+ initial: Y ?? { opacity: 0 },
415
+ animate: { opacity: 1 },
416
+ transition: J,
417
+ className: "flex items-center gap-ds-05 border-t border-surface-border-strong px-ds-05 py-ds-03",
418
+ children: [
419
+ G && /* @__PURE__ */ f("div", {
420
+ className: "flex items-center gap-ds-02b",
421
+ children: [/* @__PURE__ */ f("div", {
422
+ className: "flex items-center gap-ds-01",
423
+ children: [/* @__PURE__ */ d("kbd", {
424
+ className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded border border-surface-border-strong bg-surface-raised shadow-kbd",
425
+ children: /* @__PURE__ */ d(a, {
426
+ icon: le,
427
+ size: "xs",
428
+ className: "text-surface-fg-subtle"
429
+ })
430
+ }), /* @__PURE__ */ d("kbd", {
431
+ className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded border border-surface-border-strong bg-surface-raised shadow-kbd",
432
+ children: /* @__PURE__ */ d(a, {
433
+ icon: ce,
434
+ size: "xs",
435
+ className: "text-surface-fg-subtle"
436
+ })
437
+ })]
438
+ }), /* @__PURE__ */ d("span", {
439
+ className: "text-ds-xs text-surface-fg-subtle",
440
+ children: "Navigate"
441
+ })]
442
+ }),
443
+ /* @__PURE__ */ f("div", {
444
+ className: "flex items-center gap-ds-02b",
445
+ children: [/* @__PURE__ */ d("kbd", {
446
+ className: "inline-flex h-[20px] items-center justify-center rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b shadow-kbd",
447
+ children: /* @__PURE__ */ d(a, {
448
+ icon: p,
449
+ size: "xs",
450
+ className: "text-surface-fg-subtle"
451
+ })
452
+ }), /* @__PURE__ */ d("span", {
453
+ className: "text-ds-xs text-surface-fg-subtle",
454
+ children: "Submit"
455
+ })]
456
+ }),
457
+ /* @__PURE__ */ f("div", {
458
+ className: "flex items-center gap-ds-02b",
459
+ children: [/* @__PURE__ */ d("kbd", {
460
+ className: "inline-flex h-[20px] items-center justify-center rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-02b text-ds-xs font-medium text-surface-fg-subtle shadow-kbd",
461
+ children: "Esc"
462
+ }), /* @__PURE__ */ d("span", {
463
+ className: "text-ds-xs text-surface-fg-subtle",
464
+ children: "Close"
465
+ })]
466
+ })
467
+ ]
468
+ })
469
+ ]
470
+ })] })
471
+ });
472
+ });
473
+ m.displayName = "CommandBar";
474
+ //#endregion
475
+ export { m as CommandBar };