@ai-matrx/records-ui 0.63.0 → 0.66.0

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, AggregateFilter, Field, RecordDocument, ReadRow, RelationDisplay, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, WorkInboxKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
4
+ import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, AggregateFilter, Field, RecordDocument, ReadRow, RelationDisplay, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, ChecklistRequirementKind, ContextPolicy, WorkDueState, FieldSensitivity, StageRuleOnFail, SubscriptionCadence, WorkInboxKind, FieldKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
5
5
  import { Uuid, Field as Field$1, ReadRow as ReadRow$1 } from '@ai-matrx/records/react';
6
6
  import { RecordsClient } from '@ai-matrx/records/core';
7
7
  import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
@@ -108,6 +108,12 @@ interface RecordChatContext {
108
108
  /** The whole door answer, for a host that wants the history or the relations. */
109
109
  scope: RecordScopeContext;
110
110
  }
111
+ /**
112
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `chat` on
113
+ * `<RecordsUiProvider>` with the host's own chat surface — in AI Matrx that is
114
+ * `AgentConversationColumn`, launched through a Mandate. This package
115
+ * deliberately ships no second chat UI.
116
+ */
111
117
  declare const NO_CHAT_REASON: string;
112
118
  interface RecordChatProps {
113
119
  tableId: Uuid;
@@ -138,6 +144,12 @@ interface EnrichOutcome {
138
144
  says?: string;
139
145
  }>;
140
146
  }
147
+ /**
148
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `enrich` on
149
+ * `<RecordsUiProvider>` with a call to the server's own `records` tool (action
150
+ * `enrich_propose`). Only the server may write a value as an agent — a browser
151
+ * stamping itself `agent` would be a browser claiming to be one.
152
+ */
141
153
  declare const NO_ENRICH_REASON: string;
142
154
  /** Which of the four things this cell is. One place, so nothing can disagree. */
143
155
  declare function cellState(cell: EnrichCell | undefined): "none" | "agent" | "yours" | "unsure";
@@ -487,17 +499,52 @@ interface PendingCapture {
487
499
  attempts: number;
488
500
  lastRefusal?: string | null;
489
501
  }
490
- /** The sentence the notify editor shows when no saved-view port is bound. */
502
+ /**
503
+ * The sentence the notify editor shows when no saved-view port is bound.
504
+ *
505
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `savedViews` on
506
+ * `<RecordsUiProvider>` with the host's own list of `platform.saved_view` rows —
507
+ * the record store has no door onto them — and the picker appears.
508
+ */
491
509
  declare const NO_SAVED_VIEWS_REASON: string;
492
- /** The sentence a person question shows when no membership port is bound. */
510
+ /**
511
+ * The sentence a person question shows when no membership port is bound.
512
+ *
513
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `members` on
514
+ * `<RecordsUiProvider>` with the host's own roster. Who is in an organization is
515
+ * the platform's answer, not the record store's, so this package will not guess.
516
+ */
493
517
  declare const NO_MEMBERS_REASON: string;
494
- /** The sentence shown when no share dialog is bound. */
518
+ /**
519
+ * The sentence shown when no share dialog is bound.
520
+ *
521
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `share` on
522
+ * `<RecordsUiProvider>` with the app's own sharing dialog. AI Matrx has exactly
523
+ * one, and this package deliberately does not ship a second.
524
+ */
495
525
  declare const NO_SHARE_REASON: string;
496
- /** The sentence a canvas shows when nothing is bound to open the records behind a number. */
526
+ /**
527
+ * The sentence a canvas shows when nothing is bound to open the records behind a number.
528
+ *
529
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `openRecords` on
530
+ * `<RecordsUiProvider>`. Where this app puts its grid is the host's routing, not
531
+ * this package's, so it will not guess an address.
532
+ */
497
533
  declare const NO_OPEN_RECORDS_REASON: string;
498
- /** The sentence the re-ask box shows when no agent is bound. */
534
+ /**
535
+ * The sentence the re-ask box shows when no agent is bound.
536
+ *
537
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `onReask` on
538
+ * `<RecordsUiProvider>`; it drives `dashboard_propose` on the server's `records`
539
+ * tool with this dashboard's id. Only the server can honestly speak as an agent.
540
+ */
499
541
  declare const NO_REASK_REASON: string;
500
- /** The sentence an attachment question shows when no file store is bound. */
542
+ /**
543
+ * The sentence an attachment question shows when no file store is bound.
544
+ *
545
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `upload` on
546
+ * `<RecordsUiProvider>` with the host's file service and the chooser appears.
547
+ */
501
548
  declare const NO_UPLOAD_REASON: string;
502
549
  declare function RecordsUiProvider({ value, children }: {
503
550
  value: RecordsUiHost;
@@ -549,6 +596,28 @@ declare function isMachineIdentity(text: string): boolean;
549
596
  * the suite to say WHAT it found rather than only that it found something.
550
597
  */
551
598
  declare function machineIdentityIn(text: string): string[];
599
+ /**
600
+ * 🚨 A HINT THIS PACKAGE OR ITS CLIENT WROTE IS NOT A PERSON'S REMEDY.
601
+ *
602
+ * `refusalForAPerson` prefers the DOOR's own hint over the table above, because
603
+ * the door that refused knows more about the way out than a code does. That is
604
+ * right — but it assumed every hint came from the store. It did not: until
605
+ * `@ai-matrx/records` 0.47.0 the client appended its OWN note to `hint` when it
606
+ * met a SQLSTATE it did not know, and the machine-identity filter let it
607
+ * through whenever the code was not exactly five characters (an empty code from
608
+ * a dropped connection, or an HTTP status like `404`). So the Checklists tab of
609
+ * a plumbing company's jobs table told its owner:
610
+ *
611
+ * @ai-matrx/records did not recognise SQLSTATE from checklistTemplates
612
+ *
613
+ * The client no longer writes there. This is the guard on the other side, by
614
+ * SHAPE and not by that one sentence: a hint that talks about a package, a
615
+ * SQLSTATE, or a `camelCaseDoor` is engineer text wherever it came from, and it
616
+ * joins the engineer's line instead of a person's screen.
617
+ */
618
+ declare const ENGINEER_TEXT: RegExp[];
619
+ /** Whether this sentence was written for whoever maintains the code. */
620
+ declare function isEngineerText(text: string): boolean;
552
621
  /** The one shape every screen in this package renders a refusal from. */
553
622
  interface PlainRefusal {
554
623
  /** The heading. Never the store's code. */
@@ -1186,11 +1255,34 @@ declare const CONDITION_OPS: Array<{
1186
1255
  op: string;
1187
1256
  label: string;
1188
1257
  }>;
1189
- /** A column this condition may speak about, by id — which is how the store names them. */
1258
+ /**
1259
+ * A column this condition may speak about, by id — which is how the store names them.
1260
+ *
1261
+ * 🚨 IT CARRIES THE FIELD NOW, AND THAT IS A DEFECT BEING FIXED (lane RELATION-DISPLAY-2,
1262
+ * 2026-09-21). This was `{id, key, label}` and nothing else, so the builder could not know
1263
+ * that a column POINTS AT ANOTHER RECORD. A relation clause therefore rendered the same
1264
+ * plain text box every other clause gets — and since a relation's stored value is the
1265
+ * other record's id (FLD-6 / REL-1), the only way to write a true one was for a person to
1266
+ * find and TYPE A UUID. Nobody does that, which means "only jobs for this customer" was a
1267
+ * gate a non-technical person could not write at all, on a builder whose whole purpose is
1268
+ * that they can.
1269
+ *
1270
+ * `field` is OPTIONAL and everything still works without it: a caller that passes only the
1271
+ * three strings gets exactly the old behaviour. Both callers in this package already hold
1272
+ * the whole `Field` and were throwing it away one line before handing it over.
1273
+ */
1190
1274
  interface ConditionField {
1191
1275
  id: string;
1192
1276
  key: string;
1193
1277
  label: string;
1278
+ /**
1279
+ * The Field itself, when the caller has it. Present, a relation clause picks a record BY
1280
+ * ITS DISPLAYED WORDS through `RelationPicker` — the same picker the cell uses, reading
1281
+ * the same `relation_words_many` the cell reads, so what a person chooses in a filter and
1282
+ * what they see in the column are the same string. It writes the ID, which is what the
1283
+ * store compares.
1284
+ */
1285
+ field?: Field;
1194
1286
  }
1195
1287
  interface ConditionRowProps {
1196
1288
  /** The words before the row: "Ask only when", "When". */
@@ -1424,16 +1516,63 @@ declare function RecordValue({ field, value, document, format, }: {
1424
1516
  format?: FieldFormatConfig | undefined;
1425
1517
  }): react.JSX.Element;
1426
1518
 
1519
+ declare const WORK_DUE_STATES: readonly ["overdue", "due_today", "scheduled", "undated", "finished"];
1520
+ declare const DUE_STATE_LABEL: Record<WorkDueState, string>;
1521
+ declare const WORK_INBOX_KINDS: readonly ["assignment", "approval", "proposal"];
1522
+ declare const WORK_INBOX_KIND_LABEL: Record<WorkInboxKind, string>;
1523
+ declare const CHECKLIST_REQUIREMENT_KINDS: readonly ["none", "note", "answer", "record_field", "form", "document"];
1524
+ declare const CHECKLIST_REQUIREMENT_LABEL: Record<ChecklistRequirementKind, string>;
1525
+ declare const FIELD_SENSITIVITY_LABEL: Record<FieldSensitivity, string>;
1526
+ declare const CONTEXT_POLICY_LABEL: Record<ContextPolicy, string>;
1527
+ declare const STAGE_RULE_ON_FAIL_LABEL: Record<StageRuleOnFail, string>;
1528
+ declare const SUBSCRIPTION_CADENCES: readonly ["instant", "hourly", "daily", "weekly"];
1529
+ declare const SUBSCRIPTION_CADENCE_LABEL: Record<SubscriptionCadence, string>;
1530
+ declare const SUBSCRIPTION_CHANNEL_VALUES: readonly ["in_app", "email", "sms"];
1531
+ type SubscriptionChannel = (typeof SUBSCRIPTION_CHANNEL_VALUES)[number];
1532
+ declare const SUBSCRIPTION_CHANNEL_LABEL: Record<SubscriptionChannel, string>;
1533
+ declare const ROLLUP_AGG_VALUES: readonly ["count", "sum", "avg", "min", "max"];
1534
+ type RollupAgg = (typeof ROLLUP_AGG_VALUES)[number];
1535
+ declare const ROLLUP_AGG_LABEL: Record<RollupAgg, string>;
1536
+ declare const FORMULA_OP_VALUES: readonly ["concat", "add", "sub", "mul", "div"];
1537
+ type FormulaOp = (typeof FORMULA_OP_VALUES)[number];
1538
+ declare const FORMULA_OP_LABEL: Record<FormulaOp, string>;
1539
+ /** Whether this operation reads naturally as "X and Y and Z…" over more than two columns. */
1540
+ declare const FORMULA_OP_JOINS: Record<FormulaOp, boolean>;
1541
+ declare const FIELD_RULE_KIND_VALUES: readonly ["min", "max", "length", "pattern", "equals_field", "differs_from_field"];
1542
+ type FieldRuleKindValue = (typeof FIELD_RULE_KIND_VALUES)[number];
1543
+ declare const FIELD_RULE_KIND_LABEL: Record<FieldRuleKindValue, string>;
1544
+ declare const PROPOSED_CHANGE_ACT_VALUES: readonly ["add", "update", "remove"];
1545
+ type ProposedChangeAct = (typeof PROPOSED_CHANGE_ACT_VALUES)[number];
1546
+ declare const PROPOSED_CHANGE_ACT_LABEL: Record<ProposedChangeAct, string>;
1547
+ declare const BOOKING_PAGE_STATE_VALUES: readonly ["draft", "open", "closed", "full"];
1548
+ type BookingPageState = (typeof BOOKING_PAGE_STATE_VALUES)[number];
1549
+ declare const BOOKING_PAGE_STATE_LABEL: Record<BookingPageState, string>;
1550
+ declare const ABSENCE_WORD_VALUES: readonly ["never asked", "none", "refused", "conflicting"];
1551
+ type AbsenceWord = (typeof ABSENCE_WORD_VALUES)[number];
1552
+ declare const ABSENCE_WORD_LABEL: Record<AbsenceWord, string>;
1553
+
1427
1554
  declare const PARITY_LABEL: Record<ParityFieldType, string>;
1428
1555
  /** The "made of" sentence the store itself publishes, for the field editor's help text. */
1429
1556
  declare const PARITY_MADE_OF: Record<string, string>;
1430
- /** Plain text and plain number are behaviours with no parity type of their own. */
1431
- type EditorKind = ParityFieldType | "relation" | "text" | "number" | "boolean" | "date" | "json" | "long_text";
1557
+ /**
1558
+ * Plain text and plain number are behaviours with no parity type of their own.
1559
+ *
1560
+ * 🚨 THIS IS NOW AN ALIAS, AND THAT IS THE POINT (TAILS-3, 2026-09-21). The
1561
+ * classifier moved into `@ai-matrx/records` as `FieldKind` so that the editor a
1562
+ * person types into and the COERCION applied to what they typed are decided by
1563
+ * one body. They were decided by two, and the public booking page paid for it:
1564
+ * "Vehicle Year takes a number, and it was given a string" on every table with
1565
+ * a number field.
1566
+ */
1567
+ type EditorKind = FieldKind;
1432
1568
  /**
1433
1569
  * Which editor one Field wants. Reads the Field's own declaration only — the
1434
1570
  * behaviour, the modifiers, the format, the relation target and the config —
1435
1571
  * because those are what the store stores, and a screen that guessed from a
1436
1572
  * value would draw a different editor for an empty record.
1573
+ *
1574
+ * It is `fieldKindFor` with this package's kernel ids bound. Nothing here
1575
+ * decides anything the core does not.
1437
1576
  */
1438
1577
  declare function editorKindFor(field: Field): EditorKind;
1439
1578
  /**
@@ -1933,10 +2072,25 @@ declare function PortalBuilder({ tableId, portalId, onSaved, onClose, className
1933
2072
 
1934
2073
  interface PortalsPanelProps {
1935
2074
  /**
1936
- * OPTIONAL. The Table whose page this rail is on. It is used for ONE thing:
1937
- * saying, on an opened portal, whether this table is among the ones that
1938
- * portal shows. It never filters the list — a portal belongs to the
1939
- * organization, and hiding the others would answer a question nobody asked.
2075
+ * The Table whose page this rail is on. THE RAIL IS SCOPED TO IT: it lists
2076
+ * the portals that INCLUDE this table, and nothing else.
2077
+ *
2078
+ * 🚨 THIS NOTE USED TO SAY THE OPPOSITE, and the opposite was a defect
2079
+ * (AGENT-BUILDS-2, measured on Rincon Plumbing Co; chair ruling 2026-09-21).
2080
+ * It read: "It never filters the list — a portal belongs to the
2081
+ * organization, and hiding the others would answer a question nobody asked."
2082
+ * A portal does belong to the organization. But this rail sits on a TABLE's
2083
+ * page, beside Forms, Bookings and Dashboards, every one of which is
2084
+ * table-scoped — and emptiness here decided the whole "Build it / Ask an
2085
+ * agent" offer. So on Rincon's **Parts** table, eight rows of copper pipe and
2086
+ * wax rings, the rail read "Portals 10" and listed ten cards titled "Your
2087
+ * jobs and invoices", which belong to **Jobs**. The empty state never
2088
+ * rendered, `BuildOrAsk` never rendered, and the agent half of the product
2089
+ * was unreachable on EVERY table of that organization. Four Rincon tables
2090
+ * were tried and all four refused to offer it.
2091
+ *
2092
+ * Omit it and the rail is organization-wide again, which is right for a
2093
+ * mount that is not standing on a table.
1940
2094
  */
1941
2095
  tableId?: Uuid | undefined;
1942
2096
  className?: string | undefined;
@@ -2033,7 +2187,9 @@ interface BuildOrAskProps {
2033
2187
  whyNot?: string | null | undefined;
2034
2188
  /**
2035
2189
  * The host's agent port. Unbound, the second button is absent and the
2036
- * sentence below names what is missing.
2190
+ * sentence below names what is missing. Bound but `mayBuild` false, it is
2191
+ * absent too: an agent asked to do what this person may not do gets refused
2192
+ * by the same doors, five minutes later, with nothing to show for it.
2037
2193
  */
2038
2194
  onAsk?: (() => void) | undefined;
2039
2195
  /** The words a person would actually say, offered as the starting sentence. */
@@ -2466,6 +2622,11 @@ declare function nextInWords(page: Pick<BookingSummary, "next_at" | "timezone" |
2466
2622
  /** The three things a phone captures. Each one writes the SAME kind of record. */
2467
2623
  declare const CAPTURE_MODES: readonly ["reading", "photo", "voice"];
2468
2624
  type CaptureMode = (typeof CAPTURE_MODES)[number];
2625
+ /**
2626
+ * FOR WHOEVER MAINTAINS THIS APP (never on the screen): bind `captureQueue` on
2627
+ * `<RecordsUiProvider>` with the host's own durable store — IndexedDB in a
2628
+ * browser — and a queued capture survives the tab, the reload and the flight.
2629
+ */
2469
2630
  declare const IN_MEMORY_QUEUE_REASON: string;
2470
2631
  interface CaptureSheetProps {
2471
2632
  /**
@@ -2712,6 +2873,31 @@ interface TablePageProps {
2712
2873
  * copy it out of the address bar afterwards.
2713
2874
  */
2714
2875
  onViewChanged?: ((view: PageView) => void) | undefined;
2876
+ /**
2877
+ * WHICH FIELD THE ADDRESS WANTS THE BOARD'S COLUMNS TO BE, for this visit.
2878
+ *
2879
+ * 🚨 THIS IS HOW A DASHBOARD NUMBER CLICKS THROUGH (lane TAILS-6, 2026-09-22).
2880
+ * Until today the canvas told the owner of the business to "bind `openRecords`
2881
+ * on <RecordsUiProvider>" — a developer's sentence on a customer's screen —
2882
+ * because nothing in this app routed a bar or a slice anywhere. The store has
2883
+ * no door that returns the ROWS behind an aggregate filter, so a click cannot
2884
+ * honestly promise a narrowed list; what it CAN do is open this table's board
2885
+ * with its columns set to the very field the chart grouped by, where the
2886
+ * column the person clicked is right there and every card in it is real.
2887
+ *
2888
+ * It overrides the saved view's own `groupField` for this visit only, exactly
2889
+ * as `activeView` overrides its layout, and it is never written back.
2890
+ */
2891
+ activeGroupField?: string | null | undefined;
2892
+ /**
2893
+ * WHAT THE PERSON CLICKED TO GET HERE — "Jobs by stage · Awaiting parts".
2894
+ *
2895
+ * Present, the board says where they came from AND says plainly that it is
2896
+ * showing every record grouped by that field rather than only the ones the
2897
+ * number counted. A screen that quietly showed more rows than the number
2898
+ * promised would be the number lying twice.
2899
+ */
2900
+ cameFrom?: string | null | undefined;
2715
2901
  className?: string | undefined;
2716
2902
  }
2717
2903
  /**
@@ -2730,6 +2916,16 @@ interface TablePageProps {
2730
2916
  * whether the table exists: this person cannot see it, and which of the two it
2731
2917
  * is is not theirs to learn.
2732
2918
  */
2919
+ /**
2920
+ * WHAT THE BOARD SAYS TO SOMEBODY A DASHBOARD NUMBER SENT HERE.
2921
+ *
2922
+ * It says two things and neither is optional: which number they clicked, and
2923
+ * that this is every record grouped by that field rather than only the ones the
2924
+ * number counted. The store has no door that returns the rows behind an
2925
+ * aggregate filter, so claiming a narrowed list would be a lie — and showing a
2926
+ * wider one silently would be the same lie with nobody told.
2927
+ */
2928
+ declare function cameFromLine(label: string, groupField: string | null): string;
2733
2929
  declare const TABLE_NOT_REACHABLE: string;
2734
2930
  /**
2735
2931
  * THE VIEW EVERY TABLE HAS, AND WHY IT IS NOT OPTIONAL.
@@ -2838,7 +3034,7 @@ declare function openingView(activeView: string | null | undefined, activeDashbo
2838
3034
  layout: ViewLayout | null;
2839
3035
  unknown: string | null;
2840
3036
  };
2841
- declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, className, }: TablePageProps): react.JSX.Element;
3037
+ declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, activeGroupField, cameFrom, className, }: TablePageProps): react.JSX.Element;
2842
3038
 
2843
3039
  /** What the roster can tell us about a user id. `null` when it cannot. */
2844
3040
  type ResolveName = (userId: Uuid$1) => string | null;
@@ -3016,4 +3212,4 @@ interface PipelineBoardProps {
3016
3212
  }
3017
3213
  declare function PipelineBoard({ tableId, rows, measure, onMeasureChange, onOpenRecord, onMoved, className, }: PipelineBoardProps): react.JSX.Element;
3018
3214
 
3019
- export { ACTION_KINDS, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, BookingBuilder, type BookingBuilderProps, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CONDITION_OPS, 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_FIELDS, DEFAULT_VIEW_NAME, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, ExportMenu, type ExportMenuProps, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FORM_FLOWS, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldTypeChoice, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, 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, 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, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, 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, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, ProvenanceBadge, PublicViewPage, type PublicViewPageProps, 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, SAVED_VIEWS_UNAVAILABLE, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SERIES_COLORS, SOMEBODY, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, 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_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, WITHHELD_RECORD_LABEL, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, memberName, nextInWords, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, rowNameIn, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
3215
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, type AbsenceWord, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, 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_FIELDS, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, ENGINEER_TEXT, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, 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, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, 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, 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, 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, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, 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, 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, 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, SERIES_COLORS, 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_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, WITHHELD_RECORD_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_LABEL, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cameFromLine, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isEngineerText, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, memberName, nextInWords, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, rowNameIn, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };