@ai-matrx/records-ui 0.93.153 → 0.95.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -3,8 +3,8 @@ import { ReactNode, KeyboardEvent, ReactElement, ComponentType, RefObject, SVGAt
3
3
  import * as _ai_matrx_records from '@ai-matrx/records';
4
4
  import { RecordScopeContext, EnrichCell, RecordsError, Field, TableDecorations, Uuid as Uuid$1, RowAction, RecordDocument, Table, ReadRow, StoreFilter, PermissionLevel, AggregateFilter, RelationDisplay, WriteConflict, RecordsErrorCode, RecordFilter, RuleExpression, RecordsResult, SavedViewRow, 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, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, DrillDefinition, DrillSource } from '@ai-matrx/records';
5
5
  import { ReversibleAnnouncement } from '@ai-matrx/kit/reversible';
6
- import { W as WhatYouMayDo, T as TableActionHost, O as ObjectAction, a as ObjectActionIcon } from './objectActions-Dgdr0E4b.cjs';
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-Dgdr0E4b.cjs';
6
+ import { W as WhatYouMayDo, T as TableActionHost, O as ObjectAction, a as ObjectActionIcon } from './objectActions-DozKWxks.cjs';
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-DozKWxks.cjs';
8
8
  import { Uuid, 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, MatrxDrillDimension, MatrxDrillMeasure, MatrxDrillFilter, MatrxDrillQuestion, MatrxDataTableDrillConfig, MatrxDrillAnswers } from '@ai-matrx/design-system/data-table';
10
10
  import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
@@ -899,6 +899,17 @@ interface RecordsUiHost {
899
899
  * nothing is the dead control this package does not ship.
900
900
  */
901
901
  openRecords?: (ask: OpenRecordsAsk) => void;
902
+ /**
903
+ * OPTIONAL. WHERE A PAGE OPENS (v6 lane 11, wave D). A Page is a dashboard record whose
904
+ * `presentation.kind` is `"page"` (`pages.ts`); the host owns its route, so this hands back the
905
+ * address of an existing page, or of the screen that makes a new one on a Table. Unbound, the
906
+ * Dashboards area lists no pages and offers no "New page" — absent, never dead.
907
+ */
908
+ pageHref?: (target: {
909
+ pageId: Uuid$1;
910
+ } | {
911
+ newOnTable: Uuid$1;
912
+ }) => string;
902
913
  /**
903
914
  * OPTIONAL. ASK THE AGENT TO CHANGE THIS DASHBOARD (SCR-16).
904
915
  *
@@ -1625,7 +1636,7 @@ interface ViewSortKey {
1625
1636
  * sub-groups and shut sections, hidden fields, gallery size, summaries).
1626
1637
  */
1627
1638
  interface ViewSettings {
1628
- layout: "grid" | "kanban" | "calendar" | "gallery";
1639
+ layout: "grid" | "kanban" | "calendar" | "gallery" | "timeline";
1629
1640
  filters: RecordFilter | null;
1630
1641
  where: RuleExpression | null;
1631
1642
  groupField: string | null;
@@ -2107,6 +2118,12 @@ interface GridProps {
2107
2118
  * with the arrows), so the panel always shows the row the person is on.
2108
2119
  */
2109
2120
  openRecordId?: Uuid | null | undefined;
2121
+ /**
2122
+ * CLOSE THE RECORD PANEL (grids review 3, lane H item 5): Escape on the grid, and Space on the row
2123
+ * that is already open, put it away — Airtable's expanded record toggles the same way. Unbound,
2124
+ * Space only opens.
2125
+ */
2126
+ onCloseRecord?: (() => void) | undefined;
2110
2127
  /** SCR-2. Called when an admin clicks the "+" at the end of the headers. */
2111
2128
  onAddField?: (() => void) | undefined;
2112
2129
  /**
@@ -2512,7 +2529,16 @@ type RelationFieldType = "relation";
2512
2529
  * `FIELD_TYPE_CHOICES`'s coverage and as a red `kindsWithNoChoice()` below — never as a
2513
2530
  * silence.
2514
2531
  */
2515
- type PickableFieldType = DeclarableFieldKind | SystemFieldKind | "entity_reference" | NewerFieldKind;
2532
+ type PickableFieldType = DeclarableFieldKind | SystemFieldKind | "entity_reference" | NewerFieldKind | LookFieldKind;
2533
+ /**
2534
+ * A KIND THAT IS A PLAIN COLUMN WEARING A LOOK (grids review 3, lane H item 5). The store keeps a
2535
+ * column's "Shows as" on the Field (`display_format`, `custom.display_format_ids()` has `rating` and
2536
+ * `time`), so a Rating is a whole number shown as stars and a Time is a time of day kept as its
2537
+ * 24-hour text — declared through the ordinary door (`{ plain, display_format }`) the same way the
2538
+ * "Shows as" picker makes one. Offered whenever the store does not yet publish the kind as its own
2539
+ * word (`custom.field_kinds()`): a Rating the store publishes goes as `{ type: "rating", max }`.
2540
+ */
2541
+ type LookFieldKind = "time";
2516
2542
  /**
2517
2543
  * LANE 10 P4: THE NINE NEWER KINDS (rating, duration, created by, last changed by, status, address,
2518
2544
  * barcode, formatted text, count). Each is listed in `FIELD_TYPE_CATALOGUE` below, so every reader
@@ -2840,8 +2866,10 @@ interface PeekProps {
2840
2866
  recordId: Uuid;
2841
2867
  onClose?: (() => void) | undefined;
2842
2868
  className?: string | undefined;
2869
+ /** Drawn ON the record's own page: no "Open" link to the page it is already on. */
2870
+ onPage?: boolean | undefined;
2843
2871
  }
2844
- declare function Peek({ tableId, recordId, onClose, className }: PeekProps): react.JSX.Element;
2872
+ declare function Peek({ tableId, recordId, onClose, className, onPage }: PeekProps): react.JSX.Element;
2845
2873
 
2846
2874
  interface RecordFormProps {
2847
2875
  tableId: Uuid;
@@ -3480,7 +3508,7 @@ declare function archiveConfirmSentence(what: string): string;
3480
3508
 
3481
3509
  interface AnnounceTableArchived {
3482
3510
  notify: RecordsUiHost["notify"];
3483
- client: Pick<RecordsClient, "recordRestore">;
3511
+ client: Pick<RecordsClient, "tableRestoreWhole">;
3484
3512
  tableId: Uuid$1;
3485
3513
  /** The table's name as the store gave it. */
3486
3514
  name: string;
@@ -3535,6 +3563,9 @@ declare const LOOK_WORDS: {
3535
3563
  readonly newName: "Name for the new view";
3536
3564
  };
3537
3565
 
3566
+ /** The far table's Fields, by table id — what a lookup's picked column is judged against. */
3567
+ type FarFields = ReadonlyMap<string, readonly Field[]>;
3568
+
3538
3569
  interface ViewSwitcherProps {
3539
3570
  /**
3540
3571
  * THE DECLARATIVE SPEC — an agent writes the whole thing, a person tweaks it.
@@ -3555,6 +3586,8 @@ interface ViewSwitcherProps {
3555
3586
  onOpenRecord?: ((recordId: Uuid) => void) | undefined;
3556
3587
  /** The record the host has open beside a grid, which the grid's panel then follows (`Grid.openRecordId`). */
3557
3588
  openRecordId?: Uuid | null | undefined;
3589
+ /** Put the record panel away (Escape, or Space on the open row): `Grid.onCloseRecord`. */
3590
+ onCloseRecord?: (() => void) | undefined;
3558
3591
  /**
3559
3592
  * Called after a card moves between columns, so the host re-reads the rows it owns. A
3560
3593
  * board that moved a card and left the row list alone would show the card in two places
@@ -3631,6 +3664,8 @@ declare function useViewRecords(view: SavedViewSpec, pageSize?: number, filter?:
3631
3664
  total: number | null;
3632
3665
  /** Show one more page of them. */
3633
3666
  loadMore: () => void;
3667
+ /** Read them again — a card's menu copied or archived one. */
3668
+ reload: () => void;
3634
3669
  pageSize: number;
3635
3670
  loading: boolean;
3636
3671
  error: RecordsError | null;
@@ -3648,7 +3683,7 @@ declare function useViewRecords(view: SavedViewSpec, pageSize?: number, filter?:
3648
3683
  */
3649
3684
  membership: string;
3650
3685
  };
3651
- declare function ViewSwitcher({ view, onLayoutChange, onViewChange, onOpenRecord, openRecordId, onMoved, onNewRecordForm, onAskWhoChanged, pageSize, titleField, filter, onClearFilter, hostLayout, onHostLayoutChange, chooser, openExport, viewId, onOrderPlaced, footer, className, }: ViewSwitcherProps): react.JSX.Element;
3686
+ declare function ViewSwitcher({ view, onLayoutChange, onViewChange, onOpenRecord, openRecordId, onCloseRecord, onMoved, onNewRecordForm, onAskWhoChanged, pageSize, titleField, filter, onClearFilter, hostLayout, onHostLayoutChange, chooser, openExport, viewId, onOrderPlaced, footer, className, }: ViewSwitcherProps): react.JSX.Element;
3652
3687
 
3653
3688
  type CalendarMode = "month" | "week" | "day" | "list";
3654
3689
  interface CalendarViewProps {
@@ -3659,6 +3694,8 @@ interface CalendarViewProps {
3659
3694
  dateField: Field$1;
3660
3695
  /** The table's columns, for the End and Colour by pickers and the default colour. */
3661
3696
  fields?: readonly Field$1[] | undefined;
3697
+ /** The far tables' columns, so a lookup of one date is offered as an End (`useFarFields`). */
3698
+ farFields?: FarFields | undefined;
3662
3699
  /**
3663
3700
  * THE END COLUMN THE VIEW KEEPS (`end_field`). Left out or null: the table's ONE other date column
3664
3701
  * when it has exactly one, else none until the person picks.
@@ -3706,7 +3743,7 @@ declare function packOverlaps<T extends {
3706
3743
  col: number;
3707
3744
  cols: number;
3708
3745
  }>;
3709
- declare function CalendarView({ tableId, rows, dateField, fields, endKey, onEndFieldChange, endKept, titleField, onOpenRecord, onMoved, onColorFieldChange, canCreate, note, style, defaultMinutes, snapMinutes, initialDate, initialMode, className, }: CalendarViewProps): react.JSX.Element;
3746
+ declare function CalendarView({ tableId, rows, dateField, fields, farFields, endKey, onEndFieldChange, endKept, titleField, onOpenRecord, onMoved, onColorFieldChange, canCreate, note, style, defaultMinutes, snapMinutes, initialDate, initialMode, className, }: CalendarViewProps): react.JSX.Element;
3710
3747
 
3711
3748
  type TimelineZoom = "day" | "week" | "month" | "quarter";
3712
3749
  declare const TIMELINE_ZOOMS: readonly TimelineZoom[];
@@ -3723,6 +3760,8 @@ interface TimelineViewProps {
3723
3760
  rows: readonly ReadRow$1[];
3724
3761
  /** The table's columns: the pickers, the lanes and the colours read them. */
3725
3762
  fields: readonly Field$1[];
3763
+ /** The far tables' columns, so a lookup of one date is offered as a Start or End (`useFarFields`). */
3764
+ farFields?: FarFields | undefined;
3726
3765
  /** The column that names each bar (`cardTitleField`). */
3727
3766
  titleField: Field$1 | undefined;
3728
3767
  /** The view's Start column (`date_field`). Left out: the table's one date column, else asked. */
@@ -3753,7 +3792,7 @@ interface TimelineViewProps {
3753
3792
  declare function onlyCandidate(candidates: readonly Field$1[]): string | null;
3754
3793
  /** The columns a timeline can lay lanes out by: a choice, a person, a link, yes / no, or a worked-out column. */
3755
3794
  declare function groupableFields(all: readonly Field$1[]): Field$1[];
3756
- declare function TimelineView({ tableId, rows, fields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, }: TimelineViewProps): react.JSX.Element;
3795
+ declare function TimelineView({ tableId, rows, fields, farFields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, }: TimelineViewProps): react.JSX.Element;
3757
3796
 
3758
3797
  /** The colour of each record's card under `colorKey` (null: the table's own decorations only). */
3759
3798
  declare function useRowColorBy(all: readonly Field$1[], colorKey: string | null, style?: TableStyle | undefined): (row: ReadRow$1) => StyleColor | null;
@@ -4802,9 +4841,11 @@ interface ChartBlockProps {
4802
4841
  block: DashboardBlockResult;
4803
4842
  /** The dashboard's subject Table, for a block that names none of its own. */
4804
4843
  subject: Uuid$1;
4844
+ /** The table this chart reads, named in its header on a dashboard across tables. */
4845
+ tableName?: string | undefined;
4805
4846
  className?: string | undefined;
4806
4847
  }
4807
- declare function ChartBlock({ block, subject, className }: ChartBlockProps): react.JSX.Element;
4848
+ declare function ChartBlock({ block, subject, tableName, className }: ChartBlockProps): react.JSX.Element;
4808
4849
 
4809
4850
  interface DashboardCanvasProps {
4810
4851
  /** The Table these blocks are about. */
@@ -4823,6 +4864,253 @@ interface DashboardCanvasProps {
4823
4864
  }
4824
4865
  declare function DashboardCanvas({ tableId, activeDashboardId, filter, createOnMount, onCreated, className }: DashboardCanvasProps): react.JSX.Element;
4825
4866
 
4867
+ interface QuestionPanelProps {
4868
+ tableId: Uuid;
4869
+ /** A saved Question the address named (`?view=questions&item=<id>`). */
4870
+ activeQuestionId?: Uuid | null | undefined;
4871
+ className?: string | undefined;
4872
+ }
4873
+ declare function QuestionPanel({ tableId, activeQuestionId, className }: QuestionPanelProps): react.JSX.Element;
4874
+
4875
+ type QuestionOp = "count" | "sum" | "avg" | "min" | "max";
4876
+ declare const QUESTION_OPS: readonly QuestionOp[];
4877
+ interface QuestionMeasure {
4878
+ op: QuestionOp;
4879
+ /** The Field measured; absent for `count`. */
4880
+ key?: string | undefined;
4881
+ }
4882
+ /** What the answer is cut into. */
4883
+ type QuestionGroup = {
4884
+ kind: "field";
4885
+ key: string;
4886
+ } | {
4887
+ kind: "bucket";
4888
+ key: string;
4889
+ by: AggregateBucket;
4890
+ }
4891
+ /** A column of the table a relation points at: `Patient.Referring physician`. */
4892
+ | {
4893
+ kind: "through";
4894
+ relation: string;
4895
+ key: string;
4896
+ };
4897
+ /** A condition on a column of the table a relation points at ("Patient.Referring physician is …"). */
4898
+ interface ThroughCondition {
4899
+ relation: string;
4900
+ key: string;
4901
+ value: string | number | boolean | null;
4902
+ }
4903
+ type QuestionShow = "table" | "bar" | "column" | "line" | "donut" | "number";
4904
+ interface QuestionSpec {
4905
+ v: 1;
4906
+ measures: QuestionMeasure[];
4907
+ /** The grid's condition builder's Rule, on this table's own Fields (by id). */
4908
+ where: RuleExpression | null;
4909
+ /** Conditions across a relation, ANDed with `where`. */
4910
+ through: ThroughCondition[];
4911
+ group: QuestionGroup | null;
4912
+ /** An ISO moment: the table as the store held it then. Null = now. */
4913
+ asOf: string | null;
4914
+ /** Groups sorted by the FIRST measure (`measure`) or by how many records each holds. Null = the store's default. */
4915
+ order: {
4916
+ by: "measure" | "count";
4917
+ direction: "desc" | "asc";
4918
+ } | null;
4919
+ /** How many groups are shown. */
4920
+ limit: number;
4921
+ show: QuestionShow;
4922
+ }
4923
+ declare function newQuestion(): QuestionSpec;
4924
+ /** A kept definition read back: anything malformed becomes the empty question, never a throw. */
4925
+ declare function questionFromDefinition(definition: unknown): QuestionSpec;
4926
+ interface QuestionRow {
4927
+ /** The group's stored value (a relation's record id, a period's local moment, a word), or null. */
4928
+ group: string | null;
4929
+ /** By measure key (`count`, `sum_copay`). Null = no value (never 0 passed off as one). */
4930
+ values: Record<string, number | null>;
4931
+ /** A measure over a column this reader may not read: the store's own notice, by measure key. */
4932
+ withheld: Record<string, HiddenFieldNotice & {
4933
+ says?: string;
4934
+ }>;
4935
+ /** How many records the group was measured over. */
4936
+ n: number;
4937
+ }
4938
+ interface QuestionAnswer {
4939
+ rows: QuestionRow[];
4940
+ /** The measure keys, in the order asked. */
4941
+ measures: string[];
4942
+ /** The key the group values are under (a bucket's is `<key>_<by>`), or null. */
4943
+ groupKey: string | null;
4944
+ /** How many groups exist; `groupsExact` false when it is "at least". */
4945
+ groupsTotal: number | null;
4946
+ groupsExact: boolean;
4947
+ truncated: boolean;
4948
+ asOf: string | null;
4949
+ }
4950
+ /**
4951
+ * The Rule as a FLAT map (Field key → value) when it is only "is" conditions joined by ALL — the
4952
+ * one shape the as-of door and a condition across a relation can carry. Null when it is more.
4953
+ */
4954
+ declare function flatWhere(where: RuleExpression | null, fields: readonly Field[]): Record<string, unknown> | null;
4955
+ /**
4956
+ * ASK THE STORE. `fields` are this table's Fields (the condition builder writes Fields by id, and a
4957
+ * formula column cannot be asked "as of"). Every number in the answer is a door's.
4958
+ */
4959
+ declare function askQuestion(client: RecordsClient, tableId: Uuid$1, spec: QuestionSpec, fields: readonly Field[]): Promise<RecordsResult<QuestionAnswer>>;
4960
+ /**
4961
+ * THE COLUMNS THIS READER MAY NOT READ, asked of the store: one aggregate measuring how many
4962
+ * records fill each column that carries a sensitivity, and every measure the store WITHHOLDS is a
4963
+ * column never offered. Nothing is guessed from levels here; the store decides, as it does for the
4964
+ * grid's cells.
4965
+ */
4966
+ declare function unreadableKeys(client: RecordsClient, tableId: Uuid$1, fields: readonly Field[]): Promise<Set<string>>;
4967
+ /** The columns a measure other than count may read: numbers (formula arithmetic included); min/max also dates. */
4968
+ declare function measurableFields(fields: readonly Field[], op: QuestionOp): Field[];
4969
+ /** The saved-view surface a Question is kept under, beside the table's views (`custom/records`). */
4970
+ declare const QUESTION_SURFACE = "custom/records/question";
4971
+ interface SavedQuestion {
4972
+ id: Uuid$1;
4973
+ name: string;
4974
+ spec: QuestionSpec;
4975
+ /** Shared with the organization (`internal`) or kept for its maker (`personal`). */
4976
+ shared: boolean;
4977
+ version: number;
4978
+ createdBy: Uuid$1 | null;
4979
+ }
4980
+ /** The table's Questions this person may read (the row's own access decides). */
4981
+ declare function questionsOf(client: RecordsClient, tableId: Uuid$1): Promise<RecordsResult<SavedQuestion[]>>;
4982
+ /** Keep a Question (new when `id` is absent). `null` data = somebody changed it first. */
4983
+ declare function questionSave(client: RecordsClient, args: {
4984
+ id?: Uuid$1 | null;
4985
+ tableId: Uuid$1;
4986
+ name: string;
4987
+ spec: QuestionSpec;
4988
+ shared: boolean;
4989
+ expectedVersion?: number;
4990
+ }): Promise<RecordsResult<SavedQuestion | null>>;
4991
+ /** Archive a Question (its maker, or an admin of it). */
4992
+ declare function questionArchive(client: RecordsClient, id: Uuid$1, version?: number): Promise<RecordsResult<boolean>>;
4993
+
4994
+ interface PageScreenProps {
4995
+ /** The page to open. */
4996
+ pageId?: Uuid | null | undefined;
4997
+ /** Make a new page on this Table instead (its starter: a list and a record panel), then open it. */
4998
+ newOnTable?: Uuid | null | undefined;
4999
+ /** The signed-in person: "Assigned to me" is her own Person record. */
5000
+ viewerUserId?: string | null | undefined;
5001
+ /** Told the id of the page `newOnTable` made. */
5002
+ onCreated?: ((pageId: Uuid) => void) | undefined;
5003
+ /** The page was archived: the host leaves it. */
5004
+ onArchived?: (() => void) | undefined;
5005
+ /** Open in edit mode (a page just made). */
5006
+ startEditing?: boolean | undefined;
5007
+ /** The host's header, handed the page's name and its controls. Left out, a plain row is drawn. */
5008
+ header?: ((args: {
5009
+ name: string;
5010
+ actions: ReactNode;
5011
+ }) => ReactNode) | undefined;
5012
+ className?: string | undefined;
5013
+ }
5014
+ declare function PageScreen({ pageId, newOnTable, viewerUserId, onCreated, onArchived, startEditing, header, className, }: PageScreenProps): react.JSX.Element;
5015
+
5016
+ /** Every kind of block a page holds. `chart` points at a block in the dashboard's own `blocks`. */
5017
+ declare const PAGE_BLOCK_KINDS: readonly ["list", "record", "button", "form", "filter", "chart", "heading", "text"];
5018
+ type PageBlockKind = (typeof PAGE_BLOCK_KINDS)[number];
5019
+ /** What "Add block" reads for each kind. */
5020
+ declare const PAGE_BLOCK_LABEL: Record<PageBlockKind, string>;
5021
+ interface PageBlockBase {
5022
+ /** Stable across saves, moves and resizes. */
5023
+ id: string;
5024
+ /** Width in twelfths from 640 px up (`dashboardLayout.ts`); full width on a phone. */
5025
+ span?: number;
5026
+ title?: string;
5027
+ }
5028
+ interface ListPageBlock extends PageBlockBase {
5029
+ kind: "list";
5030
+ table_id: Uuid$1;
5031
+ /** A saved view of the table: its filter and sort shape the list. */
5032
+ view_id?: Uuid$1 | null;
5033
+ /** The block's own question, the store's flat filter (field key → value). */
5034
+ filter?: RecordFilter;
5035
+ /** The columns shown, by field key; left out, the first few the table declares. */
5036
+ columns?: string[];
5037
+ /** A person column. Offers "Assigned to me": the viewer's own Person record against it. */
5038
+ me_field?: string | null;
5039
+ /** Whether "Assigned to me" starts on. */
5040
+ me_default?: boolean;
5041
+ limit?: number;
5042
+ }
5043
+ interface RecordPageBlock extends PageBlockBase {
5044
+ kind: "record";
5045
+ /** The list block whose selected row this panel shows. */
5046
+ source: string;
5047
+ }
5048
+ interface ButtonPageBlock extends PageBlockBase {
5049
+ kind: "button";
5050
+ /** The list block whose selected row the action runs on. */
5051
+ source: string;
5052
+ table_id: Uuid$1;
5053
+ /** An existing row action of that table (`custom.row_actions`). */
5054
+ action_id: Uuid$1;
5055
+ }
5056
+ interface FormPageBlock extends PageBlockBase {
5057
+ kind: "form";
5058
+ table_id: Uuid$1;
5059
+ form_id: Uuid$1;
5060
+ }
5061
+ interface FilterPageBlock extends PageBlockBase {
5062
+ kind: "filter";
5063
+ table_id: Uuid$1;
5064
+ /** A choice (or yes/no) column of that table. */
5065
+ field: string;
5066
+ /** The list blocks it narrows. Empty = every list on the page over the same table. */
5067
+ targets?: string[];
5068
+ }
5069
+ interface ChartPageBlock extends PageBlockBase {
5070
+ kind: "chart";
5071
+ }
5072
+ interface HeadingPageBlock extends PageBlockBase {
5073
+ kind: "heading";
5074
+ text: string;
5075
+ }
5076
+ interface TextPageBlock extends PageBlockBase {
5077
+ kind: "text";
5078
+ text: string;
5079
+ }
5080
+ type PageBlock = ListPageBlock | RecordPageBlock | ButtonPageBlock | FormPageBlock | FilterPageBlock | ChartPageBlock | HeadingPageBlock | TextPageBlock;
5081
+ /** The `presentation.kind` that makes a dashboard record a Page. */
5082
+ declare const PAGE_KIND = "page";
5083
+ /** Is this dashboard row a Page? Every row with no kind is a dashboard (the store's default). */
5084
+ declare function isPage(row: Pick<DashboardSummary, "presentation"> | {
5085
+ presentation?: unknown;
5086
+ }): boolean;
5087
+ /**
5088
+ * The page's blocks in reading order, read strictly out of `presentation`. A chart the store holds
5089
+ * in `blocks` but the order does not name is appended (it was added by an agent or the old canvas),
5090
+ * and a `chart` entry whose block is gone is dropped — the page never draws a block it cannot answer.
5091
+ */
5092
+ declare function pageBlocksOf(presentation: Record<string, unknown> | null | undefined, chartIds: readonly string[]): PageBlock[];
5093
+ /** The presentation a page is saved with: its kind and its blocks, everything else it held kept. */
5094
+ declare function pagePresentation(presentation: Record<string, unknown> | null | undefined, blocks: readonly PageBlock[]): Record<string, unknown>;
5095
+ /**
5096
+ * THE STARTER PAGE on one table, the way Airtable's record-review layout starts: the table's records
5097
+ * on the left, the chosen one on the right. One press makes a page that already works.
5098
+ */
5099
+ declare function starterPageBlocks(tableId: Uuid$1): PageBlock[];
5100
+ /** The list blocks a filter block narrows: those it names, or every list over its table. */
5101
+ declare function filterTargets(filter: FilterPageBlock, blocks: readonly PageBlock[]): string[];
5102
+ /**
5103
+ * ONE QUESTION FOR A LIST BLOCK, in the store's own filter shapes. `base` is the view's question —
5104
+ * its `where` Rule or its flat `filters` — and `extra` the page's own (the block's filter, the
5105
+ * filter blocks, "Assigned to me"), all equalities by key. Both flat: one merged map (the page's
5106
+ * value wins). The view asks a Rule: the extras join it under `and`, by field id, which is the only
5107
+ * way the Rule shape names a column (REC-17). An extra whose key has no id is left out and named.
5108
+ */
5109
+ declare function combineFilter(base: StoreFilter | null | undefined, extra: RecordFilter, fieldIdOf: (key: string) => string | undefined): {
5110
+ filter: StoreFilter | null;
5111
+ dropped: string[];
5112
+ };
5113
+
4826
5114
  interface FormsPanelProps {
4827
5115
  tableId: Uuid;
4828
5116
  /**
@@ -5001,10 +5289,16 @@ declare function ChecklistsPanel({ tableId, onOpenRecord, className }: Checklist
5001
5289
  * sentence arrives BEFORE the save rather than after it. There is no second
5002
5290
  * validator here: a rule written twice is a rule that will disagree with itself.
5003
5291
  */
5004
- declare function ChecklistTemplateEditor({ aboutTableId, templateId, onDone, className, }: {
5292
+ declare function ChecklistTemplateEditor({ aboutTableId, templateId, onDone, onSaved, className, }: {
5005
5293
  aboutTableId: Uuid;
5006
5294
  templateId?: Uuid | null | undefined;
5295
+ /** Cancel; and, when the host passes no `onSaved`, a finished Save. */
5007
5296
  onDone?: (() => void) | undefined;
5297
+ /**
5298
+ * A Save landed: the checklist's id. Passed, the editor STAYS open and says it is saved (the
5299
+ * host decides where to go); every later Save re-states that same checklist.
5300
+ */
5301
+ onSaved?: ((templateId: Uuid) => void) | undefined;
5008
5302
  className?: string | undefined;
5009
5303
  }): react.JSX.Element;
5010
5304
 
@@ -5195,40 +5489,6 @@ interface RecordsMountProps {
5195
5489
  }
5196
5490
  declare function RecordsMount({ config, host, letTheStoreDecideRights, children, }: RecordsMountProps): react.JSX.Element;
5197
5491
  declare function personActor(userId: Uuid$1 | null | undefined): RecordsActor;
5198
- /**
5199
- * A supabase-js client AS this package's data seam.
5200
- *
5201
- * `RecordsDataSource` is deliberately a small structural subset of
5202
- * `SupabaseClient` — the package holds no key and opens no connection, the host
5203
- * hands it a client that already carries the person's session.
5204
- *
5205
- * IT IS NOT AN IDENTITY CAST, and it cost a live screen to learn why
5206
- * (2026-09-19, /data-v2's first load): the port's `rpc(fn, args, { schema })`
5207
- * says the schema OUT LOUD, because every door of this store is `custom.<name>`
5208
- * and every door of the trust layer is `iam.<name>`. supabase-js's own
5209
- * `rpc(fn, args, options)` has no `schema` option at all — its third argument is
5210
- * `{ head, get, count }` — so a client passed straight through silently asked
5211
- * its default PostgREST profile and the store answered, correctly and uselessly,
5212
- * "Could not find the function public.table_kernel_id ... PGRST202". The schema
5213
- * is chosen the one way supabase-js offers: `client.schema(name).rpc(...)`.
5214
- *
5215
- * `schema(name).from(table)` already agrees structurally and is passed through.
5216
- *
5217
- * `fallbackSchema` is the profile a call that says NOTHING is sent to. No caller
5218
- * in `@ai-matrx/records` omits the option — `callDoor` always says `custom` and
5219
- * `trustDoor` always says `iam` — so it never fires today; it exists so that a
5220
- * call which one day forgets lands on the store rather than silently on
5221
- * `public`. It is a FALLBACK and not the answer: a version of this adapter that
5222
- * sent EVERY door to one fixed schema would route the `iam` trust doors (the
5223
- * external principal, the publish binding) into `custom` and get a PGRST202
5224
- * naming the wrong schema.
5225
- *
5226
- * The cast itself stays HERE, once, where it is explained: a generated
5227
- * `Database` type makes `schema().from().select()` enormous, and a host app that
5228
- * passes its client straight into `config` gets `TS2589: Type instantiation is
5229
- * excessively deep and possibly infinite` in its own build (matrx-frontend,
5230
- * 2026-09-18, on all three campaign routes at once).
5231
- */
5232
5492
  declare function recordsDataSource(client: object, fallbackSchema?: string): RecordsDataSource;
5233
5493
 
5234
5494
  type TableLane = "mine" | "organization" | "system" | "community" | "app";
@@ -5268,7 +5528,8 @@ declare function laneFor(table: Table): TableLane;
5268
5528
  * filter over these four leaves it out rather than inventing a lane for it.
5269
5529
  *
5270
5530
  * From the record's own `visibility`, the store's closed four:
5271
- * personal → Mine · internal → My organization · link → World · public → World.
5531
+ * Only me → Only me · the default → Everyone · Everyone on AI Matrx → Everyone on AI Matrx ·
5532
+ * Published to the web → Published to the web (an older store: its `visibility` word).
5272
5533
  *
5273
5534
  * 🚨 WHY `link` IS WORLD (chair ruling, 2026-09-23). A link anyone can open
5274
5535
  * WITHOUT signing in is reachable by the world; being unlisted does not make it
@@ -5279,6 +5540,12 @@ declare function laneFor(table: Table): TableLane;
5279
5540
  */
5280
5541
  type VisibilityLane = "mine" | "organization" | "community" | "world";
5281
5542
  declare const VISIBILITY_LANES: readonly VisibilityLane[];
5543
+ /**
5544
+ * THE LAW'S WORDS (access ladder Words table), and no other lane names: "Shown to" Only me /
5545
+ * Everyone / Everyone on AI Matrx, and "Published to the web" for anyone on the internet.
5546
+ * "Everyone on AI Matrx" is offered only on a Public table; a store Table is Organization, so
5547
+ * nothing lands there today.
5548
+ */
5282
5549
  declare const VISIBILITY_LANE_TITLE: Record<VisibilityLane, string>;
5283
5550
  /** Which visibility lane one Table is in, or `null` when no person chose one for it. */
5284
5551
  declare function visibilityLaneFor(table: Table): VisibilityLane | null;
@@ -5501,6 +5768,12 @@ interface TablePageProps {
5501
5768
  * disabled, with its reason.
5502
5769
  */
5503
5770
  actionHost?: TablePageActionHost | undefined;
5771
+ /**
5772
+ * THE TABLE'S ACTIONS, HANDED TO THE HOST (lane TABLE-ACTIONS wave 4, T4.1): called with the
5773
+ * very list the header ⋯ draws, after every render, so a host's command bar runs exactly what the
5774
+ * menu runs (the same `run`). The page itself answers the ⌥⇧ chords (`TABLE_ACTION_KEYS`).
5775
+ */
5776
+ onActions?: ((actions: readonly ObjectAction[]) => void) | undefined;
5504
5777
  /**
5505
5778
  * WHAT THE PERSON IS ACTUALLY LOOKING AT (lane V24-TAILS, VERIFIER-24 item 6): the saved view
5506
5779
  * with her look laid over it and the address's overrides, exactly as the page draws it — so a
@@ -5603,7 +5876,7 @@ declare const VIEW_NOT_SAVED_YET: string;
5603
5876
  * one of the ways to look at this table, not a Trash area of the app somebody
5604
5877
  * has to know exists.
5605
5878
  */
5606
- type MainView = "records" | "dashboards" | "archived";
5879
+ type MainView = "records" | "dashboards" | "archived" | "questions";
5607
5880
  /**
5608
5881
  * WHAT THE PAGE IS SHOWING — the middle and the right-hand panel, as ONE answer.
5609
5882
  *
@@ -5689,7 +5962,7 @@ declare function openingView(activeView: string | null | undefined, activeDashbo
5689
5962
  layout: ViewLayout | null;
5690
5963
  unknown: string | null;
5691
5964
  };
5692
- declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, activeGroupField, cameFrom, filter, activeRail, activeItemId, header, actionHost, onShownViewChange, className, }: TablePageProps): react.JSX.Element;
5965
+ declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, activeGroupField, cameFrom, filter, activeRail, activeItemId, header, actionHost, onActions, onShownViewChange, className, }: TablePageProps): react.JSX.Element;
5693
5966
 
5694
5967
  /**
5695
5968
  * The page's toolbar slot: an element (controls go there), `null` (the row is mounting — draw
@@ -5889,6 +6162,8 @@ interface PipelineBoardProps {
5889
6162
  onOpenRecord?: ((recordId: Uuid) => void) | undefined;
5890
6163
  /** Called after a move lands, so the host re-reads the rows it owns. */
5891
6164
  onMoved?: (() => void) | undefined;
6165
+ /** A card's menu copied or archived a record: the host re-reads the rows it owns. */
6166
+ onChanged?: (() => void) | undefined;
5892
6167
  /**
5893
6168
  * THE COLORS THE REST OF THE VIEW PAINTS WITH (lane UI-QUICK-1) — `resolveTableStyle`'s answer,
5894
6169
  * the table's G1 decorations under the view's own look. `ViewSwitcher`'s board passes the one it
@@ -5903,7 +6178,7 @@ interface PipelineBoardProps {
5903
6178
  dateFields?: readonly Field$1[] | undefined;
5904
6179
  className?: string | undefined;
5905
6180
  }
5906
- declare function PipelineBoard({ tableId, rows, titleKey, measure, filter, onMeasureChange, onOpenRecord, onMoved, style, dateFields, className, }: PipelineBoardProps): react.JSX.Element;
6181
+ declare function PipelineBoard({ tableId, rows, titleKey, measure, filter, onMeasureChange, onOpenRecord, onMoved, onChanged, style, dateFields, className, }: PipelineBoardProps): react.JSX.Element;
5907
6182
 
5908
6183
  /** The source's Dimensions, as the door says them; a choice and a relation read by their words. */
5909
6184
  declare function drillDimensionsOf(def: DrillDefinition | null, labels: ReadonlyMap<string, ReadonlyMap<string, string>>): MatrxDrillDimension[];
@@ -5974,4 +6249,92 @@ declare function ObjectActionGlyph({ name, ...props }: {
5974
6249
  name: ObjectActionIcon;
5975
6250
  } & SVGAttributes<SVGSVGElement>): react.JSX.Element;
5976
6251
 
5977
- export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, 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, 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 ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, 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, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, ExampleTables, 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 FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, 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, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, 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, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, 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, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, 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, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, RecordValue, RecordsMount, type RecordsMountProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, 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 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, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, type TablePickerEntries, type TablePickerEntry, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsProps, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, 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, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, colorFromTheValue, columnDeclarationFor, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, designatedLayoutOf, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, editorKindFor, ensureSystemTable, entityReferenceSpec, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, keepLook, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, memberName, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pickableTypeOf, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, railFromParam, readLooks, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowName, rowNameIn, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, snoozeChoices, specFromBlock, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableRightsAt, unknownRailLine, unknownViewLine, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useViewRecords, useWhoChanged, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };
6252
+ /** What the list needs to know about the record. */
6253
+ interface RecordActionSubject {
6254
+ id: Uuid$1;
6255
+ tableId: Uuid$1;
6256
+ /** The record's name as every card reads it (`recordNameIn` / `cardWords`). */
6257
+ name: string;
6258
+ }
6259
+ type RecordHandler = (record: RecordActionSubject) => void | Promise<void>;
6260
+ /** THE SIDE EFFECTS THIS LIST CANNOT OWN. A handler left out keeps its action, disabled. */
6261
+ interface RecordActionHost {
6262
+ /** Origin for Copy link and Open in new tab. Default `https://www.aimatrx.com`. */
6263
+ origin?: string;
6264
+ /**
6265
+ * The record's own page (the host's `hrefForRecord`), absolute or root-relative. When given, Copy
6266
+ * link and Open in new tab carry it instead of the table page with `?record=`.
6267
+ */
6268
+ href?: string;
6269
+ open?: RecordHandler;
6270
+ openInNewTab?: (url: string, record: RecordActionSubject) => void;
6271
+ /** Runs inside the click (the clipboard needs the gesture). */
6272
+ copyText?: (text: string, record: RecordActionSubject) => void | Promise<void>;
6273
+ duplicate?: RecordHandler;
6274
+ history?: RecordHandler;
6275
+ archive?: RecordHandler;
6276
+ /** Why an action whose handler is left out is unavailable here, by id (≤ 60 chars). */
6277
+ unavailableReasons?: Readonly<Record<string, string>>;
6278
+ /** Another lane's record entries; same rules as `TableActionHost.extend`. */
6279
+ extend?: (record: RecordActionSubject, rights: WhatYouMayDo) => readonly ObjectAction[];
6280
+ }
6281
+ interface RecordActionsInput {
6282
+ record: RecordActionSubject;
6283
+ /** The person's rights on the record (its row level), or on the table when that is all there is. */
6284
+ rights: WhatYouMayDo;
6285
+ host: RecordActionHost;
6286
+ }
6287
+ /** The one link to a record: the table page with the record open, `<origin>/data-v2/<table>?record=<id>`. */
6288
+ declare function recordLink(tableId: string, recordId: string, origin?: string): string;
6289
+ /**
6290
+ * THE RECORD'S ACTIONS, in the one order. Same ids, same order, same verbs for every seat and every
6291
+ * host — only `disabledReason` varies.
6292
+ */
6293
+ declare function recordActions(input: RecordActionsInput): ObjectAction[];
6294
+
6295
+ interface RecordActionHostArgs {
6296
+ tableId: Uuid;
6297
+ row: ReadRow$1;
6298
+ onOpenRecord?: ((recordId: Uuid) => void) | undefined;
6299
+ /** Re-read the surface after a copy or an archive. */
6300
+ onChanged?: (() => void) | undefined;
6301
+ }
6302
+ /** The handlers a record card's menu runs, bound to this package's client and the host's ports. */
6303
+ declare function useRecordActionHost({ tableId, row, onOpenRecord, onChanged }: RecordActionHostArgs): RecordActionHost;
6304
+ declare function ObjectActionContextMenuItems({ actions }: {
6305
+ actions: readonly ObjectAction[];
6306
+ }): react.JSX.Element;
6307
+ interface RecordActionMenuProps extends RecordActionHostArgs {
6308
+ /** The record's name as the card reads it. */
6309
+ name: string;
6310
+ /** The card itself. */
6311
+ children: ReactNode;
6312
+ className?: string | undefined;
6313
+ }
6314
+ /** A record card with its ⋯ and its right-click, both drawing `recordActions()`. */
6315
+ declare function RecordActionMenu({ tableId, row, name, onOpenRecord, onChanged, children, className }: RecordActionMenuProps): react.JSX.Element;
6316
+
6317
+ interface ViewActionHost {
6318
+ rename?: () => void;
6319
+ duplicate?: () => void | Promise<void>;
6320
+ archive?: () => void | Promise<void>;
6321
+ }
6322
+ /** `whyNot`: the person's reason they may not change this table's views, or null when they may. */
6323
+ declare function viewActions(whyNot: string | null, host: ViewActionHost): ObjectAction[];
6324
+
6325
+ interface RecordPanelProps {
6326
+ tableId: Uuid;
6327
+ recordId: Uuid;
6328
+ /** Put the record away (the rail's close). Absent on a page of its own. */
6329
+ onClose?: (() => void) | undefined;
6330
+ /**
6331
+ * "Who changed this column?" — the rail opens its own panel. Absent, the panel answers in place,
6332
+ * under the history.
6333
+ */
6334
+ onAskAboutField?: ((fieldKey: string) => void) | undefined;
6335
+ /** Drawn as the record's own page (no "Open" link to itself). */
6336
+ onPage?: boolean | undefined;
6337
+ }
6338
+ declare function RecordPanel({ tableId, recordId, onClose, onAskAboutField, onPage }: RecordPanelProps): react.JSX.Element;
6339
+
6340
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, 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, 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, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, ExampleTables, 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, 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, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, 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, 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, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, 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, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, 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, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, type TablePickerEntries, type TablePickerEntry, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsProps, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, 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, askQuestion, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, colorFromTheValue, columnDeclarationFor, columnForField, combineFilter, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, designatedLayoutOf, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, editorKindFor, ensureSystemTable, entityReferenceSpec, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, filterTargets, flatWhere, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, 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, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowName, rowNameIn, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, snoozeChoices, specFromBlock, starterPageBlocks, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableRightsAt, unknownRailLine, unknownViewLine, unreadableKeys, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useViewRecords, useWhoChanged, viewActions, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };