@ai-matrx/design-system 0.40.0 → 0.42.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 (67) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/data-table/copy-helpers.d.cts +3 -2
  3. package/dist/data-table/copy-helpers.d.ts +3 -2
  4. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  5. package/dist/data-table/data-row-inspector.js.map +1 -1
  6. package/dist/data-table/data-row-window.cjs.map +1 -1
  7. package/dist/data-table/data-row-window.js.map +1 -1
  8. package/dist/data-table/filter-engine.d.cts +3 -2
  9. package/dist/data-table/filter-engine.d.ts +3 -2
  10. package/dist/data-table/host.cjs.map +1 -1
  11. package/dist/data-table/host.d.cts +19 -5
  12. package/dist/data-table/host.d.ts +19 -5
  13. package/dist/data-table/host.js.map +1 -1
  14. package/dist/data-table/index.cjs +2080 -1655
  15. package/dist/data-table/index.cjs.map +1 -1
  16. package/dist/data-table/index.d.cts +5 -5
  17. package/dist/data-table/index.d.ts +5 -5
  18. package/dist/data-table/index.js +2080 -1655
  19. package/dist/data-table/index.js.map +1 -1
  20. package/dist/data-table/infer-filter.d.cts +3 -2
  21. package/dist/data-table/infer-filter.d.ts +3 -2
  22. package/dist/data-table/layered-filters.d.cts +3 -2
  23. package/dist/data-table/layered-filters.d.ts +3 -2
  24. package/dist/data-table/menu-targets.cjs +27 -0
  25. package/dist/data-table/menu-targets.cjs.map +1 -1
  26. package/dist/data-table/menu-targets.d.cts +49 -1
  27. package/dist/data-table/menu-targets.d.ts +49 -1
  28. package/dist/data-table/menu-targets.js +27 -0
  29. package/dist/data-table/menu-targets.js.map +1 -1
  30. package/dist/data-table/pagination.cjs.map +1 -1
  31. package/dist/data-table/pagination.js.map +1 -1
  32. package/dist/data-table/query-control.d.cts +3 -2
  33. package/dist/data-table/query-control.d.ts +3 -2
  34. package/dist/data-table/spreadsheet.cjs +24 -8
  35. package/dist/data-table/spreadsheet.cjs.map +1 -1
  36. package/dist/data-table/spreadsheet.d.cts +20 -3
  37. package/dist/data-table/spreadsheet.d.ts +20 -3
  38. package/dist/data-table/spreadsheet.js +24 -8
  39. package/dist/data-table/spreadsheet.js.map +1 -1
  40. package/dist/data-table/types.cjs.map +1 -1
  41. package/dist/data-table/types.d.cts +3 -2
  42. package/dist/data-table/types.d.ts +3 -2
  43. package/dist/data-table/url-state.d.cts +3 -2
  44. package/dist/data-table/url-state.d.ts +3 -2
  45. package/dist/data-table/uuid-cell.cjs.map +1 -1
  46. package/dist/data-table/uuid-cell.js.map +1 -1
  47. package/dist/data-table/validation.d.cts +1 -1
  48. package/dist/data-table/validation.d.ts +1 -1
  49. package/dist/data-table/xlsx.d.cts +3 -2
  50. package/dist/data-table/xlsx.d.ts +3 -2
  51. package/dist/field-formats/index.cjs +269 -5
  52. package/dist/field-formats/index.cjs.map +1 -1
  53. package/dist/field-formats/index.d.cts +2 -2
  54. package/dist/field-formats/index.d.ts +2 -2
  55. package/dist/field-formats/index.js +269 -5
  56. package/dist/field-formats/index.js.map +1 -1
  57. package/dist/formulas/index.cjs +38 -5
  58. package/dist/formulas/index.cjs.map +1 -1
  59. package/dist/formulas/index.d.cts +39 -2
  60. package/dist/formulas/index.d.ts +39 -2
  61. package/dist/formulas/index.js +38 -5
  62. package/dist/formulas/index.js.map +1 -1
  63. package/dist/{types-CJWU1Gae.d.cts → types-JnZD8wM0.d.cts} +27 -2
  64. package/dist/{types-CJWU1Gae.d.ts → types-JnZD8wM0.d.ts} +27 -2
  65. package/dist/{types-Z32pxexx.d.ts → types-afUz93xo.d.ts} +34 -2
  66. package/dist/{types-oVyZbfwn.d.cts → types-q5ficDSo.d.cts} +34 -2
  67. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.42.0 (2026-09-25)
