@devalok/shilp-sutra 0.44.0 → 0.45.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 (131) hide show
  1. package/AGENTS.md +13 -11
  2. package/BREAKING.json +209 -27
  3. package/MIGRATION.md +34 -0
  4. package/README.md +12 -0
  5. package/dist/_chunks/badge-group.js +1 -0
  6. package/dist/_chunks/badge-group.js.map +1 -1
  7. package/dist/_chunks/block-shell.js +25 -0
  8. package/dist/_chunks/block-shell.js.map +1 -0
  9. package/dist/_chunks/chat.js +4 -2
  10. package/dist/_chunks/chat.js.map +1 -1
  11. package/dist/_chunks/document-preview.js +1 -1
  12. package/dist/_chunks/image-preview.js +4 -4
  13. package/dist/_chunks/shared.js +65 -78
  14. package/dist/_chunks/shared.js.map +1 -1
  15. package/dist/_chunks/success.js +108 -106
  16. package/dist/_chunks/success.js.map +1 -1
  17. package/dist/ai/blocks/block-shell.d.ts +19 -0
  18. package/dist/ai/blocks/block-shell.d.ts.map +1 -0
  19. package/dist/ai/blocks/block-table.d.ts.map +1 -1
  20. package/dist/ai/blocks/confirm.d.ts.map +1 -1
  21. package/dist/ai/blocks/error.d.ts.map +1 -1
  22. package/dist/ai/blocks/error.js +5 -5
  23. package/dist/ai/blocks/error.js.map +1 -1
  24. package/dist/ai/blocks/success.d.ts.map +1 -1
  25. package/dist/ai/blocks/text.d.ts.map +1 -1
  26. package/dist/ai/blocks/text.js +4 -3
  27. package/dist/ai/blocks/text.js.map +1 -1
  28. package/dist/composed/activity-feed.d.ts.map +1 -1
  29. package/dist/composed/activity-feed.js +14 -12
  30. package/dist/composed/activity-feed.js.map +1 -1
  31. package/dist/composed/file-preview/audio-preview.d.ts.map +1 -1
  32. package/dist/composed/file-preview/shared.d.ts +10 -0
  33. package/dist/composed/file-preview/shared.d.ts.map +1 -1
  34. package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
  35. package/dist/composed/file-preview.js +149 -188
  36. package/dist/composed/file-preview.js.map +1 -1
  37. package/dist/composed/master-detail.d.ts.map +1 -1
  38. package/dist/composed/master-detail.js +13 -4
  39. package/dist/composed/master-detail.js.map +1 -1
  40. package/dist/composed/schedule-view.d.ts.map +1 -1
  41. package/dist/composed/schedule-view.js +52 -39
  42. package/dist/composed/schedule-view.js.map +1 -1
  43. package/dist/shell/notification-preferences.d.ts.map +1 -1
  44. package/dist/shell/notification-preferences.js +115 -114
  45. package/dist/shell/notification-preferences.js.map +1 -1
  46. package/dist/ui/badge-group.d.ts.map +1 -1
  47. package/dist/ui/card.d.ts +66 -16
  48. package/dist/ui/card.d.ts.map +1 -1
  49. package/dist/ui/card.js +85 -60
  50. package/dist/ui/card.js.map +1 -1
  51. package/dist/ui/chat/message.d.ts.map +1 -1
  52. package/dist/ui/color-input.d.ts.map +1 -1
  53. package/dist/ui/color-input.js +18 -18
  54. package/dist/ui/color-input.js.map +1 -1
  55. package/dist/ui/data-table-body.d.ts.map +1 -1
  56. package/dist/ui/data-table-body.js +94 -64
  57. package/dist/ui/data-table-body.js.map +1 -1
  58. package/dist/ui/data-table-card.d.ts.map +1 -1
  59. package/dist/ui/data-table-card.js +50 -43
  60. package/dist/ui/data-table-card.js.map +1 -1
  61. package/dist/ui/data-table-context.d.ts +0 -4
  62. package/dist/ui/data-table-context.d.ts.map +1 -1
  63. package/dist/ui/data-table-context.js +8 -12
  64. package/dist/ui/data-table-context.js.map +1 -1
  65. package/dist/ui/data-table-header.d.ts.map +1 -1
  66. package/dist/ui/data-table-header.js +2 -2
  67. package/dist/ui/data-table-header.js.map +1 -1
  68. package/dist/ui/data-table.d.ts.map +1 -1
  69. package/dist/ui/data-table.js +185 -182
  70. package/dist/ui/data-table.js.map +1 -1
  71. package/dist/ui/index.d.ts +3 -2
  72. package/dist/ui/index.d.ts.map +1 -1
  73. package/dist/ui/index.js +59 -58
  74. package/dist/ui/index.js.map +1 -1
  75. package/dist/ui/segmented-control.js +4 -4
  76. package/dist/ui/segmented-control.js.map +1 -1
  77. package/dist/ui/separator.d.ts +6 -5
  78. package/dist/ui/separator.d.ts.map +1 -1
  79. package/dist/ui/separator.js +7 -10
  80. package/dist/ui/separator.js.map +1 -1
  81. package/dist/ui/split-button.d.ts.map +1 -1
  82. package/dist/ui/split-button.js +62 -129
  83. package/dist/ui/split-button.js.map +1 -1
  84. package/dist/ui/stat-card.d.ts +7 -0
  85. package/dist/ui/stat-card.d.ts.map +1 -1
  86. package/dist/ui/stat-card.js +144 -126
  87. package/dist/ui/stat-card.js.map +1 -1
  88. package/dist/ui/table-row-link.d.ts +45 -0
  89. package/dist/ui/table-row-link.d.ts.map +1 -0
  90. package/dist/ui/table-row-link.js +16 -0
  91. package/dist/ui/table-row-link.js.map +1 -0
  92. package/dist/ui/table.d.ts +49 -5
  93. package/dist/ui/table.d.ts.map +1 -1
  94. package/dist/ui/table.js +39 -29
  95. package/dist/ui/table.js.map +1 -1
  96. package/dist/ui/toast-types.d.ts +10 -0
  97. package/dist/ui/toast-types.d.ts.map +1 -1
  98. package/dist/ui/toast.d.ts +6 -2
  99. package/dist/ui/toast.d.ts.map +1 -1
  100. package/dist/ui/toast.js +56 -54
  101. package/dist/ui/toast.js.map +1 -1
  102. package/docs/components/composed/content-card.md +2 -0
  103. package/docs/components/ui/button.md +3 -3
  104. package/docs/components/ui/card.md +27 -10
  105. package/docs/components/ui/color-input.md +2 -2
  106. package/docs/components/ui/data-table.md +8 -1
  107. package/docs/components/ui/segmented-control.md +2 -2
  108. package/docs/components/ui/separator.md +3 -1
  109. package/docs/components/ui/split-button.md +3 -0
  110. package/docs/components/ui/stat-card.md +10 -2
  111. package/docs/components/ui/table-row-link.md +41 -0
  112. package/docs/components/ui/table.md +69 -0
  113. package/docs/components/ui/toast.md +10 -6
  114. package/docs/recipes/install-next-app-router.md +1 -1
  115. package/docs/recipes/troubleshoot.md +1 -1
  116. package/llms.txt +159 -781
  117. package/make-kit/components/card.md +54 -16
  118. package/make-kit/components/table.md +45 -7
  119. package/make-kit/foundations/spacing.md +3 -1
  120. package/make-kit/foundations/surfaces.md +1 -1
  121. package/mcp-manifest.json +12349 -0
  122. package/mcp-manifest.schema.json +232 -0
  123. package/package.json +8 -3
  124. package/skill/README.md +0 -1
  125. package/skill/SKILL.md +9 -8
  126. package/skill/references/components.md +159 -781
  127. package/skill/references/setup-next-app-router.md +1 -1
  128. package/skill/references/troubleshoot.md +1 -1
  129. package/llms-full.txt +0 -7198
  130. package/llms-quick.txt +0 -251
  131. package/skill/references/components-full.md +0 -7200
@@ -1,14 +1,58 @@
1
1
  import * as React from "react";
2
- declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
2
+ /** Row density sets --table-py, which header and body cells both read. */
3
+ type TableDensity = 'compact' | 'standard' | 'comfortable';
4
+ export interface TableCellBaseProps {
5
+ /**
6
+ * Quantitative column: right-aligns and uses tabular figures so digits line up.
7
+ * Keep decimal places consistent per column; identifier-numbers (dates, phones,
8
+ * IDs) stay left-aligned — they're names, not quantities.
9
+ */
10
+ numeric?: boolean;
11
+ }
12
+ export interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
13
+ /** Row density — vertical cell padding for header + body. @default 'standard' */
14
+ density?: TableDensity;
15
+ /**
16
+ * Zebra striping (even body rows get the faintest surface step). Opt-in only —
17
+ * for very wide/dense tables; hairline separators are the default row cue.
18
+ */
19
+ striped?: boolean;
20
+ }
21
+ declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
3
22
  declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
4
23
  declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
5
24
  declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
6
25
  declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
7
- declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
8
- declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
26
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & TableCellBaseProps & React.RefAttributes<HTMLTableCellElement>>;
27
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & TableCellBaseProps & React.RefAttributes<HTMLTableCellElement>>;
28
+ export interface TableRowActionsProps extends React.HTMLAttributes<HTMLDivElement> {
29
+ /**
30
+ * Always show the actions instead of revealing on row hover/focus. Use for
31
+ * tables where actions must be permanently discoverable (the GitLab stance),
32
+ * or when the row has few columns and the density win doesn't matter.
33
+ */
34
+ persist?: boolean;
35
+ }
36
+ /**
37
+ * Right-aligned action cluster for a table row, revealed on row hover — and,
38
+ * critically, on keyboard focus: the buttons stay in the tab order permanently
39
+ * (opacity reveal, never display:none) and appear the moment focus enters the
40
+ * row (WCAG 1.4.13). On touch devices (no hover) they are always visible.
41
+ *
42
+ * Give the actions column a visually-hidden header: `<TableHead><span className="sr-only">Actions</span></TableHead>`.
43
+ *
44
+ * @example
45
+ * <TableCell>
46
+ * <TableRowActions>
47
+ * <IconButton size="xs" variant="ghost" aria-label={`Download ${name}`} icon={<IconDownload />} />
48
+ * <IconButton size="xs" variant="ghost" aria-label={`Delete ${name}`} icon={<IconTrash />} />
49
+ * </TableRowActions>
50
+ * </TableCell>
51
+ */
52
+ declare const TableRowActions: React.ForwardRefExoticComponent<TableRowActionsProps & React.RefAttributes<HTMLDivElement>>;
9
53
  declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
10
- export type TableProps = React.HTMLAttributes<HTMLTableElement>;
11
54
  export type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;
12
55
  export type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
13
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, };
56
+ export type { TableDensity };
57
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableRowActions, };
14
58
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,iHAWT,CAAA;AAGF,QAAA,MAAM,WAAW,+HAKf,CAAA;AAGF,QAAA,MAAM,SAAS,+HASb,CAAA;AAGF,QAAA,MAAM,WAAW,+HAYf,CAAA;AAGF,QAAA,MAAM,QAAQ,uHAYZ,CAAA;AAGF,QAAA,MAAM,SAAS,2HAab,CAAA;AAGF,QAAA,MAAM,SAAS,2HAYb,CAAA;AAGF,QAAA,MAAM,YAAY,+HAShB,CAAA;AAGF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAEzE,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACT,CAAA"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,4EAA4E;AAC5E,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAA;AAa1D,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACxE,iFAAiF;IACjF,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,KAAK,qFAiBV,CAAA;AAGD,QAAA,MAAM,WAAW,+HAKf,CAAA;AAGF,QAAA,MAAM,SAAS,+HASb,CAAA;AAGF,QAAA,MAAM,WAAW,+HAef,CAAA;AAGF,QAAA,MAAM,QAAQ,uHAoBZ,CAAA;AAGF,QAAA,MAAM,SAAS,gJAgBb,CAAA;AAGF,QAAA,MAAM,SAAS,gJAab,CAAA;AAGF,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,eAAe,6FAcpB,CAAA;AAGD,QAAA,MAAM,YAAY,+HAShB,CAAA;AAGF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AACzE,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,CAAA"}
package/dist/ui/table.js CHANGED
@@ -2,57 +2,67 @@ import { cn as e } from "./lib/utils.js";
2
2
  import * as t from "react";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  //#region src/ui/table.tsx
5
- var r = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("div", {
5
+ var r = {
6
+ compact: "[--table-py:var(--spacing-ds-02)]",
7
+ standard: "[--table-py:var(--spacing-ds-03)]",
8
+ comfortable: "[--table-py:var(--spacing-ds-04)]"
9
+ }, i = t.forwardRef(({ className: t, density: i = "standard", striped: a, ...o }, s) => /* @__PURE__ */ n("div", {
6
10
  className: "relative w-full overflow-auto",
7
11
  children: /* @__PURE__ */ n("table", {
8
- ref: i,
9
- className: e("w-full caption-bottom text-ds-md", t),
10
- ...r
12
+ ref: s,
13
+ className: e("w-full caption-bottom text-ds-md overflow-x-clip [--table-edge:var(--card-spacing,var(--spacing-ds-04))]", r[i], a && "[&_tbody_tr:nth-child(even)]:bg-surface-base", t),
14
+ ...o
11
15
  })
12
16
  }));
13
- r.displayName = "Table";
14
- var i = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("thead", {
17
+ i.displayName = "Table";
18
+ var a = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("thead", {
15
19
  ref: i,
16
- className: e("", t),
20
+ className: e("[&_tr]:border-b [&_tr]:border-surface-border-subtle", t),
17
21
  ...r
18
22
  }));
19
- i.displayName = "TableHeader";
20
- var a = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tbody", {
23
+ a.displayName = "TableHeader";
24
+ var o = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tbody", {
21
25
  ref: i,
22
26
  className: e("[&_tr:last-child]:border-0", t),
23
27
  ...r
24
28
  }));
25
- a.displayName = "TableBody";
26
- var o = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tfoot", {
29
+ o.displayName = "TableBody";
30
+ var s = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tfoot", {
27
31
  ref: i,
28
- className: e("bg-[color-mix(in_srgb,var(--color-surface-raised)_50%,transparent)] font-medium [&>tr]:last:border-b-0", t),
32
+ className: e("border-t border-surface-border-subtle bg-surface-base font-medium [&>tr]:last:border-b-0", t),
29
33
  ...r
30
34
  }));
31
- o.displayName = "TableFooter";
32
- var s = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tr", {
35
+ s.displayName = "TableFooter";
36
+ var c = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("tr", {
33
37
  ref: i,
34
- className: e("transition-colors hover:bg-surface-raised data-[state=selected]:bg-accent-3", t),
38
+ className: e("group/row border-b border-surface-border-subtle transition-colors hover:bg-surface-raised-hover data-[state=selected]:bg-accent-3 data-[state=selected]:hover:bg-accent-4", "has-[[data-slot=row-link]:focus-visible]:outline-2 has-[[data-slot=row-link]:focus-visible]:outline-accent-9 has-[[data-slot=row-link]:focus-visible]:-outline-offset-2", t),
35
39
  ...r
36
40
  }));
37
- s.displayName = "TableRow";
38
- var c = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("th", {
39
- ref: i,
41
+ c.displayName = "TableRow";
42
+ var l = t.forwardRef(({ className: t, numeric: r, ...i }, a) => /* @__PURE__ */ n("th", {
43
+ ref: a,
40
44
  scope: "col",
41
- className: e("h-ds-md px-ds-03 text-left font-medium text-surface-fg-muted [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", t),
42
- ...r
45
+ className: e("py-(--table-py) px-ds-04 first:pl-(--table-edge) last:pr-(--table-edge) text-left align-middle text-ds-sm font-medium text-surface-fg-muted [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", r && "text-right", t),
46
+ ...i
43
47
  }));
44
- c.displayName = "TableHead";
45
- var l = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("td", {
46
- ref: i,
47
- className: e("py-ds-03 px-ds-03 [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", t),
48
- ...r
48
+ l.displayName = "TableHead";
49
+ var u = t.forwardRef(({ className: t, numeric: r, ...i }, a) => /* @__PURE__ */ n("td", {
50
+ ref: a,
51
+ className: e("py-(--table-py) px-ds-04 first:pl-(--table-edge) last:pr-(--table-edge) align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", r && "text-right tabular-nums", t),
52
+ ...i
53
+ }));
54
+ u.displayName = "TableCell";
55
+ var d = t.forwardRef(({ className: t, persist: r, ...i }, a) => /* @__PURE__ */ n("div", {
56
+ ref: a,
57
+ className: e("flex items-center justify-end gap-ds-01 transition-opacity duration-fast-01 ease-productive-standard", r ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 group-focus-within/row:opacity-100 pointer-coarse:opacity-100", t),
58
+ ...i
49
59
  }));
50
- l.displayName = "TableCell";
51
- var u = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("caption", {
60
+ d.displayName = "TableRowActions";
61
+ var f = t.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n("caption", {
52
62
  ref: i,
53
63
  className: e("mt-ds-05 text-ds-md text-surface-fg-muted", t),
54
64
  ...r
55
65
  }));
56
- u.displayName = "TableCaption";
66
+ f.displayName = "TableCaption";
57
67
  //#endregion
58
- export { r as Table, a as TableBody, u as TableCaption, l as TableCell, o as TableFooter, c as TableHead, i as TableHeader, s as TableRow };
68
+ export { i as Table, o as TableBody, f as TableCaption, u as TableCell, s as TableFooter, l as TableHead, a as TableHeader, c as TableRow, d as TableRowActions };
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","names":[],"sources":["../../src/ui/table.tsx"],"sourcesContent":["// @server-safe\nimport * as React from \"react\"\n\nimport { cn } from \"./lib/utils\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-ds-md\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"bg-[color-mix(in_srgb,var(--color-surface-raised)_50%,transparent)] font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"transition-colors hover:bg-surface-raised data-[state=selected]:bg-accent-3\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n scope=\"col\"\n className={cn(\n \"h-ds-md px-ds-03 text-left font-medium text-surface-fg-muted [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"py-ds-03 px-ds-03 [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-ds-05 text-ds-md text-surface-fg-muted\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport type TableProps = React.HTMLAttributes<HTMLTableElement>\nexport type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n}\n"],"mappings":";;;;AAKA,IAAM,IAAQ,EAAM,YAGjB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,OAAD;CAAK,WAAU;WACb,kBAAC,SAAD;EACO;EACL,WAAW,EAAG,oCAAoC,EAAU;EAC5D,GAAI;EACJ,CAAA;CACE,CAAA,CACN;AACF,EAAM,cAAc;AAEpB,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CAAY;CAAK,WAAW,EAAG,IAAI,EAAU;CAAE,GAAI;CAAS,CAAA,CAC5D;AACF,EAAY,cAAc;AAE1B,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CACO;CACL,WAAW,EAAG,8BAA8B,EAAU;CACtD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AAExB,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CACO;CACL,WAAW,EACT,0GACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAY,cAAc;AAE1B,IAAM,IAAW,EAAM,YAGpB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,MAAD;CACO;CACL,WAAW,EACT,+EACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAS,cAAc;AAEvB,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,MAAD;CACO;CACL,OAAM;CACN,WAAW,EACT,oIACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AAExB,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,MAAD;CACO;CACL,WAAW,EACT,yFACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AAExB,IAAM,IAAe,EAAM,YAGxB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,WAAD;CACO;CACL,WAAW,EAAG,6CAA6C,EAAU;CACrE,GAAI;CACJ,CAAA,CACF;AACF,EAAa,cAAc"}
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../src/ui/table.tsx"],"sourcesContent":["// @server-safe\nimport * as React from \"react\"\n\nimport { cn } from \"./lib/utils\"\n\n/** Row density — sets --table-py, which header and body cells both read. */\ntype TableDensity = 'compact' | 'standard' | 'comfortable'\n\n// One variable pair drives the table's spacing (same pattern as Card):\n// --table-py vertical cell padding per density (4 / 8 / 12px → rows ≈ 29 / 37 / 45px)\n// --table-edge first/last-cell inline padding — inherits --card-spacing when the table\n// sits inside a Card, so edge columns align with the card's slots;\n// falls back to ds-04 (12px) standalone.\nconst densityClasses: Record<TableDensity, string> = {\n compact: '[--table-py:var(--spacing-ds-02)]',\n standard: '[--table-py:var(--spacing-ds-03)]',\n comfortable: '[--table-py:var(--spacing-ds-04)]',\n}\n\nexport interface TableCellBaseProps {\n /**\n * Quantitative column: right-aligns and uses tabular figures so digits line up.\n * Keep decimal places consistent per column; identifier-numbers (dates, phones,\n * IDs) stay left-aligned — they're names, not quantities.\n */\n numeric?: boolean\n}\n\nexport interface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n /** Row density — vertical cell padding for header + body. @default 'standard' */\n density?: TableDensity\n /**\n * Zebra striping (even body rows get the faintest surface step). Opt-in only —\n * for very wide/dense tables; hairline separators are the default row cue.\n */\n striped?: boolean\n}\n\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, density = 'standard', striped, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\n // overflow-x-clip contains TableRowLink's 100vw stretch pseudo-element\n // without creating a horizontal scrollbar (the wrapper owns scrolling).\n \"w-full caption-bottom text-ds-md overflow-x-clip [--table-edge:var(--card-spacing,var(--spacing-ds-04))]\",\n densityClasses[density],\n striped && \"[&_tbody_tr:nth-child(even)]:bg-surface-base\",\n className,\n )}\n {...props}\n />\n </div>\n ),\n)\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b [&_tr]:border-surface-border-subtle\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n // surface-base band, not raised@50% — the footer must read against the\n // card surface the table lives on (same mis-mapped shadcn muted/50 family\n // as the row-hover bug).\n \"border-t border-surface-border-subtle bg-surface-base font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n // raised-hover, NOT raised — tables live on cards (surface-raised), so a\n // surface-raised hover would be invisible (the 0.44-era port bug).\n // selected+hover gets its own explicit step — without it the hover and\n // selected classes tie on specificity and stylesheet order decides.\n // `group/row` lets TableRowActions reveal on row hover/focus; the has-[]\n // rule draws a row-level focus ring when a TableRowLink inside is\n // keyboard-focused (the anchor itself suppresses its own ring).\n \"group/row border-b border-surface-border-subtle transition-colors hover:bg-surface-raised-hover data-[state=selected]:bg-accent-3 data-[state=selected]:hover:bg-accent-4\",\n \"has-[[data-slot=row-link]:focus-visible]:outline-2 has-[[data-slot=row-link]:focus-visible]:outline-accent-9 has-[[data-slot=row-link]:focus-visible]:-outline-offset-2\",\n className,\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement> & TableCellBaseProps\n>(({ className, numeric, ...props }, ref) => (\n <th\n ref={ref}\n scope=\"col\"\n className={cn(\n // Header is quieter than the data: one step smaller, medium, muted.\n // Height tracks density via the same --table-py the body cells read.\n \"py-(--table-py) px-ds-04 first:pl-(--table-edge) last:pr-(--table-edge) text-left align-middle text-ds-sm font-medium text-surface-fg-muted [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n numeric && \"text-right\",\n className,\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement> & TableCellBaseProps\n>(({ className, numeric, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"py-(--table-py) px-ds-04 first:pl-(--table-edge) last:pr-(--table-edge) align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n numeric && \"text-right tabular-nums\",\n className,\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nexport interface TableRowActionsProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Always show the actions instead of revealing on row hover/focus. Use for\n * tables where actions must be permanently discoverable (the GitLab stance),\n * or when the row has few columns and the density win doesn't matter.\n */\n persist?: boolean\n}\n\n/**\n * Right-aligned action cluster for a table row, revealed on row hover — and,\n * critically, on keyboard focus: the buttons stay in the tab order permanently\n * (opacity reveal, never display:none) and appear the moment focus enters the\n * row (WCAG 1.4.13). On touch devices (no hover) they are always visible.\n *\n * Give the actions column a visually-hidden header: `<TableHead><span className=\"sr-only\">Actions</span></TableHead>`.\n *\n * @example\n * <TableCell>\n * <TableRowActions>\n * <IconButton size=\"xs\" variant=\"ghost\" aria-label={`Download ${name}`} icon={<IconDownload />} />\n * <IconButton size=\"xs\" variant=\"ghost\" aria-label={`Delete ${name}`} icon={<IconTrash />} />\n * </TableRowActions>\n * </TableCell>\n */\nconst TableRowActions = React.forwardRef<HTMLDivElement, TableRowActionsProps>(\n ({ className, persist, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-end gap-ds-01 transition-opacity duration-fast-01 ease-productive-standard\",\n persist\n ? \"opacity-100\"\n : \"opacity-0 group-hover/row:opacity-100 group-focus-within/row:opacity-100 pointer-coarse:opacity-100\",\n className,\n )}\n {...props}\n />\n ),\n)\nTableRowActions.displayName = \"TableRowActions\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-ds-05 text-ds-md text-surface-fg-muted\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>\nexport type { TableDensity }\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n TableRowActions,\n}\n"],"mappings":";;;;AAaA,IAAM,IAA+C;CACnD,SAAS;CACT,UAAU;CACV,aAAa;CACd,EAqBK,IAAQ,EAAM,YACjB,EAAE,cAAW,aAAU,YAAY,YAAS,GAAG,KAAS,MACvD,kBAAC,OAAD;CAAK,WAAU;WACb,kBAAC,SAAD;EACO;EACL,WAAW,EAGT,4GACA,EAAe,IACf,KAAW,gDACX,EACD;EACD,GAAI;EACJ,CAAA;CACE,CAAA,CAET;AACD,EAAM,cAAc;AAEpB,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CAAY;CAAK,WAAW,EAAG,uDAAuD,EAAU;CAAE,GAAI;CAAS,CAAA,CAC/G;AACF,EAAY,cAAc;AAE1B,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CACO;CACL,WAAW,EAAG,8BAA8B,EAAU;CACtD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AAExB,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,SAAD;CACO;CACL,WAAW,EAIT,4FACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAY,cAAc;AAE1B,IAAM,IAAW,EAAM,YAGpB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,MAAD;CACO;CACL,WAAW,EAQT,6KACA,2KACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAS,cAAc;AAEvB,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,YAAS,GAAG,KAAS,MACnC,kBAAC,MAAD;CACO;CACL,OAAM;CACN,WAAW,EAGT,mNACA,KAAW,cACX,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AAExB,IAAM,IAAY,EAAM,YAGrB,EAAE,cAAW,YAAS,GAAG,KAAS,MACnC,kBAAC,MAAD;CACO;CACL,WAAW,EACT,4JACA,KAAW,2BACX,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAU,cAAc;AA2BxB,IAAM,IAAkB,EAAM,YAC3B,EAAE,cAAW,YAAS,GAAG,KAAS,MACjC,kBAAC,OAAD;CACO;CACL,WAAW,EACT,wGACA,IACI,gBACA,uGACJ,EACD;CACD,GAAI;CACJ,CAAA,CAEL;AACD,EAAgB,cAAc;AAE9B,IAAM,IAAe,EAAM,YAGxB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,WAAD;CACO;CACL,WAAW,EAAG,6CAA6C,EAAU;CACrE,GAAI;CACJ,CAAA,CACF;AACF,EAAa,cAAc"}
@@ -29,6 +29,11 @@ export interface ToastUploadOptions {
29
29
  files: UploadFile[];
30
30
  onRetry?: (fileId: string) => void;
31
31
  onRemove?: (fileId: string) => void;
32
+ /**
33
+ * Render the colored left accent bar. Off by default — status is carried by
34
+ * the icon and the status-colored timer bar. Opt in for the legacy rail look.
35
+ */
36
+ showAccent?: boolean;
32
37
  }
33
38
  export interface ToastOptions {
34
39
  id?: string;
@@ -37,6 +42,11 @@ export interface ToastOptions {
37
42
  action?: ToastActionOptions;
38
43
  cancel?: ToastActionOptions;
39
44
  duration?: number;
45
+ /**
46
+ * Render the colored left accent bar. Off by default — status is carried by
47
+ * the icon and the status-colored timer bar. Opt in for the legacy rail look.
48
+ */
49
+ showAccent?: boolean;
40
50
  }
41
51
  export type ToastType = 'success' | 'error' | 'warning' | 'info' | 'loading' | 'message';
42
52
  //# sourceMappingURL=toast-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast-types.d.ts","sourceRoot":"","sources":["../../src/ui/toast-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAMnC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAA;IACrE,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA"}
1
+ {"version":3,"file":"toast-types.d.ts","sourceRoot":"","sources":["../../src/ui/toast-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAMnC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAA;IACrE,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA"}
@@ -7,7 +7,7 @@ declare function TimerBar({ duration, type, paused, }: {
7
7
  type: ToastType;
8
8
  paused: boolean;
9
9
  }): import("react/jsx-runtime").JSX.Element;
10
- declare function ToastContent({ type, title, description, action, cancel, duration, showTimerBar, selfDismissId, }: {
10
+ declare function ToastContent({ type, title, description, action, cancel, duration, showTimerBar, showAccent, selfDismissId, }: {
11
11
  type: ToastType;
12
12
  title?: React.ReactNode;
13
13
  description?: React.ReactNode;
@@ -15,6 +15,8 @@ declare function ToastContent({ type, title, description, action, cancel, durati
15
15
  cancel?: ToastActionOptions;
16
16
  duration?: number;
17
17
  showTimerBar?: boolean;
18
+ /** Render the colored left accent bar. Off by default (status = icon + timer bar). */
19
+ showAccent?: boolean;
18
20
  /** When set, this component manages its own dismiss timer (hover-aware). */
19
21
  selfDismissId?: string | number;
20
22
  }): import("react/jsx-runtime").JSX.Element;
@@ -24,11 +26,13 @@ declare function UploadFileRow({ file, onRetry, onRemove, }: {
24
26
  onRetry?: (fileId: string) => void;
25
27
  onRemove?: (fileId: string) => void;
26
28
  }): import("react/jsx-runtime").JSX.Element;
27
- declare function UploadToastContent({ files, onRetry, onRemove, selfDismissId, }: {
29
+ declare function UploadToastContent({ files, onRetry, onRemove, selfDismissId, showAccent, }: {
28
30
  files: UploadFile[];
29
31
  onRetry?: (fileId: string) => void;
30
32
  onRemove?: (fileId: string) => void;
31
33
  selfDismissId?: string | number;
34
+ /** Render the colored left accent bar. Off by default. */
35
+ showAccent?: boolean;
32
36
  }): import("react/jsx-runtime").JSX.Element;
33
37
  /**
34
38
  * Toast API — imperative toast notifications with Sonner rendering engine.
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"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"}
package/dist/ui/toast.js CHANGED
@@ -62,39 +62,39 @@ function O({ duration: e, type: t, paused: r }) {
62
62
  })
63
63
  });
64
64
  }
65
- function k({ type: a, title: o, description: u, action: d, cancel: f, duration: p = w, showTimerBar: m = !0, selfDismissId: h }) {
66
- let [g, _] = s.useState(!1), [v, y] = s.useState(!1), b = g || v, T = D[a], E = T.icon, k = s.useRef(p), A = s.useRef(0);
65
+ function k({ type: a, title: o, description: u, action: d, cancel: f, duration: p = w, showTimerBar: m = !0, showAccent: h = !1, selfDismissId: g }) {
66
+ let [_, v] = s.useState(!1), [y, b] = s.useState(!1), T = _ || y, E = D[a], k = E.icon, A = s.useRef(p), j = s.useRef(0);
67
67
  s.useEffect(() => {
68
- if (h == null || p === Infinity) return;
69
- if (b) {
70
- let e = Date.now() - A.current;
71
- k.current = Math.max(0, k.current - e);
68
+ if (g == null || p === Infinity) return;
69
+ if (T) {
70
+ let e = Date.now() - j.current;
71
+ A.current = Math.max(0, A.current - e);
72
72
  return;
73
73
  }
74
- A.current = Date.now();
74
+ j.current = Date.now();
75
75
  let e = setTimeout(() => {
76
- C.dismiss(h);
77
- }, k.current);
76
+ C.dismiss(g);
77
+ }, A.current);
78
78
  return () => clearTimeout(e);
79
79
  }, [
80
- h,
80
+ g,
81
81
  p,
82
- b
82
+ T
83
83
  ]);
84
- let j = a === "error";
84
+ let M = a === "error";
85
85
  return /* @__PURE__ */ l(S.div, {
86
86
  layout: "position",
87
- role: j ? "alert" : "status",
88
- "aria-live": j ? "assertive" : "polite",
87
+ role: M ? "alert" : "status",
88
+ "aria-live": M ? "assertive" : "polite",
89
89
  "aria-atomic": "true",
90
- className: "group relative flex w-full overflow-hidden rounded-overlay-sm bg-surface-overlay shadow-floating",
91
- onMouseEnter: () => _(!0),
92
- onMouseLeave: () => _(!1),
93
- onFocusCapture: () => y(!0),
94
- onBlurCapture: () => y(!1),
90
+ className: n("group relative flex w-full overflow-hidden rounded-overlay-sm bg-surface-overlay shadow-floating", a === "error" && "bg-error-2"),
91
+ onMouseEnter: () => v(!0),
92
+ onMouseLeave: () => v(!1),
93
+ onFocusCapture: () => b(!0),
94
+ onBlurCapture: () => b(!1),
95
95
  transition: e.smooth,
96
96
  children: [
97
- T.accentClass && /* @__PURE__ */ c("div", { className: n("w-1 shrink-0 rounded-l-overlay-sm", T.accentClass) }),
97
+ h && E.accentClass && /* @__PURE__ */ c("div", { className: n("w-1 shrink-0 rounded-l-overlay-sm", E.accentClass) }),
98
98
  /* @__PURE__ */ l("div", {
99
99
  className: "flex min-w-0 flex-1 items-start gap-ds-03 p-ds-04",
100
100
  children: [/* @__PURE__ */ c(x, {
@@ -118,7 +118,7 @@ function k({ type: a, title: o, description: u, action: d, cancel: f, duration:
118
118
  size: "sm",
119
119
  className: "h-4 w-4"
120
120
  })
121
- }, "loading") : E ? /* @__PURE__ */ c(S.div, {
121
+ }, "loading") : k ? /* @__PURE__ */ c(S.div, {
122
122
  initial: {
123
123
  opacity: 0,
124
124
  scale: .5
@@ -134,9 +134,9 @@ function k({ type: a, title: o, description: u, action: d, cancel: f, duration:
134
134
  transition: e.bouncy,
135
135
  className: "mt-0.5 shrink-0",
136
136
  children: /* @__PURE__ */ c(i, {
137
- icon: E,
137
+ icon: k,
138
138
  size: "sm",
139
- className: T.iconClass
139
+ className: E.iconClass
140
140
  })
141
141
  }, a) : null
142
142
  }), /* @__PURE__ */ l("div", {
@@ -170,7 +170,7 @@ function k({ type: a, title: o, description: u, action: d, cancel: f, duration:
170
170
  m && a !== "loading" && /* @__PURE__ */ c(O, {
171
171
  duration: p,
172
172
  type: a,
173
- paused: b
173
+ paused: T
174
174
  })
175
175
  ]
176
176
  });
@@ -345,39 +345,39 @@ function F({ file: n, onRetry: o, onRemove: s }) {
345
345
  ]
346
346
  });
347
347
  }
348
- function I({ files: r, onRetry: a, onRemove: o, selfDismissId: d }) {
349
- let [p, m] = s.useState(!1), [h, g] = s.useState(!1), _ = p || h, v = r.filter((e) => e.status === "complete").length, b = r.filter((e) => e.status === "error").length, w = r.every((e) => e.status === "complete" || e.status === "error"), T = s.useRef(E), D = s.useRef(0);
348
+ function I({ files: r, onRetry: a, onRemove: o, selfDismissId: d, showAccent: p = !1 }) {
349
+ let [m, h] = s.useState(!1), [g, _] = s.useState(!1), v = m || g, b = r.filter((e) => e.status === "complete").length, w = r.filter((e) => e.status === "error").length, T = r.every((e) => e.status === "complete" || e.status === "error"), D = s.useRef(E), k = s.useRef(0);
350
350
  s.useEffect(() => {
351
- if (d == null || !w) return;
352
- if (_) {
353
- let e = Date.now() - D.current;
354
- T.current = Math.max(0, T.current - e);
351
+ if (d == null || !T) return;
352
+ if (v) {
353
+ let e = Date.now() - k.current;
354
+ D.current = Math.max(0, D.current - e);
355
355
  return;
356
356
  }
357
- D.current = Date.now();
357
+ k.current = Date.now();
358
358
  let e = setTimeout(() => {
359
359
  C.dismiss(d);
360
- }, T.current);
360
+ }, D.current);
361
361
  return () => clearTimeout(e);
362
362
  }, [
363
363
  d,
364
- w,
365
- _
364
+ T,
365
+ v
366
366
  ]);
367
- let k = w ? b > 0 ? "bg-error-7" : "bg-success-7" : "bg-accent-9", A = w ? b > 0 ? "error" : "success" : "loading", j = w && b > 0;
367
+ let A = T ? w > 0 ? "bg-error-7" : "bg-success-7" : "bg-accent-9", j = T ? w > 0 ? "error" : "success" : "loading", M = T && w > 0;
368
368
  return /* @__PURE__ */ l(S.div, {
369
369
  layout: !0,
370
- role: j ? "alert" : "status",
371
- "aria-live": j ? "assertive" : "polite",
370
+ role: M ? "alert" : "status",
371
+ "aria-live": M ? "assertive" : "polite",
372
372
  "aria-label": "File uploads",
373
- className: "group relative flex w-full overflow-hidden rounded-overlay-sm bg-surface-overlay shadow-floating",
374
- onMouseEnter: () => m(!0),
375
- onMouseLeave: () => m(!1),
376
- onFocusCapture: () => g(!0),
377
- onBlurCapture: () => g(!1),
373
+ className: n("group relative flex w-full overflow-hidden rounded-overlay-sm bg-surface-overlay shadow-floating", M && "bg-error-2"),
374
+ onMouseEnter: () => h(!0),
375
+ onMouseLeave: () => h(!1),
376
+ onFocusCapture: () => _(!0),
377
+ onBlurCapture: () => _(!1),
378
378
  transition: e.smooth,
379
379
  children: [
380
- /* @__PURE__ */ c("div", { className: n("w-1 shrink-0 rounded-l-overlay-sm", k) }),
380
+ p && /* @__PURE__ */ c("div", { className: n("w-1 shrink-0 rounded-l-overlay-sm", A) }),
381
381
  /* @__PURE__ */ l("div", {
382
382
  className: "min-w-0 flex-1 p-ds-04",
383
383
  children: [
@@ -385,7 +385,7 @@ function I({ files: r, onRetry: a, onRemove: o, selfDismissId: d }) {
385
385
  className: "flex items-center gap-ds-02",
386
386
  children: [/* @__PURE__ */ c(x, {
387
387
  mode: "wait",
388
- children: w ? b > 0 ? /* @__PURE__ */ c(S.div, {
388
+ children: T ? w > 0 ? /* @__PURE__ */ c(S.div, {
389
389
  initial: {
390
390
  opacity: 0,
391
391
  scale: .5
@@ -436,17 +436,17 @@ function I({ files: r, onRetry: a, onRemove: o, selfDismissId: d }) {
436
436
  }, "upload-icon")
437
437
  }), /* @__PURE__ */ c("p", {
438
438
  className: "text-ds-md font-semibold text-surface-fg",
439
- children: w ? b > 0 ? `${v} of ${r.length} uploaded` : `${r.length} file${r.length > 1 ? "s" : ""} uploaded` : `Uploading ${r.length} file${r.length > 1 ? "s" : ""}`
439
+ children: T ? w > 0 ? `${b} of ${r.length} uploaded` : `${r.length} file${r.length > 1 ? "s" : ""} uploaded` : `Uploading ${r.length} file${r.length > 1 ? "s" : ""}`
440
440
  })]
441
441
  }),
442
- !w && /* @__PURE__ */ l("p", {
442
+ !T && /* @__PURE__ */ l("p", {
443
443
  className: "mt-0.5 text-ds-xs text-surface-fg-muted",
444
444
  children: [
445
- v,
445
+ b,
446
446
  " of ",
447
447
  r.length,
448
448
  " complete",
449
- b > 0 && ` · ${b} failed`
449
+ w > 0 && ` · ${w} failed`
450
450
  ]
451
451
  }),
452
452
  /* @__PURE__ */ c("div", {
@@ -461,18 +461,18 @@ function I({ files: r, onRetry: a, onRemove: o, selfDismissId: d }) {
461
461
  className: "sr-only",
462
462
  "aria-live": "polite",
463
463
  children: [
464
- v,
464
+ b,
465
465
  " of ",
466
466
  r.length,
467
467
  " files uploaded",
468
- b > 0 && `, ${b} failed`
468
+ w > 0 && `, ${w} failed`
469
469
  ]
470
470
  })
471
471
  ]
472
472
  }),
473
- w && /* @__PURE__ */ c(O, {
473
+ T && /* @__PURE__ */ c(O, {
474
474
  duration: E,
475
- type: A,
475
+ type: j,
476
476
  paused: !1
477
477
  })
478
478
  ]
@@ -495,7 +495,8 @@ function R(e, t, n) {
495
495
  description: n?.description,
496
496
  action: n?.action,
497
497
  cancel: n?.cancel,
498
- duration: r
498
+ duration: r,
499
+ showAccent: n?.showAccent
499
500
  }), L(n, r));
500
501
  }
501
502
  function z(e, t) {
@@ -553,7 +554,8 @@ z.message = (e, t) => R("message", e, t), z.success = (e, t) => R("success", e,
553
554
  files: e.files,
554
555
  onRetry: e.onRetry,
555
556
  onRemove: e.onRemove,
556
- selfDismissId: t
557
+ selfDismissId: t,
558
+ showAccent: e.showAccent
557
559
  }), {
558
560
  id: t,
559
561
  duration: Infinity,