@devalok/shilp-sutra 0.27.2 → 0.29.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 (250) hide show
  1. package/dist/_chunks/badge-group.js +299 -0
  2. package/dist/_chunks/framer.js +1915 -1980
  3. package/dist/_chunks/keybinding.js +4 -5
  4. package/dist/_chunks/primitives.js +3198 -3272
  5. package/dist/_chunks/sonner.js +29 -31
  6. package/dist/_chunks/stat-row.js +110 -131
  7. package/dist/_chunks/tiptap.js +42 -78
  8. package/dist/_chunks/tree-view.js +138 -149
  9. package/dist/_chunks/typing-indicator.js +565 -0
  10. package/dist/_chunks/use-calendar.js +416 -439
  11. package/dist/_chunks/vendor-client.js +977 -814
  12. package/dist/_chunks/vendor-utils.js +5 -5
  13. package/dist/ai/block-renderer.js +22 -22
  14. package/dist/ai/blocks/loading.d.ts.map +1 -1
  15. package/dist/ai/command-bar.d.ts.map +1 -1
  16. package/dist/ai/command-bar.js +241 -263
  17. package/dist/ai/conversation.d.ts.map +1 -1
  18. package/dist/ai/conversation.js +87 -107
  19. package/dist/composed/activity-feed.d.ts +2 -0
  20. package/dist/composed/activity-feed.d.ts.map +1 -1
  21. package/dist/composed/activity-feed.js +118 -90
  22. package/dist/composed/avatar-group.d.ts +1 -0
  23. package/dist/composed/avatar-group.d.ts.map +1 -1
  24. package/dist/composed/avatar-group.js +91 -67
  25. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  26. package/dist/composed/bulk-action-bar.js +29 -28
  27. package/dist/composed/command-palette.d.ts.map +1 -1
  28. package/dist/composed/command-palette.js +99 -113
  29. package/dist/composed/content-card.js +1 -1
  30. package/dist/composed/date-picker/calendar-grid.d.ts.map +1 -1
  31. package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
  32. package/dist/composed/date-picker/date-range-picker.d.ts.map +1 -1
  33. package/dist/composed/date-picker/date-time-picker.d.ts.map +1 -1
  34. package/dist/composed/date-picker/time-picker.d.ts.map +1 -1
  35. package/dist/composed/deadline-indicator.d.ts.map +1 -1
  36. package/dist/composed/deadline-indicator.js +29 -28
  37. package/dist/composed/error-boundary.d.ts.map +1 -1
  38. package/dist/composed/error-boundary.js +30 -27
  39. package/dist/composed/extensions/file-attachment.d.ts.map +1 -1
  40. package/dist/composed/file-preview.d.ts.map +1 -1
  41. package/dist/composed/file-preview.js +261 -271
  42. package/dist/composed/filter-bar.d.ts.map +1 -1
  43. package/dist/composed/filter-bar.js +49 -48
  44. package/dist/composed/form-section.d.ts.map +1 -1
  45. package/dist/composed/form-section.js +12 -11
  46. package/dist/composed/global-loading.js +1 -1
  47. package/dist/composed/index.js +63 -63
  48. package/dist/composed/inline-edit.d.ts.map +1 -1
  49. package/dist/composed/inline-edit.js +55 -54
  50. package/dist/composed/markdown-viewer.d.ts.map +1 -1
  51. package/dist/composed/markdown-viewer.js +44 -43
  52. package/dist/composed/master-detail.d.ts.map +1 -1
  53. package/dist/composed/master-detail.js +35 -34
  54. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  55. package/dist/composed/multi-select-popover.js +64 -64
  56. package/dist/composed/page-header.d.ts.map +1 -1
  57. package/dist/composed/page-header.js +31 -37
  58. package/dist/composed/priority-indicator.d.ts.map +1 -1
  59. package/dist/composed/priority-indicator.js +37 -36
  60. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  61. package/dist/composed/rich-text-editor.js +287 -306
  62. package/dist/composed/schedule-view.js +62 -62
  63. package/dist/composed/status-badge.d.ts +4 -2
  64. package/dist/composed/status-badge.d.ts.map +1 -1
  65. package/dist/composed/status-badge.js +58 -45
  66. package/dist/shell/app-command-palette.d.ts.map +1 -1
  67. package/dist/shell/app-command-palette.js +93 -93
  68. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  69. package/dist/shell/bottom-navbar.js +21 -20
  70. package/dist/shell/index.js +18 -18
  71. package/dist/shell/notification-center.d.ts.map +1 -1
  72. package/dist/shell/notification-center.js +96 -95
  73. package/dist/shell/notification-preferences.d.ts.map +1 -1
  74. package/dist/shell/notification-preferences.js +82 -85
  75. package/dist/shell/sidebar.js +59 -60
  76. package/dist/shell/top-bar.d.ts.map +1 -1
  77. package/dist/shell/top-bar.js +103 -103
  78. package/dist/tailwind/index.cjs +37 -4
  79. package/dist/tailwind/preset.d.ts.map +1 -1
  80. package/dist/tailwind/preset.js +38 -5
  81. package/dist/tokens/primitives.css +10 -0
  82. package/dist/tokens/semantic.css +70 -7
  83. package/dist/ui/accordion.d.ts +5 -2
  84. package/dist/ui/accordion.d.ts.map +1 -1
  85. package/dist/ui/accordion.js +44 -39
  86. package/dist/ui/alert-dialog.js +57 -57
  87. package/dist/ui/alert.d.ts +1 -1
  88. package/dist/ui/alert.d.ts.map +1 -1
  89. package/dist/ui/alert.js +30 -29
  90. package/dist/ui/aspect-ratio.js +4 -4
  91. package/dist/ui/autocomplete.js +56 -56
  92. package/dist/ui/avatar.js +2 -2
  93. package/dist/ui/badge-group.d.ts +22 -0
  94. package/dist/ui/badge-group.d.ts.map +1 -0
  95. package/dist/ui/badge-group.js +8 -0
  96. package/dist/ui/badge-indicator.d.ts +32 -0
  97. package/dist/ui/badge-indicator.d.ts.map +1 -0
  98. package/dist/ui/badge-indicator.js +54 -0
  99. package/dist/ui/badge.d.ts +27 -24
  100. package/dist/ui/badge.d.ts.map +1 -1
  101. package/dist/ui/badge.js +13 -129
  102. package/dist/ui/banner.d.ts +1 -1
  103. package/dist/ui/banner.d.ts.map +1 -1
  104. package/dist/ui/banner.js +27 -26
  105. package/dist/ui/breadcrumb.d.ts.map +1 -1
  106. package/dist/ui/breadcrumb.js +37 -36
  107. package/dist/ui/button-group.d.ts +12 -6
  108. package/dist/ui/button-group.d.ts.map +1 -1
  109. package/dist/ui/button-group.js +18 -18
  110. package/dist/ui/button-processing.d.ts +15 -0
  111. package/dist/ui/button-processing.d.ts.map +1 -0
  112. package/dist/ui/button-processing.js +77 -0
  113. package/dist/ui/button.d.ts +50 -25
  114. package/dist/ui/button.d.ts.map +1 -1
  115. package/dist/ui/button.js +243 -127
  116. package/dist/ui/card.js +20 -21
  117. package/dist/ui/charts/index.js +499 -508
  118. package/dist/ui/chat/date-separator.d.ts +12 -0
  119. package/dist/ui/chat/date-separator.d.ts.map +1 -0
  120. package/dist/ui/chat/index.d.ts +9 -0
  121. package/dist/ui/chat/index.d.ts.map +1 -0
  122. package/dist/ui/chat/index.js +12 -0
  123. package/dist/ui/chat/message-input.d.ts +16 -0
  124. package/dist/ui/chat/message-input.d.ts.map +1 -0
  125. package/dist/ui/chat/message-list.d.ts +24 -0
  126. package/dist/ui/chat/message-list.d.ts.map +1 -0
  127. package/dist/ui/chat/message.d.ts +108 -0
  128. package/dist/ui/chat/message.d.ts.map +1 -0
  129. package/dist/ui/chat/system-message.d.ts +11 -0
  130. package/dist/ui/chat/system-message.d.ts.map +1 -0
  131. package/dist/ui/chat/typing-indicator.d.ts +14 -0
  132. package/dist/ui/chat/typing-indicator.d.ts.map +1 -0
  133. package/dist/ui/chat/unread-separator.d.ts +12 -0
  134. package/dist/ui/chat/unread-separator.d.ts.map +1 -0
  135. package/dist/ui/checkbox.js +18 -18
  136. package/dist/ui/chip.d.ts +13 -62
  137. package/dist/ui/chip.d.ts.map +1 -1
  138. package/dist/ui/chip.js +10 -109
  139. package/dist/ui/collapsible.js +4 -4
  140. package/dist/ui/color-input.d.ts +19 -5
  141. package/dist/ui/color-input.d.ts.map +1 -1
  142. package/dist/ui/color-input.js +371 -79
  143. package/dist/ui/color-swatch.js +11 -11
  144. package/dist/ui/combobox.d.ts.map +1 -1
  145. package/dist/ui/combobox.js +74 -80
  146. package/dist/ui/context-menu.d.ts.map +1 -1
  147. package/dist/ui/context-menu.js +86 -85
  148. package/dist/ui/data-table-toolbar.d.ts.map +1 -1
  149. package/dist/ui/data-table-toolbar.js +51 -57
  150. package/dist/ui/data-table.d.ts.map +1 -1
  151. package/dist/ui/data-table.js +268 -296
  152. package/dist/ui/devalok-grain.d.ts +81 -0
  153. package/dist/ui/devalok-grain.d.ts.map +1 -0
  154. package/dist/ui/devalok-grain.js +69 -0
  155. package/dist/ui/dialog.d.ts.map +1 -1
  156. package/dist/ui/dialog.js +73 -72
  157. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  158. package/dist/ui/dropdown-menu.js +93 -92
  159. package/dist/ui/file-upload.d.ts.map +1 -1
  160. package/dist/ui/file-upload.js +82 -82
  161. package/dist/ui/hover-card.js +29 -29
  162. package/dist/ui/icon-button.d.ts +7 -7
  163. package/dist/ui/icon-button.d.ts.map +1 -1
  164. package/dist/ui/icon-context.d.ts +15 -0
  165. package/dist/ui/icon-context.d.ts.map +1 -0
  166. package/dist/ui/icon-context.js +20 -0
  167. package/dist/ui/icon-group.d.ts +22 -0
  168. package/dist/ui/icon-group.d.ts.map +1 -0
  169. package/dist/ui/icon-group.js +32 -0
  170. package/dist/ui/icon.d.ts +57 -0
  171. package/dist/ui/icon.d.ts.map +1 -0
  172. package/dist/ui/icon.js +122 -0
  173. package/dist/ui/index.d.ts +8 -1
  174. package/dist/ui/index.d.ts.map +1 -1
  175. package/dist/ui/index.js +351 -329
  176. package/dist/ui/input-otp.d.ts.map +1 -1
  177. package/dist/ui/input-otp.js +21 -20
  178. package/dist/ui/input.d.ts +32 -11
  179. package/dist/ui/input.d.ts.map +1 -1
  180. package/dist/ui/input.js +149 -44
  181. package/dist/ui/label.js +1 -1
  182. package/dist/ui/lib/motion.d.ts +2 -0
  183. package/dist/ui/lib/motion.d.ts.map +1 -1
  184. package/dist/ui/lib/motion.js +13 -11
  185. package/dist/ui/lib/utils.js +1 -1
  186. package/dist/ui/menubar.d.ts.map +1 -1
  187. package/dist/ui/menubar.js +87 -86
  188. package/dist/ui/navigation-menu.d.ts.map +1 -1
  189. package/dist/ui/navigation-menu.js +23 -28
  190. package/dist/ui/number-input.d.ts.map +1 -1
  191. package/dist/ui/number-input.js +54 -53
  192. package/dist/ui/pagination.d.ts.map +1 -1
  193. package/dist/ui/pagination.js +45 -44
  194. package/dist/ui/popover.js +30 -30
  195. package/dist/ui/progress.d.ts +3 -1
  196. package/dist/ui/progress.d.ts.map +1 -1
  197. package/dist/ui/progress.js +43 -39
  198. package/dist/ui/radio.js +1 -1
  199. package/dist/ui/search-input.d.ts.map +1 -1
  200. package/dist/ui/search-input.js +47 -60
  201. package/dist/ui/segmented-control.js +1 -1
  202. package/dist/ui/select.d.ts.map +1 -1
  203. package/dist/ui/select.js +54 -53
  204. package/dist/ui/separator.js +5 -5
  205. package/dist/ui/sheet.d.ts.map +1 -1
  206. package/dist/ui/sheet.js +46 -45
  207. package/dist/ui/sidebar.d.ts.map +1 -1
  208. package/dist/ui/sidebar.js +196 -193
  209. package/dist/ui/skeleton.js +1 -1
  210. package/dist/ui/slider.js +1 -1
  211. package/dist/ui/spinner.js +74 -74
  212. package/dist/ui/stat-card.d.ts.map +1 -1
  213. package/dist/ui/stat-card.js +85 -86
  214. package/dist/ui/switch.d.ts +3 -0
  215. package/dist/ui/switch.d.ts.map +1 -1
  216. package/dist/ui/switch.js +40 -26
  217. package/dist/ui/tabs.js +43 -43
  218. package/dist/ui/text.js +1 -1
  219. package/dist/ui/textarea.js +10 -10
  220. package/dist/ui/toast.d.ts.map +1 -1
  221. package/dist/ui/toast.js +169 -169
  222. package/dist/ui/toggle-group.js +1 -1
  223. package/dist/ui/toggle.js +5 -5
  224. package/dist/ui/tooltip.js +41 -41
  225. package/dist/ui/tree-view/tree-item.d.ts.map +1 -1
  226. package/docs/components/_header.md +4 -4
  227. package/docs/components/composed/activity-feed.md +7 -0
  228. package/docs/components/composed/avatar-group.md +8 -5
  229. package/docs/components/composed/status-badge.md +14 -1
  230. package/docs/components/ui/accordion.md +5 -2
  231. package/docs/components/ui/badge-group.md +38 -0
  232. package/docs/components/ui/badge-indicator.md +40 -0
  233. package/docs/components/ui/badge.md +36 -5
  234. package/docs/components/ui/button-processing.md +15 -0
  235. package/docs/components/ui/button.md +40 -11
  236. package/docs/components/ui/chat.md +214 -0
  237. package/docs/components/ui/color-input.md +58 -4
  238. package/docs/components/ui/data-table.md +3 -0
  239. package/docs/components/ui/devalok-grain.md +55 -0
  240. package/docs/components/ui/icon-button.md +12 -5
  241. package/docs/components/ui/icon-context.md +38 -0
  242. package/docs/components/ui/icon-group.md +36 -0
  243. package/docs/components/ui/icon.md +47 -0
  244. package/docs/components/ui/input.md +32 -6
  245. package/docs/components/ui/progress.md +5 -0
  246. package/docs/components/ui/spinner.md +3 -0
  247. package/docs/components/ui/switch.md +13 -0
  248. package/llms-full.txt +724 -44
  249. package/llms.txt +38 -19
  250. package/package.json +8 -2
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { jsxs as d, jsx as n } from "react/jsx-runtime";
3
+ import { cn as r } from "./lib/utils.js";
4
+ import { springs as x } from "./lib/motion.js";
5
+ import { u as b, A as u, m as h } from "../_chunks/framer.js";
6
+ const y = {
7
+ "top-right": "-top-1 -right-1",
8
+ "top-left": "-top-1 -left-1",
9
+ "bottom-right": "-bottom-1 -right-1",
10
+ "bottom-left": "-bottom-1 -left-1"
11
+ }, w = {
12
+ error: "bg-error-9 text-error-fg",
13
+ success: "bg-success-9 text-success-fg",
14
+ warning: "bg-warning-9 text-warning-fg",
15
+ accent: "bg-accent-9 text-accent-fg",
16
+ info: "bg-info-9 text-info-fg"
17
+ };
18
+ function S({
19
+ count: t,
20
+ max: o = 99,
21
+ dot: e = !1,
22
+ color: s = "error",
23
+ invisible: a = !1,
24
+ showZero: c = !1,
25
+ placement: f = "top-right",
26
+ className: l,
27
+ children: p
28
+ }) {
29
+ const i = b(), g = !a && (e || t !== void 0 && (t > 0 || c)), m = t !== void 0 && t > o ? `${o}+` : t;
30
+ return /* @__PURE__ */ d("span", { className: r("relative inline-flex", l), children: [
31
+ p,
32
+ /* @__PURE__ */ n(u, { children: g && /* @__PURE__ */ n(
33
+ h.span,
34
+ {
35
+ initial: i ? { opacity: 0 } : { scale: 0, opacity: 0 },
36
+ animate: i ? { opacity: 1 } : { scale: 1, opacity: 1 },
37
+ exit: i ? { opacity: 0 } : { scale: 0, opacity: 0 },
38
+ transition: x.bouncy,
39
+ className: r(
40
+ "absolute flex items-center justify-center rounded-full font-sans font-semibold ring-2 ring-surface-raised",
41
+ w[s],
42
+ y[f],
43
+ e ? "h-2.5 w-2.5" : "min-w-[18px] h-[18px] px-1 text-[11px] leading-none"
44
+ ),
45
+ children: !e && m
46
+ },
47
+ "indicator"
48
+ ) })
49
+ ] });
50
+ }
51
+ S.displayName = "BadgeIndicator";
52
+ export {
53
+ S as BadgeIndicator
54
+ };
@@ -1,47 +1,50 @@
1
1
  "use client";
