@ai-matrx/records-ui 0.60.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/dist/index.cjs +3403 -3055
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +157 -5
- package/dist/index.d.ts +157 -5
- package/dist/index.js +3091 -2732
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ComponentType, RefObject } from 'react';
|
|
3
3
|
import * as _ai_matrx_records from '@ai-matrx/records';
|
|
4
|
-
import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, AggregateFilter, Field, RecordDocument, ReadRow, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, WorkInboxKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
|
|
4
|
+
import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, AggregateFilter, Field, RecordDocument, ReadRow, RelationDisplay, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, WorkInboxKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
|
|
5
5
|
import { Uuid, Field as Field$1, ReadRow as ReadRow$1 } from '@ai-matrx/records/react';
|
|
6
6
|
import { RecordsClient } from '@ai-matrx/records/core';
|
|
7
7
|
import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
|
|
@@ -601,8 +601,58 @@ declare function tableName(table: Table): string;
|
|
|
601
601
|
* tells a person nothing and looks like a bug.
|
|
602
602
|
*/
|
|
603
603
|
declare function recordName(document: RecordDocument | undefined, titleKey?: string | null, fallback?: string): string;
|
|
604
|
+
/**
|
|
605
|
+
* Is this string the store's id for something, rather than words a person wrote?
|
|
606
|
+
*
|
|
607
|
+
* The same question `custom._card_words` asks on the database, with the same regex, so the
|
|
608
|
+
* screen and the store agree about what is a name (TAILS-2, 2026-09-21).
|
|
609
|
+
*/
|
|
610
|
+
declare function looksLikeId(value: unknown): boolean;
|
|
604
611
|
/** The same question for a row the read door returned. */
|
|
605
612
|
declare function rowName(row: ReadRow | undefined, titleKey?: string | null, fallback?: string): string;
|
|
613
|
+
/**
|
|
614
|
+
* WHAT A RELATION CHIP SAYS WHEN THE RECORD IT POINTS AT IS NOT YOURS.
|
|
615
|
+
*
|
|
616
|
+
* A relation joins two records in two tables, and holding one end says nothing
|
|
617
|
+
* about the other: a Job shared with you may point at a Client nobody shared.
|
|
618
|
+
* The chip then has three possible answers and only one of them is honest —
|
|
619
|
+
* the target's TITLE is a leak, a bare id is a bug with a hex number in it, and
|
|
620
|
+
* a permanent "Loading…" is a lie that never resolves.
|
|
621
|
+
*
|
|
622
|
+
* This is the SAME sentence `platform.relation_withheld_label()` answers on the
|
|
623
|
+
* database, word for word, so a person reads one wording whether the screen or
|
|
624
|
+
* the store worked it out. Changing it changes both (RELATION-DECLARE,
|
|
625
|
+
* 2026-09-20).
|
|
626
|
+
*/
|
|
627
|
+
declare const WITHHELD_RECORD_LABEL = "A record you have not been given access to";
|
|
628
|
+
|
|
629
|
+
/** What a person has chosen: the table, and optionally which of its columns to show. */
|
|
630
|
+
interface ReferenceChoice {
|
|
631
|
+
/** The Table whose records this column offers. `""` until one is picked. */
|
|
632
|
+
targetTableId: Uuid$1 | "";
|
|
633
|
+
/** Which of that Table's columns to show. `null` = the Table's own reference column. */
|
|
634
|
+
display: RelationDisplay | null;
|
|
635
|
+
}
|
|
636
|
+
interface ReferenceBuilderProps {
|
|
637
|
+
/** The Table the column being built lives on, so "this table" can be marked. */
|
|
638
|
+
tableId: Uuid$1;
|
|
639
|
+
value: ReferenceChoice;
|
|
640
|
+
onChange: (next: ReferenceChoice) => void;
|
|
641
|
+
/**
|
|
642
|
+
* A Person or File column points at a kernel Table the person does not choose.
|
|
643
|
+
* The target picker is then not shown — but which columns to display still is,
|
|
644
|
+
* because that half is theirs either way.
|
|
645
|
+
*/
|
|
646
|
+
lockTarget?: boolean | undefined;
|
|
647
|
+
className?: string | undefined;
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* The client mirror of `custom._words_for`'s display arm, for the PREVIEW only.
|
|
651
|
+
* Same order, same blank-dropping, same refusal to print an id — a preview that
|
|
652
|
+
* disagreed with the store about what a chip says would be worse than none.
|
|
653
|
+
*/
|
|
654
|
+
declare function previewWords(document: Record<string, unknown> | undefined, display: RelationDisplay | null, titleField: string | null): string;
|
|
655
|
+
declare function ReferenceBuilder({ tableId, value, onChange, lockTarget, className, }: ReferenceBuilderProps): react.JSX.Element;
|
|
606
656
|
|
|
607
657
|
interface PersonPickerProps {
|
|
608
658
|
field: Field;
|
|
@@ -1277,6 +1327,13 @@ declare function RecordChip({ title, onRemove, className, }: {
|
|
|
1277
1327
|
|
|
1278
1328
|
/** Answers "what is the record with this id called", for one Field's values. */
|
|
1279
1329
|
type LabelLookup = (field: Field$1, id: string) => string | null;
|
|
1330
|
+
/**
|
|
1331
|
+
* HOW LONG A CELL MAY SAY "Loading…" BEFORE IT HAS TO SAY WHAT IT IS WAITING
|
|
1332
|
+
* FOR. One second is the span at which a person stops reading a word as "this
|
|
1333
|
+
* is about to happen" and starts reading it as "this is stuck" — the same line
|
|
1334
|
+
* Nielsen's response-time work draws and the one Linear and Stripe design to.
|
|
1335
|
+
*/
|
|
1336
|
+
declare const SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS = 1000;
|
|
1280
1337
|
/** Which ids a Field's stored value refers to. */
|
|
1281
1338
|
declare function idsOf(value: unknown): string[];
|
|
1282
1339
|
declare function isId(value: unknown): boolean;
|
|
@@ -1291,10 +1348,16 @@ declare function RecordLabelProvider({ children }: {
|
|
|
1291
1348
|
* per cell, and it is why a grid of 200 rows asks the store twice.
|
|
1292
1349
|
*/
|
|
1293
1350
|
declare function useRecordLabels(fields: readonly Field$1[] | undefined): LabelLookup;
|
|
1351
|
+
/**
|
|
1352
|
+
* WHAT THIS COLUMN IS STILL WAITING FOR, or null while "Loading…" is still an
|
|
1353
|
+
* honest word. A cell draws this INSTEAD of "Loading…" once the resolver has
|
|
1354
|
+
* been looking for a second — see `SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS`.
|
|
1355
|
+
*/
|
|
1356
|
+
declare function useLabelWait(field: Field$1 | undefined): string | null;
|
|
1294
1357
|
|
|
1295
1358
|
/** The envelope for one key, when the document carries one. */
|
|
1296
1359
|
declare function envelopeFor(document: RecordDocument | undefined, key: string): ValueEnvelope | undefined;
|
|
1297
|
-
declare function renderValue(field: Field, value: unknown, document?: RecordDocument, labels?: LabelLookup): react.JSX.Element;
|
|
1360
|
+
declare function renderValue(field: Field, value: unknown, document?: RecordDocument, labels?: LabelLookup, stillWaitingFor?: string | null): react.JSX.Element;
|
|
1298
1361
|
/**
|
|
1299
1362
|
* The text of one scalar, with the Field's UNIT and FORMAT applied — FLD-N-1
|
|
1300
1363
|
* says both change the MEANING — and with an id resolved to the NAME of the
|
|
@@ -1305,7 +1368,15 @@ declare function renderValue(field: Field, value: unknown, document?: RecordDocu
|
|
|
1305
1368
|
* reads like a value, and the 19 September verdict found it in choice cells,
|
|
1306
1369
|
* relation cells and as every Kanban column heading.
|
|
1307
1370
|
*/
|
|
1308
|
-
declare function scalarText(field: Field, value: unknown, labels?: LabelLookup
|
|
1371
|
+
declare function scalarText(field: Field, value: unknown, labels?: LabelLookup,
|
|
1372
|
+
/**
|
|
1373
|
+
* WHAT THIS COLUMN IS WAITING FOR, once it has been looking long enough to owe
|
|
1374
|
+
* a sentence (`useLabelWait`). "Loading…" is honest for a moment and a lie with
|
|
1375
|
+
* a spinner on it after that: VERIFIER-8 MEDIUM-1 watched a whole relation
|
|
1376
|
+
* column say it for 10-13 seconds while the rest of the grid sat readable
|
|
1377
|
+
* behind it, and nothing on screen said what it was waiting for.
|
|
1378
|
+
*/
|
|
1379
|
+
stillWaitingFor?: string | null): string;
|
|
1309
1380
|
/** The provenance badge a value carries when the store interned a source for it (SCR-27). */
|
|
1310
1381
|
declare function ProvenanceBadge({ document, fieldKey }: {
|
|
1311
1382
|
document: RecordDocument | undefined;
|
|
@@ -1511,6 +1582,37 @@ declare const VIEW_TABLE: SystemTableSpec;
|
|
|
1511
1582
|
* screen and any agent writing a view spec must agree about what is offerable.
|
|
1512
1583
|
*/
|
|
1513
1584
|
declare const LAYOUT_FIELD_KIND: Record<ViewLayout, "choice" | "date" | null>;
|
|
1585
|
+
/**
|
|
1586
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
1587
|
+
* WHICH VIEW A LINK NAMES — the address bar as a first-class control.
|
|
1588
|
+
*
|
|
1589
|
+
* 🚨 THE DEFECT THIS CLOSES (lane FRONT-DOOR, 2026-09-21; VERIFIER-8 HIGH-2).
|
|
1590
|
+
* `/data-v2/<table>?view=kanban` returned 200 and rendered THE GRID. The
|
|
1591
|
+
* switcher was there, the four buttons worked, and the parameter was read by
|
|
1592
|
+
* nobody — so a person who bookmarked a board, or sent one to a colleague, got
|
|
1593
|
+
* a grid, and nothing on the screen said the view had been dropped. A link that
|
|
1594
|
+
* does not land is the inbox-link defect (`activeRecordId`) and the dashboard
|
|
1595
|
+
* defect (`activeDashboardId`) for the third time, so this is the same shape of
|
|
1596
|
+
* fix: the URL names it, the page opens on it, and the URL FOLLOWS the person
|
|
1597
|
+
* when they pick another.
|
|
1598
|
+
*
|
|
1599
|
+
* The dashboards are a fifth value and not a special case: to the person, "the
|
|
1600
|
+
* dashboard" is one of the ways to look at this table, and a link to it has to
|
|
1601
|
+
* work like a link to the board.
|
|
1602
|
+
*/
|
|
1603
|
+
declare const PAGE_VIEWS: readonly ["grid", "kanban", "calendar", "gallery", "dashboards"];
|
|
1604
|
+
type PageView = (typeof PAGE_VIEWS)[number];
|
|
1605
|
+
declare const PAGE_VIEW_LABEL: Record<PageView, string>;
|
|
1606
|
+
/**
|
|
1607
|
+
* What a `?view=` value means, or `null` when it means nothing here.
|
|
1608
|
+
*
|
|
1609
|
+
* `null` is NOT "show the grid": the caller is expected to say that the link
|
|
1610
|
+
* named something this table has no view for, because silently substituting a
|
|
1611
|
+
* different view is exactly the defect above wearing a parser.
|
|
1612
|
+
*/
|
|
1613
|
+
declare function pageViewFromParam(raw: string | null | undefined): PageView | null;
|
|
1614
|
+
/** The sentence a link that named a view nobody has says. Never silent. */
|
|
1615
|
+
declare function unknownViewLine(raw: string): string;
|
|
1514
1616
|
/** The one sentence a layout says when the table holds no Field it could use. */
|
|
1515
1617
|
declare const LAYOUT_NO_FIELD: Record<ViewLayout, string>;
|
|
1516
1618
|
/** The spec as the one document the store holds. */
|
|
@@ -2576,6 +2678,27 @@ interface TablePageProps {
|
|
|
2576
2678
|
* Absent, nothing changes: the page opens exactly as it did.
|
|
2577
2679
|
*/
|
|
2578
2680
|
activeRecordId?: Uuid$1 | null | undefined;
|
|
2681
|
+
/**
|
|
2682
|
+
* WHICH VIEW THE ADDRESS NAMES — `grid`, `kanban`, `calendar`, `gallery` or
|
|
2683
|
+
* `dashboards`, exactly as the host read it out of `?view=`.
|
|
2684
|
+
*
|
|
2685
|
+
* 🚨 THE DEAD LINK THIS CLOSES (lane FRONT-DOOR, 2026-09-21; VERIFIER-8
|
|
2686
|
+
* HIGH-2). `?view=kanban` returned 200 and rendered the grid: the parameter
|
|
2687
|
+
* was read by nobody, so a bookmarked or shared board was a grid and nothing
|
|
2688
|
+
* on screen said so. It is the raw string and not a parsed value because a
|
|
2689
|
+
* value this page does not know is a thing the PERSON has to be told about
|
|
2690
|
+
* (`unknownViewLine`), not a parse failure to swallow.
|
|
2691
|
+
*
|
|
2692
|
+
* Absent, the page opens exactly as it did: on the saved view's own layout.
|
|
2693
|
+
*/
|
|
2694
|
+
activeView?: string | null | undefined;
|
|
2695
|
+
/**
|
|
2696
|
+
* THE ADDRESS FOLLOWS THE PERSON. Called with the view they just picked — a
|
|
2697
|
+
* layout button or the Dashboards button — so the host can put it in the URL.
|
|
2698
|
+
* Half a deep link is a link that works when you arrive and lies when you
|
|
2699
|
+
* copy it out of the address bar afterwards.
|
|
2700
|
+
*/
|
|
2701
|
+
onViewChanged?: ((view: PageView) => void) | undefined;
|
|
2579
2702
|
className?: string | undefined;
|
|
2580
2703
|
}
|
|
2581
2704
|
/**
|
|
@@ -2673,7 +2796,36 @@ declare function chooseSurface(current: Surface, pressed: SurfacePress): Surface
|
|
|
2673
2796
|
* and the pressed look come from one answer rather than nine independent guesses.
|
|
2674
2797
|
*/
|
|
2675
2798
|
declare function surfaceChosen(current: Surface, asking: SurfacePress): boolean;
|
|
2676
|
-
|
|
2799
|
+
/**
|
|
2800
|
+
* WHAT THE PAGE OPENS SHOWING — one pure function, so the dead link can be shown failing.
|
|
2801
|
+
* See `TablePageProps.activeRecordId` for the defect it closes.
|
|
2802
|
+
*/
|
|
2803
|
+
declare function openingRail(activeRecordId: Uuid$1 | null | undefined): {
|
|
2804
|
+
rail: "record" | "none";
|
|
2805
|
+
record: Uuid$1 | null;
|
|
2806
|
+
};
|
|
2807
|
+
/**
|
|
2808
|
+
* WHICH VIEW A LINK OPENS — one pure function, so the dead link can be shown
|
|
2809
|
+
* failing. See `TablePageProps.activeView` for the defect it closes.
|
|
2810
|
+
*
|
|
2811
|
+
* Three answers, and the third is the one that stops it being a silent drop:
|
|
2812
|
+
* · `main` — the records or the dashboards;
|
|
2813
|
+
* · `layout` — the layout the link named, or null for "whatever the saved
|
|
2814
|
+
* view says", which is the no-parameter case;
|
|
2815
|
+
* · `unknown` — the word the link used when this page has no view by that
|
|
2816
|
+
* name. It is RETURNED rather than swallowed, because the
|
|
2817
|
+
* person has to be told their link asked for something that
|
|
2818
|
+
* does not exist here.
|
|
2819
|
+
*
|
|
2820
|
+
* A `?dashboard=<id>` with no `?view=` still opens the canvas, because that
|
|
2821
|
+
* link predates this one and must keep working.
|
|
2822
|
+
*/
|
|
2823
|
+
declare function openingView(activeView: string | null | undefined, activeDashboardId: Uuid$1 | null | undefined): {
|
|
2824
|
+
main: MainView;
|
|
2825
|
+
layout: ViewLayout | null;
|
|
2826
|
+
unknown: string | null;
|
|
2827
|
+
};
|
|
2828
|
+
declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, className, }: TablePageProps): react.JSX.Element;
|
|
2677
2829
|
|
|
2678
2830
|
/** What the roster can tell us about a user id. `null` when it cannot. */
|
|
2679
2831
|
type ResolveName = (userId: Uuid$1) => string | null;
|
|
@@ -2851,4 +3003,4 @@ interface PipelineBoardProps {
|
|
|
2851
3003
|
}
|
|
2852
3004
|
declare function PipelineBoard({ tableId, rows, measure, onMeasureChange, onOpenRecord, onMoved, className, }: PipelineBoardProps): react.JSX.Element;
|
|
2853
3005
|
|
|
2854
|
-
export { ACTION_KINDS, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, BookingBuilder, type BookingBuilderProps, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CONDITION_OPS, type Capability, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FIELDS, DEFAULT_VIEW_NAME, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, ExportMenu, type ExportMenuProps, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FORM_FLOWS, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldTypeChoice, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PARITY_LABEL, PARITY_MADE_OF, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, type PickableFieldType, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, ProvenanceBadge, PublicViewPage, type PublicViewPageProps, type ReaskContext, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, SAVED_VIEWS_UNAVAILABLE, SERIES_COLORS, SOMEBODY, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, machineIdentityIn, memberName, nextInWords, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, publiclyAnswerable, recordName, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
|
|
3006
|
+
export { ACTION_KINDS, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, BookingBuilder, type BookingBuilderProps, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CONDITION_OPS, type Capability, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FIELDS, DEFAULT_VIEW_NAME, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, ExportMenu, type ExportMenuProps, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FORM_FLOWS, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldTypeChoice, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, type PickableFieldType, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, ProvenanceBadge, PublicViewPage, type PublicViewPageProps, type ReaskContext, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, SAVED_VIEWS_UNAVAILABLE, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SERIES_COLORS, SOMEBODY, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, WITHHELD_RECORD_LABEL, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, memberName, nextInWords, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, recordName, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ComponentType, RefObject } from 'react';
|
|
3
3
|
import * as _ai_matrx_records from '@ai-matrx/records';
|
|
4
|
-
import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, AggregateFilter, Field, RecordDocument, ReadRow, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, WorkInboxKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
|
|
4
|
+
import { PermissionLevel, Table, RecordScopeContext, EnrichCell, RecordsError, Uuid as Uuid$1, AggregateFilter, Field, RecordDocument, ReadRow, RelationDisplay, WriteConflict, ParityFieldType, NewFieldDeclaration, RuleExpression, ValueEnvelope, WorkInboxKind, FormSummary, PortalCard, PortalPrincipal, PortalPreviewRow, DashboardBlockKind, AggregateBucket, AggregateMeasure, DashboardBlock, DashboardSummary, DocTemplateRow, DocRenderRow, QuietHours, DashboardBlockResult, ChecklistRunStep, BookingSummary, CaptureSheetFace, CaptureField, AnonTokenBinding, RecordsConfig, RecordsActor, RecordsDataSource, HistoryActor, FieldHistoryEntry, FieldTypeWord } from '@ai-matrx/records';
|
|
5
5
|
import { Uuid, Field as Field$1, ReadRow as ReadRow$1 } from '@ai-matrx/records/react';
|
|
6
6
|
import { RecordsClient } from '@ai-matrx/records/core';
|
|
7
7
|
import { FieldFormatConfig } from '@ai-matrx/design-system/field-formats';
|
|
@@ -601,8 +601,58 @@ declare function tableName(table: Table): string;
|
|
|
601
601
|
* tells a person nothing and looks like a bug.
|
|
602
602
|
*/
|
|
603
603
|
declare function recordName(document: RecordDocument | undefined, titleKey?: string | null, fallback?: string): string;
|
|
604
|
+
/**
|
|
605
|
+
* Is this string the store's id for something, rather than words a person wrote?
|
|
606
|
+
*
|
|
607
|
+
* The same question `custom._card_words` asks on the database, with the same regex, so the
|
|
608
|
+
* screen and the store agree about what is a name (TAILS-2, 2026-09-21).
|
|
609
|
+
*/
|
|
610
|
+
declare function looksLikeId(value: unknown): boolean;
|
|
604
611
|
/** The same question for a row the read door returned. */
|
|
605
612
|
declare function rowName(row: ReadRow | undefined, titleKey?: string | null, fallback?: string): string;
|
|
613
|
+
/**
|
|
614
|
+
* WHAT A RELATION CHIP SAYS WHEN THE RECORD IT POINTS AT IS NOT YOURS.
|
|
615
|
+
*
|
|
616
|
+
* A relation joins two records in two tables, and holding one end says nothing
|
|
617
|
+
* about the other: a Job shared with you may point at a Client nobody shared.
|
|
618
|
+
* The chip then has three possible answers and only one of them is honest —
|
|
619
|
+
* the target's TITLE is a leak, a bare id is a bug with a hex number in it, and
|
|
620
|
+
* a permanent "Loading…" is a lie that never resolves.
|
|
621
|
+
*
|
|
622
|
+
* This is the SAME sentence `platform.relation_withheld_label()` answers on the
|
|
623
|
+
* database, word for word, so a person reads one wording whether the screen or
|
|
624
|
+
* the store worked it out. Changing it changes both (RELATION-DECLARE,
|
|
625
|
+
* 2026-09-20).
|
|
626
|
+
*/
|
|
627
|
+
declare const WITHHELD_RECORD_LABEL = "A record you have not been given access to";
|
|
628
|
+
|
|
629
|
+
/** What a person has chosen: the table, and optionally which of its columns to show. */
|
|
630
|
+
interface ReferenceChoice {
|
|
631
|
+
/** The Table whose records this column offers. `""` until one is picked. */
|
|
632
|
+
targetTableId: Uuid$1 | "";
|
|
633
|
+
/** Which of that Table's columns to show. `null` = the Table's own reference column. */
|
|
634
|
+
display: RelationDisplay | null;
|
|
635
|
+
}
|
|
636
|
+
interface ReferenceBuilderProps {
|
|
637
|
+
/** The Table the column being built lives on, so "this table" can be marked. */
|
|
638
|
+
tableId: Uuid$1;
|
|
639
|
+
value: ReferenceChoice;
|
|
640
|
+
onChange: (next: ReferenceChoice) => void;
|
|
641
|
+
/**
|
|
642
|
+
* A Person or File column points at a kernel Table the person does not choose.
|
|
643
|
+
* The target picker is then not shown — but which columns to display still is,
|
|
644
|
+
* because that half is theirs either way.
|
|
645
|
+
*/
|
|
646
|
+
lockTarget?: boolean | undefined;
|
|
647
|
+
className?: string | undefined;
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* The client mirror of `custom._words_for`'s display arm, for the PREVIEW only.
|
|
651
|
+
* Same order, same blank-dropping, same refusal to print an id — a preview that
|
|
652
|
+
* disagreed with the store about what a chip says would be worse than none.
|
|
653
|
+
*/
|
|
654
|
+
declare function previewWords(document: Record<string, unknown> | undefined, display: RelationDisplay | null, titleField: string | null): string;
|
|
655
|
+
declare function ReferenceBuilder({ tableId, value, onChange, lockTarget, className, }: ReferenceBuilderProps): react.JSX.Element;
|
|
606
656
|
|
|
607
657
|
interface PersonPickerProps {
|
|
608
658
|
field: Field;
|
|
@@ -1277,6 +1327,13 @@ declare function RecordChip({ title, onRemove, className, }: {
|
|
|
1277
1327
|
|
|
1278
1328
|
/** Answers "what is the record with this id called", for one Field's values. */
|
|
1279
1329
|
type LabelLookup = (field: Field$1, id: string) => string | null;
|
|
1330
|
+
/**
|
|
1331
|
+
* HOW LONG A CELL MAY SAY "Loading…" BEFORE IT HAS TO SAY WHAT IT IS WAITING
|
|
1332
|
+
* FOR. One second is the span at which a person stops reading a word as "this
|
|
1333
|
+
* is about to happen" and starts reading it as "this is stuck" — the same line
|
|
1334
|
+
* Nielsen's response-time work draws and the one Linear and Stripe design to.
|
|
1335
|
+
*/
|
|
1336
|
+
declare const SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS = 1000;
|
|
1280
1337
|
/** Which ids a Field's stored value refers to. */
|
|
1281
1338
|
declare function idsOf(value: unknown): string[];
|
|
1282
1339
|
declare function isId(value: unknown): boolean;
|
|
@@ -1291,10 +1348,16 @@ declare function RecordLabelProvider({ children }: {
|
|
|
1291
1348
|
* per cell, and it is why a grid of 200 rows asks the store twice.
|
|
1292
1349
|
*/
|
|
1293
1350
|
declare function useRecordLabels(fields: readonly Field$1[] | undefined): LabelLookup;
|
|
1351
|
+
/**
|
|
1352
|
+
* WHAT THIS COLUMN IS STILL WAITING FOR, or null while "Loading…" is still an
|
|
1353
|
+
* honest word. A cell draws this INSTEAD of "Loading…" once the resolver has
|
|
1354
|
+
* been looking for a second — see `SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS`.
|
|
1355
|
+
*/
|
|
1356
|
+
declare function useLabelWait(field: Field$1 | undefined): string | null;
|
|
1294
1357
|
|
|
1295
1358
|
/** The envelope for one key, when the document carries one. */
|
|
1296
1359
|
declare function envelopeFor(document: RecordDocument | undefined, key: string): ValueEnvelope | undefined;
|
|
1297
|
-
declare function renderValue(field: Field, value: unknown, document?: RecordDocument, labels?: LabelLookup): react.JSX.Element;
|
|
1360
|
+
declare function renderValue(field: Field, value: unknown, document?: RecordDocument, labels?: LabelLookup, stillWaitingFor?: string | null): react.JSX.Element;
|
|
1298
1361
|
/**
|
|
1299
1362
|
* The text of one scalar, with the Field's UNIT and FORMAT applied — FLD-N-1
|
|
1300
1363
|
* says both change the MEANING — and with an id resolved to the NAME of the
|
|
@@ -1305,7 +1368,15 @@ declare function renderValue(field: Field, value: unknown, document?: RecordDocu
|
|
|
1305
1368
|
* reads like a value, and the 19 September verdict found it in choice cells,
|
|
1306
1369
|
* relation cells and as every Kanban column heading.
|
|
1307
1370
|
*/
|
|
1308
|
-
declare function scalarText(field: Field, value: unknown, labels?: LabelLookup
|
|
1371
|
+
declare function scalarText(field: Field, value: unknown, labels?: LabelLookup,
|
|
1372
|
+
/**
|
|
1373
|
+
* WHAT THIS COLUMN IS WAITING FOR, once it has been looking long enough to owe
|
|
1374
|
+
* a sentence (`useLabelWait`). "Loading…" is honest for a moment and a lie with
|
|
1375
|
+
* a spinner on it after that: VERIFIER-8 MEDIUM-1 watched a whole relation
|
|
1376
|
+
* column say it for 10-13 seconds while the rest of the grid sat readable
|
|
1377
|
+
* behind it, and nothing on screen said what it was waiting for.
|
|
1378
|
+
*/
|
|
1379
|
+
stillWaitingFor?: string | null): string;
|
|
1309
1380
|
/** The provenance badge a value carries when the store interned a source for it (SCR-27). */
|
|
1310
1381
|
declare function ProvenanceBadge({ document, fieldKey }: {
|
|
1311
1382
|
document: RecordDocument | undefined;
|
|
@@ -1511,6 +1582,37 @@ declare const VIEW_TABLE: SystemTableSpec;
|
|
|
1511
1582
|
* screen and any agent writing a view spec must agree about what is offerable.
|
|
1512
1583
|
*/
|
|
1513
1584
|
declare const LAYOUT_FIELD_KIND: Record<ViewLayout, "choice" | "date" | null>;
|
|
1585
|
+
/**
|
|
1586
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
1587
|
+
* WHICH VIEW A LINK NAMES — the address bar as a first-class control.
|
|
1588
|
+
*
|
|
1589
|
+
* 🚨 THE DEFECT THIS CLOSES (lane FRONT-DOOR, 2026-09-21; VERIFIER-8 HIGH-2).
|
|
1590
|
+
* `/data-v2/<table>?view=kanban` returned 200 and rendered THE GRID. The
|
|
1591
|
+
* switcher was there, the four buttons worked, and the parameter was read by
|
|
1592
|
+
* nobody — so a person who bookmarked a board, or sent one to a colleague, got
|
|
1593
|
+
* a grid, and nothing on the screen said the view had been dropped. A link that
|
|
1594
|
+
* does not land is the inbox-link defect (`activeRecordId`) and the dashboard
|
|
1595
|
+
* defect (`activeDashboardId`) for the third time, so this is the same shape of
|
|
1596
|
+
* fix: the URL names it, the page opens on it, and the URL FOLLOWS the person
|
|
1597
|
+
* when they pick another.
|
|
1598
|
+
*
|
|
1599
|
+
* The dashboards are a fifth value and not a special case: to the person, "the
|
|
1600
|
+
* dashboard" is one of the ways to look at this table, and a link to it has to
|
|
1601
|
+
* work like a link to the board.
|
|
1602
|
+
*/
|
|
1603
|
+
declare const PAGE_VIEWS: readonly ["grid", "kanban", "calendar", "gallery", "dashboards"];
|
|
1604
|
+
type PageView = (typeof PAGE_VIEWS)[number];
|
|
1605
|
+
declare const PAGE_VIEW_LABEL: Record<PageView, string>;
|
|
1606
|
+
/**
|
|
1607
|
+
* What a `?view=` value means, or `null` when it means nothing here.
|
|
1608
|
+
*
|
|
1609
|
+
* `null` is NOT "show the grid": the caller is expected to say that the link
|
|
1610
|
+
* named something this table has no view for, because silently substituting a
|
|
1611
|
+
* different view is exactly the defect above wearing a parser.
|
|
1612
|
+
*/
|
|
1613
|
+
declare function pageViewFromParam(raw: string | null | undefined): PageView | null;
|
|
1614
|
+
/** The sentence a link that named a view nobody has says. Never silent. */
|
|
1615
|
+
declare function unknownViewLine(raw: string): string;
|
|
1514
1616
|
/** The one sentence a layout says when the table holds no Field it could use. */
|
|
1515
1617
|
declare const LAYOUT_NO_FIELD: Record<ViewLayout, string>;
|
|
1516
1618
|
/** The spec as the one document the store holds. */
|
|
@@ -2576,6 +2678,27 @@ interface TablePageProps {
|
|
|
2576
2678
|
* Absent, nothing changes: the page opens exactly as it did.
|
|
2577
2679
|
*/
|
|
2578
2680
|
activeRecordId?: Uuid$1 | null | undefined;
|
|
2681
|
+
/**
|
|
2682
|
+
* WHICH VIEW THE ADDRESS NAMES — `grid`, `kanban`, `calendar`, `gallery` or
|
|
2683
|
+
* `dashboards`, exactly as the host read it out of `?view=`.
|
|
2684
|
+
*
|
|
2685
|
+
* 🚨 THE DEAD LINK THIS CLOSES (lane FRONT-DOOR, 2026-09-21; VERIFIER-8
|
|
2686
|
+
* HIGH-2). `?view=kanban` returned 200 and rendered the grid: the parameter
|
|
2687
|
+
* was read by nobody, so a bookmarked or shared board was a grid and nothing
|
|
2688
|
+
* on screen said so. It is the raw string and not a parsed value because a
|
|
2689
|
+
* value this page does not know is a thing the PERSON has to be told about
|
|
2690
|
+
* (`unknownViewLine`), not a parse failure to swallow.
|
|
2691
|
+
*
|
|
2692
|
+
* Absent, the page opens exactly as it did: on the saved view's own layout.
|
|
2693
|
+
*/
|
|
2694
|
+
activeView?: string | null | undefined;
|
|
2695
|
+
/**
|
|
2696
|
+
* THE ADDRESS FOLLOWS THE PERSON. Called with the view they just picked — a
|
|
2697
|
+
* layout button or the Dashboards button — so the host can put it in the URL.
|
|
2698
|
+
* Half a deep link is a link that works when you arrive and lies when you
|
|
2699
|
+
* copy it out of the address bar afterwards.
|
|
2700
|
+
*/
|
|
2701
|
+
onViewChanged?: ((view: PageView) => void) | undefined;
|
|
2579
2702
|
className?: string | undefined;
|
|
2580
2703
|
}
|
|
2581
2704
|
/**
|
|
@@ -2673,7 +2796,36 @@ declare function chooseSurface(current: Surface, pressed: SurfacePress): Surface
|
|
|
2673
2796
|
* and the pressed look come from one answer rather than nine independent guesses.
|
|
2674
2797
|
*/
|
|
2675
2798
|
declare function surfaceChosen(current: Surface, asking: SurfacePress): boolean;
|
|
2676
|
-
|
|
2799
|
+
/**
|
|
2800
|
+
* WHAT THE PAGE OPENS SHOWING — one pure function, so the dead link can be shown failing.
|
|
2801
|
+
* See `TablePageProps.activeRecordId` for the defect it closes.
|
|
2802
|
+
*/
|
|
2803
|
+
declare function openingRail(activeRecordId: Uuid$1 | null | undefined): {
|
|
2804
|
+
rail: "record" | "none";
|
|
2805
|
+
record: Uuid$1 | null;
|
|
2806
|
+
};
|
|
2807
|
+
/**
|
|
2808
|
+
* WHICH VIEW A LINK OPENS — one pure function, so the dead link can be shown
|
|
2809
|
+
* failing. See `TablePageProps.activeView` for the defect it closes.
|
|
2810
|
+
*
|
|
2811
|
+
* Three answers, and the third is the one that stops it being a silent drop:
|
|
2812
|
+
* · `main` — the records or the dashboards;
|
|
2813
|
+
* · `layout` — the layout the link named, or null for "whatever the saved
|
|
2814
|
+
* view says", which is the no-parameter case;
|
|
2815
|
+
* · `unknown` — the word the link used when this page has no view by that
|
|
2816
|
+
* name. It is RETURNED rather than swallowed, because the
|
|
2817
|
+
* person has to be told their link asked for something that
|
|
2818
|
+
* does not exist here.
|
|
2819
|
+
*
|
|
2820
|
+
* A `?dashboard=<id>` with no `?view=` still opens the canvas, because that
|
|
2821
|
+
* link predates this one and must keep working.
|
|
2822
|
+
*/
|
|
2823
|
+
declare function openingView(activeView: string | null | undefined, activeDashboardId: Uuid$1 | null | undefined): {
|
|
2824
|
+
main: MainView;
|
|
2825
|
+
layout: ViewLayout | null;
|
|
2826
|
+
unknown: string | null;
|
|
2827
|
+
};
|
|
2828
|
+
declare function TablePage({ tableId, pageSize, seedViews, onLeave, leaveLabel, activeDashboardId, activeRecordId, activeView, onViewChanged, className, }: TablePageProps): react.JSX.Element;
|
|
2677
2829
|
|
|
2678
2830
|
/** What the roster can tell us about a user id. `null` when it cannot. */
|
|
2679
2831
|
type ResolveName = (userId: Uuid$1) => string | null;
|
|
@@ -2851,4 +3003,4 @@ interface PipelineBoardProps {
|
|
|
2851
3003
|
}
|
|
2852
3004
|
declare function PipelineBoard({ tableId, rows, measure, onMeasureChange, onOpenRecord, onMoved, className, }: PipelineBoardProps): react.JSX.Element;
|
|
2853
3005
|
|
|
2854
|
-
export { ACTION_KINDS, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, BookingBuilder, type BookingBuilderProps, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CONDITION_OPS, type Capability, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FIELDS, DEFAULT_VIEW_NAME, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, ExportMenu, type ExportMenuProps, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FORM_FLOWS, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldTypeChoice, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PARITY_LABEL, PARITY_MADE_OF, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, type PickableFieldType, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, ProvenanceBadge, PublicViewPage, type PublicViewPageProps, type ReaskContext, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, SAVED_VIEWS_UNAVAILABLE, SERIES_COLORS, SOMEBODY, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, machineIdentityIn, memberName, nextInWords, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, publiclyAnswerable, recordName, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
|
|
3006
|
+
export { ACTION_KINDS, ActionInbox, type ActionInboxProps, type ActionKind, type AgentBuildAsk, BookingBuilder, type BookingBuilderProps, BookingSlots, type BookingSlotsProps, BuildOrAsk, type BuildOrAskProps, type BuildableKind, CAPTURE_MODES, CHART_KINDS, CHART_KIND_LABEL, CHART_NEEDS, CONDITION_OPS, type Capability, type CaptureMode, type CaptureQueuePort, CaptureRun, type CaptureRunProps, CaptureSheet, type CaptureSheetProps, type CellAddress, type CellRefusal, type CellState, ChartBlock, type ChartBlockProps, type ChartConfig, ChartFrame, type ChartKind, ChartLegendContent, type ChartSpec, ChartTooltipContent, ChecklistRunner, type ChecklistRunnerProps, ChecklistTemplateEditor, ChecklistsPanel, type ChecklistsPanelProps, CommentThread, type CommentThreadProps, type ConditionField, ConditionGroup, type ConditionGroupProps, ConditionRow, type ConditionRowProps, CustomFieldsSection, type CustomFieldsSectionProps, DEFAULT_FIELDS, DEFAULT_VIEW_NAME, DashboardCanvas, type DashboardCanvasProps, type DeclareResult, DigestScheduler, type DigestSchedulerProps, DocRender, type DocRenderProps, DocTemplate, type DocTemplateProps, type DocTemplateSpec, EMPTY_PRESENTATION, type EditorKind, EmbedFrame, type EmbedFrameProps, type EnrichAsk, EnrichBadge, type EnrichBadgeProps, type EnrichOutcome, EnrichPanel, type EnrichPanelProps, ExportMenu, type ExportMenuProps, FIELD_TYPE_CHOICES, FIELD_TYPE_GROUPS, FORM_FLOWS, FROZEN_COLUMN_WIDTH, FieldControl, FieldEditor, type FieldEditorControlProps, type FieldEditorProps, FieldHistoryPanel, type FieldHistoryPanelProps, FieldLabel, type FieldProposalRow, type FieldTypeChoice, FormBuilder, type FormBuilderProps, type FormFlow, type FormQuestionSpec, FormRunner, type FormRunnerProps, type FormSpec, type FormSubmitOutcome, type FormTheme, FormsPanel, type FormsPanelProps, Grid, GridCell, type GridEditing, type GridGrouping, type GridPresentation, type GridProps, HistoryPanel, type HistoryPanelProps, IN_MEMORY_QUEUE_REASON, ImportWizard, type ImportWizardProps, KERNEL_REASON, LANE_EMPTY, LANE_TITLE, LAYOUT_FIELD_KIND, LAYOUT_LABEL, LAYOUT_NEEDS, LAYOUT_NO_FIELD, LEVEL_WORD, type LabelLookup, MACHINE_IDENTITY, MAX_ROW_HEIGHT, MIN_ROW_HEIGHT, type MainView, MyChecklistSteps, NEEDS_A_SENTENCE, NOT_ANSWERED_YET, NOT_DRAWN_HERE, NO_AGENT_PORT, NO_CHAT_REASON, NO_COLUMNS_WHY, NO_COLUMNS_YET, NO_ENRICH_REASON, NO_MEMBERS_REASON, NO_OPEN_RECORDS_REASON, NO_REASK_REASON, NO_RIGHTS, NO_RULES_YET, NO_SAVED_VIEWS_REASON, NO_SHARE_REASON, NO_UPLOAD_REASON, type NewFieldSpec, type NewTableSpec, NotifyRuleEditor, type NotifyRuleEditorProps, type NotifyRuleSpec, type OpenRecordsAsk, type OrganizationMember, PAGE_VIEWS, PAGE_VIEW_LABEL, PARITY_LABEL, PARITY_MADE_OF, type PageView, Peek, type PeekProps, type PendingCapture, PersonPicker, type PersonPickerProps, type PickableFieldType, PipelineBoard, type PipelineBoardProps, type PlainFieldType, type PlainRefusal, type PortalAnswer, PortalBuilder, type PortalBuilderProps, PortalCardView, type PortalCardViewProps, PortalShell, type PortalShellProps, PortalsPanel, type PortalsPanelProps, type ProposalOutcome, ProposalRow, type ProposalRowProps, type ProposedChange, ProvenanceBadge, PublicViewPage, type PublicViewPageProps, type ReaskContext, RecordChat, type RecordChatContext, type RecordChatEntry, type RecordChatProps, type RecordChatWithheld, RecordChip, RecordForm, type RecordFormProps, RecordLabelProvider, RecordValue, RecordsMount, type RecordsMountProps, type RecordsUiHost, RecordsUiProvider, ReferenceBuilder, type ReferenceBuilderProps, type ReferenceChoice, RefusalLine, RefusalNotice, type RelationFieldType, RelationPicker, type RelationPickerProps, type ResolveName, SAVED_VIEWS_UNAVAILABLE, SAY_WHAT_YOU_ARE_WAITING_FOR_AFTER_MS, SERIES_COLORS, SOMEBODY, STORE_ANSWERS_THESE, STORE_DECIDES_REASON, type SavedDashboard, type SavedForm, type SavedView, type SavedViewSpec, ShareControl, type ShareControlProps, type ShareSubject, SignBlock, type SignBlockProps, StageRulesSection, type StageRulesSectionProps, StepRow, SubscriptionsPanel, type SubscriptionsPanelProps, type Surface, type SurfacePress, type SystemFieldSpec, type SystemTableSpec, TABLE_LANES, TABLE_NOT_REACHABLE, THE_SYSTEM, type TableLane, TablePage, type TablePageProps, type TableRights, TableSettings, type TableSettingsProps, TablesHome, type TablesHomeProps, type TrackedVersion, type UseSystemTableState, VIEW_LAYOUTS, VIEW_NOT_SAVED_YET, VIEW_TABLE, ViewBar, type ViewBarProps, type ViewLayout, type ViewSort, ViewSwitcher, type ViewSwitcherProps, WITHHELD_RECORD_LABEL, type WhatYouMayDo, type WhoChanged, WhoChangedSource, actorBadge, actorWords, addFields, askableFields, blockFromSpec, bodyForReading, bodyFromKeys, cellState, chooseSurface, colorFromTheValue, columnForField, conditionInWords, conditionIsDrawable, conditionIsSimple, conditionValue, controlFor, currencyCodeFor, dashboardDeclareArgs, dashboardFromSummary, declareTable, editorKindFor, ensureSystemTable, envelopeFor, fieldDeclarationFor, fieldIsEditable, fieldName, fieldToken, fieldTypeChoice, fieldTypeLabel, formDeclareArgs, formFromSummary, formPresentation, formatForField, groupLabel, hintForAPerson, hintIsMachineIdentity, humanize, idsOf, isId, isMachineIdentity, isPlainFieldType, isRelationFieldType, isSignatureField, keyFor, laneFor, lastChangeSentence, looksLikeId, machineIdentityIn, memberName, nextInWords, openingRail, openingView, pageViewFromParam, parityTypesWithNoExplanation, parseGridPresentation, personActor, personRecordForMember, pointsAtRecords, presentationDocument, presentationIsEmpty, previewLine, previewWords, publiclyAnswerable, recordName, recordsDataSource, refusalForAPerson, refusalLineForAPerson, renderValue, revokeConsequence, rowName, scalarText, shareUnavailableReason, specFromBlock, storeDecidesRights, submissionStamp, surfaceChosen, tableName, tableRightsAt, tokenFor, unknownViewLine, useCanShare, useEmbedHandshake, useEnrichCells, useGridEditing, useLabelWait, useMeasuredWidth, useMyChecklistSteps, useRecordLabels, useRecordRights, useRecordsUi, useRowRights, useSystemTable, useTableRights, useViewRecords, useWhoChanged, viewDocument, viewFromRecord, viewPatchDocument, whatIsMissing, whatYouMayDo, whatYouMayDoWithTable, whenWords, whyNotAskable };
|