4
+
5
+ ### Lane data-tables-grid-overhaul — merge step 3 (2026-09-25)
6
+
7
+ * **Neutral right-click sections.** `contextMenu.sections(payload)` answers plain
8
+ `MatrxTableMenuSection`s — a title and items with label, icon name
9
+ (`MATRX_TABLE_MENU_ICON_NAMES`), shortcut hint, `disabledReason`, `destructive`,
10
+ `onSelect` and `submenu` — for the level that was right-clicked (cell, row, column
11
+ header, selection, table), with that level's row, column, values or range TSV. The
12
+ table hands its host's `ContextMenuBoundary` a `sections(target)` resolver
13
+ (`TableContextMenuBoundaryProps.sections`) only when a consumer declared sections;
14
+ a new optional host port `MenuIcon` maps icon names to glyphs. Unbound, the boundary
15
+ receives exactly what it did before.
16
+ * **Header-menu slot.** `MatrxColumnDef.headerMenu` adds the consumer's column actions
17
+ (rename, insert left/right, row label, colour by, settings) to the header's one
18
+ popover under the built-in sort and filter; a disabled item stays and says why; a
19
+ submenu opens in place; a column with no sort and no filter gets a menu when it has
20
+ actions.
21
+ * **Range selection and copy for readers.** `spreadsheet.readOnly` (separate from
22
+ editing) gives a person who may not write the whole range cursor — click, drag,
23
+ shift-click, arrows, select-all, Cmd-C — with no `onPatch` required (`onPatch` is
24
+ now optional). Cut still copies; cut, paste, clear, fill-down, undo and redo each say
25
+ `readOnlyReason` (default: a plain view-only sentence) and write nothing; no fill
26
+ handle; the range cursor opens no editor. A writable grid without `onPatch` refuses
27
+ the same way instead of dropping the write.
28
+ * Suite `MatrxDataTable.merge-step-3.test.tsx`: RED 8/12 on the prior bytes (the four
29
+ that pass pin the unbound behaviour and reader selection that ran but was not
30
+ typeable), GREEN 12/12; package 1190/1190. **Consumer action:** none; records-ui
31
+ wires a reader with `spreadsheet: { enabled: true, readOnly: true }` in the branch
32
+ that today passes nothing.
33
+
34
+ ## 0.41.0 (2026-09-25)
35
+
36
+ ### Lane MERGE-STEP-2 (data-tables-grid-overhaul, 2026-09-25)
37
+
38
+ The app's `/data` grid kept forks of `field-formats` and `formulas` after they moved here, and
39
+ the forks grew. Their newer behaviour moves into the package so the app can delete its copies.
40
+
41
+ * **`@ai-matrx/design-system/field-formats` gains nine formats** the app had added since the move:
42
+ `address` (opens in maps), `progress` (a percentage drawn as a bar), `time` (time of day, with
43
+ `options.timeSeconds`), `autonumber` (database-assigned, `prefix`), the system columns
44
+ `created_time` / `modified_time`, `attachment` (file ids from Files; `base: "array"`, also
45
+ accepts `json` but NOT `string`, so on a text column it is offered under "Other kinds" and
46
+ retypes the column instead of storing JSON in a text cell), `person` (an organization member,
47
+ choice-shaped) and `relation` (a record of another table: `relation_target`, `relation_max`,
48
+ `on_delete`, `display`; a value that did not resolve to words is a mismatch, never a bare id).
49
+ `FieldEditorKind` gains `"time"` and `"attachment"`; `FieldFormatId` and `FieldFormatOptions`
50
+ grow to match. Additive.
51
+ * **`@ai-matrx/design-system/formulas` gains the computed-column helpers:** `systemColumnKindOf`,
52
+ `SystemColumnKind`, `isAutonumberColumn`, `isComputedColumn` (THE check every write path uses to
53
+ refuse a computed cell). `withComputedColumns` fills `created_time` / `modified_time` columns from
54
+ the row's own `created_at` / `updated_at`, counts system and autonumber columns in
55
+ `formulaFieldNames`, and takes an optional third argument `displayValueOf(fieldName, raw)` so a
56
+ formula sees a relation cell's words rather than its id. Omitted, behaviour is unchanged.
57
+ * Tests moved with the behaviour: `field-formats/{format,address-progress-format,attachment-format,
58
+ time-format,identifier-formats}.test.ts`, `formulas/computed-columns.test.ts`.
59
+
60
+ **Consumer action:** matrx-frontend deletes its `lib/field-formats/{registry,types,format}.ts` and
61
+ `features/data-tables/{formulas,grid-selection,grid-clipboard}.ts` forks and imports these subpaths.
62
+ Other consumers: none.
63
+
3
64
  ## 0.40.0 (2026-09-25 — version and notes set by PUBLISHER-5)
4
65
 
5
66
  ### Lane TABLE-PAGE-CHROME (2026-09-25)
@@ -1,17 +1,18 @@
1
1
  import { AgentPayloadInput } from './copy-types.cjs';
2
- import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-oVyZbfwn.cjs';
2
+ import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-q5ficDSo.cjs';
3
3
  import '../content-transfer.cjs';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
6
6
  import '../content-transfer/icon.cjs';
7
7
  import './table-style.cjs';
8
- import '../types-CJWU1Gae.cjs';
8
+ import '../types-JnZD8wM0.cjs';
9
9
  import './grouping.cjs';
10
10
  import './fill.cjs';
11
11
  import './facets.cjs';
12
12
  import './spreadsheet.cjs';
13
13
  import './grid-selection.cjs';
14
14
  import './date-filter.cjs';
15
+ import './menu-targets.cjs';
15
16
 
16
17
  /**
17
18
  * Typed, declared-column capture for MatrxDataTable's built-in Alchemy source.
@@ -1,17 +1,18 @@
1
1
  import { AgentPayloadInput } from './copy-types.js';
2
- import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-Z32pxexx.js';
2
+ import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-afUz93xo.js';
3
3
  import '../content-transfer.js';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
6
6
  import '../content-transfer/icon.js';
7
7
  import './table-style.js';
8
- import '../types-CJWU1Gae.js';
8
+ import '../types-JnZD8wM0.js';
9
9
  import './grouping.js';
10
10
  import './fill.js';
11
11
  import './facets.js';
12
12
  import './spreadsheet.js';
13
13
  import './grid-selection.js';
14
14
  import './date-filter.js';
15
+ import './menu-targets.js';
15
16
 
16
17
  /**
17
18
  * Typed, declared-column capture for MatrxDataTable's built-in Alchemy source.