@object-ui/app-shell 6.2.3 → 7.0.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.
Files changed (468) hide show
  1. package/CHANGELOG.md +948 -0
  2. package/README.md +292 -0
  3. package/dist/assistant/assistantBus.d.ts +72 -0
  4. package/dist/assistant/assistantBus.js +133 -0
  5. package/dist/chrome/CommandPalette.d.ts +1 -1
  6. package/dist/chrome/CommandPalette.js +26 -22
  7. package/dist/chrome/ConditionalAuthWrapper.d.ts +1 -1
  8. package/dist/chrome/ConsoleToaster.d.ts +1 -1
  9. package/dist/chrome/ConsoleToaster.js +3 -1
  10. package/dist/chrome/ErrorBoundary.d.ts +1 -1
  11. package/dist/chrome/KeyboardShortcutsDialog.d.ts +1 -1
  12. package/dist/chrome/KeyboardShortcutsDialog.js +16 -5
  13. package/dist/chrome/LoadingScreen.d.ts +1 -1
  14. package/dist/chrome/LoadingScreen.js +22 -26
  15. package/dist/chrome/RouteFader.d.ts +1 -1
  16. package/dist/chrome/ThemeProvider.d.ts +1 -1
  17. package/dist/components/ManagedByBadge.d.ts +1 -1
  18. package/dist/console/AppContent.d.ts +1 -1
  19. package/dist/console/AppContent.js +170 -37
  20. package/dist/console/ConsoleShell.d.ts +7 -7
  21. package/dist/console/ConsoleShell.js +32 -3
  22. package/dist/console/ai/AiChatPage.d.ts +88 -1
  23. package/dist/console/ai/AiChatPage.js +743 -66
  24. package/dist/console/ai/ConversationsSidebar.d.ts +26 -1
  25. package/dist/console/ai/ConversationsSidebar.js +149 -34
  26. package/dist/console/ai/LiveCanvas.d.ts +22 -0
  27. package/dist/console/ai/LiveCanvas.js +78 -0
  28. package/dist/console/ai/reconcileTurn.d.ts +8 -0
  29. package/dist/console/ai/reconcileTurn.js +20 -0
  30. package/dist/console/auth/AuthPageLayout.d.ts +1 -1
  31. package/dist/console/auth/ForgotPasswordPage.d.ts +1 -1
  32. package/dist/console/auth/LoginPage.d.ts +1 -1
  33. package/dist/console/auth/RegisterPage.d.ts +1 -1
  34. package/dist/console/auth/RegisterPage.js +23 -3
  35. package/dist/console/cloud-connection/CloudConnectionPanel.d.ts +1 -0
  36. package/dist/console/cloud-connection/CloudConnectionPanel.js +169 -0
  37. package/dist/console/home/AppCard.d.ts +1 -1
  38. package/dist/console/home/AppCard.js +6 -12
  39. package/dist/console/home/HomeAppsStrip.d.ts +8 -0
  40. package/dist/console/home/HomeAppsStrip.js +61 -0
  41. package/dist/console/home/HomeLayout.d.ts +1 -1
  42. package/dist/console/home/HomeLayout.js +3 -1
  43. package/dist/console/home/HomePage.d.ts +1 -2
  44. package/dist/console/home/HomePage.js +149 -21
  45. package/dist/console/home/HomeRail.d.ts +22 -0
  46. package/dist/console/home/HomeRail.js +62 -0
  47. package/dist/console/home/QuickActions.d.ts +1 -1
  48. package/dist/console/home/QuickActions.js +3 -11
  49. package/dist/console/home/RecentApps.d.ts +1 -1
  50. package/dist/console/home/RecentApps.js +2 -2
  51. package/dist/console/home/StarredApps.d.ts +1 -1
  52. package/dist/console/home/StarredApps.js +2 -2
  53. package/dist/console/marketplace/InstalledListWidget.d.ts +1 -0
  54. package/dist/console/marketplace/InstalledListWidget.js +93 -0
  55. package/dist/console/marketplace/MarkdownText.d.ts +1 -1
  56. package/dist/console/marketplace/MarketplaceAccessDenied.d.ts +1 -1
  57. package/dist/console/marketplace/MarketplaceInstalledPage.d.ts +8 -14
  58. package/dist/console/marketplace/MarketplaceInstalledPage.js +14 -66
  59. package/dist/console/marketplace/MarketplacePackagePage.d.ts +1 -1
  60. package/dist/console/marketplace/MarketplacePackagePage.js +249 -8
  61. package/dist/console/marketplace/MarketplacePage.d.ts +1 -1
  62. package/dist/console/marketplace/MarketplacePage.js +60 -3
  63. package/dist/console/marketplace/PackageIcon.d.ts +1 -1
  64. package/dist/console/marketplace/PluginDisclosure.d.ts +14 -0
  65. package/dist/console/marketplace/PluginDisclosure.js +38 -0
  66. package/dist/console/marketplace/marketplaceApi.d.ts +123 -0
  67. package/dist/console/marketplace/marketplaceApi.js +254 -1
  68. package/dist/console/organizations/CreateWorkspaceDialog.d.ts +1 -1
  69. package/dist/console/organizations/OrganizationsLayout.d.ts +1 -1
  70. package/dist/console/organizations/OrganizationsPage.d.ts +1 -1
  71. package/dist/console/organizations/manage/AcceptInvitationPage.d.ts +1 -1
  72. package/dist/console/organizations/manage/InvitationsPage.d.ts +1 -1
  73. package/dist/console/organizations/manage/InviteMemberDialog.d.ts +1 -1
  74. package/dist/console/organizations/manage/MembersPage.d.ts +1 -1
  75. package/dist/console/organizations/manage/OrganizationLayout.d.ts +1 -1
  76. package/dist/console/organizations/manage/SettingsPage.d.ts +1 -1
  77. package/dist/context/CommandPaletteProvider.d.ts +44 -0
  78. package/dist/context/CommandPaletteProvider.js +71 -0
  79. package/dist/context/FavoritesProvider.d.ts +1 -1
  80. package/dist/context/NavigationContext.d.ts +1 -1
  81. package/dist/context/RecentItemsProvider.d.ts +2 -2
  82. package/dist/context/UserStateAdapters.d.ts +1 -1
  83. package/dist/context/index.d.ts +2 -0
  84. package/dist/context/index.js +1 -0
  85. package/dist/hooks/index.d.ts +5 -2
  86. package/dist/hooks/index.js +4 -1
  87. package/dist/hooks/useActionModal.d.ts +53 -0
  88. package/dist/hooks/useActionModal.js +111 -0
  89. package/dist/hooks/useChatConversation.d.ts +107 -4
  90. package/dist/hooks/useChatConversation.js +253 -25
  91. package/dist/hooks/useConsoleActionRuntime.d.ts +70 -0
  92. package/dist/hooks/useConsoleActionRuntime.js +560 -0
  93. package/dist/hooks/useConversationList.js +61 -3
  94. package/dist/hooks/useHomeInbox.d.ts +13 -0
  95. package/dist/hooks/useHomeInbox.js +142 -0
  96. package/dist/hooks/useNavPins.js +17 -23
  97. package/dist/hooks/useNavigationSync.d.ts +33 -0
  98. package/dist/hooks/useNavigationSync.js +98 -12
  99. package/dist/hooks/useReconcileOnError.d.ts +40 -0
  100. package/dist/hooks/useReconcileOnError.js +37 -0
  101. package/dist/hooks/useRecordApprovals.d.ts +18 -19
  102. package/dist/hooks/useRecordApprovals.js +24 -40
  103. package/dist/hooks/useResponsiveSidebar.js +14 -5
  104. package/dist/hooks/useSettleSignal.d.ts +19 -0
  105. package/dist/hooks/useSettleSignal.js +20 -0
  106. package/dist/hooks/useTrackRouteAsRecent.js +35 -0
  107. package/dist/hooks/useUrlOverlay.d.ts +62 -0
  108. package/dist/hooks/useUrlOverlay.js +88 -0
  109. package/dist/index.d.ts +16 -7
  110. package/dist/index.js +12 -4
  111. package/dist/layout/ActivityFeed.d.ts +1 -1
  112. package/dist/layout/AppHeader.d.ts +3 -2
  113. package/dist/layout/AppHeader.js +237 -72
  114. package/dist/layout/AppSidebar.d.ts +2 -1
  115. package/dist/layout/AppSidebar.js +26 -46
  116. package/dist/layout/AppSwitcher.d.ts +2 -1
  117. package/dist/layout/AppSwitcher.js +9 -5
  118. package/dist/layout/AuthPageLayout.d.ts +1 -1
  119. package/dist/layout/ConnectionStatus.d.ts +1 -1
  120. package/dist/layout/ConnectionStatus.js +9 -6
  121. package/dist/layout/ConsoleChatbotFab.d.ts +19 -1
  122. package/dist/layout/ConsoleChatbotFab.js +16 -2
  123. package/dist/layout/ConsoleFloatingChatbot.d.ts +32 -2
  124. package/dist/layout/ConsoleFloatingChatbot.js +374 -41
  125. package/dist/layout/ConsoleLayout.d.ts +1 -1
  126. package/dist/layout/ConsoleLayout.js +27 -11
  127. package/dist/layout/ContextSelectors.d.ts +44 -0
  128. package/dist/layout/ContextSelectors.js +218 -0
  129. package/dist/layout/InboxPopover.d.ts +6 -1
  130. package/dist/layout/InboxPopover.js +25 -6
  131. package/dist/layout/LocaleSwitcher.d.ts +1 -1
  132. package/dist/layout/LocalizedSidebarTrigger.d.ts +2 -0
  133. package/dist/layout/LocalizedSidebarTrigger.js +15 -0
  134. package/dist/layout/MobileViewSwitcherContext.d.ts +1 -1
  135. package/dist/layout/ModeToggle.d.ts +1 -1
  136. package/dist/layout/PageHeader.d.ts +1 -1
  137. package/dist/layout/UnifiedSidebar.d.ts +2 -1
  138. package/dist/layout/UnifiedSidebar.js +116 -15
  139. package/dist/observability/index.d.ts +1 -0
  140. package/dist/observability/index.js +1 -0
  141. package/dist/observability/settleSignal.d.ts +64 -0
  142. package/dist/observability/settleSignal.js +131 -0
  143. package/dist/preview/DraftChangesPanel.d.ts +19 -0
  144. package/dist/preview/DraftChangesPanel.js +114 -0
  145. package/dist/preview/DraftPreviewBar.d.ts +8 -0
  146. package/dist/preview/DraftPreviewBar.js +86 -0
  147. package/dist/preview/PreviewDraftEmptyState.d.ts +16 -0
  148. package/dist/preview/PreviewDraftEmptyState.js +47 -0
  149. package/dist/preview/PreviewModeContext.d.ts +57 -0
  150. package/dist/preview/PreviewModeContext.js +99 -0
  151. package/dist/preview/UnpublishedAppBar.d.ts +8 -0
  152. package/dist/preview/UnpublishedAppBar.js +79 -0
  153. package/dist/preview/draftStatus.d.ts +20 -0
  154. package/dist/preview/draftStatus.js +27 -0
  155. package/dist/preview/usePublishAllDrafts.d.ts +18 -0
  156. package/dist/preview/usePublishAllDrafts.js +106 -0
  157. package/dist/providers/AdapterProvider.d.ts +1 -1
  158. package/dist/providers/AdapterProvider.js +6 -1
  159. package/dist/providers/ExpressionProvider.d.ts +1 -1
  160. package/dist/providers/MetadataProvider.d.ts +17 -2
  161. package/dist/providers/MetadataProvider.js +183 -12
  162. package/dist/runtime-config.d.ts +46 -2
  163. package/dist/runtime-config.js +39 -2
  164. package/dist/services/builtinComponents.js +68 -59
  165. package/dist/skeletons/SkeletonDashboard.d.ts +1 -1
  166. package/dist/skeletons/SkeletonDetail.d.ts +1 -1
  167. package/dist/skeletons/SkeletonGrid.d.ts +1 -1
  168. package/dist/utils/appRoute.d.ts +21 -0
  169. package/dist/utils/appRoute.js +25 -0
  170. package/dist/utils/deriveRelatedLists.d.ts +54 -0
  171. package/dist/utils/deriveRelatedLists.js +91 -0
  172. package/dist/utils/index.d.ts +4 -0
  173. package/dist/utils/index.js +3 -0
  174. package/dist/utils/managedByEmptyState.d.ts +8 -1
  175. package/dist/utils/managedByEmptyState.js +13 -7
  176. package/dist/utils/preferLocal.d.ts +18 -0
  177. package/dist/utils/preferLocal.js +24 -0
  178. package/dist/views/ActionConfirmDialog.d.ts +1 -1
  179. package/dist/views/ActionConfirmDialog.js +3 -1
  180. package/dist/views/ActionParamDialog.d.ts +6 -1
  181. package/dist/views/ActionParamDialog.js +9 -3
  182. package/dist/views/ActionResultDialog.d.ts +13 -0
  183. package/dist/views/ActionResultDialog.js +134 -0
  184. package/dist/views/ComponentNavView.d.ts +14 -1
  185. package/dist/views/CreateViewDialog.d.ts +1 -1
  186. package/dist/views/DashboardConfigPanel.d.ts +28 -0
  187. package/dist/views/DashboardConfigPanel.js +81 -0
  188. package/dist/views/DashboardView.d.ts +4 -3
  189. package/dist/views/DashboardView.js +38 -239
  190. package/dist/views/FlowRunner.d.ts +59 -0
  191. package/dist/views/FlowRunner.js +153 -0
  192. package/dist/views/InterfaceListPage.d.ts +49 -0
  193. package/dist/views/InterfaceListPage.js +347 -0
  194. package/dist/views/MetadataInspector.d.ts +2 -2
  195. package/dist/views/ObjectView.d.ts +1 -1
  196. package/dist/views/ObjectView.js +209 -532
  197. package/dist/views/PageView.d.ts +8 -3
  198. package/dist/views/PageView.js +45 -32
  199. package/dist/views/RecordDetailView.d.ts +1 -1
  200. package/dist/views/RecordDetailView.js +363 -148
  201. package/dist/views/RecordFormPage.d.ts +1 -1
  202. package/dist/views/RecordFormPage.js +26 -1
  203. package/dist/views/ReportConfigPanel.d.ts +37 -0
  204. package/dist/views/ReportConfigPanel.js +85 -0
  205. package/dist/views/ReportView.d.ts +1 -1
  206. package/dist/views/ReportView.js +116 -7
  207. package/dist/views/RuntimeDraftBar.d.ts +30 -0
  208. package/dist/views/RuntimeDraftBar.js +112 -0
  209. package/dist/views/SearchResultsPage.d.ts +1 -1
  210. package/dist/views/SearchResultsPage.js +8 -18
  211. package/dist/views/ViewConfigPanel.d.ts +24 -17
  212. package/dist/views/ViewConfigPanel.js +121 -77
  213. package/dist/views/index.d.ts +1 -1
  214. package/dist/views/index.js +1 -1
  215. package/dist/views/metadata-admin/AuditPanel.d.ts +28 -0
  216. package/dist/views/metadata-admin/AuditPanel.js +79 -0
  217. package/dist/views/metadata-admin/DiagnosticsPage.d.ts +20 -0
  218. package/dist/views/metadata-admin/DiagnosticsPage.js +69 -0
  219. package/dist/views/metadata-admin/DirectoryPage.d.ts +16 -1
  220. package/dist/views/metadata-admin/DirectoryPage.js +113 -24
  221. package/dist/views/metadata-admin/DraftReviewPanel.d.ts +33 -0
  222. package/dist/views/metadata-admin/DraftReviewPanel.js +77 -0
  223. package/dist/views/metadata-admin/EmbeddedItemEditor.d.ts +17 -1
  224. package/dist/views/metadata-admin/EmbeddedItemEditor.js +15 -8
  225. package/dist/views/metadata-admin/JsonSourceEditor.d.ts +37 -0
  226. package/dist/views/metadata-admin/JsonSourceEditor.js +178 -0
  227. package/dist/views/metadata-admin/LayeredDiff.d.ts +39 -1
  228. package/dist/views/metadata-admin/LayeredDiff.js +171 -5
  229. package/dist/views/metadata-admin/MetadataDetailDrawer.d.ts +15 -1
  230. package/dist/views/metadata-admin/MetadataTypeActions.d.ts +48 -0
  231. package/dist/views/metadata-admin/MetadataTypeActions.js +165 -0
  232. package/dist/views/metadata-admin/PackagesPage.d.ts +18 -0
  233. package/dist/views/metadata-admin/PackagesPage.js +395 -0
  234. package/dist/views/metadata-admin/PageShell.d.ts +1 -1
  235. package/dist/views/metadata-admin/PageShell.js +9 -4
  236. package/dist/views/metadata-admin/PermissionMatrixEditor.d.ts +35 -1
  237. package/dist/views/metadata-admin/QuickFind.d.ts +21 -1
  238. package/dist/views/metadata-admin/QuickFind.js +6 -3
  239. package/dist/views/metadata-admin/RelatedPanel.d.ts +24 -1
  240. package/dist/views/metadata-admin/RelatedPanel.js +20 -18
  241. package/dist/views/metadata-admin/ResourceEditPage.d.ts +40 -1
  242. package/dist/views/metadata-admin/ResourceEditPage.js +1223 -60
  243. package/dist/views/metadata-admin/ResourceHistoryPage.d.ts +39 -1
  244. package/dist/views/metadata-admin/ResourceHistoryPage.js +66 -16
  245. package/dist/views/metadata-admin/ResourceListPage.d.ts +13 -1
  246. package/dist/views/metadata-admin/ResourceListPage.js +266 -30
  247. package/dist/views/metadata-admin/ResourceRouter.d.ts +23 -1
  248. package/dist/views/metadata-admin/SchemaForm.d.ts +34 -1
  249. package/dist/views/metadata-admin/SchemaForm.js +559 -49
  250. package/dist/views/metadata-admin/StudioHomePage.d.ts +22 -0
  251. package/dist/views/metadata-admin/StudioHomePage.js +213 -0
  252. package/dist/views/metadata-admin/anchors.js +237 -24
  253. package/dist/views/metadata-admin/clientValidation.d.ts +50 -0
  254. package/dist/views/metadata-admin/clientValidation.js +169 -0
  255. package/dist/views/metadata-admin/color-variant-field.d.ts +30 -0
  256. package/dist/views/metadata-admin/color-variant-field.js +38 -0
  257. package/dist/views/metadata-admin/createDerive.d.ts +75 -0
  258. package/dist/views/metadata-admin/createDerive.js +179 -0
  259. package/dist/views/metadata-admin/dashboard-schema.d.ts +12 -0
  260. package/dist/views/metadata-admin/dashboard-schema.js +80 -0
  261. package/dist/views/metadata-admin/datasource/DatasourceResourcePage.d.ts +35 -0
  262. package/dist/views/metadata-admin/datasource/DatasourceResourcePage.js +327 -0
  263. package/dist/views/metadata-admin/datasource/register.d.ts +1 -0
  264. package/dist/views/metadata-admin/datasource/register.js +24 -0
  265. package/dist/views/metadata-admin/default-inspector-registry.d.ts +49 -0
  266. package/dist/views/metadata-admin/default-inspector-registry.js +8 -0
  267. package/dist/views/metadata-admin/default-schemas.js +115 -10
  268. package/dist/views/metadata-admin/external/ExternalDatasourcePanel.d.ts +27 -0
  269. package/dist/views/metadata-admin/external/ExternalDatasourcePanel.js +69 -0
  270. package/dist/views/metadata-admin/external/ImportObjectDialog.d.ts +27 -0
  271. package/dist/views/metadata-admin/external/ImportObjectDialog.js +77 -0
  272. package/dist/views/metadata-admin/external/SchemaBrowser.d.ts +16 -0
  273. package/dist/views/metadata-admin/external/SchemaBrowser.js +74 -0
  274. package/dist/views/metadata-admin/external/ValidationPanel.d.ts +16 -0
  275. package/dist/views/metadata-admin/external/ValidationPanel.js +68 -0
  276. package/dist/views/metadata-admin/external/api.d.ts +100 -0
  277. package/dist/views/metadata-admin/external/api.js +124 -0
  278. package/dist/views/metadata-admin/i18n.d.ts +1 -0
  279. package/dist/views/metadata-admin/i18n.js +1166 -2
  280. package/dist/views/metadata-admin/index.d.ts +8 -5
  281. package/dist/views/metadata-admin/index.js +12 -2
  282. package/dist/views/metadata-admin/inspector-registry.d.ts +51 -0
  283. package/dist/views/metadata-admin/inspector-registry.js +11 -0
  284. package/dist/views/metadata-admin/inspectors/ActionDefaultInspector.d.ts +30 -0
  285. package/dist/views/metadata-admin/inspectors/ActionDefaultInspector.js +180 -0
  286. package/dist/views/metadata-admin/inspectors/AppNavInspector.d.ts +16 -0
  287. package/dist/views/metadata-admin/inspectors/AppNavInspector.js +110 -0
  288. package/dist/views/metadata-admin/inspectors/ConditionBuilder.d.ts +29 -0
  289. package/dist/views/metadata-admin/inspectors/ConditionBuilder.js +154 -0
  290. package/dist/views/metadata-admin/inspectors/DashboardDefaultInspector.d.ts +28 -0
  291. package/dist/views/metadata-admin/inspectors/DashboardDefaultInspector.js +110 -0
  292. package/dist/views/metadata-admin/inspectors/DashboardWidgetInspector.d.ts +18 -0
  293. package/dist/views/metadata-admin/inspectors/DashboardWidgetInspector.js +139 -0
  294. package/dist/views/metadata-admin/inspectors/DatasetDefaultInspector.d.ts +21 -0
  295. package/dist/views/metadata-admin/inspectors/DatasetDefaultInspector.js +107 -0
  296. package/dist/views/metadata-admin/inspectors/FlowEdgeInspector.d.ts +16 -0
  297. package/dist/views/metadata-admin/inspectors/FlowEdgeInspector.js +45 -0
  298. package/dist/views/metadata-admin/inspectors/FlowInspector.d.ts +12 -0
  299. package/dist/views/metadata-admin/inspectors/FlowInspector.js +9 -0
  300. package/dist/views/metadata-admin/inspectors/FlowKeyValueField.d.ts +30 -0
  301. package/dist/views/metadata-admin/inspectors/FlowKeyValueField.js +125 -0
  302. package/dist/views/metadata-admin/inspectors/FlowNodeConfigField.d.ts +18 -0
  303. package/dist/views/metadata-admin/inspectors/FlowNodeConfigField.js +40 -0
  304. package/dist/views/metadata-admin/inspectors/FlowNodeInspector.d.ts +14 -0
  305. package/dist/views/metadata-admin/inspectors/FlowNodeInspector.js +140 -0
  306. package/dist/views/metadata-admin/inspectors/FlowObjectListField.d.ts +26 -0
  307. package/dist/views/metadata-admin/inspectors/FlowObjectListField.js +105 -0
  308. package/dist/views/metadata-admin/inspectors/FlowReferenceField.d.ts +83 -0
  309. package/dist/views/metadata-admin/inspectors/FlowReferenceField.js +181 -0
  310. package/dist/views/metadata-admin/inspectors/FlowStringListField.d.ts +21 -0
  311. package/dist/views/metadata-admin/inspectors/FlowStringListField.js +60 -0
  312. package/dist/views/metadata-admin/inspectors/InspectorComboField.d.ts +40 -0
  313. package/dist/views/metadata-admin/inspectors/InspectorComboField.js +61 -0
  314. package/dist/views/metadata-admin/inspectors/ObjectDefaultInspector.d.ts +21 -0
  315. package/dist/views/metadata-admin/inspectors/ObjectDefaultInspector.js +54 -0
  316. package/dist/views/metadata-admin/inspectors/ObjectFieldInspector.d.ts +23 -0
  317. package/dist/views/metadata-admin/inspectors/ObjectFieldInspector.js +330 -0
  318. package/dist/views/metadata-admin/inspectors/PageBlockInspector.d.ts +48 -0
  319. package/dist/views/metadata-admin/inspectors/PageBlockInspector.js +332 -0
  320. package/dist/views/metadata-admin/inspectors/ReportDefaultInspector.d.ts +58 -0
  321. package/dist/views/metadata-admin/inspectors/ReportDefaultInspector.js +160 -0
  322. package/dist/views/metadata-admin/inspectors/ViewColumnInspector.d.ts +19 -0
  323. package/dist/views/metadata-admin/inspectors/ViewColumnInspector.js +144 -0
  324. package/dist/views/metadata-admin/inspectors/ViewInspector.d.ts +19 -0
  325. package/dist/views/metadata-admin/inspectors/ViewInspector.js +21 -0
  326. package/dist/views/metadata-admin/inspectors/ViewVariantInspector.d.ts +54 -0
  327. package/dist/views/metadata-admin/inspectors/ViewVariantInspector.js +191 -0
  328. package/dist/views/metadata-admin/inspectors/_shared.d.ts +124 -0
  329. package/dist/views/metadata-admin/inspectors/_shared.js +113 -0
  330. package/dist/views/metadata-admin/inspectors/expression-validate.d.ts +26 -0
  331. package/dist/views/metadata-admin/inspectors/expression-validate.js +66 -0
  332. package/dist/views/metadata-admin/inspectors/flow-node-config.d.ts +143 -0
  333. package/dist/views/metadata-admin/inspectors/flow-node-config.js +461 -0
  334. package/dist/views/metadata-admin/inspectors/index.d.ts +1 -0
  335. package/dist/views/metadata-admin/inspectors/index.js +45 -0
  336. package/dist/views/metadata-admin/inspectors/json-schema-to-fields.d.ts +40 -0
  337. package/dist/views/metadata-admin/inspectors/json-schema-to-fields.js +227 -0
  338. package/dist/views/metadata-admin/inspectors/useDatasetFields.d.ts +72 -0
  339. package/dist/views/metadata-admin/inspectors/useDatasetFields.js +0 -0
  340. package/dist/views/metadata-admin/mergeServerFields.d.ts +65 -0
  341. package/dist/views/metadata-admin/mergeServerFields.js +56 -0
  342. package/dist/views/metadata-admin/preview-registry.d.ts +55 -0
  343. package/dist/views/metadata-admin/previews/ActionPreview.d.ts +25 -0
  344. package/dist/views/metadata-admin/previews/ActionPreview.js +238 -0
  345. package/dist/views/metadata-admin/previews/AddWidgetPicker.d.ts +12 -0
  346. package/dist/views/metadata-admin/previews/AddWidgetPicker.js +56 -0
  347. package/dist/views/metadata-admin/previews/AgentPreview.d.ts +24 -0
  348. package/dist/views/metadata-admin/previews/AgentPreview.js +100 -0
  349. package/dist/views/metadata-admin/previews/AppNavCanvas.d.ts +31 -0
  350. package/dist/views/metadata-admin/previews/AppNavCanvas.js +260 -0
  351. package/dist/views/metadata-admin/previews/AppPreview.d.ts +16 -1
  352. package/dist/views/metadata-admin/previews/AppPreview.js +23 -14
  353. package/dist/views/metadata-admin/previews/BookPreview.d.ts +20 -0
  354. package/dist/views/metadata-admin/previews/BookPreview.js +132 -0
  355. package/dist/views/metadata-admin/previews/DashboardPreview.d.ts +16 -1
  356. package/dist/views/metadata-admin/previews/DashboardPreview.js +110 -8
  357. package/dist/views/metadata-admin/previews/DatasetPreview.d.ts +18 -0
  358. package/dist/views/metadata-admin/previews/DatasetPreview.js +89 -0
  359. package/dist/views/metadata-admin/previews/DatasourcePreview.d.ts +23 -0
  360. package/dist/views/metadata-admin/previews/DatasourcePreview.js +68 -0
  361. package/dist/views/metadata-admin/previews/EmailTemplatePreview.d.ts +14 -1
  362. package/dist/views/metadata-admin/previews/FieldStub.d.ts +30 -0
  363. package/dist/views/metadata-admin/previews/FieldStub.js +104 -0
  364. package/dist/views/metadata-admin/previews/FieldsListEditor.d.ts +50 -0
  365. package/dist/views/metadata-admin/previews/FieldsListEditor.js +97 -0
  366. package/dist/views/metadata-admin/previews/FlowCanvas.d.ts +43 -0
  367. package/dist/views/metadata-admin/previews/FlowCanvas.js +328 -0
  368. package/dist/views/metadata-admin/previews/FlowPreview.d.ts +20 -0
  369. package/dist/views/metadata-admin/previews/FlowPreview.js +92 -0
  370. package/dist/views/metadata-admin/previews/FlowRunsPanel.d.ts +46 -0
  371. package/dist/views/metadata-admin/previews/FlowRunsPanel.js +97 -0
  372. package/dist/views/metadata-admin/previews/FlowSimulatorPanel.d.ts +25 -0
  373. package/dist/views/metadata-admin/previews/FlowSimulatorPanel.js +170 -0
  374. package/dist/views/metadata-admin/previews/JobPreview.d.ts +28 -0
  375. package/dist/views/metadata-admin/previews/JobPreview.js +290 -0
  376. package/dist/views/metadata-admin/previews/ObjectFormCanvas.d.ts +30 -0
  377. package/dist/views/metadata-admin/previews/ObjectFormCanvas.js +547 -0
  378. package/dist/views/metadata-admin/previews/ObjectPreview.d.ts +14 -1
  379. package/dist/views/metadata-admin/previews/ObjectPreview.js +5 -30
  380. package/dist/views/metadata-admin/previews/OutlineStrip.d.ts +32 -0
  381. package/dist/views/metadata-admin/previews/OutlineStrip.js +8 -0
  382. package/dist/views/metadata-admin/previews/PageBlockCanvas.d.ts +49 -0
  383. package/dist/views/metadata-admin/previews/PageBlockCanvas.js +510 -0
  384. package/dist/views/metadata-admin/previews/PagePreview.d.ts +10 -1
  385. package/dist/views/metadata-admin/previews/PagePreview.js +90 -4
  386. package/dist/views/metadata-admin/previews/PermissionPreview.d.ts +27 -0
  387. package/dist/views/metadata-admin/previews/PermissionPreview.js +115 -0
  388. package/dist/views/metadata-admin/previews/PreviewShell.d.ts +29 -6
  389. package/dist/views/metadata-admin/previews/PreviewShell.js +16 -3
  390. package/dist/views/metadata-admin/previews/ReportPreview.d.ts +18 -1
  391. package/dist/views/metadata-admin/previews/ReportPreview.js +23 -15
  392. package/dist/views/metadata-admin/previews/RolePreview.d.ts +19 -0
  393. package/dist/views/metadata-admin/previews/RolePreview.js +14 -0
  394. package/dist/views/metadata-admin/previews/SkillPreview.d.ts +22 -0
  395. package/dist/views/metadata-admin/previews/SkillPreview.js +34 -0
  396. package/dist/views/metadata-admin/previews/ToolPreview.d.ts +25 -0
  397. package/dist/views/metadata-admin/previews/ToolPreview.js +122 -0
  398. package/dist/views/metadata-admin/previews/TranslationPreview.d.ts +25 -0
  399. package/dist/views/metadata-admin/previews/TranslationPreview.js +52 -0
  400. package/dist/views/metadata-admin/previews/ValidationPreview.d.ts +27 -0
  401. package/dist/views/metadata-admin/previews/ValidationPreview.js +110 -0
  402. package/dist/views/metadata-admin/previews/ViewColumnPanes.d.ts +62 -0
  403. package/dist/views/metadata-admin/previews/ViewColumnPanes.js +140 -0
  404. package/dist/views/metadata-admin/previews/ViewPreview.d.ts +23 -1
  405. package/dist/views/metadata-admin/previews/ViewPreview.js +101 -73
  406. package/dist/views/metadata-admin/previews/block-config.d.ts +82 -0
  407. package/dist/views/metadata-admin/previews/block-config.js +324 -0
  408. package/dist/views/metadata-admin/previews/block-types.d.ts +40 -0
  409. package/dist/views/metadata-admin/previews/block-types.js +110 -0
  410. package/dist/views/metadata-admin/previews/field-types.d.ts +53 -0
  411. package/dist/views/metadata-admin/previews/field-types.js +97 -0
  412. package/dist/views/metadata-admin/previews/flow-canvas-layout.d.ts +88 -0
  413. package/dist/views/metadata-admin/previews/flow-canvas-layout.js +190 -0
  414. package/dist/views/metadata-admin/previews/flow-canvas-parts.d.ts +88 -0
  415. package/dist/views/metadata-admin/previews/flow-canvas-parts.js +358 -0
  416. package/dist/views/metadata-admin/previews/form-preview.d.ts +24 -0
  417. package/dist/views/metadata-admin/previews/form-preview.js +29 -0
  418. package/dist/views/metadata-admin/previews/index.js +43 -0
  419. package/dist/views/metadata-admin/previews/object-fields-bridge.d.ts +66 -0
  420. package/dist/views/metadata-admin/previews/object-fields-bridge.js +171 -0
  421. package/dist/views/metadata-admin/previews/object-fields-io.d.ts +109 -0
  422. package/dist/views/metadata-admin/previews/object-fields-io.js +208 -0
  423. package/dist/views/metadata-admin/previews/simulator/flow-sim-types.d.ts +91 -0
  424. package/dist/views/metadata-admin/previews/simulator/flow-sim-types.js +2 -0
  425. package/dist/views/metadata-admin/previews/simulator/flow-sim-validate.d.ts +8 -0
  426. package/dist/views/metadata-admin/previews/simulator/flow-sim-validate.js +113 -0
  427. package/dist/views/metadata-admin/previews/simulator/flow-simulator.d.ts +44 -0
  428. package/dist/views/metadata-admin/previews/simulator/flow-simulator.js +316 -0
  429. package/dist/views/metadata-admin/previews/useDatasetCatalog.d.ts +47 -0
  430. package/dist/views/metadata-admin/previews/useDatasetCatalog.js +133 -0
  431. package/dist/views/metadata-admin/previews/useFlowNodePalette.d.ts +44 -0
  432. package/dist/views/metadata-admin/previews/useFlowNodePalette.js +124 -0
  433. package/dist/views/metadata-admin/previews/useMetaOptions.d.ts +8 -0
  434. package/dist/views/metadata-admin/previews/useMetaOptions.js +50 -0
  435. package/dist/views/metadata-admin/previews/useObjectFields.d.ts +23 -0
  436. package/dist/views/metadata-admin/previews/useObjectFields.js +79 -0
  437. package/dist/views/metadata-admin/previews/useObjectOptions.d.ts +8 -0
  438. package/dist/views/metadata-admin/previews/useObjectOptions.js +43 -0
  439. package/dist/views/metadata-admin/previews/view-column-io.d.ts +42 -0
  440. package/dist/views/metadata-admin/previews/view-column-io.js +73 -0
  441. package/dist/views/metadata-admin/previews/widget-types.d.ts +24 -0
  442. package/dist/views/metadata-admin/previews/widget-types.js +40 -0
  443. package/dist/views/metadata-admin/registry.d.ts +140 -19
  444. package/dist/views/metadata-admin/report-schema.d.ts +26 -0
  445. package/dist/views/metadata-admin/report-schema.js +121 -0
  446. package/dist/views/metadata-admin/useMetadata.d.ts +100 -2
  447. package/dist/views/metadata-admin/useMetadata.js +155 -4
  448. package/dist/views/metadata-admin/view-item-normalize.d.ts +20 -0
  449. package/dist/views/metadata-admin/view-item-normalize.js +68 -0
  450. package/dist/views/metadata-admin/view-schema.d.ts +16 -0
  451. package/dist/views/metadata-admin/view-schema.js +107 -0
  452. package/dist/views/metadata-admin/view-variant-model.d.ts +23 -0
  453. package/dist/views/metadata-admin/view-variant-model.js +64 -0
  454. package/dist/views/metadata-admin/widgets.d.ts +89 -1
  455. package/dist/views/metadata-admin/widgets.js +491 -17
  456. package/dist/views/runtime-metadata-persistence.d.ts +78 -0
  457. package/dist/views/runtime-metadata-persistence.js +89 -0
  458. package/dist/views/useOpenRecordList.d.ts +18 -0
  459. package/dist/views/useOpenRecordList.js +36 -0
  460. package/dist/views/userFilterUrlState.d.ts +15 -0
  461. package/dist/views/userFilterUrlState.js +53 -0
  462. package/dist/views/view-config-adapter.d.ts +38 -0
  463. package/dist/views/view-config-adapter.js +80 -0
  464. package/package.json +52 -34
  465. package/dist/views/DesignDrawer.d.ts +0 -28
  466. package/dist/views/DesignDrawer.js +0 -51
  467. package/dist/views/metadata-admin/DesignerEditorWrapper.d.ts +0 -68
  468. package/dist/views/metadata-admin/DesignerEditorWrapper.js +0 -158
@@ -0,0 +1,68 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ /**
3
+ * view-item-normalize — list-shaping helpers for the Studio View admin.
4
+ *
5
+ * The framework exposes each view as a canonical first-class **ViewItem**
6
+ * (ADR-0017, "Object has-many View"), addressed as `<object>.<viewKey>`:
7
+ *
8
+ * {
9
+ * name: "crm_campaign.campaign_calendar",
10
+ * object: "crm_campaign",
11
+ * viewKind: "list", // list-family | form-family discriminant
12
+ * label: "Launch Calendar",
13
+ * scope: "package",
14
+ * config: { // ← the single-view spec lives here
15
+ * type: "calendar",
16
+ * data: { object: "crm_campaign" },
17
+ * columns: ["name", "channel", "status"],
18
+ * calendar: { startDateField: "start_date", … },
19
+ * },
20
+ * }
21
+ *
22
+ * The View editor (inspector + preview) reads this canonical shape directly
23
+ * (`draft.config`), so there is no load/save shape adapter. These helpers only
24
+ * shape the metadata LIST: hide the legacy aggregated container row and derive
25
+ * a display "type" for the list column.
26
+ */
27
+ function isPlainObject(v) {
28
+ return !!v && typeof v === 'object' && !Array.isArray(v);
29
+ }
30
+ /**
31
+ * True when `item` is a **bare aggregated view container** — the legacy
32
+ * per-object `defineView({ list, form, listViews, formViews })` document
33
+ * the framework still registers under the bare `<object>` key for runtime
34
+ * back-compat (dual-read). It carries NO `viewKind` discriminant and holds
35
+ * at least one of the aggregate buckets.
36
+ *
37
+ * Studio expands every such container into independent `<object>.<viewKey>`
38
+ * ViewItems (including the defaults), so the container row is fully
39
+ * redundant in the metadata list and should be hidden there.
40
+ */
41
+ export function isAggregatedViewContainer(item) {
42
+ if (!isPlainObject(item))
43
+ return false;
44
+ if (item.viewKind)
45
+ return false; // already an independent ViewItem
46
+ return Boolean(item.list || item.form || item.listViews || item.formViews);
47
+ }
48
+ /**
49
+ * Derive the display "type" of a view list row. Expanded ViewItems keep
50
+ * their display type under `config.type` (`grid` / `calendar` / `kanban`
51
+ * / …) and only the list/form *family* at the top level (`viewKind`); a
52
+ * legacy flat view carries `type` directly. Returns `undefined` when
53
+ * nothing is resolvable (e.g. an aggregated container).
54
+ */
55
+ export function viewDisplayType(item) {
56
+ if (!isPlainObject(item))
57
+ return undefined;
58
+ const config = item.config;
59
+ if (isPlainObject(config) && typeof config.type === 'string')
60
+ return config.type;
61
+ if (typeof item.type === 'string')
62
+ return item.type;
63
+ if (item.viewKind === 'form')
64
+ return 'form';
65
+ if (item.viewKind === 'list')
66
+ return 'list';
67
+ return undefined;
68
+ }
@@ -0,0 +1,16 @@
1
+ import type { FormViewSpec } from './SchemaForm';
2
+ type JsonSchema = Record<string, any>;
3
+ /** JSONSchema for a single LIST-family view (grid/kanban/calendar/…). */
4
+ export declare function getListVariantSchema(): JsonSchema | undefined;
5
+ /** JSONSchema for a single FORM-family view. */
6
+ export declare function getFormVariantSchema(): JsonSchema | undefined;
7
+ /** JSONSchema for a single list column (ListColumn). */
8
+ export declare function getListColumnSchema(): JsonSchema | undefined;
9
+ /**
10
+ * The canonical authoring FormView, with the fields the curated inspector
11
+ * owns directly (columns / data / name) pruned from every section so they
12
+ * are not double-rendered. Everything else — including the type-conditional
13
+ * per-view-type sections — flows through verbatim from the spec.
14
+ */
15
+ export declare function getViewForm(): FormViewSpec | undefined;
16
+ export {};
@@ -0,0 +1,107 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ /**
3
+ * view-schema.ts — the SINGLE source of truth for View authoring metadata,
4
+ * sourced directly from `@objectstack/spec` (the protocol) rather than
5
+ * hand-written field lists.
6
+ *
7
+ * Why: the View inspector must render the CORRECT config fields for EVERY
8
+ * view type (grid / kanban / calendar / gallery / gantt / timeline / chart)
9
+ * without hardcoding them. The spec already describes this:
10
+ *
11
+ * • `viewForm` — the canonical authoring FormView: sections with
12
+ * type-conditional `visibleOn` CEL predicates
13
+ * (`data.type == 'kanban'`, …). One section per view
14
+ * type, plus shared basics / filters / navigation.
15
+ * • `ViewSchema` — the zod schema for the whole (nested) View document.
16
+ * `properties.list` is the JSONSchema for a single
17
+ * list-family view; `properties.form` for a form view.
18
+ * • `ListColumnSchema` — per-column property schema (width / align /
19
+ * pinned / summary / …).
20
+ *
21
+ * We convert the zod schemas to JSONSchema once (memoised) via zod 4's
22
+ * native `z.toJSONSchema`, and feed `{ form, schema }` straight into the
23
+ * existing {@link SchemaForm}. Adding a new view type or config prop to the
24
+ * spec therefore flows through automatically — zero code changes here.
25
+ */
26
+ import { z } from 'zod';
27
+ import { ViewSchema, ListColumnSchema, viewForm as specViewForm, } from '@objectstack/spec/ui';
28
+ const TO_JSON_OPTS = { io: 'input', unrepresentable: 'any' };
29
+ /** Fields the curated inspector owns directly, pruned from the spec form. */
30
+ const FORM_FIELDS_OWNED_ELSEWHERE = new Set([
31
+ 'columns', // managed by the live column canvas + per-column inspector
32
+ 'data', // object binding rendered as a dedicated control
33
+ 'name', // record identity — not user-editable here
34
+ ]);
35
+ let _viewDocSchema;
36
+ let _viewDocFailed = false;
37
+ function viewDocSchema() {
38
+ if (_viewDocSchema || _viewDocFailed)
39
+ return _viewDocSchema;
40
+ try {
41
+ _viewDocSchema = z.toJSONSchema(ViewSchema, TO_JSON_OPTS);
42
+ }
43
+ catch (err) {
44
+ _viewDocFailed = true;
45
+ if (typeof console !== 'undefined') {
46
+ console.warn('[view-schema] failed to derive View JSONSchema from spec', err);
47
+ }
48
+ }
49
+ return _viewDocSchema;
50
+ }
51
+ /** JSONSchema for a single LIST-family view (grid/kanban/calendar/…). */
52
+ export function getListVariantSchema() {
53
+ return viewDocSchema()?.properties?.list;
54
+ }
55
+ /** JSONSchema for a single FORM-family view. */
56
+ export function getFormVariantSchema() {
57
+ return viewDocSchema()?.properties?.form;
58
+ }
59
+ let _listColumnSchema;
60
+ let _listColumnFailed = false;
61
+ /** JSONSchema for a single list column (ListColumn). */
62
+ export function getListColumnSchema() {
63
+ if (_listColumnSchema || _listColumnFailed)
64
+ return _listColumnSchema;
65
+ try {
66
+ _listColumnSchema = z.toJSONSchema(ListColumnSchema, TO_JSON_OPTS);
67
+ }
68
+ catch (err) {
69
+ _listColumnFailed = true;
70
+ if (typeof console !== 'undefined') {
71
+ console.warn('[view-schema] failed to derive ListColumn JSONSchema from spec', err);
72
+ }
73
+ }
74
+ return _listColumnSchema;
75
+ }
76
+ let _viewForm;
77
+ /**
78
+ * The canonical authoring FormView, with the fields the curated inspector
79
+ * owns directly (columns / data / name) pruned from every section so they
80
+ * are not double-rendered. Everything else — including the type-conditional
81
+ * per-view-type sections — flows through verbatim from the spec.
82
+ */
83
+ export function getViewForm() {
84
+ if (_viewForm)
85
+ return _viewForm;
86
+ if (!specViewForm || typeof specViewForm !== 'object')
87
+ return undefined;
88
+ try {
89
+ const clone = JSON.parse(JSON.stringify(specViewForm));
90
+ for (const section of clone.sections ?? []) {
91
+ section.fields = (section.fields ?? []).filter((f) => {
92
+ const name = typeof f === 'string' ? f : f?.field;
93
+ return !FORM_FIELDS_OWNED_ELSEWHERE.has(name);
94
+ });
95
+ }
96
+ // Drop now-empty sections so we don't render bare headers.
97
+ clone.sections = (clone.sections ?? []).filter((s) => (s.fields ?? []).length > 0);
98
+ _viewForm = clone;
99
+ }
100
+ catch (err) {
101
+ if (typeof console !== 'undefined') {
102
+ console.warn('[view-schema] failed to prepare viewForm from spec', err);
103
+ }
104
+ return undefined;
105
+ }
106
+ return _viewForm;
107
+ }
@@ -0,0 +1,23 @@
1
+ export interface VariantBinding {
2
+ /** Draft key the body is stored under — always `config` for a ViewItem. */
3
+ storeKey: string;
4
+ /** Logical family ('list' | 'form') for labels + form detection. */
5
+ familyKey: string;
6
+ /** The view body object (`draft.config`). */
7
+ schema: Record<string, unknown>;
8
+ }
9
+ /** True when a family key denotes a form-family view (no column list). */
10
+ export declare function isFormFamilyKey(key: string): boolean;
11
+ /**
12
+ * Resolve the editable binding for a View draft. Returns a single-element
13
+ * array (the ViewItem `config` body) or empty when the draft carries no body
14
+ * yet (e.g. a not-yet-built create draft).
15
+ */
16
+ export declare function resolveVariantBindings(draft: Record<string, unknown>): VariantBinding[];
17
+ /** The view's single editable body, or undefined when none exists yet. */
18
+ export declare function primaryVariantBinding(draft: Record<string, unknown>): VariantBinding | undefined;
19
+ /**
20
+ * Resolve the binding addressed by a store key (a selection id's prefix).
21
+ * A ViewItem has a single body, so this collapses to the primary binding.
22
+ */
23
+ export declare function bindingForStoreKey(draft: Record<string, unknown>, _storeKey: string | undefined): VariantBinding | undefined;
@@ -0,0 +1,64 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ /**
3
+ * view-variant-model — resolves a View draft into its editable body.
4
+ *
5
+ * The framework exposes exactly ONE canonical, first-class shape for a view:
6
+ * the independent **ViewItem** (ADR-0017, "Object has-many View"):
7
+ *
8
+ * { name, object, viewKind: 'list' | 'form', label, config: { type, … } }
9
+ *
10
+ * `config` is the single view body (a ListView for `viewKind:'list'`, a
11
+ * FormView for `viewKind:'form'`); `viewKind` is the family discriminator.
12
+ * The legacy aggregated container ({ list, form, listViews }) is authoring
13
+ * sugar that the backend expands into ViewItems at registration time and no
14
+ * longer surfaces through metadata reads — so the editor consumes the ViewItem
15
+ * shape directly, with no shape adaptation.
16
+ *
17
+ * A "binding" pairs the draft key the body lives under (`config`, used for
18
+ * `onPatch` + column selection ids like `config.columns[i]`) with its logical
19
+ * family (drives form-vs-list rendering + labels) and the body itself.
20
+ */
21
+ /** Variant families that store a FORM-family view (no columns). */
22
+ const FORM_FAMILY = new Set(['form', 'detail']);
23
+ /** True when a family key denotes a form-family view (no column list). */
24
+ export function isFormFamilyKey(key) {
25
+ return FORM_FAMILY.has(key);
26
+ }
27
+ function isPlainObject(v) {
28
+ return !!v && typeof v === 'object' && !Array.isArray(v);
29
+ }
30
+ /** Map a stored `viewKind` (+ body `type`) to a logical family key. */
31
+ function familyFromViewKind(viewKind, bodyType) {
32
+ if (typeof viewKind === 'string' && FORM_FAMILY.has(viewKind))
33
+ return viewKind;
34
+ if (typeof viewKind === 'string' && viewKind)
35
+ return 'list';
36
+ // No viewKind: infer from the body's layout `type`.
37
+ if (typeof bodyType === 'string' && FORM_FAMILY.has(bodyType))
38
+ return 'form';
39
+ return 'list';
40
+ }
41
+ /**
42
+ * Resolve the editable binding for a View draft. Returns a single-element
43
+ * array (the ViewItem `config` body) or empty when the draft carries no body
44
+ * yet (e.g. a not-yet-built create draft).
45
+ */
46
+ export function resolveVariantBindings(draft) {
47
+ const config = draft.config;
48
+ if (isPlainObject(config)) {
49
+ const familyKey = familyFromViewKind(draft.viewKind, config.type);
50
+ return [{ storeKey: 'config', familyKey, schema: config }];
51
+ }
52
+ return [];
53
+ }
54
+ /** The view's single editable body, or undefined when none exists yet. */
55
+ export function primaryVariantBinding(draft) {
56
+ return resolveVariantBindings(draft)[0];
57
+ }
58
+ /**
59
+ * Resolve the binding addressed by a store key (a selection id's prefix).
60
+ * A ViewItem has a single body, so this collapses to the primary binding.
61
+ */
62
+ export function bindingForStoreKey(draft, _storeKey) {
63
+ return primaryVariantBinding(draft);
64
+ }
@@ -22,6 +22,52 @@ export interface WidgetContext {
22
22
  objectNames?: string[];
23
23
  /** Loading flag for the object list. */
24
24
  objectsLoading?: boolean;
25
+ /**
26
+ * Field catalog of the bound object. Drives the `field-ref` /
27
+ * `field-multi` pickers so View config props that reference a field
28
+ * (kanban.groupByField, calendar.startDateField, chart.xAxisField, …)
29
+ * render as dropdowns of the object's real fields instead of free text.
30
+ */
31
+ objectFields?: Array<{
32
+ name: string;
33
+ label?: string;
34
+ type?: string;
35
+ }>;
36
+ /** Loading flag for the field catalog. */
37
+ objectFieldsLoading?: boolean;
38
+ /**
39
+ * View catalog of the bound/source object. Drives the `view-ref` picker
40
+ * so `interfaceConfig.sourceView` renders as a dropdown of the source
41
+ * object's real views instead of a free-text name the author can typo.
42
+ */
43
+ objectViews?: Array<{
44
+ name: string;
45
+ label?: string;
46
+ }>;
47
+ /** Loading flag for the view catalog. */
48
+ objectViewsLoading?: boolean;
49
+ /**
50
+ * Action catalog of the bound/source object. Drives the `action-multi`
51
+ * picker so interface-page toolbar `buttons` reference the object's real
52
+ * actions (ActionSchema) instead of free-text — correct-by-construction.
53
+ */
54
+ objectActions?: Array<{
55
+ name: string;
56
+ label?: string;
57
+ locations?: string[];
58
+ }>;
59
+ /** Loading flag for the action catalog. */
60
+ objectActionsLoading?: boolean;
61
+ /**
62
+ * Per-value sub-schemas for the `dynamic-config` widget: a map from a parent
63
+ * field's value (e.g. the chosen driver id) to the JSON-Schema describing the
64
+ * config object for that value. Lets a single `config` field render different
65
+ * fields depending on a sibling selection (driver → connection settings).
66
+ */
67
+ dynamicSchemas?: Record<string, {
68
+ properties?: Record<string, any>;
69
+ required?: string[];
70
+ }>;
25
71
  }
