@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,28 +1,28 @@
1
1
  "use client";
2
- import { jsxs as T, jsx as d } from "react/jsx-runtime";
2
+ import { jsxs as j, jsx as d } from "react/jsx-runtime";
3
3
  import * as t from "react";
4
4
  import { cn as p } from "./lib/utils.js";
5
- import { tweens as j, springs as L } from "./lib/motion.js";
6
- import { A as P, m as y } from "../_chunks/framer.js";
7
- const q = {
5
+ import { tweens as L, springs as P } from "./lib/motion.js";
6
+ import { A as q, m as v } from "../_chunks/framer.js";
7
+ const z = {
8
8
  hidden: {},
9
9
  visible: { transition: { staggerChildren: 0.03 } }
10
- }, z = {
10
+ }, B = {
11
11
  hidden: { opacity: 0, y: 4 },
12
- visible: { opacity: 1, y: 0, transition: L.snappy }
13
- }, B = t.forwardRef(
12
+ visible: { opacity: 1, y: 0, transition: P.snappy }
13
+ }, F = t.forwardRef(
14
14
  ({
15
15
  options: b,
16
16
  value: u,
17
17
  onValueChange: g,
18
18
  placeholder: I,
19
19
  emptyText: R = "No options",
20
- disabled: x,
20
+ disabled: y,
21
21
  className: A,
22
22
  id: C,
23
23
  ...E
24
24
  }, i) => {
25
- const N = t.useId(), w = C || N, k = `${w}-listbox`, D = `${w}-option`, [f, h] = t.useState(u?.label ?? ""), [l, a] = t.useState(!1), [s, o] = t.useState(-1), $ = t.useRef(null), M = t.useRef(null), v = t.useRef(void 0), S = t.useCallback(
25
+ const N = t.useId(), x = C || N, w = `${x}-listbox`, k = `${x}-option`, [f, h] = t.useState(u?.label ?? ""), [l, r] = t.useState(!1), [s, o] = t.useState(-1), $ = t.useRef(null), M = t.useRef(null), D = t.useRef(null), S = t.useCallback(
26
26
  (e) => {
27
27
  $.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
28
28
  },
@@ -31,40 +31,39 @@ const q = {
31
31
  t.useEffect(() => {
32
32
  h(u?.label ?? "");
33
33
  }, [u]), t.useEffect(() => () => {
34
- v.current && clearTimeout(v.current);
35
34
  }, []);
36
35
  const n = t.useMemo(
37
36
  () => f ? b.filter((e) => e.label.toLowerCase().includes(f.toLowerCase())) : b,
38
37
  [b, f]
39
38
  ), m = t.useCallback(
40
39
  (e) => {
41
- h(e.label), a(!1), o(-1), g?.(e);
40
+ h(e.label), r(!1), o(-1), g?.(e);
42
41
  },
43
42
  [g]
44
43
  ), K = t.useCallback(
45
44
  (e) => {
46
45
  if (!l) {
47
- (e.key === "ArrowDown" || e.key === "Enter") && a(!0);
46
+ (e.key === "ArrowDown" || e.key === "Enter") && r(!0);
48
47
  return;
49
48
  }
50
49
  switch (e.key) {
51
50
  case "ArrowDown":
52
- e.preventDefault(), o((r) => Math.min(r + 1, n.length - 1));
51
+ e.preventDefault(), o((a) => Math.min(a + 1, n.length - 1));
53
52
  break;
54
53
  case "ArrowUp":
55
- e.preventDefault(), o((r) => Math.max(r - 1, 0));
54
+ e.preventDefault(), o((a) => Math.max(a - 1, 0));
56
55
  break;
57
56
  case "Enter":
58
57
  e.preventDefault(), s >= 0 && n[s] && m(n[s]);
59
58
  break;
60
59
  case "Escape":
61
- a(!1), o(-1);
60
+ r(!1), o(-1);
62
61
  break;
63
62
  }
64
63
  },
65
64
  [l, n, s, m]
66
- ), O = s >= 0 ? `${D}-${s}` : void 0;
67
- return /* @__PURE__ */ T("div", { className: p("relative", A), ...E, children: [
65
+ ), O = s >= 0 ? `${k}-${s}` : void 0;
66
+ return /* @__PURE__ */ j("div", { ref: D, className: p("relative", A), ...E, children: [
68
67
  /* @__PURE__ */ d(
69
68
  "input",
70
69
  {
@@ -73,60 +72,60 @@ const q = {
73
72
  role: "combobox",
74
73
  "aria-expanded": l,
75
74
  "aria-autocomplete": "list",
76
- "aria-controls": l ? k : void 0,
75
+ "aria-controls": l ? w : void 0,
77
76
  "aria-activedescendant": O,
78
77
  value: f,
79
78
  placeholder: I,
80
- disabled: x,
79
+ disabled: y,
81
80
  className: p(
82
81
  "flex h-ds-md w-full rounded-ds-md border border-surface-border-strong bg-surface-raised-hover px-ds-04 py-ds-03 font-sans text-ds-md text-surface-fg placeholder:text-surface-fg-subtle",
83
82
  "outline-none focus-visible:ring-2 focus-visible:ring-accent-9 focus-visible:ring-offset-[var(--border-focus-offset)]",
84
83
  "transition-colors duration-fast-01",
85
- x && "opacity-action-disabled cursor-not-allowed"
84
+ y && "opacity-action-disabled cursor-not-allowed"
86
85
  ),
87
86
  onChange: (e) => {
88
- h(e.target.value), a(!0), o(-1);
87
+ h(e.target.value), r(!0), o(-1);
89
88
  },
90
- onFocus: () => a(!0),
91
- onBlur: () => {
92
- v.current = setTimeout(() => a(!1), 150);
89
+ onFocus: () => r(!0),
90
+ onBlur: (e) => {
91
+ D.current?.contains(e.relatedTarget) || r(!1);
93
92
  },
94
93
  onKeyDown: K
95
94
  }
96
95
  ),
97
- /* @__PURE__ */ d(P, { children: l && /* @__PURE__ */ d(
98
- y.ul,
96
+ /* @__PURE__ */ d(q, { children: l && /* @__PURE__ */ d(
97
+ v.ul,
99
98
  {
100
- id: k,
99
+ id: w,
101
100
  ref: M,
102
101
  role: "listbox",
103
102
  initial: "hidden",
104
103
  animate: "visible",
105
104
  exit: "hidden",
106
- variants: q,
105
+ variants: z,
107
106
  className: p(
108
107
  "absolute z-popover mt-ds-02 w-full overflow-auto rounded-ds-md border border-surface-border-strong bg-surface-overlay shadow-raised-hover",
109
108
  "max-h-60"
110
109
  ),
111
110
  children: n.length === 0 ? /* @__PURE__ */ d(
112
- y.li,
111
+ v.li,
113
112
  {
114
113
  initial: { opacity: 0 },
115
114
  animate: { opacity: 1 },
116
- transition: j.fade,
115
+ transition: L.fade,
117
116
  className: "px-ds-04 py-ds-03 text-ds-md text-surface-fg-muted",
118
117
  children: R
119
118
  }
120
- ) : n.map((e, r) => /* @__PURE__ */ d(
121
- y.li,
119
+ ) : n.map((e, a) => /* @__PURE__ */ d(
120
+ v.li,
122
121
  {
123
- id: `${D}-${r}`,
122
+ id: `${k}-${a}`,
124
123
  role: "option",
125
- "aria-selected": s === r,
126
- variants: z,
124
+ "aria-selected": s === a,
125
+ variants: B,
127
126
  className: p(
128
127
  "cursor-pointer px-ds-04 py-ds-03 text-ds-md text-surface-fg transition-colors duration-fast-01",
129
- s === r && "bg-accent-3",
128
+ s === a && "bg-accent-3",
130
129
  u?.value === e.value && "font-semibold"
131
130
  ),
132
131
  onMouseDown: (c) => c.preventDefault(),
@@ -134,7 +133,7 @@ const q = {
134
133
  onKeyDown: (c) => {
135
134
  (c.key === "Enter" || c.key === " ") && (c.preventDefault(), m(e));
136
135
  },
137
- onMouseEnter: () => o(r),
136
+ onMouseEnter: () => o(a),
138
137
  children: e.label
139
138
  },
140
139
  e.value
@@ -144,7 +143,7 @@ const q = {
144
143
  ] });
145
144
  }
146
145
  );
147
- B.displayName = "Autocomplete";
146
+ F.displayName = "Autocomplete";
148
147
  export {
149
- B as Autocomplete
148
+ F as Autocomplete
150
149
  };
@@ -3,9 +3,109 @@ import { VariantProps } from 'class-variance-authority';
3
3
  import { BadgeIndicator } from './badge-indicator';
4
4
  import { BadgeGroup } from './badge-group';
5
5
  import * as React from 'react';
6
+ declare const colorMap: {
7
+ readonly default: {
8
+ readonly bg: "bg-surface-raised-hover";
9
+ readonly fg: "text-surface-fg-muted";
10
+ readonly border: "border-surface-border-strong";
11
+ readonly solid: "bg-neutral-5";
12
+ readonly solidFg: "text-surface-fg";
13
+ };
14
+ readonly accent: {
15
+ readonly bg: "bg-accent-3";
16
+ readonly fg: "text-accent-11";
17
+ readonly border: "border-accent-7";
18
+ readonly solid: "bg-accent-9";
19
+ readonly solidFg: "text-accent-fg";
20
+ };
21
+ readonly error: {
22
+ readonly bg: "bg-error-3";
23
+ readonly fg: "text-error-11";
24
+ readonly border: "border-error-7";
25
+ readonly solid: "bg-error-9";
26
+ readonly solidFg: "text-error-fg";
27
+ };
28
+ readonly success: {
29
+ readonly bg: "bg-success-3";
30
+ readonly fg: "text-success-11";
31
+ readonly border: "border-success-7";
32
+ readonly solid: "bg-success-9";
33
+ readonly solidFg: "text-success-fg";
34
+ };
35
+ readonly warning: {
36
+ readonly bg: "bg-warning-3";
37
+ readonly fg: "text-warning-11";
38
+ readonly border: "border-warning-7";
39
+ readonly solid: "bg-warning-9";
40
+ readonly solidFg: "text-warning-fg";
41
+ };
42
+ readonly info: {
43
+ readonly bg: "bg-info-3";
44
+ readonly fg: "text-info-11";
45
+ readonly border: "border-info-7";
46
+ readonly solid: "bg-info-9";
47
+ readonly solidFg: "text-info-fg";
48
+ };
49
+ readonly neutral: {
50
+ readonly bg: "bg-surface-raised-hover";
51
+ readonly fg: "text-surface-fg-muted";
52
+ readonly border: "border-surface-border-strong";
53
+ readonly solid: "bg-neutral-5";
54
+ readonly solidFg: "text-surface-fg";
55
+ };
56
+ readonly teal: {
57
+ readonly bg: "bg-category-teal-3";
58
+ readonly fg: "text-category-teal-11";
59
+ readonly border: "border-category-teal-7";
60
+ readonly solid: "bg-category-teal-9";
61
+ readonly solidFg: "text-white";
62
+ };
63
+ readonly amber: {
64
+ readonly bg: "bg-category-amber-3";
65
+ readonly fg: "text-category-amber-11";
66
+ readonly border: "border-category-amber-7";
67
+ readonly solid: "bg-category-amber-9";
68
+ readonly solidFg: "text-white";
69
+ };
70
+ readonly slate: {
71
+ readonly bg: "bg-category-slate-3";
72
+ readonly fg: "text-category-slate-11";
73
+ readonly border: "border-category-slate-7";
74
+ readonly solid: "bg-category-slate-9";
75
+ readonly solidFg: "text-white";
76
+ };
77
+ readonly indigo: {
78
+ readonly bg: "bg-category-indigo-3";
79
+ readonly fg: "text-category-indigo-11";
80
+ readonly border: "border-category-indigo-7";
81
+ readonly solid: "bg-category-indigo-9";
82
+ readonly solidFg: "text-white";
83
+ };
84
+ readonly cyan: {
85
+ readonly bg: "bg-category-cyan-3";
86
+ readonly fg: "text-category-cyan-11";
87
+ readonly border: "border-category-cyan-7";
88
+ readonly solid: "bg-category-cyan-9";
89
+ readonly solidFg: "text-white";
90
+ };
91
+ readonly orange: {
92
+ readonly bg: "bg-category-orange-3";
93
+ readonly fg: "text-category-orange-11";
94
+ readonly border: "border-category-orange-7";
95
+ readonly solid: "bg-category-orange-9";
96
+ readonly solidFg: "text-white";
97
+ };
98
+ readonly emerald: {
99
+ readonly bg: "bg-category-emerald-3";
100
+ readonly fg: "text-category-emerald-11";
101
+ readonly border: "border-category-emerald-7";
102
+ readonly solid: "bg-category-emerald-9";
103
+ readonly solidFg: "text-white";
104
+ };
105
+ };
106
+ type BadgeColor = keyof typeof colorMap | 'custom';
6
107
  declare const badgeVariants: (props?: ({
7
108
  variant?: "outline" | "solid" | "subtle" | "soft" | null | undefined;
8
- color?: "default" | "accent" | "success" | "error" | "custom" | "cyan" | "indigo" | "orange" | "teal" | "info" | "warning" | "neutral" | "amber" | "slate" | "emerald" | null | undefined;
9
109
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
10
110
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
111
  /**
@@ -32,6 +132,8 @@ declare const badgeVariants: (props?: ({
32
132
  * </Badge>
33
133
  */
34
134
  interface BadgeProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, VariantProps<typeof badgeVariants> {
135
+ /** Semantic intent or category color. Use `"custom"` with `--badge-color` CSS variable. */
136
+ color?: BadgeColor;
35
137
  asChild?: boolean;
36
138
  startIcon?: React.ReactElement | null;
37
139
  endIcon?: React.ReactElement | null;
@@ -40,11 +142,17 @@ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, V
40
142
  selected?: boolean;
41
143
  disabled?: boolean;
42
144
  maxWidth?: number;
145
+ /**
146
+ * Truncate children with ellipsis when they overflow the badge width.
147
+ * Use with a fixed width (e.g. `className="w-20"`) or `maxWidth` for
148
+ * constrained pill badges. Always adds a title tooltip on the full text.
149
+ */
150
+ truncate?: boolean;
43
151
  circle?: boolean;
44
152
  }
45
153
  declare const BadgeCompound: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLElement>> & {
46
154
  Indicator: typeof BadgeIndicator;
47
155
  Group: typeof BadgeGroup;
48
156
  };
49
- export { BadgeCompound as Badge, badgeVariants, type BadgeProps };
157
+ export { BadgeCompound as Badge, badgeVariants, type BadgeProps, type BadgeColor };
50
158
  //# sourceMappingURL=badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,aAAa;;;;8EAyGlB,CAAA;AA0BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,UAAU,UACR,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EACtD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACnC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AA6LD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,QAAA,MAAM,aAAa;;;CAGjB,CAAA;AAEF,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAeJ,CAAA;AAEV,KAAK,UAAU,GAAG,MAAM,OAAO,QAAQ,GAAG,QAAQ,CAAA;AAclD,QAAA,MAAM,aAAa;;;8EAsBlB,CAAA;AA0BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,UAAU,UACR,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EACtD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,2FAA2F;IAC3F,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACnC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAgMD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,QAAA,MAAM,aAAa;;;CAGjB,CAAA;AAEF,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,cAAc;;8EAmBnB,CAAA;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,wCAAwC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,iGAAiG;IACjG,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,MAAM,oFA0CX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,cAAc;;8EAmBnB,CAAA;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,wCAAwC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,iGAAiG;IACjG,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,MAAM,oFA2CX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
package/dist/ui/banner.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as e, jsxs as x } from "react/jsx-runtime";
3
- import { IconInfoCircle as t, IconAlertCircle as h, IconAlertTriangle as v, IconCircleCheck as w, IconX as I } from "@tabler/icons-react";
3
+ import { IconInfoCircle as o, IconAlertCircle as h, IconAlertTriangle as v, IconCircleCheck as w, IconX as I } from "@tabler/icons-react";
4
4
  import * as r from "react";
5
5
  import { a as N } from "../_chunks/vendor-utils.js";
6
6
  import { cn as C } from "./lib/utils.js";
@@ -22,14 +22,14 @@ const B = N(
22
22
  defaultVariants: { color: "info" }
23
23
  }
24
24
  ), V = {
25
- info: t,
25
+ info: o,
26
26
  success: w,
27
27
  warning: v,
28
28
  error: h,
29
- neutral: t
29
+ neutral: o
30
30
  }, j = r.forwardRef(
31
- ({ className: a, color: s = "info", action: c, actions: d, onDismiss: n, children: l, ...m }, f) => {
32
- const o = d ?? c, u = V[s ?? "info"], [b, p] = r.useState(!0), g = r.useCallback(() => {
31
+ ({ className: a, color: s = "info", action: c, actions: l, onDismiss: n, children: d, ...m }, f) => {
32
+ const t = l ?? c, u = V[s ?? "info"], [b, p] = r.useState(!0), g = r.useCallback(() => {
33
33
  p(!1);
34
34
  }, []);
35
35
  return /* @__PURE__ */ e(A, { onExitComplete: n, children: b && /* @__PURE__ */ x(
@@ -44,8 +44,8 @@ const B = N(
44
44
  ...k(m),
45
45
  children: [
46
46
  /* @__PURE__ */ e(i, { icon: u, size: "md", className: "shrink-0" }),
47
- /* @__PURE__ */ e("div", { className: "min-w-0 flex-1", children: l }),
48
- o && /* @__PURE__ */ e("div", { className: "flex shrink-0 items-center gap-ds-02 [&_button]:transition-colors [&_button]:duration-moderate-01 [&_button]:ease-productive-standard [&_button:hover]:bg-current/10", children: o }),
47
+ /* @__PURE__ */ e("div", { className: "min-w-0 flex-1", children: d }),
48
+ t && /* @__PURE__ */ e("div", { className: "flex shrink-0 items-center gap-ds-02 [&_button]:transition-colors [&_button]:duration-moderate-01 [&_button]:ease-productive-standard [&_button:hover]:bg-current/10", children: t }),
49
49
  n && /* @__PURE__ */ e(
50
50
  "button",
51
51
  {
@@ -53,6 +53,7 @@ const B = N(
53
53
  onClick: g,
54
54
  className: "shrink-0 min-h-ds-xs min-w-ds-xs flex items-center justify-center rounded-ds-sm transition-colors duration-moderate-01 ease-productive-standard hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-9",
55
55
  "aria-label": "Dismiss",
56
+ title: "Dismiss",
56
57
  children: /* @__PURE__ */ e(i, { icon: I, size: "sm" })
57
58
  }
58
59
  )
@@ -2,8 +2,8 @@
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  export declare const buttonVariants: (props?: ({
5
- variant?: "link" | "outline" | "default" | "solid" | "soft" | "ghost" | "destructive" | null | undefined;
6
- color?: "default" | "accent" | "success" | "error" | "warning" | "neutral" | null | undefined;
5
+ variant?: "link" | "outline" | "solid" | "soft" | "ghost" | null | undefined;
6
+ color?: "accent" | "success" | "error" | "warning" | "neutral" | null | undefined;
7
7
  weight?: "normal" | "semibold" | null | undefined;
8
8
  size?: "xs" | "sm" | "md" | "lg" | "icon" | "compact-xs" | "compact-sm" | "compact-md" | "icon-xs" | "icon-sm" | "icon-md" | "icon-lg" | null | undefined;
9
9
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,eAAO,MAAM,cAAc;;;;;8EAsG1B,CAAA;AAoDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAClE,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACrC,qEAAqE;IACrE,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACnC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;IAC5C,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IAEvD,2EAA2E;IAC3E,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IAExE,+FAA+F;IAC/F,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,QAAA,MAAM,MAAM,uFAkRX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,eAAO,MAAM,cAAc;;;;;8EAiF1B,CAAA;AAoDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAClE,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACrC,qEAAqE;IACrE,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IACnC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;IAC5C,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IAEvD,2EAA2E;IAC3E,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IAExE,+FAA+F;IAC/F,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,QAAA,MAAM,MAAM,uFAkRX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,CAAA"}
package/dist/ui/button.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as e, jsxs as j, Fragment as ue } from "react/jsx-runtime";
3
3
  import { a as ge } from "../_chunks/vendor-utils.js";
4
- import { IconCheck as ve, IconX as fe } from "@tabler/icons-react";
5
- import { S as be, i as he } from "../_chunks/primitives.js";
4
+ import { IconCheck as fe, IconX as ve } from "@tabler/icons-react";
5
+ import { S as pe, i as be } from "../_chunks/primitives.js";
6
6
  import * as t from "react";
7
- import { useButtonGroup as pe } from "./button-group.js";
7
+ import { useButtonGroup as he } from "./button-group.js";
8
8
  import { Icon as xe } from "./icon.js";
9
9
  import { IconProvider as we } from "./icon-context.js";
10
10
  import { motionProps as Ne } from "./lib/motion.js";
@@ -21,19 +21,14 @@ const X = ge(
21
21
  soft: "",
22
22
  outline: "border",
23
23
  ghost: "",
24
- link: "underline-offset-4 hover:underline active:opacity-80",
25
- // Deprecated aliases
26
- default: "",
27
- destructive: ""
24
+ link: "underline-offset-4 hover:underline active:opacity-80"
28
25
  },
29
26
  color: {
30
27
  accent: "",
31
28
  error: "",
32
29
  success: "",
33
30
  warning: "",
34
- neutral: "",
35
- // Deprecated alias
36
- default: ""
31
+ neutral: ""
37
32
  },
38
33
  weight: {
39
34
  semibold: "font-semibold",
@@ -85,22 +80,7 @@ const X = ge(
85
80
  { variant: "link", color: "error", className: "text-error-11" },
86
81
  { variant: "link", color: "success", className: "text-success-11" },
87
82
  { variant: "link", color: "warning", className: "text-warning-11" },
88
- { variant: "link", color: "neutral", className: "text-surface-fg-muted" },
89
- // ============ DEPRECATED ALIASES ============
90
- // "default" variant → solid
91
- { variant: "default", color: "accent", className: "bg-accent-9 text-accent-fg hover:bg-accent-10 shadow-raised hover:shadow-brand" },
92
- { variant: "default", color: "error", className: "bg-error-9 text-error-fg hover:bg-error-10 shadow-raised" },
93
- { variant: "default", color: "default", className: "bg-accent-9 text-accent-fg hover:bg-accent-10 shadow-raised hover:shadow-brand" },
94
- // "destructive" → solid + error (ignores color prop)
95
- { variant: "destructive", color: "accent", className: "bg-error-9 text-error-fg hover:bg-error-10 shadow-raised" },
96
- { variant: "destructive", color: "error", className: "bg-error-9 text-error-fg hover:bg-error-10 shadow-raised" },
97
- { variant: "destructive", color: "default", className: "bg-error-9 text-error-fg hover:bg-error-10 shadow-raised" },
98
- // "default" color alias → accent
99
- { variant: "solid", color: "default", className: "bg-accent-9 text-accent-fg hover:bg-accent-10 shadow-raised hover:shadow-brand" },
100
- { variant: "soft", color: "default", className: "bg-accent-3 text-accent-11 hover:bg-accent-4 active:bg-accent-5" },
101
- { variant: "outline", color: "default", className: "bg-transparent text-accent-11 border-accent-7 hover:bg-accent-3 active:bg-accent-4" },
102
- { variant: "ghost", color: "default", className: "bg-transparent text-surface-fg-muted hover:bg-surface-raised-hover hover:text-surface-fg active:bg-surface-raised-active" },
103
- { variant: "link", color: "default", className: "text-accent-11" }
83
+ { variant: "link", color: "neutral", className: "text-surface-fg-muted" }
104
84
  ],
105
85
  defaultVariants: {
106
86
  variant: "solid",
@@ -165,54 +145,54 @@ const X = ge(
165
145
  size: L,
166
146
  asChild: Q = !1,
167
147
  shape: Y,
168
- startIcon: h,
169
- endIcon: y,
148
+ startIcon: b,
149
+ endIcon: N,
170
150
  loading: D = !1,
171
- loadingPosition: k = "start",
151
+ loadingPosition: y = "start",
172
152
  fullWidth: l = !1,
173
153
  disabled: I,
174
154
  onClick: W,
175
- onClickAsync: S,
155
+ onClickAsync: k,
176
156
  asyncFeedbackDuration: ee = 1500,
177
157
  processing: m,
178
- processingColor: re,
179
- processingDisabled: R = !0,
158
+ processingColor: se,
159
+ processingDisabled: S = !0,
180
160
  children: O,
181
161
  ..._
182
162
  }, u) => {
183
- const g = pe(), o = H ?? g.variant, p = J ?? g.color, F = K ?? g.weight ?? "semibold", x = Y ?? g.shape ?? "default", n = L ?? g.size ?? "md", V = ke(), P = t.useRef(null), G = t.useRef(null), z = t.useRef(void 0);
163
+ const g = he(), o = H ?? g.variant, R = J ?? g.color, F = K ?? g.weight ?? "semibold", h = Y ?? g.shape ?? "default", n = L ?? g.size ?? "md", V = ke(), P = t.useRef(null), G = t.useRef(null), z = t.useRef(void 0);
184
164
  t.useEffect(() => {
185
- const r = G.current, N = P.current;
186
- if (!(!r || !N || l || V))
165
+ const s = G.current, w = P.current;
166
+ if (!(!s || !w || l || V))
187
167
  return z.current = requestAnimationFrame(() => {
188
- N.style.width = "auto";
189
- const q = r.offsetWidth;
190
- q > 0 && (N.getBoundingClientRect(), N.style.width = `${q}px`);
168
+ w.style.width = "auto";
169
+ const q = s.offsetWidth;
170
+ q > 0 && (w.getBoundingClientRect(), w.style.width = `${q}px`);
191
171
  }), () => {
192
172
  z.current && cancelAnimationFrame(z.current);
193
173
  };
194
174
  });
195
- const [i, w] = t.useState("idle"), M = t.useRef(void 0), v = t.useRef(!0);
175
+ const [i, x] = t.useState("idle"), M = t.useRef(void 0), f = t.useRef(!0);
196
176
  t.useEffect(() => () => {
197
- v.current = !1, clearTimeout(M.current);
177
+ f.current = !1, clearTimeout(M.current);
198
178
  }, []);
199
- const se = (r) => {
200
- !S || i !== "idle" || (w("loading"), S(r).then(() => {
201
- v.current && w("success");
179
+ const re = (s) => {
180
+ !k || i !== "idle" || (x("loading"), k(s).then(() => {
181
+ f.current && x("success");
202
182
  }).catch(() => {
203
- v.current && w("error");
183
+ f.current && x("error");
204
184
  }).finally(() => {
205
- v.current && (M.current = setTimeout(() => {
206
- v.current && w("idle");
185
+ f.current && (M.current = setTimeout(() => {
186
+ f.current && x("idle");
207
187
  }, ee));
208
188
  }));
209
- }, C = !!S, a = C ? i === "loading" : D, s = i === "success" || i === "error", U = s ? void 0 : m === !0 ? "working" : m === !1 || !m ? C && i === "loading" && !m ? "working" : void 0 : m, d = !!U, te = re ?? (p === "default" ? "accent" : p) ?? "accent";
189
+ }, C = !!k, a = C ? i === "loading" : D, r = i === "success" || i === "error", U = r ? void 0 : m === !0 ? "working" : m === !1 || !m ? C && i === "loading" && !m ? "working" : void 0 : m, d = !!U, te = se ?? R ?? "accent";
210
190
  if (Q) {
211
- const r = {
191
+ const s = {
212
192
  className: c(
213
- X({ variant: o, color: p, weight: F, size: n }),
214
- x === "pill" && "rounded-full",
215
- x === "pill" && $[n],
193
+ X({ variant: o, color: R, weight: F, size: n }),
194
+ h === "pill" && "rounded-full",
195
+ h === "pill" && $[n],
216
196
  l && "w-full",
217
197
  B
218
198
  ),
@@ -221,51 +201,51 @@ const X = ge(
221
201
  "aria-busy": a || void 0,
222
202
  ..._
223
203
  };
224
- return /* @__PURE__ */ e(be, { ...r, children: /* @__PURE__ */ e(he, { children: O }) });
204
+ return /* @__PURE__ */ e(pe, { ...s, children: /* @__PURE__ */ e(be, { children: O }) });
225
205
  }
226
- const f = Re[n] ?? { start: "", end: "" }, Z = o === "solid" || o === "soft" || o === "outline", ae = () => a && k === "start" ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center", h && f.start), children: /* @__PURE__ */ e(T, { size: A[n], variant: "bare" }) }) : h ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", f.start, Z && "opacity-90"), children: h }) : null, ne = () => a && k === "end" ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center", y && f.end), children: /* @__PURE__ */ e(T, { size: A[n], variant: "bare" }) }) : y ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", f.end, Z && "opacity-90"), children: y }) : null, oe = t.Children.toArray(O), E = [], b = [];
227
- oe.forEach((r) => {
228
- t.isValidElement(r) && r.type?.displayName === "DevalokGrain" ? E.push(r) : b.push(r);
206
+ const v = Re[n] ?? { start: "", end: "" }, Z = o === "solid" || o === "soft" || o === "outline", ae = () => a && y === "start" ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center", b && v.start), children: /* @__PURE__ */ e(T, { size: A[n], variant: "bare" }) }) : b ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", v.start, Z && "opacity-90"), children: b }) : null, ne = () => a && y === "end" ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center", N && v.end), children: /* @__PURE__ */ e(T, { size: A[n], variant: "bare" }) }) : N ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", v.end, Z && "opacity-90"), children: N }) : null, oe = t.Children.toArray(O), E = [], p = [];
207
+ oe.forEach((s) => {
208
+ t.isValidElement(s) && s.type?.displayName === "DevalokGrain" ? E.push(s) : p.push(s);
229
209
  });
230
- const ce = () => a && k === "center" ? /* @__PURE__ */ j("span", { className: "relative inline-flex items-center justify-center", children: [
231
- /* @__PURE__ */ e("span", { className: "invisible", children: b }),
210
+ const ce = () => a && y === "center" ? /* @__PURE__ */ j("span", { className: "relative inline-flex items-center justify-center", children: [
211
+ /* @__PURE__ */ e("span", { className: "invisible", children: p }),
232
212
  /* @__PURE__ */ e("span", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e(T, { size: A[n], variant: "bare" }) })
233
- ] }) : E.length > 0 ? /* @__PURE__ */ e("span", { children: b }) : /* @__PURE__ */ e(ue, { children: b }), ie = s ? i === "success" ? "bg-success-9 text-accent-fg border-transparent hover:bg-success-9" : "bg-error-9 text-accent-fg border-transparent hover:bg-error-9" : void 0, de = s ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", h && f.start), children: /* @__PURE__ */ e(xe, { icon: i === "success" ? ve : fe, animate: "draw" }) }) : null, le = ze[n] ?? "md", me = /* @__PURE__ */ j(
213
+ ] }) : E.length > 0 ? /* @__PURE__ */ e("span", { children: p }) : /* @__PURE__ */ e(ue, { children: p }), ie = r ? i === "success" ? "bg-success-9 text-accent-fg border-transparent hover:bg-success-9" : "bg-error-9 text-accent-fg border-transparent hover:bg-error-9" : void 0, de = r ? /* @__PURE__ */ e("span", { className: c("inline-flex shrink-0 items-center justify-center pointer-events-none", b && v.start), children: /* @__PURE__ */ e(xe, { icon: i === "success" ? fe : ve, animate: "draw" }) }) : null, le = ze[n] ?? "md", me = /* @__PURE__ */ j(
234
214
  Se.button,
235
215
  {
236
216
  ...Ne(_),
237
217
  className: c(
238
218
  X({
239
219
  // When processing (and not showing async feedback), force soft variant so ants pop
240
- variant: d && !s && o !== "ghost" && o !== "outline" && o !== "link" ? "soft" : o,
241
- color: p,
220
+ variant: d && !r && o !== "ghost" && o !== "outline" && o !== "link" ? "soft" : o,
221
+ color: R,
242
222
  weight: F,
243
223
  size: n
244
224
  }),
245
- x === "pill" && "rounded-full",
246
- x === "pill" && $[n],
225
+ h === "pill" && "rounded-full",
226
+ h === "pill" && $[n],
247
227
  l && "w-full",
248
228
  // Asymmetric timing: hover-out is slow+relaxed, hover-in is fast+snappy (applied via hover: override)
249
- !a && !s && "transition-[color,background-color,border-color,box-shadow,transform,filter] duration-moderate-01 ease-productive-exit",
250
- !a && !s && "hover:duration-fast-02 hover:ease-productive-entrance",
251
- !a && !s && "active:scale-[0.95] active:brightness-[0.92] active:saturate-[1.1] active:duration-[0ms]",
229
+ !a && !r && "transition-[color,background-color,border-color,box-shadow,transform,filter] duration-moderate-01 ease-productive-exit",
230
+ !a && !r && "hover:duration-fast-02 hover:ease-productive-entrance",
231
+ !a && !r && "active:scale-[0.95] active:brightness-[0.92] active:saturate-[1.1] active:duration-[0ms]",
252
232
  ie,
253
- s && "transition-colors duration-moderate-01 ease-productive-standard",
254
- d && R && "pointer-events-none cursor-default",
233
+ r && "transition-colors duration-moderate-01 ease-productive-standard",
234
+ d && S && "pointer-events-none cursor-default",
255
235
  B
256
236
  ),
257
- ref: (r) => {
258
- G.current = r, typeof u == "function" ? u(r) : u && (u.current = r);
237
+ ref: (s) => {
238
+ G.current = s, typeof u == "function" ? u(s) : u && (u.current = s);
259
239
  },
260
240
  disabled: I || a && !d,
261
241
  "aria-busy": a || d || void 0,
262
- "aria-disabled": d && R || void 0,
263
- onClick: C ? se : d && R ? void 0 : W,
242
+ "aria-disabled": d && S || void 0,
243
+ onClick: C ? re : d && S ? void 0 : W,
264
244
  children: [
265
245
  E,
266
- s ? de : ae(),
267
- s ? b : ce(),
268
- s ? null : ne()
246
+ r ? de : ae(),
247
+ r ? p : ce(),
248
+ r ? null : ne()
269
249
  ]
270
250
  }
271
251
  );