@ai-matrx/design-system 0.21.13 → 0.22.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 (61) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/content-transfer.cjs +1 -0
  3. package/dist/content-transfer.cjs.map +1 -1
  4. package/dist/content-transfer.js +1 -0
  5. package/dist/content-transfer.js.map +1 -1
  6. package/dist/data-table/copy-helpers.cjs.map +1 -1
  7. package/dist/data-table/copy-helpers.d.cts +2 -1
  8. package/dist/data-table/copy-helpers.d.ts +2 -1
  9. package/dist/data-table/copy-helpers.js.map +1 -1
  10. package/dist/data-table/data-row-inspector.cjs +1 -0
  11. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  12. package/dist/data-table/data-row-inspector.js +1 -0
  13. package/dist/data-table/data-row-inspector.js.map +1 -1
  14. package/dist/data-table/data-row-window.cjs +1 -0
  15. package/dist/data-table/data-row-window.cjs.map +1 -1
  16. package/dist/data-table/data-row-window.js +1 -0
  17. package/dist/data-table/data-row-window.js.map +1 -1
  18. package/dist/data-table/filter-engine.cjs +6 -2
  19. package/dist/data-table/filter-engine.cjs.map +1 -1
  20. package/dist/data-table/filter-engine.d.cts +2 -1
  21. package/dist/data-table/filter-engine.d.ts +2 -1
  22. package/dist/data-table/filter-engine.js +6 -2
  23. package/dist/data-table/filter-engine.js.map +1 -1
  24. package/dist/data-table/host.d.cts +2 -1
  25. package/dist/data-table/host.d.ts +2 -1
  26. package/dist/data-table/index.cjs +1547 -425
  27. package/dist/data-table/index.cjs.map +1 -1
  28. package/dist/data-table/index.d.cts +91 -3
  29. package/dist/data-table/index.d.ts +91 -3
  30. package/dist/data-table/index.js +1549 -423
  31. package/dist/data-table/index.js.map +1 -1
  32. package/dist/data-table/infer-filter.cjs.map +1 -1
  33. package/dist/data-table/infer-filter.d.cts +2 -1
  34. package/dist/data-table/infer-filter.d.ts +2 -1
  35. package/dist/data-table/infer-filter.js.map +1 -1
  36. package/dist/data-table/layered-filters.d.cts +2 -1
  37. package/dist/data-table/layered-filters.d.ts +2 -1
  38. package/dist/data-table/query-control.cjs.map +1 -1
  39. package/dist/data-table/query-control.d.cts +2 -1
  40. package/dist/data-table/query-control.d.ts +2 -1
  41. package/dist/data-table/query-control.js.map +1 -1
  42. package/dist/data-table/types.cjs.map +1 -1
  43. package/dist/data-table/types.d.cts +2 -1
  44. package/dist/data-table/types.d.ts +2 -1
  45. package/dist/data-table/url-state.d.cts +2 -1
  46. package/dist/data-table/url-state.d.ts +2 -1
  47. package/dist/data-table/xlsx.cjs.map +1 -1
  48. package/dist/data-table/xlsx.d.cts +2 -1
  49. package/dist/data-table/xlsx.d.ts +2 -1
  50. package/dist/data-table/xlsx.js.map +1 -1
  51. package/dist/field-formats/index.cjs +741 -0
  52. package/dist/field-formats/index.cjs.map +1 -0
  53. package/dist/field-formats/index.d.cts +45 -0
  54. package/dist/field-formats/index.d.ts +45 -0
  55. package/dist/field-formats/index.js +723 -0
  56. package/dist/field-formats/index.js.map +1 -0
  57. package/dist/types-BdbvlF9-.d.cts +204 -0
  58. package/dist/types-BdbvlF9-.d.ts +204 -0
  59. package/dist/{types-D9b_LfTB.d.ts → types-D-flTpK0.d.ts} +241 -1
  60. package/dist/{types-DaKPLM6T.d.cts → types-Sn249eoy.d.cts} +241 -1
  61. package/package.json +11 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.22.0 — 2026-09-20
4
+
5
+ **The data table can paint, format and freeze — so every table in the product can.**
6
+
7
+ The spreadsheet work built behind one app route (`/data`) lived in that app and could not be
8
+ reached by anything else; the record store's Grid renders through THIS table, so any table that
9
+ wanted a colored row or a money column had to grow its own. Three capabilities move into the
10
+ primitive, and a fourth rung it never had.
11
+
12
+ - **`tableStyle`** — colors, declaratively. Color by a column, live rules ("when Amount is over
13
+ 1000, tint the row amber"), and manual cell / row / column highlights, with a documented
14
+ precedence between them. The model is the new `./table-style.ts` — pure, no React, no network —
15
+ so a consumer owns only where the document is STORED and how a person edits it. Every tint ships
16
+ its own `dark:` class, and the palette is NAMES, never hex, so a color survives the theme and a
17
+ retired name degrades to "no color" instead of an unreadable swatch.
18
+ - **`MatrxColumnDef.format`** — `{id, options}` from the new `@ai-matrx/design-system/field-formats`
19
+ entry point, which is the platform's ONE field-format registry (25 formats: currency, percent,
20
+ duration, rating, file size, date styles, choice, tags, markdown, …). A formatted column also
21
+ right-aligns itself when the format is numeric. THE FALLBACK LAW travels with it: a value that
22
+ does not fit is shown in amber with the reason, never blanked and never thrown.
23
+ - **`MatrxColumnDef.frozen`** — the identity column stays while a wide table scrolls sideways.
24
+ DESKTOP ONLY (`sm:`) because pinning over a phone table buries the data; only the LEADING RUN,
25
+ because a column pinned over its own left neighbour lies about where the row is; and **nothing
26
+ freezes at all when a width the offsets need is unknown**, rather than pinning at a guess.
27
+ - **`cellClassName`** — the rung between `rowClassName` and a column's static `className`. Its
28
+ absence is why every table that needed to say something about ONE cell had to grow a `cell`
29
+ render function and paint inside it, where the table can no longer see it.
30
+ - **`TableViewSnapshot.style`** — a saved view carries its colors. Read by `parseTableStyle`, which
31
+ is tolerant by design, so one stale rule costs that rule and never the whole view.
32
+
33
+ ### Consumer action
34
+
35
+ None. Every new prop is optional and every default is today's behavior. `MatrxColumnDef.format` is
36
+ ignored when the column already supplies `cell`; a consumer's own renderer can ask for the same
37
+ text with the exported `formatColumnValue(col, value)` instead of writing a second money formatter.
38
+
39
+
40
+ ## 0.21.14 — 2026-09-19
41
+
42
+ Alchemy renders the kit's new `queued` transfer outcome (`@ai-matrx/kit` 0.16.0): a write that was
43
+ accepted for review and delivered nothing. The feedback line speaks the host's sentence AND its
44
+ remedy — a queued write that says only "Filed for approval" reads as a delivery — and the pending
45
+ request rides the existing receipt link, so the approval row opens like any other target. Nothing
46
+ else about copy, download, preparation or action outcomes changes.
47
+
48
+ ### Consumer action
49
+
50
+ None for hosts that only consume the menu. A host that produces a queued destination write should
51
+ return the kit's `queued` member instead of dressing it as `success` + `delivered: "action"` or as
52
+ an `error`; the menu then states both halves of the truth for it.
53
+
3
54
  ## 0.21.13
4
55
 
5
56
  Automatic changed-only republish (docs/metadata drift since the last tag — see
@@ -2001,6 +2001,7 @@ var outcomeMessage = (result) => {
2001
2001
  const success = result;
2002
2002
  return success.delivered === "action" ? success.message ?? "Action completed" : success.delivered === "download-started" ? "Download started" : success.message ?? "Copied";
2003
2003
  }
2004
+ if (result.status === "queued") return `${result.message} ${result.remedy}`;
2004
2005
  return result.status === "degraded" ? `Copied as plain text: ${result.reason}` : result.status === "cancelled" ? "Cancelled" : result.message;
2005
2006
  };
2006
2007
  var materialIds = /* @__PURE__ */ new WeakMap();