@ai-matrx/records-ui 0.85.4 → 0.85.6

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
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, ComponentType, RefObject } from 'react';
3
3
  import * as _ai_matrx_records from '@ai-matrx/records';
4
- import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, StoreFilter, AggregateFilter, Field, RecordDocument, ReadRow, RelationDisplay, WriteConflict, RecordsErrorCode, DeclarableFieldKind, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkInboxKind, FieldKind, RecordFilter, RecordsResult, SavedViewRow, ArchiveLane, ArchivedRow, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, MySubscription, DashboardBlockKind, AggregateBucket, AggregateMeasure, AggregateCompare, DashboardTarget, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry } from '@ai-matrx/records';
4
+ import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, StoreFilter, AggregateFilter, Field, ReadRow, RecordDocument, RelationDisplay, WriteConflict, RecordsErrorCode, TableDecorations, DeclarableFieldKind, ParityFieldType, NewFieldDeclaration, RuleExpression, HiddenFieldNotice, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkApprovalState, WorkInboxKind, FieldKind, RecordFilter, RecordsResult, SavedViewRow, ArchiveLane, ArchivedRow, WorkInboxItem, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, MySubscription, DashboardBlockKind, AggregateBucket, AggregateMeasure, AggregateCompare, DashboardTarget, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry } from '@ai-matrx/records';
5
5
  import { Uuid, StoreFilter as StoreFilter$1, Field as Field$1, ReadRow as ReadRow$1 } from '@ai-matrx/records/react';
6
6
  import { RecordsClient } from '@ai-matrx/records/core';
7
7
  export { DEFAULT_FIELDS, DeclareResult, NewFieldSpec, NewTableSpec, addFields, declareTable, fieldDeclarationFor, tokenFor } from '@ai-matrx/records/core';
@@ -757,6 +757,15 @@ declare function rowNameIn(table: TitledTable, row: ReadRow | undefined, fallbac
757
757
  * 2026-09-20).
758
758
  */
759
759
  declare const WITHHELD_RECORD_LABEL = "A record you have not been given access to";
760
+ /**
761
+ * THE FIELD A CARD IS TITLED BY — kanban, calendar, gallery and pipeline alike.
762
+ *
763
+ * Order: the Table's `title_field` → a conventional name key (`title`, `name`, …) → the first
764
+ * text column in declared `sort` order → the first other column that can title (never a
765
+ * checkbox, never the group column, never a system stamp). `undefined` when nothing can, and
766
+ * the card falls back to `rowName`, which says "Untitled" rather than "false".
767
+ */
768
+ declare function cardTitleField(fields: readonly Field[], titleKey: string | null | undefined, exclude?: readonly (string | null | undefined)[]): Field | undefined;
760
769
 
761
770
  /** What a person has chosen: the table, and optionally which of its columns to show. */
762
771
  interface ReferenceChoice {
@@ -1168,6 +1177,42 @@ declare function currencyCodeFor(unit: string | null | undefined): string;
1168
1177
  * that changes and every screen follows.
1169
1178
  */
1170
1179
  declare const colorFromTheValue: ChoiceColorLookup;
1180
+ /**
1181
+ * G1's TABLE-LEVEL COLORS (`custom.table_decorations` / `client.tableDecorations`),
1182
+ * TRANSLATED INTO A `TableStyle` — the same document a saved view's own `presentation.style`
1183
+ * is, so one resolver (`resolveTableStyle`, below) can treat "the table's colors" and "this
1184
+ * view's colors" as two layers of the SAME thing instead of two unrelated systems.
1185
+ *
1186
+ * THE TRANSLATION IS NECESSARY AND IT IS THE ONLY ONE. G1 addresses a Field by its ID
1187
+ * (REC-17 — a column renamed keeps its color), because it is the STORE's own door; a
1188
+ * `TableStyle` addresses a Field by its KEY, because it reads straight off `row.document`,
1189
+ * which is keyed by Field key. A rule or a color-by whose Field has been deleted (its id no
1190
+ * longer resolves to a key) is dropped rather than crashing the whole style — a defect in
1191
+ * one rule costs that rule, never the read.
1192
+ */
1193
+ declare function styleFromDecorations(decorations: TableDecorations | null | undefined, fields: readonly Field[]): TableStyle;
1194
+ /**
1195
+ * THE ONE PRESENTATION RESOLVER every colored surface in this package reads —
1196
+ * `Grid`, and (via `Card`) the kanban board, the calendar and the gallery.
1197
+ *
1198
+ * THE CLASS THIS CLOSES (lane UI-QUICK-1, TABLE-PARITY review, 2026-09-24). Threading
1199
+ * `view.presentation.style` into `Card` closed the instance the CALENDAR-GALLERY bench
1200
+ * found — a VIEW that had its own color-by looked right everywhere — but it left the
1201
+ * class open: a table whose colors are the ORGANIZATION's decorations (G1's
1202
+ * `custom.table_decorations` — "color rows by Account Type", "MAXED and NEAR rules" on
1203
+ * Arman's own Coding Accounts table) and whose views never set a `presentation.style` of
1204
+ * their own drew NOTHING, on the grid exactly as much as on every other layout, because
1205
+ * nothing in this package had ever read G1's door at all.
1206
+ *
1207
+ * TWO LAYERS, ONE DOCUMENT. The table's decorations are the base coat — what every view
1208
+ * of this table shows until a view says otherwise. A view's OWN `presentation.style` is
1209
+ * an override, piece by piece: a view that only ever set manual row highlights still
1210
+ * inherits the table's color-by and rules for everything it never touched, and a view
1211
+ * that fully redecorated (its own `colorBy` AND its own `rules`) is not haunted by a
1212
+ * table rule it meant to replace. Per-piece, never all-or-nothing, because a view is a
1213
+ * LOOK on top of the table, not a wholesale substitute for it.
1214
+ */
1215
+ declare function resolveTableStyle(decorations: TableDecorations | null | undefined, fields: readonly Field[], viewStyle: TableStyle | undefined): TableStyle;
1171
1216
 
1172
1217
  /**
1173
1218
  * WHAT A TABLE WITH NO COLUMNS SAYS. Named here because the gate asserts on it:
@@ -1805,7 +1850,7 @@ declare function ProvenanceBadge({ document, fieldKey }: {
1805
1850
  * export, a chat line) keeps calling `renderValue` with no resolver and says
1806
1851
  * "Loading…" rather than printing an id.
1807
1852
  */
1808
- declare function RecordValue({ field, value, document, format, }: {
1853
+ declare function RecordValue({ field, value, document, format, withheld, }: {
1809
1854
  field: Field;
1810
1855
  value: unknown;
1811
1856
  document?: RecordDocument | undefined;
@@ -1822,12 +1867,35 @@ declare function RecordValue({ field, value, document, format, }: {
1822
1867
  * blank.
1823
1868
  */
1824
1869
  format?: FieldFormatConfig | undefined;
1870
+ /**
1871
+ * THE STORE'S REASON, when it withheld this value from the reader (`ReadRow.hidden[key]`).
1872
+ * A withheld value reads "Withheld" with the store's sentence on hover — never "—", which
1873
+ * means the cell is empty (`withheld.tsx`).
1874
+ */
1875
+ withheld?: HiddenFieldNotice | null | undefined;
1825
1876
  }): react.JSX.Element;
1877
+ /**
1878
+ * WHAT ONE CARD SAYS — the kanban's, the calendar's, the gallery's and the pipeline's alike, so
1879
+ * no card can read a record differently from another. `field` is the card's title column
1880
+ * (`cardTitleField`); a value the store withheld reads "Withheld" and carries the store's reason
1881
+ * for the card's hover (`withheld.tsx`), never a bare "—".
1882
+ */
1883
+ declare function cardWords(record: {
1884
+ document?: RecordDocument | null;
1885
+ hidden?: Record<string, HiddenFieldNotice> | null;
1886
+ } & Parameters<typeof rowName>[0], field: Field | undefined, labels?: LabelLookup): {
1887
+ text: string;
1888
+ withheld: string | null;
1889
+ };
1826
1890
 
1827
1891
  declare const WORK_DUE_STATES: readonly ["overdue", "due_today", "scheduled", "undated", "finished"];
1828
1892
  declare const DUE_STATE_LABEL: Record<WorkDueState, string>;
1829
1893
  declare const WORK_INBOX_KINDS: readonly ["assignment", "approval", "proposal"];
1830
1894
  declare const WORK_INBOX_KIND_LABEL: Record<WorkInboxKind, string>;
1895
+ /** The heading an inbox grouped by kind reads (lane S5-PRIME) — plural, the way Linear groups. */
1896
+ declare const WORK_INBOX_KIND_GROUP_LABEL: Record<WorkInboxKind, string>;
1897
+ declare const WORK_APPROVAL_STATES: readonly ["pending", "approved", "declined", "withdrawn"];
1898
+ declare const WORK_APPROVAL_STATE_LABEL: Record<WorkApprovalState, string>;
1831
1899
  declare const CHECKLIST_REQUIREMENT_KINDS: readonly ["none", "note", "answer", "record_field", "form", "document"];
1832
1900
  declare const CHECKLIST_REQUIREMENT_LABEL: Record<ChecklistRequirementKind, string>;
1833
1901
  declare const FIELD_SENSITIVITY_LABEL: Record<FieldSensitivity, string>;
@@ -2057,6 +2125,49 @@ interface SavedView extends SavedViewSpec {
2057
2125
  */
2058
2126
  designatedLayout?: string | null;
2059
2127
  }
2128
+ /**
2129
+ * WHICH LAYOUT A VIEW WAS DESIGNATED, OR NULL (lane DATA-V2-FACE, owner 2026-09-24).
2130
+ *
2131
+ * "For something like my data tables, which are predetermined with a default view of 'Sheet'
2132
+ * I want to see … it just shows them the way it should in the default view. That's how you take
2133
+ * custom systems and fake like they're hard-coded builtin systems."
2134
+ *
2135
+ * A designation is a DELIBERATE write, never a click: a view whose stored kind is a layout the
2136
+ * HOST draws (`sheet` — a layout the store's view-keys registry declares, and one the layout
2137
+ * buttons never write onto a view). That is the ONE way a table is designated (lane
2138
+ * VIEW-KEYS-SHEET): the mover and the repair write `layout: "sheet"` on a copied older table's
2139
+ * default view; `moved_from` says only where a view came from and designates nothing. A package
2140
+ * kind (`grid`, `kanban`, …) is not a designation: picking Kanban writes `layout: "kanban"` onto
2141
+ * the view, and a click must never take the layout chooser away.
2142
+ */
2143
+ declare function designatedLayoutOf(definition: Record<string, unknown> | null | undefined): string | null;
2144
+ /**
2145
+ * HOW THE TABLE OPENS, decided once from its default view and the layouts the host draws.
2146
+ *
2147
+ * · `designated` — the default view names a host layout this host registered: the page opens
2148
+ * IN it and offers no other layout by default (the others sit in the page's one menu);
2149
+ * · `chooser` — nothing designated (or the host does not draw what was designated): the
2150
+ * page opens on the view's own layout and shows the layout chooser.
2151
+ *
2152
+ * Only the DEFAULT view designates: a person who opens another saved view is choosing, and the
2153
+ * chooser is theirs.
2154
+ */
2155
+ type TableOpening = {
2156
+ kind: "designated";
2157
+ hostLayout: string;
2158
+ } | {
2159
+ kind: "chooser";
2160
+ };
2161
+ declare function tableOpening(view: Pick<SavedView, "isDefault" | "designatedLayout"> | null | undefined, hostLayoutIds: readonly string[]): TableOpening;
2162
+ /**
2163
+ * THE TABLE'S DEFAULT VIEW WHEN MORE THAN ONE SAYS IT IS (lane DATA-V2-FACE-2).
2164
+ *
2165
+ * Two views can both claim the default: the mover's designated one (the older table's own, the
2166
+ * Sheet) and a page seed that a later move of the view bar's older store brings in beside it —
2167
+ * both named "All records", so the store's name order cannot tell them apart. A designation is a
2168
+ * deliberate write and a seed is not, so the designated default wins; then the first default.
2169
+ */
2170
+ declare function defaultViewOf<V extends Pick<SavedView, "isDefault" | "designatedLayout">>(views: readonly V[]): V | undefined;
2060
2171
  /**
2061
2172
  * WHICH FIELD EACH LAYOUT CAN BE DRAWN FROM, decided from the FIELD'S OWN
2062
2173
  * DECLARATION and never from the values it happens to hold.
@@ -2249,6 +2360,13 @@ interface ViewSwitcherProps {
2249
2360
  /** "Who changed this?" from a grid cell — the host opens that column's timeline. */
2250
2361
  onAskWhoChanged?: ((fieldKey: string, recordId: Uuid) => void) | undefined;
2251
2362
  pageSize?: number | undefined;
2363
+ /**
2364
+ * THE TABLE'S OWN TITLE COLUMN (`title_field`, REC-2), from the table the host already holds.
2365
+ * Every card is named by it (`cardTitleField`); the switcher never reads the table a second
2366
+ * time to find it. Left out, a card is titled by a conventional name column, then the first
2367
+ * text column — never a checkbox or the column the board is grouped by.
2368
+ */
2369
+ titleField?: string | null | undefined;
2252
2370
  /**
2253
2371
  * THE QUESTION THE ADDRESS ASKED, in the store's one filter shape — the same
2254
2372
  * object the chart counted with. It narrows the grid AND the board through
@@ -2295,7 +2413,7 @@ declare function useViewRecords(view: SavedViewSpec, pageSize?: number, filter?:
2295
2413
  */
2296
2414
  membership: string;
2297
2415
  };
2298
- declare function ViewSwitcher({ view, onLayoutChange, onViewChange, onOpenRecord, onMoved, onNewRecordForm, onAskWhoChanged, pageSize, filter, hostLayout, onHostLayoutChange, chooser, openExport, className, }: ViewSwitcherProps): react.JSX.Element;
2416
+ declare function ViewSwitcher({ view, onLayoutChange, onViewChange, onOpenRecord, onMoved, onNewRecordForm, onAskWhoChanged, pageSize, titleField, filter, hostLayout, onHostLayoutChange, chooser, openExport, className, }: ViewSwitcherProps): react.JSX.Element;
2299
2417
 
2300
2418
  /** What the screen says above the list, so nobody has to be told twice that nothing was destroyed. */
2301
2419
  declare const ARCHIVE_MEANS = "Archiving never destroys anything. A record you remove from the grid waits here until somebody brings it back.";
@@ -2456,19 +2574,31 @@ declare function ProposalRow({ change, outcome, onApply, onReject, readOnlyReaso
2456
2574
  /** The three things that land in the queue, exactly as the door names them. */
2457
2575
  declare const ACTION_KINDS: readonly ["approval", "assignment", "proposal"];
2458
2576
  type ActionKind = WorkInboxKind;
2577
+ /** How the rows are gathered under headings. `g` cycles kind → table → none. */
2578
+ type InboxGrouping = "kind" | "table" | "none";
2579
+ declare const INBOX_GROUPINGS: readonly InboxGrouping[];
2580
+ interface InboxGroup {
2581
+ key: string;
2582
+ label: string | null;
2583
+ items: WorkInboxItem[];
2584
+ }
2585
+ /** THE grouping, pure: the headings and, flattened, the order the keys walk. */
2586
+ declare function groupInbox(items: readonly WorkInboxItem[], by: InboxGrouping): InboxGroup[];
2459
2587
  interface ActionInboxProps {
2460
2588
  /**
2461
- * Narrow to one table's work. The door answers the organization; this filters
2462
- * the assignments to the table a person is looking at, and leaves approvals
2463
- * and proposals alone because those are about a change, not about a table.
2589
+ * Narrow to one table's work. Every row now carries the table it is about
2590
+ * (lane S5-PRIME), so this narrows approvals, proposals and assignments alike;
2591
+ * when the table has nothing, the inbox says how many wait elsewhere and offers them.
2464
2592
  */
2465
2593
  tableId?: Uuid | null | undefined;
2466
- /** Show decided rows too. The default is what is still waiting. */
2594
+ /** Show decided rows too, from the start. `h` (or the button) toggles it. */
2467
2595
  includeSettled?: boolean | undefined;
2596
+ /** How the rows start out grouped. Default: by kind. */
2597
+ defaultGroupBy?: InboxGrouping | undefined;
2468
2598
  onOpenRecord?: ((recordId: Uuid, tableId: Uuid) => void) | undefined;
2469
2599
  className?: string | undefined;
2470
2600
  }
2471
- declare function ActionInbox({ tableId, includeSettled, onOpenRecord, className }: ActionInboxProps): react.JSX.Element;
2601
+ declare function ActionInbox({ tableId, includeSettled, defaultGroupBy, onOpenRecord, className, }: ActionInboxProps): react.JSX.Element;
2472
2602
 
2473
2603
  interface HistoryPanelProps {
2474
2604
  tableId: Uuid;
@@ -3563,9 +3693,17 @@ interface TablesHomeProps {
3563
3693
  * name it, the chips are absent rather than a row of "unknown".
3564
3694
  */
3565
3695
  organizationName?: string | null | undefined;
3696
+ /**
3697
+ * ONLY THE WAYS TO MAKE A TABLE — New table, Start from an example, and the import that
3698
+ * follows — and none of the lists (lane UI-FIX-18, VERIFIER-18 M3). A host page that already
3699
+ * lists the organization's tables, dashboards and booking pages (matrx-frontend's
3700
+ * organization hub) passes this, so one page never draws two full lists of the same tables.
3701
+ * Default false: the package's own home, lists and all.
3702
+ */
3703
+ makingOnly?: boolean | undefined;
3566
3704
  className?: string | undefined;
3567
3705
  }
3568
- declare function TablesHome({ onOpenTable, organizationName, className }: TablesHomeProps): react.JSX.Element;
3706
+ declare function TablesHome({ onOpenTable, organizationName, makingOnly, className }: TablesHomeProps): react.JSX.Element;
3569
3707
 
3570
3708
  interface WhereItLivesProps {
3571
3709
  tableId: Uuid$1;
@@ -3580,8 +3718,11 @@ interface WhereItLivesProps {
3580
3718
  id: Uuid$1;
3581
3719
  name: string;
3582
3720
  }) => void) | undefined;
3583
- /** `row` is quieter, for a list; `header` for an object page. */
3584
- variant?: "header" | "row" | undefined;
3721
+ /**
3722
+ * `row` is quieter, for a list; `header` for an object page's own row; `title` rides the page
3723
+ * header beside the object's name (Linear's team beside the issue title) — no frame, muted.
3724
+ */
3725
+ variant?: "header" | "row" | "title" | undefined;
3585
3726
  }
3586
3727
  declare function WhereItLives({ tableId, knownOrganizationName, onMoved, variant }: WhereItLivesProps): react.JSX.Element;
3587
3728
 
@@ -3719,6 +3860,20 @@ interface TablePageProps {
3719
3860
  * said out loud by the rail, never replaced by its first row.
3720
3861
  */
3721
3862
  activeItemId?: Uuid$1 | null | undefined;
3863
+ /**
3864
+ * What the HOST puts at the start of the table's one row — the organization the table lives
3865
+ * in, named quietly (the app's where-it-lives chip). One row: never a second bar above it.
3866
+ */
3867
+ leading?: ReactNode | undefined;
3868
+ /**
3869
+ * What the HOST adds to the table's one menu — a capability the package cannot know about (the
3870
+ * app's "When a row changes, run an agent…"). Drawn after the package's own entries.
3871
+ */
3872
+ menuExtras?: ReadonlyArray<{
3873
+ key: string;
3874
+ label: string;
3875
+ onSelect: () => void;
3876
+ }> | undefined;
3722
3877
  className?: string | undefined;
3723
3878
  }
3724
3879
  /**
@@ -3865,7 +4020,22 @@ declare function openingView(activeView: string | null | undefined, activeDashbo
3865
4020
  layout: ViewLayout | null;
3866
4021
  unknown: string | null;
3867
4022
  };
3868
- declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, activeGroupField, cameFrom, filter, activeRail, activeItemId, className, }: TablePageProps): react.JSX.Element;
4023
+ /**
4024
+ * EVERYTHING A TABLE CAN DO THAT IS NOT LOOKING AT IT — in the table's ONE menu (lane
4025
+ * DATA-V2-FACE). They were fourteen buttons in a row above the records, which is a toolbar
4026
+ * describing the platform rather than the table; the owner met it on his own table and asked
4027
+ * whether somebody was copying Notion and failing. Groups: the records themselves, what is
4028
+ * built on them, and bringing things in and out.
4029
+ */
4030
+ interface MenuEntryDef {
4031
+ key: string;
4032
+ label: string;
4033
+ press: SurfacePress;
4034
+ group: 1 | 2 | 3;
4035
+ shown: (rights: ReturnType<typeof useTableRights>) => boolean;
4036
+ }
4037
+ declare const TABLE_MENU: readonly MenuEntryDef[];
4038
+ declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, activeGroupField, cameFrom, filter, activeRail, activeItemId, leading, menuExtras, className, }: TablePageProps): react.JSX.Element;
3869
4039
 
3870
4040
  /** What the roster can tell us about a user id. `null` when it cannot. */
3871
4041
  type ResolveName = (userId: Uuid$1) => string | null;
@@ -3946,10 +4116,92 @@ declare function useCanShare(): boolean;
3946
4116
  declare function shareUnavailableReason(): string;
3947
4117
  declare function ShareControl({ kind, organizationId, subjectId, name, may, initiallyOpen, size, variant, className, }: ShareControlProps): ReactNode;
3948
4118
 
4119
+ /**
4120
+ * 🚨 THE ONE DATE HELPER EVERY LAYOUT READS (lane UI-FIX-18, VERIFIER-18 H2 / M1).
4121
+ *
4122
+ * MEASURED 2026-09-24 on production, browser in America/Los_Angeles: Kitchen's start date,
4123
+ * stored `2026-04-01`, read **Apr 1** in the grid, **Mar 31** on the calendar, **3/31** in
4124
+ * the gallery, and Backyard Deck's May 1 read **4/30** in the record panel. The grid was right
4125
+ * because it formats through the design system's registry (`formatFieldValue`), which reads a
4126
+ * bare `YYYY-MM-DD` as a day on a calendar. Every other surface called `new Date("2026-04-01")`
4127
+ * itself — which JavaScript parses as UTC MIDNIGHT — and then printed it in the viewer's zone,
4128
+ * so everybody west of Greenwich saw the day before.
4129
+ *
4130
+ * THE CLASS, NOT THE INSTANCE. No component in this package parses or prints a date on its
4131
+ * own any more; it asks this file, and this file asks the SAME registry the grid asks. The
4132
+ * calendar's day key is the one thing the registry does not answer, and it is answered here
4133
+ * by the same rule: a bare calendar date IS its own day (read the characters), an instant
4134
+ * (`…Z`, `…+hh:mm`) is placed on the viewer's own calendar.
4135
+ *
4136
+ * The store's own stamps — Created time and Last changed time (`fx.created_time`,
4137
+ * `fx.modified_time`) — are instants, and are printed like every other date-and-time cell
4138
+ * (VERIFIER-18 M1 found `2026-09-25T00:13:34.564Z` in the grid, the gallery and the panel).
4139
+ */
4140
+
4141
+ /**
4142
+ * Does this value (or, with no value, this Field) carry a TIME OF DAY as well as a date?
4143
+ *
4144
+ * A DATE IS A DATE (chair ruling, 2026-09-24). The control and the text follow the STORED
4145
+ * VALUE's shape, never `config.kind` alone: a value with no time part — `1988-06-14`, a date
4146
+ * of birth on a `kind: "datetime"` Field — gets a date-only control and a date-only reading
4147
+ * everywhere (grid, form, panel, calendar). With no value yet, only a Field that says so
4148
+ * outright carries a time: the older `format: "datetime"`, or the store's own Created / Last
4149
+ * changed stamps (instants by construction).
4150
+ */
4151
+ declare function carriesTimeOfDay(field: Pick<Field, "type" | "config" | "format">, value?: unknown): boolean;
4152
+ /** A value that names a moment in the day, not just the day. */
4153
+ declare function hasTimePart(value: unknown): boolean;
4154
+ /** Is this Field a date column at all — a dated range, or the store's own time stamp? */
4155
+ declare function isDateField(field: Pick<Field, "type" | "config">): boolean;
4156
+ /**
4157
+ * The format a date-ish Field draws with, or `undefined` for a Field that is not one. With a
4158
+ * value, it is that value's own shape; without, the Field's (`carriesTimeOfDay`).
4159
+ * `presentation.formatForField` answers dates through this, so the grid and every card agree.
4160
+ */
4161
+ declare function dateFormatFor(field: Pick<Field, "type" | "config" | "format">, value?: unknown): FieldFormatConfig | undefined;
4162
+ /**
4163
+ * THE TEXT OF ONE DATE VALUE, in the viewer's language — through the design system's
4164
+ * registry, exactly as the grid prints it, in the value's own shape. `null` when the value is
4165
+ * not a date at all, so the caller can fall back to its own reading (THE FALLBACK LAW).
4166
+ */
4167
+ declare function dateText(field: Pick<Field, "type" | "config" | "format">, value: unknown): string | null;
4168
+ /**
4169
+ * THE CALENDAR DAY a value falls on, as `YYYY-MM-DD` — the key a calendar files a card under.
4170
+ *
4171
+ * A bare calendar date is its own day. An instant is placed on the VIEWER's calendar: a visit
4172
+ * logged at 5:13 PM Pacific on 24 September is on the 24th for the person in Pacific time,
4173
+ * even though it is already the 25th in UTC.
4174
+ */
4175
+ declare function calendarDayOf(value: unknown): string | null;
4176
+ /** The heading of one calendar day — `Apr 1, 2026` — built on local midnight, never UTC. */
4177
+ declare function calendarDayLabel(day: string): string;
4178
+
4179
+ /** The word a withheld cell shows in place of a value. Never "—", which means empty. */
4180
+ declare const WITHHELD_WORD = "Withheld";
4181
+ type Hidden = Readonly<Record<string, HiddenFieldNotice | undefined>> | null | undefined;
4182
+ /** The store's notice for this column of this row, when the store withheld it. */
4183
+ declare function withheldNoticeOf(hidden: Hidden, key: string): HiddenFieldNotice | null;
4184
+ /**
4185
+ * THE SENTENCE, in the store's own words: the notice's `says` when the store wrote one (a
4186
+ * worked-out column names what it reads), else the notice's reason, the level it needs and the
4187
+ * other way in.
4188
+ */
4189
+ declare function withheldSentence(field: Pick<Field, "key" | "label" | "name">, notice: HiddenFieldNotice): string;
4190
+ /** A withheld cell as a person reads it: the word, with the store's reason on hover. */
4191
+ declare function WithheldValue({ field, notice }: {
4192
+ field: Field;
4193
+ notice: HiddenFieldNotice;
4194
+ }): react.JSX.Element;
4195
+
3949
4196
  interface PipelineBoardProps {
3950
4197
  tableId: Uuid;
3951
4198
  /** The rows the view holds — the SAME rows every other layout of this view draws. */
3952
4199
  rows: ReadRow$1[];
4200
+ /**
4201
+ * The table's own title column (`title_field`), from the table the host already holds — each
4202
+ * card is named by it through `cardTitleField`. The board never reads the table again for it.
4203
+ */
4204
+ titleKey?: string | null | undefined;
3953
4205
  /** A number column to total under each heading. The person picks it; nothing is guessed. */
3954
4206
  measure?: string | null;
3955
4207
  /**
@@ -3971,6 +4223,6 @@ interface PipelineBoardProps {
3971
4223
  style?: TableStyle | undefined;
3972
4224
  className?: string | undefined;
3973
4225
  }
3974
- declare function PipelineBoard({ tableId, rows, measure, filter, onMeasureChange, onOpenRecord, onMoved, style, className, }: PipelineBoardProps): react.JSX.Element;
4226
+ declare function PipelineBoard({ tableId, rows, titleKey, measure, filter, onMeasureChange, onOpenRecord, onMoved, style, className, }: PipelineBoardProps): react.JSX.Element;
3975
4227
 
3976
- export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, type AbsenceWord, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, 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, type Capability, 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, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, 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, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, 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 FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaOp, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, type HostLayout, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, type LinkRail, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, 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, 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, type PickableFieldType, 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, 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, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_LABEL, type WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, actorBadge, actorWords, archivedRowLine, asRefusal, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cameFromLine, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareView, editorKindFor, ensureSystemTable, entityReferenceSpec, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isEngineerText, isId, isMachineIdentity, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, mayNotRestoreLine, memberName, nextInWords, nextSummaryAt, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, railFromParam, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, renderValue, revokeConsequence, rowName, rowNameIn, saveViewPatch, scalarText, seedIsSatisfied, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, unknownRailLine, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRow, viewKeysFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
4228
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, type AbsenceWord, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, 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, type Capability, 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, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, 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, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, 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 FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaOp, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, type InboxGroup, type InboxGrouping, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, type LinkRail, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, 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, 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, type PickableFieldType, 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, 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, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_MENU, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, type TableOpening, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, 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, type WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actorBadge, actorWords, archivedRowLine, asRefusal, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, declareView, defaultViewOf, designatedLayoutOf, editorKindFor, ensureSystemTable, entityReferenceSpec, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupInbox, groupLabel, hasTimePart, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isDateField, isEngineerText, isId, isMachineIdentity, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, mayNotRestoreLine, memberName, nextInWords, nextSummaryAt, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, railFromParam, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, renderValue, resolveTableStyle, revokeConsequence, rowName, rowNameIn, saveViewPatch, scalarText, seedIsSatisfied, shareUnavailableReason, specFromBlock, storeDecidesRights, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableOpening, tableRightsAt, unknownRailLine, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRow, viewKeysFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence };