@ai-matrx/records-ui 0.93.0 → 0.93.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 +29 -0
- package/dist/index.cjs +5542 -5285
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +35 -8
- package/dist/index.d.ts +35 -8
- package/dist/index.js +4819 -4562
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records-ui
|
|
2
2
|
|
|
3
|
+
## 0.93.3
|
|
4
|
+
### lane RENDER-AUDIT (2026-09-26): one cell edit redraws one row, and nothing above the table
|
|
5
|
+
|
|
6
|
+
- **`RecordsMount` keeps the host's identity while its parts are the same.** It spread the host into a new object on every render (`{ ...host }`) — the value of the context every screen of this package reads — so ANY render above the mount (a search parameter moving, the organization list arriving, a toast) re-rendered the table page, its view bar, the grid and every cell. Guard: `one-cell-edit-redraws-one-row.test.tsx` ("the host's route re-renders").
|
|
7
|
+
- **The grid hands the data table stable parts.** The cells read the editing session through one handle that never changes (they closed over a session object rebuilt on every keystroke, save and refusal, which rebuilt every column); `editing.rowSignature(rowId)` (new on `GridEditing`) tells the table which row changed, as `rowVersion`. The summary and "Add row" footer cells read the latest summaries through a ref instead of rebuilding every column; `getRowId`, the selection's `isRowSelectable`, the copy config, the table style and the row actions are held still, their handlers reaching the grid as it is now. `withAddRowCells` also takes a function that draws the line.
|
|
8
|
+
- **Proof (design-system memoised rows + the records client's row sharing):** `one-cell-edit-redraws-one-row.test.tsx` — on Cedar Ridge's Appointments table page, one cell edit renders the page chrome (a shell beside it, the page header, `TablePage`, `ViewBar`) zero times and redraws only the edited row (plus the row Tab carried the cursor to); a realtime notice about one record redraws that one row without re-reading the page; a host route render with an inline host redraws nothing below the mount. RED 5/5 on the pre-lane bytes, GREEN 5/5 after. `testkit/renderCensus.ts` is the counter (a minimal React DevTools hook).
|
|
9
|
+
|
|
10
|
+
## 0.93.2 (2026-09-26 — files from the app's own window; notes read formatted)
|
|
11
|
+
|
|
12
|
+
- **New host port `pickFiles({ multiple, accept? }) → file ids | null`.** An attachment cell opens
|
|
13
|
+
the host's own file window (the app binds its cloud-files picker; several files when the column
|
|
14
|
+
holds several) and writes what was picked beside what the cell holds in ONE versioned write — the
|
|
15
|
+
store's attachment door turns each file id into its kernel File record. A cancelled window writes
|
|
16
|
+
nothing. With only `upload` bound the editor offers the upload; with neither it says no file
|
|
17
|
+
store is bound (`NO_UPLOAD_REASON`), never a dead button. The editor is `AttachmentControl`
|
|
18
|
+
(`src/gridAttachments.tsx`), used by every surface's `FieldControl`.
|
|
19
|
+
- **A file chip names its file and opens it.** An attachment value reads as the File record's own
|
|
20
|
+
name, linked through `hrefForFile` to the file behind it (`AttachmentChips`); unbound, plain words
|
|
21
|
+
that say the file cannot be opened here.
|
|
22
|
+
- **`renderText` gains slot `"cell"`.** In the merged grid a long-text cell reads through the
|
|
23
|
+
host's renderer (markdown, formatted, clipped to the row); the whole-text dialog gains a Preview
|
|
24
|
+
through the same slot. Unbound, or on the classic grid, the words as typed.
|
|
25
|
+
|
|
26
|
+
## 0.93.1 (2026-09-26 — choice counts match the store's words)
|
|
27
|
+
|
|
28
|
+
- The live store groups a choice column by the option's WORD ("In Progress"), so 0.93.0 printed
|
|
29
|
+
"(0)" beside every option on the Camarillo service board. A count now matches the option by its
|
|
30
|
+
word, id or key, each once.
|
|
31
|
+
|
|
3
32
|
## 0.93.0 (2026-09-26 — merged-grid tails before review 2)
|
|
4
33
|
|
|
5
34
|
- **An empty screen says why it is empty — one resolver for every layout** (`src/emptyState.tsx`).
|