@ai-matrx/records-ui 0.84.0 → 0.84.4
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 +107 -0
- package/dist/index.cjs +353 -194
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -2
- package/dist/index.d.ts +10 -2
- package/dist/index.js +354 -194
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,112 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records-ui
|
|
2
2
|
|
|
3
|
+
## 0.84.4 (unpublished — needs @ai-matrx/records 0.57.1 published first)
|
|
4
|
+
|
|
5
|
+
**The guide re-walk's small wrong things, each fixed as a class.** (lane RECORDS-UI-FIX,
|
|
6
|
+
2026-09-23.)
|
|
7
|
+
|
|
8
|
+
* **Two records with one name are told apart in the linked-record picker.** Rincon's
|
|
9
|
+
Customers really holds two Patricia Marshes; the picker drew only the name, so the list
|
|
10
|
+
read as duplicates. New `tellApart(rows, nameOf)`: a colliding name carries the first of
|
|
11
|
+
its own columns that differs (an address), and search reads it too.
|
|
12
|
+
* **Charts no longer print their timing ("34.5 ms").** The number stays on the block as
|
|
13
|
+
`data-store-ms` for whoever measures dashboards.
|
|
14
|
+
* **The Bookings suggestion is English** ("a 30-minute appointment … put each one in Jobs",
|
|
15
|
+
never "a 30-minute appointments slot"). `bookingSuggestion` is exported.
|
|
16
|
+
* **Table Settings' Proposed box names no door by its code** and shows no baseless "0"; it
|
|
17
|
+
says proposals wait in the table's Inbox.
|
|
18
|
+
* **A record's history follows the writes on its page.** `HistoryPanel` re-reads on
|
|
19
|
+
`useRecordChangeRevision` (records 0.57.1). This was not the no-op-version class: the
|
|
20
|
+
store had the row, the panel never asked again.
|
|
21
|
+
* A refused value no longer lights the app's error pill — see records 0.57.1.
|
|
22
|
+
* Tests (red on 0.84.3): `two-customers-with-one-name-are-told-apart`,
|
|
23
|
+
`the-history-count-follows-the-writes`, `guide-rewalk-words`, and the reversed ms clause in
|
|
24
|
+
`demo/dashboard-canvas.test.tsx` (it had enshrined printing the timing).
|
|
25
|
+
|
|
26
|
+
**Also, in matrx-frontend (`features/sharing`):** the Share dialog's Access tab no longer
|
|
27
|
+
reads "Internal — readable inside the owning organization" over "Private — only you".
|
|
28
|
+
|
|
29
|
+
## 0.84.3 (unpublished — rides on top of 0.84.2)
|
|
30
|
+
|
|
31
|
+
**After an import writes, the wizard is a report — never the same import again — and every
|
|
32
|
+
line it names is the line in the person's file.** (lane RECORDS-UI-FIX, VERIFIER-16 H1 + M8,
|
|
33
|
+
VERIFIER-15 M5.)
|
|
34
|
+
|
|
35
|
+
* **No second write of the same file.** A run that landed rows used to leave the pre-write
|
|
36
|
+
notice ("…Nothing has been written yet", now false) and a live "Import N rows" beside the
|
|
37
|
+
result. Once a file has been offered to the store — finished, stopped part-way, or turned
|
|
38
|
+
away as already imported — every pre-write step (what each record is called, the mapping,
|
|
39
|
+
the options, the rule notice, the Import button) is replaced by one sentence saying the
|
|
40
|
+
file was sent, and the report of what landed and what was refused stays. Another run
|
|
41
|
+
means choosing a file again.
|
|
42
|
+
* **Line numbers are the file's.** The store and the rule check number rows from 1 under the
|
|
43
|
+
header; the file has its header on line 1. New export `lineInYourFile(dataRow)` is used on
|
|
44
|
+
the column's refusal, the run's refused rows and past runs' refused rows — the `-3` on
|
|
45
|
+
line 3 is called line 3.
|
|
46
|
+
* **Nothing sits past the rail.** The mapping is one block per column (name, where it goes,
|
|
47
|
+
what it is, what would be refused, first values) instead of a 52rem row in a 26rem rail.
|
|
48
|
+
* **No machine word.** A column the table already has is named from its Field
|
|
49
|
+
(`fieldTypeLabel`), so a number reads "Number", never "range"; an unknown token is written
|
|
50
|
+
out, never shown raw.
|
|
51
|
+
* **Whole sentences.** `refusalLineForAPerson` ends the store's sentence before the remedy
|
|
52
|
+
("…at least 0. Send this column…"). The report's "The 1 row that was refused is kept".
|
|
53
|
+
* Tests: new `src/the-import-after-a-write-is-a-report.test.tsx` (4, red on 0.84.1 bytes);
|
|
54
|
+
`import-asks-the-rules-first` now expects line 4 for the fourth line (it had enshrined the
|
|
55
|
+
off-by-one); `import-wizard` expects "is kept"; the F9 source guard now forbids a row wider
|
|
56
|
+
than the rail and keeps the 14rem "Goes to" floor.
|
|
57
|
+
|
|
58
|
+
**Consumer action:** none.
|
|
59
|
+
|
|
60
|
+
## 0.84.2 (unpublished — rides on top of 0.84.1)
|
|
61
|
+
|
|
62
|
+
**A booking link opens that booking page, and the table list's empty sections stop
|
|
63
|
+
describing a product that does not exist.** (lane HUB-FIX, VERIFIER-16 M4 + M6.)
|
|
64
|
+
|
|
65
|
+
* `BookingSlots` gains `activeBookingId`: the page a link named is marked (`data-linked`) and
|
|
66
|
+
scrolled to; a page the rail does not list says `BOOKING_NOT_HERE_LINE`, never a different
|
|
67
|
+
page. `TablePage` hands it `?item=` when `?rail=bookings`.
|
|
68
|
+
* `LANE_EMPTY.mine` said "New table makes one that only you can see" and
|
|
69
|
+
`LANE_EMPTY.organization` said "a table you make is yours until you change its visibility
|
|
70
|
+
to internal" — New table makes an internal table, and no screen here changes visibility.
|
|
71
|
+
Both now say what is true.
|
|
72
|
+
* New export `BOOKING_NOT_HERE_LINE`. Tests: `rail-deep-link.test.tsx` +1,
|
|
73
|
+
`visibility-lanes.test.tsx` +1.
|
|
74
|
+
|
|
75
|
+
**Consumer action (matrx-frontend):** the hub's Bookings row links
|
|
76
|
+
`/data-v2/<table>?rail=bookings&item=<form_id>` (it already can; the item is marked from
|
|
77
|
+
this version).
|
|
78
|
+
|
|
79
|
+
## 0.84.1 (unpublished — lands with the 2026-09-24 window)
|
|
80
|
+
|
|
81
|
+
**A blank the store can explain is never drawn as a dash.** (lane OLD-TABLES-4, VERIFIER-16.)
|
|
82
|
+
`renderValue` — the one value renderer for the grid, the peek and the forms — now says two
|
|
83
|
+
things a dash used to hide:
|
|
84
|
+
|
|
85
|
+
* **A relation whose record no longer exists** reads *"The record this pointed at no longer
|
|
86
|
+
exists"* (the id it held is in the tooltip). The move of an older table lands such a cell
|
|
87
|
+
empty and keeps the id on the record's provenance entry, `_sources.<ptr>.unresolved.<key>`;
|
|
88
|
+
`unresolvedFor(document, key)` is exported for any other reader of that fact.
|
|
89
|
+
* **A worked-out column with no formula in it yet** reads *"Worked out once its formula is in
|
|
90
|
+
place"* instead of an answer of nothing.
|
|
91
|
+
|
|
92
|
+
Consumer action: none.
|
|
93
|
+
|
|
94
|
+
**The field editor sets the three column settings the older grid carried.** (lane
|
|
95
|
+
STORE-RULE-GAPS.) Existing controls only, no new primitive:
|
|
96
|
+
|
|
97
|
+
* **A pattern's example** — a box beside a "Looks like" check (`rule.example`). A refused value
|
|
98
|
+
is told "Enter it like 949-555-0142.": `refusalForAPerson` reads the example from the store's
|
|
99
|
+
`detail.example` as data, so an example shaped like an identifier ("SKU-12") is never dropped
|
|
100
|
+
by the machine-identity filter.
|
|
101
|
+
* **A length's shortest** — the "Number of characters" check (was "No longer than") has a
|
|
102
|
+
*fewest* box beside its *most* (`rule.min`).
|
|
103
|
+
* **A choice list that takes other values** — one tick, "A value that is not one of the choices
|
|
104
|
+
is added to them" (`allow_other`), on select / multi-select columns only; unticking sends false.
|
|
105
|
+
|
|
106
|
+
Consumer action: none. Needs `@ai-matrx/records` with `FieldRule.example` / `.min` and
|
|
107
|
+
`allow_other` (aidream `290411764c`) and, for the store to honour them, matrx-frontend
|
|
108
|
+
`storerulegaps_an_example_a_shortest_length_and_other_choices.sql` on the database.
|
|
109
|
+
|
|
3
110
|
## 0.84.0
|
|
4
111
|
|
|
5
112
|
**A refusal is said once, with the doors that fit it, and a change a person made is kept or
|