@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/dist/index.d.cts
CHANGED
|
@@ -559,8 +559,12 @@ interface HostLayout {
|
|
|
559
559
|
toolbarSlot?: HTMLElement | null | undefined;
|
|
560
560
|
}) => ReactNode;
|
|
561
561
|
}
|
|
562
|
-
/**
|
|
563
|
-
|
|
562
|
+
/**
|
|
563
|
+
* The authored-text slots `renderText` is asked to draw. `cell`: a long-text cell of the merged
|
|
564
|
+
* grid and the whole-text dialog's preview — the host may return block content there (the grid
|
|
565
|
+
* clips it to the row); the form slots take phrasing content only.
|
|
566
|
+
*/
|
|
567
|
+
type RenderTextSlot = "form-intro" | "form-help" | "form-thank-you" | "cell";
|
|
564
568
|
|
|
565
569
|
interface RecordsUiHost {
|
|
566
570
|
/**
|
|
@@ -666,6 +670,21 @@ interface RecordsUiHost {
|
|
|
666
670
|
ok: false;
|
|
667
671
|
reason: string;
|
|
668
672
|
}>;
|
|
673
|
+
/**
|
|
674
|
+
* OPTIONAL. THE HOST'S OWN FILE WINDOW (one-grid merge, inventory: the older grid's
|
|
675
|
+
* AttachmentInput). An attachment cell adds files the person already holds through the host's
|
|
676
|
+
* file picker — Airtable's "Attach" over your own files — rather than a second browser this
|
|
677
|
+
* package would invent. `multiple`: the column holds several files; `accept`: the native
|
|
678
|
+
* `accept` list, when the column restricts types. Resolves the host's file ids (the store turns
|
|
679
|
+
* each into its kernel File record at the write door), or `null` when the person cancelled.
|
|
680
|
+
*
|
|
681
|
+
* Unbound, the editor offers `upload` alone; with neither bound it says no file store is bound
|
|
682
|
+
* (`NO_UPLOAD_REASON`) — never a dead button.
|
|
683
|
+
*/
|
|
684
|
+
pickFiles?: (ask: {
|
|
685
|
+
multiple: boolean;
|
|
686
|
+
accept?: string;
|
|
687
|
+
}) => Promise<Uuid$1[] | null>;
|
|
669
688
|
/**
|
|
670
689
|
* Where this app serves its PUBLIC pages from, when that is not the origin
|
|
671
690
|
* the screen is running on. A form's link is built here, so an owner copying
|
|
@@ -1306,6 +1325,13 @@ interface GridEditing {
|
|
|
1306
1325
|
rowError: RecordsError | null;
|
|
1307
1326
|
clearRowError: () => void;
|
|
1308
1327
|
busy: boolean;
|
|
1328
|
+
/**
|
|
1329
|
+
* EVERYTHING THIS SESSION HOLDS THAT CHANGES HOW ONE ROW DRAWS (lane RENDER-AUDIT, 2026-09-26):
|
|
1330
|
+
* the open cell and what is typed in it, an optimistic value, a save in flight, a refusal. The
|
|
1331
|
+
* grid hands it to the data table as `rowVersion`, so a keystroke, a save or a refusal redraws
|
|
1332
|
+
* the ONE row it belongs to and no other.
|
|
1333
|
+
*/
|
|
1334
|
+
rowSignature: (rowId: Uuid$1) => readonly unknown[];
|
|
1309
1335
|
}
|
|
1310
1336
|
interface Options {
|
|
1311
1337
|
tableId: Uuid$1;
|
|
@@ -2443,7 +2469,7 @@ declare function ProvenanceBadge({ document, fieldKey }: {
|
|
|
2443
2469
|
* export, a chat line) keeps calling `renderValue` with no resolver and says
|
|
2444
2470
|
* "Loading…" rather than printing an id.
|
|
2445
2471
|
*/
|
|
2446
|
-
declare function RecordValue({ field, value, document, format, withheld, }: {
|
|
2472
|
+
declare function RecordValue({ field, value, document, format, withheld, inCell, }: {
|
|
2447
2473
|
field: Field;
|
|
2448
2474
|
value: unknown;
|
|
2449
2475
|
document?: RecordDocument | undefined;
|
|
@@ -2466,6 +2492,12 @@ declare function RecordValue({ field, value, document, format, withheld, }: {
|
|
|
2466
2492
|
* means the cell is empty (`withheld.tsx`).
|
|
2467
2493
|
*/
|
|
2468
2494
|
withheld?: HiddenFieldNotice | null | undefined;
|
|
2495
|
+
/**
|
|
2496
|
+
* Drawn in a GRID CELL. In the merged grid a long-text cell reads through the host's text
|
|
2497
|
+
* renderer (`RecordsUiHost.renderText`, slot `cell` — markdown, formatted), clipped to the row;
|
|
2498
|
+
* unbound, the words as written.
|
|
2499
|
+
*/
|
|
2500
|
+
inCell?: boolean | undefined;
|
|
2469
2501
|
}): react.JSX.Element;
|
|
2470
2502
|
/**
|
|
2471
2503
|
* WHAT ONE CARD SAYS — the kanban's, the calendar's, the gallery's and the pipeline's alike, so
|
|
@@ -4029,11 +4061,6 @@ interface RecordsMountProps {
|
|
|
4029
4061
|
children: ReactNode;
|
|
4030
4062
|
}
|
|
4031
4063
|
declare function RecordsMount({ config, host, letTheStoreDecideRights, children, }: RecordsMountProps): react.JSX.Element;
|
|
4032
|
-
/**
|
|
4033
|
-
* The actor a signed-in person is. `user` is the store's own word (the closed
|
|
4034
|
-
* ACTOR_VOCABULARY is `user` · `agent` · `system`), and AGT-N-4 means an agent
|
|
4035
|
-
* acting for this person carries exactly this authority and no other.
|
|
4036
|
-
*/
|
|
4037
4064
|
declare function personActor(userId: Uuid$1 | null | undefined): RecordsActor;
|
|
4038
4065
|
/**
|
|
4039
4066
|
* A supabase-js client AS this package's data seam.
|
package/dist/index.d.ts
CHANGED
|
@@ -559,8 +559,12 @@ interface HostLayout {
|
|
|
559
559
|
toolbarSlot?: HTMLElement | null | undefined;
|
|
560
560
|
}) => ReactNode;
|
|
561
561
|
}
|
|
562
|
-
/**
|
|
563
|
-
|
|
562
|
+
/**
|
|
563
|
+
* The authored-text slots `renderText` is asked to draw. `cell`: a long-text cell of the merged
|
|
564
|
+
* grid and the whole-text dialog's preview — the host may return block content there (the grid
|
|
565
|
+
* clips it to the row); the form slots take phrasing content only.
|
|
566
|
+
*/
|
|
567
|
+
type RenderTextSlot = "form-intro" | "form-help" | "form-thank-you" | "cell";
|
|
564
568
|
|
|
565
569
|
interface RecordsUiHost {
|
|
566
570
|
/**
|
|
@@ -666,6 +670,21 @@ interface RecordsUiHost {
|
|
|
666
670
|
ok: false;
|
|
667
671
|
reason: string;
|
|
668
672
|
}>;
|
|
673
|
+
/**
|
|
674
|
+
* OPTIONAL. THE HOST'S OWN FILE WINDOW (one-grid merge, inventory: the older grid's
|
|
675
|
+
* AttachmentInput). An attachment cell adds files the person already holds through the host's
|
|
676
|
+
* file picker — Airtable's "Attach" over your own files — rather than a second browser this
|
|
677
|
+
* package would invent. `multiple`: the column holds several files; `accept`: the native
|
|
678
|
+
* `accept` list, when the column restricts types. Resolves the host's file ids (the store turns
|
|
679
|
+
* each into its kernel File record at the write door), or `null` when the person cancelled.
|
|
680
|
+
*
|
|
681
|
+
* Unbound, the editor offers `upload` alone; with neither bound it says no file store is bound
|
|
682
|
+
* (`NO_UPLOAD_REASON`) — never a dead button.
|
|
683
|
+
*/
|
|
684
|
+
pickFiles?: (ask: {
|
|
685
|
+
multiple: boolean;
|
|
686
|
+
accept?: string;
|
|
687
|
+
}) => Promise<Uuid$1[] | null>;
|
|
669
688
|
/**
|
|
670
689
|
* Where this app serves its PUBLIC pages from, when that is not the origin
|
|
671
690
|
* the screen is running on. A form's link is built here, so an owner copying
|
|
@@ -1306,6 +1325,13 @@ interface GridEditing {
|
|
|
1306
1325
|
rowError: RecordsError | null;
|
|
1307
1326
|
clearRowError: () => void;
|
|
1308
1327
|
busy: boolean;
|
|
1328
|
+
/**
|
|
1329
|
+
* EVERYTHING THIS SESSION HOLDS THAT CHANGES HOW ONE ROW DRAWS (lane RENDER-AUDIT, 2026-09-26):
|
|
1330
|
+
* the open cell and what is typed in it, an optimistic value, a save in flight, a refusal. The
|
|
1331
|
+
* grid hands it to the data table as `rowVersion`, so a keystroke, a save or a refusal redraws
|
|
1332
|
+
* the ONE row it belongs to and no other.
|
|
1333
|
+
*/
|
|
1334
|
+
rowSignature: (rowId: Uuid$1) => readonly unknown[];
|
|
1309
1335
|
}
|
|
1310
1336
|
interface Options {
|
|
1311
1337
|
tableId: Uuid$1;
|
|
@@ -2443,7 +2469,7 @@ declare function ProvenanceBadge({ document, fieldKey }: {
|
|
|
2443
2469
|
* export, a chat line) keeps calling `renderValue` with no resolver and says
|
|
2444
2470
|
* "Loading…" rather than printing an id.
|
|
2445
2471
|
*/
|
|
2446
|
-
declare function RecordValue({ field, value, document, format, withheld, }: {
|
|
2472
|
+
declare function RecordValue({ field, value, document, format, withheld, inCell, }: {
|
|
2447
2473
|
field: Field;
|
|
2448
2474
|
value: unknown;
|
|
2449
2475
|
document?: RecordDocument | undefined;
|
|
@@ -2466,6 +2492,12 @@ declare function RecordValue({ field, value, document, format, withheld, }: {
|
|
|
2466
2492
|
* means the cell is empty (`withheld.tsx`).
|
|
2467
2493
|
*/
|
|
2468
2494
|
withheld?: HiddenFieldNotice | null | undefined;
|
|
2495
|
+
/**
|
|
2496
|
+
* Drawn in a GRID CELL. In the merged grid a long-text cell reads through the host's text
|
|
2497
|
+
* renderer (`RecordsUiHost.renderText`, slot `cell` — markdown, formatted), clipped to the row;
|
|
2498
|
+
* unbound, the words as written.
|
|
2499
|
+
*/
|
|
2500
|
+
inCell?: boolean | undefined;
|
|
2469
2501
|
}): react.JSX.Element;
|
|
2470
2502
|
/**
|
|
2471
2503
|
* WHAT ONE CARD SAYS — the kanban's, the calendar's, the gallery's and the pipeline's alike, so
|
|
@@ -4029,11 +4061,6 @@ interface RecordsMountProps {
|
|
|
4029
4061
|
children: ReactNode;
|
|
4030
4062
|
}
|
|
4031
4063
|
declare function RecordsMount({ config, host, letTheStoreDecideRights, children, }: RecordsMountProps): react.JSX.Element;
|
|
4032
|
-
/**
|
|
4033
|
-
* The actor a signed-in person is. `user` is the store's own word (the closed
|
|
4034
|
-
* ACTOR_VOCABULARY is `user` · `agent` · `system`), and AGT-N-4 means an agent
|
|
4035
|
-
* acting for this person carries exactly this authority and no other.
|
|
4036
|
-
*/
|
|
4037
4064
|
declare function personActor(userId: Uuid$1 | null | undefined): RecordsActor;
|
|
4038
4065
|
/**
|
|
4039
4066
|
* A supabase-js client AS this package's data seam.
|