@ai-matrx/records-ui 0.102.15 → 0.102.17
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 +12 -0
- package/dist/index.cjs +601 -515
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -9
- package/dist/index.d.ts +18 -9
- package/dist/index.js +458 -372
- package/dist/index.js.map +1 -1
- package/dist/pickers.cjs +57 -30
- package/dist/pickers.cjs.map +1 -1
- package/dist/pickers.js +57 -30
- package/dist/pickers.js.map +1 -1
- package/dist/table-shape.cjs +2 -32
- package/dist/table-shape.cjs.map +1 -1
- package/dist/table-shape.d.cts +1 -1
- package/dist/table-shape.d.ts +1 -1
- package/dist/table-shape.js +2 -32
- package/dist/table-shape.js.map +1 -1
- package/package.json +4 -3
package/dist/index.d.cts
CHANGED
|
@@ -1369,6 +1369,8 @@ interface PersonPickerProps {
|
|
|
1369
1369
|
autoOpen?: boolean | undefined;
|
|
1370
1370
|
/** The list closed: the cell commits who is picked. */
|
|
1371
1371
|
onClose?: (() => void) | undefined;
|
|
1372
|
+
/** Escape in a grid cell's list: the cell's cancel — nothing is written (`PickOrAdd.onEscape`). */
|
|
1373
|
+
onCancel?: (() => void) | undefined;
|
|
1372
1374
|
/** What was typed to open a grid cell's list: its first search (`FieldEditorControlProps.initialSearch`). */
|
|
1373
1375
|
initialSearch?: string | undefined;
|
|
1374
1376
|
}
|
|
@@ -1392,7 +1394,7 @@ declare function personRecordForMember(client: RecordsClient, personTableId: Uui
|
|
|
1392
1394
|
ok: false;
|
|
1393
1395
|
error: RecordsError;
|
|
1394
1396
|
}>;
|
|
1395
|
-
declare function PersonPicker({ field, value, onChange, disabled, id, className, autoOpen, onClose, initialSearch }: PersonPickerProps): react.JSX.Element;
|
|
1397
|
+
declare function PersonPicker({ field, value, onChange, disabled, id, className, autoOpen, onClose, onCancel, initialSearch }: PersonPickerProps): react.JSX.Element;
|
|
1396
1398
|
|
|
1397
1399
|
interface RecordVersions {
|
|
1398
1400
|
/** The version the person saw this record at; waits for the read of freshly drawn rows. `null` = unread. */
|
|
@@ -3178,8 +3180,10 @@ interface RelationPickerProps {
|
|
|
3178
3180
|
autoOpen?: boolean | undefined;
|
|
3179
3181
|
/** The list closed: the cell commits what is picked. */
|
|
3180
3182
|
onClose?: (() => void) | undefined;
|
|
3183
|
+
/** Escape in a grid cell's list: the cell's cancel — nothing is written (`PickOrAdd.onEscape`). */
|
|
3184
|
+
onCancel?: (() => void) | undefined;
|
|
3181
3185
|
}
|
|
3182
|
-
declare function RelationPicker({ field, value, onChange, disabled, id, className, allowCreate, onPicked, autoOpen, onClose }: RelationPickerProps): react.JSX.Element;
|
|
3186
|
+
declare function RelationPicker({ field, value, onChange, disabled, id, className, allowCreate, onPicked, autoOpen, onClose, onCancel }: RelationPickerProps): react.JSX.Element;
|
|
3183
3187
|
|
|
3184
3188
|
interface PickOrAddItem {
|
|
3185
3189
|
id: string;
|
|
@@ -3244,6 +3248,13 @@ interface PickOrAddProps {
|
|
|
3244
3248
|
* new choice word + Enter did nothing, while Tab then Enter added it). Absent: the add line.
|
|
3245
3249
|
*/
|
|
3246
3250
|
onEnterWithNoMatch?: (() => void) | undefined;
|
|
3251
|
+
/**
|
|
3252
|
+
* ESCAPE PUTS EVERYTHING BACK (REVIEW-FIX 2, 2026-10-06). In a grid cell closing the list is the
|
|
3253
|
+
* cell's commit, so Escape — which only closed it — wrote whatever the list held, a choice taken
|
|
3254
|
+
* off by Backspace included. When given, Escape (from the search box or Radix's own dismiss) calls
|
|
3255
|
+
* this INSTEAD of closing: the cell's cancel, which writes nothing and shows what it held.
|
|
3256
|
+
*/
|
|
3257
|
+
onEscape?: (() => void) | undefined;
|
|
3247
3258
|
/**
|
|
3248
3259
|
* IN A GRID CELL (lane CELL-EDITORS, 2026-10-06). No trigger button is drawn: the list hangs from
|
|
3249
3260
|
* `children` — what the cell already shows — the way Airtable's and the old Sheet's lists hang from
|
|
@@ -3259,13 +3270,8 @@ interface PickOrAddProps {
|
|
|
3259
3270
|
* arrows chose a row — finishes (the old Sheet's B2-04: Enter used to toggle the first row forever).
|
|
3260
3271
|
*/
|
|
3261
3272
|
multi?: boolean | undefined;
|
|
3262
|
-
/**
|
|
3263
|
-
* THE ADD ROW LEADS THE LIST (nothing typed matches, Notion's "Create …"): it is highlighted first,
|
|
3264
|
-
* so one Enter makes it; the existing items stay listed under it.
|
|
3265
|
-
*/
|
|
3266
|
-
addFirst?: boolean | undefined;
|
|
3267
3273
|
}
|
|
3268
|
-
declare function PickOrAdd({ triggerLabel, triggerText, triggerId, open, onOpenChange, search, onSearch, items, onPick, notice, empty, add, foot, footNote, onEnterWithNoMatch, anchored, children, chips, multi,
|
|
3274
|
+
declare function PickOrAdd({ triggerLabel, triggerText, triggerId, open, onOpenChange, search, onSearch, items, onPick, notice, empty, add, foot, footNote, onEnterWithNoMatch, anchored, children, chips, multi, onEscape, }: PickOrAddProps): react.JSX.Element;
|
|
3269
3275
|
|
|
3270
3276
|
/** What the panel says while the chosen list is empty. */
|
|
3271
3277
|
declare const ENTITY_REFERENCE_KINDS_MISSING = "Choose at least one kind of thing this column points at.";
|
|
@@ -3354,7 +3360,7 @@ interface FieldEditorControlProps {
|
|
|
3354
3360
|
* grows the row. Honoured by the choice and person pickers; every other control ignores it.
|
|
3355
3361
|
*/
|
|
3356
3362
|
autoOpen?: boolean | undefined;
|
|
3357
|
-
/** The picker's list closed (a pick,
|
|
3363
|
+
/** The picker's list closed (a pick, Enter, Tab, a click away): the cell commits what is chosen. Escape is `onCancel`. */
|
|
3358
3364
|
onClose?: (() => void) | undefined;
|
|
3359
3365
|
/**
|
|
3360
3366
|
* WHAT THE PERSON TYPED TO OPEN A GRID CELL'S PICKER (merged-grid review 2, A2 — Airtable): a
|
|
@@ -3861,7 +3867,10 @@ declare function readLooks(client: Pick<RecordsClient, "viewLookRead">, tableId:
|
|
|
3861
3867
|
declare function keepLook(client: Pick<RecordsClient, "viewLookSet">, tableId: Uuid$1, viewId: Uuid$1, look: ViewLook | null): Promise<RecordsResult<Record<string, unknown> | null>>;
|
|
3862
3868
|
/** The words of the look bar. One sentence, then the doors. */
|
|
3863
3869
|
declare const LOOK_WORDS: {
|
|
3870
|
+
/** The reason, for a tooltip or a screen reader — never a line on the page (interface-text). */
|
|
3864
3871
|
readonly yours: "You changed how this view looks. Only you see it.";
|
|
3872
|
+
/** The visible label for the same fact. */
|
|
3873
|
+
readonly yoursLabel: "Only you see this";
|
|
3865
3874
|
readonly saveToView: "Save to view";
|
|
3866
3875
|
readonly saveAsNew: "Save as new view";
|
|
3867
3876
|
readonly reset: "Reset to view";
|
package/dist/index.d.ts
CHANGED
|
@@ -1369,6 +1369,8 @@ interface PersonPickerProps {
|
|
|
1369
1369
|
autoOpen?: boolean | undefined;
|
|
1370
1370
|
/** The list closed: the cell commits who is picked. */
|
|
1371
1371
|
onClose?: (() => void) | undefined;
|
|
1372
|
+
/** Escape in a grid cell's list: the cell's cancel — nothing is written (`PickOrAdd.onEscape`). */
|
|
1373
|
+
onCancel?: (() => void) | undefined;
|
|
1372
1374
|
/** What was typed to open a grid cell's list: its first search (`FieldEditorControlProps.initialSearch`). */
|
|
1373
1375
|
initialSearch?: string | undefined;
|
|
1374
1376
|
}
|
|
@@ -1392,7 +1394,7 @@ declare function personRecordForMember(client: RecordsClient, personTableId: Uui
|
|
|
1392
1394
|
ok: false;
|
|
1393
1395
|
error: RecordsError;
|
|
1394
1396
|
}>;
|
|
1395
|
-
declare function PersonPicker({ field, value, onChange, disabled, id, className, autoOpen, onClose, initialSearch }: PersonPickerProps): react.JSX.Element;
|
|
1397
|
+
declare function PersonPicker({ field, value, onChange, disabled, id, className, autoOpen, onClose, onCancel, initialSearch }: PersonPickerProps): react.JSX.Element;
|
|
1396
1398
|
|
|
1397
1399
|
interface RecordVersions {
|
|
1398
1400
|
/** The version the person saw this record at; waits for the read of freshly drawn rows. `null` = unread. */
|
|
@@ -3178,8 +3180,10 @@ interface RelationPickerProps {
|
|
|
3178
3180
|
autoOpen?: boolean | undefined;
|
|
3179
3181
|
/** The list closed: the cell commits what is picked. */
|
|
3180
3182
|
onClose?: (() => void) | undefined;
|
|
3183
|
+
/** Escape in a grid cell's list: the cell's cancel — nothing is written (`PickOrAdd.onEscape`). */
|
|
3184
|
+
onCancel?: (() => void) | undefined;
|
|
3181
3185
|
}
|
|
3182
|
-
declare function RelationPicker({ field, value, onChange, disabled, id, className, allowCreate, onPicked, autoOpen, onClose }: RelationPickerProps): react.JSX.Element;
|
|
3186
|
+
declare function RelationPicker({ field, value, onChange, disabled, id, className, allowCreate, onPicked, autoOpen, onClose, onCancel }: RelationPickerProps): react.JSX.Element;
|
|
3183
3187
|
|
|
3184
3188
|
interface PickOrAddItem {
|
|
3185
3189
|
id: string;
|
|
@@ -3244,6 +3248,13 @@ interface PickOrAddProps {
|
|
|
3244
3248
|
* new choice word + Enter did nothing, while Tab then Enter added it). Absent: the add line.
|
|
3245
3249
|
*/
|
|
3246
3250
|
onEnterWithNoMatch?: (() => void) | undefined;
|
|
3251
|
+
/**
|
|
3252
|
+
* ESCAPE PUTS EVERYTHING BACK (REVIEW-FIX 2, 2026-10-06). In a grid cell closing the list is the
|
|
3253
|
+
* cell's commit, so Escape — which only closed it — wrote whatever the list held, a choice taken
|
|
3254
|
+
* off by Backspace included. When given, Escape (from the search box or Radix's own dismiss) calls
|
|
3255
|
+
* this INSTEAD of closing: the cell's cancel, which writes nothing and shows what it held.
|
|
3256
|
+
*/
|
|
3257
|
+
onEscape?: (() => void) | undefined;
|
|
3247
3258
|
/**
|
|
3248
3259
|
* IN A GRID CELL (lane CELL-EDITORS, 2026-10-06). No trigger button is drawn: the list hangs from
|
|
3249
3260
|
* `children` — what the cell already shows — the way Airtable's and the old Sheet's lists hang from
|
|
@@ -3259,13 +3270,8 @@ interface PickOrAddProps {
|
|
|
3259
3270
|
* arrows chose a row — finishes (the old Sheet's B2-04: Enter used to toggle the first row forever).
|
|
3260
3271
|
*/
|
|
3261
3272
|
multi?: boolean | undefined;
|
|
3262
|
-
/**
|
|
3263
|
-
* THE ADD ROW LEADS THE LIST (nothing typed matches, Notion's "Create …"): it is highlighted first,
|
|
3264
|
-
* so one Enter makes it; the existing items stay listed under it.
|
|
3265
|
-
*/
|
|
3266
|
-
addFirst?: boolean | undefined;
|
|
3267
3273
|
}
|
|
3268
|
-
declare function PickOrAdd({ triggerLabel, triggerText, triggerId, open, onOpenChange, search, onSearch, items, onPick, notice, empty, add, foot, footNote, onEnterWithNoMatch, anchored, children, chips, multi,
|
|
3274
|
+
declare function PickOrAdd({ triggerLabel, triggerText, triggerId, open, onOpenChange, search, onSearch, items, onPick, notice, empty, add, foot, footNote, onEnterWithNoMatch, anchored, children, chips, multi, onEscape, }: PickOrAddProps): react.JSX.Element;
|
|
3269
3275
|
|
|
3270
3276
|
/** What the panel says while the chosen list is empty. */
|
|
3271
3277
|
declare const ENTITY_REFERENCE_KINDS_MISSING = "Choose at least one kind of thing this column points at.";
|
|
@@ -3354,7 +3360,7 @@ interface FieldEditorControlProps {
|
|
|
3354
3360
|
* grows the row. Honoured by the choice and person pickers; every other control ignores it.
|
|
3355
3361
|
*/
|
|
3356
3362
|
autoOpen?: boolean | undefined;
|
|
3357
|
-
/** The picker's list closed (a pick,
|
|
3363
|
+
/** The picker's list closed (a pick, Enter, Tab, a click away): the cell commits what is chosen. Escape is `onCancel`. */
|
|
3358
3364
|
onClose?: (() => void) | undefined;
|
|
3359
3365
|
/**
|
|
3360
3366
|
* WHAT THE PERSON TYPED TO OPEN A GRID CELL'S PICKER (merged-grid review 2, A2 — Airtable): a
|
|
@@ -3861,7 +3867,10 @@ declare function readLooks(client: Pick<RecordsClient, "viewLookRead">, tableId:
|
|
|
3861
3867
|
declare function keepLook(client: Pick<RecordsClient, "viewLookSet">, tableId: Uuid$1, viewId: Uuid$1, look: ViewLook | null): Promise<RecordsResult<Record<string, unknown> | null>>;
|
|
3862
3868
|
/** The words of the look bar. One sentence, then the doors. */
|
|
3863
3869
|
declare const LOOK_WORDS: {
|
|
3870
|
+
/** The reason, for a tooltip or a screen reader — never a line on the page (interface-text). */
|
|
3864
3871
|
readonly yours: "You changed how this view looks. Only you see it.";
|
|
3872
|
+
/** The visible label for the same fact. */
|
|
3873
|
+
readonly yoursLabel: "Only you see this";
|
|
3865
3874
|
readonly saveToView: "Save to view";
|
|
3866
3875
|
readonly saveAsNew: "Save as new view";
|
|
3867
3876
|
readonly reset: "Reset to view";
|