2
2
  import { VariantProps } from 'class-variance-authority';
3
+ import { BadgeIndicator } from './badge-indicator';
4
+ import { BadgeGroup } from './badge-group';
3
5
  import * as React from 'react';
4
6
  declare const badgeVariants: (props?: ({
5
- variant?: "outline" | "solid" | "subtle" | "secondary" | "destructive" | null | undefined;
6
- color?: "accent" | "default" | "error" | "cyan" | "indigo" | "orange" | "teal" | "info" | "success" | "warning" | "brand" | "amber" | "slate" | "emerald" | null | undefined;
7
+ 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;
7
9
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
8
10
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
11
  /**
10
- * Props for Badge — a compact inline label with a two-axis variant system, an optional
11
- * leading dot indicator, and a dismissible close button.
12
+ * Badge — a compact inline label with a two-axis variant system.
12
13
  *
13
14
  * **Two axes:**
14
- * - `variant` controls **visual style**: `"subtle"` (default, surface bg) | `"solid"` (filled) | `"outline"` (border only)
15
- * - `color` controls **semantic intent/category**: `"default"` | `"info"` | `"success"` | `"error"` |
16
- * `"warning"` | `"brand"` | `"accent"` | `"teal"` | `"amber"` | `"slate"` | `"indigo"` | `"cyan"` | `"orange"` | `"emerald"`
15
+ * - `variant` controls **visual style**: `"subtle"` | `"solid"` | `"outline"` | `"soft"`
16
+ * - `color` controls **semantic intent/category**: 16 built-in colors + `"custom"` (CSS variable)
17
17
  *
18
- * **Comparison with Chip:** Badge is a pure display label (no onClick, no delete handler).
19
- * Chip (`<Chip>`) is interactive use Chip when users can click or dismiss the tag.
20
- *
21
- * **Dismissible:** Provide `onDismiss` to show an × button. Badge does NOT include a `dismissible`
22
- * boolean prop — the presence of `onDismiss` is the signal.
18
+ * **Interactive:** Pass `onClick` to make it a button. Pass `selected` for toggle state.
19
+ * **Dismissible:** Pass `onDismiss` to show a dismiss button.
20
+ * **Custom colors:** Set `color="custom"` and CSS variable `--badge-color` on a parent or via `style`.
21
+ * For light custom colors on solid variant, set `--badge-fg-color` to a dark value.
23
22
  *
24
23
  * @example
25
- * // Status badge in a table cell:
26
24
  * <Badge color="success">Active</Badge>
27
25
  *
28
26
  * @example
29
- * // Notification count with dot indicator (solid fill for high contrast):
30
27
  * <Badge variant="solid" size="sm" dot>3 new</Badge>
31
28
  *
32
29
  * @example
33
- * // Dismissible category filter (e.g. in a filter bar):
34
- * <Badge color="teal" onDismiss={() => removeFilter('teal')}>Teal team</Badge>
35
- *
36
- * @example
37
- * // Error badge for a failed job in a pipeline view:
38
- * <Badge color="error" size="lg">Build failed</Badge>
39
- * // These are just a few ways — feel free to combine props creatively!
30
+ * <Badge color="custom" style={{ '--badge-color': '#8b5cf6' } as React.CSSProperties}>
31
+ * Custom
32
+ * </Badge>
40
33
  */
41
- export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof badgeVariants> {
34
+ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>, VariantProps<typeof badgeVariants> {
35
+ asChild?: boolean;
36
+ startIcon?: React.ReactElement | null;
37
+ endIcon?: React.ReactElement | null;
42
38
  dot?: boolean;
43
39
  onDismiss?: () => void;
40
+ selected?: boolean;
41
+ disabled?: boolean;
42
+ maxWidth?: number;
43
+ circle?: boolean;
44
44
  }
45
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
46
- export { Badge, badgeVariants };
45
+ declare const BadgeCompound: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLElement>> & {
46
+ Indicator: typeof BadgeIndicator;
47
+ Group: typeof BadgeGroup;
48
+ };
49
+ export { BadgeCompound as Badge, badgeVariants, type BadgeProps };
47
50
  //# sourceMappingURL=badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;;;8EA4FlB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,EAC1D,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,KAAK,oFA4BV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,aAAa,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;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"}
package/dist/ui/badge.js CHANGED
@@ -1,132 +1,16 @@
1
1
  "use client";
2
- import { jsxs as t, jsx as a } from "react/jsx-runtime";
3
- import { IconX as g } from "@tabler/icons-react";
4
- import * as b from "react";
5
- import { c as m } from "../_chunks/vendor-utils.js";
6
- import { cn as u } from "./lib/utils.js";
7
- import { m as f } from "../_chunks/framer.js";
8
- const x = m(
9
- "inline-flex items-center gap-ds-02b font-sans font-medium rounded-ds-full border transition-colors duration-fast-01 ease-productive-standard",
10
- {
11
- variants: {
12
- variant: {
13
- subtle: "",
14
- secondary: "",
15
- // alias → subtle
16
- solid: "",
17
- outline: "",
18
- destructive: ""
19
- // alias → solid + error
20
- },
21
- color: {
22
- default: "",
23
- info: "",
24
- success: "",
25
- error: "",
26
- warning: "",
27
- brand: "",
28
- accent: "",
29
- teal: "",
30
- amber: "",
31
- slate: "",
32
- indigo: "",
33
- cyan: "",
34
- orange: "",
35
- emerald: ""
36
- },
37
- size: {
38
- xs: "h-[16px] px-ds-02b text-ds-xs",
39
- sm: "h-[20px] px-ds-03 text-ds-xs",
40
- md: "h-ds-xs px-ds-03 text-ds-sm",
41
- lg: "h-ds-xs-plus px-ds-04 text-ds-md"
42
- }
43
- },
44
- compoundVariants: [
45
- // subtle (surface bg)
46
- { variant: "subtle", color: "default", className: "bg-surface-raised-hover text-surface-fg-muted border-surface-border-strong" },
47
- // "secondary" alias → same as subtle + default
48
- { variant: "secondary", color: "default", className: "bg-surface-raised-hover text-surface-fg-muted border-surface-border-strong" },
49
- // "destructive" alias → solid + error
50
- { variant: "destructive", color: "default", className: "bg-error-9 text-accent-fg border-transparent" },
51
- { variant: "destructive", color: "error", className: "bg-error-9 text-accent-fg border-transparent" },
52
- { variant: "subtle", color: "info", className: "bg-info-3 text-info-11 border-info-7" },
53
- { variant: "subtle", color: "success", className: "bg-success-3 text-success-11 border-success-7" },
54
- { variant: "subtle", color: "error", className: "bg-error-3 text-error-11 border-error-7" },
55
- { variant: "subtle", color: "warning", className: "bg-warning-3 text-warning-11 border-warning-7" },
56
- { variant: "subtle", color: "brand", className: "bg-accent-2 text-accent-11 border-accent-7" },
57
- { variant: "subtle", color: "accent", className: "bg-accent-2 text-accent-11 border-accent-7" },
58
- { variant: "subtle", color: "teal", className: "bg-category-teal-3 text-category-teal-11 border-category-teal-7" },
59
- { variant: "subtle", color: "amber", className: "bg-category-amber-3 text-category-amber-11 border-category-amber-7" },
60
- { variant: "subtle", color: "slate", className: "bg-category-slate-3 text-category-slate-11 border-category-slate-7" },
61
- { variant: "subtle", color: "indigo", className: "bg-category-indigo-3 text-category-indigo-11 border-category-indigo-7" },
62
- { variant: "subtle", color: "cyan", className: "bg-category-cyan-3 text-category-cyan-11 border-category-cyan-7" },
63
- { variant: "subtle", color: "orange", className: "bg-category-orange-3 text-category-orange-11 border-category-orange-7" },
64
- { variant: "subtle", color: "emerald", className: "bg-category-emerald-3 text-category-emerald-11 border-category-emerald-7" },
65
- // solid (filled bg)
66
- { variant: "solid", color: "default", className: "bg-accent-9 text-accent-fg border-transparent" },
67
- { variant: "solid", color: "info", className: "bg-info-9 text-accent-fg border-transparent" },
68
- { variant: "solid", color: "success", className: "bg-success-9 text-accent-fg border-transparent" },
69
- { variant: "solid", color: "error", className: "bg-error-9 text-accent-fg border-transparent" },
70
- { variant: "solid", color: "warning", className: "bg-warning-9 text-accent-fg border-transparent" },
71
- { variant: "solid", color: "brand", className: "bg-accent-9 text-accent-fg border-transparent" },
72
- { variant: "solid", color: "accent", className: "bg-accent-9 text-accent-fg border-transparent" },
73
- { variant: "solid", color: "teal", className: "bg-category-teal-9 text-accent-fg border-transparent" },
74
- { variant: "solid", color: "amber", className: "bg-category-amber-9 text-accent-fg border-transparent" },
75
- { variant: "solid", color: "slate", className: "bg-category-slate-9 text-accent-fg border-transparent" },
76
- { variant: "solid", color: "indigo", className: "bg-category-indigo-9 text-accent-fg border-transparent" },
77
- { variant: "solid", color: "cyan", className: "bg-category-cyan-9 text-accent-fg border-transparent" },
78
- { variant: "solid", color: "orange", className: "bg-category-orange-9 text-accent-fg border-transparent" },
79
- { variant: "solid", color: "emerald", className: "bg-category-emerald-9 text-accent-fg border-transparent" },
80
- // outline (border only)
81
- { variant: "outline", color: "default", className: "bg-transparent text-surface-fg-muted border-surface-border-strong" },
82
- { variant: "outline", color: "info", className: "bg-transparent text-info-11 border-info-7" },
83
- { variant: "outline", color: "success", className: "bg-transparent text-success-11 border-success-7" },
84
- { variant: "outline", color: "error", className: "bg-transparent text-error-11 border-error-7" },
85
- { variant: "outline", color: "warning", className: "bg-transparent text-warning-11 border-warning-7" },
86
- { variant: "outline", color: "brand", className: "bg-transparent text-accent-11 border-accent-7" },
87
- { variant: "outline", color: "accent", className: "bg-transparent text-accent-11 border-accent-7" },
88
- { variant: "outline", color: "teal", className: "bg-transparent text-category-teal-11 border-category-teal-7" },
89
- { variant: "outline", color: "amber", className: "bg-transparent text-category-amber-11 border-category-amber-7" },
90
- { variant: "outline", color: "slate", className: "bg-transparent text-category-slate-11 border-category-slate-7" },
91
- { variant: "outline", color: "indigo", className: "bg-transparent text-category-indigo-11 border-category-indigo-7" },
92
- { variant: "outline", color: "cyan", className: "bg-transparent text-category-cyan-11 border-category-cyan-7" },
93
- { variant: "outline", color: "orange", className: "bg-transparent text-category-orange-11 border-category-orange-7" },
94
- { variant: "outline", color: "emerald", className: "bg-transparent text-category-emerald-11 border-category-emerald-7" }
95
- ],
96
- defaultVariants: {
97
- variant: "subtle",
98
- color: "default",
99
- size: "md"
100
- }
101
- }
102
- ), v = b.forwardRef(
103
- ({ className: o, variant: s, color: n, size: c, dot: l, onDismiss: r, children: e, ...i }, d) => /* @__PURE__ */ t("span", { ref: d, className: u(x({ variant: s, color: n, size: c }), o), ...i, children: [
104
- l && /* @__PURE__ */ t("span", { className: "relative inline-flex h-ds-02b w-ds-02b shrink-0", "aria-hidden": "true", children: [
105
- /* @__PURE__ */ a(
106
- f.span,
107
- {
108
- className: "absolute inset-0 rounded-ds-full bg-current",
109
- animate: { scale: [1, 2.5], opacity: [0.4, 0] },
110
- transition: { repeat: 1 / 0, duration: 1.5, ease: "easeOut" }
111
- }
112
- ),
113
- /* @__PURE__ */ a("span", { className: "relative h-ds-02b w-ds-02b rounded-ds-full bg-current" })
114
- ] }),
115
- e,
116
- r && /* @__PURE__ */ a(
117
- "button",
118
- {
119
- type: "button",
120
- onClick: r,
121
- className: "ml-ds-01 min-h-ds-xs min-w-ds-xs flex items-center justify-center rounded-ds-full text-current/60 hover:text-current hover:bg-current/10 transition-[color,background-color,transform] duration-fast-02 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-9",
122
- "aria-label": `Remove ${typeof e == "string" ? e : ""}`.trim() || "Remove",
123
- children: /* @__PURE__ */ a(g, { className: "h-ico-sm w-ico-sm" })
124
- }
125
- )
126
- ] })
127
- );
128
- v.displayName = "Badge";
2
+ import "react/jsx-runtime";
3
+ import "@tabler/icons-react";
4
+ import "../_chunks/vendor-utils.js";
5
+ import "./lib/motion.js";
6
+ import "../_chunks/primitives.js";
7
+ import "react";
8
+ import "./icon.js";
9
+ import "./lib/utils.js";
10
+ import "./badge-indicator.js";
11
+ import { B, b as f } from "../_chunks/badge-group.js";
12
+ import "../_chunks/framer.js";
129
13
  export {
130
- v as Badge,
131
- x as badgeVariants
14
+ B as Badge,
15
+ f as badgeVariants
132
16
  };
@@ -2,7 +2,7 @@
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const bannerVariants: (props?: ({
5
- color?: "error" | "info" | "success" | "warning" | "neutral" | null | undefined;
5
+ color?: "success" | "error" | "info" | "warning" | "neutral" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  /**
8
8
  * Props for Banner — a full-width notification strip with a colored icon, message, optional
@@ -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;AAKjE,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,oFA0CX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
package/dist/ui/banner.js CHANGED
@@ -1,12 +1,13 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as p } from "react/jsx-runtime";
3
- import { IconInfoCircle as n, IconAlertCircle as h, IconAlertTriangle as x, IconCircleCheck as v, IconX as w } from "@tabler/icons-react";
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";
4
4
  import * as r from "react";
5
- import { c as N } from "../_chunks/vendor-utils.js";
6
- import { cn as I } from "./lib/utils.js";
7
- import { springs as C, motionProps as y } from "./lib/motion.js";
8
- import { A as k, m as A } from "../_chunks/framer.js";
9
- const _ = N(
5
+ import { a as N } from "../_chunks/vendor-utils.js";
6
+ import { cn as C } from "./lib/utils.js";
7
+ import { springs as y, motionProps as k } from "./lib/motion.js";
8
+ import { Icon as i } from "./icon.js";
9
+ import { A, m as _ } from "../_chunks/framer.js";
10
+ const B = N(
10
11
  "flex flex-wrap items-center gap-ds-04 px-ds-06 py-ds-04 text-ds-md font-medium border-b",
11
12
  {
12
13
  variants: {
@@ -21,38 +22,38 @@ const _ = N(
21
22
  defaultVariants: { color: "info" }
22
23
  }
23
24
  ), V = {
24
- info: n,
25
- success: v,
26
- warning: x,
25
+ info: t,
26
+ success: w,
27
+ warning: v,
27
28
  error: h,
28
- neutral: n
29
+ neutral: t
29
30
  }, j = r.forwardRef(
30
- ({ className: i, color: s = "info", action: a, actions: c, onDismiss: o, children: d, ...l }, m) => {
31
- const t = c ?? a, u = V[s ?? "info"], [f, b] = r.useState(!0), g = r.useCallback(() => {
32
- b(!1);
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(() => {
33
+ p(!1);
33
34
  }, []);
34
- return /* @__PURE__ */ e(k, { onExitComplete: o, children: f && /* @__PURE__ */ p(
35
- A.div,
35
+ return /* @__PURE__ */ e(A, { onExitComplete: n, children: b && /* @__PURE__ */ x(
36
+ _.div,
36
37
  {
37
- ref: m,
38
+ ref: f,
38
39
  initial: { height: "auto", opacity: 1 },
39
40
  exit: { height: 0, opacity: 0 },
40
- transition: C.snappy,
41
- className: I(_({ color: s }), "overflow-hidden", i),
41
+ transition: y.snappy,
42
+ className: C(B({ color: s }), "overflow-hidden", a),
42
43
  role: "alert",
43
- ...y(l),
44
+ ...k(m),
44
45
  children: [
45
- /* @__PURE__ */ e(u, { className: "h-ico-md w-ico-md shrink-0", "aria-hidden": "true" }),
46
- /* @__PURE__ */ e("div", { className: "min-w-0 flex-1", children: d }),
47
- 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 }),
48
- o && /* @__PURE__ */ e(
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 }),
49
+ n && /* @__PURE__ */ e(
49
50
  "button",
50
51
  {
51
52
  type: "button",
52
53
  onClick: g,
53
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",
54
55
  "aria-label": "Dismiss",
55
- children: /* @__PURE__ */ e(w, { className: "h-ico-sm w-ico-sm" })
56
+ children: /* @__PURE__ */ e(i, { icon: I, size: "sm" })
56
57
  }
57
58
  )
58
59
  ]
@@ -63,5 +64,5 @@ const _ = N(
63
64
  j.displayName = "Banner";
64
65
  export {
65
66
  j as Banner,
66
- _ as bannerVariants
67
+ B as bannerVariants
67
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/ui/breadcrumb.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,QAAA,MAAM,UAAU;gBAEwC,KAAK,CAAC,SAAS;qCACO,CAAA;AAG9E,QAAA,MAAM,cAAc,2KAWnB,CAAA;AAGD,QAAA,MAAM,cAAc,kKAInB,CAAA;AAGD,QAAA,MAAM,cAAc;cAEgC,OAAO;2CAczD,CAAA;AAGF,QAAA,MAAM,cAAc,sKASnB,CAAA;AAGD,QAAA,MAAM,mBAAmB;wCAAuC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;CASzF,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAA6B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;CAUhF,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAA;AAErE,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/ui/breadcrumb.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,UAAU;gBAEwC,KAAK,CAAC,SAAS;qCACO,CAAA;AAG9E,QAAA,MAAM,cAAc,2KAWnB,CAAA;AAGD,QAAA,MAAM,cAAc,kKAInB,CAAA;AAGD,QAAA,MAAM,cAAc;cAEgC,OAAO;2CAczD,CAAA;AAGF,QAAA,MAAM,cAAc,sKASnB,CAAA;AAGD,QAAA,MAAM,mBAAmB;wCAAuC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;CASzF,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAA6B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;CAUhF,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAA;AAErE,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
@@ -1,17 +1,18 @@
1
1
  "use client";
2
- import { jsx as s, jsxs as t } from "react/jsx-runtime";
3
- import { S as c } from "../_chunks/primitives.js";
4
- import { IconDots as d, IconChevronRight as n } from "@tabler/icons-react";
5
- import * as i from "react";
6
- import { cn as m } from "./lib/utils.js";
7
- const l = i.forwardRef(({ ...e }, r) => /* @__PURE__ */ s("nav", { ref: r, "aria-label": "breadcrumb", ...e }));
8
- l.displayName = "Breadcrumb";
9
- const u = i.forwardRef(
2
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
3
+ import { S as d } from "../_chunks/primitives.js";
4
+ import { IconDots as n, IconChevronRight as l } from "@tabler/icons-react";
5
+ import * as o from "react";
6
+ import { cn as i } from "./lib/utils.js";
7
+ import { Icon as m } from "./icon.js";
8
+ const u = o.forwardRef(({ ...e }, r) => /* @__PURE__ */ s("nav", { ref: r, "aria-label": "breadcrumb", ...e }));
9
+ u.displayName = "Breadcrumb";
10
+ const f = o.forwardRef(
10
11
  ({ className: e, ...r }, a) => /* @__PURE__ */ s(
11
12
  "ol",
12
13
  {
13
14
  ref: a,
14
- className: m(
15
+ className: i(
15
16
  "flex flex-wrap items-center gap-ds-02b break-words text-ds-md text-surface-fg-muted sm:gap-ds-03",
16
17
  e
17
18
  ),
@@ -19,66 +20,66 @@ const u = i.forwardRef(
19
20
  }
20
21
  )
21
22
  );
22
- u.displayName = "BreadcrumbList";
23
- const f = i.forwardRef(
24
- ({ className: e, ...r }, a) => /* @__PURE__ */ s("li", { ref: a, className: m("inline-flex items-center gap-ds-03", e), ...r })
23
+ f.displayName = "BreadcrumbList";
24
+ const p = o.forwardRef(
25
+ ({ className: e, ...r }, a) => /* @__PURE__ */ s("li", { ref: a, className: i("inline-flex items-center gap-ds-03", e), ...r })
25
26
  );
26
- f.displayName = "BreadcrumbItem";
27
- const p = i.forwardRef(({ className: e, asChild: r = !1, ...a }, o) => /* @__PURE__ */ s(
28
- r ? c : "a",
27
+ p.displayName = "BreadcrumbItem";
28
+ const b = o.forwardRef(({ className: e, asChild: r = !1, ...a }, t) => /* @__PURE__ */ s(
29
+ r ? d : "a",
29
30
  {
30
- ref: o,
31
- className: m(
31
+ ref: t,
32
+ className: i(
32
33
  "transition-colors duration-fast-01 ease-productive-standard hover:text-surface-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-9 rounded-ds-sm",
33
34
  e
34
35
  ),
35
36
  ...a
36
37
  }
37
38
  ));
38
- p.displayName = "BreadcrumbLink";
39
- const b = i.forwardRef(
39
+ b.displayName = "BreadcrumbLink";
40
+ const g = o.forwardRef(
40
41
  ({ className: e, ...r }, a) => /* @__PURE__ */ s(
41
42
  "span",
42
43
  {
43
44
  ref: a,
44
45
  "aria-current": "page",
45
- className: m("font-medium text-surface-fg", e),
46
+ className: i("font-medium text-surface-fg", e),
46
47
  ...r
47
48
  }
48
49
  )
49
50
  );
50
- b.displayName = "BreadcrumbPage";
51
- const N = ({ children: e, className: r, ...a }) => /* @__PURE__ */ s(
51
+ g.displayName = "BreadcrumbPage";
52
+ const B = ({ children: e, className: r, ...a }) => /* @__PURE__ */ s(
52
53
  "li",
53
54
  {
54
55
  role: "presentation",
55
56
  "aria-hidden": "true",
56
- className: m("[&>svg]:h-ico-sm [&>svg]:w-ico-sm", r),
57
+ className: i("[&>svg]:h-ico-sm [&>svg]:w-ico-sm", r),
57
58
  ...a,
58
- children: e ?? /* @__PURE__ */ s(n, {})
59
+ children: e ?? /* @__PURE__ */ s(m, { icon: l, size: "sm" })
59
60
  }
60
61
  );
61
- N.displayName = "BreadcrumbSeparator";
62
- const g = ({ className: e, ...r }) => /* @__PURE__ */ t(
62
+ B.displayName = "BreadcrumbSeparator";
63
+ const N = ({ className: e, ...r }) => /* @__PURE__ */ c(
63
64
  "span",
64
65
  {
65
66
  role: "presentation",
66
67
  "aria-hidden": "true",
67
- className: m("flex h-ds-sm-plus w-ds-sm-plus items-center justify-center", e),
68
+ className: i("flex h-ds-sm-plus w-ds-sm-plus items-center justify-center", e),
68
69
  ...r,
69
70
  children: [
70
- /* @__PURE__ */ s(d, { className: "h-ico-sm w-ico-sm" }),
71
+ /* @__PURE__ */ s(m, { icon: n, size: "sm" }),
71
72
  /* @__PURE__ */ s("span", { className: "sr-only", children: "More" })
72
73
  ]
73
74
  }
74
75
  );
75
- g.displayName = "BreadcrumbEllipsis";
76
+ N.displayName = "BreadcrumbEllipsis";
76
77
  export {
77
- l as Breadcrumb,
78
- g as BreadcrumbEllipsis,
79
- f as BreadcrumbItem,
80
- p as BreadcrumbLink,
81
- u as BreadcrumbList,
82
- b as BreadcrumbPage,
83
- N as BreadcrumbSeparator
78
+ u as Breadcrumb,
79
+ N as BreadcrumbEllipsis,
80
+ p as BreadcrumbItem,
81
+ b as BreadcrumbLink,
82
+ f as BreadcrumbList,
83
+ g as BreadcrumbPage,
84
+ B as BreadcrumbSeparator
84
85
  };
@@ -4,24 +4,26 @@ import * as React from 'react';
4
4
  interface ButtonGroupContextValue {
5
5
  variant?: ButtonProps['variant'];
6
6
  color?: ButtonProps['color'];
7
+ weight?: ButtonProps['weight'];
8
+ shape?: ButtonProps['shape'];
7
9
  size?: ButtonProps['size'];
8
10
  }
9
11
  export declare function useButtonGroup(): ButtonGroupContextValue;
10
12
  /**
11
13
  * Props for ButtonGroup — a container that visually merges adjacent `<Button>` components into
12
- * a single connected unit, and propagates a shared `variant` and `size` via context.
14
+ * a single connected unit, and propagates shared props (`variant`, `color`, `weight`, `shape`, `size`) via context.
13
15
  *
14
- * **Context propagation:** Child `<Button>` components automatically inherit `variant` and `size`
15
- * from ButtonGroup. Individual children can still override by passing their own `variant` or `size`.
16
+ * **Context propagation:** Child `<Button>` components automatically inherit `variant`, `color`,
17
+ * `weight`, `shape`, and `size` from ButtonGroup. Individual children can still override any prop.
16
18
  *
17
19
  * **Visual joining:** Adjacent button borders are merged with negative margins and border-radius overrides.
18
20
  *
19
21
  * @example
20
22
  * // Horizontal toolbar action group (outline variant shared):
21
23
  * <ButtonGroup variant="outline" size="sm">
22
- * <Button startIcon={<IconBold />}>Bold</Button>
23
- * <Button startIcon={<IconItalic />}>Italic</Button>
24
- * <Button startIcon={<IconUnderline />}>Underline</Button>
24
+ * <Button startIcon={<Icon icon={IconBold} />}>Bold</Button>
25
+ * <Button startIcon={<Icon icon={IconItalic} />}>Italic</Button>
26
+ * <Button startIcon={<Icon icon={IconUnderline} />}>Underline</Button>
25
27
  * </ButtonGroup>
26
28
  *
27
29
  * @example
@@ -45,6 +47,10 @@ export interface ButtonGroupProps extends Omit<React.HTMLAttributes<HTMLDivEleme
45
47
  variant?: ButtonProps['variant'];
46
48
  /** Shared color applied to all child Buttons (children can override) */
47
49
  color?: ButtonProps['color'];
50
+ /** Shared weight applied to all child Buttons (children can override) */
51
+ weight?: ButtonProps['weight'];
52
+ /** Shared shape applied to all child Buttons (children can override) */
53
+ shape?: ButtonProps['shape'];
48
54
  /** Shared size applied to all child Buttons (children can override) */
49
55
  size?: ButtonProps['size'];
50
56
  /** Layout direction. Default: 'horizontal' */
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../src/ui/button-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC3B;AAID,wBAAgB,cAAc,4BAE7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC3F,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,uEAAuE;IACvE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC;AAED,QAAA,MAAM,WAAW,yFAiChB,CAAA;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../src/ui/button-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC3B;AAID,wBAAgB,cAAc,4BAE7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC3F,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5B,uEAAuE;IACvE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC;AAED,QAAA,MAAM,WAAW,yFAiChB,CAAA;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,22 +1,22 @@
1
1
  "use client";
2
- import { jsx as r } from "react/jsx-runtime";
2
+ import { jsx as u } from "react/jsx-runtime";
3
3
  import * as o from "react";
4
- import { cn as a } from "./lib/utils.js";
5
- const l = o.createContext({});
6
- function h() {
7
- return o.useContext(l);
4
+ import { cn as p } from "./lib/utils.js";
5
+ const d = o.createContext({});
6
+ function G() {
7
+ return o.useContext(d);
8
8
  }
9
- const p = o.forwardRef(
10
- ({ className: u, variant: t, color: n, size: e, orientation: i = "horizontal", children: d, ...c }, s) => {
11
- const f = o.useMemo(() => ({ variant: t, color: n, size: e }), [t, n, e]);
12
- return /* @__PURE__ */ r(l.Provider, { value: f, children: /* @__PURE__ */ r(
9
+ const x = o.forwardRef(
10
+ ({ className: i, variant: t, color: n, weight: r, shape: e, size: l, orientation: c = "horizontal", children: s, ...f }, a) => {
11
+ const m = o.useMemo(() => ({ variant: t, color: n, weight: r, shape: e, size: l }), [t, n, r, e, l]);
12
+ return /* @__PURE__ */ u(d.Provider, { value: m, children: /* @__PURE__ */ u(
13
13
  "div",
14
14
  {
15
- ref: s,
15
+ ref: a,
16
16
  role: "group",
17
- className: a(
17
+ className: p(
18
18
  "inline-flex",
19
- i === "horizontal" ? [
19
+ c === "horizontal" ? [
20
20
  "flex-row",
21
21
  "[&>*:not(:first-child)]:rounded-l-none",
22
22
  "[&>*:not(:last-child)]:rounded-r-none",
@@ -27,16 +27,16 @@ const p = o.forwardRef(
27
27
  "[&>*:not(:last-child)]:rounded-b-none",
28
28
  "[&>*:not(:first-child)]:-mt-px"
29
29
  ],
30
- u
30
+ i
31
31
  ),
32
- ...c,
33
- children: d
32
+ ...f,
33
+ children: s
34
34
  }
35
35
  ) });
36
36
  }
37
37
  );
38
- p.displayName = "ButtonGroup";
38
+ x.displayName = "ButtonGroup";
39
39
  export {
40
- p as ButtonGroup,
41
- h as useButtonGroup
40
+ x as ButtonGroup,
41
+ G as useButtonGroup
42
42
  };