@ai-matrx/records-ui 0.102.15 → 0.102.16

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/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, addFirst, }: PickOrAddProps): react.JSX.Element;
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, Escape, a click away): the cell commits what is chosen. */
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, addFirst, }: PickOrAddProps): react.JSX.Element;
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, Escape, a click away): the cell commits what is chosen. */
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";