26
72
  export interface WidgetProps {
27
73
  id?: string;
@@ -64,5 +110,47 @@ export interface WidgetProps {
64
110
  formData?: Record<string, unknown>;
65
111
  }
66
112
  export type WidgetRenderer = (props: WidgetProps) => React.ReactElement;
113
+ /**
114
+ * Resolve a stored `sourceView` value against a source object's view catalog,
115
+ * mirroring the runtime resolver (InterfaceListPage.resolveSourceView): a value
116
+ * resolves if it's an exact view name, a bare name matching a view's
117
+ * `<object>.<name>` suffix, or the special `default`/`list` (→ object default
118
+ * view). `showStored` is true when the stored value needs a synthesized option
119
+ * (i.e. it isn't already an exact catalog entry). Exported for unit tests.
120
+ */
121
+ export declare function resolveStoredViewRef(views: Array<{
122
+ name: string;
123
+ label?: string;
124
+ }>, current: string): {
125
+ exact?: {
126
+ name: string;
127
+ label?: string;
128
+ };
129
+ suffixMatch?: {
130
+ name: string;
131
+ label?: string;
132
+ };
133
+ isSpecial: boolean;
134
+ resolves: boolean;
135
+ showStored: boolean;
136
+ };
137
+ /**
138
+ * Searchable icon picker for `widget: 'icon'` string fields (page/app/object
139
+ * `icon`). Replaces the raw text input where an author had to know and type a
140
+ * Lucide name. The trigger shows a live preview of the current icon; opening it
141
+ * reveals a search box + a grid of matching icons (preview + name). Selecting
142
+ * writes the kebab-case name string.
143
+ *
144
+ * Out-of-catalog values survive: a name that isn't a Lucide icon (e.g. one from
145
+ * another library, or a typo to be fixed later) is still shown on the trigger as
146
+ * plain text (LazyIcon degrades to a fallback glyph) and is offered as the first
147
+ * "keep" option so re-opening the picker never silently drops it.
148
+ *
149
+ * Built inline (no Radix portal) so the search + grid render eagerly — the same
150
+ * jsdom-friendly choice the other pickers' tests rely on.
151
+ */
152
+ export declare function IconPickerWidget({ id, value, onChange, readOnly }: WidgetProps): React.JSX.Element;
153
+ /** Mirrors objectql\'s SECRET_MASK: a stored secret reads back as this, never plaintext. */
154
+ export declare const SECRET_MASK = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
67
155
  export declare const WIDGETS: Record<string, WidgetRenderer>;
68
- export declare function CodeWidget({ schema, value, onChange, readOnly, fieldSpec, }: WidgetProps): import("react/jsx-runtime").JSX.Element;
156
+ export declare function CodeWidget({ schema, value, onChange, readOnly, fieldSpec, }: WidgetProps): React.JSX.Element;