@devalok/shilp-sutra 0.30.0 → 0.32.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 (266) hide show
  1. package/README.md +82 -239
  2. package/dist/_chunks/badge-group.js +123 -171
  3. package/dist/_chunks/document-preview.js +92 -0
  4. package/dist/_chunks/file-preview.js +511 -0
  5. package/dist/_chunks/image-preview.js +90 -0
  6. package/dist/_chunks/primitives.js +109 -109
  7. package/dist/_chunks/stat-row.js +144 -124
  8. package/dist/_chunks/use-calendar.js +558 -490
  9. package/dist/ai/block-renderer.d.ts +2 -1
  10. package/dist/ai/block-renderer.d.ts.map +1 -1
  11. package/dist/ai/block-renderer.js +30 -29
  12. package/dist/ai/blocks/block-table.d.ts.map +1 -1
  13. package/dist/ai/blocks/confirm.d.ts.map +1 -1
  14. package/dist/ai/blocks/divider.d.ts.map +1 -1
  15. package/dist/ai/blocks/error.d.ts.map +1 -1
  16. package/dist/ai/blocks/info.d.ts.map +1 -1
  17. package/dist/ai/blocks/loading.d.ts.map +1 -1
  18. package/dist/ai/blocks/stat-row.d.ts.map +1 -1
  19. package/dist/ai/blocks/success.d.ts.map +1 -1
  20. package/dist/ai/blocks/text.d.ts.map +1 -1
  21. package/dist/ai/command-bar.d.ts +18 -0
  22. package/dist/ai/command-bar.d.ts.map +1 -1
  23. package/dist/ai/command-bar.js +126 -125
  24. package/dist/ai/conversation.d.ts +13 -1
  25. package/dist/ai/conversation.d.ts.map +1 -1
  26. package/dist/ai/conversation.js +78 -78
  27. package/dist/ai/types.d.ts +0 -1
  28. package/dist/ai/types.d.ts.map +1 -1
  29. package/dist/ai/types.js +1 -0
  30. package/dist/composed/bulk-action-bar.d.ts +6 -4
  31. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  32. package/dist/composed/bulk-action-bar.js +102 -58
  33. package/dist/composed/command-palette.d.ts +9 -0
  34. package/dist/composed/command-palette.d.ts.map +1 -1
  35. package/dist/composed/command-palette.js +68 -68
  36. package/dist/composed/confirm-dialog.d.ts +1 -1
  37. package/dist/composed/confirm-dialog.d.ts.map +1 -1
  38. package/dist/composed/confirm-dialog.js +10 -10
  39. package/dist/composed/content-card.d.ts.map +1 -1
  40. package/dist/composed/date-picker/date-picker.d.ts +11 -1
  41. package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
  42. package/dist/composed/date-picker/month-picker.d.ts.map +1 -1
  43. package/dist/composed/date-picker/year-picker.d.ts.map +1 -1
  44. package/dist/composed/deadline-indicator.d.ts +1 -1
  45. package/dist/composed/deadline-indicator.d.ts.map +1 -1
  46. package/dist/composed/deadline-indicator.js +39 -36
  47. package/dist/composed/emoji-picker.d.ts +6 -0
  48. package/dist/composed/emoji-picker.d.ts.map +1 -1
  49. package/dist/composed/emoji-picker.js +22 -20
  50. package/dist/composed/error-boundary.d.ts +21 -1
  51. package/dist/composed/error-boundary.d.ts.map +1 -1
  52. package/dist/composed/error-boundary.js +47 -32
  53. package/dist/composed/file-preview/audio-preview.d.ts +7 -0
  54. package/dist/composed/file-preview/audio-preview.d.ts.map +1 -0
  55. package/dist/composed/file-preview/document-preview.d.ts +7 -0
  56. package/dist/composed/file-preview/document-preview.d.ts.map +1 -0
  57. package/dist/composed/file-preview/embed-preview.d.ts +7 -0
  58. package/dist/composed/file-preview/embed-preview.d.ts.map +1 -0
  59. package/dist/composed/file-preview/image-preview.d.ts +7 -0
  60. package/dist/composed/file-preview/image-preview.d.ts.map +1 -0
  61. package/dist/composed/file-preview/shared.d.ts +20 -0
  62. package/dist/composed/file-preview/shared.d.ts.map +1 -0
  63. package/dist/composed/file-preview/video-preview.d.ts +6 -0
  64. package/dist/composed/file-preview/video-preview.d.ts.map +1 -0
  65. package/dist/composed/file-preview.d.ts.map +1 -1
  66. package/dist/composed/file-preview.js +10 -662
  67. package/dist/composed/filter-bar.d.ts +10 -2
  68. package/dist/composed/filter-bar.d.ts.map +1 -1
  69. package/dist/composed/filter-bar.js +42 -43
  70. package/dist/composed/form-section.d.ts +1 -1
  71. package/dist/composed/form-section.d.ts.map +1 -1
  72. package/dist/composed/form-section.js +22 -21
  73. package/dist/composed/index.d.ts +2 -2
  74. package/dist/composed/index.d.ts.map +1 -1
  75. package/dist/composed/index.js +58 -57
  76. package/dist/composed/inline-edit.d.ts +1 -1
  77. package/dist/composed/inline-edit.d.ts.map +1 -1
  78. package/dist/composed/inline-edit.js +33 -32
  79. package/dist/composed/lib/string-utils.d.ts.map +1 -1
  80. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  81. package/dist/composed/markdown-viewer.d.ts +1 -1
  82. package/dist/composed/markdown-viewer.d.ts.map +1 -1
  83. package/dist/composed/markdown-viewer.js +60 -59
  84. package/dist/composed/master-detail.d.ts +11 -7
  85. package/dist/composed/master-detail.d.ts.map +1 -1
  86. package/dist/composed/master-detail.js +123 -84
  87. package/dist/composed/page-header.d.ts.map +1 -1
  88. package/dist/composed/page-skeletons.d.ts.map +1 -1
  89. package/dist/composed/priority-indicator.d.ts +1 -0
  90. package/dist/composed/priority-indicator.js +1 -0
  91. package/dist/composed/responsive-overlay.d.ts +8 -0
  92. package/dist/composed/responsive-overlay.d.ts.map +1 -1
  93. package/dist/composed/rich-text-editor.d.ts +11 -3
  94. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  95. package/dist/composed/rich-text-editor.js +21 -20
  96. package/dist/composed/schedule-view.d.ts +9 -1
  97. package/dist/composed/schedule-view.d.ts.map +1 -1
  98. package/dist/hooks/index.d.ts +2 -0
  99. package/dist/hooks/index.d.ts.map +1 -1
  100. package/dist/hooks/index.js +8 -4
  101. package/dist/hooks/use-touch-device.d.ts +12 -0
  102. package/dist/hooks/use-touch-device.d.ts.map +1 -0
  103. package/dist/hooks/use-touch-device.js +13 -0
  104. package/dist/hooks/use-viewport-height.d.ts +11 -0
  105. package/dist/hooks/use-viewport-height.d.ts.map +1 -0
  106. package/dist/hooks/use-viewport-height.js +16 -0
  107. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  108. package/dist/shell/bottom-navbar.js +72 -63
  109. package/dist/shell/command-registry.d.ts.map +1 -1
  110. package/dist/shell/notification-center.d.ts.map +1 -1
  111. package/dist/shell/notification-center.js +77 -77
  112. package/dist/shell/top-bar.d.ts +2 -2
  113. package/dist/shell/top-bar.d.ts.map +1 -1
  114. package/dist/shell/top-bar.js +61 -60
  115. package/dist/tailwind/index.cjs +51 -7
  116. package/dist/tailwind/preset.d.ts.map +1 -1
  117. package/dist/tailwind/preset.js +51 -7
  118. package/dist/tokens/primitives.css +3 -1
  119. package/dist/tokens/semantic.css +16 -13
  120. package/dist/tokens/typography.css +33 -4
  121. package/dist/ui/alert.d.ts +1 -0
  122. package/dist/ui/alert.d.ts.map +1 -1
  123. package/dist/ui/alert.js +42 -37
  124. package/dist/ui/autocomplete.d.ts.map +1 -1
  125. package/dist/ui/autocomplete.js +38 -39
  126. package/dist/ui/badge.d.ts +110 -2
  127. package/dist/ui/badge.d.ts.map +1 -1
  128. package/dist/ui/banner.d.ts.map +1 -1
  129. package/dist/ui/banner.js +8 -7
  130. package/dist/ui/button.d.ts +2 -2
  131. package/dist/ui/button.d.ts.map +1 -1
  132. package/dist/ui/button.js +54 -74
  133. package/dist/ui/card.d.ts +5 -1
  134. package/dist/ui/card.d.ts.map +1 -1
  135. package/dist/ui/card.js +111 -79
  136. package/dist/ui/charts/area-chart.d.ts +2 -0
  137. package/dist/ui/charts/area-chart.d.ts.map +1 -1
  138. package/dist/ui/charts/bar-chart.d.ts +2 -0
  139. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  140. package/dist/ui/charts/chart-container.d.ts +2 -0
  141. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  142. package/dist/ui/charts/index.js +583 -577
  143. package/dist/ui/charts/line-chart.d.ts +2 -0
  144. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  145. package/dist/ui/charts/pie-chart.d.ts +2 -0
  146. package/dist/ui/charts/pie-chart.d.ts.map +1 -1
  147. package/dist/ui/charts/radar-chart.d.ts +2 -0
  148. package/dist/ui/charts/radar-chart.d.ts.map +1 -1
  149. package/dist/ui/checkbox.d.ts +2 -0
  150. package/dist/ui/checkbox.d.ts.map +1 -1
  151. package/dist/ui/checkbox.js +36 -27
  152. package/dist/ui/code.d.ts.map +1 -1
  153. package/dist/ui/color-input.js +5 -5
  154. package/dist/ui/combobox.d.ts +6 -1
  155. package/dist/ui/combobox.d.ts.map +1 -1
  156. package/dist/ui/combobox.js +1 -1
  157. package/dist/ui/container.d.ts.map +1 -1
  158. package/dist/ui/context-menu.js +1 -1
  159. package/dist/ui/data-table-body.d.ts +12 -0
  160. package/dist/ui/data-table-body.d.ts.map +1 -0
  161. package/dist/ui/data-table-body.js +219 -0
  162. package/dist/ui/data-table-bulk-actions.d.ts +19 -0
  163. package/dist/ui/data-table-bulk-actions.d.ts.map +1 -0
  164. package/dist/ui/data-table-bulk-actions.js +61 -0
  165. package/dist/ui/data-table-card.d.ts +9 -0
  166. package/dist/ui/data-table-card.d.ts.map +1 -0
  167. package/dist/ui/data-table-card.js +73 -0
  168. package/dist/ui/data-table-context.d.ts +62 -0
  169. package/dist/ui/data-table-context.d.ts.map +1 -0
  170. package/dist/ui/data-table-context.js +48 -0
  171. package/dist/ui/data-table-header.d.ts +10 -0
  172. package/dist/ui/data-table-header.d.ts.map +1 -0
  173. package/dist/ui/data-table-header.js +141 -0
  174. package/dist/ui/data-table-pagination.d.ts +13 -0
  175. package/dist/ui/data-table-pagination.d.ts.map +1 -0
  176. package/dist/ui/data-table-pagination.js +84 -0
  177. package/dist/ui/data-table.d.ts +11 -9
  178. package/dist/ui/data-table.d.ts.map +1 -1
  179. package/dist/ui/data-table.js +258 -573
  180. package/dist/ui/dialog.d.ts +6 -2
  181. package/dist/ui/dialog.d.ts.map +1 -1
  182. package/dist/ui/dialog.js +84 -82
  183. package/dist/ui/dropdown-menu.js +1 -1
  184. package/dist/ui/hover-card.d.ts +7 -0
  185. package/dist/ui/hover-card.d.ts.map +1 -1
  186. package/dist/ui/hover-card.js +3 -3
  187. package/dist/ui/icon-group.d.ts +2 -4
  188. package/dist/ui/icon-group.d.ts.map +1 -1
  189. package/dist/ui/icon-group.js +22 -23
  190. package/dist/ui/index.d.ts +1 -2
  191. package/dist/ui/index.d.ts.map +1 -1
  192. package/dist/ui/index.js +94 -99
  193. package/dist/ui/label.js +1 -1
  194. package/dist/ui/lib/bottom-sheet.d.ts +16 -0
  195. package/dist/ui/lib/bottom-sheet.d.ts.map +1 -0
  196. package/dist/ui/lib/date-utils.d.ts.map +1 -1
  197. package/dist/ui/lib/motion.d.ts.map +1 -1
  198. package/dist/ui/lib/utils.d.ts.map +1 -1
  199. package/dist/ui/menubar.d.ts.map +1 -1
  200. package/dist/ui/menubar.js +64 -73
  201. package/dist/ui/navigation-menu.d.ts.map +1 -1
  202. package/dist/ui/navigation-menu.js +40 -44
  203. package/dist/ui/number-input.d.ts.map +1 -1
  204. package/dist/ui/number-input.js +19 -17
  205. package/dist/ui/popover.d.ts.map +1 -1
  206. package/dist/ui/popover.js +107 -32
  207. package/dist/ui/progress-ring.d.ts.map +1 -1
  208. package/dist/ui/progress-ring.js +80 -80
  209. package/dist/ui/progress.js +4 -4
  210. package/dist/ui/radio.d.ts +5 -2
  211. package/dist/ui/radio.d.ts.map +1 -1
  212. package/dist/ui/radio.js +29 -20
  213. package/dist/ui/search-input.d.ts.map +1 -1
  214. package/dist/ui/search-input.js +13 -12
  215. package/dist/ui/segmented-control.d.ts +6 -108
  216. package/dist/ui/segmented-control.d.ts.map +1 -1
  217. package/dist/ui/segmented-control.js +86 -272
  218. package/dist/ui/select.d.ts +3 -1
  219. package/dist/ui/select.d.ts.map +1 -1
  220. package/dist/ui/select.js +83 -71
  221. package/dist/ui/separator.js +5 -5
  222. package/dist/ui/sheet.d.ts +2 -0
  223. package/dist/ui/sheet.d.ts.map +1 -1
  224. package/dist/ui/sheet.js +102 -84
  225. package/dist/ui/sidebar.d.ts.map +1 -1
  226. package/dist/ui/sidebar.js +200 -175
  227. package/dist/ui/skeleton.d.ts.map +1 -1
  228. package/dist/ui/slider.js +14 -14
  229. package/dist/ui/stack.d.ts.map +1 -1
  230. package/dist/ui/status-dot.js +8 -8
  231. package/dist/ui/stepper.d.ts.map +1 -1
  232. package/dist/ui/stepper.js +33 -31
  233. package/dist/ui/switch.js +3 -3
  234. package/dist/ui/table.d.ts.map +1 -1
  235. package/dist/ui/tabs.d.ts +7 -0
  236. package/dist/ui/tabs.d.ts.map +1 -1
  237. package/dist/ui/tabs.js +102 -76
  238. package/dist/ui/text.d.ts.map +1 -1
  239. package/dist/ui/toast-types.d.ts +0 -1
  240. package/dist/ui/toast-types.d.ts.map +1 -1
  241. package/dist/ui/toast-types.js +0 -1
  242. package/dist/ui/toast.d.ts.map +1 -1
  243. package/dist/ui/toast.js +156 -150
  244. package/dist/ui/toggle-group.js +1 -1
  245. package/dist/ui/toggle.js +1 -1
  246. package/dist/ui/tooltip.js +3 -3
  247. package/dist/ui/visually-hidden.d.ts.map +1 -1
  248. package/docs/components/ui/alert.md +3 -0
  249. package/docs/components/ui/badge.md +3 -0
  250. package/docs/components/ui/card.md +4 -0
  251. package/docs/components/ui/data-table-body.md +13 -0
  252. package/docs/components/ui/data-table-bulk-actions.md +13 -0
  253. package/docs/components/ui/data-table-card.md +13 -0
  254. package/docs/components/ui/data-table-context.md +13 -0
  255. package/docs/components/ui/data-table-header.md +13 -0
  256. package/docs/components/ui/data-table-pagination.md +13 -0
  257. package/docs/components/ui/select.md +4 -0
  258. package/docs/components/ui/tabs.md +4 -0
  259. package/llms-full.txt +97 -48
  260. package/llms.txt +46 -1
  261. package/package.json +37 -7
  262. package/dist/ui/chip.d.ts +0 -19
  263. package/dist/ui/chip.d.ts.map +0 -1
  264. package/dist/ui/chip.js +0 -14
  265. package/dist/ui/lib/use-ripple.d.ts +0 -14
  266. package/dist/ui/lib/use-ripple.d.ts.map +0 -1
