@ai-matrx/records-ui 0.85.18 → 0.86.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 +63 -5
- package/dist/index.cjs +4805 -4460
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +329 -212
- package/dist/index.d.ts +329 -212
- package/dist/index.js +3396 -3051
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,70 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records-ui
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.86.0 (2026-09-25 — version and notes set by PUBLISHER-5; needs @ai-matrx/design-system 0.40.0)
|
|
4
|
+
|
|
5
|
+
- **A text kept as a file is edited WHOLE (lane BIG-VALUES-WRITE, owner 2026-09-25: "Make sure that
|
|
6
|
+
large data size is easy for users").** A text of any size now simply saves — the store keeps the
|
|
7
|
+
first 1000 characters in the cell and the whole text as a file, behind the scenes. So the grid's
|
|
8
|
+
cell editor (`useGridEditing.begin`, and tabbing into such a cell) reads the WHOLE text through the
|
|
9
|
+
host's `readFileText` and opens on it; saving writes the whole edited text (the store files it as
|
|
10
|
+
the next version) and a conflict is judged against what the store holds. The record form's box is
|
|
11
|
+
the new `WholeValueEditor` (the whole text in a 12-row box, spanning the form). A host that cannot
|
|
12
|
+
read files opens NO editor on such a cell — the cell keeps its words and "Open the whole text" —
|
|
13
|
+
because an editor holding the first 1000 characters would, on save, cut the value to its start.
|
|
14
|
+
New in `WholeValue.tsx` (package-internal): `WholeValueEditor`, `useWholeText`, `wholeValueOpening`,
|
|
15
|
+
`WHOLE_VALUE_NOT_EDITABLE_HERE`. **Consumer action:** bind `readFileText` (matrx-frontend's
|
|
16
|
+
`RECORDS_FILES` already does) or file-backed cells are read-only in place.
|
|
17
|
+
|
|
18
|
+
- **Three rows above the data (lane TABLE-PAGE-CHROME, owner 2026-09-25: "six distinct rows sit
|
|
19
|
+
above the actual data … consolidate").** `TablePage` draws ONE toolbar row: the view picker (one
|
|
20
|
+
chip — the view's name — opening the list, New view and the view's own settings), the layout
|
|
21
|
+
chooser, the view's filter and your look (Save to view / Save as new view / Reset to view as
|
|
22
|
+
compact controls, the sentence as their title), then a SLOT where the showing layout puts its own
|
|
23
|
+
controls: the Grid draws its data-table toolbar (search, columns, sort) INTO the row
|
|
24
|
+
(design-system `toolbar.portalInto` + `singleRow`), a board its "Group by" / "Dates from"
|
|
25
|
+
(`InTableToolbar`), and a host layout is handed the slot as `render({ toolbarSlot })`. Nothing
|
|
26
|
+
wraps; on a phone the row scrolls sideways. The look bar's own row and the saved-view tabs row are
|
|
27
|
+
gone. Exported: `InTableToolbar`, `TableToolbarSlotContext`, `useTableToolbarSlot`.
|
|
28
|
+
- **`TablePage.header(chrome)`** replaces `leading`: the host is handed `{ actions, tableName }` —
|
|
29
|
+
Share and the table's one menu — and draws them in ITS page header (the app's back button and
|
|
30
|
+
title switcher beside them). Without `header` they end the toolbar row. The menu no longer
|
|
31
|
+
carries a second list of views or the "Saved views" toggle; views live in the one picker.
|
|
32
|
+
`actions` is a fragment of two siblings (Share, the menu) so a host's header can fold them one by
|
|
33
|
+
one; on a phone Share is an item of the menu ("Share…") and the header keeps back, the title and
|
|
34
|
+
ONE menu. **Consumer action:** a host that passed `leading` passes nothing (the organization belongs to the
|
|
35
|
+
host's header); a host with a page header passes `header`. `TablePageHeaderChrome` is exported.
|
|
36
|
+
- **The hand-order sentence is toolbar state.** "Sort: Manual · set by hand" / "Sorted by X ↑ ·
|
|
37
|
+
hand-set order set aside Back to manual Use this sort instead" was a sentence row; it is now
|
|
38
|
+
`SortStateControl` — a sort icon, the order in a word, a badge while a column sort sets the hand
|
|
39
|
+
order aside, and a popover that says the state in one line with Back to manual / Use this sort.
|
|
40
|
+
`handOrderSortState`, `handOrderLine` and `MANUAL_SORT` are exported so a host's Sheet draws the
|
|
41
|
+
same control.
|
|
42
|
+
- **Where the footer sits is a view setting** (`presentation.footer`: `sticky` | `inline`, store key
|
|
43
|
+
declared by `custom.view_keys()` on production 2026-09-26 02:4xZ). Default `sticky` (the older
|
|
44
|
+
grid's pinned counts and pages): the records fill the page's height and the layout scrolls inside;
|
|
45
|
+
`inline`: the region scrolls and the footer follows the last row. Chosen in the view picker's
|
|
46
|
+
"Footer" setting, kept as the person's look until Save to view. `Grid.footer`,
|
|
47
|
+
`ViewSwitcher.footer`, host layouts get `render({ footer })`. Exported: `footerOf`,
|
|
48
|
+
`DEFAULT_FOOTER`, `FooterPlacement`, `FOOTER_WORDS`. **Consumer action:** mount `TablePage` in a
|
|
49
|
+
height-bounded body (`h-full overflow-hidden`) so the sticky footer has a height to fill.
|
|
50
|
+
- **A chip's words are drawn in their own surface's foreground.** The view tab's "default" was
|
|
51
|
+
`text-muted-foreground` on the pressed `bg-secondary` tab (black on dark purple in light mode); the
|
|
52
|
+
picker is the `subtle` surface and its Default tag the `neutral` Badge. Census, same class, fixed:
|
|
53
|
+
`EntityReferenceControl` and `EntityReferenceKindPicker` (× on a secondary Badge) and `DocTemplate`
|
|
54
|
+
(version on a secondary tab) now inherit the surface's colour. Guard `crossedPairs` in
|
|
55
|
+
`the-table-page-is-three-rows.test.tsx`.
|
|
56
|
+
- On a table page the Grid's "Not live" is a word in the toolbar row (the reason on hover), not a
|
|
57
|
+
line under it; the inline footer region is a plain scrolling block so the layout is as tall as
|
|
58
|
+
its rows. Walk: `demo/table-chrome-walk.mjs` (harness on the dev clone, source bytes) GREEN 14/14 —
|
|
59
|
+
three rows above the first data row at 1600, the sort popover, the footer sticky → inline → reset,
|
|
60
|
+
no crossed chip foreground light or dark, one toolbar line at 390.
|
|
61
|
+
- Suite `the-table-page-is-three-rows.test.tsx` RED 8/9 on the prior bytes → GREEN 9/9; the hand-order,
|
|
62
|
+
saved-view and designation suites were moved to the new contract.
|
|
4
63
|
|
|
5
|
-
|
|
6
|
-
`git diff npm/records-ui/v0.85.17..npm/records-ui/v0.85.18 -- apps/shared/records-ui`).
|
|
7
|
-
No source changes intended and no consumer action required.
|
|
64
|
+
## 0.85.18
|
|
8
65
|
|
|
9
|
-
|
|
66
|
+
The auto release stubbed this version as a docs-only republish; it carried V24-TAILS's source
|
|
67
|
+
change below (notes placed under it by PUBLISHER-5, 2026-09-25).
|
|
10
68
|
|
|
11
69
|
- `TablePage` takes `onShownViewChange(shown: ShownViewReport)` (lane V24-TAILS, VERIFIER-24 item 6):
|
|
12
70
|
the view exactly as the page draws it — saved view, the person's look laid over it, the address's
|