@ai-matrx/design-system 0.25.0 → 0.26.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 +76 -0
- package/dist/data-table/copy-helpers.d.cts +2 -1
- package/dist/data-table/copy-helpers.d.ts +2 -1
- package/dist/data-table/data-row-inspector.cjs.map +1 -1
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs.map +1 -1
- package/dist/data-table/data-row-window.js.map +1 -1
- package/dist/data-table/facets.cjs +118 -0
- package/dist/data-table/facets.cjs.map +1 -0
- package/dist/data-table/facets.d.cts +100 -0
- package/dist/data-table/facets.d.ts +100 -0
- package/dist/data-table/facets.js +98 -0
- package/dist/data-table/facets.js.map +1 -0
- package/dist/data-table/filter-engine.d.cts +2 -1
- package/dist/data-table/filter-engine.d.ts +2 -1
- package/dist/data-table/host.cjs.map +1 -1
- package/dist/data-table/host.d.cts +13 -3
- package/dist/data-table/host.d.ts +13 -3
- package/dist/data-table/host.js.map +1 -1
- package/dist/data-table/index.cjs +680 -145
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +4 -2
- package/dist/data-table/index.d.ts +4 -2
- package/dist/data-table/index.js +718 -182
- package/dist/data-table/index.js.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/layered-filters.d.cts +2 -1
- package/dist/data-table/layered-filters.d.ts +2 -1
- package/dist/data-table/menu-targets.cjs +77 -0
- package/dist/data-table/menu-targets.cjs.map +1 -0
- package/dist/data-table/menu-targets.d.cts +108 -0
- package/dist/data-table/menu-targets.d.ts +108 -0
- package/dist/data-table/menu-targets.js +57 -0
- package/dist/data-table/menu-targets.js.map +1 -0
- package/dist/data-table/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js.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/spreadsheet.cjs +61 -13
- package/dist/data-table/spreadsheet.cjs.map +1 -1
- package/dist/data-table/spreadsheet.d.cts +36 -1
- package/dist/data-table/spreadsheet.d.ts +36 -1
- package/dist/data-table/spreadsheet.js +61 -13
- package/dist/data-table/spreadsheet.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/uuid-cell.cjs.map +1 -1
- package/dist/data-table/uuid-cell.js.map +1 -1
- package/dist/data-table/xlsx.d.cts +2 -1
- package/dist/data-table/xlsx.d.ts +2 -1
- package/dist/{types-nlLCMiqd.d.ts → types-Cu5_eUG1.d.ts} +115 -3
- package/dist/{types-CmQrOz-T.d.cts → types-DrJXAAoD.d.cts} +115 -3
- package/package.json +21 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.26.0 — 2026-09-20
|
|
4
|
+
|
|
5
|
+
**The four things a re-point of the owner's `/data` grid would have lost, now
|
|
6
|
+
first-class in the shared table.**
|
|
7
|
+
|
|
8
|
+
A capability-by-capability walk of that route against this package found four
|
|
9
|
+
gaps. Each is built here, in the shared layer, so every table in the product
|
|
10
|
+
gets it — not one route.
|
|
11
|
+
|
|
12
|
+
- **THE FOUR RIGHT-CLICK LEVELS.** The package exposed exactly ONE context
|
|
13
|
+
descriptor — the row — so a surface wanting a cell, a column or a selection
|
|
14
|
+
menu had to fork the table. It now answers all four. `menu-targets.ts` reads
|
|
15
|
+
which level the pointer was aimed at off the anchors the table renders
|
|
16
|
+
(`data-matrx-header-column-id` is new on every header; body cells already
|
|
17
|
+
carried `data-matrx-table-column-id`), with the precedence a spreadsheet
|
|
18
|
+
person expects: a click inside an extended range is the RANGE, never the one
|
|
19
|
+
cell under it — except a range of one cell, which is a cell.
|
|
20
|
+
`MatrxDataTableContextMenuConfig` gained `resolveCellContext`,
|
|
21
|
+
`resolveColumnContext`, `resolveSelectionContext` and `resolveTableContext`;
|
|
22
|
+
the host's `createDefaultRowContext` became `createDefaultMenuContext`, which
|
|
23
|
+
takes one payload carrying the level and what it is acting on. The package
|
|
24
|
+
still never interprets a menu — that stays the application's.
|
|
25
|
+
- **ENTER TO EDIT, AND TYPE TO REPLACE.** `classifyGridKey` had classified
|
|
26
|
+
`edit` and `editSeeded` since the gestures landed and nothing consumed them.
|
|
27
|
+
`useSpreadsheetGrid` now asks its consumer through `onEditRequest(address,
|
|
28
|
+
seed)` and consumes the keystroke only when an editor actually opened — so a
|
|
29
|
+
read-only column types nothing instead of swallowing the character.
|
|
30
|
+
`MatrxDataTable` performs it through the SAME `editRequest` door the row
|
|
31
|
+
menu's "Edit row" already used, and a seeded editor opens holding the typed
|
|
32
|
+
character rather than the old value.
|
|
33
|
+
- **FILTER VALUE COUNTS.** A "Contains…" box asks the reader to already know
|
|
34
|
+
what is in the column. `facets.ts` counts the real values, blanks included as
|
|
35
|
+
a countable option, and `MatrxDataTableFacetsConfig` decides where the counts
|
|
36
|
+
come from: the browser when it holds every row the counts describe, the
|
|
37
|
+
consumer's `source` when it does not — and when neither can answer for the
|
|
38
|
+
whole table, the popover SAYS the counts cover only the loaded rows. A
|
|
39
|
+
complete answer says nothing at all. Counting happens when someone opens a
|
|
40
|
+
popover, never on first paint.
|
|
41
|
+
- **VALIDATION REFUSALS, IN THE CELL, IN WORDS.** `data-table/validation` was a
|
|
42
|
+
published module the table never called. `edit.validate` now judges a value
|
|
43
|
+
before it enters the draft and a returned sentence is a refusal: the editor
|
|
44
|
+
stays open holding what the person typed and the sentence renders under the
|
|
45
|
+
cell in amber, clearing the moment they change the value. The same judgement
|
|
46
|
+
screens paste, fill and clear through `spreadsheet.validateCell` — a rule a
|
|
47
|
+
paste can walk around is not a rule.
|
|
48
|
+
|
|
49
|
+
**Two defects only a real browser could find**, both in the seam between the
|
|
50
|
+
cell cursor and the editor, both green in jsdom:
|
|
51
|
+
|
|
52
|
+
- **A click selected the cell and then every keystroke went to the document
|
|
53
|
+
body.** `preventDefault` on a mousedown also prevents focus, so the grid
|
|
54
|
+
container never got it — and Enter, a typed character, an arrow and Cmd-Z all
|
|
55
|
+
landed on nothing. A jsdom test dispatches the keydown ON the container by
|
|
56
|
+
hand and can never see it. The cell cursor now focuses the grid.
|
|
57
|
+
- **A click on a string-editable cell dropped straight into a text box**, which
|
|
58
|
+
is THE CLICK LAW broken at the one place the two paths meet: the same click
|
|
59
|
+
starts a range, and an editor opening under the pointer eats the drag and the
|
|
60
|
+
next keystroke. With spreadsheet gestures on, the editor opens the way it does
|
|
61
|
+
in Excel — Enter, F2, the hover pencil, or typing — and an explicit
|
|
62
|
+
`editTrigger: "click"` does not override it.
|
|
63
|
+
|
|
64
|
+
New entry points: `/data-table/facets` and `/data-table/menu-targets`, both
|
|
65
|
+
pure. Suite: 101 files / 1,073 passed. Red twin
|
|
66
|
+
`MatrxDataTable.four-levels.red.tsx`: 13/13 fail. Three absence-asserting
|
|
67
|
+
clauses and one rendering clause are deliberately not twinned, and the red file
|
|
68
|
+
says which and why. Browser proof on a production build, 1440x900 headless
|
|
69
|
+
Chromium, zero console errors: right-click answered `cell · Amount`,
|
|
70
|
+
`column · Status`, `row · Row` and `selection · 16 cells`; Enter opened the cell
|
|
71
|
+
on `Ada` and typing `Z` opened it on `Z`, committing `Zara`; the Status filter
|
|
72
|
+
listed five values at 400 each and filtering to Done left only Done on screen;
|
|
73
|
+
a 500-row table declaring 84,312 said *"These counts cover the 500 rows loaded
|
|
74
|
+
here, not the whole table."* and a complete answer said nothing; a blank Owner
|
|
75
|
+
was refused in the cell with *"Owner cannot be empty. Every job needs someone on
|
|
76
|
+
it."* while the editor stayed open, and the same rule refused a paste
|
|
77
|
+
(`Pasted 0 cells.`) that never touches an editor.
|
|
78
|
+
|
|
3
79
|
## 0.25.0 — 2026-09-20
|
|
4
80
|
|
|
5
81
|
**Five defects a real browser found that jsdom could not, and the table's own
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentPayloadInput } from './copy-types.cjs';
|
|
2
|
-
import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-
|
|
2
|
+
import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-DrJXAAoD.cjs';
|
|
3
3
|
import '../content-transfer.cjs';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -7,6 +7,7 @@ import '../content-transfer/icon.cjs';
|
|
|
7
7
|
import '../types-CJWU1Gae.cjs';
|
|
8
8
|
import './grouping.cjs';
|
|
9
9
|
import './fill.cjs';
|
|
10
|
+
import './facets.cjs';
|
|
10
11
|
import './spreadsheet.cjs';
|
|
11
12
|
import './grid-selection.cjs';
|
|
12
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentPayloadInput } from './copy-types.js';
|
|
2
|
-
import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-
|
|
2
|
+
import { g as MatrxDataTableCopyConfig, M as MatrxColumnDef } from '../types-Cu5_eUG1.js';
|
|
3
3
|
import '../content-transfer.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -7,6 +7,7 @@ import '../content-transfer/icon.js';
|
|
|
7
7
|
import '../types-CJWU1Gae.js';
|
|
8
8
|
import './grouping.js';
|
|
9
9
|
import './fill.js';
|
|
10
|
+
import './facets.js';
|
|
10
11
|
import './spreadsheet.js';
|
|
11
12
|
import './grid-selection.js';
|
|
12
13
|
|