@ai-matrx/records-ui 0.79.0 → 0.82.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 +96 -0
- package/dist/index.cjs +1097 -482
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +140 -11
- package/dist/index.d.ts +140 -11
- package/dist/index.js +1184 -569
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,101 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records-ui
|
|
2
2
|
|
|
3
|
+
## 0.82.0
|
|
4
|
+
|
|
5
|
+
**A link can open a table's Forms, Notifications, Portals or Share — and the thing inside
|
|
6
|
+
it.** (lane HUB-FIX, VERIFIER-14 item 2.)
|
|
7
|
+
|
|
8
|
+
The organization hub lists every form, digest, portal and outside share an organization has,
|
|
9
|
+
and every one of those rows opened the table's GRID: `TablePage` could be addressed down to
|
|
10
|
+
its layout (`?view=`) and no further, because its rails were component state with no prop
|
|
11
|
+
and no spelling in the address. A person clicking "Spring drain-cleaning intake" on the hub
|
|
12
|
+
landed on four hundred jobs and had to find the Forms button, then the form.
|
|
13
|
+
|
|
14
|
+
* `TablePage` takes `activeRail` (the raw `?rail=` word: `forms`, `bookings`, `checklists`,
|
|
15
|
+
`notifications`/`digests`, `portals`, `settings`, `import`, `inbox`, `share`) and
|
|
16
|
+
`activeItemId` (the thing inside it). A later link moves the page, like `?view=`. A record
|
|
17
|
+
still outranks a rail. `share` opens the share dialog over the page.
|
|
18
|
+
* The rail opens ON the item: `FormsPanel` gains `activeFormId` (marked, scrolled to, and its
|
|
19
|
+
builder open for somebody who may build); `PortalsPanel` gains `activePortalId` (its card
|
|
20
|
+
open); `SubscriptionsPanel` gains `activeRuleId` (marked and scrolled to); `ShareControl`
|
|
21
|
+
gains `initiallyOpen`.
|
|
22
|
+
* NOTHING IS SILENT. A rail word this page has no rail for says `unknownRailLine`; an item a
|
|
23
|
+
rail does not hold says `FORM_NOT_HERE_LINE` / `PORTAL_NOT_HERE_LINE` /
|
|
24
|
+
`RULE_NOT_HERE_LINE` — never the first row in its place; a share link for somebody who may
|
|
25
|
+
not share says `SHARE_NOT_YOURS_LINE` (or the no-port reason) instead of landing on a grid.
|
|
26
|
+
* New exports: `railFromParam`, `unknownRailLine`, `SHARE_NOT_YOURS_LINE`, `LinkRail`,
|
|
27
|
+
`FORM_NOT_HERE_LINE`, `PORTAL_NOT_HERE_LINE`, `RULE_NOT_HERE_LINE`. `openingRail` takes an
|
|
28
|
+
optional second argument; its one-argument meaning is unchanged.
|
|
29
|
+
* Test: `src/rail-deep-link.test.tsx` (7 cases).
|
|
30
|
+
|
|
31
|
+
**Consumer action (matrx-frontend):** in `app/(core)/data-v2/[tableId]/page.tsx` read
|
|
32
|
+
`searchParams.get("rail")` and `searchParams.get("item")` and pass them as `activeRail` /
|
|
33
|
+
`activeItemId`; in `features/unified-data/hub/capabilities.ts` point the Forms, Digests,
|
|
34
|
+
Portals and Shared-outside rows at `/data-v2/<table>?rail=forms&item=<form_id>`,
|
|
35
|
+
`?rail=notifications&item=<rule_id>`, `?rail=portals&item=<portal_id>` and `?rail=share`.
|
|
36
|
+
|
|
37
|
+
## 0.81.0
|
|
38
|
+
|
|
39
|
+
**The relation picker stops cutting a customer's name in half, and a grid mount stops
|
|
40
|
+
screaming at the console.** (lane FIX-14, from FIX-13's "named, not fixed" list.)
|
|
41
|
+
|
|
42
|
+
**1. `Create “Marisol Okonkwo — 418 Calle Pu`.** The picker pasted a per-surface `w-64`
|
|
43
|
+
over the design system's popover, and the Create offer had no truncation of its own, so the
|
|
44
|
+
one control that exists to show the name you are about to create cut it mid-word. Fixed
|
|
45
|
+
where it belongs: `@ai-matrx/design-system` 0.35.0 gained `sizing="content"` and decides
|
|
46
|
+
the width; this package sets no width at all. The offer and every candidate row truncate
|
|
47
|
+
with a real ellipsis and carry the whole name as a `title`, and `RecordChip` does the same
|
|
48
|
+
everywhere it is drawn. Measured headlessly against the live store: 408px showing the whole
|
|
49
|
+
name at 1600×1000, 343px with a real `text-overflow: ellipsis` at 375 wide, inside the
|
|
50
|
+
viewport both times, 0 page errors.
|
|
51
|
+
|
|
52
|
+
**2. `custom.enrich_cells … does not exist` on every grid mount.** The DOOR was never
|
|
53
|
+
missing — `custom.enrich_cells(uuid, uuid, text[], uuid[])` is live, granted to
|
|
54
|
+
`authenticated`, and answers 320 rows for a real organization from the seat. `demo/branch-server.ts`
|
|
55
|
+
formatted every non-scalar argument as `'<json>'::jsonb`, because `typeof [] === "object"`,
|
|
56
|
+
so no door with a Postgres array parameter could ever be matched; that 42883 was recorded
|
|
57
|
+
into `demo/fixtures/doors.json` and replayed on every mount. The seam now asks `pg_proc`
|
|
58
|
+
what each parameter is declared as and formats by that — the class, not the instance — and
|
|
59
|
+
an array whose type it cannot read is named loudly instead of quietly re-sent as jsonb.
|
|
60
|
+
|
|
61
|
+
* New guard `demo/a-grid-mount-logs-no-console-error.test.tsx`: mounts `Grid` against the
|
|
62
|
+
LIVE store and fails on ANY `console.error`, with one named exclusion (React's jsdom-only
|
|
63
|
+
`act()` warning). RED on the pre-fix bytes with exactly the 42883 above, GREEN on these.
|
|
64
|
+
* The demo harness seeds a PLAIN relation column ("Related proposal", a self-relation on
|
|
65
|
+
Northbay Commercial Solar's proposals table) — until now every relation it seeded carried
|
|
66
|
+
`parity: "member"` and routed to `PersonPicker`, so `RelationPicker` had no browser
|
|
67
|
+
surface at all and its only coverage was jsdom, which has no geometry.
|
|
68
|
+
|
|
69
|
+
Suite: 51 files / 319 tests green, `tsc --noEmit` clean.
|
|
70
|
+
|
|
71
|
+
## 0.80.0
|
|
72
|
+
|
|
73
|
+
**An import's report outlives the run, and its refusals outlive the panel.** (lane FIX-12,
|
|
74
|
+
finding F2 from VERIFIER-12; published by PUBLISH-SWEEP-2, aidream `675cc61fe8`.)
|
|
75
|
+
|
|
76
|
+
VERIFIER-12 watched a 40-row file land 28 rows and refuse 12 against the live store and saw
|
|
77
|
+
NOTHING on screen: no summary, no refusal list, and afterwards nothing on any of that
|
|
78
|
+
table's screens naming the twelve rows. The store had been right the whole time — the
|
|
79
|
+
ledger said seen 40 / written 28 / refusals 12, and every refused row was kept with a
|
|
80
|
+
sentence a person understands. The report was not the defect. `importFinish` called
|
|
81
|
+
`onDone`, every host wires `onDone` to close the rail, and a run that fits in ONE call
|
|
82
|
+
finishes between two paints — so the report was destroyed in the tick it became true. A long
|
|
83
|
+
file only looked better because there was time to read the progress.
|
|
84
|
+
|
|
85
|
+
* The wizard tells the host `onWrote` when rows land; `onDone` is now the person pressing
|
|
86
|
+
**Done** on the report, and nothing else closes the panel.
|
|
87
|
+
* The report says where the refused rows now live.
|
|
88
|
+
* **"Imports into this table"** — every run this table has had, newest first, off
|
|
89
|
+
`custom.io_imports`; a run with refusals opens them off `custom.io_import_report`, with
|
|
90
|
+
the store's own reason and the line of the file. Both doors have existed since lane
|
|
91
|
+
IMPORT; no screen had ever asked.
|
|
92
|
+
* Guard: two clauses in `src/import-wizard.test.tsx`, mounted the way a HOST mounts the
|
|
93
|
+
wizard (closing on `onDone`). RED on the old bytes ("expected 'the import is closed' not
|
|
94
|
+
to contain 'the import is closed'"; the past run never on screen), GREEN on these.
|
|
95
|
+
|
|
96
|
+
Built against `@ai-matrx/records@0.54.0`. Suite at publish: 317/317 across 50 files,
|
|
97
|
+
including `demo/live-smoke.test.tsx`, this package's blocking live publish gate.
|
|
98
|
+
|
|
3
99
|
## 0.79.0
|
|
4
100
|
|
|
5
101
|
**A joined column says what joins it.** (lane STORE-TAILS-2, VERIFIER-11 finding F5.)
|