@@ -1,18 +1,18 @@
1
1
  "use client";
2
- import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
3
3
  import * as a from "react";
4
- import { IconCircle as T, IconCircleX as O, IconLoader2 as S, IconCircleCheck as L } from "@tabler/icons-react";
4
+ import { IconCircle as O, IconCircleX as S, IconLoader2 as L, IconCircleCheck as U } from "@tabler/icons-react";
5
5
  import { Icon as f } from "../ui/icon.js";
6
6
  import { cn as w } from "../ui/lib/utils.js";
7
7
  import { springs as B } from "../ui/lib/motion.js";
8
- import { u as U } from "../_chunks/motion-provider.js";
9
- import { BlockRenderer as V } from "./block-renderer.js";
10
- import { useAICommand as $ } from "./ai-command-provider.js";
11
- import { A as D, m as l } from "../_chunks/framer.js";
12
- function F({ status: t }) {
8
+ import { u as V } from "../_chunks/motion-provider.js";
9
+ import { BlockRenderer as $ } from "./block-renderer.js";
10
+ import { useAICommand as D } from "./ai-command-provider.js";
11
+ import { A as F, m as l } from "../_chunks/framer.js";
12
+ function G({ status: t }) {
13
13
  switch (t) {
14
14
  case "done":
15
- return /* @__PURE__ */ e(f, { icon: L, size: "sm", className: "text-success-11" });
15
+ return /* @__PURE__ */ e(f, { icon: U, size: "sm", className: "text-success-11" });
16
16
  case "active":
17
17
  return /* @__PURE__ */ e(
18
18
  l.span,
@@ -21,29 +21,29 @@ function F({ status: t }) {
21
21
  animate: { rotate: 360 },
22
22
  transition: { repeat: 1 / 0, duration: 1, ease: "linear" },
23
23
  "aria-hidden": "true",
24
- children: /* @__PURE__ */ e(f, { icon: S, size: "sm" })
24
+ children: /* @__PURE__ */ e(f, { icon: L, size: "sm" })
25
25
  }
26
26
  );
27
27
  case "error":
28
- return /* @__PURE__ */ e(f, { icon: O, size: "sm", className: "text-error-11" });
28
+ return /* @__PURE__ */ e(f, { icon: S, size: "sm", className: "text-error-11" });
29
29
  default:
30
- return /* @__PURE__ */ e(f, { icon: T, size: "sm", className: "text-surface-fg-subtle opacity-50" });
30
+ return /* @__PURE__ */ e(f, { icon: O, size: "sm", className: "text-surface-fg-subtle opacity-50" });
31
31
  }
32
32
  }
33
33
  function b({
34
34
  name: t,
35
- icon: n
35
+ icon: s
36
36
  }) {
37
- return /* @__PURE__ */ c("div", { className: "flex items-center gap-ds-02b mb-ds-03", children: [
38
- n && /* @__PURE__ */ e("span", { className: "h-4 w-4 flex items-center justify-center", children: n }),
37
+ return /* @__PURE__ */ o("div", { className: "flex items-center gap-ds-02b mb-ds-03", children: [
38
+ s && /* @__PURE__ */ e("span", { className: "h-4 w-4 flex items-center justify-center", children: s }),
39
39
  /* @__PURE__ */ e("span", { className: "text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle", children: t })
40
40
  ] });
41
41
  }
42
- function G({
42
+ function P({
43
43
  message: t,
44
- reducedMotion: n
44
+ reducedMotion: s
45
45
  }) {
46
- return n ? /* @__PURE__ */ e("div", { className: "bg-surface-raised rounded-ds-lg px-ds-05 py-ds-04", children: /* @__PURE__ */ e("p", { className: "text-ds-sm text-surface-fg", children: t.content }) }) : /* @__PURE__ */ e(
46
+ return s ? /* @__PURE__ */ e("div", { className: "bg-surface-raised rounded-ds-lg px-ds-05 py-ds-04", children: /* @__PURE__ */ e("p", { className: "text-ds-sm text-surface-fg", children: t.content }) }) : /* @__PURE__ */ e(
47
47
  l.div,
48
48
  {
49
49
  className: "bg-surface-raised rounded-ds-lg px-ds-05 py-ds-04",
@@ -54,64 +54,64 @@ function G({
54
54
  }
55
55
  );
56
56
  }
57
- function P({
57
+ function X({
58
58
  message: t,
59
- agent: n,
60
- onAction: o,
61
- customBlocks: s
59
+ agent: s,
60
+ onAction: c,
61
+ customBlocks: n
62
62
  }) {
63
- return /* @__PURE__ */ c("div", { children: [
64
- /* @__PURE__ */ e(b, { name: n.name, icon: n.icon }),
63
+ return /* @__PURE__ */ o("div", { children: [
64
+ /* @__PURE__ */ e(b, { name: s.name, icon: s.icon }),
65
65
  t.blocks && /* @__PURE__ */ e(
66
- V,
66
+ $,
67
67
  {
68
68
  blocks: t.blocks,
69
- onAction: o,
70
- customBlocks: s
69
+ onAction: c,
70
+ customBlocks: n
71
71
  }
72
72
  )
73
73
  ] });
74
74
  }
75
- function X({
75
+ function _({
76
76
  steps: t,
77
- agent: n,
78
- reducedMotion: o
77
+ agent: s,
78
+ reducedMotion: c
79
79
  }) {
80
- return t && t.length > 0 ? /* @__PURE__ */ c("div", { role: "status", "aria-busy": "true", "aria-label": "Processing", children: [
81
- /* @__PURE__ */ e(b, { name: n.name, icon: n.icon }),
82
- /* @__PURE__ */ e("div", { className: "flex flex-col gap-ds-02b", children: t.map((s, p) => /* @__PURE__ */ c(
80
+ return t && t.length > 0 ? /* @__PURE__ */ o("div", { role: "status", "aria-busy": "true", "aria-label": "Processing", children: [
81
+ /* @__PURE__ */ e(b, { name: s.name, icon: s.icon }),
82
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-ds-02b", children: t.map((n, p) => /* @__PURE__ */ o(
83
83
  l.div,
84
84
  {
85
85
  className: "flex items-center gap-ds-02b",
86
- initial: o ? void 0 : { opacity: 0, x: -8 },
86
+ initial: c ? void 0 : { opacity: 0, x: -8 },
87
87
  animate: { opacity: 1, x: 0 },
88
- transition: o ? { duration: 0 } : { duration: 0.2, delay: p * 0.05 },
88
+ transition: c ? { duration: 0 } : { duration: 0.2, delay: p * 0.05 },
89
89
  children: [
90
- /* @__PURE__ */ e(F, { status: s.status }),
90
+ /* @__PURE__ */ e(G, { status: n.status }),
91
91
  /* @__PURE__ */ e(
92
92
  "span",
93
93
  {
94
94
  className: w(
95
95
  "text-ds-sm",
96
- s.status === "pending" ? "text-surface-fg-subtle" : "text-surface-fg"
96
+ n.status === "pending" ? "text-surface-fg-subtle" : "text-surface-fg"
97
97
  ),
98
- children: s.label
98
+ children: n.label
99
99
  }
100
100
  )
101
101
  ]
102
102
  },
103
- s.id
103
+ n.id
104
104
  )) })
105
- ] }) : /* @__PURE__ */ c(
105
+ ] }) : /* @__PURE__ */ o(
106
106
  "div",
107
107
  {
108
108
  role: "status",
109
109
  "aria-busy": "true",
110
- "aria-label": `${n.name} is processing`,
110
+ "aria-label": `${s.name} is processing`,
111
111
  children: [
112
- /* @__PURE__ */ e(b, { name: n.name, icon: n.icon }),
113
- /* @__PURE__ */ c("div", { className: "flex items-center gap-ds-02", children: [
114
- !o && [0, 1, 2].map((s) => /* @__PURE__ */ e(
112
+ /* @__PURE__ */ e(b, { name: s.name, icon: s.icon }),
113
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-ds-02", children: [
114
+ !c && [0, 1, 2].map((n) => /* @__PURE__ */ e(
115
115
  l.span,
116
116
  {
117
117
  className: "h-1.5 w-1.5 rounded-full bg-accent-9",
@@ -120,13 +120,13 @@ function X({
120
120
  duration: 1.4,
121
121
  repeat: 1 / 0,
122
122
  ease: "easeInOut",
123
- delay: s * 0.16
123
+ delay: n * 0.16
124
124
  }
125
125
  },
126
- s
126
+ n
127
127
  )),
128
- /* @__PURE__ */ c("span", { className: "ml-ds-02b text-ds-sm text-surface-fg-subtle", children: [
129
- n.name,
128
+ /* @__PURE__ */ o("span", { className: "ml-ds-02b text-ds-sm text-surface-fg-subtle", children: [
129
+ s.name,
130
130
  " is thinking..."
131
131
  ] })
132
132
  ] })
@@ -134,8 +134,8 @@ function X({
134
134
  }
135
135
  );
136
136
  }
137
- function _({ onClick: t }) {
138
- return /* @__PURE__ */ c(
137
+ function q({ onClick: t }) {
138
+ return /* @__PURE__ */ o(
139
139
  l.button,
140
140
  {
141
141
  role: "button",
@@ -153,21 +153,20 @@ function _({ onClick: t }) {
153
153
  }
154
154
  );
155
155
  }
156
- const q = { name: "Assistant" };
157
- function ne({
156
+ const H = { name: "Assistant" }, J = a.forwardRef(({
158
157
  messages: t,
159
- isProcessing: n = !1,
160
- processingSteps: o,
161
- agent: s,
158
+ isProcessing: s = !1,
159
+ processingSteps: c,
160
+ agent: n,
162
161
  onAction: p,
163
162
  customBlocks: y,
164
- maxHeight: u,
165
- autoScroll: d = !0,
163
+ maxHeight: d,
164
+ autoScroll: u = !0,
166
165
  className: R
167
- }) {
168
- const m = $(), { reducedMotion: v } = U(), N = s ?? m?.agent ?? q, z = p ?? m?.onAction, j = a.useMemo(() => ({ ...m?.customBlocks ?? {}, ...y }), [m?.customBlocks, y]), g = a.useRef(null), i = a.useRef(null), [x, I] = a.useState(!0), [E, h] = a.useState(!1), k = a.useRef(t.length), A = a.useRef(n);
166
+ }, z) => {
167
+ const m = D(), { reducedMotion: v } = V(), N = n ?? m?.agent ?? H, j = p ?? m?.onAction, E = a.useMemo(() => ({ ...m?.customBlocks ?? {}, ...y }), [m?.customBlocks, y]), g = a.useRef(null), i = a.useRef(null), [x, I] = a.useState(!0), [M, h] = a.useState(!1), k = a.useRef(t.length), A = a.useRef(s);
169
168
  a.useEffect(() => {
170
- if (!d || !i.current) return;
169
+ if (!u || !i.current) return;
171
170
  const r = new IntersectionObserver(
172
171
  ([C]) => {
173
172
  I(C.isIntersecting), C.isIntersecting && h(!1);
@@ -178,47 +177,47 @@ function ne({
178
177
  }
179
178
  );
180
179
  return r.observe(i.current), () => r.disconnect();
181
- }, [d]), a.useEffect(() => {
182
- const r = t.length !== k.current || n !== A.current;
183
- k.current = t.length, A.current = n, !(!r || !d) && (x ? i.current?.scrollIntoView({ behavior: "smooth", block: "end" }) : h(!0));
184
- }, [t, n, x, d]);
185
- const M = a.useCallback(() => {
180
+ }, [u]), a.useEffect(() => {
181
+ const r = t.length !== k.current || s !== A.current;
182
+ k.current = t.length, A.current = s, !(!r || !u) && (x ? i.current?.scrollIntoView({ behavior: "smooth", block: "end" }) : h(!0));
183
+ }, [t, s, x, u]);
184
+ const T = a.useCallback(() => {
186
185
  i.current?.scrollIntoView({ behavior: "smooth", block: "end" }), I(!0), h(!1);
187
186
  }, []);
188
- return /* @__PURE__ */ c("div", { className: w("relative", R), children: [
189
- /* @__PURE__ */ c(
187
+ return /* @__PURE__ */ o("div", { ref: z, className: w("relative", R), children: [
188
+ /* @__PURE__ */ o(
190
189
  "div",
191
190
  {
192
191
  ref: g,
193
192
  className: "flex flex-col gap-ds-05 overflow-y-auto",
194
193
  "aria-live": "polite",
195
- style: u ? {
196
- maxHeight: typeof u == "number" ? `${u}px` : u
194
+ style: d ? {
195
+ maxHeight: typeof d == "number" ? `${d}px` : d
197
196
  } : void 0,
198
197
  children: [
199
198
  t.map(
200
199
  (r) => r.role === "user" ? /* @__PURE__ */ e(
201
- G,
200
+ P,
202
201
  {
203
202
  message: r,
204
203
  reducedMotion: v
205
204
  },
206
205
  r.id
207
206
  ) : /* @__PURE__ */ e(
208
- P,
207
+ X,
209
208
  {
210
209
  message: r,
211
210
  agent: N,
212
- onAction: z,
213
- customBlocks: j
211
+ onAction: j,
212
+ customBlocks: E
214
213
  },
215
214
  r.id
216
215
  )
217
216
  ),
218
- n && /* @__PURE__ */ e(
219
- X,
217
+ s && /* @__PURE__ */ e(
218
+ _,
220
219
  {
221
- steps: o,
220
+ steps: c,
222
221
  agent: N,
223
222
  reducedMotion: v
224
223
  }
@@ -227,9 +226,10 @@ function ne({
227
226
  ]
228
227
  }
229
228
  ),
230
- /* @__PURE__ */ e(D, { children: !x && E && /* @__PURE__ */ e(_, { onClick: M }) })
229
+ /* @__PURE__ */ e(F, { children: !x && M && /* @__PURE__ */ e(q, { onClick: T }) })
231
230
  ] });
232
- }
231
+ });
232
+ J.displayName = "AIConversation";
233
233
  export {
234
- ne as AIConversation
234
+ J as AIConversation
235
235
  };
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  export interface Block {
3
2
  type: string;
4
3
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+
@@ -1,12 +1,11 @@
1
1
  "use client";
2
+ import { IconProps } from '../ui/icon';
2
3
  import * as React from 'react';
3
4
  export interface BulkActionBarAction {
4
5
  label: string;
5
- icon?: React.ComponentType<{
6
- className?: string;
7
- }>;
6
+ icon?: IconProps['icon'];
8
7
  onClick: () => void;
9
- color?: 'default' | 'error';
8
+ color?: 'accent' | 'error';
10
9
  disabled?: boolean;
11
10
  /** Show inline confirmation before executing the action */
12
11
  requiresConfirmation?: boolean;
@@ -25,5 +24,8 @@ export interface BulkActionBarProps {
25
24
  className?: string;
26
25
  }
27
26
  declare function BulkActionBar({ show, count, onClearSelection, actions, totalCount, onSelectAll, className, }: BulkActionBarProps): React.ReactPortal | null;
27
+ declare namespace BulkActionBar {
28
+ var displayName: string;
29
+ }
28
30
  export { BulkActionBar };
29
31
  //# sourceMappingURL=bulk-action-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-action-bar.d.ts","sourceRoot":"","sources":["../../src/composed/bulk-action-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAoED,iBAAS,aAAa,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE,kBAAkB,4BAwDpB;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"bulk-action-bar.d.ts","sourceRoot":"","sources":["../../src/composed/bulk-action-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAUjD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAyED,iBAAS,aAAa,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE,kBAAkB,4BAqGpB;kBA7GQ,aAAa;;;AAiHtB,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -1,116 +1,159 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import { jsxs as u, jsx as t } from "react/jsx-runtime";
3
3
  import * as n from "react";
4
- import { createPortal as h } from "react-dom";
5
- import { IconX as x } from "@tabler/icons-react";
6
- import { Icon as p } from "../ui/icon.js";
7
- import { cn as b } from "../ui/lib/utils.js";
8
- import { Button as t } from "../ui/button.js";
9
- import { B as v } from "../_chunks/badge-group.js";
10
- import { springs as C } from "../ui/lib/motion.js";
11
- import { A as d, m as l } from "../_chunks/framer.js";
12
- function k({ action: i }) {
13
- const [r, s] = n.useState(!1);
14
- return r ? /* @__PURE__ */ a(
15
- l.div,
4
+ import { createPortal as B } from "react-dom";
5
+ import { IconX as w } from "@tabler/icons-react";
6
+ import { Icon as x } from "../ui/icon.js";
7
+ import { cn as z } from "../ui/lib/utils.js";
8
+ import { Button as m } from "../ui/button.js";
9
+ import { B as A } from "../_chunks/badge-group.js";
10
+ import { springs as D } from "../ui/lib/motion.js";
11
+ import { m as y, A as h } from "../_chunks/framer.js";
12
+ const I = n.forwardRef(function({ action: e, tabIndex: c }, o) {
13
+ const [l, a] = n.useState(!1);
14
+ return l ? /* @__PURE__ */ u(
15
+ y.div,
16
16
  {
17
+ ref: o,
17
18
  initial: { opacity: 0, scale: 0.95 },
18
19
  animate: { opacity: 1, scale: 1 },
19
20
  exit: { opacity: 0, scale: 0.95 },
20
21
  transition: { type: "spring", stiffness: 500, damping: 30 },
21
22
  className: "flex items-center gap-ds-02",
23
+ tabIndex: c,
22
24
  children: [
23
- /* @__PURE__ */ e("span", { className: "text-ds-sm text-surface-fg-muted whitespace-nowrap", children: i.confirmMessage ?? "Are you sure?" }),
24
- /* @__PURE__ */ e(
25
- t,
25
+ /* @__PURE__ */ t("span", { className: "text-ds-sm text-surface-fg-muted whitespace-nowrap", children: e.confirmMessage ?? "Are you sure?" }),
26
+ /* @__PURE__ */ t(
27
+ m,
26
28
  {
27
29
  variant: "solid",
28
30
  size: "sm",
29
31
  color: "error",
30
32
  onClick: () => {
31
- s(!1), i.onClick();
33
+ a(!1), e.onClick();
32
34
  },
33
35
  children: "Confirm"
34
36
  }
35
37
  ),
36
- /* @__PURE__ */ e(
37
- t,
38
+ /* @__PURE__ */ t(
39
+ m,
38
40
  {
39
41
  variant: "ghost",
40
42
  size: "sm",
41
- onClick: () => s(!1),
43
+ onClick: () => a(!1),
42
44
  children: "Cancel"
43
45
  }
44
46
  )
45
47
  ]
46
48
  }
47
- ) : /* @__PURE__ */ e(
48
- l.div,
49
+ ) : /* @__PURE__ */ t(
50
+ y.div,
49
51
  {
52
+ ref: o,
50
53
  initial: { opacity: 0, scale: 0.95 },
51
54
  animate: { opacity: 1, scale: 1 },
52
55
  exit: { opacity: 0, scale: 0.95 },
53
56
  transition: { type: "spring", stiffness: 500, damping: 30 },
54
- children: /* @__PURE__ */ e(
55
- t,
57
+ tabIndex: c,
58
+ children: /* @__PURE__ */ t(
59
+ m,
56
60
  {
57
61
  variant: "ghost",
58
62
  size: "sm",
59
- color: i.color === "error" ? "error" : "default",
60
- disabled: i.disabled,
61
- onClick: i.requiresConfirmation ? () => s(!0) : i.onClick,
62
- startIcon: i.icon ? /* @__PURE__ */ e(p, { icon: i.icon }) : void 0,
63
- children: i.label
63
+ color: e.color === "error" ? "error" : "accent",
64
+ disabled: e.disabled,
65
+ onClick: e.requiresConfirmation ? () => a(!0) : e.onClick,
66
+ startIcon: e.icon ? /* @__PURE__ */ t(x, { icon: e.icon }) : void 0,
67
+ tabIndex: -1,
68
+ children: e.label
64
69
  }
65
70
  )
66
71
  }
67
72
  );
68
- }
69
- function S({
70
- show: i,
71
- count: r,
72
- onClearSelection: s,
73
- actions: f,
74
- totalCount: o,
75
- onSelectAll: c,
76
- className: u
73
+ });
74
+ function N({
75
+ show: g,
76
+ count: e,
77
+ onClearSelection: c,
78
+ actions: o,
79
+ totalCount: l,
80
+ onSelectAll: a,
81
+ className: v
77
82
  }) {
78
- const [y, g] = n.useState(!1);
79
- return n.useEffect(() => {
80
- g(!0);
81
- }, []), y ? h(
82
- /* @__PURE__ */ e(d, { children: i && /* @__PURE__ */ a(
83
- l.div,
83
+ const [k, b] = n.useState(!1), [p, f] = n.useState(0), d = n.useRef([]);
84
+ n.useEffect(() => {
85
+ f(0);
86
+ }, [o.length]), n.useEffect(() => {
87
+ b(!0);
88
+ }, []);
89
+ function C(r) {
90
+ if (r.key === "Escape") {
91
+ r.preventDefault(), c();
92
+ return;
93
+ }
94
+ const s = o.length;
95
+ if (s !== 0) {
96
+ if (r.key === "ArrowRight") {
97
+ r.preventDefault();
98
+ const i = (p + 1) % s;
99
+ f(i), d.current[i]?.focus();
100
+ } else if (r.key === "ArrowLeft") {
101
+ r.preventDefault();
102
+ const i = (p - 1 + s) % s;
103
+ f(i), d.current[i]?.focus();
104
+ } else if (r.key === "Home")
105
+ r.preventDefault(), f(0), d.current[0]?.focus();
106
+ else if (r.key === "End") {
107
+ r.preventDefault();
108
+ const i = s - 1;
109
+ f(i), d.current[i]?.focus();
110
+ }
111
+ }
112
+ }
113
+ return k ? B(
114
+ /* @__PURE__ */ t(h, { children: g && /* @__PURE__ */ u(
115
+ y.div,
84
116
  {
85
117
  initial: { y: 100, opacity: 0 },
86
118
  animate: { y: 0, opacity: 1 },
87
119
  exit: { y: 100, opacity: 0 },
88
- transition: C.snappy,
89
- className: b(
120
+ transition: D.snappy,
121
+ className: z(
90
122
  "fixed bottom-ds-06 left-1/2 z-50 -translate-x-1/2",
91
123
  "flex items-center gap-ds-04 rounded-ds-lg border border-surface-border bg-surface-overlay px-ds-05 py-ds-03 shadow-floating",
92
- u
124
+ v
93
125
  ),
94
126
  role: "toolbar",
95
- "aria-label": `${r} items selected`,
127
+ "aria-label": `${e} items selected`,
128
+ onKeyDown: C,
96
129
  children: [
97
- /* @__PURE__ */ a(v, { variant: "solid", size: "sm", children: [
98
- r,
130
+ /* @__PURE__ */ u(A, { variant: "solid", size: "sm", children: [
131
+ e,
99
132
  " selected"
100
133
  ] }),
101
- o != null && o > r && c && /* @__PURE__ */ a(t, { variant: "link", size: "xs", onClick: c, children: [
134
+ l != null && l > e && a && /* @__PURE__ */ u(m, { variant: "link", size: "xs", onClick: a, children: [
102
135
  "Select all ",
103
- o
136
+ l
104
137
  ] }),
105
- /* @__PURE__ */ e("div", { className: "flex items-center gap-ds-02", children: /* @__PURE__ */ e(d, { mode: "popLayout", children: f.map((m) => /* @__PURE__ */ e(k, { action: m }, m.label)) }) }),
106
- /* @__PURE__ */ e(
107
- t,
138
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-ds-02", children: /* @__PURE__ */ t(h, { mode: "popLayout", children: o.map((r, s) => /* @__PURE__ */ t(
139
+ I,
140
+ {
141
+ ref: (i) => {
142
+ d.current[s] = i;
143
+ },
144
+ action: r,
145
+ tabIndex: s === p ? 0 : -1
146
+ },
147
+ r.label
148
+ )) }) }),
149
+ /* @__PURE__ */ t(
150
+ m,
108
151
  {
109
152
  variant: "ghost",
110
153
  size: "icon-sm",
111
- onClick: s,
154
+ onClick: c,
112
155
  "aria-label": "Clear selection",
113
- children: /* @__PURE__ */ e(p, { icon: x, size: "sm" })
156
+ children: /* @__PURE__ */ t(x, { icon: w, size: "sm" })
114
157
  }
115
158
  )
116
159
  ]
@@ -119,6 +162,7 @@ function S({
119
162
  document.body
120
163
  ) : null;
121
164
  }
165
+ N.displayName = "BulkActionBar";
122
166
  export {
123
- S as BulkActionBar
167
+ N as BulkActionBar
124
168
  };
@@ -32,10 +32,19 @@ export interface FooterHint {
32
32
  /** Human-readable label for the hint (e.g., "Navigate", "Select"). */
33
33
  label: string;
34
34
  }
35
+ /**
36
+ * A searchable command palette with keyboard navigation (Ctrl+K / Cmd+K).
37
+ * Supports grouped items, custom keybindings, controlled/uncontrolled open state,
38
+ * and custom empty states.
39
+ */
35
40
  export interface CommandPaletteProps extends React.ComponentPropsWithoutRef<'div'> {
41
+ /** Item groups displayed in the palette. Each group has a label and an array of CommandItems. */
36
42
  groups?: CommandGroup[];
43
+ /** Placeholder text for the search input. */
37
44
  placeholder?: string;
45
+ /** Called on every search input change with the current query string. */
38
46
  onSearch?: (query: string) => void;
47
+ /** Simple text shown when no results match. Overridden by `emptyState` if provided. */
39
48
  emptyMessage?: string;
40
49
  /** Full custom empty state ReactNode — overrides `emptyMessage` when provided. */
41
50
  emptyState?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../src/composed/command-palette.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqB9B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,uGAAuG;IACvG,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAC/B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sGAAsG;IACtG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAChD,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAChF,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kFAAkF;IAClF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAE5B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAEtC;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAA;IAEtC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE3B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;CACnC;AAmCD,QAAA,MAAM,cAAc,4FA6ZnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../src/composed/command-palette.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqB9B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,uGAAuG;IACvG,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAC/B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sGAAsG;IACtG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAChD,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAChF,iGAAiG;IACjG,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kFAAkF;IAClF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAE5B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAEtC;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAA;IAEtC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE3B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;CACnC;AAmCD,QAAA,MAAM,cAAc,4FA6ZnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA"}