@ai-matrx/records-ui 0.102.17 → 0.102.19
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/CHANGELOG.md +10 -0
- package/dist/index.cjs +2185 -2146
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -24
- package/dist/index.d.ts +3 -24
- package/dist/index.js +84 -45
- package/dist/index.js.map +1 -1
- package/dist/pickers.cjs +26 -5
- package/dist/pickers.cjs.map +1 -1
- package/dist/pickers.js +27 -6
- package/dist/pickers.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -7131,29 +7131,6 @@ type EntityRow = Record<string, unknown> & {
|
|
|
7131
7131
|
id: string;
|
|
7132
7132
|
};
|
|
7133
7133
|
|
|
7134
|
-
/**
|
|
7135
|
-
* THE LOADING FRAME OF EVERY RECORDS SURFACE (lane STABLE-TABLES).
|
|
7136
|
-
*
|
|
7137
|
-
* Arman, 2026-10-06: "The tables do not properly show a loading state so they are jumpy … They
|
|
7138
|
-
* must properly show skeletons and they should not cause shifts … all must have proper loading,
|
|
7139
|
-
* empty state, etc." Measured before this file: a table page went route placeholder → a line of
|
|
7140
|
-
* text → a 160px grey box → a grid frame with 23px rows and its footer under them → the real grid
|
|
7141
|
-
* with 35px rows and its footer 580px lower. Four frames, four geometries.
|
|
7142
|
-
*
|
|
7143
|
-
* ONE skeleton per surface, chosen by a named option, drawn in the frame the loaded surface uses:
|
|
7144
|
-
* · the toolbar row is the page's own toolbar row (`TABLE_TOOLBAR_ROW_CLASS`), at its height;
|
|
7145
|
-
* · `grid` is the data table itself in its loading state — the same header, the same row
|
|
7146
|
-
* height, the same pinned footer — so its geometry is the loaded grid's by construction;
|
|
7147
|
-
* · `kanban`, `gallery`, `list`, `calendar`, `timeline` paint their columns, cards, rows or
|
|
7148
|
-
* cells where the loaded layout puts them;
|
|
7149
|
-
* · `form` and `record` paint the field stack and the body; `chart` reserves the chart's box.
|
|
7150
|
-
*
|
|
7151
|
-
* THE COUNT WHEN NOBODY KNOWS IT. A page frame fills to its edge (Airtable's rule: the grid never
|
|
7152
|
-
* starts short and grows); an embedded frame paints the rows the table had last time, else five
|
|
7153
|
-
* (Notion's inline database paints a short run) — see `rememberedRows.ts`.
|
|
7154
|
-
*
|
|
7155
|
-
* Hosts never style a placeholder of their own: they render this, with a layout.
|
|
7156
|
-
*/
|
|
7157
7134
|
/** Every place a records surface shows while its first read is out. */
|
|
7158
7135
|
type RecordsSkeletonLayout = "grid" | "kanban" | "gallery" | "list" | "calendar" | "timeline" | "form" | "record" | "chart" | "home";
|
|
7159
7136
|
declare const RECORDS_SKELETON_LAYOUTS: readonly RecordsSkeletonLayout[];
|
|
@@ -7174,6 +7151,8 @@ interface RecordsSkeletonProps {
|
|
|
7174
7151
|
embedded?: boolean;
|
|
7175
7152
|
/** Rows to paint; default — page: to the frame's edge, embedded: five. */
|
|
7176
7153
|
rows?: number | "fill";
|
|
7154
|
+
/** The table this page is for: a page frame then paints the rows that table showed last visit. */
|
|
7155
|
+
tableId?: string;
|
|
7177
7156
|
className?: string;
|
|
7178
7157
|
}
|
|
7179
7158
|
/** The body of a layout while its first read is out — where the loaded layout's body will be. */
|
|
@@ -7183,6 +7162,6 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
|
|
|
7183
7162
|
* at its height (the view, the layout, filter, then the search and the add buttons at the end),
|
|
7184
7163
|
* and the layout's body skeleton below — the boxes the loaded page fills, nothing else.
|
|
7185
7164
|
*/
|
|
7186
|
-
declare function TablePageSkeleton({ layout, embedded, rows, className, }: RecordsSkeletonProps): react.JSX.Element;
|
|
7165
|
+
declare function TablePageSkeleton({ layout, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
|
|
7187
7166
|
|
|
7188
7167
|
export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_FLOWS, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QUESTION_OPS, QUESTION_SURFACE, type QuestionAnswer, QuestionAnswerView, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedForm, type SavedQuestion, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsProps, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_ADDRESS_KEYS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewLook, type ViewNeed, type ViewNeedKind, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actorBadge, actorWords, addDays, announceTableArchived, applyLook, archiveConfirmSentence, archivedRowLine, asRefusal, askExampleFor, askQuestion, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, descriptionPatch, designatedLayoutOf, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensureSystemTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, flatWhere, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, measurableFields, memberName, moveRecordValue, newQuestion, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pickableTypeOf, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionArchive, questionFromDefinition, questionFromWords, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, unknownViewLine, unreadableKeys, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };
|
package/dist/index.d.ts
CHANGED
|
@@ -7131,29 +7131,6 @@ type EntityRow = Record<string, unknown> & {
|
|
|
7131
7131
|
id: string;
|
|
7132
7132
|
};
|
|
7133
7133
|
|
|
7134
|
-
/**
|
|
7135
|
-
* THE LOADING FRAME OF EVERY RECORDS SURFACE (lane STABLE-TABLES).
|
|
7136
|
-
*
|
|
7137
|
-
* Arman, 2026-10-06: "The tables do not properly show a loading state so they are jumpy … They
|
|
7138
|
-
* must properly show skeletons and they should not cause shifts … all must have proper loading,
|
|
7139
|
-
* empty state, etc." Measured before this file: a table page went route placeholder → a line of
|
|
7140
|
-
* text → a 160px grey box → a grid frame with 23px rows and its footer under them → the real grid
|
|
7141
|
-
* with 35px rows and its footer 580px lower. Four frames, four geometries.
|
|
7142
|
-
*
|
|
7143
|
-
* ONE skeleton per surface, chosen by a named option, drawn in the frame the loaded surface uses:
|
|
7144
|
-
* · the toolbar row is the page's own toolbar row (`TABLE_TOOLBAR_ROW_CLASS`), at its height;
|
|
7145
|
-
* · `grid` is the data table itself in its loading state — the same header, the same row
|
|
7146
|
-
* height, the same pinned footer — so its geometry is the loaded grid's by construction;
|
|
7147
|
-
* · `kanban`, `gallery`, `list`, `calendar`, `timeline` paint their columns, cards, rows or
|
|
7148
|
-
* cells where the loaded layout puts them;
|
|
7149
|
-
* · `form` and `record` paint the field stack and the body; `chart` reserves the chart's box.
|
|
7150
|
-
*
|
|
7151
|
-
* THE COUNT WHEN NOBODY KNOWS IT. A page frame fills to its edge (Airtable's rule: the grid never
|
|
7152
|
-
* starts short and grows); an embedded frame paints the rows the table had last time, else five
|
|
7153
|
-
* (Notion's inline database paints a short run) — see `rememberedRows.ts`.
|
|
7154
|
-
*
|
|
7155
|
-
* Hosts never style a placeholder of their own: they render this, with a layout.
|
|
7156
|
-
*/
|
|
7157
7134
|
/** Every place a records surface shows while its first read is out. */
|
|
7158
7135
|
type RecordsSkeletonLayout = "grid" | "kanban" | "gallery" | "list" | "calendar" | "timeline" | "form" | "record" | "chart" | "home";
|
|
7159
7136
|
declare const RECORDS_SKELETON_LAYOUTS: readonly RecordsSkeletonLayout[];
|
|
@@ -7174,6 +7151,8 @@ interface RecordsSkeletonProps {
|
|
|
7174
7151
|
embedded?: boolean;
|
|
7175
7152
|
/** Rows to paint; default — page: to the frame's edge, embedded: five. */
|
|
7176
7153
|
rows?: number | "fill";
|
|
7154
|
+
/** The table this page is for: a page frame then paints the rows that table showed last visit. */
|
|
7155
|
+
tableId?: string;
|
|
7177
7156
|
className?: string;
|
|
7178
7157
|
}
|
|
7179
7158
|
/** The body of a layout while its first read is out — where the loaded layout's body will be. */
|
|
@@ -7183,6 +7162,6 @@ declare function RecordsSkeleton({ layout, embedded, rows, className }: RecordsS
|
|
|
7183
7162
|
* at its height (the view, the layout, filter, then the search and the add buttons at the end),
|
|
7184
7163
|
* and the layout's body skeleton below — the boxes the loaded page fills, nothing else.
|
|
7185
7164
|
*/
|
|
7186
|
-
declare function TablePageSkeleton({ layout, embedded, rows, className, }: RecordsSkeletonProps): react.JSX.Element;
|
|
7165
|
+
declare function TablePageSkeleton({ layout, embedded, rows, tableId, className, }: RecordsSkeletonProps): react.JSX.Element;
|
|
7187
7166
|
|
|
7188
7167
|
export { ABSENCE_WORD_LABEL, ABSENCE_WORD_VALUES, ACTION_KINDS, ARCHIVED_NEVER_DESTROYED, ARCHIVE_MEANS, ASK_EXAMPLE, type AbsenceWord, AccentSwatches, type AccentSwatchesProps, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, type AnnounceTableArchived, type AppletPageBlock, ArchiveDeliberatelyDialog, type ArchiveDeliberatelyDialogProps, ArchivedDisclosure, type ArchivedDisclosureProps, ArchivedPortals, type ArchivedPortalsProps, ArchivedView, type ArchivedViewProps, type AskRead, BODY_COLUMN_NAME, BODY_SAVE_PAUSE_MS, BOOKING_NOT_HERE_LINE, BOOKING_PAGE_STATE_LABEL, BOOKING_PAGE_STATE_VALUES, BookingBuilder, type BookingBuilderProps, type BookingPageState, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, type ButtonPageBlock, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CHECKLIST_REQUIREMENT_KINDS, CHECKLIST_REQUIREMENT_LABEL, CONDITION_OPS, CONTEXT_POLICY_LABEL, ADDABLE_TYPES as CUSTOM_FIELD_ADDABLE_TYPES, type CalendarMode, CalendarView, type CalendarViewProps, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartPageBlock, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, type ChoiceAddition, type ChoiceAsk, ChoiceAskButtons, ChoiceListEditor, type ChoiceListRow, type CombinedRows, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, type CustomFieldAddRequest, type CustomFieldAddResult, type CustomFieldSetResult, type CustomFieldValuesRequest, type CustomFieldsAgentDoor, type CustomFieldsAgentState, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FOOTER, DEFAULT_VIEW_NAME, DUE_STATE_LABEL, DashboardCanvas, type DashboardCanvasProps, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, ENGINEER_TEXT, ENTITY_REFERENCE_KINDS_MISSING, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, EntityBoard, type EntityBoardProps, EntityChartBlock, type EntityChartBlockProps, type EntityColumn, EntityDataScope, EntityGrid, type EntityLayout, EntityReferenceKindPicker, type EntityReferenceKindPickerProps, type EntityRow, type EntitySource, type EntityTable, EntityTablePage, type EntityTablePageProps, ExportMenu, type ExportMenuProps, FIELD_RULE_KIND_LABEL, FIELD_RULE_KIND_VALUES, FIELD_SENSITIVITY_LABEL, FIELD_TYPE_CATALOGUE, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FOOTER_WORDS, FORMULA_OP_JOINS, FORMULA_OP_LABEL, FORMULA_OP_VALUES, FORM_FLOWS, FORM_NOT_HERE_LINE, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldRuleKindValue, type FieldTypeChoice, FilePicker, type FilePickerProps, type FilterPageBlock, type FooterPlacement, type FormAsked, FormBuilder, type FormBuilderProps, type FormFlow, type FormLook, FormLookFrame, type FormLookFrameProps, FormLookLogo, type FormLookView, type FormPageBlock, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, type FormulaOp, Grid, GridCell, type GridContextRecord, type GridContextSnapshot, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, GuessedFieldType, type HeadingPageBlock, HistoryPanel, type HistoryPanelProps, type HostLayout, INBOX_GROUPINGS, INBOX_VIEWS, IN_MEMORY_QUEUE_REASON, ImportNotice, type ImportNoticeProps, type ImportSource, ImportWizard, type ImportWizardProps, InTableToolbar, type InboxGroup, type InboxGrouping, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LOOK_WORDS, type LabelLookup, type LinkRail, type ListPageBlock, MACHINE_IDENTITY, MANUAL_SORT, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, MOST_NEW_COLUMNS, type MainView, type MoveWritten, MyChecklistSteps, NEEDS_A_SENTENCE, NEW_COLUMN_TYPES, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewColumn, type NewColumnType, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, ObjectAction, ObjectActionContextMenuItems, ObjectActionGlyph, ObjectActionIcon, ObjectActionMenuItems, type ObjectActionMenuItemsProps, type OpenRecordsAsk, type OrganizationMember, PAGE_BLOCK_KINDS, PAGE_BLOCK_LABEL, PAGE_KIND, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, PORTAL_NOT_HERE_LINE, PROPOSED_CHANGE_ACT_LABEL, PROPOSED_CHANGE_ACT_VALUES, type PageBlock, type PageBlockKind, PageScreen, type PageScreenProps, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, PickOrAdd, type PickOrAddItem, type PickOrAddProps, type PickableFieldType, type PickerTable, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalLookEditor, type PortalLookEditorProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, type ProposedChangeAct, ProvenanceBadge, PublicPicturePicker, type PublicPicturePickerProps, PublicViewPage, type PublicViewPageProps, QUESTION_OPS, QUESTION_SURFACE, type QuestionAnswer, QuestionAnswerView, type QuestionGroup, type QuestionMeasure, type QuestionOp, QuestionPanel, type QuestionPanelProps, type QuestionRow, type QuestionShow, type QuestionSpec, RECORDS_GRID_ROW_PX, RECORDS_SKELETON_LAYOUTS, ROLLUP_AGG_LABEL, ROLLUP_AGG_VALUES, RULE_NOT_HERE_LINE, type ReaskContext, type ReasonGroup, type RecordActionHost, RecordActionMenu, type RecordActionMenuProps, type RecordActionSubject, type RecordActionsInput, RecordBody, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, type RecordMoves, type RecordPageBlock, RecordPanel, type RecordPanelProps, RecordValue, RecordsMount, type RecordsMountProps, RecordsSkeleton, type RecordsSkeletonLayout, type RecordsSkeletonProps, RecordsTableCard, type RecordsTableCardProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RefusedRow, type RelationFieldType, RelationPicker, type RelationPickerProps, type RenderTextSlot, type ResolveName, type RichTextEditProps, type RollupAgg, SAVED_VIEWS_UNAVAILABLE, SAVE_TO_TABLE_TYPES, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SECTIONS_UNKNOWN, SERIES_COLORS, SHARE_NOT_YOURS_LINE, SIGNED_WORD, SOMEBODY, STAGE_RULE_ON_FAIL_LABEL, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, STORE_KEEPS_TIMELINE, STORE_KEPT_LAYOUTS, SUBSCRIPTION_CADENCES, SUBSCRIPTION_CADENCE_LABEL, SUBSCRIPTION_CHANNEL_LABEL, SUBSCRIPTION_CHANNEL_VALUES, SaveToTable, type SaveToTableProps, type SaveToTableSource, type SavedDashboard, type SavedForm, type SavedQuestion, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, ShowListsToggle, type ShownViewReport, SignBlock, type SignBlockProps, SignaturePad, SignatureValue, type SnoozeChoice, type SortStateAction, SortStateControl, type SortStateControlProps, StageRulesSection, type StageRulesSectionProps, type StandardColumn, StandardRecordForm, type StandardRecordFormProps, StepRow, type SubscriptionChannel, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NAME_MAX, TABLE_NOT_REACHABLE, TABLE_TOOLBAR_ROW_CLASS, THE_SYSTEM, TIMELINE_ZOOMS, TableActionHost, TableAsk, type TableAskProps, TableDetails, TableDuplicateDialog, type TableDuplicateDialogProps, TableFoundationSwitch, type TableLane, type TableOpening, TablePage, type TablePageActionHost, type TablePageHeaderChrome, type TablePageProps, TablePageSkeleton, type TablePageSource, type TablePickerEntries, type TablePickerEntry, TableReferenceDialog, TableRenameDialog, TableRestoreRefused, type TableRights, TableSettings, type TableSettingsProps, TableShape, TableToolbarSlotContext, TablesHome, type TablesHomeProps, TemplatePreview, type TemplatePreviewProps, type TextPageBlock, type ThroughCondition, type TimelineSettings, TimelineView, type TimelineViewProps, type TimelineZoom, type TitleRepeats, type TrackedVersion, UNREAD_RECORD_LABEL, type UseSystemTableState, VIEW_ADDRESS_KEYS, VIEW_KEYS, VIEW_LAYOUTS, VIEW_NEEDS, VIEW_NOT_SAVED_YET, VISIBILITY_LANES, VISIBILITY_LANE_TITLE, type ViewAddressSort, type ViewAddressState, ViewBar, type ViewBarProps, type ViewKeyDeclaration, type ViewKeyLayout, type ViewKeyWriter, type ViewLayout, type ViewLook, type ViewNeed, type ViewNeedKind, ViewNeeds, type ViewNeedsProps, type ViewSettings, type ViewSettingsPatch, type ViewSort, type ViewSortKey, ViewSwitcher, type ViewSwitcherProps, type VisibilityLane, WITHHELD_RECORD_LABEL, WITHHELD_WORD, WORK_APPROVAL_STATES, WORK_APPROVAL_STATE_LABEL, WORK_DUE_STATES, WORK_INBOX_KINDS, WORK_INBOX_KIND_GROUP_LABEL, WORK_INBOX_KIND_LABEL, WhatYouMayDo, WhereItLives, type WhereItLivesProps, type WhoChanged, WhoChangedSource, WithheldValue, actorBadge, actorWords, addDays, announceTableArchived, applyLook, archiveConfirmSentence, archivedRowLine, asRefusal, askExampleFor, askQuestion, askableFields, blockFromSpec, bodyFieldOf, bodyForReading, bodyFromKeys, calendarDayLabel, calendarDayOf, cameFromLine, cardTitleField, cardWords, carriesTimeOfDay, cellState, choiceAddition, choiceAskSentence, choiceListPatch, choiceNudgeOf, choiceRowsFrom, chooseSurface, codeDependsRefusal, colorFromTheValue, columnDeclarationFor, columnForField, columnFromName, columnNamesFrom, columnsFrom, combineFilter, combineRows, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, copyNameFor, currencyCodeFor, customFieldRequestProblems, dashboardDeclareArgs, dashboardFromSummary, dateFormatFor, dateText, dayAt, dayKeyOf, daysBetween, declareView, defaultViewOf, descriptionPatch, designatedLayoutOf, drawnBelowOnPage, drawnSignatureOf, drillDimensionsOf, drillMeasuresOf, drillPathsOf, drillWhere, duplicateProgressWords, editorKindFor, ensureSystemTable, entityCellValue, entityChoiceColumns, entityNameColumn, entityReferenceSpec, entityShownColumns, entityTableColumns, entityTitleColumn, entityValueText, envelopeFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, fieldsForNewColumns, filterTargets, flatWhere, footerOf, formDeclareArgs, formFromSummary, formLookDocument, formLookFromDocument, formLookView, formPresentation, formatForField, freeColumnName, freshFormName, gridContextKey, gridContextSnapshot, groupInbox, groupLabel, groupReasons, groupableFields, handOrderLine, handOrderSortState, hasTimePart, hintForAPerson, hintIsMachineIdentity, idsOf, isChoiceAddition, isDateField, isEngineerText, isFoundationTable, isId, isKeptTable, isMachineIdentity, isPage, isParityFieldType, isPlainFieldType, isRelationFieldType, isSignatureField, isValueSet, isViewAddressEmpty, keepLook, keptByTheApp, keyFor, kindsWithNoChoice, laneFor, lastChangeSentence, lookDiffers, lookDocument, lookFromDocument, lookPart, looksLikeId, machineIdentityIn, mayNotRestoreLine, measurableFields, memberName, moveRecordValue, newQuestion, nextInWords, nextSummaryAt, notAChoiceSentence, onlyCandidate, openingRail, openingView, packOverlaps, pageBlocksOf, pagePresentation, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pickableTypeOf, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, questionArchive, questionFromDefinition, questionFromWords, questionSave, questionsOf, railFromParam, readLooks, recordActions, recordLink, recordName, recordNameIn, recordsDataSource, refusal, refusalForAPerson, refusalFromThrown, refusalLineForAPerson, refusalOr, refusedFileName, refusedRowsCsv, renderValue, rescheduledValue, resolveTableStyle, revokeConsequence, rowLabelChoices, rowName, rowNameIn, runToNotice, sameRecordLikely, sameViewAddress, saveToViewPlan, saveViewPatch, scalarText, seedIsSatisfied, shapesOfSource, shareUnavailableReason, signatureFileIn, signatureFileOf, signatureWords, singularNoun, skeletonLayoutFor, snoozeChoices, specFromBlock, standardTokenOf, starterPageBlocks, storeDecidesRights, storeKeepsLayout, storePublishesKind, styleFromDecorations, submissionStamp, surfaceChosen, tableName, tableNameProblem, tableOpening, tablePickerEntries, tableReferenceChoices, tableRightsAt, titleRepeats, unknownRailLine, unknownViewLine, unreadableKeys, useCanShare, useChoiceNudge, useDrill, useDrillAnswers, useDrillDefinition, useEmbedHandshake, useEnrichCells, useEntityTable, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, usePickerTables, useRecordActionHost, useRecordLabels, useRecordMoves, useRecordRights, useRecordsUi, useRowColorBy, useRowRights, useSystemTable, useTableRights, useTableToolbarSlot, useTemplatePreview, useViewRecords, useWhoChanged, viewActions, viewAddressFromParams, viewAddressToParams, viewDocument, viewFromRow, viewKeysFor, viewNeedFor, viewPatchDocument, viewSettings, viewSettingsFor, viewSettingsPatch, visibilityLaneFor, whatIsMissing, whatIsMissingForEntityReference, whatTheChoiceListIsMissing, whenWords, whyNotAskable, withheldNoticeOf, withheldSentence, withoutAddition, wordsList };
|
package/dist/index.js
CHANGED
|
@@ -2116,7 +2116,7 @@ function fieldOptionsOnce(client, fieldId) {
|
|
|
2116
2116
|
}
|
|
2117
2117
|
|
|
2118
2118
|
// src/editors.tsx
|
|
2119
|
-
import { useCallback as useCallback6, useEffect as useEffect11, useRef as useRef11, useState as useState16 } from "react";
|
|
2119
|
+
import { useCallback as useCallback6, useEffect as useEffect11, useLayoutEffect, useRef as useRef11, useState as useState16 } from "react";
|
|
2120
2120
|
import { allowsOtherValues, choiceValuesOf, coerceTypedAnswer, newerKindOf as newerKindOf4, decideTypedChoice, isTheChosen, optionKey as optionKey2, rankTypedMatches as rankTypedMatches3, readTypedTime as readTypedTime2, typedDateText as typedDateText2, typedTimeText as typedTimeText2 } from "@ai-matrx/records";
|
|
2121
2121
|
import { useOptionalRecordsClient as useOptionalRecordsClient7 } from "@ai-matrx/records/react";
|
|
2122
2122
|
import {
|
|
@@ -4109,7 +4109,13 @@ function ClockGlyph() {
|
|
|
4109
4109
|
/* @__PURE__ */ jsx18("path", { d: "M12 6v6l4 2" })
|
|
4110
4110
|
] });
|
|
4111
4111
|
}
|
|
4112
|
-
function TypedDateHelper({
|
|
4112
|
+
function TypedDateHelper({
|
|
4113
|
+
kind,
|
|
4114
|
+
text,
|
|
4115
|
+
onText,
|
|
4116
|
+
label,
|
|
4117
|
+
onPicked
|
|
4118
|
+
}) {
|
|
4113
4119
|
const [open, setOpen] = useState14(false);
|
|
4114
4120
|
const held = readBox(text, kind);
|
|
4115
4121
|
const today = /* @__PURE__ */ new Date();
|
|
@@ -4124,12 +4130,16 @@ function TypedDateHelper({ kind, text, onText, label }) {
|
|
|
4124
4130
|
const pickDay = (d) => {
|
|
4125
4131
|
const day = `${shown4.y}-${pad2(shown4.m + 1)}-${pad2(d)}`;
|
|
4126
4132
|
onText(wordsFor(kind, day, held.time));
|
|
4127
|
-
if (kind === "date")
|
|
4133
|
+
if (kind === "date") {
|
|
4134
|
+
setOpen(false);
|
|
4135
|
+
onPicked?.();
|
|
4136
|
+
}
|
|
4128
4137
|
};
|
|
4129
4138
|
const pickTime = (t) => {
|
|
4130
4139
|
const day = kind === "datetime" ? held.day ?? todayKey : null;
|
|
4131
4140
|
onText(wordsFor(kind, day, t));
|
|
4132
4141
|
setOpen(false);
|
|
4142
|
+
onPicked?.();
|
|
4133
4143
|
};
|
|
4134
4144
|
const turn = (by) => {
|
|
4135
4145
|
const at = new Date(shown4.y, shown4.m + by, 1);
|
|
@@ -4418,6 +4428,17 @@ function draftFromTyping(field2, seed) {
|
|
|
4418
4428
|
if (opens === "words") return seed;
|
|
4419
4429
|
return { typedDraft: true, text: seed, judged: judgeTyped(field2, seed) };
|
|
4420
4430
|
}
|
|
4431
|
+
function ReadsAsNote({ typed: typed2, always, children }) {
|
|
4432
|
+
const note = useRef11(null);
|
|
4433
|
+
const [repeats, setRepeats] = useState16(false);
|
|
4434
|
+
useLayoutEffect(() => {
|
|
4435
|
+
if (always) return;
|
|
4436
|
+
const words2 = (t) => (t ?? "").replace(/^Reads as/, "").replace(/\s+/g, "").toLowerCase();
|
|
4437
|
+
setRepeats(words2(note.current?.textContent) === words2(typed2));
|
|
4438
|
+
}, [typed2, always]);
|
|
4439
|
+
if (repeats) return null;
|
|
4440
|
+
return /* @__PURE__ */ jsx19("span", { ref: note, "data-records-typed-reads-as": "", "data-records-cell-note": "", className: "text-[10px] text-muted-foreground", children });
|
|
4441
|
+
}
|
|
4421
4442
|
function TypedTextControl({ field: field2, value, onChange, disabled, id, onCommit, onCancel }) {
|
|
4422
4443
|
const client = useOptionalRecordsClient7();
|
|
4423
4444
|
const kind = String(editorKindFor(field2));
|
|
@@ -4461,7 +4482,7 @@ function TypedTextControl({ field: field2, value, onChange, disabled, id, onComm
|
|
|
4461
4482
|
return /* @__PURE__ */ jsxs17("span", { className: "flex flex-col gap-0.5", children: [
|
|
4462
4483
|
helper && !disabled ? /* @__PURE__ */ jsxs17("span", { className: "flex min-w-0 items-center gap-0.5", children: [
|
|
4463
4484
|
box,
|
|
4464
|
-
/* @__PURE__ */ jsx19(TypedDateHelper, { kind: helper, text: value.text, onText: retype, label: fieldName(field2) })
|
|
4485
|
+
/* @__PURE__ */ jsx19(TypedDateHelper, { kind: helper, text: value.text, onText: retype, label: fieldName(field2), onPicked: onCommit })
|
|
4465
4486
|
] }) : box,
|
|
4466
4487
|
judged === null ? /* @__PURE__ */ jsxs17("span", { "data-records-cell-note": "", className: "text-[10px] text-muted-foreground", children: [
|
|
4467
4488
|
"Reading ",
|
|
@@ -4495,7 +4516,7 @@ function TypedTextControl({ field: field2, value, onChange, disabled, id, onComm
|
|
|
4495
4516
|
}
|
|
4496
4517
|
),
|
|
4497
4518
|
judged.cancelOnly && onCancel ? /* @__PURE__ */ jsx19("span", { "data-records-choice-ask": "", children: /* @__PURE__ */ jsx19(Button8, { type: "button", size: "sm", variant: "ghost", className: "h-6 px-2 text-xs", onClick: () => onCancel(), children: "Cancel" }) }) : null
|
|
4498
|
-
] }) : judged.value === null || judged.value === void 0 ? null : /* @__PURE__ */ jsxs17(
|
|
4519
|
+
] }) : judged.value === null || judged.value === void 0 ? null : /* @__PURE__ */ jsxs17(ReadsAsNote, { typed: value.text, always: isChoiceAddition(judged.value), children: [
|
|
4499
4520
|
isChoiceAddition(judged.value) ? `Adds ${quoted(judged.value.add)} to the choices for ${fieldName(field2)}. ` : null,
|
|
4500
4521
|
"Reads as",
|
|
4501
4522
|
" ",
|
|
@@ -4508,7 +4529,7 @@ function TypedTextControl({ field: field2, value, onChange, disabled, id, onComm
|
|
|
4508
4529
|
const shown4 = format ?? (kind === "datetime" ? { id: carriesTimeOfDay(field2, judged.value) ? "datetime" : "date" } : void 0);
|
|
4509
4530
|
return shown4 ? /* @__PURE__ */ jsx19(FormattedValue, { value: judged.value, format: shown4 }) : String(judged.value);
|
|
4510
4531
|
})()
|
|
4511
|
-
] })
|
|
4532
|
+
] }, value.text)
|
|
4512
4533
|
] });
|
|
4513
4534
|
}
|
|
4514
4535
|
function isPersonsName(field2) {
|
|
@@ -5750,7 +5771,7 @@ function KindValueCell({
|
|
|
5750
5771
|
}
|
|
5751
5772
|
|
|
5752
5773
|
// src/ClampedChips.tsx
|
|
5753
|
-
import { useCallback as useCallback8, useLayoutEffect, useRef as useRef13, useState as useState19 } from "react";
|
|
5774
|
+
import { useCallback as useCallback8, useLayoutEffect as useLayoutEffect2, useRef as useRef13, useState as useState19 } from "react";
|
|
5754
5775
|
import { Popover as Popover4, PopoverContent as PopoverContent4, PopoverTrigger as PopoverTrigger4, cn as cn17 } from "@ai-matrx/design-system";
|
|
5755
5776
|
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5756
5777
|
var GAP = 4;
|
|
@@ -5791,13 +5812,13 @@ function ClampedChips({
|
|
|
5791
5812
|
setMeasuring(false);
|
|
5792
5813
|
}, [stands]);
|
|
5793
5814
|
const key = items.map((i) => i.key).join("|");
|
|
5794
|
-
|
|
5815
|
+
useLayoutEffect2(() => {
|
|
5795
5816
|
setMeasuring(true);
|
|
5796
5817
|
}, [key, total]);
|
|
5797
|
-
|
|
5818
|
+
useLayoutEffect2(() => {
|
|
5798
5819
|
if (measuring) measure();
|
|
5799
5820
|
}, [measuring, measure]);
|
|
5800
|
-
|
|
5821
|
+
useLayoutEffect2(() => {
|
|
5801
5822
|
const el = box.current;
|
|
5802
5823
|
if (!el || typeof ResizeObserver === "undefined") return;
|
|
5803
5824
|
let last = el.clientWidth;
|
|
@@ -7272,7 +7293,7 @@ function GridCell({
|
|
|
7272
7293
|
}
|
|
7273
7294
|
if (editorKindFor(field2) === "checkbox") {
|
|
7274
7295
|
const answered = value === true || value === false;
|
|
7275
|
-
return /* @__PURE__ */ jsxs23("span", { "data-matrx-cell-control": "", className: "flex w-full flex-wrap items-center gap-1.5", children: [
|
|
7296
|
+
return /* @__PURE__ */ jsxs23("span", { "data-matrx-cell-control": "", className: "relative flex w-full flex-wrap items-center gap-1.5", children: [
|
|
7276
7297
|
/* @__PURE__ */ jsx28(
|
|
7277
7298
|
Checkbox4,
|
|
7278
7299
|
{
|
|
@@ -7289,9 +7310,9 @@ function GridCell({
|
|
|
7289
7310
|
] });
|
|
7290
7311
|
}
|
|
7291
7312
|
if (editable && format?.id === "rating") {
|
|
7292
|
-
return /* @__PURE__ */ jsxs23("span", { "data-matrx-cell-control": "", className: "flex w-full flex-wrap items-center gap-1.5", children: [
|
|
7313
|
+
return /* @__PURE__ */ jsxs23("span", { "data-matrx-cell-control": "", className: "relative flex w-full flex-wrap items-center gap-1.5", children: [
|
|
7293
7314
|
/* @__PURE__ */ jsx28(FormattedValue, { value, format, onRate: (next) => editing?.setCell(row.id, field2.key, next), selectFirst: true }),
|
|
7294
|
-
state === "saving" ? /* @__PURE__ */ jsx28("span", { className: "text-[10px] text-muted-foreground", children: "Saving\u2026" }) : null,
|
|
7315
|
+
state === "saving" ? /* @__PURE__ */ jsx28("span", { "data-records-cell-saving": "", className: "pointer-events-none absolute right-1 top-1/2 z-10 -translate-y-1/2 rounded bg-card/90 px-1 text-[10px] text-muted-foreground", children: "Saving\u2026" }) : null,
|
|
7295
7316
|
refusal4 ? /* @__PURE__ */ jsx28(CellRefusalNotice, { refusal: refusal4, field: field2, row, editing, typed: false }) : null
|
|
7296
7317
|
] });
|
|
7297
7318
|
}
|
|
@@ -7404,7 +7425,7 @@ function GridCell({
|
|
|
7404
7425
|
}
|
|
7405
7426
|
) : null
|
|
7406
7427
|
] }),
|
|
7407
|
-
state === "saving" ? /* @__PURE__ */ jsx28("span", { className: "px-1 text-[10px] text-muted-foreground", children: "Saving\u2026" }) : null,
|
|
7428
|
+
state === "saving" ? /* @__PURE__ */ jsx28("span", { "data-records-cell-saving": "", className: "pointer-events-none absolute right-1 top-1/2 z-10 -translate-y-1/2 rounded bg-card/90 px-1 text-[10px] text-muted-foreground", children: "Saving\u2026" }) : null,
|
|
7408
7429
|
refusal4 ? /* @__PURE__ */ jsx28(CellRefusalNotice, { refusal: refusal4, field: field2, row, editing, typed: true }) : null
|
|
7409
7430
|
]
|
|
7410
7431
|
}
|
|
@@ -7452,8 +7473,9 @@ function CellRefusalNotice({
|
|
|
7452
7473
|
type: "button",
|
|
7453
7474
|
"data-records-cell-refusal-line": "",
|
|
7454
7475
|
title: line,
|
|
7455
|
-
|
|
7456
|
-
|
|
7476
|
+
"aria-label": line,
|
|
7477
|
+
className: "absolute right-1 top-1/2 z-10 flex h-4 w-4 -translate-y-1/2 items-center justify-center rounded-full bg-destructive text-[10px] font-bold leading-none text-destructive-foreground",
|
|
7478
|
+
children: "!"
|
|
7457
7479
|
}
|
|
7458
7480
|
) }),
|
|
7459
7481
|
/* @__PURE__ */ jsx28(
|
|
@@ -7488,12 +7510,12 @@ function WhoBadge({
|
|
|
7488
7510
|
{
|
|
7489
7511
|
type: "button",
|
|
7490
7512
|
"data-records-who-badge": "",
|
|
7491
|
-
"data-who-text": who.badge ?? "
|
|
7513
|
+
"data-who-text": who.badge ?? "",
|
|
7492
7514
|
"aria-hidden": "true",
|
|
7493
7515
|
tabIndex: -1,
|
|
7494
7516
|
"aria-label": `Who changed ${fieldName(field2)}?`,
|
|
7495
7517
|
title: who.sentence ?? `Who changed ${fieldName(field2)}? (Option-Shift-H)`,
|
|
7496
|
-
className: "hidden max-w-[9rem] shrink-0 select-none truncate rounded px-1 text-[10px] leading-4 text-muted-foreground before:content-[attr(data-who-text)] hover:bg-muted in-data-[matrx-cell-active=true]:inline-flex",
|
|
7518
|
+
className: "hidden max-w-[9rem] shrink-0 select-none items-center truncate rounded px-1 text-[10px] leading-4 text-muted-foreground before:content-[attr(data-who-text)] hover:bg-muted in-data-[matrx-cell-active=true]:inline-flex",
|
|
7497
7519
|
onMouseEnter: ask,
|
|
7498
7520
|
onClick: (event) => {
|
|
7499
7521
|
event.preventDefault();
|
|
@@ -7505,7 +7527,11 @@ function WhoBadge({
|
|
|
7505
7527
|
event.preventDefault();
|
|
7506
7528
|
event.stopPropagation();
|
|
7507
7529
|
onPressedTwice();
|
|
7508
|
-
}
|
|
7530
|
+
},
|
|
7531
|
+
children: who.badge ? null : /* @__PURE__ */ jsxs23("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", width: "12", height: "12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "data-records-who-glyph": "", children: [
|
|
7532
|
+
/* @__PURE__ */ jsx28("circle", { cx: "12", cy: "12", r: "9" }),
|
|
7533
|
+
/* @__PURE__ */ jsx28("path", { d: "M12 7v5l3 2" })
|
|
7534
|
+
] })
|
|
7509
7535
|
}
|
|
7510
7536
|
)
|
|
7511
7537
|
);
|
|
@@ -7680,7 +7706,7 @@ function OpenCell({
|
|
|
7680
7706
|
}
|
|
7681
7707
|
),
|
|
7682
7708
|
/* @__PURE__ */ jsxs23("span", { "data-records-cell-tray": "", className: FLOATING_CELL_TRAY_CLASS, children: [
|
|
7683
|
-
picker || asksAboutAChoice(draft) ? null : blurCommits ?
|
|
7709
|
+
picker || asksAboutAChoice(draft) ? null : blurCommits ? null : /* @__PURE__ */ jsxs23("span", { className: cn19("flex items-center gap-1", FLOATING_CELL_TRAY_PIECE_CLASS), children: [
|
|
7684
7710
|
/* @__PURE__ */ jsx28(Button10, { size: "sm", onClick: () => once(() => onCommit(null, "pick")), children: "Save" }),
|
|
7685
7711
|
/* @__PURE__ */ jsx28(Button10, { size: "sm", variant: "ghost", onClick: () => once(() => onCancel("pick")), children: "Cancel" })
|
|
7686
7712
|
] }),
|
|
@@ -7715,9 +7741,19 @@ function rememberRowCount(key, count) {
|
|
|
7715
7741
|
}
|
|
7716
7742
|
|
|
7717
7743
|
// src/RecordsSkeleton.tsx
|
|
7744
|
+
import { useSyncExternalStore } from "react";
|
|
7718
7745
|
import { cn as cn20, Skeleton as Skeleton2 } from "@ai-matrx/design-system";
|
|
7719
7746
|
import { MatrxDataTable } from "@ai-matrx/design-system/data-table";
|
|
7720
7747
|
import { Fragment as Fragment8, jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
7748
|
+
var NEVER = () => () => {
|
|
7749
|
+
};
|
|
7750
|
+
function useRememberedPageRows(tableId) {
|
|
7751
|
+
return useSyncExternalStore(
|
|
7752
|
+
NEVER,
|
|
7753
|
+
() => tableId ? rememberedRowCount(`${tableId}:page:last`, 100, "fill") : "fill",
|
|
7754
|
+
() => "fill"
|
|
7755
|
+
);
|
|
7756
|
+
}
|
|
7721
7757
|
var RECORDS_SKELETON_LAYOUTS = [
|
|
7722
7758
|
"grid",
|
|
7723
7759
|
"kanban",
|
|
@@ -7855,8 +7891,11 @@ function TablePageSkeleton({
|
|
|
7855
7891
|
layout = "grid",
|
|
7856
7892
|
embedded = false,
|
|
7857
7893
|
rows,
|
|
7894
|
+
tableId,
|
|
7858
7895
|
className
|
|
7859
7896
|
}) {
|
|
7897
|
+
const remembered = useRememberedPageRows(embedded ? void 0 : tableId);
|
|
7898
|
+
const painted = rows ?? (remembered === "fill" ? void 0 : remembered);
|
|
7860
7899
|
return /* @__PURE__ */ jsx29("div", { className: cn20(TABLE_PAGE_FRAME_CLASS, className), "data-records-skeleton-page": layout, children: /* @__PURE__ */ jsxs24("div", { className: TABLE_PAGE_COLUMN_CLASS, children: [
|
|
7861
7900
|
/* @__PURE__ */ jsxs24("div", { className: TABLE_TOOLBAR_ROW_CLASS, "data-table-toolbar": "", "data-records-skeleton-part": "toolbar", "aria-hidden": "true", children: [
|
|
7862
7901
|
/* @__PURE__ */ jsx29(Skeleton2, { shape: "control", width: "sm", className: "w-28" }),
|
|
@@ -7867,7 +7906,7 @@ function TablePageSkeleton({
|
|
|
7867
7906
|
/* @__PURE__ */ jsx29(Skeleton2, { shape: "control", className: "w-24" })
|
|
7868
7907
|
] })
|
|
7869
7908
|
] }),
|
|
7870
|
-
/* @__PURE__ */ jsx29("div", { className: "flex min-h-0 flex-1 flex-col gap-2", "data-table-records": "", children: /* @__PURE__ */ jsx29(RecordsSkeleton, { layout, embedded, ...
|
|
7909
|
+
/* @__PURE__ */ jsx29("div", { className: "flex min-h-0 flex-1 flex-col gap-2", "data-table-records": "", children: /* @__PURE__ */ jsx29(RecordsSkeleton, { layout, embedded, ...painted !== void 0 ? { rows: painted } : {} }) })
|
|
7871
7910
|
] }) });
|
|
7872
7911
|
}
|
|
7873
7912
|
|
|
@@ -16323,7 +16362,7 @@ function useEnrichCells(tableId, recordIds) {
|
|
|
16323
16362
|
}, [refresh]);
|
|
16324
16363
|
return { cells, refresh, error };
|
|
16325
16364
|
}
|
|
16326
|
-
var
|
|
16365
|
+
var NEVER2 = "Fill it in once and leave it alone";
|
|
16327
16366
|
function EnrichPanel({ tableId, fieldId, className }) {
|
|
16328
16367
|
const client = useRecordsClient30();
|
|
16329
16368
|
const host = useRecordsUi();
|
|
@@ -16446,7 +16485,7 @@ function EnrichPanel({ tableId, fieldId, className }) {
|
|
|
16446
16485
|
{
|
|
16447
16486
|
id: "new-every",
|
|
16448
16487
|
value: setup.every,
|
|
16449
|
-
placeholder:
|
|
16488
|
+
placeholder: NEVER2,
|
|
16450
16489
|
onChange: (e) => setDraft((prev) => ({ ...prev, [fieldId]: { ...setup, every: e.target.value } }))
|
|
16451
16490
|
}
|
|
16452
16491
|
)
|
|
@@ -16541,14 +16580,14 @@ function EnrichPanel({ tableId, fieldId, className }) {
|
|
|
16541
16580
|
id: `every-${row.field_id}`,
|
|
16542
16581
|
value: d.every,
|
|
16543
16582
|
disabled: !rights.admin,
|
|
16544
|
-
placeholder:
|
|
16583
|
+
placeholder: NEVER2,
|
|
16545
16584
|
onChange: (e) => setDraft((prev) => ({
|
|
16546
16585
|
...prev,
|
|
16547
16586
|
[row.field_id]: { ...d, every: e.target.value }
|
|
16548
16587
|
}))
|
|
16549
16588
|
}
|
|
16550
16589
|
),
|
|
16551
|
-
/* @__PURE__ */ jsx57("p", { className: "text-[11px] text-muted-foreground", children: d.every ? `${d.every} days` :
|
|
16590
|
+
/* @__PURE__ */ jsx57("p", { className: "text-[11px] text-muted-foreground", children: d.every ? `${d.every} days` : NEVER2 })
|
|
16552
16591
|
] })
|
|
16553
16592
|
] }),
|
|
16554
16593
|
/* @__PURE__ */ jsxs52("p", { className: "text-xs text-muted-foreground", children: [
|
|
@@ -16894,7 +16933,7 @@ function withTypeMark(field2, header) {
|
|
|
16894
16933
|
}
|
|
16895
16934
|
|
|
16896
16935
|
// src/ReverseColumns.tsx
|
|
16897
|
-
import { useCallback as useCallback21, useEffect as useEffect40, useMemo as useMemo27, useRef as useRef26, useState as useState49, useSyncExternalStore } from "react";
|
|
16936
|
+
import { useCallback as useCallback21, useEffect as useEffect40, useMemo as useMemo27, useRef as useRef26, useState as useState49, useSyncExternalStore as useSyncExternalStore2 } from "react";
|
|
16898
16937
|
import { useFields as useFields6, useReverseColumns as useReverseColumns3, useReverseLinks, useTable as useTable4 } from "@ai-matrx/records/react";
|
|
16899
16938
|
import { Button as Button34, Dialog as Dialog10, DialogContent as DialogContent10, DialogHeader as DialogHeader10, DialogTitle as DialogTitle10, Separator as Separator4, Skeleton as Skeleton5, cn as cn33 } from "@ai-matrx/design-system";
|
|
16900
16939
|
import { Fragment as Fragment17, jsx as jsx59, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
@@ -17014,8 +17053,8 @@ function ReverseCell({ held, column, rowId, tableId }) {
|
|
|
17014
17053
|
},
|
|
17015
17054
|
[held]
|
|
17016
17055
|
);
|
|
17017
|
-
const answer =
|
|
17018
|
-
const reading =
|
|
17056
|
+
const answer = useSyncExternalStore2(subscribe, () => held.answers?.[column.key]?.[rowId]);
|
|
17057
|
+
const reading = useSyncExternalStore2(subscribe, () => held.reading);
|
|
17019
17058
|
return /* @__PURE__ */ jsx59(ReverseLinkChips, { column, answer, loading: reading, clamp: { tableId, recordId: rowId } });
|
|
17020
17059
|
}
|
|
17021
17060
|
var EMPTY_COLUMNS = [];
|
|
@@ -19981,7 +20020,7 @@ function useGroupLabel(fields, groupKey) {
|
|
|
19981
20020
|
}
|
|
19982
20021
|
|
|
19983
20022
|
// src/gridUndo.tsx
|
|
19984
|
-
import { useCallback as useCallback23, useEffect as useEffect44, useLayoutEffect as
|
|
20023
|
+
import { useCallback as useCallback23, useEffect as useEffect44, useLayoutEffect as useLayoutEffect3, useMemo as useMemo31, useRef as useRef28, useState as useState54, useSyncExternalStore as useSyncExternalStore3 } from "react";
|
|
19985
20024
|
import { tableShapeChanged as tableShapeChanged5, useRecordsClient as useRecordsClient34 } from "@ai-matrx/records/react";
|
|
19986
20025
|
import { announceRecordChanged as announceRecordChanged2 } from "@ai-matrx/records/core";
|
|
19987
20026
|
import { Button as Button38 } from "@ai-matrx/design-system";
|
|
@@ -20136,7 +20175,7 @@ function useUndoSource(undo) {
|
|
|
20136
20175
|
);
|
|
20137
20176
|
const { back, forward } = undo.depth;
|
|
20138
20177
|
const busy = undo.busy;
|
|
20139
|
-
|
|
20178
|
+
useLayoutEffect3(() => {
|
|
20140
20179
|
const held = box.current.face;
|
|
20141
20180
|
if (held.back === back && held.forward === forward && held.busy === busy) return;
|
|
20142
20181
|
box.current.face = { back, forward, busy };
|
|
@@ -20145,7 +20184,7 @@ function useUndoSource(undo) {
|
|
|
20145
20184
|
return source;
|
|
20146
20185
|
}
|
|
20147
20186
|
function UndoRedoLive({ source }) {
|
|
20148
|
-
const face =
|
|
20187
|
+
const face = useSyncExternalStore3(source.subscribe, source.face, source.face);
|
|
20149
20188
|
return /* @__PURE__ */ jsx66(UndoRedoPair, { face, onUndo: source.undo, onRedo: source.redo });
|
|
20150
20189
|
}
|
|
20151
20190
|
function UndoRedoPair({ face, onUndo, onRedo }) {
|
|
@@ -24826,6 +24865,7 @@ import { BasicInput as BasicInput16, Button as Button50, Select as Select10, Sel
|
|
|
24826
24865
|
|
|
24827
24866
|
// src/newTableColumns.ts
|
|
24828
24867
|
import { RESOLVABLE_FIELD_TYPE_WORDS } from "@ai-matrx/records/templates";
|
|
24868
|
+
import { parseDelimited as parseDelimited2 } from "@ai-matrx/kit/delimited";
|
|
24829
24869
|
var NEW_COLUMN_TYPES = [
|
|
24830
24870
|
{ type: "text", words: "Text" },
|
|
24831
24871
|
{ type: "rich_text", words: "Formatted text" },
|
|
@@ -24922,7 +24962,7 @@ function specsFrom(text) {
|
|
|
24922
24962
|
let parts;
|
|
24923
24963
|
const firstLine = trimmed.split(/\r?\n/)[0];
|
|
24924
24964
|
if (firstLine.includes(" ")) {
|
|
24925
|
-
parts =
|
|
24965
|
+
parts = parseDelimited2(trimmed, { delimiter: " ", strayQuotes: "literal" }).data[0] ?? [];
|
|
24926
24966
|
} else if (/\r?\n/.test(trimmed)) {
|
|
24927
24967
|
parts = trimmed.split(/\r?\n/).map((line) => line.replace(BULLET, ""));
|
|
24928
24968
|
} else {
|
|
@@ -47310,6 +47350,13 @@ var RAIL_TITLE = {
|
|
|
47310
47350
|
"who-changed": "Who changed this",
|
|
47311
47351
|
export: "Export"
|
|
47312
47352
|
};
|
|
47353
|
+
function LookGlyph() {
|
|
47354
|
+
return /* @__PURE__ */ jsxs144("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
47355
|
+
/* @__PURE__ */ jsx155("path", { d: "M4 7h10M18 7h2M4 17h2M10 17h10" }),
|
|
47356
|
+
/* @__PURE__ */ jsx155("circle", { cx: "16", cy: "7", r: "2" }),
|
|
47357
|
+
/* @__PURE__ */ jsx155("circle", { cx: "8", cy: "17", r: "2" })
|
|
47358
|
+
] });
|
|
47359
|
+
}
|
|
47313
47360
|
function RailFrame({
|
|
47314
47361
|
phone,
|
|
47315
47362
|
title,
|
|
@@ -48141,7 +48188,7 @@ function TablePage({
|
|
|
48141
48188
|
if (table.loading && !table.data) {
|
|
48142
48189
|
return /* @__PURE__ */ jsxs144(Fragment64, { children: [
|
|
48143
48190
|
headerNode,
|
|
48144
|
-
/* @__PURE__ */ jsx155(TablePageSkeleton, { layout: skeletonLayoutFor(hostLayout ? "grid" : shownLayout), embedded, ...className ? { className } : {} })
|
|
48191
|
+
/* @__PURE__ */ jsx155(TablePageSkeleton, { layout: skeletonLayoutFor(hostLayout ? "grid" : shownLayout), embedded, tableId, ...className ? { className } : {} })
|
|
48145
48192
|
] });
|
|
48146
48193
|
}
|
|
48147
48194
|
if (!table.data) {
|
|
@@ -48255,16 +48302,11 @@ function TablePage({
|
|
|
48255
48302
|
) : null,
|
|
48256
48303
|
main === "records" && !hostLayout && !(controlsInSheet && shownLayout === "grid") ? /* @__PURE__ */ jsx155(ViewFilter, { tableId, view: shown4, onApply: (where) => void patchView({ where }) }) : null,
|
|
48257
48304
|
lookShowing && main === "records" && !namingLook ? /* @__PURE__ */ jsx155("span", { className: "flex shrink-0 items-center", "data-view-look": "", "data-view-look-folded": "", "data-toolbar-fit": "look", children: /* @__PURE__ */ jsxs144(DropdownMenu9, { children: [
|
|
48258
|
-
/* @__PURE__ */ jsx155(DropdownMenuTrigger9, { asChild: true, children: /* @__PURE__ */ jsxs144(Button105, { size: "sm", variant: "outline", className: "h-8
|
|
48259
|
-
/* @__PURE__ */ jsx155(
|
|
48260
|
-
|
|
48261
|
-
/* @__PURE__ */ jsxs144("span", { className: "sr-only", children: [
|
|
48262
|
-
": ",
|
|
48263
|
-
LOOK_WORDS.yours
|
|
48264
|
-
] })
|
|
48305
|
+
/* @__PURE__ */ jsx155(DropdownMenuTrigger9, { asChild: true, children: /* @__PURE__ */ jsxs144(Button105, { size: "sm", variant: "outline", className: "relative h-8 w-8 shrink-0 px-0", title: LOOK_WORDS.folded, "aria-label": LOOK_WORDS.folded, "data-view-look-menu": "", children: [
|
|
48306
|
+
/* @__PURE__ */ jsx155(LookGlyph, {}),
|
|
48307
|
+
/* @__PURE__ */ jsx155("span", { "aria-hidden": "true", className: "absolute right-1 top-1 h-1.5 w-1.5 rounded-full bg-primary" })
|
|
48265
48308
|
] }) }),
|
|
48266
48309
|
/* @__PURE__ */ jsxs144(DropdownMenuContent9, { align: "start", className: "w-60", "data-view-look-menu-content": "", children: [
|
|
48267
|
-
/* @__PURE__ */ jsx155(DropdownMenuLabel3, { className: "text-xs font-normal text-muted-foreground", title: LOOK_WORDS.yours, children: LOOK_WORDS.yoursLabel }),
|
|
48268
48310
|
lookSavable ? /* @__PURE__ */ jsx155(DropdownMenuItem7, { onSelect: () => void saveLookToView(), "data-view-look-save": "", children: LOOK_WORDS.saveToView }) : null,
|
|
48269
48311
|
rights.write ? /* @__PURE__ */ jsx155(DropdownMenuItem7, { onSelect: () => setNamingLook(true), "data-view-look-save-new": "", children: LOOK_WORDS.saveAsNew }) : null,
|
|
48270
48312
|
/* @__PURE__ */ jsx155(DropdownMenuItem7, { onSelect: () => void resetLook(), "data-view-look-reset": "", children: LOOK_WORDS.reset })
|
|
@@ -48273,10 +48315,7 @@ function TablePage({
|
|
|
48273
48315
|
/* The reserved place keeps its full width at every row width (STABLE-TABLES): when it
|
|
48274
48316
|
shrank on a narrow row, the look arriving on a sort pushed every control after it.
|
|
48275
48317
|
A row too narrow for it scrolls sideways, as the row already does. */
|
|
48276
|
-
/* @__PURE__ */ jsx155("span", { "aria-hidden": "true", className: "invisible flex shrink-0 items-center overflow-hidden", "data-view-look-place": "", "data-toolbar-fit-gives": "", children: /* @__PURE__ */
|
|
48277
|
-
/* @__PURE__ */ jsx155("span", { className: "h-1.5 w-1.5 shrink-0 rounded-full" }),
|
|
48278
|
-
LOOK_WORDS.folded
|
|
48279
|
-
] }) })
|
|
48318
|
+
/* @__PURE__ */ jsx155("span", { "aria-hidden": "true", className: "invisible flex shrink-0 items-center overflow-hidden", "data-view-look-place": "", "data-toolbar-fit-gives": "", children: /* @__PURE__ */ jsx155(Button105, { size: "sm", variant: "outline", className: "h-8 w-8 shrink-0 px-0", tabIndex: -1, children: /* @__PURE__ */ jsx155(LookGlyph, {}) }) })
|
|
48280
48319
|
) : lookShowing && main === "records" ? /* @__PURE__ */ jsxs144("span", { className: "flex shrink-0 items-center gap-1", "data-view-look": "", "data-toolbar-fit": "look", title: LOOK_WORDS.yours, children: [
|
|
48281
48320
|
/* @__PURE__ */ jsx155("span", { className: "sr-only", children: LOOK_WORDS.yours }),
|
|
48282
48321
|
/* @__PURE__ */ jsx155("span", { "aria-hidden": "true", className: "h-1.5 w-1.5 shrink-0 rounded-full bg-primary" }),
|