@object-ui/app-shell 6.2.3 → 7.1.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 (486) hide show
  1. package/CHANGELOG.md +1229 -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 +184 -39
  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 +747 -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 +28 -0
  27. package/dist/console/ai/LiveCanvas.js +80 -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 +137 -4
  90. package/dist/hooks/useChatConversation.js +316 -25
  91. package/dist/hooks/useConsoleActionRuntime.d.ts +70 -0
  92. package/dist/hooks/useConsoleActionRuntime.js +564 -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 +18 -8
  110. package/dist/index.js +17 -5
  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 +34 -2
  124. package/dist/layout/ConsoleFloatingChatbot.js +391 -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 +242 -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/layout/agentPicker.d.ts +56 -0
  140. package/dist/layout/agentPicker.js +40 -0
  141. package/dist/observability/index.d.ts +1 -0
  142. package/dist/observability/index.js +1 -0
  143. package/dist/observability/settleSignal.d.ts +64 -0
  144. package/dist/observability/settleSignal.js +131 -0
  145. package/dist/preview/CommitTimeline.d.ts +15 -0
  146. package/dist/preview/CommitTimeline.js +82 -0
  147. package/dist/preview/DraftChangesPanel.d.ts +19 -0
  148. package/dist/preview/DraftChangesPanel.js +114 -0
  149. package/dist/preview/DraftPreviewBar.d.ts +8 -0
  150. package/dist/preview/DraftPreviewBar.js +86 -0
  151. package/dist/preview/PreviewDraftEmptyState.d.ts +16 -0
  152. package/dist/preview/PreviewDraftEmptyState.js +47 -0
  153. package/dist/preview/PreviewModeContext.d.ts +57 -0
  154. package/dist/preview/PreviewModeContext.js +99 -0
  155. package/dist/preview/UnpublishedAppBar.d.ts +8 -0
  156. package/dist/preview/UnpublishedAppBar.js +83 -0
  157. package/dist/preview/commitHistory.d.ts +28 -0
  158. package/dist/preview/commitHistory.js +48 -0
  159. package/dist/preview/draftStatus.d.ts +20 -0
  160. package/dist/preview/draftStatus.js +27 -0
  161. package/dist/preview/usePublishAllDrafts.d.ts +18 -0
  162. package/dist/preview/usePublishAllDrafts.js +106 -0
  163. package/dist/providers/AdapterProvider.d.ts +1 -1
  164. package/dist/providers/AdapterProvider.js +6 -1
  165. package/dist/providers/ExpressionProvider.d.ts +1 -1
  166. package/dist/providers/MetadataProvider.d.ts +17 -2
  167. package/dist/providers/MetadataProvider.js +192 -12
  168. package/dist/runtime-config.d.ts +46 -2
  169. package/dist/runtime-config.js +39 -2
  170. package/dist/services/builtinComponents.js +68 -59
  171. package/dist/skeletons/SkeletonDashboard.d.ts +1 -1
  172. package/dist/skeletons/SkeletonDetail.d.ts +1 -1
  173. package/dist/skeletons/SkeletonGrid.d.ts +1 -1
  174. package/dist/utils/appRoute.d.ts +21 -0
  175. package/dist/utils/appRoute.js +25 -0
  176. package/dist/utils/deriveRelatedLists.d.ts +54 -0
  177. package/dist/utils/deriveRelatedLists.js +91 -0
  178. package/dist/utils/index.d.ts +4 -0
  179. package/dist/utils/index.js +3 -0
  180. package/dist/utils/managedByEmptyState.d.ts +8 -1
  181. package/dist/utils/managedByEmptyState.js +13 -7
  182. package/dist/utils/preferLocal.d.ts +18 -0
  183. package/dist/utils/preferLocal.js +24 -0
  184. package/dist/views/ActionConfirmDialog.d.ts +1 -1
  185. package/dist/views/ActionConfirmDialog.js +3 -1
  186. package/dist/views/ActionParamDialog.d.ts +6 -1
  187. package/dist/views/ActionParamDialog.js +9 -3
  188. package/dist/views/ActionResultDialog.d.ts +13 -0
  189. package/dist/views/ActionResultDialog.js +134 -0
  190. package/dist/views/ComponentNavView.d.ts +14 -1
  191. package/dist/views/CreateViewDialog.d.ts +1 -1
  192. package/dist/views/DashboardConfigPanel.d.ts +28 -0
  193. package/dist/views/DashboardConfigPanel.js +81 -0
  194. package/dist/views/DashboardView.d.ts +4 -3
  195. package/dist/views/DashboardView.js +38 -239
  196. package/dist/views/FlowRunner.d.ts +31 -0
  197. package/dist/views/FlowRunner.js +121 -0
  198. package/dist/views/InterfaceListPage.d.ts +49 -0
  199. package/dist/views/InterfaceListPage.js +347 -0
  200. package/dist/views/MetadataInspector.d.ts +2 -2
  201. package/dist/views/ObjectView.d.ts +1 -1
  202. package/dist/views/ObjectView.js +209 -532
  203. package/dist/views/PageView.d.ts +8 -3
  204. package/dist/views/PageView.js +45 -32
  205. package/dist/views/RecordDetailView.d.ts +1 -1
  206. package/dist/views/RecordDetailView.js +363 -148
  207. package/dist/views/RecordFormPage.d.ts +1 -1
  208. package/dist/views/RecordFormPage.js +26 -1
  209. package/dist/views/ReportConfigPanel.d.ts +37 -0
  210. package/dist/views/ReportConfigPanel.js +85 -0
  211. package/dist/views/ReportView.d.ts +1 -1
  212. package/dist/views/ReportView.js +116 -7
  213. package/dist/views/RuntimeDraftBar.d.ts +30 -0
  214. package/dist/views/RuntimeDraftBar.js +112 -0
  215. package/dist/views/ScreenView.d.ts +70 -0
  216. package/dist/views/ScreenView.js +73 -0
  217. package/dist/views/SearchResultsPage.d.ts +1 -1
  218. package/dist/views/SearchResultsPage.js +8 -18
  219. package/dist/views/ViewConfigPanel.d.ts +24 -17
  220. package/dist/views/ViewConfigPanel.js +121 -77
  221. package/dist/views/index.d.ts +1 -1
  222. package/dist/views/index.js +1 -1
  223. package/dist/views/metadata-admin/AuditPanel.d.ts +28 -0
  224. package/dist/views/metadata-admin/AuditPanel.js +79 -0
  225. package/dist/views/metadata-admin/DiagnosticsPage.d.ts +20 -0
  226. package/dist/views/metadata-admin/DiagnosticsPage.js +69 -0
  227. package/dist/views/metadata-admin/DirectoryPage.d.ts +16 -1
  228. package/dist/views/metadata-admin/DirectoryPage.js +101 -24
  229. package/dist/views/metadata-admin/DraftReviewPanel.d.ts +33 -0
  230. package/dist/views/metadata-admin/DraftReviewPanel.js +77 -0
  231. package/dist/views/metadata-admin/EmbeddedItemEditor.d.ts +17 -1
  232. package/dist/views/metadata-admin/EmbeddedItemEditor.js +15 -8
  233. package/dist/views/metadata-admin/JsonSourceEditor.d.ts +39 -0
  234. package/dist/views/metadata-admin/JsonSourceEditor.js +196 -0
  235. package/dist/views/metadata-admin/LayeredDiff.d.ts +39 -1
  236. package/dist/views/metadata-admin/LayeredDiff.js +171 -5
  237. package/dist/views/metadata-admin/MetadataDetailDrawer.d.ts +15 -1
  238. package/dist/views/metadata-admin/MetadataTypeActions.d.ts +48 -0
  239. package/dist/views/metadata-admin/MetadataTypeActions.js +165 -0
  240. package/dist/views/metadata-admin/PackagesPage.d.ts +18 -0
  241. package/dist/views/metadata-admin/PackagesPage.js +403 -0
  242. package/dist/views/metadata-admin/PageShell.d.ts +1 -1
  243. package/dist/views/metadata-admin/PageShell.js +9 -4
  244. package/dist/views/metadata-admin/PermissionMatrixEditor.d.ts +35 -1
  245. package/dist/views/metadata-admin/QuickFind.d.ts +21 -1
  246. package/dist/views/metadata-admin/QuickFind.js +6 -3
  247. package/dist/views/metadata-admin/RelatedPanel.d.ts +24 -1
  248. package/dist/views/metadata-admin/RelatedPanel.js +20 -18
  249. package/dist/views/metadata-admin/ResourceEditPage.d.ts +40 -1
  250. package/dist/views/metadata-admin/ResourceEditPage.js +1250 -60
  251. package/dist/views/metadata-admin/ResourceHistoryPage.d.ts +39 -1
  252. package/dist/views/metadata-admin/ResourceHistoryPage.js +66 -16
  253. package/dist/views/metadata-admin/ResourceListPage.d.ts +13 -1
  254. package/dist/views/metadata-admin/ResourceListPage.js +258 -30
  255. package/dist/views/metadata-admin/ResourceRouter.d.ts +23 -1
  256. package/dist/views/metadata-admin/SchemaForm.d.ts +34 -1
  257. package/dist/views/metadata-admin/SchemaForm.js +559 -49
  258. package/dist/views/metadata-admin/StudioHomePage.d.ts +22 -0
  259. package/dist/views/metadata-admin/StudioHomePage.js +205 -0
  260. package/dist/views/metadata-admin/anchors.js +255 -24
  261. package/dist/views/metadata-admin/clientValidation.d.ts +50 -0
  262. package/dist/views/metadata-admin/clientValidation.js +169 -0
  263. package/dist/views/metadata-admin/color-variant-field.d.ts +30 -0
  264. package/dist/views/metadata-admin/color-variant-field.js +38 -0
  265. package/dist/views/metadata-admin/createDerive.d.ts +75 -0
  266. package/dist/views/metadata-admin/createDerive.js +179 -0
  267. package/dist/views/metadata-admin/dashboard-schema.d.ts +12 -0
  268. package/dist/views/metadata-admin/dashboard-schema.js +80 -0
  269. package/dist/views/metadata-admin/datasource/DatasourceResourcePage.d.ts +35 -0
  270. package/dist/views/metadata-admin/datasource/DatasourceResourcePage.js +327 -0
  271. package/dist/views/metadata-admin/datasource/register.d.ts +1 -0
  272. package/dist/views/metadata-admin/datasource/register.js +24 -0
  273. package/dist/views/metadata-admin/default-inspector-registry.d.ts +49 -0
  274. package/dist/views/metadata-admin/default-inspector-registry.js +8 -0
  275. package/dist/views/metadata-admin/default-schemas.js +115 -10
  276. package/dist/views/metadata-admin/external/ExternalDatasourcePanel.d.ts +27 -0
  277. package/dist/views/metadata-admin/external/ExternalDatasourcePanel.js +69 -0
  278. package/dist/views/metadata-admin/external/ImportObjectDialog.d.ts +27 -0
  279. package/dist/views/metadata-admin/external/ImportObjectDialog.js +77 -0
  280. package/dist/views/metadata-admin/external/SchemaBrowser.d.ts +16 -0
  281. package/dist/views/metadata-admin/external/SchemaBrowser.js +74 -0
  282. package/dist/views/metadata-admin/external/ValidationPanel.d.ts +16 -0
  283. package/dist/views/metadata-admin/external/ValidationPanel.js +68 -0
  284. package/dist/views/metadata-admin/external/api.d.ts +100 -0
  285. package/dist/views/metadata-admin/external/api.js +124 -0
  286. package/dist/views/metadata-admin/i18n.d.ts +1 -0
  287. package/dist/views/metadata-admin/i18n.js +1252 -2
  288. package/dist/views/metadata-admin/index.d.ts +8 -5
  289. package/dist/views/metadata-admin/index.js +12 -2
  290. package/dist/views/metadata-admin/inspector-registry.d.ts +51 -0
  291. package/dist/views/metadata-admin/inspector-registry.js +11 -0
  292. package/dist/views/metadata-admin/inspectors/ActionDefaultInspector.d.ts +30 -0
  293. package/dist/views/metadata-admin/inspectors/ActionDefaultInspector.js +180 -0
  294. package/dist/views/metadata-admin/inspectors/AppNavInspector.d.ts +16 -0
  295. package/dist/views/metadata-admin/inspectors/AppNavInspector.js +110 -0
  296. package/dist/views/metadata-admin/inspectors/ConditionBuilder.d.ts +29 -0
  297. package/dist/views/metadata-admin/inspectors/ConditionBuilder.js +154 -0
  298. package/dist/views/metadata-admin/inspectors/DashboardDefaultInspector.d.ts +28 -0
  299. package/dist/views/metadata-admin/inspectors/DashboardDefaultInspector.js +110 -0
  300. package/dist/views/metadata-admin/inspectors/DashboardWidgetInspector.d.ts +18 -0
  301. package/dist/views/metadata-admin/inspectors/DashboardWidgetInspector.js +139 -0
  302. package/dist/views/metadata-admin/inspectors/DatasetDefaultInspector.d.ts +21 -0
  303. package/dist/views/metadata-admin/inspectors/DatasetDefaultInspector.js +221 -0
  304. package/dist/views/metadata-admin/inspectors/FlowEdgeInspector.d.ts +16 -0
  305. package/dist/views/metadata-admin/inspectors/FlowEdgeInspector.js +126 -0
  306. package/dist/views/metadata-admin/inspectors/FlowInspector.d.ts +12 -0
  307. package/dist/views/metadata-admin/inspectors/FlowInspector.js +9 -0
  308. package/dist/views/metadata-admin/inspectors/FlowKeyValueField.d.ts +30 -0
  309. package/dist/views/metadata-admin/inspectors/FlowKeyValueField.js +125 -0
  310. package/dist/views/metadata-admin/inspectors/FlowNodeConfigField.d.ts +18 -0
  311. package/dist/views/metadata-admin/inspectors/FlowNodeConfigField.js +40 -0
  312. package/dist/views/metadata-admin/inspectors/FlowNodeInspector.d.ts +14 -0
  313. package/dist/views/metadata-admin/inspectors/FlowNodeInspector.js +205 -0
  314. package/dist/views/metadata-admin/inspectors/FlowObjectListField.d.ts +26 -0
  315. package/dist/views/metadata-admin/inspectors/FlowObjectListField.js +105 -0
  316. package/dist/views/metadata-admin/inspectors/FlowReferenceField.d.ts +83 -0
  317. package/dist/views/metadata-admin/inspectors/FlowReferenceField.js +181 -0
  318. package/dist/views/metadata-admin/inspectors/FlowStringListField.d.ts +21 -0
  319. package/dist/views/metadata-admin/inspectors/FlowStringListField.js +60 -0
  320. package/dist/views/metadata-admin/inspectors/InspectorComboField.d.ts +40 -0
  321. package/dist/views/metadata-admin/inspectors/InspectorComboField.js +61 -0
  322. package/dist/views/metadata-admin/inspectors/ObjectDefaultInspector.d.ts +21 -0
  323. package/dist/views/metadata-admin/inspectors/ObjectDefaultInspector.js +55 -0
  324. package/dist/views/metadata-admin/inspectors/ObjectFieldInspector.d.ts +23 -0
  325. package/dist/views/metadata-admin/inspectors/ObjectFieldInspector.js +365 -0
  326. package/dist/views/metadata-admin/inspectors/PageBlockInspector.d.ts +48 -0
  327. package/dist/views/metadata-admin/inspectors/PageBlockInspector.js +332 -0
  328. package/dist/views/metadata-admin/inspectors/ReportDefaultInspector.d.ts +58 -0
  329. package/dist/views/metadata-admin/inspectors/ReportDefaultInspector.js +218 -0
  330. package/dist/views/metadata-admin/inspectors/ViewColumnInspector.d.ts +19 -0
  331. package/dist/views/metadata-admin/inspectors/ViewColumnInspector.js +144 -0
  332. package/dist/views/metadata-admin/inspectors/ViewInspector.d.ts +19 -0
  333. package/dist/views/metadata-admin/inspectors/ViewInspector.js +21 -0
  334. package/dist/views/metadata-admin/inspectors/ViewVariantInspector.d.ts +54 -0
  335. package/dist/views/metadata-admin/inspectors/ViewVariantInspector.js +191 -0
  336. package/dist/views/metadata-admin/inspectors/_shared.d.ts +128 -0
  337. package/dist/views/metadata-admin/inspectors/_shared.js +113 -0
  338. package/dist/views/metadata-admin/inspectors/datasetFilterCondition.d.ts +24 -0
  339. package/dist/views/metadata-admin/inspectors/datasetFilterCondition.js +97 -0
  340. package/dist/views/metadata-admin/inspectors/expression-validate.d.ts +26 -0
  341. package/dist/views/metadata-admin/inspectors/expression-validate.js +66 -0
  342. package/dist/views/metadata-admin/inspectors/flow-node-config.d.ts +143 -0
  343. package/dist/views/metadata-admin/inspectors/flow-node-config.js +506 -0
  344. package/dist/views/metadata-admin/inspectors/index.d.ts +1 -0
  345. package/dist/views/metadata-admin/inspectors/index.js +45 -0
  346. package/dist/views/metadata-admin/inspectors/json-schema-to-fields.d.ts +40 -0
  347. package/dist/views/metadata-admin/inspectors/json-schema-to-fields.js +227 -0
  348. package/dist/views/metadata-admin/inspectors/useDatasetFields.d.ts +72 -0
  349. package/dist/views/metadata-admin/inspectors/useDatasetFields.js +0 -0
  350. package/dist/views/metadata-admin/issuePath.d.ts +22 -0
  351. package/dist/views/metadata-admin/issuePath.js +65 -0
  352. package/dist/views/metadata-admin/mergeServerFields.d.ts +65 -0
  353. package/dist/views/metadata-admin/mergeServerFields.js +56 -0
  354. package/dist/views/metadata-admin/package-scope.d.ts +26 -0
  355. package/dist/views/metadata-admin/package-scope.js +43 -0
  356. package/dist/views/metadata-admin/preview-registry.d.ts +55 -0
  357. package/dist/views/metadata-admin/previews/ActionPreview.d.ts +25 -0
  358. package/dist/views/metadata-admin/previews/ActionPreview.js +238 -0
  359. package/dist/views/metadata-admin/previews/AddWidgetPicker.d.ts +12 -0
  360. package/dist/views/metadata-admin/previews/AddWidgetPicker.js +56 -0
  361. package/dist/views/metadata-admin/previews/AgentPreview.d.ts +24 -0
  362. package/dist/views/metadata-admin/previews/AgentPreview.js +100 -0
  363. package/dist/views/metadata-admin/previews/AppNavCanvas.d.ts +31 -0
  364. package/dist/views/metadata-admin/previews/AppNavCanvas.js +260 -0
  365. package/dist/views/metadata-admin/previews/AppPreview.d.ts +16 -1
  366. package/dist/views/metadata-admin/previews/AppPreview.js +23 -14
  367. package/dist/views/metadata-admin/previews/BookPreview.d.ts +20 -0
  368. package/dist/views/metadata-admin/previews/BookPreview.js +132 -0
  369. package/dist/views/metadata-admin/previews/DashboardPreview.d.ts +16 -1
  370. package/dist/views/metadata-admin/previews/DashboardPreview.js +110 -8
  371. package/dist/views/metadata-admin/previews/DatasetPreview.d.ts +18 -0
  372. package/dist/views/metadata-admin/previews/DatasetPreview.js +105 -0
  373. package/dist/views/metadata-admin/previews/DatasourcePreview.d.ts +23 -0
  374. package/dist/views/metadata-admin/previews/DatasourcePreview.js +68 -0
  375. package/dist/views/metadata-admin/previews/EmailTemplatePreview.d.ts +14 -1
  376. package/dist/views/metadata-admin/previews/FieldStub.d.ts +30 -0
  377. package/dist/views/metadata-admin/previews/FieldStub.js +104 -0
  378. package/dist/views/metadata-admin/previews/FieldsListEditor.d.ts +50 -0
  379. package/dist/views/metadata-admin/previews/FieldsListEditor.js +97 -0
  380. package/dist/views/metadata-admin/previews/FlowCanvas.d.ts +49 -0
  381. package/dist/views/metadata-admin/previews/FlowCanvas.js +416 -0
  382. package/dist/views/metadata-admin/previews/FlowPreview.d.ts +20 -0
  383. package/dist/views/metadata-admin/previews/FlowPreview.js +120 -0
  384. package/dist/views/metadata-admin/previews/FlowRunsPanel.d.ts +46 -0
  385. package/dist/views/metadata-admin/previews/FlowRunsPanel.js +97 -0
  386. package/dist/views/metadata-admin/previews/FlowSimulatorPanel.d.ts +25 -0
  387. package/dist/views/metadata-admin/previews/FlowSimulatorPanel.js +204 -0
  388. package/dist/views/metadata-admin/previews/JobPreview.d.ts +28 -0
  389. package/dist/views/metadata-admin/previews/JobPreview.js +290 -0
  390. package/dist/views/metadata-admin/previews/ObjectFormCanvas.d.ts +30 -0
  391. package/dist/views/metadata-admin/previews/ObjectFormCanvas.js +547 -0
  392. package/dist/views/metadata-admin/previews/ObjectPreview.d.ts +14 -1
  393. package/dist/views/metadata-admin/previews/ObjectPreview.js +5 -30
  394. package/dist/views/metadata-admin/previews/OutlineStrip.d.ts +32 -0
  395. package/dist/views/metadata-admin/previews/OutlineStrip.js +8 -0
  396. package/dist/views/metadata-admin/previews/PageBlockCanvas.d.ts +49 -0
  397. package/dist/views/metadata-admin/previews/PageBlockCanvas.js +510 -0
  398. package/dist/views/metadata-admin/previews/PagePreview.d.ts +10 -1
  399. package/dist/views/metadata-admin/previews/PagePreview.js +200 -5
  400. package/dist/views/metadata-admin/previews/PermissionPreview.d.ts +27 -0
  401. package/dist/views/metadata-admin/previews/PermissionPreview.js +115 -0
  402. package/dist/views/metadata-admin/previews/PreviewShell.d.ts +29 -6
  403. package/dist/views/metadata-admin/previews/PreviewShell.js +16 -3
  404. package/dist/views/metadata-admin/previews/ReportPreview.d.ts +18 -1
  405. package/dist/views/metadata-admin/previews/ReportPreview.js +23 -15
  406. package/dist/views/metadata-admin/previews/RolePreview.d.ts +19 -0
  407. package/dist/views/metadata-admin/previews/RolePreview.js +14 -0
  408. package/dist/views/metadata-admin/previews/ScreenPreview.d.ts +38 -0
  409. package/dist/views/metadata-admin/previews/ScreenPreview.js +61 -0
  410. package/dist/views/metadata-admin/previews/SkillPreview.d.ts +22 -0
  411. package/dist/views/metadata-admin/previews/SkillPreview.js +34 -0
  412. package/dist/views/metadata-admin/previews/ToolPreview.d.ts +25 -0
  413. package/dist/views/metadata-admin/previews/ToolPreview.js +122 -0
  414. package/dist/views/metadata-admin/previews/TranslationPreview.d.ts +25 -0
  415. package/dist/views/metadata-admin/previews/TranslationPreview.js +52 -0
  416. package/dist/views/metadata-admin/previews/ValidationPreview.d.ts +27 -0
  417. package/dist/views/metadata-admin/previews/ValidationPreview.js +110 -0
  418. package/dist/views/metadata-admin/previews/ViewColumnPanes.d.ts +62 -0
  419. package/dist/views/metadata-admin/previews/ViewColumnPanes.js +140 -0
  420. package/dist/views/metadata-admin/previews/ViewPreview.d.ts +23 -1
  421. package/dist/views/metadata-admin/previews/ViewPreview.js +101 -73
  422. package/dist/views/metadata-admin/previews/block-config.d.ts +82 -0
  423. package/dist/views/metadata-admin/previews/block-config.js +324 -0
  424. package/dist/views/metadata-admin/previews/block-types.d.ts +40 -0
  425. package/dist/views/metadata-admin/previews/block-types.js +110 -0
  426. package/dist/views/metadata-admin/previews/field-types.d.ts +53 -0
  427. package/dist/views/metadata-admin/previews/field-types.js +97 -0
  428. package/dist/views/metadata-admin/previews/flow-canvas-layout.d.ts +102 -0
  429. package/dist/views/metadata-admin/previews/flow-canvas-layout.js +227 -0
  430. package/dist/views/metadata-admin/previews/flow-canvas-parts.d.ts +96 -0
  431. package/dist/views/metadata-admin/previews/flow-canvas-parts.js +373 -0
  432. package/dist/views/metadata-admin/previews/form-preview.d.ts +24 -0
  433. package/dist/views/metadata-admin/previews/form-preview.js +29 -0
  434. package/dist/views/metadata-admin/previews/index.js +43 -0
  435. package/dist/views/metadata-admin/previews/object-fields-bridge.d.ts +66 -0
  436. package/dist/views/metadata-admin/previews/object-fields-bridge.js +171 -0
  437. package/dist/views/metadata-admin/previews/object-fields-io.d.ts +130 -0
  438. package/dist/views/metadata-admin/previews/object-fields-io.js +243 -0
  439. package/dist/views/metadata-admin/previews/screen-spec.d.ts +43 -0
  440. package/dist/views/metadata-admin/previews/screen-spec.js +108 -0
  441. package/dist/views/metadata-admin/previews/simulator/flow-sim-types.d.ts +102 -0
  442. package/dist/views/metadata-admin/previews/simulator/flow-sim-types.js +2 -0
  443. package/dist/views/metadata-admin/previews/simulator/flow-sim-validate.d.ts +15 -0
  444. package/dist/views/metadata-admin/previews/simulator/flow-sim-validate.js +185 -0
  445. package/dist/views/metadata-admin/previews/simulator/flow-simulator.d.ts +73 -0
  446. package/dist/views/metadata-admin/previews/simulator/flow-simulator.js +426 -0
  447. package/dist/views/metadata-admin/previews/useDatasetCatalog.d.ts +47 -0
  448. package/dist/views/metadata-admin/previews/useDatasetCatalog.js +133 -0
  449. package/dist/views/metadata-admin/previews/useFlowNodePalette.d.ts +44 -0
  450. package/dist/views/metadata-admin/previews/useFlowNodePalette.js +124 -0
  451. package/dist/views/metadata-admin/previews/useMetaOptions.d.ts +8 -0
  452. package/dist/views/metadata-admin/previews/useMetaOptions.js +50 -0
  453. package/dist/views/metadata-admin/previews/useObjectFields.d.ts +23 -0
  454. package/dist/views/metadata-admin/previews/useObjectFields.js +79 -0
  455. package/dist/views/metadata-admin/previews/useObjectOptions.d.ts +8 -0
  456. package/dist/views/metadata-admin/previews/useObjectOptions.js +43 -0
  457. package/dist/views/metadata-admin/previews/view-column-io.d.ts +42 -0
  458. package/dist/views/metadata-admin/previews/view-column-io.js +73 -0
  459. package/dist/views/metadata-admin/previews/widget-types.d.ts +24 -0
  460. package/dist/views/metadata-admin/previews/widget-types.js +40 -0
  461. package/dist/views/metadata-admin/registry.d.ts +140 -19
  462. package/dist/views/metadata-admin/report-schema.d.ts +26 -0
  463. package/dist/views/metadata-admin/report-schema.js +121 -0
  464. package/dist/views/metadata-admin/useMetadata.d.ts +100 -2
  465. package/dist/views/metadata-admin/useMetadata.js +155 -4
  466. package/dist/views/metadata-admin/view-item-normalize.d.ts +20 -0
  467. package/dist/views/metadata-admin/view-item-normalize.js +68 -0
  468. package/dist/views/metadata-admin/view-schema.d.ts +16 -0
  469. package/dist/views/metadata-admin/view-schema.js +107 -0
  470. package/dist/views/metadata-admin/view-variant-model.d.ts +23 -0
  471. package/dist/views/metadata-admin/view-variant-model.js +64 -0
  472. package/dist/views/metadata-admin/widgets.d.ts +89 -1
  473. package/dist/views/metadata-admin/widgets.js +491 -17
  474. package/dist/views/runtime-metadata-persistence.d.ts +78 -0
  475. package/dist/views/runtime-metadata-persistence.js +89 -0
  476. package/dist/views/useOpenRecordList.d.ts +18 -0
  477. package/dist/views/useOpenRecordList.js +36 -0
  478. package/dist/views/userFilterUrlState.d.ts +15 -0
  479. package/dist/views/userFilterUrlState.js +53 -0
  480. package/dist/views/view-config-adapter.d.ts +38 -0
  481. package/dist/views/view-config-adapter.js +80 -0
  482. package/package.json +52 -34
  483. package/dist/views/DesignDrawer.d.ts +0 -28
  484. package/dist/views/DesignDrawer.js +0 -51
  485. package/dist/views/metadata-admin/DesignerEditorWrapper.d.ts +0 -68
  486. package/dist/views/metadata-admin/DesignerEditorWrapper.js +0 -158
@@ -22,7 +22,7 @@ export interface RecentItem {
22
22
  id: string;
23
23
  label: string;
24
24
  href: string;
25
- type: 'object' | 'dashboard' | 'page' | 'report' | 'record';
25
+ type: 'object' | 'dashboard' | 'page' | 'report' | 'record' | 'metadata';
26
26
  /** ISO timestamp of last visit */
27
27
  visitedAt: string;
28
28
  }
@@ -33,7 +33,7 @@ interface RecentItemsContextValue {
33
33
  }
34
34
  export declare function RecentItemsProvider({ children }: {
35
35
  children: ReactNode;
36
- }): import("react/jsx-runtime").JSX.Element;
36
+ }): import("react").JSX.Element;
37
37
  /**
38
38
  * Access shared "recently-accessed" state.
39
39
  *
@@ -30,7 +30,7 @@ export interface UserDataAdapter<T> {
30
30
  export type UserStateKind = 'favorites' | 'recent';
31
31
  export declare function UserStateAdaptersProvider({ children }: {
32
32
  children: ReactNode;
33
- }): import("react/jsx-runtime").JSX.Element;
33
+ }): import("react").JSX.Element;
34
34
  /** Read the currently-attached adapter for a given kind. */
35
35
  export declare function useUserStateAdapter<T>(kind: UserStateKind): UserDataAdapter<T> | null;
36
36
  /**
@@ -3,5 +3,7 @@ export { FavoritesProvider, useFavorites } from './FavoritesProvider';
3
3
  export type { FavoriteItem } from './FavoritesProvider';
4
4
  export { RecentItemsProvider, useRecentItems } from './RecentItemsProvider';
5
5
  export type { RecentItem } from './RecentItemsProvider';
6
+ export { CommandPaletteProvider, useCommandPalette, } from './CommandPaletteProvider';
7
+ export type { CommandPaletteContextValue } from './CommandPaletteProvider';
6
8
  export { UserStateAdaptersProvider, useUserStateAdapter, useAttachUserStateAdapters, } from './UserStateAdapters';
7
9
  export type { UserDataAdapter, UserStateKind } from './UserStateAdapters';
@@ -1,4 +1,5 @@
1
1
  export { NavigationProvider, useNavigationContext } from './NavigationContext';
2
2
  export { FavoritesProvider, useFavorites } from './FavoritesProvider';
3
3
  export { RecentItemsProvider, useRecentItems } from './RecentItemsProvider';
4
+ export { CommandPaletteProvider, useCommandPalette, } from './CommandPaletteProvider';
4
5
  export { UserStateAdaptersProvider, useUserStateAdapter, useAttachUserStateAdapters, } from './UserStateAdapters';
@@ -1,11 +1,14 @@
1
1
  export { useFavorites, type FavoriteItem } from './useFavorites';
2
+ export { useActionModal, type ModalDescriptor } from './useActionModal';
2
3
  export { useMetadataService } from './useMetadataService';
3
4
  export { useNavPins } from './useNavPins';
4
5
  export { useNavigationSync, NavigationSyncEffect, generateNavId, addNavigationItem, removeNavigationItems, renameNavigationItems, navigationEqual, type UseNavigationSyncReturn, } from './useNavigationSync';
5
6
  export { useObjectActions } from './useObjectActions';
6
7
  export { useRecentItems, type RecentItem } from './useRecentItems';
7
- export { useRecordApprovals, type ApprovalProcessLite, type ApprovalRequestLite } from './useRecordApprovals';
8
+ export { useRecordApprovals, type ApprovalRequestLite } from './useRecordApprovals';
8
9
  export { useResponsiveSidebar } from './useResponsiveSidebar';
10
+ export { useSettleSignal, type SettleSignalState } from './useSettleSignal';
11
+ export { useUrlOverlay, type UseUrlOverlayOptions, type UrlOverlayControls, } from './useUrlOverlay';
9
12
  export { useTrackRouteAsRecent, type UseTrackRouteAsRecentOptions } from './useTrackRouteAsRecent';
10
- export { useChatConversation, type HydratedUIMessage, type UseChatConversationOptions, type UseChatConversationReturn, } from './useChatConversation';
13
+ export { sanitizeChatMessagesForCache, useChatConversation, writeConversationMessagesCache, type HydratedUIMessage, type UseChatConversationOptions, type UseChatConversationReturn, } from './useChatConversation';
11
14
  export { useConversationList, type ConversationSummary, type UseConversationListOptions, type UseConversationListReturn, } from './useConversationList';
@@ -1,4 +1,5 @@
1
1
  export { useFavorites } from './useFavorites';
2
+ export { useActionModal } from './useActionModal';
2
3
  export { useMetadataService } from './useMetadataService';
3
4
  export { useNavPins } from './useNavPins';
4
5
  export { useNavigationSync, NavigationSyncEffect, generateNavId, addNavigationItem, removeNavigationItems, renameNavigationItems, navigationEqual, } from './useNavigationSync';
@@ -6,6 +7,8 @@ export { useObjectActions } from './useObjectActions';
6
7
  export { useRecentItems } from './useRecentItems';
7
8
  export { useRecordApprovals } from './useRecordApprovals';
8
9
  export { useResponsiveSidebar } from './useResponsiveSidebar';
10
+ export { useSettleSignal } from './useSettleSignal';
11
+ export { useUrlOverlay, } from './useUrlOverlay';
9
12
  export { useTrackRouteAsRecent } from './useTrackRouteAsRecent';
10
- export { useChatConversation, } from './useChatConversation';
13
+ export { sanitizeChatMessagesForCache, useChatConversation, writeConversationMessagesCache, } from './useChatConversation';
11
14
  export { useConversationList, } from './useConversationList';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ *
8
+ * useActionModal — a reusable `onModal` handler for the ActionProvider that
9
+ * renders an action's modal envelope in the right container by `placement`:
10
+ *
11
+ * placement: 'center' → Dialog (sized sm|default|lg|xl)
12
+ * placement: 'fullscreen' → Dialog, near-viewport
13
+ * placement: 'side' → Sheet (right|left)
14
+ * placement: 'bottom' → Drawer (bottom sheet)
15
+ *
16
+ * `content` is an arbitrary SchemaNode rendered via <SchemaRenderer>, so a
17
+ * modal action can open any page/form/list. Back-compat: a string target
18
+ * (e.g. "create_opportunity") or `{ objectName, mode }` opens a <ModalForm>.
19
+ *
20
+ * Returns `{ modalHandler, modalElement }`: pass `modalHandler` as the
21
+ * ActionProvider `onModal`, and render `modalElement` once in the subtree.
22
+ */
23
+ import React from 'react';
24
+ type Placement = 'center' | 'side' | 'bottom' | 'fullscreen';
25
+ type ModalSize = 'sm' | 'default' | 'lg' | 'xl' | 'full';
26
+ export interface ModalDescriptor {
27
+ placement?: Placement;
28
+ side?: 'left' | 'right';
29
+ size?: ModalSize;
30
+ title?: string;
31
+ description?: string;
32
+ /** Arbitrary SchemaNode rendered inside the chosen container. */
33
+ content?: any;
34
+ /** Back-compat: open an object form. */
35
+ objectName?: string;
36
+ mode?: string;
37
+ recordId?: string;
38
+ fields?: any;
39
+ }
40
+ type ActionResult = {
41
+ success: boolean;
42
+ reload?: boolean;
43
+ data?: any;
44
+ [k: string]: any;
45
+ };
46
+ /** Normalize the opaque `schema` arg the ActionRunner passes into a descriptor. */
47
+ export declare function normalizeModalSchema(schema: any): ModalDescriptor;
48
+ export declare function useActionModal(dataSource?: any): {
49
+ modalHandler: (schema: any) => Promise<ActionResult>;
50
+ modalElement: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null;
51
+ closeModal: (r: ActionResult) => void;
52
+ };
53
+ export {};
@@ -0,0 +1,111 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * ObjectUI
4
+ * Copyright (c) 2024-present ObjectStack Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ *
9
+ * useActionModal — a reusable `onModal` handler for the ActionProvider that
10
+ * renders an action's modal envelope in the right container by `placement`:
11
+ *
12
+ * placement: 'center' → Dialog (sized sm|default|lg|xl)
13
+ * placement: 'fullscreen' → Dialog, near-viewport
14
+ * placement: 'side' → Sheet (right|left)
15
+ * placement: 'bottom' → Drawer (bottom sheet)
16
+ *
17
+ * `content` is an arbitrary SchemaNode rendered via <SchemaRenderer>, so a
18
+ * modal action can open any page/form/list. Back-compat: a string target
19
+ * (e.g. "create_opportunity") or `{ objectName, mode }` opens a <ModalForm>.
20
+ *
21
+ * Returns `{ modalHandler, modalElement }`: pass `modalHandler` as the
22
+ * ActionProvider `onModal`, and render `modalElement` once in the subtree.
23
+ */
24
+ import { useCallback, useState } from 'react';
25
+ import { Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, cn, } from '@object-ui/components';
26
+ import { SchemaRenderer } from '@object-ui/react';
27
+ import { ModalForm } from '@object-ui/plugin-form';
28
+ const SIZE_CLASS = {
29
+ sm: 'sm:max-w-sm',
30
+ default: 'sm:max-w-lg',
31
+ lg: 'sm:max-w-2xl',
32
+ xl: 'sm:max-w-5xl',
33
+ full: 'sm:max-w-[95vw] sm:w-full',
34
+ };
35
+ const SIDE_SIZE_CLASS = {
36
+ lg: 'sm:max-w-2xl',
37
+ xl: 'sm:max-w-3xl',
38
+ full: 'sm:max-w-[95vw]',
39
+ };
40
+ /** Normalize the opaque `schema` arg the ActionRunner passes into a descriptor. */
41
+ export function normalizeModalSchema(schema) {
42
+ if (typeof schema === 'string') {
43
+ const m = schema.match(/^(create|new|add|edit|update)_(.+)$/);
44
+ if (m)
45
+ return { objectName: m[2], mode: m[1] === 'edit' || m[1] === 'update' ? 'edit' : 'create' };
46
+ return { objectName: schema, mode: 'create' };
47
+ }
48
+ if (schema && typeof schema === 'object') {
49
+ // A bare SchemaNode (has `type` but isn't a modal descriptor) → render as content.
50
+ if (schema.type && !schema.content && !schema.objectName && !schema.placement) {
51
+ return { content: schema };
52
+ }
53
+ return schema;
54
+ }
55
+ return {};
56
+ }
57
+ export function useActionModal(dataSource) {
58
+ const [state, setState] = useState(null);
59
+ const close = useCallback((r) => {
60
+ setState((s) => {
61
+ s?.resolve(r);
62
+ return null;
63
+ });
64
+ }, []);
65
+ const modalHandler = useCallback((schema) => new Promise((resolve) => {
66
+ setState({ d: normalizeModalSchema(schema), resolve });
67
+ }), []);
68
+ let modalElement = null;
69
+ if (state) {
70
+ const d = state.d;
71
+ const onOpenChange = (open) => {
72
+ if (!open)
73
+ close({ success: false });
74
+ };
75
+ if (d.objectName && !d.content) {
76
+ modalElement = (_jsx(ModalForm, { schema: {
77
+ type: 'object-form',
78
+ formType: 'modal',
79
+ objectName: d.objectName,
80
+ mode: d.mode || 'create',
81
+ recordId: d.recordId,
82
+ title: d.title,
83
+ description: d.description,
84
+ fields: d.fields,
85
+ modalSize: d.size,
86
+ open: true,
87
+ onOpenChange,
88
+ onSuccess: (data) => close({ success: true, reload: true, data }),
89
+ onCancel: () => close({ success: false }),
90
+ showSubmit: true,
91
+ showCancel: true,
92
+ }, dataSource: dataSource }));
93
+ }
94
+ else {
95
+ const placement = d.placement || 'center';
96
+ const body = d.content ? (_jsx(SchemaRenderer, { schema: d.content })) : d.description ? (_jsx("p", { className: "text-sm text-muted-foreground", children: d.description })) : null;
97
+ if (placement === 'side') {
98
+ modalElement = (_jsx(Sheet, { open: true, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { side: d.side || 'right', className: cn('w-full overflow-y-auto', SIDE_SIZE_CLASS[d.size || 'default']), children: [d.title && (_jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: d.title }), d.description && _jsx(SheetDescription, { children: d.description })] })), _jsx("div", { className: "py-3", children: body })] }) }));
99
+ }
100
+ else if (placement === 'bottom') {
101
+ modalElement = (_jsx(Drawer, { open: true, onOpenChange: onOpenChange, children: _jsxs(DrawerContent, { children: [d.title && (_jsxs(DrawerHeader, { children: [_jsx(DrawerTitle, { children: d.title }), d.description && _jsx(DrawerDescription, { children: d.description })] })), _jsx("div", { className: "max-h-[75vh] overflow-y-auto px-4 pb-6", children: body })] }) }));
102
+ }
103
+ else {
104
+ modalElement = (_jsx(Dialog, { open: true, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: cn(placement === 'fullscreen'
105
+ ? 'h-[95vh] w-full max-w-[98vw] overflow-y-auto'
106
+ : SIZE_CLASS[d.size || 'default']), children: [d.title && (_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: d.title }), d.description && _jsx(DialogDescription, { children: d.description })] })), _jsx("div", { children: body }), !d.content && (_jsx("div", { className: "flex justify-end", children: _jsx(Button, { onClick: () => close({ success: true }), children: "OK" }) }))] }) }));
107
+ }
108
+ }
109
+ }
110
+ return { modalHandler, modalElement, closeModal: close };
111
+ }
@@ -1,11 +1,13 @@
1
1
  /** Minimal UIMessage shape compatible with `@ai-sdk/react`'s `useChat`. */
2
+ export interface HydratedUIMessagePart {
3
+ type: string;
4
+ text?: string;
5
+ [key: string]: unknown;
6
+ }
2
7
  export interface HydratedUIMessage {
3
8
  id: string;
4
9
  role: 'user' | 'assistant' | 'system';
5
- parts: Array<{
6
- type: 'text';
7
- text: string;
8
- }>;
10
+ parts: HydratedUIMessagePart[];
9
11
  }
10
12
  export interface UseChatConversationOptions {
11
13
  /** Authenticated user id; hook is inert until this is defined. */
@@ -27,12 +29,143 @@ export interface UseChatConversationOptions {
27
29
  * original cache-first / create-on-miss behaviour.
28
30
  */
29
31
  activeId?: string;
32
+ /**
33
+ * Explicit "start a NEW conversation" intent (the sidebar's New button,
34
+ * `/ai?new=1`). Without it a bare `/ai` visit resumes the last cached
35
+ * conversation — which is right for a plain visit but made the New button a
36
+ * no-op: the resolved-once guard kept the current id and the URL-mirroring
37
+ * effect immediately rewrote `/ai` back to `/ai/:currentId`. When true (and
38
+ * no `activeId`), the cache and the guard are skipped and a fresh
39
+ * conversation is created. Ignored while `activeId` is set.
40
+ */
41
+ forceNew?: boolean;
30
42
  }
31
43
  export interface UseChatConversationReturn {
32
44
  conversationId: string | undefined;
45
+ /**
46
+ * The `scope` (agent) the current `conversationId` was resolved under. Lets a
47
+ * host distinguish "this id belongs to the active agent" from "this id is the
48
+ * PREVIOUS agent's, pending re-resolution after a switch" — so it doesn't
49
+ * mirror a stale id onto the new agent's URL.
50
+ */
51
+ conversationScope: string | undefined;
33
52
  initialMessages: HydratedUIMessage[];
34
53
  isLoading: boolean;
35
54
  /** Delete the current conversation + start a fresh one. */
36
55
  reset: () => Promise<void>;
37
56
  }
57
+ /**
58
+ * The subset of plugin-chatbot's `DraftReview` (mapMessages.ts) that the chat's
59
+ * draft/publish + ADR-0038 verification cards are derived from. Mirrored here —
60
+ * rather than imported — to keep this low-level hook free of a `@object-ui/
61
+ * plugin-chatbot` dependency; the round-trip test in
62
+ * `useChatConversation.test.tsx` runs these through the REAL detectors, so any
63
+ * incompatible drift fails CI.
64
+ */
65
+ interface CachedDraftReview {
66
+ items: Array<{
67
+ type: string;
68
+ name: string;
69
+ }>;
70
+ summary?: string;
71
+ packageId?: string;
72
+ autoPublishable?: boolean;
73
+ failedCount?: number;
74
+ materialized?: boolean;
75
+ verification?: {
76
+ errors: number;
77
+ warnings: number;
78
+ };
79
+ issues?: Array<{
80
+ severity: 'error' | 'warning';
81
+ code: string;
82
+ message: string;
83
+ fix?: string;
84
+ }>;
85
+ nextSteps?: string[];
86
+ }
87
+ /** Mirrors the subset of plugin-chatbot's `ProposedPlan` the "Proposed plan" card needs. */
88
+ interface CachedProposedPlan {
89
+ summary?: string;
90
+ objects: Array<{
91
+ name: string;
92
+ label?: string;
93
+ fieldCount: number;
94
+ }>;
95
+ counts: {
96
+ objects: number;
97
+ views: number;
98
+ dashboards: number;
99
+ seedData: number;
100
+ };
101
+ questions: string[];
102
+ assumptions: string[];
103
+ targetApp?: string;
104
+ }
105
+ interface CacheableChatToolInvocation {
106
+ toolCallId: string;
107
+ toolName: string;
108
+ state?: string;
109
+ errorText?: string;
110
+ /**
111
+ * The detect-relevant shapes the live render already derived from the tool
112
+ * result (`uiMessageToChatMessage`). Present on assistant tool invocations
113
+ * that staged a draft (`apply_blueprint` …) or proposed a plan
114
+ * (`propose_blueprint`). We re-serialize these into a COMPACT tool `output`
115
+ * so the cards survive a cache-fallback reload — see
116
+ * `sanitizeChatMessagesForCache`.
117
+ */
118
+ draftReview?: CachedDraftReview;
119
+ proposedPlan?: CachedProposedPlan;
120
+ }
121
+ interface CacheableChatMessage {
122
+ id: string;
123
+ role: 'user' | 'assistant' | 'system';
124
+ content?: string;
125
+ toolInvocations?: CacheableChatToolInvocation[];
126
+ }
127
+ export declare function writeConversationMessagesCache(conversationId: string | undefined, messages: HydratedUIMessage[]): void;
128
+ export declare function sanitizeChatMessagesForCache(messages: CacheableChatMessage[]): HydratedUIMessage[];
129
+ interface ServerMessage {
130
+ id?: string;
131
+ role: string;
132
+ content: unknown;
133
+ }
134
+ interface ServerConversation {
135
+ id: string;
136
+ messages?: ServerMessage[];
137
+ }
138
+ export declare function toUIMessages(rows: ServerMessage[] | undefined): HydratedUIMessage[];
139
+ /**
140
+ * A FLAT `ai_messages` row as returned by the public share endpoint
141
+ * (`GET /api/v1/share-links/:token/messages`), which streams the raw object
142
+ * rows rather than the reconstructed ModelMessage history that the
143
+ * authenticated `GET /conversations/:id` returns.
144
+ */
145
+ export interface RawAiMessageRow {
146
+ id?: string;
147
+ role: string;
148
+ /** Persisted text (assistant/user/system) OR a JSON-stringified tool-result array (tool role). */
149
+ content?: unknown;
150
+ /** Assistant tool CALLS, JSON-stringified (`tool-call` parts). */
151
+ tool_calls?: string | null;
152
+ /** Tool RESULT's owning call id (legacy plain-string tool rows). */
153
+ tool_call_id?: string | null;
154
+ }
155
+ /**
156
+ * Reconstruct the ModelMessage-shaped `content` that {@link toUIMessages}
157
+ * expects from the FLAT columns the public share endpoint returns raw.
158
+ *
159
+ * The authenticated path gets this reconstruction server-side
160
+ * (`ObjqlConversationService.toMessage`): an assistant turn's tool CALLS live
161
+ * in the separate `tool_calls` column, and a `tool` row's RESULTS are a
162
+ * JSON-stringified array in `content`. The share endpoint skips that step and
163
+ * dumps the rows verbatim — so the shared transcript previously rendered the
164
+ * raw `{"type":"tool-result",…}` envelope as text instead of a card. Mirroring
165
+ * `toMessage` here lets the share page reuse the exact same hydrate → render
166
+ * pipeline as the live chat. Keep this in lockstep with `toMessage`.
167
+ */
168
+ export declare function aiMessageRowsToServerMessages(rows: RawAiMessageRow[] | undefined): ServerMessage[];
169
+ export declare function fetchConversation(apiBase: string, id: string): Promise<ServerConversation | null>;
38
170
  export declare function useChatConversation(options: UseChatConversationOptions): UseChatConversationReturn;
171
+ export {};