@declarion/react 0.60.0 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/ActionDialog-uiuse5W8.js +374 -0
- package/dist-lib/ActionResultDialog.impl-BUBm9Ck3.js +273 -0
- package/dist-lib/ActionRunner-DAxgnKB3.js +1440 -0
- package/dist-lib/AdminCatalogPage.impl-BJGn7EvA.js +441 -0
- package/dist-lib/{AgentChatPanel.impl-BY-Ir7Sh.js → AgentChatPanel.impl-8bw8J-xV.js} +358 -319
- package/dist-lib/AgentOpenFollower.impl-Cga1q7_e.js +81 -0
- package/dist-lib/AssociatedBlock-D6qDYmRO.js +1515 -0
- package/dist-lib/AuthShell-DdiughRT.js +361 -0
- package/dist-lib/ChangePasswordDialog-DFe7lVQg.js +12 -0
- package/dist-lib/ChangePasswordDialog.impl-DtSIaP-A.js +194 -0
- package/dist-lib/CommandPalette.impl-Db3AFA5w.js +383 -0
- package/dist-lib/CopyButton-C0iEvaT1.js +119 -0
- package/dist-lib/DirtyTabsCloseDialog.impl-DWaFaWKn.js +191 -0
- package/dist-lib/{DraggableChildrenTable-CtL7rdT6.js → DraggableChildrenTable-Cy8uevS_.js} +45 -44
- package/dist-lib/DynamicIcon-DuBSz6TZ.js +133 -0
- package/dist-lib/FieldRow-BXBBFOZh.js +157 -0
- package/dist-lib/FilterChips-8fMDBXHp.js +1031 -0
- package/dist-lib/Forgot.impl-CmT5A__V.js +105 -0
- package/dist-lib/{Grid-CYERLdXO.js → Grid-Cg29k0jv.js} +98 -99
- package/dist-lib/Icons-Dzl-AkD_.d.ts +159 -0
- package/dist-lib/Icons-lt-7lhYR.js +151 -0
- package/dist-lib/ImpersonationBanner.impl-CBJJx6an.js +76 -0
- package/dist-lib/ImpersonationStartModal.impl-RaZcsJpG.js +158 -0
- package/dist-lib/Kbd-CNttVu0z.js +23 -0
- package/dist-lib/{LayoutRenderer-B08IJKsZ.js → LayoutRenderer-DEHtYtzV.js} +965 -942
- package/dist-lib/{ListCardsBody-Dje_rays.js → ListCardsBody-BAwFR3yO.js} +46 -52
- package/dist-lib/{MarkdownRenderer-N0IWjTH5.js → MarkdownRenderer-kNEMr6K_.js} +15 -16
- package/dist-lib/MenuItem-CfkVXPvC.js +140 -0
- package/dist-lib/NotFoundPage.impl-ZSBn4WWb.js +68 -0
- package/dist-lib/PageHeader-tw4pX3lI.js +71 -0
- package/dist-lib/PageShell-tI-mm0C5.js +47 -0
- package/dist-lib/Pill-D-wsfRhx.js +42 -0
- package/dist-lib/Preferences.impl-BG9XBZDf.js +162 -0
- package/dist-lib/Profile.impl-CbzSzxyG.js +527 -0
- package/dist-lib/PropertyGridEditor-BTjscqfz.js +4378 -0
- package/dist-lib/RecordHeader-Bv9nJXnG.js +217 -0
- package/dist-lib/RecordIdBadge-C3MgoZvt.js +25 -0
- package/dist-lib/RefreshControl-Ce-T_wSQ.js +195 -0
- package/dist-lib/Reset.impl-Cesyqt5p.js +168 -0
- package/dist-lib/SSOCallbackPage.impl-BC_W9nQA.js +31 -0
- package/dist-lib/SectionCard-VonaiLrx.js +150 -0
- package/dist-lib/SignUp.impl-C1KCQbfZ.js +212 -0
- package/dist-lib/SmartDetailPage.impl-8iOAMYQh.js +1609 -0
- package/dist-lib/SmartListPage.impl-Cc4Zwz5f.js +2818 -0
- package/dist-lib/SmartRecordListPage.impl-xTSohkqG.js +795 -0
- package/dist-lib/{SortHeaderMenu-DKKeCGTH.js → SortHeaderMenu-BKTrq0Wb.js} +23 -23
- package/dist-lib/TenantParamsPage.impl-DMuSs3eP.js +306 -0
- package/dist-lib/TwoFA.impl-BClZ3ndk.js +125 -0
- package/dist-lib/{cardProjection-nveYLvHR.js → cardProjection-Cr7fG6wJ.js} +134 -133
- package/dist-lib/declarion-react.css +1 -1
- package/dist-lib/format-count-CSEFw2ht.js +943 -0
- package/dist-lib/headerActionZone-bef-tZZ7.js +14 -0
- package/dist-lib/{stores/icon-registry.d.ts → icon-registry-CUT4eF63.d.ts} +14 -11
- package/dist-lib/icons.d.ts +20 -4
- package/dist-lib/icons.js +3 -2
- package/dist-lib/index.d.ts +2516 -150
- package/dist-lib/index.js +1532 -5053
- package/dist-lib/page-inset-D_kkVwwN.js +9 -0
- package/dist-lib/page-state-eA6J_KIR.js +124 -0
- package/dist-lib/param-editors-9yJr7xmN.js +201 -0
- package/dist-lib/payload-B2wODLAX.js +86 -0
- package/dist-lib/{peekDraftStore-DSExeoAh.js → peekDraftStore-D4GRsRKW.js} +44 -43
- package/dist-lib/registry-BpzE8-h8.js +119 -0
- package/dist-lib/screen-back-Cs4kzeqD.js +44 -0
- package/dist-lib/testing.d.ts +53 -56
- package/dist-lib/testing.js +54 -55
- package/dist-lib/use-filter-value-labels-DuqvAIVG.js +413 -0
- package/dist-lib/{useAgentConversation-BavrHfrU.js → useAgentConversation-D210VDCQ.js} +158 -169
- package/dist-lib/useAuth-CR2YKKXb.js +49 -0
- package/dist-lib/useBranding-Ckp_AuJb.js +41 -0
- package/dist-lib/useBrandingChrome-bKTXXDLy.js +170 -0
- package/dist-lib/useCurrentLocation-BdngVeQv.js +22 -0
- package/dist-lib/useCurrentScreen--UovgvRj.js +2511 -0
- package/dist-lib/useImpersonation-DNV23Ks1.js +35 -0
- package/dist-lib/useObject-1OCeV34A.js +26 -0
- package/dist-lib/useOwnRefresh-DkOuM4yo.js +435 -0
- package/dist-lib/useParams-ei6w4I7w.js +133 -0
- package/dist-lib/useProperties-CbdhlhZd.js +81 -0
- package/dist-lib/useResponsiveMode-DIR1bZfo.d.ts +1786 -0
- package/dist-lib/useScreenBack-J861tbwn.js +71 -0
- package/dist-lib/useTabNavigate-BZiW4q3M.js +78 -0
- package/dist-lib/useTabTitle-CZZnWIQi.js +22 -0
- package/dist-lib/utils-D_QDpB8_.js +11 -0
- package/dist-lib/{value-By1-WJ8J.js → value-CDCeHgOv.js} +8 -22
- package/dist-lib/{action-dispatch-DbiOpvd6.js → variants-CbAwl3Mn.js} +734 -740
- package/dist-lib/vite/index.d.ts +42 -16
- package/dist-lib/window-election-CHIvIZwx.js +45 -0
- package/package.json +17 -24
- package/dist-lib/DetailAuditStrip-B9p1XhjC.js +0 -288
- package/dist-lib/DynamicIcon-DW5krHuX.js +0 -280
- package/dist-lib/RefreshControl-BEWSHtAC.js +0 -399
- package/dist-lib/SmartDetailPage.impl-CYiM-ITJ.js +0 -1565
- package/dist-lib/SmartListPage.impl-Db_Pv9Xc.js +0 -3051
- package/dist-lib/SmartRecordListPage.impl-hbbLglC1.js +0 -780
- package/dist-lib/api/agents.d.ts +0 -140
- package/dist-lib/api/auth-redirect.d.ts +0 -3
- package/dist-lib/api/auth.d.ts +0 -26
- package/dist-lib/api/batch.d.ts +0 -25
- package/dist-lib/api/client.d.ts +0 -51
- package/dist-lib/api/data.d.ts +0 -153
- package/dist-lib/api/entities.d.ts +0 -149
- package/dist-lib/api/events.d.ts +0 -91
- package/dist-lib/api/params.d.ts +0 -28
- package/dist-lib/api/properties.d.ts +0 -3
- package/dist-lib/api/schema.d.ts +0 -2
- package/dist-lib/api/status.d.ts +0 -2
- package/dist-lib/app.d.ts +0 -1
- package/dist-lib/components/actions/ActionButton.d.ts +0 -18
- package/dist-lib/components/actions/ActionDialog.d.ts +0 -20
- package/dist-lib/components/actions/ActionResultDialog.d.ts +0 -22
- package/dist-lib/components/actions/ActionRunner.d.ts +0 -62
- package/dist-lib/components/actions/ObjectActionBar.d.ts +0 -29
- package/dist-lib/components/actions/PropertyGridEditor.d.ts +0 -20
- package/dist-lib/components/actions/ResponsiveActionBar.d.ts +0 -259
- package/dist-lib/components/actions/RowActionsKebab.d.ts +0 -20
- package/dist-lib/components/agents/AgentChatPanel.d.ts +0 -3
- package/dist-lib/components/agents/AgentChatPanel.impl.d.ts +0 -14
- package/dist-lib/components/agents/AgentConversationDrawer.d.ts +0 -11
- package/dist-lib/components/agents/AgentElicitForm.d.ts +0 -27
- package/dist-lib/components/agents/AgentPicker.d.ts +0 -8
- package/dist-lib/components/agents/transcript-runs.d.ts +0 -29
- package/dist-lib/components/chrome/AssociationTabs.d.ts +0 -9
- package/dist-lib/components/chrome/AuditMetaStrip.d.ts +0 -11
- package/dist-lib/components/chrome/Breadcrumbs.d.ts +0 -14
- package/dist-lib/components/chrome/HighlightsStrip.d.ts +0 -10
- package/dist-lib/components/chrome/PageHeader.d.ts +0 -16
- package/dist-lib/components/chrome/PageShell.d.ts +0 -7
- package/dist-lib/components/chrome/RecordHeader.d.ts +0 -17
- package/dist-lib/components/chrome/headerActionZone.d.ts +0 -27
- package/dist-lib/components/detail-layout/AssociatedBlock.d.ts +0 -20
- package/dist-lib/components/detail-layout/AssociatedToolbar.d.ts +0 -13
- package/dist-lib/components/detail-layout/ChildrenBlock.d.ts +0 -16
- package/dist-lib/components/detail-layout/ChildrenCards.d.ts +0 -2
- package/dist-lib/components/detail-layout/ChildrenList.d.ts +0 -2
- package/dist-lib/components/detail-layout/ChildrenTable.d.ts +0 -2
- package/dist-lib/components/detail-layout/ChildrenTimeline.d.ts +0 -2
- package/dist-lib/components/detail-layout/DetailAuditStrip.d.ts +0 -12
- package/dist-lib/components/detail-layout/DetailHighlights.d.ts +0 -14
- package/dist-lib/components/detail-layout/DraggableChildrenTable.d.ts +0 -16
- package/dist-lib/components/detail-layout/EditableChildrenTable.d.ts +0 -16
- package/dist-lib/components/detail-layout/ErrorSummary.d.ts +0 -11
- package/dist-lib/components/detail-layout/EvidenceBlock.d.ts +0 -6
- package/dist-lib/components/detail-layout/FieldRow.d.ts +0 -23
- package/dist-lib/components/detail-layout/FieldsBlock.d.ts +0 -8
- package/dist-lib/components/detail-layout/LayoutColumn.d.ts +0 -9
- package/dist-lib/components/detail-layout/LayoutRenderer.d.ts +0 -46
- package/dist-lib/components/detail-layout/LayoutRow.d.ts +0 -8
- package/dist-lib/components/detail-layout/LayoutTabs.d.ts +0 -8
- package/dist-lib/components/detail-layout/PropertiesBlock.d.ts +0 -8
- package/dist-lib/components/detail-layout/QuickAddForm.d.ts +0 -10
- package/dist-lib/components/detail-layout/SectionBlock.d.ts +0 -8
- package/dist-lib/components/detail-layout/StatusesBlock.d.ts +0 -8
- package/dist-lib/components/detail-layout/TimelineComposer.d.ts +0 -10
- package/dist-lib/components/detail-layout/blockMeta.d.ts +0 -5
- package/dist-lib/components/detail-layout/index.d.ts +0 -21
- package/dist-lib/components/detail-layout/useManualColumnResize.d.ts +0 -25
- package/dist-lib/components/detail-layout/useQuickAdd.d.ts +0 -16
- package/dist-lib/components/detail-layout/widgets/EntityScorecardWidget.d.ts +0 -2
- package/dist-lib/components/detail-layout/widgets/JsonDiffWidget.d.ts +0 -2
- package/dist-lib/components/detail-layout/widgets/MonacoJson.d.ts +0 -9
- package/dist-lib/components/detail-layout/widgets/WidgetHost.d.ts +0 -9
- package/dist-lib/components/detail-layout/widgets/builtins.d.ts +0 -1
- package/dist-lib/components/detail-layout/widgets/canonicalizeJson.d.ts +0 -1
- package/dist-lib/components/detail-layout/widgets/monacoBootstrap.d.ts +0 -1
- package/dist-lib/components/detail-layout/widgets/registry.d.ts +0 -14
- package/dist-lib/components/fields/BoolField.d.ts +0 -2
- package/dist-lib/components/fields/EmailField.d.ts +0 -2
- package/dist-lib/components/fields/EnumField.d.ts +0 -2
- package/dist-lib/components/fields/IntArrayField.d.ts +0 -2
- package/dist-lib/components/fields/JsonEditor.d.ts +0 -10
- package/dist-lib/components/fields/JsonField.d.ts +0 -3
- package/dist-lib/components/fields/MultilangArrayField.d.ts +0 -2
- package/dist-lib/components/fields/MultilangField.d.ts +0 -2
- package/dist-lib/components/fields/MultilangTextField.d.ts +0 -2
- package/dist-lib/components/fields/NumberField.d.ts +0 -2
- package/dist-lib/components/fields/PasswordField.d.ts +0 -2
- package/dist-lib/components/fields/PhoneField.d.ts +0 -2
- package/dist-lib/components/fields/RefCombobox.d.ts +0 -45
- package/dist-lib/components/fields/RefField.d.ts +0 -2
- package/dist-lib/components/fields/RichTextField.d.ts +0 -2
- package/dist-lib/components/fields/SecretField.d.ts +0 -2
- package/dist-lib/components/fields/StringArrayField.d.ts +0 -2
- package/dist-lib/components/fields/StringField.d.ts +0 -2
- package/dist-lib/components/fields/StructureField.d.ts +0 -2
- package/dist-lib/components/fields/TextField.d.ts +0 -2
- package/dist-lib/components/fields/TimestampField.d.ts +0 -2
- package/dist-lib/components/fields/UrlField.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/badge.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/boolPill.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/code.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/date.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/email.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/emptyCell.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/host-icons.d.ts +0 -17
- package/dist-lib/components/fields/cells/factories/json.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/link.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/markdown.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/markdownPreview.d.ts +0 -9
- package/dist-lib/components/fields/cells/factories/money.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/multilangInline.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/nextRun.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/number.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/passwordMask.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/phone.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/refLink.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/richTextPreview.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/statusPill.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/tagList.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/text.d.ts +0 -2
- package/dist-lib/components/fields/cells/factories/timestamp.d.ts +0 -3
- package/dist-lib/components/fields/cells/factories/url-helpers.d.ts +0 -12
- package/dist-lib/components/fields/cells/factories/url.d.ts +0 -2
- package/dist-lib/components/fields/cells/registry.d.ts +0 -21
- package/dist-lib/components/fields/index.d.ts +0 -28
- package/dist-lib/components/fields/langMap.d.ts +0 -2
- package/dist-lib/components/fields/secretValue.d.ts +0 -2
- package/dist-lib/components/file-widgets/CircleImage.d.ts +0 -2
- package/dist-lib/components/file-widgets/DocumentCard.d.ts +0 -2
- package/dist-lib/components/file-widgets/FileList.d.ts +0 -2
- package/dist-lib/components/file-widgets/Grid.d.ts +0 -2
- package/dist-lib/components/file-widgets/GridLazy.d.ts +0 -2
- package/dist-lib/components/file-widgets/ImageWidget.d.ts +0 -12
- package/dist-lib/components/file-widgets/LabeledSlots.d.ts +0 -2
- package/dist-lib/components/file-widgets/SquareImage.d.ts +0 -2
- package/dist-lib/components/file-widgets/UnknownFileWidget.d.ts +0 -3
- package/dist-lib/components/file-widgets/UploadFailureText.d.ts +0 -4
- package/dist-lib/components/file-widgets/WideBanner.d.ts +0 -2
- package/dist-lib/components/file-widgets/builtins.d.ts +0 -1
- package/dist-lib/components/file-widgets/cropper.d.ts +0 -14
- package/dist-lib/components/file-widgets/draft-scope.d.ts +0 -22
- package/dist-lib/components/file-widgets/helpers.d.ts +0 -15
- package/dist-lib/components/file-widgets/host.d.ts +0 -28
- package/dist-lib/components/file-widgets/index.d.ts +0 -16
- package/dist-lib/components/file-widgets/payload.d.ts +0 -21
- package/dist-lib/components/file-widgets/registry.d.ts +0 -5
- package/dist-lib/components/file-widgets/types.d.ts +0 -17
- package/dist-lib/components/file-widgets/upload.d.ts +0 -45
- package/dist-lib/components/file-widgets/useEmbedFileSrc.d.ts +0 -42
- package/dist-lib/components/file-widgets/value.d.ts +0 -4
- package/dist-lib/components/filters/FilterChips.d.ts +0 -14
- package/dist-lib/components/filters/FilterDrawer.d.ts +0 -32
- package/dist-lib/components/filters/filter-op-label.d.ts +0 -3
- package/dist-lib/components/layout/CommandPalette.d.ts +0 -21
- package/dist-lib/components/layout/DirtyTabsCloseDialog.d.ts +0 -9
- package/dist-lib/components/layout/ImpersonationBanner.d.ts +0 -11
- package/dist-lib/components/layout/ImpersonationFrame.d.ts +0 -11
- package/dist-lib/components/layout/ImpersonationStartModal.d.ts +0 -22
- package/dist-lib/components/layout/Layout.d.ts +0 -6
- package/dist-lib/components/layout/Rail.d.ts +0 -22
- package/dist-lib/components/layout/Sidebar.d.ts +0 -12
- package/dist-lib/components/layout/TabStrip.d.ts +0 -6
- package/dist-lib/components/layout/TenantChip.d.ts +0 -26
- package/dist-lib/components/layout/TopBar.d.ts +0 -22
- package/dist-lib/components/layout/tab-close.d.ts +0 -13
- package/dist-lib/components/list/ColumnPicker.d.ts +0 -20
- package/dist-lib/components/list/InlineEditCell.d.ts +0 -15
- package/dist-lib/components/list/PeekFieldCell.d.ts +0 -16
- package/dist-lib/components/list/QuickPeek.d.ts +0 -59
- package/dist-lib/components/list/ViewSwitcher.d.ts +0 -24
- package/dist-lib/components/list/peekDraftStore.d.ts +0 -6
- package/dist-lib/components/pages/AdminCatalogPage.d.ts +0 -1
- package/dist-lib/components/pages/DocumentsMenu.d.ts +0 -21
- package/dist-lib/components/pages/ExportMenu.d.ts +0 -30
- package/dist-lib/components/pages/NotFoundPage.d.ts +0 -1
- package/dist-lib/components/pages/RecordDocumentsPanel.d.ts +0 -41
- package/dist-lib/components/pages/SSOCallbackPage.d.ts +0 -1
- package/dist-lib/components/pages/SmartDetailPage.d.ts +0 -2
- package/dist-lib/components/pages/SmartDetailPage.impl.d.ts +0 -4
- package/dist-lib/components/pages/SmartListPage.d.ts +0 -2
- package/dist-lib/components/pages/SmartListPage.impl.d.ts +0 -4
- package/dist-lib/components/pages/SmartRecordListPage.d.ts +0 -2
- package/dist-lib/components/pages/SmartRecordListPage.impl.d.ts +0 -4
- package/dist-lib/components/pages/auth/AuthShell.d.ts +0 -18
- package/dist-lib/components/pages/auth/Forgot.d.ts +0 -1
- package/dist-lib/components/pages/auth/Reset.d.ts +0 -1
- package/dist-lib/components/pages/auth/SignIn.d.ts +0 -1
- package/dist-lib/components/pages/auth/SignUp.d.ts +0 -1
- package/dist-lib/components/pages/auth/TwoFA.d.ts +0 -1
- package/dist-lib/components/pages/auth/icons.d.ts +0 -6
- package/dist-lib/components/pages/exportRequest.d.ts +0 -69
- package/dist-lib/components/pages/list/DataCell.d.ts +0 -4
- package/dist-lib/components/pages/list/DeleteViewDialog.d.ts +0 -8
- package/dist-lib/components/pages/list/ListCardRow.d.ts +0 -39
- package/dist-lib/components/pages/list/ListCardsBody.d.ts +0 -33
- package/dist-lib/components/pages/list/ListFloatbar.d.ts +0 -29
- package/dist-lib/components/pages/list/ListFooter.d.ts +0 -26
- package/dist-lib/components/pages/list/ListHeader.d.ts +0 -26
- package/dist-lib/components/pages/list/ListNoRows.d.ts +0 -31
- package/dist-lib/components/pages/list/ListTable.d.ts +0 -33
- package/dist-lib/components/pages/list/ListTableRow.d.ts +0 -17
- package/dist-lib/components/pages/list/ListToolbar.d.ts +0 -46
- package/dist-lib/components/pages/list/ListUrlBanner.d.ts +0 -10
- package/dist-lib/components/pages/list/RowActionsCell.d.ts +0 -34
- package/dist-lib/components/pages/list/RowContextMenu.d.ts +0 -28
- package/dist-lib/components/pages/list/SaveViewDialog.d.ts +0 -10
- package/dist-lib/components/pages/list/SortHeaderMenu.d.ts +0 -14
- package/dist-lib/components/pages/list/cardProjection.d.ts +0 -67
- package/dist-lib/components/pages/list/column-sizing.d.ts +0 -14
- package/dist-lib/components/pages/list/columns.d.ts +0 -46
- package/dist-lib/components/pages/list/filter-meta.d.ts +0 -25
- package/dist-lib/components/pages/list/page-size.d.ts +0 -3
- package/dist-lib/components/pages/list/sortable-header.d.ts +0 -2
- package/dist-lib/components/pages/list/table-features.d.ts +0 -14
- package/dist-lib/components/pages/list/use-filter-value-labels.d.ts +0 -24
- package/dist-lib/components/pages/list/useActiveView.d.ts +0 -45
- package/dist-lib/components/pages/list/useHeaderReorder.d.ts +0 -26
- package/dist-lib/components/pages/list/useListColumnLayout.d.ts +0 -38
- package/dist-lib/components/pages/list/useListQuery.d.ts +0 -67
- package/dist-lib/components/pages/list/useListRowInteraction.d.ts +0 -61
- package/dist-lib/components/pages/list/useListSelection.d.ts +0 -31
- package/dist-lib/components/pages/list/useListSort.d.ts +0 -46
- package/dist-lib/components/pages/list/useListViews.d.ts +0 -57
- package/dist-lib/components/pages/list/useRowMenu.d.ts +0 -46
- package/dist-lib/components/pages/profile/Preferences.d.ts +0 -1
- package/dist-lib/components/pages/profile/Profile.d.ts +0 -7
- package/dist-lib/components/pages/tenant-params/TenantParamsPage.d.ts +0 -2
- package/dist-lib/components/params/ParamsBlock.d.ts +0 -13
- package/dist-lib/components/params/param-editors.d.ts +0 -20
- package/dist-lib/components/primitives/Avatar.d.ts +0 -6
- package/dist-lib/components/primitives/BoolToggle.d.ts +0 -7
- package/dist-lib/components/primitives/BrandGlyph.d.ts +0 -8
- package/dist-lib/components/primitives/BrandLogo.d.ts +0 -12
- package/dist-lib/components/primitives/Btn.d.ts +0 -19
- package/dist-lib/components/primitives/Check.d.ts +0 -7
- package/dist-lib/components/primitives/Chip.d.ts +0 -9
- package/dist-lib/components/primitives/ClassifiedFieldLocked.d.ts +0 -9
- package/dist-lib/components/primitives/Dropdown.d.ts +0 -20
- package/dist-lib/components/primitives/Fields.d.ts +0 -109
- package/dist-lib/components/primitives/HoverCard.d.ts +0 -15
- package/dist-lib/components/primitives/IconBtn.d.ts +0 -11
- package/dist-lib/components/primitives/Icons.d.ts +0 -136
- package/dist-lib/components/primitives/Kbd.d.ts +0 -4
- package/dist-lib/components/primitives/MenuItem.d.ts +0 -14
- package/dist-lib/components/primitives/Pill.d.ts +0 -11
- package/dist-lib/components/primitives/RecordIdBadge.d.ts +0 -8
- package/dist-lib/components/primitives/RowField.d.ts +0 -10
- package/dist-lib/components/primitives/SectionCard.d.ts +0 -24
- package/dist-lib/components/primitives/Spinner.d.ts +0 -3
- package/dist-lib/components/primitives/Tooltip.d.ts +0 -34
- package/dist-lib/components/primitives/dataTableStyles.d.ts +0 -4
- package/dist-lib/components/primitives/index.d.ts +0 -37
- package/dist-lib/components/shared/ChangePasswordDialog.d.ts +0 -9
- package/dist-lib/components/shared/ConfirmDialog.d.ts +0 -11
- package/dist-lib/components/shared/CopyButton.d.ts +0 -8
- package/dist-lib/components/shared/DynamicIcon.d.ts +0 -20
- package/dist-lib/components/shared/EmptyState.d.ts +0 -9
- package/dist-lib/components/shared/ErrorBoundary.d.ts +0 -17
- package/dist-lib/components/shared/LoadingSkeleton.d.ts +0 -6
- package/dist-lib/components/shared/LucideIcon.d.ts +0 -16
- package/dist-lib/components/shared/Markdown.d.ts +0 -3
- package/dist-lib/components/shared/MarkdownRenderer.d.ts +0 -11
- package/dist-lib/components/shared/RefreshControl.d.ts +0 -25
- package/dist-lib/components/shared/StatusGroupsDisplay.d.ts +0 -11
- package/dist-lib/components/shared/StatusStepper.d.ts +0 -13
- package/dist-lib/components/shared/toast/DeclarionToast.d.ts +0 -31
- package/dist-lib/components/shared/useOwnRefresh.d.ts +0 -9
- package/dist-lib/embed/EmbedAuthBootstrap.d.ts +0 -8
- package/dist-lib/embed/EmbedContext.d.ts +0 -50
- package/dist-lib/embed/EmbedDirtyReporter.d.ts +0 -10
- package/dist-lib/embed/EmbedHistoryTracker.d.ts +0 -1
- package/dist-lib/embed/EmbedLocationReporter.d.ts +0 -8
- package/dist-lib/embed/EmbedResizeReporter.d.ts +0 -6
- package/dist-lib/embed/EmbedUnsavedGuard.d.ts +0 -7
- package/dist-lib/embed/embed-dirty.d.ts +0 -24
- package/dist-lib/embed/embed-history.d.ts +0 -19
- package/dist-lib/embed/embed-nav-guard.d.ts +0 -20
- package/dist-lib/embed/file-src.d.ts +0 -63
- package/dist-lib/embed/handshake.d.ts +0 -57
- package/dist-lib/embed/index.d.ts +0 -19
- package/dist-lib/embed/params.d.ts +0 -75
- package/dist-lib/embed/protocol.d.ts +0 -165
- package/dist-lib/embed/screen-location.d.ts +0 -50
- package/dist-lib/embed/theme.d.ts +0 -34
- package/dist-lib/embed/token.d.ts +0 -57
- package/dist-lib/embed/useEmbedNavigate.d.ts +0 -48
- package/dist-lib/embed/useGlobalLinkInterceptor.d.ts +0 -66
- package/dist-lib/failure-BT54OLHy.js +0 -158
- package/dist-lib/format-count-DLFCdtME.js +0 -1771
- package/dist-lib/hooks/useActionData.d.ts +0 -61
- package/dist-lib/hooks/useAgentConversation.d.ts +0 -24
- package/dist-lib/hooks/useAllEntityData.d.ts +0 -16
- package/dist-lib/hooks/useAssociatedData.d.ts +0 -10
- package/dist-lib/hooks/useAuth.d.ts +0 -22
- package/dist-lib/hooks/useBranding.d.ts +0 -8
- package/dist-lib/hooks/useBrandingChrome.d.ts +0 -59
- package/dist-lib/hooks/useChildrenData.d.ts +0 -3
- package/dist-lib/hooks/useColumns.d.ts +0 -13
- package/dist-lib/hooks/useCurrentScreen.d.ts +0 -34
- package/dist-lib/hooks/useCursorEntityData.d.ts +0 -79
- package/dist-lib/hooks/useDebounce.d.ts +0 -1
- package/dist-lib/hooks/useEntity.d.ts +0 -2
- package/dist-lib/hooks/useEntityData.d.ts +0 -41
- package/dist-lib/hooks/useFilters.d.ts +0 -14
- package/dist-lib/hooks/useImpersonation.d.ts +0 -23
- package/dist-lib/hooks/useLanguage.d.ts +0 -4
- package/dist-lib/hooks/useLiveObject.d.ts +0 -9
- package/dist-lib/hooks/useLongPress.d.ts +0 -29
- package/dist-lib/hooks/useMutations.d.ts +0 -13
- package/dist-lib/hooks/useObject.d.ts +0 -11
- package/dist-lib/hooks/useObjectStatus.d.ts +0 -5
- package/dist-lib/hooks/usePageState.d.ts +0 -32
- package/dist-lib/hooks/usePageStateRuntime.d.ts +0 -27
- package/dist-lib/hooks/usePageStateTtl.d.ts +0 -11
- package/dist-lib/hooks/useParams.d.ts +0 -49
- package/dist-lib/hooks/useProperties.d.ts +0 -5
- package/dist-lib/hooks/useRealtimeThresholds.d.ts +0 -1
- package/dist-lib/hooks/useRegisterScreenTab.d.ts +0 -11
- package/dist-lib/hooks/useResponsiveMode.d.ts +0 -27
- package/dist-lib/hooks/useSSE.d.ts +0 -31
- package/dist-lib/hooks/useSchema.d.ts +0 -1
- package/dist-lib/hooks/useScreen.d.ts +0 -2
- package/dist-lib/hooks/useScreenBack.d.ts +0 -21
- package/dist-lib/hooks/useScreenTab.d.ts +0 -10
- package/dist-lib/hooks/useTabNavigate.d.ts +0 -34
- package/dist-lib/hooks/useTabSearchMirror.d.ts +0 -1
- package/dist-lib/hooks/useTabTitle.d.ts +0 -2
- package/dist-lib/hooks/useText.d.ts +0 -3
- package/dist-lib/hooks/useTimelineData.d.ts +0 -10
- package/dist-lib/hooks/useVersionWatcher.d.ts +0 -30
- package/dist-lib/hooks/useViews.d.ts +0 -26
- package/dist-lib/lib/action-dispatch.d.ts +0 -8
- package/dist-lib/lib/actions.d.ts +0 -254
- package/dist-lib/lib/anchor.d.ts +0 -36
- package/dist-lib/lib/brand-tokens.d.ts +0 -43
- package/dist-lib/lib/branding.d.ts +0 -20
- package/dist-lib/lib/canonical-url.d.ts +0 -27
- package/dist-lib/lib/capabilityPrefetch.d.ts +0 -6
- package/dist-lib/lib/child-config.d.ts +0 -24
- package/dist-lib/lib/children-validation.d.ts +0 -5
- package/dist-lib/lib/decimal-text.d.ts +0 -1
- package/dist-lib/lib/display-value.d.ts +0 -1
- package/dist-lib/lib/document-templates.d.ts +0 -11
- package/dist-lib/lib/download.d.ts +0 -21
- package/dist-lib/lib/evidence-verdict.d.ts +0 -11
- package/dist-lib/lib/failure.d.ts +0 -2
- package/dist-lib/lib/field-classification.d.ts +0 -61
- package/dist-lib/lib/field-regions.d.ts +0 -8
- package/dist-lib/lib/filter-evaluator.d.ts +0 -16
- package/dist-lib/lib/filters.d.ts +0 -93
- package/dist-lib/lib/format-count.d.ts +0 -41
- package/dist-lib/lib/html-state.d.ts +0 -11
- package/dist-lib/lib/language.d.ts +0 -19
- package/dist-lib/lib/longPressGesture.d.ts +0 -55
- package/dist-lib/lib/mass-edit.d.ts +0 -32
- package/dist-lib/lib/page-inset.d.ts +0 -3
- package/dist-lib/lib/quick-add.d.ts +0 -2
- package/dist-lib/lib/realtime-query-keys.d.ts +0 -22
- package/dist-lib/lib/realtime-reconcile.d.ts +0 -33
- package/dist-lib/lib/realtime-resync.d.ts +0 -23
- package/dist-lib/lib/record-documents-key.d.ts +0 -1
- package/dist-lib/lib/rich-text.d.ts +0 -14
- package/dist-lib/lib/rowClickGesture.d.ts +0 -26
- package/dist-lib/lib/safe-url.d.ts +0 -15
- package/dist-lib/lib/schema-routing.d.ts +0 -3
- package/dist-lib/lib/screen-back.d.ts +0 -70
- package/dist-lib/lib/scroll-restoration.d.ts +0 -90
- package/dist-lib/lib/size-value.d.ts +0 -16
- package/dist-lib/lib/sort.d.ts +0 -72
- package/dist-lib/lib/timestamp.d.ts +0 -53
- package/dist-lib/lib/toast.d.ts +0 -49
- package/dist-lib/lib/ui-actions.d.ts +0 -12
- package/dist-lib/lib/utils.d.ts +0 -9
- package/dist-lib/lib/variants.d.ts +0 -7
- package/dist-lib/lib/versionTracker.d.ts +0 -72
- package/dist-lib/lib/viewport-category.d.ts +0 -44
- package/dist-lib/main.d.ts +0 -1
- package/dist-lib/registry-CRPxNbkk.js +0 -1956
- package/dist-lib/safe-url-oSJw5pzO.js +0 -34
- package/dist-lib/stores/auth.d.ts +0 -16
- package/dist-lib/stores/list-layout.d.ts +0 -85
- package/dist-lib/stores/page-state.d.ts +0 -61
- package/dist-lib/stores/preferences.d.ts +0 -37
- package/dist-lib/stores/realtime.d.ts +0 -96
- package/dist-lib/stores/screen-registry.d.ts +0 -17
- package/dist-lib/stores/tabs.d.ts +0 -73
- package/dist-lib/types/api.d.ts +0 -580
- package/dist-lib/types/fieldType.d.ts +0 -2
- package/dist-lib/types/files.d.ts +0 -79
- package/dist-lib/types/ordmap.d.ts +0 -39
- package/dist-lib/types/schema.d.ts +0 -1089
- package/dist-lib/useCurrentScreen-BPq7HMF1.js +0 -7840
- package/dist-lib/useListQuery-CG1WM4cv.js +0 -103
- package/dist-lib/useOwnRefresh-C18iWRgr.js +0 -1167
- package/dist-lib/useProperties-C35JrjwQ.js +0 -83
- package/dist-lib/useTabSearchMirror-DKktWWLB.js +0 -175
- package/dist-lib/useText-BFDCTUSo.js +0 -952
- package/dist-lib/vite/fingerprint-plugin.d.ts +0 -44
|
@@ -1,1089 +0,0 @@
|
|
|
1
|
-
import { OrderedMap } from "./ordmap";
|
|
2
|
-
import type { FileFieldDef } from "./files";
|
|
3
|
-
import type { IconDef } from "../stores/icon-registry.d.ts";
|
|
4
|
-
import type { FilterNode } from "../lib/filters.d.ts";
|
|
5
|
-
import type { TextFn } from "../lib/language.d.ts";
|
|
6
|
-
export { OrderedMap };
|
|
7
|
-
export type { IconDef };
|
|
8
|
-
export type LocalizedString = Record<string, string>;
|
|
9
|
-
/**
|
|
10
|
-
* Where a `url` cell fetches an unknown host's site icon from.
|
|
11
|
-
*
|
|
12
|
-
* This is an outbound-request policy, not a visual style:
|
|
13
|
-
* google — one request per rendered hostname to www.google.com.
|
|
14
|
-
* direct — /favicon.ico from the site's own origin.
|
|
15
|
-
* none — no request at all; render the globe placeholder.
|
|
16
|
-
*
|
|
17
|
-
* Declared per column by `field.display.favicon_source`, and nowhere else -
|
|
18
|
-
* there is no parameter. Absent = `google`, today's rendered default. The
|
|
19
|
-
* server accepts exactly these three values.
|
|
20
|
-
*/
|
|
21
|
-
export type FaviconSource = "google" | "direct" | "none";
|
|
22
|
-
/**
|
|
23
|
-
* Per-entity empty-state copy declared in the manifest under
|
|
24
|
-
* `display.empty_state`. Title and Body are localized; LearnMoreURL is a
|
|
25
|
-
* plain string. The SDK falls back to a generic "No <plural> yet" derived
|
|
26
|
-
* from `display.name_plural` when this is absent. Read-only entities never
|
|
27
|
-
* render the legacy "Create your first..." copy regardless of EmptyStateDef.
|
|
28
|
-
*/
|
|
29
|
-
export interface EmptyStateDef {
|
|
30
|
-
title?: LocalizedString;
|
|
31
|
-
body?: LocalizedString;
|
|
32
|
-
learn_more_url?: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Reserved sentinel value for Screen.detail_screen (list screens). Disables
|
|
36
|
-
* row-click navigation even when the entity declares a canonical detail. Paired
|
|
37
|
-
* with Go's engine.DetailScreenNone - keep the literal "none" in sync.
|
|
38
|
-
*/
|
|
39
|
-
export declare const DETAIL_SCREEN_NONE = "none";
|
|
40
|
-
export declare const DISPLAY_KEY = "$display";
|
|
41
|
-
export declare function getDisplayValue(t: TextFn, row: Record<string, unknown> | null | undefined, entity: {
|
|
42
|
-
display?: {
|
|
43
|
-
display_field?: string;
|
|
44
|
-
};
|
|
45
|
-
fields?: {
|
|
46
|
-
get(name: string): EntityField | undefined;
|
|
47
|
-
};
|
|
48
|
-
} | null | undefined): string | undefined;
|
|
49
|
-
export declare function resolveRefRecordLabel(t: TextFn, record: Record<string, unknown>, displayKey: string | undefined, fallback: string): string;
|
|
50
|
-
export declare function screenTitleForPath(t: TextFn, pathname: string, screens: Record<string, Screen> | undefined, entities?: Record<string, Entity>): {
|
|
51
|
-
title: string;
|
|
52
|
-
icon?: string;
|
|
53
|
-
exact: boolean;
|
|
54
|
-
} | undefined;
|
|
55
|
-
export declare function fieldDisplayName(t: TextFn, field: EntityField, fieldName: string, entities?: Record<string, Entity>): string;
|
|
56
|
-
export interface RefDisplay {
|
|
57
|
-
field: string;
|
|
58
|
-
}
|
|
59
|
-
export interface RefConfig {
|
|
60
|
-
entity: string;
|
|
61
|
-
field?: string;
|
|
62
|
-
display?: RefDisplay;
|
|
63
|
-
fields?: string[];
|
|
64
|
-
/** Narrows the option set offered by this ref's entity-select dropdown (edit
|
|
65
|
-
* combobox or action-param picker) to rows matching these conditions - e.g.
|
|
66
|
-
* only `is_active = true`. Read-side only (not a write/security boundary).
|
|
67
|
-
* The shared filter tree, so a declared narrowing takes the same shapes a
|
|
68
|
-
* list query's `filters` takes. */
|
|
69
|
-
options_filter?: FilterNode[];
|
|
70
|
-
}
|
|
71
|
-
/** One declared filter-only option ({code, label}). `code` is stored into the
|
|
72
|
-
* filter when chosen (a literal or a `$user.*` token resolved server-side);
|
|
73
|
-
* `label` is the localized display string. Mirrors engine.FilterSpecialValue. */
|
|
74
|
-
export interface FilterSpecialValue {
|
|
75
|
-
code: string;
|
|
76
|
-
label: LocalizedString;
|
|
77
|
-
}
|
|
78
|
-
/** Per-screen override of a field's filter_special_values, keyed in
|
|
79
|
-
* Screen.filter_special_values by the filter field code. */
|
|
80
|
-
export interface ScreenFilterSpecialValues {
|
|
81
|
-
mode?: "append" | "replace" | "clear";
|
|
82
|
-
values?: FilterSpecialValue[];
|
|
83
|
-
}
|
|
84
|
-
/** Normalizes a handler-param ref (scalar entity-code string OR structured
|
|
85
|
-
* object) into a RefConfig. One helper shared by filters, SmartDetailPage
|
|
86
|
-
* fields, and ActionDialog params so the scalar shorthand and structured form
|
|
87
|
-
* reach the relation combobox identically. */
|
|
88
|
-
export declare function normalizeRefConfig(ref: string | RefConfig | undefined): RefConfig | undefined;
|
|
89
|
-
/** Computes the effective filter_special_values for a field on a screen by
|
|
90
|
-
* merging the field-level list with an optional screen override per its mode
|
|
91
|
-
* (append [default] / replace / clear). Pure; mirrors the engine's
|
|
92
|
-
* EffectiveFilterSpecialValues so the SDK and loader agree. */
|
|
93
|
-
export declare function effectiveFilterSpecialValues(fieldValues: FilterSpecialValue[] | undefined, override: ScreenFilterSpecialValues | undefined): FilterSpecialValue[];
|
|
94
|
-
export interface UnitConfig {
|
|
95
|
-
storage: string;
|
|
96
|
-
display?: string;
|
|
97
|
-
}
|
|
98
|
-
export interface EntityField {
|
|
99
|
-
/**
|
|
100
|
-
* Populated by the schema hydrator from the enclosing map key. Tests and
|
|
101
|
-
* fixtures may omit it; production code always receives it set.
|
|
102
|
-
*/
|
|
103
|
-
name?: string;
|
|
104
|
-
type: string;
|
|
105
|
-
/**
|
|
106
|
-
* Computed and stamped by the server: whether a CROSS-store read can order by
|
|
107
|
-
* this field. Meaningful only where the entity's list_pagination is "cursor".
|
|
108
|
-
* Asked rather than re-derived here - a second copy of the backend's type
|
|
109
|
-
* allowlist drifts the day either side moves, and the symptom is an operator
|
|
110
|
-
* clicking a column header and getting a raw backend error in place of the
|
|
111
|
-
* table.
|
|
112
|
-
*/
|
|
113
|
-
cross_store_sortable?: boolean;
|
|
114
|
-
required?: boolean;
|
|
115
|
-
primary?: boolean;
|
|
116
|
-
auto?: boolean;
|
|
117
|
-
readonly?: boolean;
|
|
118
|
-
source?: string;
|
|
119
|
-
timezone?: string;
|
|
120
|
-
precision?: number;
|
|
121
|
-
scale?: number;
|
|
122
|
-
unit?: UnitConfig;
|
|
123
|
-
default?: unknown;
|
|
124
|
-
display?: {
|
|
125
|
-
name: LocalizedString;
|
|
126
|
-
description?: LocalizedString;
|
|
127
|
-
width?: number;
|
|
128
|
-
widget?: string;
|
|
129
|
-
is_listable?: boolean;
|
|
130
|
-
is_filterable?: boolean;
|
|
131
|
-
list_preview?: {
|
|
132
|
-
max_chars: number;
|
|
133
|
-
};
|
|
134
|
-
ref_display_field?: string;
|
|
135
|
-
span?: number | "full";
|
|
136
|
-
bool_labels?: {
|
|
137
|
-
true: LocalizedString;
|
|
138
|
-
false: LocalizedString;
|
|
139
|
-
};
|
|
140
|
-
value_map?: Record<string, {
|
|
141
|
-
label?: LocalizedString;
|
|
142
|
-
color?: string;
|
|
143
|
-
}>;
|
|
144
|
-
currency?: string;
|
|
145
|
-
currency_field?: string;
|
|
146
|
-
currency_display?: "symbol" | "narrow_symbol" | "code" | "name";
|
|
147
|
-
favicon_source?: FaviconSource;
|
|
148
|
-
};
|
|
149
|
-
values?: Array<{
|
|
150
|
-
code: string;
|
|
151
|
-
name: LocalizedString;
|
|
152
|
-
description?: LocalizedString;
|
|
153
|
-
color?: string;
|
|
154
|
-
}>;
|
|
155
|
-
enum?: string;
|
|
156
|
-
files?: FileFieldDef;
|
|
157
|
-
ref?: RefConfig;
|
|
158
|
-
/** Filter-only declared options (e.g. "Myself" -> $user.id) surfaced in this
|
|
159
|
-
* field's filter control. Inert everywhere else. A screen MAY override these
|
|
160
|
-
* per-screen via Screen.filter_special_values. */
|
|
161
|
-
filter_special_values?: FilterSpecialValue[];
|
|
162
|
-
structure?: string;
|
|
163
|
-
array?: boolean;
|
|
164
|
-
copyable?: boolean;
|
|
165
|
-
/**
|
|
166
|
-
* Names the data_classifications tier gating reads + writes on this field. Read-side: stripped from the
|
|
167
|
-
* row when the caller lacks `classification:<tier>:read`. Write-side:
|
|
168
|
-
* 422 FIELDS_FORBIDDEN when the caller writes the key without
|
|
169
|
-
* `classification:<tier>:write`. Frontend reads the tier's localized
|
|
170
|
-
* display name from the top-level `classifications:` map and
|
|
171
|
-
* cross-references `schema.entities.<code>.field_access.<field>` for
|
|
172
|
-
* the per-caller decision.
|
|
173
|
-
*/
|
|
174
|
-
classification?: string;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Per-caller classification decision for one classified field on one
|
|
178
|
-
* entity. Populated by the schema endpoint
|
|
179
|
-
* from the caller's grants + authority tier; the frontend reads this
|
|
180
|
-
* to render the locked-widget badge ("🔒 Compensation"), disable write
|
|
181
|
-
* inputs, and surface the operator-facing `required_permission` hint
|
|
182
|
-
* to the user (e.g. "Ask your admin to grant you
|
|
183
|
-
* classification:compensation:read").
|
|
184
|
-
*/
|
|
185
|
-
export interface FieldAccessInfo {
|
|
186
|
-
read: "granted" | "denied";
|
|
187
|
-
write: "granted" | "denied";
|
|
188
|
-
classification: string;
|
|
189
|
-
/** Only set when read OR write is denied — the exact grant string an
|
|
190
|
-
* administrator needs to add to a role to unlock this field. */
|
|
191
|
-
required_permission?: string;
|
|
192
|
-
}
|
|
193
|
-
export interface StructureDef {
|
|
194
|
-
name: LocalizedString;
|
|
195
|
-
description?: LocalizedString;
|
|
196
|
-
fields: OrderedMap<EntityField>;
|
|
197
|
-
}
|
|
198
|
-
export type ChildDisplayMode = "table" | "timeline" | "list" | "cards";
|
|
199
|
-
export interface TimelineConfig {
|
|
200
|
-
type_field?: string;
|
|
201
|
-
time_field?: string;
|
|
202
|
-
summary_field?: string;
|
|
203
|
-
content_field?: string;
|
|
204
|
-
author_field?: string;
|
|
205
|
-
direction_field?: string;
|
|
206
|
-
intent_field?: string;
|
|
207
|
-
scroll?: boolean;
|
|
208
|
-
auto_scroll?: "none" | "bottom" | "top";
|
|
209
|
-
}
|
|
210
|
-
export interface CardsConfig {
|
|
211
|
-
columns_count?: number;
|
|
212
|
-
header_field?: string;
|
|
213
|
-
badge_field?: string;
|
|
214
|
-
}
|
|
215
|
-
export interface ChildQuickAdd {
|
|
216
|
-
fields: string[];
|
|
217
|
-
defaults?: Record<string, unknown>;
|
|
218
|
-
placeholder?: LocalizedString;
|
|
219
|
-
}
|
|
220
|
-
export interface ChildDisplay {
|
|
221
|
-
name: LocalizedString;
|
|
222
|
-
description?: LocalizedString;
|
|
223
|
-
icon?: string;
|
|
224
|
-
mode?: ChildDisplayMode;
|
|
225
|
-
columns?: string[];
|
|
226
|
-
sort?: string;
|
|
227
|
-
limit?: number;
|
|
228
|
-
timeline?: TimelineConfig;
|
|
229
|
-
cards?: CardsConfig;
|
|
230
|
-
editable?: boolean;
|
|
231
|
-
searchable?: boolean;
|
|
232
|
-
filters?: string[];
|
|
233
|
-
position_field?: string;
|
|
234
|
-
/**
|
|
235
|
-
* Row interaction for `mode: table`.
|
|
236
|
-
* - `navigate`: identity cell (first column) is a link to the child's
|
|
237
|
-
* detail; other cells read-only. Default for associated entities
|
|
238
|
-
* (child has its own detail screen).
|
|
239
|
-
* - `inline_edit`: click a cell to edit it; typing auto-saves after a
|
|
240
|
-
* 500ms debounce. One active cell at a time.
|
|
241
|
-
* - `row_edit`: a per-row Edit button puts the whole row into edit mode
|
|
242
|
-
* (all editable cells become inputs); an explicit Confirm/Cancel pair
|
|
243
|
-
* commits or discards. Nothing persists until Confirm - same flow as
|
|
244
|
-
* the "Add row" draft.
|
|
245
|
-
* - `readonly`: pure display.
|
|
246
|
-
*/
|
|
247
|
-
interaction?: "navigate" | "inline_edit" | "row_edit" | "readonly";
|
|
248
|
-
}
|
|
249
|
-
export interface ChildRelation {
|
|
250
|
-
entity: string;
|
|
251
|
-
foreign_key: string | string[];
|
|
252
|
-
display?: ChildDisplay;
|
|
253
|
-
quick_add?: ChildQuickAdd;
|
|
254
|
-
}
|
|
255
|
-
export interface StatusDef {
|
|
256
|
-
code: string;
|
|
257
|
-
name: LocalizedString;
|
|
258
|
-
description?: LocalizedString;
|
|
259
|
-
color?: string;
|
|
260
|
-
is_final?: boolean;
|
|
261
|
-
}
|
|
262
|
-
export interface StatusGroupDef {
|
|
263
|
-
name: LocalizedString;
|
|
264
|
-
description?: LocalizedString;
|
|
265
|
-
is_main?: boolean;
|
|
266
|
-
initial: string;
|
|
267
|
-
statuses: StatusDef[];
|
|
268
|
-
transitions?: Record<string, string[]>;
|
|
269
|
-
display_mode?: "pill" | "stepper";
|
|
270
|
-
}
|
|
271
|
-
export interface PropertyDef {
|
|
272
|
-
name: LocalizedString;
|
|
273
|
-
description?: LocalizedString;
|
|
274
|
-
type: string;
|
|
275
|
-
display?: EntityField["display"];
|
|
276
|
-
values?: EntityField["values"];
|
|
277
|
-
enum?: string;
|
|
278
|
-
ref?: RefConfig;
|
|
279
|
-
structure?: string;
|
|
280
|
-
readonly?: boolean;
|
|
281
|
-
}
|
|
282
|
-
export declare function propertyToField(prop: PropertyDef): EntityField;
|
|
283
|
-
export interface EnumDef {
|
|
284
|
-
name: LocalizedString;
|
|
285
|
-
description?: LocalizedString;
|
|
286
|
-
values: Array<{
|
|
287
|
-
code: string;
|
|
288
|
-
name: LocalizedString;
|
|
289
|
-
description?: LocalizedString;
|
|
290
|
-
color?: string;
|
|
291
|
-
}>;
|
|
292
|
-
}
|
|
293
|
-
export interface ParameterDef {
|
|
294
|
-
name: LocalizedString;
|
|
295
|
-
description?: LocalizedString;
|
|
296
|
-
type: string;
|
|
297
|
-
structure?: string;
|
|
298
|
-
default?: unknown;
|
|
299
|
-
is_public?: boolean;
|
|
300
|
-
category?: string;
|
|
301
|
-
/** Override scopes accepted on writes. Subset of: env, tenant, role, user, object. Empty = all. */
|
|
302
|
-
scopes?: string[];
|
|
303
|
-
/** Members of a closed type - `enum`, or an enum-backed `string_array`. Resolved
|
|
304
|
-
* at load whether declared inline or by naming a shared enum, so this is the set
|
|
305
|
-
* the platform enforces. Same shape a field's members have. */
|
|
306
|
-
values?: EntityField["values"];
|
|
307
|
-
/** The shared enum this parameter names, when it names one. `values` is what to render. */
|
|
308
|
-
enum?: string;
|
|
309
|
-
}
|
|
310
|
-
export interface AssociationDisplay {
|
|
311
|
-
name?: LocalizedString;
|
|
312
|
-
description?: LocalizedString;
|
|
313
|
-
icon?: string;
|
|
314
|
-
}
|
|
315
|
-
export interface AssociationDef {
|
|
316
|
-
target: string;
|
|
317
|
-
display?: AssociationDisplay;
|
|
318
|
-
source: string;
|
|
319
|
-
code: string;
|
|
320
|
-
}
|
|
321
|
-
export type EntityMutationOp = "create" | "update" | "delete" | "restore";
|
|
322
|
-
export interface EntityMutations {
|
|
323
|
-
create?: boolean;
|
|
324
|
-
update?: boolean;
|
|
325
|
-
delete?: boolean;
|
|
326
|
-
restore?: boolean;
|
|
327
|
-
}
|
|
328
|
-
export interface EntityVariant {
|
|
329
|
-
name?: string;
|
|
330
|
-
when?: FilterNode[];
|
|
331
|
-
actions?: string[];
|
|
332
|
-
}
|
|
333
|
-
/** A set of CRUD op flags, each present or absent. The YAML-decoded shape of
|
|
334
|
-
* an entity's `public` opt-out block (deny-by-default authorization). A flag being true means that op is open to ALL authenticated
|
|
335
|
-
* callers with no grant required. Mirrors engine.OpSet. On the /api/schema
|
|
336
|
-
* wire it always serializes as this object (never a bare bool, even though
|
|
337
|
-
* YAML accepts `public: true`). */
|
|
338
|
-
export interface OpSet {
|
|
339
|
-
read?: boolean;
|
|
340
|
-
write?: boolean;
|
|
341
|
-
delete?: boolean;
|
|
342
|
-
}
|
|
343
|
-
export interface CardSpec {
|
|
344
|
-
title_field?: string;
|
|
345
|
-
subtitle_field?: string;
|
|
346
|
-
badge_fields?: string[];
|
|
347
|
-
fields?: string[];
|
|
348
|
-
meta_fields?: string[];
|
|
349
|
-
hide_empty_fields?: boolean;
|
|
350
|
-
max_body_fields?: number;
|
|
351
|
-
}
|
|
352
|
-
export interface Entity {
|
|
353
|
-
table: string;
|
|
354
|
-
primary_key?: string[];
|
|
355
|
-
virtual?: boolean;
|
|
356
|
-
readonly?: boolean;
|
|
357
|
-
mutations?: EntityMutations;
|
|
358
|
-
default_timezone?: string;
|
|
359
|
-
display: {
|
|
360
|
-
name: LocalizedString;
|
|
361
|
-
name_plural: LocalizedString;
|
|
362
|
-
description?: LocalizedString;
|
|
363
|
-
icon: string;
|
|
364
|
-
display_field?: string;
|
|
365
|
-
display_template?: string;
|
|
366
|
-
empty_state?: EmptyStateDef;
|
|
367
|
-
};
|
|
368
|
-
card?: CardSpec;
|
|
369
|
-
fields: OrderedMap<EntityField>;
|
|
370
|
-
soft_delete?: string;
|
|
371
|
-
tenant_key?: string;
|
|
372
|
-
children?: ChildRelation[];
|
|
373
|
-
status_groups?: Record<string, StatusGroupDef>;
|
|
374
|
-
/** Computed by the server: this entity's rows are evidence-covered (an
|
|
375
|
-
* `evidence:` block, or an audit table the core audit source covers). Drives
|
|
376
|
-
* the evidence panel / `?expand=evidence` the same way `status_groups` drives
|
|
377
|
-
* the statuses surface. Absent for uncovered entities. */
|
|
378
|
-
evidence_covered?: boolean;
|
|
379
|
-
properties?: Record<string, PropertyDef>;
|
|
380
|
-
search_fields?: string[];
|
|
381
|
-
actions?: Record<string, Action>;
|
|
382
|
-
variants?: OrderedMap<EntityVariant>;
|
|
383
|
-
/**
|
|
384
|
-
* Platform-default action codes the engine must NOT inject for this entity
|
|
385
|
-
* (`__new`, `__edit`, `__create`, ...). Declared in the entity's YAML.
|
|
386
|
-
*
|
|
387
|
-
* A disabled `__new` closes the CREATE ROUTE too, not only the toolbar
|
|
388
|
-
* button: `<list>/new` is the detail route with the literal id `new`, so
|
|
389
|
-
* without this the form the removed button pointed at still rendered for
|
|
390
|
-
* anyone who typed the address or kept a bookmark.
|
|
391
|
-
*/
|
|
392
|
-
disable_defaults?: string[];
|
|
393
|
-
handlers?: Record<string, HandlerDef>;
|
|
394
|
-
associations?: Record<string, AssociationDef>;
|
|
395
|
-
files?: OrderedMap<FileFieldDef>;
|
|
396
|
-
detail_screen?: string;
|
|
397
|
-
/** Standard CSV export gate. Absent block (or absent `enabled`) means export is enabled. Only an
|
|
398
|
-
* explicit `enabled: false` opts out, mirroring the Go ExportEnabled()
|
|
399
|
-
* helper. Same shape ships on Screen for per-screen overrides. */
|
|
400
|
-
export?: ExportConfig;
|
|
401
|
-
/** At most one row visible per caller. Loader requires either a
|
|
402
|
-
* caller-bound `prefilter` or `access: self` to back this. Frontend
|
|
403
|
-
* routes a singleton entity's detail screen at the screen's declared
|
|
404
|
-
* `route:` without a `:id` segment, and skips list-route registration. */
|
|
405
|
-
singleton?: boolean;
|
|
406
|
-
/** Carrier scope its `$params` writes land under (e.g. my_tenant -> "tenant",
|
|
407
|
-
* profile -> "user"). Absent = writes land under the entity's own code. Used
|
|
408
|
-
* by ParamsBlock to compute the attachable parameter set. */
|
|
409
|
-
params_scope?: string;
|
|
410
|
-
/** Server-enforced WHERE applied unconditionally on every read/write.
|
|
411
|
-
* Values may be literal scalars
|
|
412
|
-
* OR `$caller.*` expressions (`$caller.user_id`, `$caller.tenant_id`)
|
|
413
|
-
* resolved at request time. Security boundary, not a UX hint. */
|
|
414
|
-
prefilter?: Record<string, unknown>;
|
|
415
|
-
/** Hard entity-wide access tier gate (checked BEFORE the deny-by-default
|
|
416
|
-
* read/write decision). `"self"` restricts every read/write to rows where
|
|
417
|
-
* the field marked `owner: true` matches the caller's user id (chokepoint +
|
|
418
|
-
* with_check). `"tenant_admin"` admits any administrative standing in the
|
|
419
|
-
* active tenant (superadmin / tenant_owner / any role grant). `"superadmin"`
|
|
420
|
-
* admits only the platform-wide god flag. Empty = no tier floor (standard
|
|
421
|
-
* RBAC). The legacy `"platform_admin"` alias was removed. */
|
|
422
|
-
access?: "self" | "tenant_admin" | "superadmin";
|
|
423
|
-
/** Deny-by-default authorization. Absent = every op
|
|
424
|
-
* requires its `entity:<code>:<op>` grant. `public.<op>: true` opts that op
|
|
425
|
-
* out of the grant requirement, opening it to all authenticated callers
|
|
426
|
-
* (NOT anonymous). The Entity.Access floor is checked first and is never
|
|
427
|
-
* waived by `public`. Mirrors engine.Entity.Public (*OpSet). The wire form
|
|
428
|
-
* is always the object shape (never a bare bool). Replaces the removed
|
|
429
|
-
* boolean `permissions`. */
|
|
430
|
-
public?: OpSet;
|
|
431
|
-
/**
|
|
432
|
-
* Optional structural tree for placing and grouping actions across all
|
|
433
|
-
* placement slots. Absent = runtime composes a flat list from all actions
|
|
434
|
-
* matching each slot's visibility[], sorted by position ascending.
|
|
435
|
-
* Server delivers RBAC-pruned nodes in tagged-union wire format.
|
|
436
|
-
*/
|
|
437
|
-
action_layout?: ActionLayoutNode[];
|
|
438
|
-
/**
|
|
439
|
-
* Per-caller classification access
|
|
440
|
-
* decision keyed by field name. Only present for entities that
|
|
441
|
-
* declare at least one classified field; absent on non-classification
|
|
442
|
-
* entities so the wire stays byte-equivalent for non-classification
|
|
443
|
-
* deployments. Frontend reads this map to render the locked-widget
|
|
444
|
-
* badge, disable write inputs, and surface the required_permission
|
|
445
|
-
* hint to the user.
|
|
446
|
-
*/
|
|
447
|
-
field_access?: Record<string, FieldAccessInfo>;
|
|
448
|
-
/**
|
|
449
|
-
* Per-entity realtime opt-in. When true the entity is in the CDC
|
|
450
|
-
* publication, its list views auto-update from the SSE stream, and the
|
|
451
|
-
* toolbar shows a green "Live" indicator. Absent or false (default OFF)
|
|
452
|
-
* means the entity is not live: no indicator, and the always-present
|
|
453
|
-
* manual refresh control is the only freshness mechanism. Server emits
|
|
454
|
-
* this with `omitempty`, so `false` arrives as absent.
|
|
455
|
-
*/
|
|
456
|
-
realtime?: boolean;
|
|
457
|
-
/**
|
|
458
|
-
* Per-entity row-count strategy for list views. "exact" (default, also
|
|
459
|
-
* the meaning of absent) shows an exact total; "estimated" shows an
|
|
460
|
-
* O(1) query-planner estimate, rendered coarse (~3.6M) for high-volume
|
|
461
|
-
* tables. Independent of `realtime`. The SDK keys list-view count
|
|
462
|
-
* precision on the response `meta.count_mode`, not this field, so a
|
|
463
|
-
* forced exact count still renders precisely.
|
|
464
|
-
*/
|
|
465
|
-
count?: "exact" | "estimated";
|
|
466
|
-
/**
|
|
467
|
-
* Computed (server-side, never author-set) pagination mode the generated
|
|
468
|
-
* admin list MUST use: "offset" (numbered pages) or "cursor" (keyset /
|
|
469
|
-
* infinite scroll). "cursor" iff the entity declares `persistence.archive`
|
|
470
|
-
* AND the deployment has ClickHouse wired at boot - a cross-store hot+cold
|
|
471
|
-
* read cannot offset-paginate. Absent means "offset" (every plain Postgres /
|
|
472
|
-
* ClickHouse-only / ClickHouse-disabled-archive entity). The SDK branches the
|
|
473
|
-
* list UI on this.
|
|
474
|
-
*/
|
|
475
|
-
list_pagination?: "offset" | "cursor";
|
|
476
|
-
/**
|
|
477
|
-
* Static, per-caller document-generation capability computed from the
|
|
478
|
-
* SYSTEM document template registry at schema projection (registry-only,
|
|
479
|
-
* no DB read, no ETag impact - system templates are boot-static and are
|
|
480
|
-
* covered by the schema fingerprint). Absent (or both flags falsy) means
|
|
481
|
-
* no system template applies for this caller/tenant/entity - the
|
|
482
|
-
* frontend's Generate affordance renders nothing UNLESS a tenant-uploaded
|
|
483
|
-
* template is found via the lazy `document.templates.available` runtime
|
|
484
|
-
* probe (tenant templates are runtime data and are never baked into the
|
|
485
|
-
* schema). `generate_one` gates the detail-scope toolbar; `generate_many`
|
|
486
|
-
* gates the list-scope toolbar.
|
|
487
|
-
*/
|
|
488
|
-
documents?: {
|
|
489
|
-
generate_one?: boolean;
|
|
490
|
-
generate_many?: boolean;
|
|
491
|
-
};
|
|
492
|
-
}
|
|
493
|
-
export interface ExportConfig {
|
|
494
|
-
enabled?: boolean;
|
|
495
|
-
}
|
|
496
|
-
export declare function entityAllowsMutation(entity: Pick<Entity, "readonly" | "mutations"> | undefined, op: EntityMutationOp): boolean;
|
|
497
|
-
export declare function entityAllowsCreateRoute(entity: Pick<Entity, "disable_defaults"> | undefined): boolean;
|
|
498
|
-
export declare function getPrimaryKeyFields(entity: Entity): string[];
|
|
499
|
-
export type PkValues = Record<string, string>;
|
|
500
|
-
export declare function extractPkValues(entity: Entity, record: Record<string, unknown>): PkValues;
|
|
501
|
-
export declare function pkValuePartsToId(values: string[]): string;
|
|
502
|
-
export declare function pkValuesToId(pkValues: PkValues): string;
|
|
503
|
-
export declare function pkValuesToDetailId(entity: Entity, pkValues: PkValues): string;
|
|
504
|
-
export declare function singlePkValues(entity: Entity, value: string): PkValues | undefined;
|
|
505
|
-
export declare function pkValuesFromId(id: string, expectedCount: number): string[] | null;
|
|
506
|
-
export declare function resolveDetailRoute(list: Pick<Screen, "detail_screen"> | undefined, entity: Pick<Entity, "detail_screen"> | undefined, allScreens: Record<string, {
|
|
507
|
-
route?: string;
|
|
508
|
-
}> | undefined): string | null;
|
|
509
|
-
export declare function buildDetailHrefFromId(list: Pick<Screen, "detail_screen">, id: string, entity: Pick<Entity, "detail_screen"> | undefined, allScreens: Record<string, {
|
|
510
|
-
route?: string;
|
|
511
|
-
}> | undefined): string | null;
|
|
512
|
-
export declare function buildEntityDetailHref(list: Pick<Screen, "detail_screen">, entity: Entity | undefined, allScreens: Record<string, {
|
|
513
|
-
route?: string;
|
|
514
|
-
}> | undefined, pkValues: PkValues): string | null;
|
|
515
|
-
export declare function buildRowDetailHref(list: Pick<Screen, "detail_screen">, entity: Entity | undefined, allScreens: Record<string, {
|
|
516
|
-
route?: string;
|
|
517
|
-
}> | undefined, row: Record<string, unknown>): string | null;
|
|
518
|
-
export declare function isCompositePk(entity: Entity): boolean;
|
|
519
|
-
export type SizeValue = string;
|
|
520
|
-
export interface SectionBadgeConfig {
|
|
521
|
-
text: LocalizedString;
|
|
522
|
-
tone?: "indigo" | "emerald" | "amber" | "rose" | "sky" | "violet" | "slate" | "teal";
|
|
523
|
-
dot?: boolean;
|
|
524
|
-
}
|
|
525
|
-
export interface SectionNode {
|
|
526
|
-
name: LocalizedString;
|
|
527
|
-
items: LayoutNode[];
|
|
528
|
-
collapsed?: boolean;
|
|
529
|
-
columns?: number;
|
|
530
|
-
icon?: string;
|
|
531
|
-
badge?: SectionBadgeConfig;
|
|
532
|
-
emphasis?: "primary" | "secondary";
|
|
533
|
-
}
|
|
534
|
-
export interface RowConfig {
|
|
535
|
-
items: LayoutNode[];
|
|
536
|
-
gap?: number;
|
|
537
|
-
resizable?: boolean;
|
|
538
|
-
stack_below?: number | "never";
|
|
539
|
-
width?: SizeValue;
|
|
540
|
-
height?: SizeValue;
|
|
541
|
-
}
|
|
542
|
-
export interface ColumnConfig {
|
|
543
|
-
items: LayoutNode[];
|
|
544
|
-
gap?: number;
|
|
545
|
-
width?: SizeValue;
|
|
546
|
-
height?: SizeValue;
|
|
547
|
-
}
|
|
548
|
-
export interface TabsConfig {
|
|
549
|
-
items: LayoutNode[];
|
|
550
|
-
}
|
|
551
|
-
export interface WidgetNode {
|
|
552
|
-
type: string;
|
|
553
|
-
inputs?: Record<string, string>;
|
|
554
|
-
options?: Record<string, unknown>;
|
|
555
|
-
}
|
|
556
|
-
export interface LayoutField {
|
|
557
|
-
code: string;
|
|
558
|
-
actions?: Action[];
|
|
559
|
-
structure?: string;
|
|
560
|
-
detail_screen?: string;
|
|
561
|
-
}
|
|
562
|
-
export interface LayoutNode {
|
|
563
|
-
row?: RowConfig;
|
|
564
|
-
column?: ColumnConfig;
|
|
565
|
-
tabs?: TabsConfig;
|
|
566
|
-
section?: SectionNode;
|
|
567
|
-
children?: string;
|
|
568
|
-
associated?: string;
|
|
569
|
-
properties?: true | string[];
|
|
570
|
-
statuses?: true | string[];
|
|
571
|
-
fields?: LayoutField[];
|
|
572
|
-
widget?: WidgetNode;
|
|
573
|
-
width?: SizeValue;
|
|
574
|
-
height?: SizeValue;
|
|
575
|
-
min_width?: string;
|
|
576
|
-
max_width?: string;
|
|
577
|
-
label?: LocalizedString;
|
|
578
|
-
icon?: string;
|
|
579
|
-
mode?: ChildDisplayMode;
|
|
580
|
-
columns?: string[];
|
|
581
|
-
sort?: string;
|
|
582
|
-
limit?: number;
|
|
583
|
-
quick_add?: ChildQuickAdd;
|
|
584
|
-
timeline?: TimelineConfig;
|
|
585
|
-
cards?: CardsConfig;
|
|
586
|
-
editable?: boolean;
|
|
587
|
-
searchable?: boolean;
|
|
588
|
-
filters?: string[];
|
|
589
|
-
position_field?: string;
|
|
590
|
-
interaction?: "navigate" | "inline_edit" | "row_edit" | "readonly";
|
|
591
|
-
}
|
|
592
|
-
export interface AuditLineDef {
|
|
593
|
-
label: LocalizedString;
|
|
594
|
-
at?: string;
|
|
595
|
-
by?: string;
|
|
596
|
-
}
|
|
597
|
-
export interface AuditConfig {
|
|
598
|
-
enabled?: boolean;
|
|
599
|
-
lines?: AuditLineDef[];
|
|
600
|
-
}
|
|
601
|
-
/** Resolved per-screen visibility decision (deny-by-default authorization).
|
|
602
|
-
* Computed by the engine at load - authors write
|
|
603
|
-
* `public` / `required_permission`, never this. `public` and
|
|
604
|
-
* `required_permission` are mutually exclusive; `source` is the audit
|
|
605
|
-
* provenance (authored:public | authored | authored->public |
|
|
606
|
-
* derived:public-entity | derived:entity | derived:screen). Mirrors
|
|
607
|
-
* engine.ScreenVisibility. */
|
|
608
|
-
export interface ScreenVisibility {
|
|
609
|
-
public: boolean;
|
|
610
|
-
required_permission: string;
|
|
611
|
-
source: string;
|
|
612
|
-
}
|
|
613
|
-
export type ViewportKey = "phone" | "tablet" | "desktop";
|
|
614
|
-
export type ListPresentation = "table" | "cards";
|
|
615
|
-
export type RecordListPresentation = "split" | "drilldown" | "stacked";
|
|
616
|
-
export type DetailTabsPresentation = "sections" | "scroll";
|
|
617
|
-
export type DetailSidebarPresentation = "inline" | "hidden";
|
|
618
|
-
export type RelatedRecordsPresentation = "cards" | "table";
|
|
619
|
-
export interface ResponsiveDetailLayout {
|
|
620
|
-
header_card?: boolean;
|
|
621
|
-
tabs?: DetailTabsPresentation;
|
|
622
|
-
sidebar?: DetailSidebarPresentation;
|
|
623
|
-
related_records?: RelatedRecordsPresentation;
|
|
624
|
-
}
|
|
625
|
-
export interface ResponsiveListBranch {
|
|
626
|
-
presentation?: ListPresentation;
|
|
627
|
-
}
|
|
628
|
-
export interface ResponsiveDetailBranch {
|
|
629
|
-
header_card?: boolean;
|
|
630
|
-
tabs?: DetailTabsPresentation;
|
|
631
|
-
}
|
|
632
|
-
export interface ScreenResponsiveViewport {
|
|
633
|
-
presentation?: ListPresentation | RecordListPresentation;
|
|
634
|
-
layout?: ResponsiveDetailLayout;
|
|
635
|
-
list?: ResponsiveListBranch;
|
|
636
|
-
detail?: ResponsiveDetailBranch;
|
|
637
|
-
}
|
|
638
|
-
export type ScreenResponsive = Partial<Record<ViewportKey, ScreenResponsiveViewport>>;
|
|
639
|
-
export interface ScreenVariant {
|
|
640
|
-
name?: string;
|
|
641
|
-
when?: FilterNode[];
|
|
642
|
-
items?: LayoutNode[];
|
|
643
|
-
sidebar?: LayoutNode[];
|
|
644
|
-
sidebar_width?: string;
|
|
645
|
-
highlights?: string[];
|
|
646
|
-
audit?: AuditConfig;
|
|
647
|
-
actions?: string[];
|
|
648
|
-
row_actions?: string[];
|
|
649
|
-
action_layout?: ActionLayoutNode[];
|
|
650
|
-
card?: CardSpec;
|
|
651
|
-
quick_peek?: QuickPeekConfig;
|
|
652
|
-
}
|
|
653
|
-
export interface Screen {
|
|
654
|
-
type: "list" | "detail" | "custom" | "record_list";
|
|
655
|
-
entity?: string;
|
|
656
|
-
route: string;
|
|
657
|
-
component?: string;
|
|
658
|
-
/** Deny-by-default authorization. CUSTOM (entity-less) screens only: true
|
|
659
|
-
* makes the screen visible to all authenticated callers (data inside still
|
|
660
|
-
* gates per entity). A load error on an entity-bound screen. Mirrors
|
|
661
|
-
* engine.Screen.Public (*bool). */
|
|
662
|
-
public?: boolean;
|
|
663
|
-
/** Overrides the derived visibility rule for this screen (any grant string,
|
|
664
|
-
* typically `screen:<code>` to retarget or to tighten an entity-bound
|
|
665
|
-
* screen below its entity read). REPLACES the derived rule, not ANDs it. */
|
|
666
|
-
required_permission?: string;
|
|
667
|
-
/** Resolved visibility (engine-computed at load; never authored). */
|
|
668
|
-
visibility?: ScreenVisibility;
|
|
669
|
-
display?: {
|
|
670
|
-
name: LocalizedString;
|
|
671
|
-
/** Localized explanation of the screen, surfaced via the list-header info
|
|
672
|
-
* affordance (falls back to the entity description). Optional. */
|
|
673
|
-
description?: LocalizedString;
|
|
674
|
-
icon: string;
|
|
675
|
-
};
|
|
676
|
-
columns?: string[];
|
|
677
|
-
default_columns?: string[];
|
|
678
|
-
card?: CardSpec;
|
|
679
|
-
responsive?: ScreenResponsive;
|
|
680
|
-
filters?: string[];
|
|
681
|
-
default_filters?: string[];
|
|
682
|
-
search_fields?: string[];
|
|
683
|
-
sort_default?: string;
|
|
684
|
-
actions?: string[];
|
|
685
|
-
row_actions?: string[];
|
|
686
|
-
variants?: OrderedMap<ScreenVariant>;
|
|
687
|
-
items?: LayoutNode[];
|
|
688
|
-
sidebar?: LayoutNode[];
|
|
689
|
-
sidebar_width?: string;
|
|
690
|
-
highlights?: string[];
|
|
691
|
-
audit?: AuditConfig;
|
|
692
|
-
self?: boolean;
|
|
693
|
-
list_width?: string;
|
|
694
|
-
list_resizable?: boolean;
|
|
695
|
-
detail_screen?: string;
|
|
696
|
-
fixed_filters?: Record<string, unknown>;
|
|
697
|
-
/** Per-screen override of field-level filter_special_values, keyed by filter
|
|
698
|
-
* field code. Append/replace/clear the entity field's declared values for
|
|
699
|
-
* just this screen. Mirrors engine.Screen.FilterSpecialValues. */
|
|
700
|
-
filter_special_values?: Record<string, ScreenFilterSpecialValues>;
|
|
701
|
-
/** Per-field operator lists, keyed by filter field code, published by the
|
|
702
|
-
* server from the ONE vocabulary the query builder enforces
|
|
703
|
-
* (engine.OperatorsByFieldType, plus the $status / $property sets). The
|
|
704
|
-
* filter drawer renders exactly these; it keeps no table of its own,
|
|
705
|
-
* because a client-side guess had already diverged - array, multilang,
|
|
706
|
-
* json and bytes fields were offered two operators the builder rejects
|
|
707
|
-
* and denied `contains`, the one that works. */
|
|
708
|
-
filter_operators?: Record<string, string[]>;
|
|
709
|
-
views?: ViewDefinition[];
|
|
710
|
-
/** Code of the view this list OPENS on. A starting point, never a bound: the
|
|
711
|
-
* switcher still offers every other view and the unfiltered "All", and a
|
|
712
|
-
* viewer's own default view wins over it. */
|
|
713
|
-
default_view?: string;
|
|
714
|
-
/** Action slot promotion for list screens (rule-of-2). UI honors first 2.
|
|
715
|
-
* The detail-header `primary_record_actions` was removed; use action_layout. */
|
|
716
|
-
primary_actions?: string[];
|
|
717
|
-
primary_bulk_actions?: string[];
|
|
718
|
-
/** "open" (default) navigates to detail; "peek" opens QuickPeek drawer. */
|
|
719
|
-
on_row_click?: "open" | "peek";
|
|
720
|
-
quick_peek?: QuickPeekConfig;
|
|
721
|
-
inline_edit?: InlineEditConfig;
|
|
722
|
-
column_overrides?: Record<string, ColumnSpec>;
|
|
723
|
-
activity_rail?: ActivityRailConfig;
|
|
724
|
-
/** Per-screen override for the CSV export gate. Same shape as Entity.export.
|
|
725
|
-
* Either gate being false hides the toolbar Export menu and makes the
|
|
726
|
-
* POST endpoint return 403 EXPORT_DISABLED. */
|
|
727
|
-
export?: ExportConfig;
|
|
728
|
-
/**
|
|
729
|
-
* Optional per-screen structural tree for placing and grouping actions.
|
|
730
|
-
* When set, fully replaces entity.action_layout for this screen.
|
|
731
|
-
* Absent = inherit entity.action_layout (then default-flat if also absent).
|
|
732
|
-
* Server delivers RBAC-pruned nodes in tagged-union wire format.
|
|
733
|
-
*/
|
|
734
|
-
action_layout?: ActionLayoutNode[];
|
|
735
|
-
}
|
|
736
|
-
export interface QuickPeekConfig {
|
|
737
|
-
enabled?: boolean;
|
|
738
|
-
width?: number;
|
|
739
|
-
/**
|
|
740
|
-
* Explicit list of field codes to show. Highest precedence. When absent,
|
|
741
|
-
* `sections` is consulted; when that's also absent the platform falls back
|
|
742
|
-
* to all simple scalar fields on the entity (capped at 8).
|
|
743
|
-
*/
|
|
744
|
-
fields?: string[];
|
|
745
|
-
/** Section names from the detail-layout. Their `fields:` get flattened. */
|
|
746
|
-
sections?: string[];
|
|
747
|
-
inline_editable?: boolean;
|
|
748
|
-
primary_action?: string;
|
|
749
|
-
}
|
|
750
|
-
export interface InlineEditConfig {
|
|
751
|
-
enabled?: boolean;
|
|
752
|
-
/** dblclick | enter | always */
|
|
753
|
-
trigger?: string;
|
|
754
|
-
}
|
|
755
|
-
export interface ColumnSpec {
|
|
756
|
-
inline_edit?: boolean;
|
|
757
|
-
width?: string;
|
|
758
|
-
}
|
|
759
|
-
export interface ActivityRailConfig {
|
|
760
|
-
children: string;
|
|
761
|
-
/** left | right (default right) */
|
|
762
|
-
position?: string;
|
|
763
|
-
width?: number;
|
|
764
|
-
}
|
|
765
|
-
/** System view (preset) defined in screen YAML. Read-only. */
|
|
766
|
-
export interface ViewDefinition {
|
|
767
|
-
code: string;
|
|
768
|
-
name: LocalizedString;
|
|
769
|
-
description?: LocalizedString;
|
|
770
|
-
icon?: string;
|
|
771
|
-
filters?: FilterNode[];
|
|
772
|
-
columns?: string[];
|
|
773
|
-
sort?: string;
|
|
774
|
-
}
|
|
775
|
-
export interface NavNode {
|
|
776
|
-
screen?: string;
|
|
777
|
-
name?: LocalizedString;
|
|
778
|
-
icon?: string;
|
|
779
|
-
items?: NavNode[];
|
|
780
|
-
area?: string;
|
|
781
|
-
badge?: string;
|
|
782
|
-
children?: NavNode[];
|
|
783
|
-
}
|
|
784
|
-
export interface AreaDef {
|
|
785
|
-
code: string;
|
|
786
|
-
name?: LocalizedString;
|
|
787
|
-
icon?: string;
|
|
788
|
-
position?: number;
|
|
789
|
-
home_screen?: string;
|
|
790
|
-
required_permission?: string;
|
|
791
|
-
}
|
|
792
|
-
export interface AccentDef {
|
|
793
|
-
color?: string;
|
|
794
|
-
color_2?: string;
|
|
795
|
-
soft?: string;
|
|
796
|
-
ring?: string;
|
|
797
|
-
on_dark?: string;
|
|
798
|
-
on_light?: string;
|
|
799
|
-
}
|
|
800
|
-
export interface HandlerParamDisplay {
|
|
801
|
-
name?: LocalizedString;
|
|
802
|
-
description?: LocalizedString;
|
|
803
|
-
widget?: string;
|
|
804
|
-
}
|
|
805
|
-
export interface HandlerParam {
|
|
806
|
-
/** Populated by the schema hydrator from the enclosing map key. */
|
|
807
|
-
name?: string;
|
|
808
|
-
type?: string;
|
|
809
|
-
required?: boolean;
|
|
810
|
-
default?: unknown;
|
|
811
|
-
hidden?: boolean;
|
|
812
|
-
enum?: string;
|
|
813
|
-
values?: Array<{
|
|
814
|
-
code: string;
|
|
815
|
-
name: LocalizedString;
|
|
816
|
-
description?: LocalizedString;
|
|
817
|
-
color?: string;
|
|
818
|
-
}>;
|
|
819
|
-
/** `type: structure` (or structure-shaped json) param target: the top-level
|
|
820
|
-
* structure code whose fields the dialog renders as a nested form. */
|
|
821
|
-
structure?: string;
|
|
822
|
-
/** `type: ref` param target. Scalar entity-code string (shorthand) OR a
|
|
823
|
-
* structured RefConfig (non-id lookup / display). Normalize via
|
|
824
|
-
* normalizeRefConfig before use. */
|
|
825
|
-
ref?: string | RefConfig;
|
|
826
|
-
display?: HandlerParamDisplay;
|
|
827
|
-
/**
|
|
828
|
-
* Narrows the param's option set. Values may be literals or templates
|
|
829
|
-
* using the ui_steps interpolation vocabulary (e.g. "${params.other}").
|
|
830
|
-
* Semantics are type-specific: for type="status", a "status_group" key
|
|
831
|
-
* selects the group whose statuses are offered.
|
|
832
|
-
*/
|
|
833
|
-
filter?: Record<string, string>;
|
|
834
|
-
}
|
|
835
|
-
export interface ActionCondition {
|
|
836
|
-
status?: string[];
|
|
837
|
-
field?: string;
|
|
838
|
-
op?: string;
|
|
839
|
-
value?: unknown;
|
|
840
|
-
}
|
|
841
|
-
export interface UISetFieldStep {
|
|
842
|
-
target: string;
|
|
843
|
-
value: unknown;
|
|
844
|
-
}
|
|
845
|
-
export interface UIShowToastStep {
|
|
846
|
-
kind?: "success" | "error" | "info";
|
|
847
|
-
message: string;
|
|
848
|
-
}
|
|
849
|
-
export interface UIStep {
|
|
850
|
-
copy_to_clipboard?: string;
|
|
851
|
-
set_field?: UISetFieldStep;
|
|
852
|
-
focus_field?: string;
|
|
853
|
-
show_toast?: UIShowToastStep;
|
|
854
|
-
}
|
|
855
|
-
/**
|
|
856
|
-
* Leaf node in an action_layout tree. References a single action by code.
|
|
857
|
-
* Wire format: {"kind": "action", "code": "<code>"}
|
|
858
|
-
*/
|
|
859
|
-
export interface ActionLayoutLeaf {
|
|
860
|
-
kind: "action";
|
|
861
|
-
code: string;
|
|
862
|
-
}
|
|
863
|
-
/**
|
|
864
|
-
* Branch node in an action_layout tree. Groups child nodes under a labelled dropdown.
|
|
865
|
-
* Wire format: {"kind": "group", "name": {...}, "icon": "...", "items": [...]}
|
|
866
|
-
* Items is always non-empty (enforced by loader).
|
|
867
|
-
*/
|
|
868
|
-
export interface ActionLayoutGroup {
|
|
869
|
-
kind: "group";
|
|
870
|
-
name?: LocalizedString;
|
|
871
|
-
icon?: string;
|
|
872
|
-
items: ActionLayoutNode[];
|
|
873
|
-
}
|
|
874
|
-
/**
|
|
875
|
-
* Discriminated union of all action_layout tree nodes.
|
|
876
|
-
* Narrow via `node.kind === "action"` (leaf) or `node.kind === "group"` (branch).
|
|
877
|
-
*/
|
|
878
|
-
export type ActionLayoutNode = ActionLayoutLeaf | ActionLayoutGroup;
|
|
879
|
-
/**
|
|
880
|
-
* Single row-state condition for visible_if / enabled_if / conditions.
|
|
881
|
-
* Operators: eq | ne | in | not_in | gt | lt | ge | le.
|
|
882
|
-
*/
|
|
883
|
-
export interface ActionConditionEntry {
|
|
884
|
-
field?: string;
|
|
885
|
-
op?: string;
|
|
886
|
-
value?: unknown;
|
|
887
|
-
status?: string[];
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* Array of row-state conditions with AND semantics. YAML accepts both single
|
|
891
|
-
* object and array form (see Go ActionConditionList unmarshal); wire format
|
|
892
|
-
* from server is always array (server normalizes during schema response).
|
|
893
|
-
*/
|
|
894
|
-
export type ActionConditionList = ActionConditionEntry[];
|
|
895
|
-
export interface Action {
|
|
896
|
-
/**
|
|
897
|
-
* Server-side handler code. One of four dispatch fields.
|
|
898
|
-
* Reason: the new wire format encodes dispatch mode by which field is set
|
|
899
|
-
* (handler | association | widget | href), so an explicit `type` enum is
|
|
900
|
-
* redundant and was removed. Exactly one of the four should be set per action.
|
|
901
|
-
*/
|
|
902
|
-
handler?: string;
|
|
903
|
-
/**
|
|
904
|
-
* Association code for nav-only actions that navigate to a related list.
|
|
905
|
-
* Reason: same dispatch-by-field-presence rule.
|
|
906
|
-
*/
|
|
907
|
-
association?: string;
|
|
908
|
-
/**
|
|
909
|
-
* SDK widget registry name. The SDK has no widget registry yet: an action
|
|
910
|
-
* carrying `widget` logs a warning and falls back to `onRun`.
|
|
911
|
-
* Reason: lets actions render bespoke UI (e.g. inline picker) instead of
|
|
912
|
-
* server-handled forms, without inventing a new entity per widget.
|
|
913
|
-
*/
|
|
914
|
-
widget?: string;
|
|
915
|
-
/**
|
|
916
|
-
* Client-side navigation URL template (supports `${id}` and other row tokens).
|
|
917
|
-
* Reason: replaces the implicit "edit"/"create" type enum - any href-driven
|
|
918
|
-
* action (open a custom screen, deep-link a report) uses this field; the
|
|
919
|
-
* server never dispatches it.
|
|
920
|
-
*/
|
|
921
|
-
href?: string;
|
|
922
|
-
/**
|
|
923
|
-
* Widget-specific opaque metadata. Schema/Action loader passes through
|
|
924
|
-
* untouched; the widget consumes its own keys.
|
|
925
|
-
* Reason: keeps the Action shape stable as new widgets ship without
|
|
926
|
-
* growing the typed surface for each one.
|
|
927
|
-
*/
|
|
928
|
-
config?: Record<string, unknown>;
|
|
929
|
-
entity?: string;
|
|
930
|
-
display: {
|
|
931
|
-
name: LocalizedString;
|
|
932
|
-
icon: string;
|
|
933
|
-
/**
|
|
934
|
-
* Promotes the action to a header button (vs. dropdown item).
|
|
935
|
-
* Reason: explicit per-action UX control replaces the old position<=10
|
|
936
|
-
* heuristic, lets schema authors mark their headline action even when
|
|
937
|
-
* other actions sort earlier.
|
|
938
|
-
*/
|
|
939
|
-
primary?: boolean;
|
|
940
|
-
/**
|
|
941
|
-
* Render as icon-only button (no label text).
|
|
942
|
-
* Reason: lets a dense toolbar host high-frequency actions without
|
|
943
|
-
* cluttering the bar with labels; tooltip still shows display.name.
|
|
944
|
-
*/
|
|
945
|
-
icon_only?: boolean;
|
|
946
|
-
/**
|
|
947
|
-
* Button size hint. Default "md".
|
|
948
|
-
* Reason: secondary toolbars (associated blocks, inline editors) need
|
|
949
|
-
* smaller buttons than primary header bars - the schema author picks.
|
|
950
|
-
*/
|
|
951
|
-
size?: "sm" | "md" | "lg";
|
|
952
|
-
/**
|
|
953
|
-
* Keyboard shortcut hint (e.g. "Cmd+S"), carried on the wire. The SDK
|
|
954
|
-
* neither renders it nor binds the key yet.
|
|
955
|
-
*/
|
|
956
|
-
shortcut?: string;
|
|
957
|
-
/**
|
|
958
|
-
* Localized explanation of what the action does. Surfaces as the control
|
|
959
|
-
* tooltip (precedence: disabled-reason > description > name) and the
|
|
960
|
-
* ActionDialog subtitle. Optional; absent renders exactly as before.
|
|
961
|
-
* Supersedes the removed `help` field.
|
|
962
|
-
*/
|
|
963
|
-
description?: LocalizedString;
|
|
964
|
-
};
|
|
965
|
-
visibility?: string[];
|
|
966
|
-
confirmation?: LocalizedString;
|
|
967
|
-
conditions?: ActionCondition[];
|
|
968
|
-
/**
|
|
969
|
-
* Ordering within a placement slot and overflow priority. Lower = earlier
|
|
970
|
-
* in bar AND last to overflow. Default 0; ties broken by action code.
|
|
971
|
-
* Convention: step by 10 so a later action fits between two.
|
|
972
|
-
*/
|
|
973
|
-
position?: number;
|
|
974
|
-
/**
|
|
975
|
-
* Hide the action when condition does not hold against current row.
|
|
976
|
-
* Distinct from RBAC hide and from `enabled_if` disable. AND semantics
|
|
977
|
-
* across array elements.
|
|
978
|
-
*/
|
|
979
|
-
visible_if?: ActionConditionList;
|
|
980
|
-
/**
|
|
981
|
-
* Disable the action (greyed out + tooltip) when condition does not hold.
|
|
982
|
-
* For bulk-mode multi-row selection, disabled if ANY selected row fails.
|
|
983
|
-
*/
|
|
984
|
-
enabled_if?: ActionConditionList;
|
|
985
|
-
/**
|
|
986
|
-
* Localized tooltip shown when action is disabled by `enabled_if`.
|
|
987
|
-
* Required when `enabled_if` is set; the schema loader enforces it.
|
|
988
|
-
*/
|
|
989
|
-
enabled_if_reason?: LocalizedString;
|
|
990
|
-
/** Forces confirm + danger styling. */
|
|
991
|
-
destructive?: boolean;
|
|
992
|
-
/** UI shows a toast instead of a blocking result modal; adds a navigation link if progress_screen is set. */
|
|
993
|
-
long_running?: boolean;
|
|
994
|
-
/** Screen code to navigate to after a long_running action starts (resolved via schema.screens). */
|
|
995
|
-
progress_screen?: string;
|
|
996
|
-
resolved_params?: OrderedMap<HandlerParam>;
|
|
997
|
-
/**
|
|
998
|
-
* Default values of params marked hidden+default by the action. The UI
|
|
999
|
-
* seeds formData with these so filter templates resolve references to
|
|
1000
|
-
* prefilled siblings (e.g. "${params.status_group}") and so the
|
|
1001
|
-
* submission payload includes them. Not rendered in the modal.
|
|
1002
|
-
*/
|
|
1003
|
-
resolved_hidden_defaults?: Record<string, unknown>;
|
|
1004
|
-
ui_steps?: UIStep[];
|
|
1005
|
-
/**
|
|
1006
|
-
* Server-derived: the action needs at least one selected row to be
|
|
1007
|
-
* meaningful (the list toolbar greys it while nothing is selected). Derived
|
|
1008
|
-
* from the handler's id-arity contract (cannot run without object IDs),
|
|
1009
|
-
* association mode, or an href `${id}` row-link. ABSENT means the server did
|
|
1010
|
-
* not derive it (older server, or widget/ui_steps modes) - consumers MUST
|
|
1011
|
-
* fall back to the list_floatbar slot proxy, NOT treat absent as false. See
|
|
1012
|
-
* actionRequiresSelection in lib/actions.ts.
|
|
1013
|
-
*/
|
|
1014
|
-
requires_selection?: boolean;
|
|
1015
|
-
}
|
|
1016
|
-
export interface LanguageDef {
|
|
1017
|
-
code: string;
|
|
1018
|
-
name: LocalizedString;
|
|
1019
|
-
}
|
|
1020
|
-
export interface HandlerDef {
|
|
1021
|
-
code: string;
|
|
1022
|
-
type: string;
|
|
1023
|
-
entity?: string;
|
|
1024
|
-
display?: {
|
|
1025
|
-
name?: LocalizedString;
|
|
1026
|
-
description?: LocalizedString;
|
|
1027
|
-
icon?: string;
|
|
1028
|
-
};
|
|
1029
|
-
params?: OrderedMap<HandlerParam>;
|
|
1030
|
-
}
|
|
1031
|
-
export interface Schema {
|
|
1032
|
-
languages: LanguageDef[];
|
|
1033
|
-
language: string;
|
|
1034
|
-
deployment_language: string;
|
|
1035
|
-
structures: Record<string, StructureDef>;
|
|
1036
|
-
entities: Record<string, Entity>;
|
|
1037
|
-
screens: Record<string, Screen>;
|
|
1038
|
-
navigation: NavNode[];
|
|
1039
|
-
actions: Record<string, Action>;
|
|
1040
|
-
handlers?: Record<string, HandlerDef>;
|
|
1041
|
-
enums: Record<string, EnumDef>;
|
|
1042
|
-
parameters: Record<string, ParameterDef>;
|
|
1043
|
-
messages?: Record<string, LocalizedString>;
|
|
1044
|
-
/**
|
|
1045
|
-
* Declared error types, code -> title per language. For rendering a STORED
|
|
1046
|
-
* code - on an agent turn, a job row, an audit row - in the reader's
|
|
1047
|
-
* language. An error answering a request carries its own title in the
|
|
1048
|
-
* response and needs none of this.
|
|
1049
|
-
*
|
|
1050
|
-
* Errors are NEVER declared under `messages`: a failure has a type, and a
|
|
1051
|
-
* type has a title.
|
|
1052
|
-
*/
|
|
1053
|
-
errors?: Record<string, LocalizedString>;
|
|
1054
|
-
areas?: AreaDef[];
|
|
1055
|
-
accents?: Record<string, AccentDef>;
|
|
1056
|
-
/**
|
|
1057
|
-
* data_classifications catalog keyed by
|
|
1058
|
-
* tier code — display name + description + audit_on_read flag + icon
|
|
1059
|
-
* + sod_protected flag. Absent when the consumer declares no tiers
|
|
1060
|
-
* (preserves byte-equivalent wire shape for non-classification
|
|
1061
|
-
* deployments). Frontend resolves the localized tier name from this
|
|
1062
|
-
* map when rendering locked-widget badges.
|
|
1063
|
-
*/
|
|
1064
|
-
classifications?: Record<string, ClassificationTierDef>;
|
|
1065
|
-
/**
|
|
1066
|
-
* Consumer-declared icon glyphs, keyed by the name referenced at `icon:`
|
|
1067
|
-
* call sites. Carries ONLY declared/overridden entries (the built-in ~119
|
|
1068
|
-
* travel as bare names, never here); absent when no module declares an
|
|
1069
|
-
* `icons:` block. The Admin loads this into the runtime icon registry
|
|
1070
|
-
* (setIconRegistry) so custom glyphs render across the chrome.
|
|
1071
|
-
*/
|
|
1072
|
-
icons?: Record<string, IconDef>;
|
|
1073
|
-
}
|
|
1074
|
-
/**
|
|
1075
|
-
* One entry in the top-level classifications map.
|
|
1076
|
-
* Mirrors engine.DataClassification.
|
|
1077
|
-
*/
|
|
1078
|
-
export interface ClassificationTierDef {
|
|
1079
|
-
name: LocalizedString;
|
|
1080
|
-
description?: LocalizedString;
|
|
1081
|
-
audit_on_read?: boolean;
|
|
1082
|
-
icon?: string;
|
|
1083
|
-
/**
|
|
1084
|
-
* When true, the tier triggers stricter SoD controls: a platform owner's
|
|
1085
|
-
* reveal emits a distinct audit code, role self-assignment is refused, and
|
|
1086
|
-
* transitive role inheritance is hard-errored at load.
|
|
1087
|
-
*/
|
|
1088
|
-
sod_protected?: boolean;
|
|
1089
|
-
}
|