@ai-matrx/design-system 0.47.1 → 0.47.3

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.47.3
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/design-system/v0.47.2..npm/design-system/v0.47.3 -- apps/shared/design-system`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.47.2
10
+ ### lane RENDER-AUDIT (2026-09-26): a body row draws only when something it shows changed
11
+
12
+ - **`MatrxDataTable` memoises its body rows** (`MatrxTableBodyRow`). A row is drawn again only when its record changed identity, one of its own facts changed (ticked, open, highlighted, its pending edits, an edit asked of it, whether its Save shows, expanded, its cells' spreadsheet flags) or the table's SHAPE changed — every prop a body row reads and every value of the table it reads, compared by value where the table re-derives them (widths, the frozen band, the column window). Columns count by what a body cell draws: `headerMenu`, `filter`, `filterOptions`, `sortValue` and the other header-only keys never redraw a row. Measured before on /data-v2: one cell edit rendered 9,310 components in a 6-row table (every cell, eleven times).
13
+ - **Row handlers always act on the table as it is now** (`rowLatest`): a kept row never opens, ticks, expands, fills or commits against the render it was drawn in. A row's `controls` (for `rowActions` / `expandedDetail.render`) are live the same way.
14
+ - **New prop `rowVersion?: (row) => unknown`** — what else changes how a row draws besides its record (a host-owned cell editor, an optimistic value, a refusal). Compared with `Object.is`; an array item by item. Keep the function stable.
15
+ - **Consumer action:** a host whose `cell`, `rowClassName`, `cellClassName`, `rowActions`, `rowWrapper`, `tableStyle`, `selection.isRowSelectable` or `expandedDetail` closes over state OUTSIDE the record must either pass a new function when that state changes (it already does if it is built inline — every row then redraws, as before) or answer the state through `rowVersion`. Nothing else changes.
16
+
3
17
  ## 0.47.1
4
18
  ### ALC-15 round 4 (honest workspace formats)
5
19
 
@@ -1,5 +1,5 @@
1
1
  import { AgentPayloadInput } from './copy-types.cjs';
2
- import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-DbYAEQz3.cjs';
2
+ import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-DuvXeW4i.cjs';
3
3
  import '../content-transfer.cjs';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
@@ -1,5 +1,5 @@
1
1
  import { AgentPayloadInput } from './copy-types.js';
2
- import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-BmPwPUWu.js';
2
+ import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-oza_vuRW.js';
3
3
  import '../content-transfer.js';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-DbYAEQz3.cjs';
1
+ import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-DuvXeW4i.cjs';
2
2
  import '../content-transfer.cjs';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-BmPwPUWu.js';
1
+ import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-oza_vuRW.js';
2
2
  import '../content-transfer.js';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { ComponentType, ReactNode, MouseEventHandler } from 'react';
3
3
  import { CopyControlProps } from './copy-types.cjs';
4
4
  export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.cjs';
5
- import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-DbYAEQz3.cjs';
5
+ import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-DuvXeW4i.cjs';
6
6
  import { MatrxTableMenuTarget, MatrxTableMenuPayload, MatrxTableMenuSectionsResolver, MatrxTableMenuIconName } from './menu-targets.cjs';
7
7
  export { MatrxTableMenuItem, MatrxTableMenuSection } from './menu-targets.cjs';
8
8
  import '../content-transfer.cjs';
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { ComponentType, ReactNode, MouseEventHandler } from 'react';
3
3
  import { CopyControlProps } from './copy-types.js';
4
4
  export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.js';
5
- import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-BmPwPUWu.js';
5
+ import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-oza_vuRW.js';
6
6
  import { MatrxTableMenuTarget, MatrxTableMenuPayload, MatrxTableMenuSectionsResolver, MatrxTableMenuIconName } from './menu-targets.js';
7
7
  export { MatrxTableMenuItem, MatrxTableMenuSection } from './menu-targets.js';
8
8
  import '../content-transfer.js';