@ai-matrx/design-system 0.57.0 → 0.59.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 CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.59.0
4
+
5
+ - **A host's inline functions never redraw the table.** A host that writes `cell`,
6
+ `customActions`, `getRowId`, `rowClassName` or its handlers inline handed the table new
7
+ functions on every render, and every row redrew: /artifacts (560 rows) spent ~2.6 s redrawing
8
+ 1,120 rows to open one artifact. Now only a VALUE the rows draw (a width, a flag) redraws every
9
+ row; a new function or object makes each row compare the elements it would draw with the ones
10
+ it drew (`row-drawing.ts`). Equal → React skips the row; different → only that row redraws.
11
+ Every `on[A-Z]` handler inside a row is a stable trampoline to the host's latest function, so a
12
+ row that was not redrawn never calls an old closure. Render props and component types still
13
+ compare by identity, so a row never shows what an old closure drew. The default row copy reads
14
+ its columns when a person copies (`TableRowCopyControl`'s `defaultColumns` is now a getter).
15
+ Guard: `MatrxDataTable.inline-callbacks.test.tsx` (red on 0.58.0).
16
+
17
+ ### Consumer action
18
+
19
+ - None required. A host that stabilised its callbacks only to stop row redraws may drop the
20
+ `useMemo`/ref plumbing; a host whose cell reads state outside the record keeps working without
21
+ `rowVersion` (the comparison sees what the cell draws).
22
+
23
+ ## 0.58.0
24
+
25
+ - **`formatPhone` is exported from `./field-formats`** — the Phone format's one look, moved here
26
+ from records-ui so every surface shows a phone number the same way: ten North-American digits
27
+ read `(805) 555-1234`, `+1`/eleven digits with the leading 1 read `+1 (805) 555-1234`, anything
28
+ else (another country's number, an extension, words) is shown as typed. Display only; the
29
+ stored value is never rewritten. Guard: `src/field-formats/phone-format.test.ts` (red on 0.57.0).
30
+
31
+ ### Consumer action
32
+
33
+ - None required. A surface that renders a phone value calls `formatPhone(text)` from
34
+ `@ai-matrx/design-system/field-formats` instead of keeping its own copy.
35
+
3
36
  ## 0.57.0
4
37
 
5
38
  - **One actions column.** A table that declares its own `customActions` column no longer also