@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.
- package/CHANGELOG.md +51 -0
- package/dist/content-transfer.cjs +1 -0
- package/dist/content-transfer.cjs.map +1 -1
- package/dist/content-transfer.js +1 -0
- package/dist/content-transfer.js.map +1 -1
- package/dist/data-table/copy-helpers.cjs.map +1 -1
- package/dist/data-table/copy-helpers.d.cts +2 -1
- package/dist/data-table/copy-helpers.d.ts +2 -1
- package/dist/data-table/copy-helpers.js.map +1 -1
- package/dist/data-table/data-row-inspector.cjs +1 -0
- package/dist/data-table/data-row-inspector.cjs.map +1 -1
- package/dist/data-table/data-row-inspector.js +1 -0
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs +1 -0
- package/dist/data-table/data-row-window.cjs.map +1 -1
- package/dist/data-table/data-row-window.js +1 -0
- package/dist/data-table/data-row-window.js.map +1 -1
- package/dist/data-table/filter-engine.cjs +6 -2
- package/dist/data-table/filter-engine.cjs.map +1 -1
- package/dist/data-table/filter-engine.d.cts +2 -1
- package/dist/data-table/filter-engine.d.ts +2 -1
- package/dist/data-table/filter-engine.js +6 -2
- package/dist/data-table/filter-engine.js.map +1 -1
- package/dist/data-table/host.d.cts +2 -1
- package/dist/data-table/host.d.ts +2 -1
- package/dist/data-table/index.cjs +1547 -425
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +91 -3
- package/dist/data-table/index.d.ts +91 -3
- package/dist/data-table/index.js +1549 -423
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/infer-filter.cjs.map +1 -1
- package/dist/data-table/infer-filter.d.cts +2 -1
- package/dist/data-table/infer-filter.d.ts +2 -1
- package/dist/data-table/infer-filter.js.map +1 -1
- package/dist/data-table/layered-filters.d.cts +2 -1
- package/dist/data-table/layered-filters.d.ts +2 -1
- package/dist/data-table/query-control.cjs.map +1 -1
- package/dist/data-table/query-control.d.cts +2 -1
- package/dist/data-table/query-control.d.ts +2 -1
- package/dist/data-table/query-control.js.map +1 -1
- package/dist/data-table/types.cjs.map +1 -1
- package/dist/data-table/types.d.cts +2 -1
- package/dist/data-table/types.d.ts +2 -1
- package/dist/data-table/url-state.d.cts +2 -1
- package/dist/data-table/url-state.d.ts +2 -1
- package/dist/data-table/xlsx.cjs.map +1 -1
- package/dist/data-table/xlsx.d.cts +2 -1
- package/dist/data-table/xlsx.d.ts +2 -1
- package/dist/data-table/xlsx.js.map +1 -1
- package/dist/field-formats/index.cjs +741 -0
- package/dist/field-formats/index.cjs.map +1 -0
- package/dist/field-formats/index.d.cts +45 -0
- package/dist/field-formats/index.d.ts +45 -0
- package/dist/field-formats/index.js +723 -0
- package/dist/field-formats/index.js.map +1 -0
- package/dist/types-BdbvlF9-.d.cts +204 -0
- package/dist/types-BdbvlF9-.d.ts +204 -0
- package/dist/{types-D9b_LfTB.d.ts → types-D-flTpK0.d.ts} +241 -1
- package/dist/{types-DaKPLM6T.d.cts → types-Sn249eoy.d.cts} +241 -1
- 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();
|