@ai-matrx/records-ui 0.115.37 → 0.115.39

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
@@ -429,6 +429,19 @@ type TableAskOutcome = {
429
429
  ok: false;
430
430
  message: string;
431
431
  };
432
+ /** What `RecordsUiHost.writeSyncedCell` answers. */
433
+ type SyncedCellOutcome = {
434
+ ok: true;
435
+ status: "written";
436
+ version?: number | null;
437
+ } | {
438
+ ok: true;
439
+ status: "conflict";
440
+ sheetValue: string | null;
441
+ } | {
442
+ ok: false;
443
+ message: string;
444
+ };
432
445
  interface RecordsUiHost {
433
446
  /**
434
447
  * OPTIONAL. THE TABLE'S ASK BOX, ANSWERED BY AN AGENT. Bound, the box sends the typed line here and
@@ -436,6 +449,21 @@ interface RecordsUiHost {
436
449
  * against the record's version). Unbound, the box answers with the Question runner as before.
437
450
  */
438
451
  askTable?: ((ask: TableAskRequest) => Promise<TableAskOutcome>) | undefined;
452
+ /**
453
+ * OPTIONAL. WRITE-THROUGH FOR A SYNCED CELL (lane SYNC-AIRTABLE, CFL-058). A column the store keeps
454
+ * from a source (`field.source === "synced"`) is written only by that source: bound, an edit of such
455
+ * a cell is sent here (the host's server writes the connected Google Sheet first, then lands it) and
456
+ * answers `written` (with the record's new version) or `conflict` (the sheet changed since the last
457
+ * sync — the cell keeps both and the person picks; Retry sends `force`). A refusal is `{ ok: false }`
458
+ * in the host's own words. Unbound, the store refuses the edit as before.
459
+ */
460
+ writeSyncedCell?: ((cell: {
461
+ tableId: Uuid;
462
+ recordId: Uuid;
463
+ fieldKey: string;
464
+ value: unknown;
465
+ force: boolean;
466
+ }) => Promise<SyncedCellOutcome>) | undefined;
439
467
  /**
440
468
  * Draws an icon kept as a NAME ("Briefcase" — how the store keeps an icon a person picked from the
441
469
  * icon list). A relation cell in an embedded table wears its record's icon; an emoji is drawn as
@@ -1328,6 +1356,10 @@ interface CellRefusal {
1328
1356
  conflict: WriteConflict | null;
1329
1357
  /** The value that was being written, so Retry can write it again. */
1330
1358
  attempted: unknown;
1359
+ /** A synced cell whose sheet changed since the last sync: the sheet's value. Retry keeps the person's. */
1360
+ sheet?: {
1361
+ value: string | null;
1362
+ };
1331
1363
  /**
1332
1364
  * THE WRITE NEVER REACHED THE STORE (offline, `unreachable`): nothing was refused. The typed value
1333
1365
  * stays in the cell, the cell says "Not saved", and it is sent again when the browser is back
@@ -1892,6 +1924,7 @@ declare function columnForField(field: Field$1, editing?: GridEditing | null, ma
1892
1924
  format?: FieldFormatConfig;
1893
1925
  frozen?: boolean;
1894
1926
  rowLabel?: boolean;
1927
+ syncedFrom?: string | null;
1895
1928
  },
1896
1929
  /** "Who changed this?" from the cell's own menu. Absent, no control is drawn. */
1897
1930
  onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined,
@@ -6948,4 +6981,4 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
6948
6981
  */
6949
6982
  declare function TablePageSkeleton({ layout: layoutAsked, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
6950
6983
 
6951
- export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarFeedMade, type CalendarFeedPort, type CalendarFeedRow, CalendarLinkOnce, CalendarLinks, type CalendarMode, CalendarSubscribeDialog, 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, ChartLayout, type ChartLayoutProps, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_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, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSubmitOutcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, MigrationLog, type MigrationLogProps, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, 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 PlatformFieldSpec, type PlatformTableSpec, 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, QuestionAnswerView, QuestionPanel, type QuestionPanelProps, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STRUCTURE_LOCKED, SUBSCRIBE_ACTION_ID, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, StructureLocked, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskAgentAnswer, type TableAskOutcome, type TableAskProps, type TableAskRequest, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewLook, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, archiveConfirmSentence, archivedRowLine, askExampleFor, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, chartQuestion, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, costInPoints, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensurePlatformTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, footerOf, formLookView, formatForField, freshFormName, getPersonTimeZone, googleCalendarUrl, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, liveRecordMakers, lookDocument, lookFromDocument, looksLikeId, machineIdentityIn, mayHideStructure, mayNotRestoreLine, memberName, migrationWords, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionFromWords, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storePublishesKind, styleFromDecorations, subscribeCalendarAction, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMigrationLog, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useStructureHidden, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsPatch, visibilityLaneFor, webcalUrl, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition };
6984
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarFeedMade, type CalendarFeedPort, type CalendarFeedRow, CalendarLinkOnce, CalendarLinks, type CalendarMode, CalendarSubscribeDialog, 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, ChartLayout, type ChartLayoutProps, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_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, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSubmitOutcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, MigrationLog, type MigrationLogProps, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, 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 PlatformFieldSpec, type PlatformTableSpec, 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, QuestionAnswerView, QuestionPanel, type QuestionPanelProps, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STRUCTURE_LOCKED, SUBSCRIBE_ACTION_ID, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, StructureLocked, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SyncedCellOutcome, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskAgentAnswer, type TableAskOutcome, type TableAskProps, type TableAskRequest, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewLook, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, archiveConfirmSentence, archivedRowLine, askExampleFor, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, chartQuestion, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, costInPoints, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensurePlatformTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, footerOf, formLookView, formatForField, freshFormName, getPersonTimeZone, googleCalendarUrl, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, liveRecordMakers, lookDocument, lookFromDocument, looksLikeId, machineIdentityIn, mayHideStructure, mayNotRestoreLine, memberName, migrationWords, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionFromWords, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storePublishesKind, styleFromDecorations, subscribeCalendarAction, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMigrationLog, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useStructureHidden, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsPatch, visibilityLaneFor, webcalUrl, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition };
package/dist/index.d.ts CHANGED
@@ -429,6 +429,19 @@ type TableAskOutcome = {
429
429
  ok: false;
430
430
  message: string;
431
431
  };
432
+ /** What `RecordsUiHost.writeSyncedCell` answers. */
433
+ type SyncedCellOutcome = {
434
+ ok: true;
435
+ status: "written";
436
+ version?: number | null;
437
+ } | {
438
+ ok: true;
439
+ status: "conflict";
440
+ sheetValue: string | null;
441
+ } | {
442
+ ok: false;
443
+ message: string;
444
+ };
432
445
  interface RecordsUiHost {
433
446
  /**
434
447
  * OPTIONAL. THE TABLE'S ASK BOX, ANSWERED BY AN AGENT. Bound, the box sends the typed line here and
@@ -436,6 +449,21 @@ interface RecordsUiHost {
436
449
  * against the record's version). Unbound, the box answers with the Question runner as before.
437
450
  */
438
451
  askTable?: ((ask: TableAskRequest) => Promise<TableAskOutcome>) | undefined;
452
+ /**
453
+ * OPTIONAL. WRITE-THROUGH FOR A SYNCED CELL (lane SYNC-AIRTABLE, CFL-058). A column the store keeps
454
+ * from a source (`field.source === "synced"`) is written only by that source: bound, an edit of such
455
+ * a cell is sent here (the host's server writes the connected Google Sheet first, then lands it) and
456
+ * answers `written` (with the record's new version) or `conflict` (the sheet changed since the last
457
+ * sync — the cell keeps both and the person picks; Retry sends `force`). A refusal is `{ ok: false }`
458
+ * in the host's own words. Unbound, the store refuses the edit as before.
459
+ */
460
+ writeSyncedCell?: ((cell: {
461
+ tableId: Uuid;
462
+ recordId: Uuid;
463
+ fieldKey: string;
464
+ value: unknown;
465
+ force: boolean;
466
+ }) => Promise<SyncedCellOutcome>) | undefined;
439
467
  /**
440
468
  * Draws an icon kept as a NAME ("Briefcase" — how the store keeps an icon a person picked from the
441
469
  * icon list). A relation cell in an embedded table wears its record's icon; an emoji is drawn as
@@ -1328,6 +1356,10 @@ interface CellRefusal {
1328
1356
  conflict: WriteConflict | null;
1329
1357
  /** The value that was being written, so Retry can write it again. */
1330
1358
  attempted: unknown;
1359
+ /** A synced cell whose sheet changed since the last sync: the sheet's value. Retry keeps the person's. */
1360
+ sheet?: {
1361
+ value: string | null;
1362
+ };
1331
1363
  /**
1332
1364
  * THE WRITE NEVER REACHED THE STORE (offline, `unreachable`): nothing was refused. The typed value
1333
1365
  * stays in the cell, the cell says "Not saved", and it is sent again when the browser is back
@@ -1892,6 +1924,7 @@ declare function columnForField(field: Field$1, editing?: GridEditing | null, ma
1892
1924
  format?: FieldFormatConfig;
1893
1925
  frozen?: boolean;
1894
1926
  rowLabel?: boolean;
1927
+ syncedFrom?: string | null;
1895
1928
  },
1896
1929
  /** "Who changed this?" from the cell's own menu. Absent, no control is drawn. */
1897
1930
  onAskWhoChanged?: ((fieldKey: string, recordId: Uuid$1) => void) | undefined,
@@ -6948,4 +6981,4 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
6948
6981
  */
6949
6982
  declare function TablePageSkeleton({ layout: layoutAsked, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
6950
6983
 
6951
- export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarFeedMade, type CalendarFeedPort, type CalendarFeedRow, CalendarLinkOnce, CalendarLinks, type CalendarMode, CalendarSubscribeDialog, 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, ChartLayout, type ChartLayoutProps, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_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, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSubmitOutcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, MigrationLog, type MigrationLogProps, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, 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 PlatformFieldSpec, type PlatformTableSpec, 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, QuestionAnswerView, QuestionPanel, type QuestionPanelProps, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STRUCTURE_LOCKED, SUBSCRIBE_ACTION_ID, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, StructureLocked, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskAgentAnswer, type TableAskOutcome, type TableAskProps, type TableAskRequest, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewLook, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, archiveConfirmSentence, archivedRowLine, askExampleFor, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, chartQuestion, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, costInPoints, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensurePlatformTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, footerOf, formLookView, formatForField, freshFormName, getPersonTimeZone, googleCalendarUrl, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, liveRecordMakers, lookDocument, lookFromDocument, looksLikeId, machineIdentityIn, mayHideStructure, mayNotRestoreLine, memberName, migrationWords, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionFromWords, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storePublishesKind, styleFromDecorations, subscribeCalendarAction, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMigrationLog, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useStructureHidden, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsPatch, visibilityLaneFor, webcalUrl, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition };
6984
+ export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarFeedMade, type CalendarFeedPort, type CalendarFeedRow, CalendarLinkOnce, CalendarLinks, type CalendarMode, CalendarSubscribeDialog, 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, ChartLayout, type ChartLayoutProps, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, type DrillBase, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_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, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, FormResultsPanel, type FormResultsPanelProps, FormRunner, type FormRunnerProps, type FormSubmitOutcome, FormsPanel, type FormsPanelProps, type FormulaHelpAsk, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MatrxDrillDimensionOptions, MigrationLog, type MigrationLogProps, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PARITY_LABEL, PARITY_MADE_OF, PERSON_KERNEL_TABLE, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, 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 PlatformFieldSpec, type PlatformTableSpec, 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, QuestionAnswerView, QuestionPanel, type QuestionPanelProps, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STRUCTURE_LOCKED, SUBSCRIBE_ACTION_ID, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, StructureLocked, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SyncedCellOutcome, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableAccessLevel, TableActionHost, TableAsk, type TableAskAgentAnswer, type TableAskOutcome, type TableAskProps, type TableAskRequest, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsAgent, type TableSettingsProps, type TableSettingsSnapshot, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UsePlatformTableState, VIEW_ADDRESS_KEYS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewLook, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actionForAgent, actorBadge, actorWords, addDays, announceTableArchived, archiveConfirmSentence, archivedRowLine, askExampleFor, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, chartQuestion, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, costInPoints, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, descriptionPatch, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillFactWords, drillLevelAsks, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensurePlatformTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, footerOf, formLookView, formatForField, freshFormName, getPersonTimeZone, googleCalendarUrl, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, liveRecordMakers, lookDocument, lookFromDocument, looksLikeId, machineIdentityIn, mayHideStructure, mayNotRestoreLine, memberName, migrationWords, moveRecordValue, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, parityTypesWithNoExplanation, parseGridPresentation, personActor, personColumns, personRecordForMember, personWallNow, pickableTypeOf, platformOwned, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionFromWords, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusalForAPerson, refusalLineForAPerson, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowActionFromAgent, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveTableDescription, saveViewPatch, scalarText, seedIsSatisfied, setPersonTimeZone, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, stepFromAgent, storeDecidesRights, storePublishesKind, styleFromDecorations, subscribeCalendarAction, surfaceChosen, tableName, tableNameProblem, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, useAddressDrill, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useDrillLevelReads, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMigrationLog, useMyChecklistSteps, usePickerTables, usePlatformTable, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useStructureHidden, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsPatch, visibilityLaneFor, webcalUrl, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition };
package/dist/index.js CHANGED
@@ -11474,6 +11474,9 @@ function useGridEditing({ tableId, fields, rows, reload, reloadAfterWrite, canWr
11474
11474
  const startedFrom = useRef21(null);
11475
11475
  const startedStored = useRef21(null);
11476
11476
  const host = useRecordsUi();
11477
+ const fieldsRef = useRef21(fields);
11478
+ fieldsRef.current = fields;
11479
+ const forceNext = useRef21(/* @__PURE__ */ new Set());
11477
11480
  const type = useCallback10((value) => {
11478
11481
  typed2.current = value;
11479
11482
  setDraft(value);
@@ -11630,6 +11633,47 @@ function useGridEditing({ tableId, fields, rows, reload, reloadAfterWrite, canWr
11630
11633
  delete next[id];
11631
11634
  return next;
11632
11635
  });
11636
+ const syncedField = fieldsRef.current.find((f) => f.key === key);
11637
+ if (syncedField?.source === "synced" && host.writeSyncedCell) {
11638
+ const force = forceNext.current.delete(id);
11639
+ let outcome;
11640
+ try {
11641
+ outcome = await host.writeSyncedCell({ tableId, recordId: rowId, fieldKey: key, value: shown5, force });
11642
+ } catch (thrown) {
11643
+ outcome = { ok: false, message: thrown instanceof Error ? thrown.message : String(thrown) };
11644
+ }
11645
+ setSaving((held) => {
11646
+ const next = { ...held };
11647
+ delete next[id];
11648
+ return next;
11649
+ });
11650
+ if (outcome.ok && outcome.status === "written") {
11651
+ if (typeof outcome.version === "number") {
11652
+ rememberVersion(versions.current, rowId, outcome.version);
11653
+ source.wrote(rowId, outcome.version);
11654
+ }
11655
+ settling.current.set(id, base2);
11656
+ writtenRef.current?.({ rowId, key, before: base2, after: shown5 });
11657
+ afterWrite();
11658
+ return;
11659
+ }
11660
+ setOptimistic((held) => {
11661
+ const next = { ...held };
11662
+ delete next[id];
11663
+ return next;
11664
+ });
11665
+ const sheetValue = outcome.ok ? outcome.sheetValue : null;
11666
+ setRefusals((held) => ({
11667
+ ...held,
11668
+ [id]: outcome.ok ? {
11669
+ error: { code: "stale_write", message: `The sheet now says "${sheetValue ?? ""}". Retry keeps yours.` },
11670
+ conflict: null,
11671
+ attempted: value,
11672
+ sheet: { value: sheetValue }
11673
+ } : { error: { code: "refused_by_rule", message: outcome.message }, conflict: null, attempted: value }
11674
+ }));
11675
+ return;
11676
+ }
11633
11677
  let written;
11634
11678
  try {
11635
11679
  let version = await versionOf(source, versions.current, versionReads.current, rowId);
@@ -11789,6 +11833,7 @@ function useGridEditing({ tableId, fields, rows, reload, reloadAfterWrite, canWr
11789
11833
  (rowId, key) => {
11790
11834
  const held = refusals[cellKey(rowId, key)];
11791
11835
  if (!held) return;
11836
+ if (held.sheet) forceNext.current.add(cellKey(rowId, key));
11792
11837
  void writeCell(rowId, key, held.attempted, held.conflict?.contested_fields[key]);
11793
11838
  },
11794
11839
  [refusals, writeCell]
@@ -19672,6 +19717,20 @@ function columnForField(field2, editing, mayWriteRow, whyNotRow, look, onAskWhoC
19672
19717
  const name = fieldName(field2);
19673
19718
  const format = cellFormatFor(field2, look?.format);
19674
19719
  const workedOut = workedOutFrom(field2);
19720
+ const syncedMark = field2.source === "synced" ? /* @__PURE__ */ jsx69(
19721
+ "span",
19722
+ {
19723
+ "data-records-synced": field2.key,
19724
+ title: `Synced from ${look?.syncedFrom || "its source"}`,
19725
+ "aria-label": `Synced from ${look?.syncedFrom || "its source"}`,
19726
+ className: "text-[10px] text-muted-foreground",
19727
+ children: "\u27F3"
19728
+ }
19729
+ ) : null;
19730
+ const withSynced = (header) => syncedMark ? /* @__PURE__ */ jsxs63("span", { className: "inline-flex items-center gap-1", children: [
19731
+ syncedMark,
19732
+ header
19733
+ ] }) : header;
19675
19734
  return {
19676
19735
  id: field2.key,
19677
19736
  /*
@@ -19679,38 +19738,40 @@ function columnForField(field2, editing, mayWriteRow, whyNotRow, look, onAskWhoC
19679
19738
  * (`custom.formula_eval`, on read or on write) and nobody types it — so its header carries
19680
19739
  * the mark, and the formula it is worked out from is one hover away, in its own words.
19681
19740
  */
19682
- header: look?.rowLabel ? (
19683
- // THE COLUMN THAT NAMES EACH RECORD says so (tranche 6i, the older grid's key marker).
19684
- /* @__PURE__ */ jsxs63("span", { className: "inline-flex items-center gap-1", children: [
19741
+ header: withSynced(
19742
+ look?.rowLabel ? (
19743
+ // THE COLUMN THAT NAMES EACH RECORD says so (tranche 6i, the older grid's key marker).
19744
+ /* @__PURE__ */ jsxs63("span", { className: "inline-flex items-center gap-1", children: [
19745
+ /* @__PURE__ */ jsx69(
19746
+ "span",
19747
+ {
19748
+ "data-records-row-label": field2.key,
19749
+ title: "This column names each record",
19750
+ "aria-label": "Names each record",
19751
+ className: "text-[10px] text-muted-foreground",
19752
+ children: "\u26BF"
19753
+ }
19754
+ ),
19755
+ name
19756
+ ] })
19757
+ ) : workedOut && stampMarkOf(field2) ? (
19758
+ // A STAMP OR A RECORD NUMBER (walk 2026-10-08 D7): kept by the store, but nobody wrote a formula
19759
+ // for it, so its header wears its own mark — a clock, a person, a number sign — never "fx".
19760
+ /* @__PURE__ */ jsx69("span", { className: "inline-flex items-center", title: workedOut, "data-records-stamp": stampMarkOf(field2), children: withTypeMark(field2, name) })
19761
+ ) : workedOut ? /* @__PURE__ */ jsxs63("span", { className: "inline-flex items-center gap-1", children: [
19762
+ name,
19685
19763
  /* @__PURE__ */ jsx69(
19686
19764
  "span",
19687
19765
  {
19688
- "data-records-row-label": field2.key,
19689
- title: "This column names each record",
19690
- "aria-label": "Names each record",
19691
- className: "text-[10px] text-muted-foreground",
19692
- children: "\u26BF"
19766
+ "data-records-worked-out": field2.key,
19767
+ title: workedOut,
19768
+ "aria-label": workedOut,
19769
+ className: "rounded bg-muted px-1 font-mono text-[10px] font-normal text-muted-foreground",
19770
+ children: "fx"
19693
19771
  }
19694
- ),
19695
- name
19696
- ] })
19697
- ) : workedOut && stampMarkOf(field2) ? (
19698
- // A STAMP OR A RECORD NUMBER (walk 2026-10-08 D7): kept by the store, but nobody wrote a formula
19699
- // for it, so its header wears its own mark — a clock, a person, a number sign — never "fx".
19700
- /* @__PURE__ */ jsx69("span", { className: "inline-flex items-center", title: workedOut, "data-records-stamp": stampMarkOf(field2), children: withTypeMark(field2, name) })
19701
- ) : workedOut ? /* @__PURE__ */ jsxs63("span", { className: "inline-flex items-center gap-1", children: [
19702
- name,
19703
- /* @__PURE__ */ jsx69(
19704
- "span",
19705
- {
19706
- "data-records-worked-out": field2.key,
19707
- title: workedOut,
19708
- "aria-label": workedOut,
19709
- className: "rounded bg-muted px-1 font-mono text-[10px] font-normal text-muted-foreground",
19710
- children: "fx"
19711
- }
19712
- )
19713
- ] }) : name,
19772
+ )
19773
+ ] }) : name
19774
+ ),
19714
19775
  label: name,
19715
19776
  accessorFn: (row) => row.document?.[field2.key],
19716
19777
  // A column the store keeps no value for is not offered a sort it would refuse (`sortRefusal`).
@@ -25710,7 +25771,8 @@ function GridBody({
25710
25771
  ...presentation.formats?.[field2.key] ? { format: presentation.formats[field2.key] } : {},
25711
25772
  frozen: frozenKeys.has(field2.key),
25712
25773
  // The column that names each record wears the mark (merged grid, tranche 6i).
25713
- rowLabel: merged && field2.key === (table.data?.title_field ?? null)
25774
+ rowLabel: merged && field2.key === (table.data?.title_field ?? null),
25775
+ syncedFrom: syncedFromWords(table.data)
25714
25776
  },
25715
25777
  onAskWhoChanged,
25716
25778
  {
@@ -26899,6 +26961,12 @@ function withHeaderMenus(columns, menuFor, filterFor) {
26899
26961
  return filter ? { ...withMenu, ...filter } : withMenu;
26900
26962
  });
26901
26963
  }
26964
+ function syncedFromWords(table) {
26965
+ const source = table?.sync_source;
26966
+ if (!source?.provider) return null;
26967
+ const from = source.provider === "google_sheets" ? "Google Sheets" : source.provider === "csv_url" ? "a CSV link" : source.provider === "postgres" ? "an outside database" : source.provider === "matrx_view" ? "another table" : source.provider;
26968
+ return source.label ? `${from} \xB7 ${source.label}` : from;
26969
+ }
26902
26970
  function withoutGoneColumns(query, liveKeys, openingSort) {
26903
26971
  const sortGone = Boolean(query.sort && !liveKeys.has(query.sort.id));
26904
26972
  const goneFilters = Object.keys(query.columnFilters ?? {}).filter((key) => !liveKeys.has(key));
@@ -34862,6 +34930,9 @@ function packRows(bars) {
34862
34930
  return { ...bar, row };
34863
34931
  });
34864
34932
  }
34933
+ function shortDay(day2) {
34934
+ return dayAt(day2).toLocaleDateString(void 0, { month: "short", day: "numeric" });
34935
+ }
34865
34936
  function windowStart(anchor, zoom, firstDay) {
34866
34937
  const from = dayAt(addDays(anchor, -WINDOW[zoom].lead));
34867
34938
  if (zoom === "day" || zoom === "week") from.setDate(from.getDate() - daysSinceWeekStart(from.getDay(), firstDay));
@@ -35199,7 +35270,7 @@ function TimelineView({
35199
35270
  try {
35200
35271
  const make = async (current, key, label) => {
35201
35272
  if (current) return current.key;
35202
- const made = await knobClient.fieldDeclare({ table_id: tableId, spec: { key, label, type: "date" } });
35273
+ const made = await knobClient.fieldDeclare({ table_id: tableId, spec: { key, label, parity_type: "datetime", kind: "date" } });
35203
35274
  if (!made.ok) {
35204
35275
  moves.say(refusalSentence(made.error));
35205
35276
  return null;
@@ -35720,8 +35791,8 @@ function TimelineView({
35720
35791
  const slip = slipDays(baselineOf(b.p.row)?.last ?? null, at.last);
35721
35792
  return /* @__PURE__ */ jsxs109("div", { "data-timeline-list-row": b.p.row.id, className: "flex items-center gap-1 px-1.5 text-xs", style: { height: ROW_PX }, children: [
35722
35793
  /* @__PURE__ */ jsx120("button", { type: "button", className: "min-w-0 flex-1 truncate text-left hover:underline", onClick: () => onOpenRecord?.(b.p.row.id), children: titleOf(b.p.row) }),
35723
- /* @__PURE__ */ jsx120("span", { className: "w-12 shrink-0 tabular-nums text-muted-foreground", children: calendarDayLabel(at.first) }),
35724
- /* @__PURE__ */ jsx120("span", { className: "w-12 shrink-0 tabular-nums text-muted-foreground", children: calendarDayLabel(at.last) }),
35794
+ /* @__PURE__ */ jsx120("span", { className: "w-12 shrink-0 whitespace-nowrap tabular-nums text-muted-foreground", children: shortDay(at.first) }),
35795
+ /* @__PURE__ */ jsx120("span", { className: "w-12 shrink-0 whitespace-nowrap tabular-nums text-muted-foreground", children: shortDay(at.last) }),
35725
35796
  /* @__PURE__ */ jsxs109("span", { className: "w-14 shrink-0 text-right tabular-nums", title: slip !== null ? slipWords(slip) : void 0, children: [
35726
35797
  daysBetween(at.first, at.last) + 1,
35727
35798
  "d",