@ai-matrx/records-ui 0.103.7 → 0.103.10

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.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, KeyboardEvent, ReactElement, ComponentType, RefObject, SVGAttributes } from 'react';
3
3
  import * as _ai_matrx_records from '@ai-matrx/records';
4
- import { RecordScopeContext, EnrichCell, RecordsError, Field, TableDecorations, Uuid as Uuid$1, RowAction, RecordDocument, Table, ReadRow, StoreFilter, RecordRead, PermissionLevel, AggregateFilter, RelationDisplay, WriteConflict, RecordsErrorCode, RecordFilter, RuleExpression, RecordsResult, SavedViewRow, ImportRun, DeclarableFieldKind, NewerFieldKind, ParityFieldType, NewFieldDeclaration, ChoiceRehome, FieldOptionEdit, StoredRecord, ChoiceNudge, HiddenFieldNotice, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkApprovalState, WorkInboxKind, FieldKind, ArchiveLane, ArchivedRow, WorkInboxView, WorkInboxItem, PortalAccent, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, PublicPicture, PortalStyle, MySubscription, DashboardBlockKind, AggregateBucket, AggregateMeasure, AggregateCompare, DashboardTarget, DashboardBlock, DashboardSummary, AggregateGroupValue, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, TableDuplicated, HistoryActor, FieldHistoryEntry, DrillDefinition, DrillSource, TableDuplicateProgress, TableArchiveProgress } from '@ai-matrx/records';
4
+ import { Uuid, RowAction, Field, RowActionStep, RecordScopeContext, EnrichCell, RecordsError, TableDecorations, RecordDocument, Table, ReadRow, StoreFilter, RecordRead, PermissionLevel, AggregateFilter, RelationDisplay, WriteConflict, RecordsErrorCode, RecordFilter, RuleExpression, RecordsResult, SavedViewRow, ImportRun, DeclarableFieldKind, NewerFieldKind, ParityFieldType, NewFieldDeclaration, ChoiceRehome, FieldOptionEdit, StoredRecord, ChoiceNudge, HiddenFieldNotice, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkApprovalState, WorkInboxKind, FieldKind, ArchiveLane, ArchivedRow, WorkInboxView, WorkInboxItem, PortalAccent, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, PublicPicture, PortalStyle, MySubscription, DashboardBlockKind, AggregateBucket, AggregateMeasure, AggregateCompare, DashboardTarget, DashboardBlock, DashboardSummary, AggregateGroupValue, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, TableDuplicated, HistoryActor, FieldHistoryEntry, DrillDefinition, DrillSource, TableDuplicateProgress, TableArchiveProgress } from '@ai-matrx/records';
5
5
  import { ReversibleAnnouncement } from '@ai-matrx/kit/reversible';
6
6
  import { W as WhatYouMayDo, T as TableActionHost, O as ObjectAction, a as ObjectActionIcon } from './objectActions-XkhxU-DP.js';
7
7
  export { A as ACTION_CHECKING_ACCESS_REASON, b as ACTION_NOT_HERE_REASON, c as ACTION_NO_ACCESS_REASON, d as ACTION_PLATFORM_TABLE_REASON, B as BuiltOnDestination, C as Capability, D as DEFAULT_ACTION_ORIGIN, K as KERNEL_REASON, L as LEVEL_WORD, N as NOT_ANSWERED_YET, e as OBJECT_ACTION_GROUPS, f as ObjectActionDropdownEntry, g as ObjectActionGroup, h as ObjectActionGroupDef, i as ObjectActionSection, S as STANDARD_VERBS, j as STRIP_FEATURE_ROWS, k as StandardVerbId, l as StripAndRows, m as TableActionSubject, n as TableActionsInput, o as dropdownActionIds, p as dropdownActions, q as groupObjectActions, r as levelNeededFor, s as rightsReason, t as tableActions, u as tableLink, v as toDropdownEntries, w as toStripAndRows, x as whatYouMayDo, y as whatYouMayDoWithTable, z as withExtensions } from './objectActions-XkhxU-DP.js';
8
- import { Uuid, Field as Field$1, ReadRow as ReadRow$1, StoreFilter as StoreFilter$1, useRecordsClient, Table as Table$1 } from '@ai-matrx/records/react';
8
+ import { Uuid as Uuid$1, Table as Table$1, Field as Field$1, ReadRow as ReadRow$1, StoreFilter as StoreFilter$1, useRecordsClient } from '@ai-matrx/records/react';
9
9
  import { TableStyle, GroupAggregateSpec, GroupOrder, ChoiceColorLookup, MatrxTableCardProps, StyleColor, MatrxDataTableDrillConfig, MatrxColumnDef as MatrxColumnDef$1, MatrxDrillDimension, MatrxDrillMeasure, MatrxDrillFilter, MatrxDrillQuestion, MatrxDrillAnswers } from '@ai-matrx/design-system/data-table';
10
10
  import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
11
11
  import { RecordsClient, ParsedImport, NewFieldSpec } from '@ai-matrx/records/core';
@@ -19,6 +19,37 @@ import { TemplateSpec } from '@ai-matrx/records/templates';
19
19
  import { TemplatePreview as TemplatePreview$1 } from '@ai-matrx/records/memory';
20
20
  import { MatrxColumnDef } from '@ai-matrx/design-system/data-table/types';
21
21
 
22
+ /** What the settings panel can see right now, in the words the agent reads. */
23
+ interface TableSettingsSnapshot {
24
+ table_id: Uuid;
25
+ /** True when the description or an open row action holds edits not saved yet. */
26
+ has_unsaved_changes: boolean;
27
+ table_details_draft: {
28
+ table_name: string;
29
+ description: string;
30
+ row_label: string | null;
31
+ };
32
+ saved_row_actions?: Array<Record<string, unknown>>;
33
+ editing_row_action?: Record<string, unknown>;
34
+ editing_row_action_problems?: string[];
35
+ }
36
+ /** What the host's surface reads and calls. Every call reads the panel as it is at that moment. */
37
+ interface TableSettingsAgent {
38
+ read: () => TableSettingsSnapshot;
39
+ /** Replace the open row action (or open a new one) with a whole action. */
40
+ stageRowAction: (input: unknown) => Promise<void>;
41
+ /** Write one Calculate step's formula in the open update action. */
42
+ stageStepFormula: (input: unknown) => Promise<void>;
43
+ /** Stage the description in "About this table". */
44
+ stageTableDetails: (input: unknown) => Promise<void>;
45
+ }
46
+ /** One step the agent sent, in the manifest's words, as the store's step. Throws on anything else. */
47
+ declare function stepFromAgent(input: unknown, index: number, fields: readonly Field[], check: (expression: string, where: string) => Promise<void>): Promise<RowActionStep>;
48
+ /** A whole row action the agent sent, as the store's action. Throws on anything the Save would refuse. */
49
+ declare function rowActionFromAgent(input: unknown, fields: readonly Field[], check: (expression: string, where: string) => Promise<void>): Promise<RowAction>;
50
+ /** The action as the agent reads it: columns by machine name, formulas as text. */
51
+ declare function actionForAgent(action: RowAction, fields: readonly Field[]): Record<string, unknown>;
52
+
22
53
  /** One named piece of grounding, shaped the way the platform's context slice takes them. */
23
54
  interface RecordChatEntry {
24
55
  key: string;
@@ -33,8 +64,8 @@ interface RecordChatEntry {
33
64
  * answer into a link to the record AND to the version it was read at.
34
65
  */
35
66
  cite?: {
36
- record_id: Uuid;
37
- field_id: Uuid;
67
+ record_id: Uuid$1;
68
+ field_id: Uuid$1;
38
69
  value_version: number;
39
70
  written_at: string | null;
40
71
  };
@@ -63,8 +94,8 @@ interface RecordChatContext {
63
94
  * constant.
64
95
  */
65
96
  surfaceKey: string;
66
- tableId: Uuid;
67
- recordId: Uuid;
97
+ tableId: Uuid$1;
98
+ recordId: Uuid$1;
68
99
  tableName: string;
69
100
  /** The record's own title, for the panel's one-row header and the chip. */
70
101
  title: string;
@@ -89,16 +120,16 @@ interface RecordChatContext {
89
120
  */
90
121
  declare const NO_CHAT_REASON: string;
91
122
  interface RecordChatProps {
92
- tableId: Uuid;
93
- recordId: Uuid;
123
+ tableId: Uuid$1;
124
+ recordId: Uuid$1;
94
125
  className?: string | undefined;
95
126
  }
96
127
  declare function RecordChat({ tableId, recordId, className }: RecordChatProps): react.JSX.Element;
97
128
 
98
129
  /** What the host is asked to have the SERVER's `records` tool do. */
99
130
  interface EnrichAsk {
100
- tableId: Uuid;
101
- fieldId: Uuid;
131
+ tableId: Uuid$1;
132
+ fieldId: Uuid$1;
102
133
  fieldKey: string;
103
134
  /** How many records this run covers. */
104
135
  rows: number;
@@ -147,15 +178,15 @@ declare function EnrichBadge({ cell, onPin, className }: EnrichBadgeProps): reac
147
178
  * badges, which is why the store answers the whole page at once. The hook is keyed by the
148
179
  * record ids the grid is actually drawing, so paging re-asks and scrolling does not.
149
180
  */
150
- declare function useEnrichCells(tableId: Uuid | undefined, recordIds: Uuid[] | undefined): {
181
+ declare function useEnrichCells(tableId: Uuid$1 | undefined, recordIds: Uuid$1[] | undefined): {
151
182
  cells: Map<string, EnrichCell>;
152
183
  refresh: () => Promise<void>;
153
184
  error: RecordsError | null;
154
185
  };
155
186
  interface EnrichPanelProps {
156
- tableId: Uuid;
187
+ tableId: Uuid$1;
157
188
  /** Open straight onto one column. Absent, the panel lists every agent-owned column. */
158
- fieldId?: Uuid | undefined;
189
+ fieldId?: Uuid$1 | undefined;
159
190
  className?: string | undefined;
160
191
  }
161
192
  /**
@@ -415,12 +446,12 @@ declare function resolveTableStyle(decorations: TableDecorations | null | undefi
415
446
 
416
447
  /** One record as the grid shows it: its id, its name (the row label) and its masked document. */
417
448
  interface GridContextRecord {
418
- id: Uuid$1;
449
+ id: Uuid;
419
450
  title: string;
420
451
  document: RecordDocument;
421
452
  }
422
453
  interface GridContextSnapshot {
423
- tableId: Uuid$1;
454
+ tableId: Uuid;
424
455
  tableName: string;
425
456
  /** The table's own description (`metadata.description`), when it has one. */
426
457
  tableDescription: string | null;
@@ -434,7 +465,7 @@ interface GridContextSnapshot {
434
465
  canWrite: boolean;
435
466
  /** The cell the cursor is on: its record, its Field key and the value drawn in it. */
436
467
  currentCell: {
437
- rowId: Uuid$1;
468
+ rowId: Uuid;
438
469
  key: string;
439
470
  value: unknown;
440
471
  } | null;
@@ -444,7 +475,7 @@ interface GridContextSnapshot {
444
475
  selectedRange: {
445
476
  tsv: string;
446
477
  cellCount: number;
447
- rowIds: Uuid$1[];
478
+ rowIds: Uuid[];
448
479
  keys: string[];
449
480
  } | null;
450
481
  /** The rows ticked with the row boxes. */
@@ -467,7 +498,7 @@ interface GridCursor {
467
498
  tsv: string;
468
499
  }
469
500
  declare function gridContextSnapshot(args: {
470
- tableId: Uuid$1;
501
+ tableId: Uuid;
471
502
  table: Table | null;
472
503
  fields: readonly Field[];
473
504
  /** The Field keys on screen, in order. */
@@ -478,7 +509,7 @@ declare function gridContextSnapshot(args: {
478
509
  cursor: GridCursor | null;
479
510
  /** The cell whose editor is open, which wins over the cursor. */
480
511
  editing: {
481
- rowId: Uuid$1;
512
+ rowId: Uuid;
482
513
  key: string;
483
514
  draft: unknown;
484
515
  } | null;
@@ -538,7 +569,7 @@ interface HostLayout {
538
569
  label: string;
539
570
  /** Draw it for this table, with the question the address asked when there is one. */
540
571
  render: (args: {
541
- tableId: Uuid$1;
572
+ tableId: Uuid;
542
573
  filter?: StoreFilter | undefined;
543
574
  /**
544
575
  * Opens the page's own export (CSV, XLSX, copy and transform) — the one export a table has,
@@ -578,10 +609,10 @@ interface RichTextEditProps {
578
609
  }
579
610
  interface ReferenceChipRef {
580
611
  token: string;
581
- id: Uuid$1;
612
+ id: Uuid;
582
613
  label: string | null;
583
614
  /** For `token: "record"`, the Table the relation points into. */
584
- tableId?: Uuid$1 | undefined;
615
+ tableId?: Uuid | undefined;
585
616
  /**
586
617
  * The record it names sits in Archived items. An archive keeps every reference to what it
587
618
  * archived (chair ruling B3-21), so the chip still names it and draws the archived state.
@@ -639,12 +670,32 @@ interface RecordsUiHost {
639
670
  label: string;
640
671
  onChange: (name: string) => void;
641
672
  }) => ReactNode;
673
+ /**
674
+ * OPTIONAL. HELP WRITING A FORMULA (Sheet retirement). The formula box hands the host what it
675
+ * holds — the text, the table's other columns and the store's reading of what is wrong — and the
676
+ * host draws its own help control beside the box (matrx-frontend runs its formula-writing job).
677
+ * Whatever formula the help arrives at goes back through `onFormula` into the box, unsaved, for
678
+ * the person to keep or change. Unbound, nothing is drawn.
679
+ */
680
+ formulaHelp?: (ask: FormulaHelpAsk) => ReactNode;
681
+ /**
682
+ * OPTIONAL. AN AGENT OVER A TABLE'S SETTINGS (Sheet retirement). While the settings panel is open
683
+ * it wraps itself in what this returns, handing the host a `TableSettingsAgent`: what the panel
684
+ * can see (the description as edited, the row actions and the one being edited, what stops it
685
+ * saving) and three staging calls (a whole row action, one step's formula, the description).
686
+ * Staging never saves; the person presses Save. Unbound, the panel draws bare.
687
+ */
688
+ settingsAgent?: (args: {
689
+ tableId: Uuid;
690
+ agent: TableSettingsAgent;
691
+ children: ReactNode;
692
+ }) => ReactNode;
642
693
  /** Answer the rights question for one table. Synchronous: a screen renders now. */
643
694
  rights?: (table: Table) => TableRights;
644
695
  /** Where a record's own page lives, when the host has one. A peek is used when it does not. */
645
696
  hrefForRecord?: (args: {
646
697
  table: Table;
647
- recordId: Uuid$1;
698
+ recordId: Uuid;
648
699
  }) => string | undefined;
649
700
  /**
650
701
  * OPTIONAL. WHERE A FILE OPENS. A value too big for one cell is kept as a file and the cell
@@ -653,7 +704,7 @@ interface RecordsUiHost {
653
704
  * screen cannot open — never a dead link.
654
705
  */
655
706
  hrefForFile?: (args: {
656
- fileId: Uuid$1;
707
+ fileId: Uuid;
657
708
  }) => string | undefined;
658
709
  /**
659
710
  * OPTIONAL. READ A FILE'S WHOLE TEXT, so an export writes a big value's whole content rather
@@ -661,7 +712,7 @@ interface RecordsUiHost {
661
712
  * the file (`wholeValueNotRead`) — never the words passed off as the value.
662
713
  */
663
714
  readFileText?: (args: {
664
- fileId: Uuid$1;
715
+ fileId: Uuid;
665
716
  }) => Promise<string>;
666
717
  /**
667
718
  * OPTIONAL. A FILE DRAWN AS A PICTURE — the gallery card's cover when the view's picture column
@@ -670,7 +721,7 @@ interface RecordsUiHost {
670
721
  * the cover says in words that this screen cannot draw files, never a broken image.
671
722
  */
672
723
  fileImage?: (args: {
673
- fileId: Uuid$1;
724
+ fileId: Uuid;
674
725
  alt: string;
675
726
  }) => ReactNode;
676
727
  /**
@@ -750,7 +801,7 @@ interface RecordsUiHost {
750
801
  */
751
802
  upload?: (file: File) => Promise<{
752
803
  ok: true;
753
- fileId: Uuid$1;
804
+ fileId: Uuid;
754
805
  } | {
755
806
  ok: false;
756
807
  reason: string;
@@ -769,7 +820,7 @@ interface RecordsUiHost {
769
820
  pickFiles?: (ask: {
770
821
  multiple: boolean;
771
822
  accept?: string;
772
- }) => Promise<Uuid$1[] | null>;
823
+ }) => Promise<Uuid[] | null>;
773
824
  /**
774
825
  * Where this app serves its PUBLIC pages from, when that is not the origin
775
826
  * the screen is running on. A form's link is built here, so an owner copying
@@ -789,7 +840,7 @@ interface RecordsUiHost {
789
840
  * an empty picker that looks like "you have no views".
790
841
  */
791
842
  savedViews?: () => Promise<Array<{
792
- id: Uuid$1;
843
+ id: Uuid;
793
844
  name: string;
794
845
  }>>;
795
846
  /**
@@ -827,8 +878,8 @@ interface RecordsUiHost {
827
878
  * stamped with it). Unbound, nothing is drawn.
828
879
  */
829
880
  recordSections?: (target: {
830
- tableId: Uuid$1;
831
- recordId: Uuid$1;
881
+ tableId: Uuid;
882
+ recordId: Uuid;
832
883
  }) => ReactNode;
833
884
  /**
834
885
  * OPTIONAL. THE PLATFORM'S ONE RICH EDITOR, for a record page's body (lane TABLE-EXPERIENCE,
@@ -858,8 +909,8 @@ interface RecordsUiHost {
858
909
  * available here.
859
910
  */
860
911
  linkRecord?: (target: {
861
- tableId: Uuid$1;
862
- recordId: Uuid$1;
912
+ tableId: Uuid;
913
+ recordId: Uuid;
863
914
  name: string;
864
915
  }) => void;
865
916
  /**
@@ -878,8 +929,8 @@ interface RecordsUiHost {
878
929
  * not render at all.
879
930
  */
880
931
  talkToRecord?: (target: {
881
- tableId: Uuid$1;
882
- recordId: Uuid$1;
932
+ tableId: Uuid;
933
+ recordId: Uuid;
883
934
  title: string;
884
935
  }) => void;
885
936
  /**
@@ -900,8 +951,8 @@ interface RecordsUiHost {
900
951
  * job, and the agent is handed exactly what the person was looking at.
901
952
  */
902
953
  runAgentAction?: (target: {
903
- tableId: Uuid$1;
904
- recordId: Uuid$1;
954
+ tableId: Uuid;
955
+ recordId: Uuid;
905
956
  title: string;
906
957
  action: string;
907
958
  prompt: string;
@@ -990,9 +1041,9 @@ interface RecordsUiHost {
990
1041
  * Dashboards area lists no pages and offers no "New page" — absent, never dead.
991
1042
  */
992
1043
  pageHref?: (target: {
993
- pageId: Uuid$1;
1044
+ pageId: Uuid;
994
1045
  } | {
995
- newOnTable: Uuid$1;
1046
+ newOnTable: Uuid;
996
1047
  }) => string;
997
1048
  /**
998
1049
  * OPTIONAL. ASK THE AGENT TO CHANGE THIS DASHBOARD (SCR-16).
@@ -1028,6 +1079,20 @@ interface RecordsUiHost {
1028
1079
  */
1029
1080
  onAskForOne?: (ask: AgentBuildAsk) => void;
1030
1081
  }
1082
+ /** What the formula box hands the host's help (`formulaHelp`). */
1083
+ interface FormulaHelpAsk {
1084
+ tableId: Uuid;
1085
+ /** The formula as it stands in the box (may be empty). */
1086
+ text: string;
1087
+ /** The table's other columns, the ones the formula may read as {Name}. */
1088
+ columns: readonly Field[];
1089
+ /** The store's reading of what is wrong with the text, when it does not parse. */
1090
+ mistake: string | null;
1091
+ /** The functions the store works out, as a person types them. */
1092
+ functions: readonly string[];
1093
+ /** Put a formula into the box (unsaved). */
1094
+ onFormula: (text: string) => void;
1095
+ }
1031
1096
  /** What a person is asking an agent to make, and where they were standing. */
1032
1097
  interface AgentBuildAsk {
1033
1098
  /**
@@ -1035,7 +1100,7 @@ interface AgentBuildAsk {
1035
1100
  * agent adds it through the store's field door, held for approval like every agent schema change.
1036
1101
  */
1037
1102
  kind: "form" | "booking" | "portal" | "digest" | "column";
1038
- tableId: Uuid$1;
1103
+ tableId: Uuid;
1039
1104
  /** The sentence this package would say. A host opens its composer with it. */
1040
1105
  suggestion: string;
1041
1106
  }
@@ -1047,16 +1112,16 @@ interface AgentBuildAsk {
1047
1112
  * counted, which is the one way this control can lie.
1048
1113
  */
1049
1114
  interface OpenRecordsAsk {
1050
- tableId: Uuid$1;
1115
+ tableId: Uuid;
1051
1116
  filter: Record<string, AggregateFilter>;
1052
1117
  /** What the person clicked, in words: "Jobs by stage this month · Awaiting parts". */
1053
1118
  label: string;
1054
1119
  }
1055
1120
  /** Which dashboard a re-ask is about, so the agent re-states it rather than making a second one. */
1056
1121
  interface ReaskContext {
1057
- tableId: Uuid$1;
1122
+ tableId: Uuid;
1058
1123
  /** Null while the canvas has no dashboard yet — the answer is the first one. */
1059
- dashboardId: Uuid$1 | null;
1124
+ dashboardId: Uuid | null;
1060
1125
  dashboardName: string | null;
1061
1126
  }
1062
1127
  /**
@@ -1068,8 +1133,8 @@ interface ReaskContext {
1068
1133
  interface ShareSubject {
1069
1134
  kind: "record" | "table";
1070
1135
  /** The store is keyed (organization_id, id); this package never guesses one. */
1071
- organizationId: Uuid$1;
1072
- subjectId: Uuid$1;
1136
+ organizationId: Uuid;
1137
+ subjectId: Uuid;
1073
1138
  /** What to call it on screen. Never empty — the id's first eight characters at worst. */
1074
1139
  name: string;
1075
1140
  /** Close the dialog. The control owns the open/closed state, the host owns the dialog. */
@@ -1097,7 +1162,7 @@ interface PendingCapture {
1097
1162
  * tell a retry from a second capture.
1098
1163
  */
1099
1164
  clientKey: string;
1100
- tableId: Uuid$1;
1165
+ tableId: Uuid;
1101
1166
  payload: Record<string, unknown>;
1102
1167
  capturedAt: string;
1103
1168
  device: string;
@@ -1164,7 +1229,7 @@ declare function useTableRights(table: Table | null | undefined): TableRights;
1164
1229
  * colleague at Editor inside a table she holds at Viewer. The grid used to
1165
1230
  * label that row "viewer" while the store let her write to it.
1166
1231
  */
1167
- declare function useRecordRights(recordId: Uuid$1 | null): WhatYouMayDo;
1232
+ declare function useRecordRights(recordId: Uuid | null): WhatYouMayDo;
1168
1233
  /**
1169
1234
  * The same question for a whole page of records, in ONE call — the door takes a
1170
1235
  * list precisely so a grid never makes one call per row.
@@ -1173,7 +1238,37 @@ declare function useRecordRights(recordId: Uuid$1 | null): WhatYouMayDo;
1173
1238
  * table level already admits editing, every row it returned is editable and
1174
1239
  * there is nothing a per-record answer could add.
1175
1240
  */
1176
- declare function useRowRights(rowIds: Uuid$1[], enabled: boolean): (rowId: Uuid$1) => WhatYouMayDo | null;
1241
+ declare function useRowRights(rowIds: Uuid[], enabled: boolean): (rowId: Uuid) => WhatYouMayDo | null;
1242
+
1243
+ /** The functions the store's evaluator answers, from its generated vocabulary. */
1244
+ declare const FORMULA_FUNCTIONS: string[];
1245
+
1246
+ /** The columns a record may be named by, in the table's order. Pure. */
1247
+ declare function rowLabelChoices(fields: readonly Field$1[]): Array<{
1248
+ value: string;
1249
+ label: string;
1250
+ }>;
1251
+ /** The patch that keeps a description: the table's other metadata is carried, never dropped. Pure. */
1252
+ declare function descriptionPatch(table: Pick<Table$1, "metadata">, text: string): {
1253
+ metadata: Record<string, unknown>;
1254
+ };
1255
+ declare function TableDetails({ tableId, table, fields, onSaved, }: {
1256
+ tableId: Uuid$1;
1257
+ table: Table$1;
1258
+ fields: readonly Field$1[];
1259
+ onSaved?: (() => void) | undefined;
1260
+ }): react.JSX.Element;
1261
+ /**
1262
+ * WRITE A TABLE'S DESCRIPTION, from outside this panel (an agent's confirmed write, Sheet
1263
+ * retirement): the table read fresh, the same patch and the same version-checked door the panel's
1264
+ * own Save uses, and the same shape nudge, so every open screen re-reads it.
1265
+ */
1266
+ declare function saveTableDescription(client: Pick<RecordsClient, "tableRead" | "revisions" | "recordHeaders" | "recordUpdate" | "recordUpdateAddingChoices">, tableId: Uuid$1, text: string): Promise<{
1267
+ ok: true;
1268
+ } | {
1269
+ ok: false;
1270
+ says: string;
1271
+ }>;
1177
1272
 
1178
1273
  /**
1179
1274
  * MACHINE IDENTITY, BY SHAPE — never by a list of the sentences we happen to
@@ -1335,13 +1430,13 @@ declare function cardTitleField(fields: readonly Field[], titleKey: string | nul
1335
1430
  /** What a person has chosen: the table, and optionally which of its columns to show. */
1336
1431
  interface ReferenceChoice {
1337
1432
  /** The Table whose records this column offers. `""` until one is picked. */
1338
- targetTableId: Uuid$1 | "";
1433
+ targetTableId: Uuid | "";
1339
1434
  /** Which of that Table's columns to show. `null` = the Table's own reference column. */
1340
1435
  display: RelationDisplay | null;
1341
1436
  }
1342
1437
  interface ReferenceBuilderProps {
1343
1438
  /** The Table the column being built lives on, so "this table" can be marked. */
1344
- tableId: Uuid$1;
1439
+ tableId: Uuid;
1345
1440
  value: ReferenceChoice;
1346
1441
  onChange: (next: ReferenceChoice) => void;
1347
1442
  /**
@@ -1378,7 +1473,7 @@ interface PersonPickerProps {
1378
1473
  }
1379
1474
  /** A Person record in the kernel Table, as this picker needs to read it. */
1380
1475
  interface PersonRecord {
1381
- id: Uuid$1;
1476
+ id: Uuid;
1382
1477
  userId: string | null;
1383
1478
  name: string;
1384
1479
  }
@@ -1389,9 +1484,9 @@ declare function memberName(member: OrganizationMember): string;
1389
1484
  * an agent filling a person field server-side needs exactly the same answer,
1390
1485
  * and two implementations of "which record is this person" is two answers.
1391
1486
  */
1392
- declare function personRecordForMember(client: RecordsClient, personTableId: Uuid$1, people: PersonRecord[], member: OrganizationMember): Promise<{
1487
+ declare function personRecordForMember(client: RecordsClient, personTableId: Uuid, people: PersonRecord[], member: OrganizationMember): Promise<{
1393
1488
  ok: true;
1394
- data: Uuid$1;
1489
+ data: Uuid;
1395
1490
  } | {
1396
1491
  ok: false;
1397
1492
  error: RecordsError;
@@ -1400,23 +1495,23 @@ declare function PersonPicker({ field, value, onChange, disabled, id, className,
1400
1495
 
1401
1496
  interface RecordVersions {
1402
1497
  /** The version the person saw this record at; waits for the read of freshly drawn rows. `null` = unread. */
1403
- seen: (id: Uuid$1) => Promise<number | null>;
1498
+ seen: (id: Uuid) => Promise<number | null>;
1404
1499
  /** The same, for many records at once. */
1405
- seenMany: (ids: readonly Uuid$1[]) => Promise<Map<Uuid$1, number | null>>;
1500
+ seenMany: (ids: readonly Uuid[]) => Promise<Map<Uuid, number | null>>;
1406
1501
  /** A write this screen made moved the record on (a version only goes up). */
1407
- wrote: (id: Uuid$1, version: number) => void;
1502
+ wrote: (id: Uuid, version: number) => void;
1408
1503
  /**
1409
1504
  * Read these records' versions again now: the person pressed Reload, or the store refused a write
1410
1505
  * because somebody else won (`PT409`) — the rows are re-read too, so the next write is against what
1411
1506
  * the person then sees. A change that moved only the version (who sees the row) never re-reads by
1412
1507
  * content, so without this the row stayed refused until the screen was opened again (verifier V10).
1413
1508
  */
1414
- refresh: (ids: readonly Uuid$1[]) => void;
1509
+ refresh: (ids: readonly Uuid[]) => void;
1415
1510
  }
1416
1511
 
1417
1512
  /** Which cell is open. A grid opens exactly one at a time, like every other grid. */
1418
1513
  interface CellAddress {
1419
- rowId: Uuid$1;
1514
+ rowId: Uuid;
1420
1515
  key: string;
1421
1516
  }
1422
1517
  /** What one cell is doing right now, so nothing about it is guessed by a caller. */
@@ -1427,6 +1522,14 @@ interface CellRefusal {
1427
1522
  conflict: WriteConflict | null;
1428
1523
  /** The value that was being written, so Retry can write it again. */
1429
1524
  attempted: unknown;
1525
+ /**
1526
+ * THE WRITE NEVER REACHED THE STORE (offline, `unreachable`): nothing was refused. The typed value
1527
+ * stays in the cell, the cell says "Not saved", and it is sent again when the browser is back
1528
+ * online (`unsentWrites`). Try now / Discard meanwhile.
1529
+ */
1530
+ unsent?: boolean | undefined;
1531
+ /** What the edit started from, so a resend is judged against the same base. */
1532
+ base?: unknown;
1430
1533
  }
1431
1534
  declare function fieldIsEditable(field: Field): boolean;
1432
1535
  interface GridEditing {
@@ -1437,8 +1540,8 @@ interface GridEditing {
1437
1540
  draft: unknown;
1438
1541
  /** The open cell's editor reports every keystroke to the session. */
1439
1542
  type: (value: unknown) => void;
1440
- stateOf: (rowId: Uuid$1, key: string) => CellState;
1441
- refusalOf: (rowId: Uuid$1, key: string) => CellRefusal | null;
1543
+ stateOf: (rowId: Uuid, key: string) => CellState;
1544
+ refusalOf: (rowId: Uuid, key: string) => CellRefusal | null;
1442
1545
  /**
1443
1546
  * Open a cell's editor. `seed` is what the person TYPED to open it (type-to-edit: a letter, an
1444
1547
  * IME composition, an Option/AltGr character): a column a person types into opens holding
@@ -1473,34 +1576,36 @@ interface GridEditing {
1473
1576
  * versioned, optimistic write path every other cell uses — the refusal, the conflict and
1474
1577
  * the "Try again" beside it are identical.
1475
1578
  */
1476
- setCell: (rowId: Uuid$1, key: string, value: unknown) => void;
1579
+ setCell: (rowId: Uuid, key: string, value: unknown) => void;
1477
1580
  /**
1478
1581
  * A VERSION CONFLICT ONLY: write the attempted value again, on top of the
1479
1582
  * version the store said won. Never offered for a refusal of the VALUE — the
1480
1583
  * same value would be refused the same way (VERIFIER-15 H2).
1481
1584
  */
1482
- retry: (rowId: Uuid$1, key: string) => void;
1585
+ retry: (rowId: Uuid, key: string) => void;
1483
1586
  /** A VERSION CONFLICT ONLY: drop the edit and show what the other person wrote. */
1484
- keepTheirs: (rowId: Uuid$1, key: string) => void;
1587
+ keepTheirs: (rowId: Uuid, key: string) => void;
1588
+ /** AN UNSENT WRITE ONLY: send it again now (it also goes by itself when the browser is back online). */
1589
+ tryNow: (rowId: Uuid, key: string) => void;
1485
1590
  /**
1486
1591
  * KEEP EDITING — the refused cell opens again HOLDING WHAT WAS TYPED, so the
1487
1592
  * person corrects `-3` rather than typing it from nothing (lane
1488
1593
  * RECORDS-UI-FIX, VERIFIER-15 H2).
1489
1594
  */
1490
- keepEditing: (rowId: Uuid$1, key: string) => void;
1595
+ keepEditing: (rowId: Uuid, key: string) => void;
1491
1596
  /** DISCARD — throw the refused value away; the cell shows what is stored. */
1492
- discard: (rowId: Uuid$1, key: string) => void;
1597
+ discard: (rowId: Uuid, key: string) => void;
1493
1598
  /**
1494
1599
  * FORGET WHAT THIS SESSION DREW FOR THESE CELLS — after a change made OUTSIDE the editor (an
1495
1600
  * undo, a bulk change) the store holds a new value and a new version, so the optimistic value
1496
1601
  * and the version this session held for the row are both stale.
1497
1602
  */
1498
1603
  forget: (cells: ReadonlyArray<{
1499
- rowId: Uuid$1;
1604
+ rowId: Uuid;
1500
1605
  key: string;
1501
1606
  }>) => void;
1502
1607
  /** Soft delete, through the store's own door. Answers the store's refusal, or null. */
1503
- remove: (rowId: Uuid$1) => Promise<RecordsError | null>;
1608
+ remove: (rowId: Uuid) => Promise<RecordsError | null>;
1504
1609
  /** Write an empty record and open its first editable cell. */
1505
1610
  addRecord: () => Promise<RecordsError | null>;
1506
1611
  /** The last refusal from a delete or an add, for the grid to print. */
@@ -1513,10 +1618,10 @@ interface GridEditing {
1513
1618
  * grid hands it to the data table as `rowVersion`, so a keystroke, a save or a refusal redraws
1514
1619
  * the ONE row it belongs to and no other.
1515
1620
  */
1516
- rowSignature: (rowId: Uuid$1) => readonly unknown[];
1621
+ rowSignature: (rowId: Uuid) => readonly unknown[];
1517
1622
  }
1518
1623
  interface Options {
1519
- tableId: Uuid$1;
1624
+ tableId: Uuid;
1520
1625
  fields: Field[];
1521
1626
  rows: ReadRow[];
1522
1627
  /** Re-read the page once the store has accepted something. */
@@ -1540,7 +1645,7 @@ interface Options {
1540
1645
  * write to it. Unbound, every row follows the table, which is what the
1541
1646
  * ordinary case is.
1542
1647
  */
1543
- mayWriteRow?: ((rowId: Uuid$1) => boolean) | undefined;
1648
+ mayWriteRow?: ((rowId: Uuid) => boolean) | undefined;
1544
1649
  /**
1545
1650
  * A CELL THE STORE ACCEPTED, with what it held before and what it holds now (merge tranche 6d):
1546
1651
  * the merged grid's undo pushes one step per accepted cell. Unbound, nothing is told.
@@ -1552,7 +1657,7 @@ interface Options {
1552
1657
  versions?: RecordVersions | undefined;
1553
1658
  /** One cell the store took: its value before and after, and the record version that write made. */
1554
1659
  onWritten?: ((write: {
1555
- rowId: Uuid$1;
1660
+ rowId: Uuid;
1556
1661
  key: string;
1557
1662
  before: unknown;
1558
1663
  after: unknown;
@@ -1612,7 +1717,7 @@ declare function GridCell({ field, row, editing, canWrite, whyNot, format, onAsk
1612
1717
  * looking at. Bound by the host; absent, no control is drawn at all, because
1613
1718
  * a control that opens nothing is the thing this package exists to prevent.
1614
1719
  */
1615
- onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined;
1720
+ onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined;
1616
1721
  }): react.JSX.Element;
1617
1722
 
1618
1723
  /**
@@ -1838,7 +1943,7 @@ type ViewOrder = "manual" | "sorted" | null;
1838
1943
  interface SavedViewSpec {
1839
1944
  name: string;
1840
1945
  /** The Table this view looks at. */
1841
- subject: Uuid$1;
1946
+ subject: Uuid;
1842
1947
  layout: ViewLayout;
1843
1948
  /** Kanban: the Field whose value becomes a column. */
1844
1949
  groupField?: string | null;
@@ -1876,7 +1981,7 @@ interface SavedViewSpec {
1876
1981
  * The membership Rule. The STORE decides who is in this view; this is a
1877
1982
  * reference to its Rule record, never a predicate this package evaluates.
1878
1983
  */
1879
- ruleId?: Uuid$1 | null;
1984
+ ruleId?: Uuid | null;
1880
1985
  /**
1881
1986
  * THE FLAT FILTER a digest or a notify rule wrote the view with — the one shape
1882
1987
  * `custom.record_filter_sql` compiles, by Field KEY. A view saved in the bar has
@@ -1913,7 +2018,7 @@ interface SavedViewSpec {
1913
2018
  * pressed in both keeps the latest — how Airtable and Notion keep a view change.
1914
2019
  */
1915
2020
  interface SavedView extends SavedViewSpec {
1916
- id: Uuid$1;
2021
+ id: Uuid;
1917
2022
  /** Where the view came from when it was moved in (the mover, the S0 repair), else null. */
1918
2023
  movedFrom: Record<string, unknown> | null;
1919
2024
  /**
@@ -2042,7 +2147,7 @@ declare function viewFromRow(row: SavedViewRow): SavedView;
2042
2147
  * SAVE ONE NEW VIEW of a Table — the bar's "New view" and an agent's seed spec.
2043
2148
  * One `view_declare` with no `view_id`; the answer is the new view's id.
2044
2149
  */
2045
- declare function declareView(client: Pick<RecordsClient, "viewDeclare">, spec: SavedViewSpec): Promise<RecordsResult<Uuid$1>>;
2150
+ declare function declareView(client: Pick<RecordsClient, "viewDeclare">, spec: SavedViewSpec): Promise<RecordsResult<Uuid>>;
2046
2151
  /**
2047
2152
  * WRITE A CHANGE ONTO A SAVED VIEW, AND KEEP IT.
2048
2153
  *
@@ -2058,7 +2163,7 @@ declare function declareView(client: Pick<RecordsClient, "viewDeclare">, spec: S
2058
2163
  * was removed, or belongs to a table this person cannot open — is handed back for
2059
2164
  * the page to say through the one notice.
2060
2165
  */
2061
- declare function saveViewPatch(client: Pick<RecordsClient, "viewDeclare">, tableId: Uuid$1, viewId: Uuid$1, patch: Partial<SavedViewSpec>): Promise<RecordsResult<Uuid$1>>;
2166
+ declare function saveViewPatch(client: Pick<RecordsClient, "viewDeclare">, tableId: Uuid, viewId: Uuid, patch: Partial<SavedViewSpec>): Promise<RecordsResult<Uuid>>;
2062
2167
  /**
2063
2168
  * A PARTIAL change to a saved view, as the definition keys the door merges. Only
2064
2169
  * the keys the caller actually changed are sent; a Field cleared (a board with no
@@ -2129,13 +2234,13 @@ declare function handOrderSortState(args: {
2129
2234
  * key (`names.ts`) — and the cell is the value, rendered by its parity type and
2130
2235
  * editable in place when an editing session is passed.
2131
2236
  */
2132
- declare function columnForField(field: Field$1, editing?: GridEditing | null, mayWriteRow?: (rowId: Uuid) => boolean, whyNotRow?: (rowId: Uuid) => string, look?: {
2237
+ declare function columnForField(field: Field$1, editing?: GridEditing | null, mayWriteRow?: (rowId: Uuid$1) => boolean, whyNotRow?: (rowId: Uuid$1) => string, look?: {
2133
2238
  format?: FieldFormatConfig;
2134
2239
  frozen?: boolean;
2135
2240
  rowLabel?: boolean;
2136
2241
  },
2137
2242
  /** "Who changed this?" from the cell's own menu. Absent, no control is drawn. */
2138
- onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined,
2243
+ onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined,
2139
2244
  /**
2140
2245
  * PRODUCTS row 10 — the provenance of a cell a MODEL owns. `cellFor` answers the page's
2141
2246
  * already-fetched badge data for one row; `onPin` is bound only where this person may
@@ -2143,8 +2248,8 @@ onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined,
2143
2248
  * have. Absent entirely, no badge is drawn and the column looks exactly as it did.
2144
2249
  */
2145
2250
  enrich?: {
2146
- cellFor: (recordId: Uuid) => _ai_matrx_records.EnrichCell | undefined;
2147
- onPin?: ((recordId: Uuid, fieldKey: string, pinned: boolean) => void | Promise<void>) | undefined;
2251
+ cellFor: (recordId: Uuid$1) => _ai_matrx_records.EnrichCell | undefined;
2252
+ onPin?: ((recordId: Uuid$1, fieldKey: string, pinned: boolean) => void | Promise<void>) | undefined;
2148
2253
  }): MatrxColumnDef<ReadRow$1>;
2149
2254
 
2150
2255
  declare const NO_COLUMNS_YET = "This table has no columns yet";
@@ -2157,7 +2262,7 @@ declare const NO_COLUMNS_YET = "This table has no columns yet";
2157
2262
  */
2158
2263
  interface GridViewOrder {
2159
2264
  /** The saved view's id; `null` for a view a host holds inline (it still carries its own `sorts`). */
2160
- viewId: Uuid | null;
2265
+ viewId: Uuid$1 | null;
2161
2266
  /** The view's own order word (`definition.order`). */
2162
2267
  order: ViewOrder;
2163
2268
  /** The view's own sort (`definition.sorts`) — where a sorted view OPENS, over the table's. */
@@ -2174,7 +2279,7 @@ interface GridViewOrder {
2174
2279
  onUseSort?: ((sort: ColumnSort) => void) | undefined;
2175
2280
  }
2176
2281
  interface GridProps {
2177
- tableId: Uuid;
2282
+ tableId: Uuid$1;
2178
2283
  /** Rows per page. The table's own pagination handles the rest. */
2179
2284
  pageSize?: number | undefined;
2180
2285
  /**
@@ -2198,13 +2303,13 @@ interface GridProps {
2198
2303
  */
2199
2304
  onClearFilter?: (() => void) | undefined;
2200
2305
  /** Opened from a row's handle, Space or the row menu. A host that has a record page passes its own. */
2201
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
2306
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
2202
2307
  /**
2203
2308
  * THE RECORD THE HOST HAS OPEN BESIDE THE GRID, if any (merged grid). While one is open the panel
2204
2309
  * FOLLOWS the cursor: arrowing to another row opens that row (Airtable's expanded record walks
2205
2310
  * with the arrows), so the panel always shows the row the person is on.
2206
2311
  */
2207
- openRecordId?: Uuid | null | undefined;
2312
+ openRecordId?: Uuid$1 | null | undefined;
2208
2313
  /**
2209
2314
  * CLOSE THE RECORD PANEL (grids review 3, lane H item 5): Escape on the grid, and Space on the row
2210
2315
  * that is already open, put it away — Airtable's expanded record toggles the same way. Unbound,
@@ -2221,7 +2326,7 @@ interface GridProps {
2221
2326
  * (`custom.field_history`), and the host decides where the answer appears —
2222
2327
  * a side panel, a window, a route. Unbound, the control is ABSENT, not dead.
2223
2328
  */
2224
- onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined;
2329
+ onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined;
2225
2330
  /**
2226
2331
  * The host's whole-record form. Offered BY NAME when the store refuses an
2227
2332
  * empty record — a Table with a required Field cannot be added to one cell at
@@ -2314,7 +2419,7 @@ interface RecordsTableCardProps {
2314
2419
  */
2315
2420
  source: {
2316
2421
  kind: "table";
2317
- id: Uuid$1;
2422
+ id: Uuid;
2318
2423
  } | {
2319
2424
  kind: "entity";
2320
2425
  token: string;
@@ -2331,7 +2436,7 @@ interface RecordsTableCardProps {
2331
2436
  initialRows?: number;
2332
2437
  headingLevel?: 2 | 3;
2333
2438
  /** Opened from a row. The host's record page, when it has one. */
2334
- onOpenRecord?: (recordId: Uuid$1) => void;
2439
+ onOpenRecord?: (recordId: Uuid) => void;
2335
2440
  /** Cells editable in place (the Grid's own rule still applies per field and per right). */
2336
2441
  editable?: boolean;
2337
2442
  className?: string;
@@ -2389,7 +2494,7 @@ declare function useRecordLabels(fields: readonly Field$1[] | undefined): LabelL
2389
2494
  declare function useLabelWait(field: Field$1 | undefined): string | null;
2390
2495
 
2391
2496
  interface ExportMenuProps {
2392
- tableId: Uuid;
2497
+ tableId: Uuid$1;
2393
2498
  /** The rows on screen. Absent means "this table's first page", read the same way. */
2394
2499
  rows?: ReadRow$1[] | undefined;
2395
2500
  /** What the file is called. The table's name by default. */
@@ -2446,7 +2551,7 @@ interface ImportSource {
2446
2551
  text: string;
2447
2552
  }
2448
2553
  interface ImportWizardProps {
2449
- tableId: Uuid;
2554
+ tableId: Uuid$1;
2450
2555
  /** Rows to import instead of a file. When present the file control is not offered. */
2451
2556
  source?: ImportSource | undefined;
2452
2557
  /**
@@ -2477,7 +2582,7 @@ declare function ImportWizard({ tableId, source, onDone, onWrote, className }: I
2477
2582
  /** The run a table's notice is about: the newest finished one that refused rows. */
2478
2583
  declare function runToNotice(runs: ReadonlyArray<ImportRun>): ImportRun | null;
2479
2584
  interface ImportNoticeProps {
2480
- tableId: Uuid;
2585
+ tableId: Uuid$1;
2481
2586
  /** Opens the import rail, where the run and its rows are listed. */
2482
2587
  onOpenImport?: (() => void) | undefined;
2483
2588
  /** Bumped by the host when an import just finished, so the notice re-reads. */
@@ -2554,9 +2659,9 @@ interface SaveToTableProps {
2554
2659
  /** When the text holds several shapes, the one to open on (the one the person right-clicked). */
2555
2660
  shapeIndex?: number | undefined;
2556
2661
  /** Open a table (after it was made, or rows were added). Absent: no "Open" button is drawn. */
2557
- onOpenTable?: ((tableId: Uuid) => void) | undefined;
2662
+ onOpenTable?: ((tableId: Uuid$1) => void) | undefined;
2558
2663
  /** The rows landed — `new` when this screen made the table. */
2559
- onSaved?: ((tableId: Uuid, how: "new" | "existing") => void) | undefined;
2664
+ onSaved?: ((tableId: Uuid$1, how: "new" | "existing") => void) | undefined;
2560
2665
  /** The person is finished (the report's Done). */
2561
2666
  onClose?: (() => void) | undefined;
2562
2667
  className?: string | undefined;
@@ -2571,7 +2676,7 @@ interface CustomFieldsSectionProps {
2571
2676
  /** The standard table's registered token (REC-33), e.g. `party`, `crm_deal`. */
2572
2677
  entityToken: string;
2573
2678
  /** The id of the row this page is showing. */
2574
- recordId: Uuid;
2679
+ recordId: Uuid$1;
2575
2680
  /** The heading. One row, no subtitle restating it. */
2576
2681
  title?: string | undefined;
2577
2682
  className?: string | undefined;
@@ -2608,7 +2713,7 @@ interface CustomFieldAddRequest {
2608
2713
  }
2609
2714
  type CustomFieldAddResult = {
2610
2715
  ok: true;
2611
- field_id: Uuid;
2716
+ field_id: Uuid$1;
2612
2717
  label: string;
2613
2718
  type: string;
2614
2719
  } | {
@@ -2618,7 +2723,7 @@ type CustomFieldAddResult = {
2618
2723
  /** What the section holds right now, in words an agent can act on. */
2619
2724
  interface CustomFieldsAgentState {
2620
2725
  entityToken: string;
2621
- recordId: Uuid;
2726
+ recordId: Uuid$1;
2622
2727
  /** The entity's own label ("Deal") once the rights read answered. */
2623
2728
  entityLabel: string | null;
2624
2729
  /** `null` while the rights read is in flight. */
@@ -2655,7 +2760,7 @@ type CustomFieldSetResult = {
2655
2760
  };
2656
2761
  interface CustomFieldsAgentDoor {
2657
2762
  entityToken: string;
2658
- recordId: Uuid;
2763
+ recordId: Uuid$1;
2659
2764
  state: () => CustomFieldsAgentState;
2660
2765
  /**
2661
2766
  * Every problem with the request, all at once, or `[]`. Nothing is written.
@@ -2859,7 +2964,7 @@ interface FieldEditorCommon {
2859
2964
  * custom-table doors.
2860
2965
  */
2861
2966
  type FieldEditorProps = FieldEditorCommon & ({
2862
- tableId: Uuid$1;
2967
+ tableId: Uuid;
2863
2968
  entityToken?: undefined;
2864
2969
  /** The Field being edited. Absent means a new one. */
2865
2970
  field?: Field | undefined;
@@ -2899,7 +3004,7 @@ declare const NO_RULES_YET = "Nothing has to be true to get here yet.";
2899
3004
  declare const NEEDS_A_SENTENCE = "Write the sentence somebody reads when this stops them, the way you would say it out loud.";
2900
3005
  declare const NOT_DRAWN_HERE = "This part of the rule is not something this builder can draw yet";
2901
3006
  interface StageRulesSectionProps {
2902
- tableId: Uuid;
3007
+ tableId: Uuid$1;
2903
3008
  /** Which stage's rules to edit. Left out, the section opens on the first stage. */
2904
3009
  stage?: string | undefined;
2905
3010
  className?: string | undefined;
@@ -3023,7 +3128,7 @@ declare const TABLE_NAME_MAX = 120;
3023
3128
  /** Why a typed table name cannot be kept, or null when it can. */
3024
3129
  declare function tableNameProblem(typed: string): string | null;
3025
3130
  declare function TableRenameDialog({ tableId, name, open, onOpenChange, onRenamed, }: {
3026
- tableId: Uuid$1;
3131
+ tableId: Uuid;
3027
3132
  /** The table's name as it is kept now. */
3028
3133
  name: string;
3029
3134
  open: boolean;
@@ -3055,7 +3160,7 @@ interface FieldProposalRow {
3055
3160
  proposed_by: string;
3056
3161
  }
3057
3162
  interface TableSettingsProps {
3058
- tableId: Uuid;
3163
+ tableId: Uuid$1;
3059
3164
  /**
3060
3165
  * SCR-5. Pending field proposals. The door that lists them
3061
3166
  * (`custom.field_propose`) does not exist yet — `@ai-matrx/records` answers
@@ -3079,20 +3184,24 @@ interface TableSettingsProps {
3079
3184
  columns?: ColumnsLook | undefined;
3080
3185
  className?: string | undefined;
3081
3186
  }
3082
- declare function TableSettings({ tableId, proposals, onAcceptProposal, onRejectProposal, archiveAsked, columns, className, }: TableSettingsProps): react.JSX.Element;
3187
+ /**
3188
+ * THE PANEL, AND WHAT AN AGENT MAY SEE AND STAGE IN IT. A host that binds `settingsAgent` is handed
3189
+ * the panel's agent (what it shows, three staging calls) and wraps the panel in its own surface.
3190
+ */
3191
+ declare function TableSettings(props: TableSettingsProps): react.JSX.Element;
3083
3192
 
3084
3193
  /** Whether a Table document marks the table as Foundation. Absent is no — the store's own rule. */
3085
3194
  declare function isFoundationTable(table: Pick<Table, "foundation"> | {
3086
3195
  foundation?: unknown;
3087
3196
  } | null | undefined): boolean;
3088
3197
  declare function TableFoundationSwitch({ tableId, table }: {
3089
- tableId: Uuid$1;
3198
+ tableId: Uuid;
3090
3199
  table: Table;
3091
3200
  }): react.JSX.Element;
3092
3201
 
3093
3202
  interface PeekProps {
3094
- tableId: Uuid;
3095
- recordId: Uuid;
3203
+ tableId: Uuid$1;
3204
+ recordId: Uuid$1;
3096
3205
  onClose?: (() => void) | undefined;
3097
3206
  className?: string | undefined;
3098
3207
  /**
@@ -3123,11 +3232,11 @@ declare function standardTokenOf(token: string): string;
3123
3232
  interface StandardRecordFormProps {
3124
3233
  /** The standard table, by registry token: `entity:party` (or the bare `party`). */
3125
3234
  token: string;
3126
- recordId: Uuid;
3235
+ recordId: Uuid$1;
3127
3236
  /** The row's own columns, in the order shown. */
3128
3237
  columns: readonly StandardColumn[];
3129
3238
  /** Called after a value was saved, so the host re-reads what it shows elsewhere (a title). */
3130
- onSaved?: ((recordId: Uuid) => void) | undefined;
3239
+ onSaved?: ((recordId: Uuid$1) => void) | undefined;
3131
3240
  className?: string | undefined;
3132
3241
  /** The custom-fields half: its heading and the host's doors (agent door, own-table offer, noun). */
3133
3242
  custom?: Omit<CustomFieldsSectionProps, "entityToken" | "recordId" | "className"> | undefined;
@@ -3138,7 +3247,7 @@ declare function StandardRecordForm({ token, recordId, columns, onSaved, classNa
3138
3247
 
3139
3248
  interface RecordFormProps {
3140
3249
  /** A CUSTOM table's id. Give `token` instead for a row of a standard table. */
3141
- tableId?: Uuid | undefined;
3250
+ tableId?: Uuid$1 | undefined;
3142
3251
  /**
3143
3252
  * STANDARD-TABLE MODE (FTS-2b wave 6): a registry token, `entity:party` (or the bare `party`).
3144
3253
  * The form reads and writes that row through the store's standard-row doors, as the person —
@@ -3153,10 +3262,10 @@ interface RecordFormProps {
3153
3262
  /** Standard mode: the host's own controls on this row, between the columns and the custom fields. */
3154
3263
  children?: ReactNode;
3155
3264
  /** Absent means "create". Present means "edit that record". */
3156
- recordId?: Uuid | undefined;
3265
+ recordId?: Uuid$1 | undefined;
3157
3266
  /** FLD-10: which Fields apply is the store's decision, and it takes the record type. */
3158
3267
  recordType?: string | undefined;
3159
- onSaved?: ((recordId: Uuid) => void) | undefined;
3268
+ onSaved?: ((recordId: Uuid$1) => void) | undefined;
3160
3269
  onCancel?: (() => void) | undefined;
3161
3270
  className?: string | undefined;
3162
3271
  /**
@@ -3647,7 +3756,7 @@ declare function pickableTypeOf(field: Field): PickableFieldType | undefined;
3647
3756
  declare function fieldTypeLabel(field: Field): string;
3648
3757
 
3649
3758
  /** The one token form, written the way the store's own pattern reads it. */
3650
- declare function fieldToken(fieldId: Uuid$1): string;
3759
+ declare function fieldToken(fieldId: Uuid): string;
3651
3760
  /** THE DECLARATIVE SPEC an agent writes. One template, whole, in one object. */
3652
3761
  interface DocTemplateSpec {
3653
3762
  name: string;
@@ -3786,7 +3895,7 @@ interface SystemFieldSpec {
3786
3895
  * every organization's first load, which is the class this file just cost us.
3787
3896
  */
3788
3897
  options?: string[];
3789
- relationTarget?: Uuid$1;
3898
+ relationTarget?: Uuid;
3790
3899
  expr?: Record<string, unknown>;
3791
3900
  }
3792
3901
  interface SystemTableSpec {
@@ -3801,13 +3910,13 @@ interface SystemTableSpec {
3801
3910
  /** Find this organization's copy of a package-owned Table, declaring it the first time. */
3802
3911
  declare function ensureSystemTable(client: RecordsClient, spec: SystemTableSpec): Promise<{
3803
3912
  ok: true;
3804
- data: Uuid$1;
3913
+ data: Uuid;
3805
3914
  } | {
3806
3915
  ok: false;
3807
3916
  error: RecordsError;
3808
3917
  }>;
3809
3918
  interface UseSystemTableState {
3810
- tableId: Uuid$1 | null;
3919
+ tableId: Uuid | null;
3811
3920
  loading: boolean;
3812
3921
  error: RecordsError | null;
3813
3922
  }
@@ -3844,7 +3953,7 @@ declare function archiveConfirmSentence(what: string): string;
3844
3953
  interface AnnounceTableArchived {
3845
3954
  notify: RecordsUiHost["notify"];
3846
3955
  client: Pick<RecordsClient, "tableRestoreWhole">;
3847
- tableId: Uuid$1;
3956
+ tableId: Uuid;
3848
3957
  /** The table's name as the store gave it. */
3849
3958
  name: string;
3850
3959
  /** Called once the table is back, so the surface can show it again. */
@@ -3884,9 +3993,9 @@ declare function saveToViewPlan(view: SavedView, look: ViewLook): {
3884
3993
  left: ViewLook | null;
3885
3994
  };
3886
3995
  /** The caller's own looks at every view of a table, by view id. */
3887
- declare function readLooks(client: Pick<RecordsClient, "viewLookRead">, tableId: Uuid$1): Promise<RecordsResult<Record<string, ViewLook>>>;
3996
+ declare function readLooks(client: Pick<RecordsClient, "viewLookRead">, tableId: Uuid): Promise<RecordsResult<Record<string, ViewLook>>>;
3888
3997
  /** Keep the whole look (null: "Reset to view"). The shared view is never written. */
3889
- declare function keepLook(client: Pick<RecordsClient, "viewLookSet">, tableId: Uuid$1, viewId: Uuid$1, look: ViewLook | null): Promise<RecordsResult<Record<string, unknown> | null>>;
3998
+ declare function keepLook(client: Pick<RecordsClient, "viewLookSet">, tableId: Uuid, viewId: Uuid, look: ViewLook | null): Promise<RecordsResult<Record<string, unknown> | null>>;
3890
3999
  /** The words of the look bar. One sentence, then the doors. */
3891
4000
  declare const LOOK_WORDS: {
3892
4001
  /** The reason, for a tooltip or a screen reader — never a line on the page (interface-text). */
@@ -3921,9 +4030,9 @@ interface ViewSwitcherProps {
3921
4030
  * and the screen says the choice is not being kept.
3922
4031
  */
3923
4032
  onViewChange?: ((patch: Partial<SavedViewSpec>) => void) | undefined;
3924
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
4033
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
3925
4034
  /** The record the host has open beside a grid, which the grid's panel then follows (`Grid.openRecordId`). */
3926
- openRecordId?: Uuid | null | undefined;
4035
+ openRecordId?: Uuid$1 | null | undefined;
3927
4036
  /** Put the record panel away (Escape, or Space on the open row): `Grid.onCloseRecord`. */
3928
4037
  onCloseRecord?: (() => void) | undefined;
3929
4038
  /**
@@ -3935,7 +4044,7 @@ interface ViewSwitcherProps {
3935
4044
  /** The host's whole-record form, offered by the grid when an empty record is refused. */
3936
4045
  onNewRecordForm?: (() => void) | undefined;
3937
4046
  /** "Who changed this?" from a grid cell — the host opens that column's timeline. */
3938
- onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined;
4047
+ onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined;
3939
4048
  pageSize?: number | undefined;
3940
4049
  /**
3941
4050
  * THE TABLE'S OWN TITLE COLUMN (`title_field`, REC-2), from the table the host already holds.
@@ -3980,7 +4089,7 @@ interface ViewSwitcherProps {
3980
4089
  * it (`custom.view_record_order_set`, Reorder → Save) through it. Left out — a literal spec —
3981
4090
  * the view has no hand order and the grid offers no Reorder.
3982
4091
  */
3983
- viewId?: Uuid | null | undefined;
4092
+ viewId?: Uuid$1 | null | undefined;
3984
4093
  /**
3985
4094
  * The rows were placed by hand: the store made this view manual and removed its sort. The host
3986
4095
  * updates the view it holds (nothing is written — the store already did).
@@ -4012,7 +4121,7 @@ interface ViewSwitcherProps {
4012
4121
  className?: string | undefined;
4013
4122
  }
4014
4123
  /** The records this view holds: its Rule's members when it names one, the table otherwise. */
4015
- declare function useViewRecords(view: SavedViewSpec, pageSize?: number, filter?: StoreFilter, viewId?: Uuid | null): {
4124
+ declare function useViewRecords(view: SavedViewSpec, pageSize?: number, filter?: StoreFilter, viewId?: Uuid$1 | null): {
4016
4125
  rows: ReadRow$1[];
4017
4126
  manual: boolean;
4018
4127
  /** How many records the view holds, as the store counted them (null when it did not count). */
@@ -4043,7 +4152,7 @@ declare function ViewSwitcher({ view, onLayoutChange, onViewChange, onOpenRecord
4043
4152
  type CalendarMode = "month" | "week" | "day" | "list";
4044
4153
  interface CalendarViewProps {
4045
4154
  /** The table the records live in — the undo history's table, and where a new record is made. */
4046
- tableId: Uuid;
4155
+ tableId: Uuid$1;
4047
4156
  rows: readonly ReadRow$1[];
4048
4157
  /** The column a record's day (and, when it carries one, its time) is read from and written to. */
4049
4158
  dateField: Field$1;
@@ -4064,7 +4173,7 @@ interface CalendarViewProps {
4064
4173
  endKept?: boolean | undefined;
4065
4174
  /** The column that names each card (`cardTitleField`). */
4066
4175
  titleField: Field$1 | undefined;
4067
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
4176
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
4068
4177
  /** A move landed (or was undone, or refused): the host re-reads the rows it owns. */
4069
4178
  onMoved?: (() => void) | undefined;
4070
4179
  /** The person picked a Colour by column: the host keeps it on the view (`presentation.style.colorBy`). */
@@ -4115,7 +4224,7 @@ interface TimelineViewProps {
4115
4224
  /** The fields each bar shows after its title (the view's Card fields, v7 item 4). */
4116
4225
  cardFields?: readonly Field$1[] | undefined;
4117
4226
  /** The table the records live in — the undo history's table. */
4118
- tableId: Uuid;
4227
+ tableId: Uuid$1;
4119
4228
  rows: readonly ReadRow$1[];
4120
4229
  /** The table's columns: the pickers, the lanes and the colours read them. */
4121
4230
  fields: readonly Field$1[];
@@ -4135,7 +4244,7 @@ interface TimelineViewProps {
4135
4244
  onSettingsChange?: ((patch: Partial<TimelineSettings>) => void) | undefined;
4136
4245
  /** False when the host cannot keep the layout or the End on the view: the toolbar says so. */
4137
4246
  layoutKept?: boolean | undefined;
4138
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
4247
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
4139
4248
  /** A move landed (or was undone): the host re-reads the rows it owns. */
4140
4249
  onMoved?: (() => void) | undefined;
4141
4250
  /** The view's membership sentence (`useViewRecords().membership`). */
@@ -4158,7 +4267,7 @@ declare function useRowColorBy(all: readonly Field$1[], colorKey: string | null,
4158
4267
 
4159
4268
  /** One cell a change touched: its value before and after, by Field key. */
4160
4269
  interface TouchedCell {
4161
- rowId: Uuid$1;
4270
+ rowId: Uuid;
4162
4271
  key: string;
4163
4272
  before: unknown;
4164
4273
  after: unknown;
@@ -4176,9 +4285,9 @@ interface GridUndoStep {
4176
4285
  label: string;
4177
4286
  cells: TouchedCell[];
4178
4287
  /** Records this change created — undo archives them. */
4179
- created?: Uuid$1[] | undefined;
4288
+ created?: Uuid[] | undefined;
4180
4289
  /** Records this change archived — undo restores them. */
4181
- archived?: Uuid$1[] | undefined;
4290
+ archived?: Uuid[] | undefined;
4182
4291
  /** The after-values are the store's own (a row action worked them out), so it cannot be redone. */
4183
4292
  noRedo?: boolean | undefined;
4184
4293
  /**
@@ -4187,7 +4296,7 @@ interface GridUndoStep {
4187
4296
  * delete was no step at all, so Cmd-Z after it silently undid the OLDER cell edit beneath it.
4188
4297
  */
4189
4298
  retiredField?: {
4190
- fieldId: Uuid$1;
4299
+ fieldId: Uuid;
4191
4300
  } | undefined;
4192
4301
  }
4193
4302
  interface GridUndo {
@@ -4213,7 +4322,7 @@ interface GridUndo {
4213
4322
  * Say something beside the last step without a step. `sticky` (a paste the store refused, a
4214
4323
  * read-back that came up short) stays until dismissed; otherwise it leaves by itself.
4215
4324
  */
4216
- say: (says: string, sticky?: boolean) => void;
4325
+ say: (says: string, sticky?: boolean, offerUndo?: boolean) => void;
4217
4326
  }
4218
4327
 
4219
4328
  /** What one write answered: done (with the version it made), or the store's refusal. */
@@ -4229,7 +4338,7 @@ type MoveWritten = {
4229
4338
  * means the caller does not know it — the write is then NOT sent, because a write with no version
4230
4339
  * is a write that can overwrite a colleague (said as a refusal, never silently).
4231
4340
  */
4232
- declare function moveRecordValue(client: Pick<ReturnType<typeof useRecordsClient>, "recordUpdate" | "recordUpdateAddingChoices">, recordId: Uuid$1, patch: Record<string, unknown>, expectedVersion: number | null): Promise<MoveWritten>;
4341
+ declare function moveRecordValue(client: Pick<ReturnType<typeof useRecordsClient>, "recordUpdate" | "recordUpdateAddingChoices">, recordId: Uuid, patch: Record<string, unknown>, expectedVersion: number | null): Promise<MoveWritten>;
4233
4342
  interface RecordMoves {
4234
4343
  /**
4235
4344
  * Move one record: `patch` is the new values by Field key, `before` the values it held (read from
@@ -4237,20 +4346,20 @@ interface RecordMoves {
4237
4346
  * Answers whether the store took it.
4238
4347
  */
4239
4348
  move: (args: {
4240
- recordId: Uuid$1;
4349
+ recordId: Uuid;
4241
4350
  patch: Record<string, unknown>;
4242
4351
  before: Record<string, unknown>;
4243
4352
  label: string;
4244
4353
  }) => Promise<boolean>;
4245
4354
  /** Make one record from a gesture (a click on a day, a drag across hours): ONE write, one undo step. */
4246
4355
  create: (args: {
4247
- tableId: Uuid$1;
4356
+ tableId: Uuid;
4248
4357
  data: Record<string, unknown>;
4249
4358
  label: string;
4250
- }) => Promise<Uuid$1 | null>;
4359
+ }) => Promise<Uuid | null>;
4251
4360
  /** The refusal the store gave the last move, and the record it is about — a badge on that card. */
4252
4361
  refused: {
4253
- recordId: Uuid$1;
4362
+ recordId: Uuid;
4254
4363
  error: RecordsError;
4255
4364
  changedElsewhere: boolean;
4256
4365
  unread?: boolean | undefined;
@@ -4265,7 +4374,7 @@ interface RecordMoves {
4265
4374
  notice: ReactElement;
4266
4375
  }
4267
4376
  declare function useRecordMoves({ tableId, rows, onMoved, }: {
4268
- tableId: Uuid$1;
4377
+ tableId: Uuid;
4269
4378
  /** The rows the layout drew — their versions are what a move is written against. */
4270
4379
  rows: readonly ReadRow[];
4271
4380
  onMoved?: (() => void) | undefined;
@@ -4278,7 +4387,7 @@ declare function mayNotRestoreLine(why: string): string;
4278
4387
  /** What one row in the archive says, as one string — pulled out so the guard can read it. */
4279
4388
  declare function archivedRowLine(row: ArchivedRow, titleKey?: string | null): string;
4280
4389
  interface ArchivedViewProps {
4281
- tableId: Uuid$1;
4390
+ tableId: Uuid;
4282
4391
  /** Rows per page. The store refuses above its own ceiling by name rather than quietly serving fewer. */
4283
4392
  pageSize?: number | undefined;
4284
4393
  /** Which lane the address or the host asked for. Absent, the organization's. */
@@ -4286,7 +4395,7 @@ interface ArchivedViewProps {
4286
4395
  /** Called when the person switches lane, so the host can put it in the URL. */
4287
4396
  onLaneChange?: ((lane: ArchiveLane) => void) | undefined;
4288
4397
  /** Called after a record comes back, so the host re-reads the rows it owns. */
4289
- onRestored?: ((recordId: Uuid$1) => void) | undefined;
4398
+ onRestored?: ((recordId: Uuid) => void) | undefined;
4290
4399
  className?: string | undefined;
4291
4400
  }
4292
4401
  declare function ArchivedView({ tableId, pageSize, lane: laneFromHost, onLaneChange, onRestored, className, }: ArchivedViewProps): react.JSX.Element;
@@ -4317,7 +4426,7 @@ interface ArchivedDisclosureProps {
4317
4426
  declare function ArchivedDisclosure({ noun, count, defaultOpen, onOpenChange, children, className, }: ArchivedDisclosureProps): react.JSX.Element;
4318
4427
  interface ArchivedPortalsProps {
4319
4428
  /** Called after a portal comes back, so the rail re-reads the list it owns. */
4320
- onRestored?: ((portalId: Uuid) => void) | undefined;
4429
+ onRestored?: ((portalId: Uuid$1) => void) | undefined;
4321
4430
  /**
4322
4431
  * Bumped by the surface above whenever IT changed something that lands here —
4323
4432
  * archiving a portal from the live rail, most of all. Without it an archive
@@ -4342,9 +4451,9 @@ declare function ArchivedPortals({ onRestored, refreshToken, defaultOpen, classN
4342
4451
 
4343
4452
  interface ViewBarProps {
4344
4453
  /** The Table whose views these are. */
4345
- tableId: Uuid;
4454
+ tableId: Uuid$1;
4346
4455
  /** The view that is showing. Leave it out and the bar picks the default, then the first. */
4347
- activeViewId?: Uuid | null | undefined;
4456
+ activeViewId?: Uuid$1 | null | undefined;
4348
4457
  onActiveView?: ((view: SavedView) => void) | undefined;
4349
4458
  /**
4350
4459
  * COMPLETE DECLARATIVE SPECS an agent wrote. Any of these whose name this
@@ -4387,9 +4496,9 @@ interface ProposedChange {
4387
4496
  * required field a caller cannot fill is a field that gets filled with
4388
4497
  * something untrue.
4389
4498
  */
4390
- table?: Uuid | undefined;
4499
+ table?: Uuid$1 | undefined;
4391
4500
  /** The record it changes. Required for `update` and `remove`. */
4392
- record?: Uuid | undefined;
4501
+ record?: Uuid$1 | undefined;
4393
4502
  /** The document for `add`, or the patch for `update`. */
4394
4503
  data?: Record<string, unknown> | undefined;
4395
4504
  /**
@@ -4463,19 +4572,19 @@ interface ActionInboxProps {
4463
4572
  * (lane S5-PRIME), so this narrows approvals, proposals and assignments alike;
4464
4573
  * when the table has nothing, the inbox says how many wait elsewhere and offers them.
4465
4574
  */
4466
- tableId?: Uuid | null | undefined;
4575
+ tableId?: Uuid$1 | null | undefined;
4467
4576
  /** Show decided rows too, from the start. `h` (or the button) toggles it. */
4468
4577
  includeSettled?: boolean | undefined;
4469
4578
  /** How the rows start out grouped. Default: by kind. */
4470
4579
  defaultGroupBy?: InboxGrouping | undefined;
4471
- onOpenRecord?: ((recordId: Uuid, tableId: Uuid) => void) | undefined;
4580
+ onOpenRecord?: ((recordId: Uuid$1, tableId: Uuid$1) => void) | undefined;
4472
4581
  className?: string | undefined;
4473
4582
  }
4474
4583
  declare function ActionInbox({ tableId, includeSettled, defaultGroupBy, onOpenRecord, className, }: ActionInboxProps): react.JSX.Element;
4475
4584
 
4476
4585
  interface HistoryPanelProps {
4477
- tableId: Uuid;
4478
- recordId: Uuid;
4586
+ tableId: Uuid$1;
4587
+ recordId: Uuid$1;
4479
4588
  /**
4480
4589
  * "Who changed THIS column?" — the host opens that field's own timeline. Left
4481
4590
  * out, the per-field control is absent rather than dead.
@@ -4487,9 +4596,9 @@ declare function HistoryPanel({ tableId, recordId, onAskAboutField, className }:
4487
4596
 
4488
4597
  interface CommentThreadProps {
4489
4598
  /** The Table the commented-on record belongs to — its Fields name an anchor. */
4490
- tableId: Uuid;
4599
+ tableId: Uuid$1;
4491
4600
  /** The record being discussed. */
4492
- recordId: Uuid;
4601
+ recordId: Uuid$1;
4493
4602
  /** Open on the thread about ONE column, and post there by default. */
4494
4603
  fieldKey?: string | undefined;
4495
4604
  className?: string | undefined;
@@ -4497,15 +4606,15 @@ interface CommentThreadProps {
4497
4606
  declare function CommentThread({ tableId, recordId, fieldKey, className }: CommentThreadProps): react.JSX.Element;
4498
4607
 
4499
4608
  interface FieldHistoryPanelProps {
4500
- tableId: Uuid;
4609
+ tableId: Uuid$1;
4501
4610
  /** The column being asked about, by its key. */
4502
4611
  fieldKey: string;
4503
4612
  /** Scoped to ONE record when present; the whole Table when absent. */
4504
- recordId?: Uuid | undefined;
4613
+ recordId?: Uuid$1 | undefined;
4505
4614
  /** The host's way back — a cell menu opens this, so it closes too. */
4506
4615
  onClose?: (() => void) | undefined;
4507
4616
  /** Open a record from one of its rows. Absent, the row is not a link. */
4508
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
4617
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
4509
4618
  className?: string | undefined;
4510
4619
  }
4511
4620
  declare function FieldHistoryPanel({ tableId, fieldKey, recordId, onClose, onOpenRecord, className, }: FieldHistoryPanelProps): react.JSX.Element;
@@ -4545,8 +4654,8 @@ interface FormTheme {
4545
4654
  */
4546
4655
  interface FormLook {
4547
4656
  accent?: PortalAccent | null;
4548
- logoFileId?: Uuid$1 | null;
4549
- coverFileId?: Uuid$1 | null;
4657
+ logoFileId?: Uuid | null;
4658
+ coverFileId?: Uuid | null;
4550
4659
  }
4551
4660
  /** The screen after sending: the form's words, and optionally where to go next. */
4552
4661
  interface FormThankYou {
@@ -4559,7 +4668,7 @@ interface FormThankYou {
4559
4668
  interface FormSpec {
4560
4669
  name: string;
4561
4670
  /** The Table a submission lands in. */
4562
- subject: Uuid$1;
4671
+ subject: Uuid;
4563
4672
  intro?: string | null;
4564
4673
  questions: FormQuestionSpec[];
4565
4674
  flow?: FormFlow | null;
@@ -4595,7 +4704,7 @@ interface FormSpec {
4595
4704
  * read here and handed straight back by `formDeclareArgs`.
4596
4705
  */
4597
4706
  interface SavedForm extends FormSpec {
4598
- id: Uuid$1;
4707
+ id: Uuid;
4599
4708
  /** draft · open · closed · full — the store's own word, never derived on a screen. */
4600
4709
  state: FormSummary["state"];
4601
4710
  /** The form's readable name in the store. `form_declare` keeps it across saves. */
@@ -4603,9 +4712,9 @@ interface SavedForm extends FormSpec {
4603
4712
  /** Stops taking answers at this many. Null is no ceiling. */
4604
4713
  submissionCap: number | null;
4605
4714
  /** The accept Rule: what counts as a complete answer. Null holds every answer for a person. */
4606
- quarantineRuleId: Uuid$1 | null;
4715
+ quarantineRuleId: Uuid | null;
4607
4716
  /** The subscription Rule that tells somebody an answer arrived. */
4608
- notifyRuleId: Uuid$1 | null;
4717
+ notifyRuleId: Uuid | null;
4609
4718
  }
4610
4719
  /**
4611
4720
  * The spec as `custom.anon_form.presentation` holds it.
@@ -4621,14 +4730,14 @@ declare function formLookDocument(look: FormLook | null): Record<string, unknown
4621
4730
  declare function formLookFromDocument(raw: unknown): FormLook | null;
4622
4731
  /** The exact arguments `custom.form_declare` is called with, for a new form or a re-statement. */
4623
4732
  declare function formDeclareArgs(form: FormSpec | SavedForm): {
4624
- table_id: Uuid$1;
4733
+ table_id: Uuid;
4625
4734
  title: string;
4626
4735
  questions: FormQuestionSpec[];
4627
4736
  presentation: Record<string, unknown>;
4628
4737
  submission_cap: number | null;
4629
- quarantine_rule_id: Uuid$1 | null;
4630
- notify_rule_id: Uuid$1 | null;
4631
- form_id: Uuid$1 | null;
4738
+ quarantine_rule_id: Uuid | null;
4739
+ notify_rule_id: Uuid | null;
4740
+ form_id: Uuid | null;
4632
4741
  slug: string | null;
4633
4742
  };
4634
4743
  /** One row of `custom.forms` back into the spec a screen and an agent both read. */
@@ -4641,7 +4750,7 @@ declare function formFromSummary(summary: FormSummary): SavedForm;
4641
4750
  * through export, History and the agent's context without a parallel table.
4642
4751
  */
4643
4752
  declare function submissionStamp(args: {
4644
- formId: Uuid$1 | null;
4753
+ formId: Uuid | null;
4645
4754
  formName: string;
4646
4755
  actor: string;
4647
4756
  onBehalfOf?: string | null;
@@ -4652,10 +4761,10 @@ interface PortalBuilderProps {
4652
4761
  * OPTIONAL. The Table whose rail this was opened from. It is pre-ticked as a
4653
4762
  * Table to expose, because that is the thing the person was looking at.
4654
4763
  */
4655
- tableId?: Uuid | null | undefined;
4764
+ tableId?: Uuid$1 | null | undefined;
4656
4765
  /** Re-state an existing portal rather than making a second one. */
4657
- portalId?: Uuid | null | undefined;
4658
- onSaved?: ((portalId: Uuid) => void) | undefined;
4766
+ portalId?: Uuid$1 | null | undefined;
4767
+ onSaved?: ((portalId: Uuid$1) => void) | undefined;
4659
4768
  onClose?: (() => void) | undefined;
4660
4769
  className?: string | undefined;
4661
4770
  }
@@ -4685,13 +4794,13 @@ interface PortalsPanelProps {
4685
4794
  * Omit it and the rail is organization-wide again, which is right for a
4686
4795
  * mount that is not standing on a table.
4687
4796
  */
4688
- tableId?: Uuid | undefined;
4797
+ tableId?: Uuid$1 | undefined;
4689
4798
  /**
4690
4799
  * THE PORTAL A LINK NAMED (`?rail=portals&item=<portal>`, lane HUB-FIX). Its
4691
4800
  * card opens on arrival and is scrolled to. A portal this table is not in is
4692
4801
  * said out loud, never swapped for another portal.
4693
4802
  */
4694
- activePortalId?: Uuid | null | undefined;
4803
+ activePortalId?: Uuid$1 | null | undefined;
4695
4804
  className?: string | undefined;
4696
4805
  }
4697
4806
  /** What a door answered, for a view that never holds a client of its own. */
@@ -4726,11 +4835,11 @@ interface PortalCardViewProps {
4726
4835
  /** Exactly what `custom.portal_card` answered. */
4727
4836
  card: PortalCard;
4728
4837
  /** The Table whose page this is on, if any — marked among the ones shown. */
4729
- tableId?: Uuid | undefined;
4838
+ tableId?: Uuid$1 | undefined;
4730
4839
  /** Take one person's way in away. Answers the door's own past-tense sentence. */
4731
4840
  onRevoke: (person: PortalPrincipal) => Promise<PortalAnswer<string>>;
4732
4841
  /** What this person sees on one Table — `custom.portal_preview`'s answer. */
4733
- onPreview: (person: PortalPrincipal, tableId: Uuid) => Promise<PortalAnswer<PortalPreviewRow[]>>;
4842
+ onPreview: (person: PortalPrincipal, tableId: Uuid$1) => Promise<PortalAnswer<PortalPreviewRow[]>>;
4734
4843
  /** The invite control, which needs a client of its own. Absent means none is offered. */
4735
4844
  invite?: ReactNode;
4736
4845
  /** S6 — the look-and-forms editor, which needs a client of its own. Absent means none is offered. */
@@ -4769,8 +4878,8 @@ interface PublicPicturePickerProps {
4769
4878
  label: string;
4770
4879
  /** The organization's public pictures, as the store listed them. */
4771
4880
  pictures: readonly PublicPicture[];
4772
- value: Uuid$1 | "" | null | undefined;
4773
- onChange: (fileId: Uuid$1 | "") => void;
4881
+ value: Uuid | "" | null | undefined;
4882
+ onChange: (fileId: Uuid | "") => void;
4774
4883
  /** The words on the empty choice ("Organization logo", "No cover"). */
4775
4884
  noneLabel: string;
4776
4885
  className?: string | undefined;
@@ -4812,13 +4921,13 @@ declare function FormLookFrame({ look, title, children, contained, className }:
4812
4921
 
4813
4922
  interface DigestSchedulerProps {
4814
4923
  /** The Table the digest is about. A saved view is a view OF something. */
4815
- tableId: Uuid;
4924
+ tableId: Uuid$1;
4816
4925
  /**
4817
4926
  * The view to subscribe over, when the caller already has one — a dashboard
4818
4927
  * passes the view its blocks are filtered by. Left out, the person picks one
4819
4928
  * of this Table's saved views or this screen saves a new one for them.
4820
4929
  */
4821
- savedViewId?: Uuid | null | undefined;
4930
+ savedViewId?: Uuid$1 | null | undefined;
4822
4931
  /**
4823
4932
  * What the person is looking at, in their words — a dashboard's name, a view's
4824
4933
  * name. It becomes the digest's name and, when a view has to be saved, the
@@ -4848,14 +4957,14 @@ interface DigestSchedulerProps {
4848
4957
  declare function DigestScheduler({ tableId, savedViewId, subjectName, filters, onScheduled, onClose, className, existing, }: DigestSchedulerProps): react.JSX.Element;
4849
4958
 
4850
4959
  interface SubscriptionsPanelProps {
4851
- tableId: Uuid;
4960
+ tableId: Uuid$1;
4852
4961
  /**
4853
4962
  * THE DIGEST A LINK NAMED (`?rail=notifications&item=<rule>`, lane HUB-FIX).
4854
4963
  * The rule is marked and scrolled to. This rail lists the subscriptions of the
4855
4964
  * person signed in, so a rule that is somebody else's is said out loud as
4856
4965
  * exactly that — never replaced by one of theirs.
4857
4966
  */
4858
- activeRuleId?: Uuid | null | undefined;
4967
+ activeRuleId?: Uuid$1 | null | undefined;
4859
4968
  className?: string | undefined;
4860
4969
  }
4861
4970
  /** The sentence when a link named a digest that is not in this person's list for this table. */
@@ -4940,7 +5049,7 @@ declare function viewNeedFor(layout: ViewLayout): ViewNeed | null;
4940
5049
  declare function columnDeclarationFor(need: ViewNeed, label: string, options: readonly string[], fields: readonly Pick<Field, "sort">[] | null | undefined): NewFieldDeclaration;
4941
5050
  interface ViewNeedsProps {
4942
5051
  layout: ViewLayout;
4943
- tableId: Uuid$1;
5052
+ tableId: Uuid;
4944
5053
  /** The table's columns, as the layout already holds them. */
4945
5054
  fields: readonly Field[];
4946
5055
  /**
@@ -4954,7 +5063,7 @@ declare function ViewNeeds({ layout, tableId, fields, onMade, className }: ViewN
4954
5063
 
4955
5064
  interface FormBuilderProps {
4956
5065
  /** The Table this form collects into. A form is a view on a real Table. */
4957
- tableId: Uuid;
5066
+ tableId: Uuid$1;
4958
5067
  /**
4959
5068
  * COMPLETE DECLARATIVE SPECS an agent wrote. Any of these whose name this
4960
5069
  * table does not have yet is saved as a record the first time the builder
@@ -4962,7 +5071,7 @@ interface FormBuilderProps {
4962
5071
  * overwrites what a person has since tweaked.
4963
5072
  */
4964
5073
  seed?: FormSpec[] | undefined;
4965
- activeFormId?: Uuid | null | undefined;
5074
+ activeFormId?: Uuid$1 | null | undefined;
4966
5075
  onActiveForm?: ((form: SavedForm) => void) | undefined;
4967
5076
  /**
4968
5077
  * The person asked to BUILD a form on a table that has none: make it on open, instead of an
@@ -5004,7 +5113,7 @@ interface ChartSpec {
5004
5113
  id?: string;
5005
5114
  title: string;
5006
5115
  /** The Table this block asks about. */
5007
- subject: Uuid$1;
5116
+ subject: Uuid;
5008
5117
  kind: ChartKind;
5009
5118
  /** Field keys whose values become the groups. */
5010
5119
  groupBy?: string[];
@@ -5031,23 +5140,23 @@ interface ChartSpec {
5031
5140
  }
5032
5141
  /** A dashboard as `custom.dashboards` reports it, in the screen's own words. */
5033
5142
  interface SavedDashboard {
5034
- id: Uuid$1;
5143
+ id: Uuid;
5035
5144
  name: string;
5036
5145
  /** The subject Table: the one a block that names no table of its own reads. */
5037
- subject: Uuid$1 | null;
5146
+ subject: Uuid | null;
5038
5147
  blocks: ChartSpec[];
5039
5148
  presentation: Record<string, unknown>;
5040
5149
  /** The store's own version. A save re-states the whole dashboard. */
5041
5150
  version: number;
5042
5151
  }
5043
5152
  /** One saved block back into the shape a screen edits. */
5044
- declare function specFromBlock(block: DashboardBlock, subject: Uuid$1): ChartSpec;
5153
+ declare function specFromBlock(block: DashboardBlock, subject: Uuid): ChartSpec;
5045
5154
  /**
5046
5155
  * One block back into the door's own argument. `custom.dashboard_declare` judges
5047
5156
  * every block on the way IN — a block naming a Field this Table does not have is
5048
5157
  * refused BY NAME — so a canvas cannot be saved broken.
5049
5158
  */
5050
- declare function blockFromSpec(spec: ChartSpec, subject: Uuid$1): DashboardBlock;
5159
+ declare function blockFromSpec(spec: ChartSpec, subject: Uuid): DashboardBlock;
5051
5160
  /** One row of `custom.dashboards` into the shape a screen and an agent both read. */
5052
5161
  declare function dashboardFromSummary(summary: DashboardSummary): SavedDashboard;
5053
5162
  /**
@@ -5056,12 +5165,12 @@ declare function dashboardFromSummary(summary: DashboardSummary): SavedDashboard
5056
5165
  * a save that dropped it would quietly lose the question the person asked the
5057
5166
  * agent, which is what the canvas is FOR.
5058
5167
  */
5059
- declare function dashboardDeclareArgs(board: SavedDashboard, subject: Uuid$1): {
5060
- table_id: Uuid$1;
5168
+ declare function dashboardDeclareArgs(board: SavedDashboard, subject: Uuid): {
5169
+ table_id: Uuid;
5061
5170
  name: string;
5062
5171
  blocks: DashboardBlock[];
5063
5172
  presentation: Record<string, unknown>;
5064
- dashboard_id: Uuid$1 | null;
5173
+ dashboard_id: Uuid | null;
5065
5174
  };
5066
5175
  /**
5067
5176
  * The series palette. Six SEMANTIC tokens the design system already flips for
@@ -5135,18 +5244,18 @@ declare function ChartLegendContent({ payload, config, className, }: {
5135
5244
 
5136
5245
  interface DocTemplateProps {
5137
5246
  /** The Table these templates render. */
5138
- tableId: Uuid;
5247
+ tableId: Uuid$1;
5139
5248
  /** COMPLETE templates an agent wrote, in Field keys. Saved once, never overwritten. */
5140
5249
  seed?: DocTemplateSpec[] | undefined;
5141
- activeTemplateId?: Uuid | null | undefined;
5250
+ activeTemplateId?: Uuid$1 | null | undefined;
5142
5251
  onActiveTemplate?: ((template: DocTemplateRow) => void) | undefined;
5143
5252
  className?: string | undefined;
5144
5253
  }
5145
5254
  declare function DocTemplate({ tableId, seed, activeTemplateId, onActiveTemplate, className }: DocTemplateProps): react.JSX.Element;
5146
5255
 
5147
5256
  interface DocRenderProps {
5148
- templateId: Uuid;
5149
- recordId: Uuid;
5257
+ templateId: Uuid$1;
5258
+ recordId: Uuid$1;
5150
5259
  /** A name for the file when somebody takes the PDF. */
5151
5260
  filename?: string | undefined;
5152
5261
  onRendered?: ((render: DocRenderRow) => void) | undefined;
@@ -5155,8 +5264,8 @@ interface DocRenderProps {
5155
5264
  declare function DocRender({ templateId, recordId, filename, onRendered, className }: DocRenderProps): react.JSX.Element;
5156
5265
 
5157
5266
  interface SignBlockProps {
5158
- tableId: Uuid;
5159
- recordId: Uuid;
5267
+ tableId: Uuid$1;
5268
+ recordId: Uuid$1;
5160
5269
  /** The frozen version being signed. Without one there is nothing to seal. */
5161
5270
  render: DocRenderRow | null;
5162
5271
  className?: string | undefined;
@@ -5166,7 +5275,7 @@ declare function SignBlock({ tableId, recordId, render, className }: SignBlockPr
5166
5275
  /** THE DECLARATIVE SPEC an agent writes. One declaration and a person is told. */
5167
5276
  interface NotifyRuleSpec {
5168
5277
  name: string;
5169
- savedViewId: Uuid;
5278
+ savedViewId: Uuid$1;
5170
5279
  /** `instant` fires the moment a record enters the view; the rest are summaries. */
5171
5280
  cadence?: string;
5172
5281
  /** The summary's schedule — "monday 08:00". Meaningless for `instant`. */
@@ -5175,12 +5284,12 @@ interface NotifyRuleSpec {
5175
5284
  /** The hours not to be told in. A send inside them is MOVED, never dropped. */
5176
5285
  quietHours?: QuietHours | null;
5177
5286
  /** Who is told. Left out, the person setting it up — "tell ME". */
5178
- recipientUserId?: Uuid | null;
5287
+ recipientUserId?: Uuid$1 | null;
5179
5288
  eventKey?: string;
5180
5289
  }
5181
5290
  interface NotifyRuleEditorProps {
5182
5291
  /** The Table these subscriptions are about — the Rule's scope. */
5183
- tableId: Uuid;
5292
+ tableId: Uuid$1;
5184
5293
  /** COMPLETE declarative subscriptions an agent wrote. Saved once, never overwritten. */
5185
5294
  seed?: NotifyRuleSpec[] | undefined;
5186
5295
  /**
@@ -5188,9 +5297,9 @@ interface NotifyRuleEditorProps {
5188
5297
  * Rule). Given with `onChoose`, each subscription offers to be the one, and a
5189
5298
  * subscription made here becomes the one the moment the store has it.
5190
5299
  */
5191
- chosenRuleId?: Uuid | null | undefined;
5300
+ chosenRuleId?: Uuid$1 | null | undefined;
5192
5301
  /** CHOOSE MODE — called with the chosen subscription's Rule id, or null to choose none. */
5193
- onChoose?: ((ruleId: Uuid | null) => void) | undefined;
5302
+ onChoose?: ((ruleId: Uuid$1 | null) => void) | undefined;
5194
5303
  className?: string | undefined;
5195
5304
  }
5196
5305
  declare function NotifyRuleEditor({ tableId, seed, chosenRuleId, onChoose, className }: NotifyRuleEditorProps): react.JSX.Element;
@@ -5199,7 +5308,7 @@ interface ChartBlockProps {
5199
5308
  /** One block out of the canvas's single run — answered, or refused. */
5200
5309
  block: DashboardBlockResult;
5201
5310
  /** The dashboard's subject Table, for a block that names none of its own. */
5202
- subject: Uuid$1;
5311
+ subject: Uuid;
5203
5312
  /** The table this chart reads, named in its header on a dashboard across tables. */
5204
5313
  tableName?: string | undefined;
5205
5314
  className?: string | undefined;
@@ -5224,8 +5333,8 @@ declare function ChartBlock({ block, subject, tableName, className, centerValue,
5224
5333
 
5225
5334
  interface DashboardCanvasProps {
5226
5335
  /** The Table these blocks are about. */
5227
- tableId: Uuid;
5228
- activeDashboardId?: Uuid | null | undefined;
5336
+ tableId: Uuid$1;
5337
+ activeDashboardId?: Uuid$1 | null | undefined;
5229
5338
  /** The one filter bar across the canvas. Merged UNDER each block's own filter. */
5230
5339
  filter?: Record<string, AggregateFilter> | undefined;
5231
5340
  /**
@@ -5234,7 +5343,7 @@ interface DashboardCanvasProps {
5234
5343
  */
5235
5344
  createOnMount?: boolean | undefined;
5236
5345
  /** Told the id of a dashboard this canvas made (the starter, or `createOnMount`'s). */
5237
- onCreated?: ((dashboardId: Uuid) => void) | undefined;
5346
+ onCreated?: ((dashboardId: Uuid$1) => void) | undefined;
5238
5347
  className?: string | undefined;
5239
5348
  }
5240
5349
  declare function DashboardCanvas({ tableId, activeDashboardId, filter, createOnMount, onCreated, className }: DashboardCanvasProps): react.JSX.Element;
@@ -5323,40 +5432,40 @@ declare function flatWhere(where: RuleExpression | null, fields: readonly Field[
5323
5432
  * ASK THE STORE. `fields` are this table's Fields (the condition builder writes Fields by id, and a
5324
5433
  * formula column cannot be asked "as of"). Every number in the answer is a door's.
5325
5434
  */
5326
- declare function askQuestion(client: RecordsClient, tableId: Uuid$1, spec: QuestionSpec, fields: readonly Field[]): Promise<RecordsResult<QuestionAnswer>>;
5435
+ declare function askQuestion(client: RecordsClient, tableId: Uuid, spec: QuestionSpec, fields: readonly Field[]): Promise<RecordsResult<QuestionAnswer>>;
5327
5436
  /**
5328
5437
  * THE COLUMNS THIS READER MAY NOT READ, asked of the store: one aggregate measuring how many
5329
5438
  * records fill each column that carries a sensitivity, and every measure the store WITHHOLDS is a
5330
5439
  * column never offered. Nothing is guessed from levels here; the store decides, as it does for the
5331
5440
  * grid's cells.
5332
5441
  */
5333
- declare function unreadableKeys(client: RecordsClient, tableId: Uuid$1, fields: readonly Field[]): Promise<Set<string>>;
5442
+ declare function unreadableKeys(client: RecordsClient, tableId: Uuid, fields: readonly Field[]): Promise<Set<string>>;
5334
5443
  /** The columns a measure other than count may read: numbers (formula arithmetic included); min/max also dates. */
5335
5444
  declare function measurableFields(fields: readonly Field[], op: QuestionOp): Field[];
5336
5445
  /** The saved-view surface a Question is kept under, beside the table's views (`custom/records`). */
5337
5446
  declare const QUESTION_SURFACE = "custom/records/question";
5338
5447
  interface SavedQuestion {
5339
- id: Uuid$1;
5448
+ id: Uuid;
5340
5449
  name: string;
5341
5450
  spec: QuestionSpec;
5342
5451
  /** Shared with the organization (`internal`) or kept for its maker (`personal`). */
5343
5452
  shared: boolean;
5344
5453
  version: number;
5345
- createdBy: Uuid$1 | null;
5454
+ createdBy: Uuid | null;
5346
5455
  }
5347
5456
  /** The table's Questions this person may read (the row's own access decides). */
5348
- declare function questionsOf(client: RecordsClient, tableId: Uuid$1): Promise<RecordsResult<SavedQuestion[]>>;
5457
+ declare function questionsOf(client: RecordsClient, tableId: Uuid): Promise<RecordsResult<SavedQuestion[]>>;
5349
5458
  /** Keep a Question (new when `id` is absent). `null` data = somebody changed it first. */
5350
5459
  declare function questionSave(client: RecordsClient, args: {
5351
- id?: Uuid$1 | null;
5352
- tableId: Uuid$1;
5460
+ id?: Uuid | null;
5461
+ tableId: Uuid;
5353
5462
  name: string;
5354
5463
  spec: QuestionSpec;
5355
5464
  shared: boolean;
5356
5465
  expectedVersion?: number;
5357
5466
  }): Promise<RecordsResult<SavedQuestion | null>>;
5358
5467
  /** Archive a Question (its maker, or an admin of it). */
5359
- declare function questionArchive(client: RecordsClient, id: Uuid$1, version?: number): Promise<RecordsResult<boolean>>;
5468
+ declare function questionArchive(client: RecordsClient, id: Uuid, version?: number): Promise<RecordsResult<boolean>>;
5360
5469
 
5361
5470
  /** A related table's columns, keyed by the relation that reaches it. */
5362
5471
  type Related = Record<string, {
@@ -5364,9 +5473,9 @@ type Related = Record<string, {
5364
5473
  fields: Field[];
5365
5474
  }>;
5366
5475
  interface QuestionPanelProps {
5367
- tableId: Uuid;
5476
+ tableId: Uuid$1;
5368
5477
  /** A saved Question the address named (`?view=questions&item=<id>`). */
5369
- activeQuestionId?: Uuid | null | undefined;
5478
+ activeQuestionId?: Uuid$1 | null | undefined;
5370
5479
  /**
5371
5480
  * A question asked elsewhere and not saved yet (the table's Ask box, "Open in Questions"):
5372
5481
  * the builder opens holding it, as a new question. A new object each time it is handed over.
@@ -5377,7 +5486,7 @@ interface QuestionPanelProps {
5377
5486
  declare function QuestionPanel({ tableId, activeQuestionId, draft, className }: QuestionPanelProps): react.JSX.Element;
5378
5487
  /** The answer as Questions draws it — also the table's Ask box's answer (`TableAsk.tsx`): one drawing, one number. */
5379
5488
  declare function QuestionAnswerView({ tableId, spec, answer, fields, related }: {
5380
- tableId: Uuid;
5489
+ tableId: Uuid$1;
5381
5490
  spec: QuestionSpec;
5382
5491
  answer: QuestionAnswer;
5383
5492
  fields: Field[];
@@ -5385,7 +5494,7 @@ declare function QuestionAnswerView({ tableId, spec, answer, fields, related }:
5385
5494
  }): react.JSX.Element;
5386
5495
 
5387
5496
  interface TableAskProps {
5388
- tableId: Uuid;
5497
+ tableId: Uuid$1;
5389
5498
  /** Open the answered question in the Question builder. Absent, the button is not drawn. */
5390
5499
  onOpenInQuestions?: ((spec: QuestionSpec) => void) | undefined;
5391
5500
  }
@@ -5411,13 +5520,13 @@ declare function questionFromWords(text: string, fields: readonly Field[], choic
5411
5520
 
5412
5521
  interface PageScreenProps {
5413
5522
  /** The page to open. */
5414
- pageId?: Uuid | null | undefined;
5523
+ pageId?: Uuid$1 | null | undefined;
5415
5524
  /** Make a new page on this Table instead (its starter: a list and a record panel), then open it. */
5416
- newOnTable?: Uuid | null | undefined;
5525
+ newOnTable?: Uuid$1 | null | undefined;
5417
5526
  /** The signed-in person: "Assigned to me" is her own Person record. */
5418
5527
  viewerUserId?: string | null | undefined;
5419
5528
  /** Told the id of the page `newOnTable` made. */
5420
- onCreated?: ((pageId: Uuid) => void) | undefined;
5529
+ onCreated?: ((pageId: Uuid$1) => void) | undefined;
5421
5530
  /** The page was archived: the host leaves it. */
5422
5531
  onArchived?: (() => void) | undefined;
5423
5532
  /** Open in edit mode (a page just made). */
@@ -5445,9 +5554,9 @@ interface PageBlockBase {
5445
5554
  }
5446
5555
  interface ListPageBlock extends PageBlockBase {
5447
5556
  kind: "list";
5448
- table_id: Uuid$1;
5557
+ table_id: Uuid;
5449
5558
  /** A saved view of the table: its filter and sort shape the list. */
5450
- view_id?: Uuid$1 | null;
5559
+ view_id?: Uuid | null;
5451
5560
  /** The block's own question, the store's flat filter (field key → value). */
5452
5561
  filter?: RecordFilter;
5453
5562
  /** The columns shown, by field key; left out, the first few the table declares. */
@@ -5467,18 +5576,18 @@ interface ButtonPageBlock extends PageBlockBase {
5467
5576
  kind: "button";
5468
5577
  /** The list block whose selected row the action runs on. */
5469
5578
  source: string;
5470
- table_id: Uuid$1;
5579
+ table_id: Uuid;
5471
5580
  /** An existing row action of that table (`custom.row_actions`). */
5472
- action_id: Uuid$1;
5581
+ action_id: Uuid;
5473
5582
  }
5474
5583
  interface FormPageBlock extends PageBlockBase {
5475
5584
  kind: "form";
5476
- table_id: Uuid$1;
5477
- form_id: Uuid$1;
5585
+ table_id: Uuid;
5586
+ form_id: Uuid;
5478
5587
  }
5479
5588
  interface FilterPageBlock extends PageBlockBase {
5480
5589
  kind: "filter";
5481
- table_id: Uuid$1;
5590
+ table_id: Uuid;
5482
5591
  /** A choice (or yes/no) column of that table. */
5483
5592
  field: string;
5484
5593
  /** The list blocks it narrows. Empty = every list on the page over the same table. */
@@ -5524,7 +5633,7 @@ declare function pagePresentation(presentation: Record<string, unknown> | null |
5524
5633
  * THE STARTER PAGE on one table, the way Airtable's record-review layout starts: the table's records
5525
5634
  * on the left, the chosen one on the right. One press makes a page that already works.
5526
5635
  */
5527
- declare function starterPageBlocks(tableId: Uuid$1): PageBlock[];
5636
+ declare function starterPageBlocks(tableId: Uuid): PageBlock[];
5528
5637
  /** The list blocks a filter block narrows: those it names, or every list over its table. */
5529
5638
  declare function filterTargets(filter: FilterPageBlock, blocks: readonly PageBlock[]): string[];
5530
5639
  /**
@@ -5540,14 +5649,14 @@ declare function combineFilter(base: StoreFilter | null | undefined, extra: Reco
5540
5649
  };
5541
5650
 
5542
5651
  interface FormsPanelProps {
5543
- tableId: Uuid;
5652
+ tableId: Uuid$1;
5544
5653
  /**
5545
5654
  * THE FORM A LINK NAMED (`?rail=forms&item=<form>`, lane HUB-FIX). The rail
5546
5655
  * opens ON it: marked and scrolled to, and — for somebody who may build — its
5547
5656
  * builder open on that form. An id this table has no form by is said out
5548
5657
  * loud, never swapped for the first form in the list.
5549
5658
  */
5550
- activeFormId?: Uuid | null | undefined;
5659
+ activeFormId?: Uuid$1 | null | undefined;
5551
5660
  className?: string | undefined;
5552
5661
  }
5553
5662
  /** The sentence when a link named a form this table does not have. */
@@ -5576,7 +5685,7 @@ type FormAsked = {
5576
5685
  type FormSubmitOutcome = {
5577
5686
  ok: true;
5578
5687
  message?: string | null;
5579
- recordId?: Uuid | null;
5688
+ recordId?: Uuid$1 | null;
5580
5689
  } | {
5581
5690
  ok: false;
5582
5691
  message: string;
@@ -5625,7 +5734,7 @@ interface FormRunnerProps {
5625
5734
  resumed?: boolean | undefined;
5626
5735
  /** Preview mode answers the questions but writes nothing, and says so. */
5627
5736
  preview?: boolean | undefined;
5628
- onSubmitted?: ((recordId: Uuid | null) => void) | undefined;
5737
+ onSubmitted?: ((recordId: Uuid$1 | null) => void) | undefined;
5629
5738
  className?: string | undefined;
5630
5739
  }
5631
5740
  /**
@@ -5637,11 +5746,11 @@ declare function FormRunner(props: FormRunnerProps): react.JSX.Element;
5637
5746
 
5638
5747
  interface ChecklistRunnerProps {
5639
5748
  /** The Table runs are ABOUT. On a record page, the record's own table. */
5640
- tableId?: Uuid | null | undefined;
5749
+ tableId?: Uuid$1 | null | undefined;
5641
5750
  /** Runs about THIS record — a new hire, a matter, a job. */
5642
- recordId?: Uuid | null | undefined;
5751
+ recordId?: Uuid$1 | null | undefined;
5643
5752
  /** One run, named outright. Overrides the two above. */
5644
- runId?: Uuid | null | undefined;
5753
+ runId?: Uuid$1 | null | undefined;
5645
5754
  /** Show runs that have been closed too. The default is what is still open. */
5646
5755
  includeClosed?: boolean | undefined;
5647
5756
  /** Offer the templates that could be started here. On by default with a record. */
@@ -5675,7 +5784,7 @@ declare function StepRow({ step, busy, onComplete, onAssign, className, }: {
5675
5784
  */
5676
5785
  declare function useMyChecklistSteps(limit?: number): {
5677
5786
  steps: Array<ChecklistRunStep & {
5678
- run_id: Uuid;
5787
+ run_id: Uuid$1;
5679
5788
  run_name: string;
5680
5789
  }>;
5681
5790
  loading: boolean;
@@ -5694,12 +5803,12 @@ declare function MyChecklistSteps({ className, onlyIds, onSteps, actions, }: {
5694
5803
  /** Every step id this group holds, so the inbox can draw each step once — here, where it is finished. */
5695
5804
  onSteps?: ((ids: string[]) => void) | undefined;
5696
5805
  /** The inbox's own controls for a step (snooze, done), drawn beside it. */
5697
- actions?: ((stepId: Uuid) => ReactNode) | undefined;
5806
+ actions?: ((stepId: Uuid$1) => ReactNode) | undefined;
5698
5807
  }): react.JSX.Element | null;
5699
5808
  interface ChecklistsPanelProps {
5700
- tableId: Uuid;
5809
+ tableId: Uuid$1;
5701
5810
  /** Open the record a run is about. */
5702
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
5811
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
5703
5812
  className?: string | undefined;
5704
5813
  }
5705
5814
  /**
@@ -5718,15 +5827,15 @@ declare function ChecklistsPanel({ tableId, onOpenRecord, className }: Checklist
5718
5827
  * validator here: a rule written twice is a rule that will disagree with itself.
5719
5828
  */
5720
5829
  declare function ChecklistTemplateEditor({ aboutTableId, templateId, onDone, onSaved, className, }: {
5721
- aboutTableId: Uuid;
5722
- templateId?: Uuid | null | undefined;
5830
+ aboutTableId: Uuid$1;
5831
+ templateId?: Uuid$1 | null | undefined;
5723
5832
  /** Cancel; and, when the host passes no `onSaved`, a finished Save. */
5724
5833
  onDone?: (() => void) | undefined;
5725
5834
  /**
5726
5835
  * A Save landed: the checklist's id. Passed, the editor STAYS open and says it is saved (the
5727
5836
  * host decides where to go); every later Save re-states that same checklist.
5728
5837
  */
5729
- onSaved?: ((templateId: Uuid) => void) | undefined;
5838
+ onSaved?: ((templateId: Uuid$1) => void) | undefined;
5730
5839
  className?: string | undefined;
5731
5840
  }): react.JSX.Element;
5732
5841
 
@@ -5748,9 +5857,9 @@ declare function whyNotAskable(fields: readonly Field[], hidden?: readonly strin
5748
5857
  declare const STORE_ANSWERS_THESE: readonly ["slot", "status", "booked_with"];
5749
5858
  interface BookingBuilderProps {
5750
5859
  /** The Table the appointments land in. An appointment is an ordinary record in it. */
5751
- tableId: Uuid;
5860
+ tableId: Uuid$1;
5752
5861
  /** Re-state an existing page rather than making a second one over the same Table. */
5753
- bookingId?: Uuid | null | undefined;
5862
+ bookingId?: Uuid$1 | null | undefined;
5754
5863
  /** Called after a save, so the list this opened from re-reads the store. */
5755
5864
  onSaved?: ((page: {
5756
5865
  form_id: string;
@@ -5773,13 +5882,13 @@ interface BookingSlotsProps {
5773
5882
  * booking page in this organization, which is the same door asked the wider
5774
5883
  * question, never a second list.
5775
5884
  */
5776
- tableId?: Uuid | null | undefined;
5885
+ tableId?: Uuid$1 | null | undefined;
5777
5886
  /**
5778
5887
  * THE BOOKING PAGE A LINK NAMED (`?rail=bookings&item=<page>`, lane HUB-FIX,
5779
5888
  * VERIFIER-16 M4). It is marked and scrolled to. A page this rail does not
5780
5889
  * list is said out loud, never swapped for another.
5781
5890
  */
5782
- activeBookingId?: Uuid | null | undefined;
5891
+ activeBookingId?: Uuid$1 | null | undefined;
5783
5892
  className?: string | undefined;
5784
5893
  }
5785
5894
  /** The sentence when a link named a booking page this rail does not list. */
@@ -5811,9 +5920,9 @@ interface CaptureSheetProps {
5811
5920
  * Without one this stays the ad-hoc capture below, which guesses which Field a
5812
5921
  * reading goes in — right for a quick one-off, wrong for a crew.
5813
5922
  */
5814
- sheetId?: Uuid | undefined;
5923
+ sheetId?: Uuid$1 | undefined;
5815
5924
  /** The Table a capture becomes a record in. Not needed when `sheetId` is given. */
5816
- tableId: Uuid;
5925
+ tableId: Uuid$1;
5817
5926
  /** Which Field a reading's number goes in. Defaults to the first range Field. */
5818
5927
  readingField?: string | undefined;
5819
5928
  /** Which Field the note goes in. Defaults to the Table's title field. */
@@ -5825,7 +5934,7 @@ interface CaptureSheetProps {
5825
5934
  declare function CaptureSheet({ sheetId, tableId, readingField, noteField, attachmentField, className, }: CaptureSheetProps): react.JSX.Element;
5826
5935
 
5827
5936
  interface CaptureRunProps {
5828
- sheetId: Uuid$1;
5937
+ sheetId: Uuid;
5829
5938
  /**
5830
5939
  * The sheet, already loaded — by a server render, or from the phone's own copy. Given
5831
5940
  * one, this component makes NO network call before the first question is on screen.
@@ -5839,7 +5948,7 @@ declare function CaptureRun({ sheetId, face: given, className }: CaptureRunProps
5839
5948
 
5840
5949
  interface PortalShellProps {
5841
5950
  /** The Table the outsider's records belong to. */
5842
- tableId: Uuid;
5951
+ tableId: Uuid$1;
5843
5952
  /** OPTIONAL. A form the outsider may send — their one way to put something in. */
5844
5953
  form?: FormSpec | undefined;
5845
5954
  /** What the resources are called in `iam`'s own vocabulary. Default `record`. */
@@ -5857,12 +5966,12 @@ declare function PublicViewPage({ slug, className }: PublicViewPageProps): react
5857
5966
 
5858
5967
  interface EmbedFrameProps {
5859
5968
  /** The Table whose rights decide whether an embed may be issued at all. */
5860
- tableId: Uuid;
5969
+ tableId: Uuid$1;
5861
5970
  /** A write embed names the form it writes into. */
5862
- formId?: Uuid | null | undefined;
5971
+ formId?: Uuid$1 | null | undefined;
5863
5972
  /** A read embed names the saved view or the record it shows. */
5864
- savedViewId?: Uuid | null | undefined;
5865
- recordId?: Uuid | null | undefined;
5973
+ savedViewId?: Uuid$1 | null | undefined;
5974
+ recordId?: Uuid$1 | null | undefined;
5866
5975
  /** Where the embedded page is served from — the `src` of the iframe. */
5867
5976
  embedUrl: string;
5868
5977
  className?: string | undefined;
@@ -5916,7 +6025,7 @@ interface RecordsMountProps {
5916
6025
  children: ReactNode;
5917
6026
  }
5918
6027
  declare function RecordsMount({ config, host, letTheStoreDecideRights, children, }: RecordsMountProps): react.JSX.Element;
5919
- declare function personActor(userId: Uuid$1 | null | undefined): RecordsActor;
6028
+ declare function personActor(userId: Uuid | null | undefined): RecordsActor;
5920
6029
  declare function recordsDataSource(client: object, fallbackSchema?: string): RecordsDataSource;
5921
6030
 
5922
6031
  type TableLane = "mine" | "organization" | "system" | "community" | "app";
@@ -5985,7 +6094,7 @@ interface TablesHomeProps {
5985
6094
  * unchanged; a host that ignores it lands on the records, which is what it
5986
6095
  * did before, rather than on a screen it does not know how to address.
5987
6096
  */
5988
- onOpenTable?: ((tableId: Uuid$1, dashboardId?: Uuid$1) => void) | undefined;
6097
+ onOpenTable?: ((tableId: Uuid, dashboardId?: Uuid) => void) | undefined;
5989
6098
  /**
5990
6099
  * THE ORGANIZATION EVERY ROW HERE LIVES IN, BY NAME (lane SC-1-TAILS; access-is-personal: a
5991
6100
  * list filtered by one organization says which). Each row carries a quiet "Lives in <name>"
@@ -6023,7 +6132,7 @@ interface TablesHomeProps {
6023
6132
  declare function TablesHome({ onOpenTable, organizationName, makingOnly, askedBy, templatesHref, className }: TablesHomeProps): react.JSX.Element;
6024
6133
 
6025
6134
  interface WhereItLivesProps {
6026
- tableId: Uuid$1;
6135
+ tableId: Uuid;
6027
6136
  /**
6028
6137
  * The name the screen already holds (a list whose rows all live in one organization), shown
6029
6138
  * until the store answers — and, on a row, instead of asking at all until the chip is pressed:
@@ -6032,7 +6141,7 @@ interface WhereItLivesProps {
6032
6141
  knownOrganizationName?: string | null | undefined;
6033
6142
  /** After a move lands: the host re-reads (the list, its rows, the page). */
6034
6143
  onMoved?: ((to: {
6035
- id: Uuid$1;
6144
+ id: Uuid;
6036
6145
  name: string;
6037
6146
  }) => void) | undefined;
6038
6147
  /**
@@ -6076,7 +6185,7 @@ declare function sameViewAddress(a: ViewAddressState | null | undefined, b: View
6076
6185
 
6077
6186
  type Rail = "none" | "settings" | "inbox" | "import" | "field" | "record" | "new-record" | "forms" | "bookings" | "checklists" | "notifications" | "portals" | "who-changed" | "export";
6078
6187
  interface TablePageProps$1 {
6079
- tableId: Uuid$1;
6188
+ tableId: Uuid;
6080
6189
  /**
6081
6190
  * `embedded` — a table inside a page, like Notion's inline database (CHAIR-GRID-LINKS 06): the
6082
6191
  * same page with its furniture off. No title row (the host draws it), no Layout chooser, and the
@@ -6126,7 +6235,7 @@ interface TablePageProps$1 {
6126
6235
  * canvas on that dashboard; absent, the page opens on the records exactly as
6127
6236
  * it always has.
6128
6237
  */
6129
- activeDashboardId?: Uuid$1 | null | undefined;
6238
+ activeDashboardId?: Uuid | null | undefined;
6130
6239
  /**
6131
6240
  * THE RECORD A LINK NAMED, OPENED ON ARRIVAL.
6132
6241
  *
@@ -6139,7 +6248,7 @@ interface TablePageProps$1 {
6139
6248
  *
6140
6249
  * Absent, nothing changes: the page opens exactly as it did.
6141
6250
  */
6142
- activeRecordId?: Uuid$1 | null | undefined;
6251
+ activeRecordId?: Uuid | null | undefined;
6143
6252
  /**
6144
6253
  * WHICH VIEW THE ADDRESS NAMES — `grid`, `kanban`, `calendar`, `gallery` or
6145
6254
  * `dashboards`, exactly as the host read it out of `?view=`.
@@ -6228,7 +6337,7 @@ interface TablePageProps$1 {
6228
6337
  * opened, the rule marked and scrolled to. An id the rail does not hold is
6229
6338
  * said out loud by the rail, never replaced by its first row.
6230
6339
  */
6231
- activeItemId?: Uuid$1 | null | undefined;
6340
+ activeItemId?: Uuid | null | undefined;
6232
6341
  /**
6233
6342
  * THE PAGE'S HEADER, handed the table's own page-level controls (lane TABLE-PAGE-CHROME, owner
6234
6343
  * 2026-09-25: "align with the app's top-tier pages"). Called with `actions` — Share and the
@@ -6421,9 +6530,9 @@ declare function surfaceChosen(current: Surface, asking: SurfacePress): boolean;
6421
6530
  * WHAT THE PAGE OPENS SHOWING — one pure function, so the dead link can be shown failing.
6422
6531
  * See `TablePageProps.activeRecordId` for the defect it closes.
6423
6532
  */
6424
- declare function openingRail(activeRecordId: Uuid$1 | null | undefined, activeRail?: string | null | undefined): {
6533
+ declare function openingRail(activeRecordId: Uuid | null | undefined, activeRail?: string | null | undefined): {
6425
6534
  rail: "record" | "none" | Exclude<LinkRail, "share">;
6426
- record: Uuid$1 | null;
6535
+ record: Uuid | null;
6427
6536
  };
6428
6537
  /** The rails a link may open, plus `share`, which opens the share dialog over the page. */
6429
6538
  type LinkRail = "forms" | "bookings" | "checklists" | "notifications" | "portals" | "settings" | "import" | "inbox" | "export" | "field" | "share";
@@ -6449,7 +6558,7 @@ declare const SHARE_NOT_YOURS_LINE: string;
6449
6558
  * A `?dashboard=<id>` with no `?view=` still opens the canvas, because that
6450
6559
  * link predates this one and must keep working.
6451
6560
  */
6452
- declare function openingView(activeView: string | null | undefined, activeDashboardId: Uuid$1 | null | undefined): {
6561
+ declare function openingView(activeView: string | null | undefined, activeDashboardId: Uuid | null | undefined): {
6453
6562
  main: MainView;
6454
6563
  layout: ViewLayout | null;
6455
6564
  unknown: string | null;
@@ -6589,7 +6698,7 @@ declare function EntityTablePage(props: EntityTablePageProps): react.JSX.Element
6589
6698
 
6590
6699
  type TablePageSource = {
6591
6700
  kind: "table";
6592
- id: Uuid$1;
6701
+ id: Uuid;
6593
6702
  } | {
6594
6703
  kind: "entity";
6595
6704
  token: string;
@@ -6620,7 +6729,7 @@ declare function InTableToolbar({ children }: {
6620
6729
  }): react.JSX.Element | null;
6621
6730
 
6622
6731
  /** What the roster can tell us about a user id. `null` when it cannot. */
6623
- type ResolveName = (userId: Uuid$1) => string | null;
6732
+ type ResolveName = (userId: Uuid) => string | null;
6624
6733
  /** The honest stand-in when nobody and nothing can put a name to the author. */
6625
6734
  declare const SOMEBODY = "somebody in this organization";
6626
6735
  /** The platform's own word for itself. Never "null", never "system_user". */
@@ -6654,18 +6763,18 @@ interface WhoChanged {
6654
6763
  * asking its question, exactly as before, and nothing throws.
6655
6764
  */
6656
6765
  declare function WhoChangedSource({ tableId, labelOf, children, }: {
6657
- tableId: Uuid$1;
6766
+ tableId: Uuid;
6658
6767
  /** The Field's own label, so the sentence reads "Primary diagnosis" and not `primary_diagnosis`. */
6659
6768
  labelOf: (fieldKey: string) => string;
6660
6769
  children: ReactNode;
6661
6770
  }): react.JSX.Element;
6662
6771
  /** What this cell can say about who last changed it. */
6663
- declare function useWhoChanged(fieldKey: string, recordId: Uuid$1): WhoChanged;
6772
+ declare function useWhoChanged(fieldKey: string, recordId: Uuid): WhoChanged;
6664
6773
 
6665
6774
  interface ShareControlProps {
6666
6775
  kind: ShareSubject["kind"];
6667
- organizationId: Uuid$1;
6668
- subjectId: Uuid$1;
6776
+ organizationId: Uuid;
6777
+ subjectId: Uuid;
6669
6778
  /** What to call it in the dialog's title. */
6670
6779
  name?: string | undefined;
6671
6780
  /**
@@ -6785,7 +6894,7 @@ declare function WithheldValue({ field, notice }: {
6785
6894
  }): react.JSX.Element;
6786
6895
 
6787
6896
  interface PipelineBoardProps {
6788
- tableId: Uuid;
6897
+ tableId: Uuid$1;
6789
6898
  /** The rows the view holds — the SAME rows every other layout of this view draws. */
6790
6899
  rows: ReadRow$1[];
6791
6900
  /**
@@ -6802,7 +6911,7 @@ interface PipelineBoardProps {
6802
6911
  */
6803
6912
  filter?: StoreFilter | null | undefined;
6804
6913
  onMeasureChange?: ((key: string | null) => void) | undefined;
6805
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
6914
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
6806
6915
  /** Called after a move lands, so the host re-reads the rows it owns. */
6807
6916
  onMoved?: (() => void) | undefined;
6808
6917
  /** A card's menu copied or archived a record: the host re-reads the rows it owns. */
@@ -6896,8 +7005,8 @@ declare function ObjectActionGlyph({ name, ...props }: {
6896
7005
 
6897
7006
  /** What the list needs to know about the record. */
6898
7007
  interface RecordActionSubject {
6899
- id: Uuid$1;
6900
- tableId: Uuid$1;
7008
+ id: Uuid;
7009
+ tableId: Uuid;
6901
7010
  /** The record's name as every card reads it (`recordNameIn` / `cardWords`). */
6902
7011
  name: string;
6903
7012
  }
@@ -6942,9 +7051,9 @@ declare function recordLink(tableId: string, recordId: string, origin?: string):
6942
7051
  declare function recordActions(input: RecordActionsInput): ObjectAction[];
6943
7052
 
6944
7053
  interface RecordActionHostArgs {
6945
- tableId: Uuid;
7054
+ tableId: Uuid$1;
6946
7055
  row: ReadRow$1;
6947
- onOpenRecord?: ((recordId: Uuid) => void) | undefined;
7056
+ onOpenRecord?: ((recordId: Uuid$1) => void) | undefined;
6948
7057
  /** Re-read the surface after a copy or an archive. */
6949
7058
  onChanged?: (() => void) | undefined;
6950
7059
  /** Open the merge dialog for this record (`MergeRecordDialog`). Absent: Merge says why. */
@@ -6974,8 +7083,8 @@ interface ViewActionHost {
6974
7083
  declare function viewActions(whyNot: string | null, host: ViewActionHost): ObjectAction[];
6975
7084
 
6976
7085
  interface RecordPanelProps {
6977
- tableId: Uuid;
6978
- recordId: Uuid;
7086
+ tableId: Uuid$1;
7087
+ recordId: Uuid$1;
6979
7088
  /** Put the record away (the rail's close). Absent on a page of its own. */
6980
7089
  onClose?: (() => void) | undefined;
6981
7090
  /**
@@ -6999,8 +7108,8 @@ declare const BODY_COLUMN_NAME = "Notes";
6999
7108
  /** How long a pause in typing is before the body is written. */
7000
7109
  declare const BODY_SAVE_PAUSE_MS = 900;
7001
7110
  declare function RecordBody({ tableId, recordId, className }: {
7002
- tableId: Uuid;
7003
- recordId: Uuid;
7111
+ tableId: Uuid$1;
7112
+ recordId: Uuid$1;
7004
7113
  className?: string | undefined;
7005
7114
  }): react.JSX.Element;
7006
7115
 
@@ -7073,7 +7182,7 @@ declare function copyNameFor(name: string): string;
7073
7182
  /** One line of progress, in a person's words. */
7074
7183
  declare function duplicateProgressWords(p: TableDuplicateProgress): string;
7075
7184
  interface TableDuplicateDialogProps {
7076
- tableId: Uuid$1;
7185
+ tableId: Uuid;
7077
7186
  name: string;
7078
7187
  open: boolean;
7079
7188
  onOpenChange: (open: boolean) => void;
@@ -7083,7 +7192,7 @@ interface TableDuplicateDialogProps {
7083
7192
  declare function TableDuplicateDialog({ tableId, name, open, onOpenChange, onDuplicated }: TableDuplicateDialogProps): react.JSX.Element;
7084
7193
 
7085
7194
  /** The two references a table gives, in the words a person reads. Pure. */
7086
- declare function tableReferenceChoices(tableId: Uuid$1, name: string): Array<{
7195
+ declare function tableReferenceChoices(tableId: Uuid, name: string): Array<{
7087
7196
  id: string;
7088
7197
  label: string;
7089
7198
  reference: ContentTransferReference;
@@ -7094,29 +7203,13 @@ declare function TableReferenceDialog({ table, open, onOpenChange, }: {
7094
7203
  onOpenChange: (open: boolean) => void;
7095
7204
  }): react.JSX.Element;
7096
7205
 
7097
- /** The columns a record may be named by, in the table's order. Pure. */
7098
- declare function rowLabelChoices(fields: readonly Field$1[]): Array<{
7099
- value: string;
7100
- label: string;
7101
- }>;
7102
- /** The patch that keeps a description: the table's other metadata is carried, never dropped. Pure. */
7103
- declare function descriptionPatch(table: Pick<Table$1, "metadata">, text: string): {
7104
- metadata: Record<string, unknown>;
7105
- };
7106
- declare function TableDetails({ tableId, table, fields, onSaved, }: {
7107
- tableId: Uuid;
7108
- table: Table$1;
7109
- fields: readonly Field$1[];
7110
- onSaved?: (() => void) | undefined;
7111
- }): react.JSX.Element;
7112
-
7113
7206
  /** What a "the app's code depends on this table" refusal names, or null for any other refusal. */
7114
7207
  declare function codeDependsRefusal(error: RecordsError | null | undefined): {
7115
7208
  slug: string;
7116
7209
  declaredIn: string | null;
7117
7210
  } | null;
7118
7211
  interface ArchiveDeliberatelyDialogProps {
7119
- tableId: Uuid$1;
7212
+ tableId: Uuid;
7120
7213
  name: string;
7121
7214
  slug: string;
7122
7215
  declaredIn: string | null;
@@ -7201,4 +7294,4 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
7201
7294
  */
7202
7295
  declare function TablePageSkeleton({ layout: layoutAsked, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
7203
7296
 
7204
- export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_FLOWS, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QUESTION_OPS, QUESTION_SURFACE, type QuestionAnswer, QuestionAnswerView, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedForm, type SavedQuestion, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsProps, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_ADDRESS_KEYS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewLook, type ViewNeed, type ViewNeedKind, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actorBadge, actorWords, addDays, announceTableArchived, applyLook, archiveConfirmSentence, archivedRowLine, asRefusal, askExampleFor, askQuestion, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, descriptionPatch, designatedLayoutOf, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensureSystemTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, flatWhere, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, measurableFields, memberName, moveRecordValue, newQuestion, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pickableTypeOf, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionArchive, questionFromDefinition, questionFromWords, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, unknownViewLine, unreadableKeys, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };
7297
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_FUNCTIONS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_FLOWS, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QUESTION_OPS, QUESTION_SURFACE, type QuestionAnswer, QuestionAnswerView, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedForm, type SavedQuestion, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_ADDRESS_KEYS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewLook, type ViewNeed, type ViewNeedKind, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, applyLook, archiveConfirmSentence, archivedRowLine, asRefusal, askExampleFor, askQuestion, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, descriptionPatch, designatedLayoutOf, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensureSystemTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, flatWhere, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, measurableFields, memberName, moveRecordValue, newQuestion, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pickableTypeOf, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionArchive, questionFromDefinition, questionFromWords, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, unknownViewLine, unreadableKeys, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };