@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,358 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
3
+ /**
4
+ * flow-canvas-parts — presentational building blocks for `FlowCanvas.tsx`:
5
+ * the per-node-type icon/tone mapping, the node card, and the add-node
6
+ * palette popover. Kept dependency-free and Shadcn-native (Tailwind + lucide).
7
+ */
8
+ import * as React from 'react';
9
+ import { Code, CircleDot, CircleStop, Diamond, FilePen, FilePlus, FileSearch, FileX, GitFork, Globe, ListChecks, MonitorSmartphone, Play, Plug, Plus, Repeat, ShieldAlert, TimerReset, UserCheck, Variable, Workflow, Zap, } from 'lucide-react';
10
+ import { cn } from '@object-ui/components';
11
+ import { NODE_W, NODE_H } from './flow-canvas-layout';
12
+ export function nodeIcon(type) {
13
+ switch (type) {
14
+ case 'start':
15
+ return Play;
16
+ case 'end':
17
+ return CircleStop;
18
+ case 'decision':
19
+ case 'branch':
20
+ case 'gateway':
21
+ return Diamond;
22
+ case 'wait':
23
+ case 'timer':
24
+ case 'delay':
25
+ return TimerReset;
26
+ case 'boundary_event':
27
+ case 'signal':
28
+ return Zap;
29
+ case 'subflow':
30
+ case 'flow':
31
+ return Workflow;
32
+ case 'create_record':
33
+ return FilePlus;
34
+ case 'update_record':
35
+ return FilePen;
36
+ case 'delete_record':
37
+ return FileX;
38
+ case 'get_record':
39
+ return FileSearch;
40
+ case 'http_request':
41
+ case 'webhook':
42
+ return Globe;
43
+ case 'script':
44
+ case 'script_task':
45
+ return Code;
46
+ case 'screen':
47
+ case 'user_task':
48
+ return MonitorSmartphone;
49
+ case 'approval':
50
+ return UserCheck;
51
+ case 'connector_action':
52
+ case 'service_task':
53
+ return Plug;
54
+ case 'assignment':
55
+ return Variable;
56
+ case 'loop':
57
+ case 'for_each':
58
+ return Repeat;
59
+ case 'map':
60
+ return ListChecks;
61
+ case 'parallel_gateway':
62
+ case 'join_gateway':
63
+ case 'parallel':
64
+ return GitFork;
65
+ case 'try_catch':
66
+ return ShieldAlert;
67
+ default:
68
+ return CircleDot;
69
+ }
70
+ }
71
+ const TONES = {
72
+ start: {
73
+ icon: 'text-emerald-600 dark:text-emerald-400',
74
+ accent: 'border-l-emerald-500',
75
+ label: 'text-emerald-600 dark:text-emerald-400',
76
+ chip: 'bg-emerald-500/10 ring-1 ring-inset ring-emerald-500/20 dark:bg-emerald-400/10',
77
+ },
78
+ end: {
79
+ icon: 'text-rose-600 dark:text-rose-400',
80
+ accent: 'border-l-rose-500',
81
+ label: 'text-rose-600 dark:text-rose-400',
82
+ chip: 'bg-rose-500/10 ring-1 ring-inset ring-rose-500/20 dark:bg-rose-400/10',
83
+ },
84
+ decision: {
85
+ icon: 'text-amber-600 dark:text-amber-400',
86
+ accent: 'border-l-amber-500',
87
+ label: 'text-amber-600 dark:text-amber-400',
88
+ chip: 'bg-amber-500/10 ring-1 ring-inset ring-amber-500/20 dark:bg-amber-400/10',
89
+ },
90
+ wait: {
91
+ icon: 'text-blue-600 dark:text-blue-400',
92
+ accent: 'border-l-blue-500',
93
+ label: 'text-blue-600 dark:text-blue-400',
94
+ chip: 'bg-blue-500/10 ring-1 ring-inset ring-blue-500/20 dark:bg-blue-400/10',
95
+ },
96
+ signal: {
97
+ icon: 'text-violet-600 dark:text-violet-400',
98
+ accent: 'border-l-violet-500',
99
+ label: 'text-violet-600 dark:text-violet-400',
100
+ chip: 'bg-violet-500/10 ring-1 ring-inset ring-violet-500/20 dark:bg-violet-400/10',
101
+ },
102
+ subflow: {
103
+ icon: 'text-indigo-600 dark:text-indigo-400',
104
+ accent: 'border-l-indigo-500',
105
+ label: 'text-indigo-600 dark:text-indigo-400',
106
+ chip: 'bg-indigo-500/10 ring-1 ring-inset ring-indigo-500/20 dark:bg-indigo-400/10',
107
+ },
108
+ task: {
109
+ icon: 'text-slate-500 dark:text-slate-400',
110
+ accent: 'border-l-slate-400',
111
+ label: 'text-slate-500 dark:text-slate-400',
112
+ chip: 'bg-slate-500/10 ring-1 ring-inset ring-slate-500/20 dark:bg-slate-400/10',
113
+ },
114
+ record: {
115
+ icon: 'text-cyan-600 dark:text-cyan-400',
116
+ accent: 'border-l-cyan-500',
117
+ label: 'text-cyan-600 dark:text-cyan-400',
118
+ chip: 'bg-cyan-500/10 ring-1 ring-inset ring-cyan-500/20 dark:bg-cyan-400/10',
119
+ },
120
+ integration: {
121
+ icon: 'text-fuchsia-600 dark:text-fuchsia-400',
122
+ accent: 'border-l-fuchsia-500',
123
+ label: 'text-fuchsia-600 dark:text-fuchsia-400',
124
+ chip: 'bg-fuchsia-500/10 ring-1 ring-inset ring-fuchsia-500/20 dark:bg-fuchsia-400/10',
125
+ },
126
+ approval: {
127
+ icon: 'text-teal-600 dark:text-teal-400',
128
+ accent: 'border-l-teal-500',
129
+ label: 'text-teal-600 dark:text-teal-400',
130
+ chip: 'bg-teal-500/10 ring-1 ring-inset ring-teal-500/20 dark:bg-teal-400/10',
131
+ },
132
+ loop: {
133
+ icon: 'text-sky-600 dark:text-sky-400',
134
+ accent: 'border-l-sky-500',
135
+ label: 'text-sky-600 dark:text-sky-400',
136
+ chip: 'bg-sky-500/10 ring-1 ring-inset ring-sky-500/20 dark:bg-sky-400/10',
137
+ },
138
+ screen: {
139
+ icon: 'text-pink-600 dark:text-pink-400',
140
+ accent: 'border-l-pink-500',
141
+ label: 'text-pink-600 dark:text-pink-400',
142
+ chip: 'bg-pink-500/10 ring-1 ring-inset ring-pink-500/20 dark:bg-pink-400/10',
143
+ },
144
+ assignment: {
145
+ icon: 'text-purple-600 dark:text-purple-400',
146
+ accent: 'border-l-purple-500',
147
+ label: 'text-purple-600 dark:text-purple-400',
148
+ chip: 'bg-purple-500/10 ring-1 ring-inset ring-purple-500/20 dark:bg-purple-400/10',
149
+ },
150
+ };
151
+ export function nodeTone(type) {
152
+ switch (type) {
153
+ case 'start':
154
+ return TONES.start;
155
+ case 'end':
156
+ return TONES.end;
157
+ case 'decision':
158
+ case 'branch':
159
+ case 'gateway':
160
+ case 'parallel_gateway':
161
+ case 'join_gateway':
162
+ case 'parallel':
163
+ return TONES.decision;
164
+ case 'wait':
165
+ case 'timer':
166
+ case 'delay':
167
+ return TONES.wait;
168
+ case 'boundary_event':
169
+ case 'signal':
170
+ case 'try_catch':
171
+ return TONES.signal;
172
+ case 'subflow':
173
+ case 'flow':
174
+ return TONES.subflow;
175
+ case 'approval':
176
+ return TONES.approval;
177
+ case 'loop':
178
+ case 'for_each':
179
+ case 'map':
180
+ return TONES.loop;
181
+ case 'screen':
182
+ case 'user_task':
183
+ return TONES.screen;
184
+ case 'assignment':
185
+ return TONES.assignment;
186
+ case 'create_record':
187
+ case 'update_record':
188
+ case 'delete_record':
189
+ case 'get_record':
190
+ return TONES.record;
191
+ case 'http_request':
192
+ case 'connector_action':
193
+ case 'script':
194
+ case 'webhook':
195
+ case 'service_task':
196
+ case 'script_task':
197
+ return TONES.integration;
198
+ default:
199
+ return TONES.task;
200
+ }
201
+ }
202
+ /**
203
+ * Renders the glyph for a node type. Uses `createElement` (rather than binding
204
+ * the resolved icon to a capitalized local) so the renderer stays a stable
205
+ * module-scope component instead of one re-created on every parent render.
206
+ */
207
+ export function NodeTypeIcon({ type, className }) {
208
+ return React.createElement(nodeIcon(type), { className, 'aria-hidden': true });
209
+ }
210
+ /** Display order of the palette's category sections. */
211
+ export const NODE_CATEGORY_ORDER = ['Data', 'Logic', 'Human', 'Integration', 'Flow'];
212
+ /**
213
+ * Category for a node type — drives palette grouping and gives engine-only
214
+ * (plugin-contributed) types a sensible section. Mirrors the `nodeTone`
215
+ * families so color and grouping stay consistent.
216
+ */
217
+ export function nodeCategory(type) {
218
+ switch (type) {
219
+ case 'create_record':
220
+ case 'update_record':
221
+ case 'delete_record':
222
+ case 'get_record':
223
+ return 'Data';
224
+ case 'decision':
225
+ case 'branch':
226
+ case 'gateway':
227
+ case 'loop':
228
+ case 'for_each':
229
+ case 'map':
230
+ case 'assignment':
231
+ case 'parallel_gateway':
232
+ case 'join_gateway':
233
+ case 'parallel':
234
+ case 'try_catch':
235
+ return 'Logic';
236
+ case 'approval':
237
+ case 'screen':
238
+ case 'user_task':
239
+ return 'Human';
240
+ case 'http_request':
241
+ case 'connector_action':
242
+ case 'script':
243
+ case 'webhook':
244
+ case 'service_task':
245
+ case 'script_task':
246
+ return 'Integration';
247
+ default:
248
+ // subflow, wait, boundary_event, end, and anything unknown → Flow control.
249
+ return 'Flow';
250
+ }
251
+ }
252
+ /** Node types offered by the add-node palette (spec `FlowNodeAction`). */
253
+ export const NODE_PALETTE = [
254
+ { type: 'create_record', label: 'Create record', hint: 'Insert a new record', category: 'Data' },
255
+ { type: 'update_record', label: 'Update record', hint: 'Modify an existing record', category: 'Data' },
256
+ { type: 'get_record', label: 'Get record', hint: 'Query records', category: 'Data' },
257
+ { type: 'delete_record', label: 'Delete record', hint: 'Remove matching records', category: 'Data' },
258
+ { type: 'decision', label: 'Decision', hint: 'Branch on a condition', category: 'Logic' },
259
+ { type: 'loop', label: 'Loop', hint: 'Iterate over a collection', category: 'Logic' },
260
+ { type: 'assignment', label: 'Set variables', hint: 'Assign flow variables', category: 'Logic' },
261
+ // ADR-0031: authors get the structured constructs (well-formed by
262
+ // construction); the BPMN `parallel_gateway` / `join_gateway` pair is an
263
+ // import/export representation only — the engine has no executor for it.
264
+ { type: 'parallel', label: 'Parallel', hint: 'Run branches concurrently, join at end', category: 'Logic' },
265
+ { type: 'try_catch', label: 'Try / Catch', hint: 'Protect steps with error handling and retry', category: 'Logic' },
266
+ { type: 'approval', label: 'Approval', hint: 'Pause for a human decision', category: 'Human' },
267
+ { type: 'screen', label: 'Screen', hint: 'Collect input from a user', category: 'Human' },
268
+ { type: 'http_request', label: 'HTTP request', hint: 'Call an external API', category: 'Integration' },
269
+ { type: 'connector_action', label: 'Connector', hint: 'Run an integration action', category: 'Integration' },
270
+ { type: 'script', label: 'Script', hint: 'Run custom code', category: 'Integration' },
271
+ { type: 'subflow', label: 'Subflow', hint: 'Invoke another flow', category: 'Flow' },
272
+ { type: 'wait', label: 'Wait', hint: 'Pause for an event or timer', category: 'Flow' },
273
+ { type: 'end', label: 'End', hint: 'Terminate the flow', category: 'Flow' },
274
+ ];
275
+ /** Human-friendly default label for a newly created node of `type`. */
276
+ export function defaultNodeLabel(type) {
277
+ const item = NODE_PALETTE.find((p) => p.type === type);
278
+ if (item)
279
+ return item.label;
280
+ return type
281
+ .split('_')
282
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
283
+ .join(' ');
284
+ }
285
+ /**
286
+ * Spec-valid seed fields for a newly created node, so structured blocks start
287
+ * in a valid-ish shape (e.g. a wait node already has a timer eventType) rather
288
+ * than an empty intermediate state. Returns extra node props to spread in.
289
+ */
290
+ export function defaultNodeExtras(type) {
291
+ switch (type) {
292
+ case 'start':
293
+ return {};
294
+ case 'wait':
295
+ return { waitEventConfig: { eventType: 'timer', onTimeout: 'fail' } };
296
+ case 'connector_action':
297
+ return { connectorConfig: { connectorId: '', actionId: '', input: {} } };
298
+ case 'boundary_event':
299
+ return { boundaryConfig: { attachedToNodeId: '', eventType: 'error', interrupting: true } };
300
+ case 'approval':
301
+ // Seed a node-model approval: at least one approver + spec defaults. The
302
+ // author wires the out-edges with labels `approve` / `reject`.
303
+ return { config: { approvers: [{ type: 'manager' }], behavior: 'first_response', lockRecord: true } };
304
+ case 'http_request':
305
+ return { config: { method: 'GET' } };
306
+ case 'script':
307
+ return {};
308
+ default:
309
+ return {};
310
+ }
311
+ }
312
+ /**
313
+ * A single draggable flow node rendered at an absolute canvas coordinate.
314
+ * The card body drives selection + reposition; a dedicated bottom "+" handle
315
+ * (edit mode only) appends a connected child without ambiguity.
316
+ */
317
+ export function NodeCard({ type, label, summary, position, selected, editable, runState, dimmed, onPointerDown, onSelect, onAppend, }) {
318
+ const tone = nodeTone(type);
319
+ return (_jsxs("div", { className: "absolute transition-opacity duration-200", style: { left: position.x, top: position.y, width: NODE_W, height: NODE_H, opacity: dimmed ? 0.35 : 1 }, children: [_jsxs("div", { role: "button", tabIndex: 0, "aria-pressed": selected, onPointerDown: onPointerDown, onClick: (e) => {
320
+ e.stopPropagation();
321
+ onSelect?.();
322
+ }, onKeyDown: (e) => {
323
+ if (e.key === 'Enter' || e.key === ' ') {
324
+ e.preventDefault();
325
+ onSelect?.();
326
+ }
327
+ }, className: cn('group flex h-full w-full items-center gap-3 rounded-xl border bg-card px-2.5 py-2 text-left shadow-sm outline-none', 'transition-[transform,box-shadow,border-color] duration-150 ease-out will-change-transform', 'hover:-translate-y-0.5 hover:shadow-lg hover:shadow-foreground/[0.06] focus-visible:ring-2 focus-visible:ring-primary/40', editable ? 'cursor-grab active:cursor-grabbing' : 'cursor-pointer', runState === 'active'
328
+ ? 'border-sky-500 shadow-md shadow-sky-500/20 ring-2 ring-sky-400/60'
329
+ : runState === 'visited'
330
+ ? 'border-emerald-500/70 ring-1 ring-emerald-400/40'
331
+ : selected
332
+ ? 'border-primary shadow-md ring-2 ring-primary/30'
333
+ : 'border-border/80'), children: [_jsx("div", { className: cn('flex h-9 w-9 shrink-0 items-center justify-center rounded-lg transition-transform duration-150 group-hover:scale-105', tone.chip, runState === 'active' && 'animate-pulse'), children: _jsx(NodeTypeIcon, { type: type, className: cn('h-[18px] w-[18px]', tone.icon) }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { title: label, className: "truncate text-[13px] font-semibold leading-tight text-foreground", children: label }), _jsxs("div", { className: "mt-1 flex items-baseline gap-1.5 leading-tight", children: [_jsx("span", { className: cn('shrink-0 text-[10px] font-semibold uppercase tracking-[0.08em]', tone.label), children: type }), summary && (_jsx("span", { className: "min-w-0 truncate font-mono text-[10px] text-muted-foreground", title: summary, children: summary }))] })] })] }), editable && type !== 'end' && (_jsx("button", { type: "button", title: "Add connected node", "aria-label": "Add connected node", onPointerDown: (e) => e.stopPropagation(), onClick: (e) => {
334
+ e.stopPropagation();
335
+ onAppend?.();
336
+ }, className: cn('absolute left-1/2 -bottom-3 z-10 inline-flex h-6 w-6 -translate-x-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground shadow-sm transition-colors', 'opacity-0 hover:border-primary hover:text-primary group-hover:opacity-100 focus-visible:opacity-100'), children: _jsx(Plus, { className: "h-3.5 w-3.5" }) }))] }));
337
+ }
338
+ /** Compact popover listing the node types an author can add, grouped by category. */
339
+ export function NodePalette({ items = NODE_PALETTE, onPick, onClose }) {
340
+ // Bucket items by category (falling back to the type's inferred category, so
341
+ // engine-only / plugin nodes still land in a sensible section), then render
342
+ // sections in the canonical order. Empty sections are skipped.
343
+ const grouped = React.useMemo(() => {
344
+ const buckets = new Map();
345
+ for (const item of items) {
346
+ const cat = item.category ?? nodeCategory(item.type);
347
+ const list = buckets.get(cat) ?? [];
348
+ list.push(item);
349
+ buckets.set(cat, list);
350
+ }
351
+ return NODE_CATEGORY_ORDER.map((cat) => [cat, buckets.get(cat) ?? []]).filter(([, list]) => list.length > 0);
352
+ }, [items]);
353
+ const renderItem = (item) => {
354
+ const tone = nodeTone(item.type);
355
+ return (_jsxs("button", { type: "button", onClick: () => onPick(item.type), className: "flex w-full items-center gap-2.5 rounded-lg px-2 py-1.5 text-left transition-colors hover:bg-accent", children: [_jsx("span", { className: cn('flex h-7 w-7 shrink-0 items-center justify-center rounded-md', tone.chip), children: _jsx(NodeTypeIcon, { type: item.type, className: cn('h-[15px] w-[15px]', tone.icon) }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-[13px] font-medium", children: item.label }), item.hint && _jsx("div", { className: "truncate text-[11px] text-muted-foreground", children: item.hint })] })] }, item.type));
356
+ };
357
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-20", onClick: onClose, "aria-hidden": true }), _jsx("div", { className: "absolute right-0 top-full z-30 mt-1.5 max-h-[66vh] w-60 overflow-y-auto rounded-xl border bg-popover/95 p-1.5 shadow-xl shadow-foreground/[0.08] ring-1 ring-black/[0.03] backdrop-blur-md", children: grouped.map(([category, list], gi) => (_jsxs("div", { className: cn(gi > 0 && 'mt-1 border-t border-border/60 pt-1'), children: [_jsx("div", { className: "px-2 pb-1 pt-1 text-[10px] font-semibold uppercase tracking-[0.08em] text-muted-foreground", children: category }), list.map(renderItem)] }, category))) })] }));
358
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * form-preview — shared classifier for rendering form blocks/views on a design
3
+ * or preview surface (ViewPreview, the page-designer canvas).
4
+ *
5
+ * Overlay form types (`drawer` / `modal`) render their body through a portal as
6
+ * a modal Sheet/Dialog. On a preview canvas that overlay escapes the layout and
7
+ * locks the whole editor — Radix sets body `pointer-events:none` and traps focus
8
+ * while open — which reads as a frozen UI. Preview surfaces neutralise overlay
9
+ * types to an inline form before handing the schema to SchemaRenderer.
10
+ *
11
+ * This is the schema-level layer; `DrawerForm`/`ModalForm` also self-guard via
12
+ * `PreviewModeProvider` (rendering inline under preview), so a form rendered live
13
+ * can never lock the page even if a surface forgets to coerce. Keep the single
14
+ * source of truth here so the two preview surfaces never drift apart.
15
+ */
16
+ /** Form types that render inline (no portalled overlay). */
17
+ export declare const INLINE_FORM_TYPES: Set<string>;
18
+ /** Form types that render as a portalled, page-locking overlay. */
19
+ export declare const OVERLAY_FORM_TYPES: Set<string>;
20
+ /** True when `t` is a form type that would mount a page-locking overlay. */
21
+ export declare function isOverlayFormType(t: unknown): boolean;
22
+ /** Map any form type to an inline one: overlay types collapse to `simple`,
23
+ * inline types pass through, unknown/missing falls back to `simple`. */
24
+ export declare function toInlineFormType(t: unknown): string;
@@ -0,0 +1,29 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ /**
3
+ * form-preview — shared classifier for rendering form blocks/views on a design
4
+ * or preview surface (ViewPreview, the page-designer canvas).
5
+ *
6
+ * Overlay form types (`drawer` / `modal`) render their body through a portal as
7
+ * a modal Sheet/Dialog. On a preview canvas that overlay escapes the layout and
8
+ * locks the whole editor — Radix sets body `pointer-events:none` and traps focus
9
+ * while open — which reads as a frozen UI. Preview surfaces neutralise overlay
10
+ * types to an inline form before handing the schema to SchemaRenderer.
11
+ *
12
+ * This is the schema-level layer; `DrawerForm`/`ModalForm` also self-guard via
13
+ * `PreviewModeProvider` (rendering inline under preview), so a form rendered live
14
+ * can never lock the page even if a surface forgets to coerce. Keep the single
15
+ * source of truth here so the two preview surfaces never drift apart.
16
+ */
17
+ /** Form types that render inline (no portalled overlay). */
18
+ export const INLINE_FORM_TYPES = new Set(['simple', 'tabbed', 'wizard', 'split']);
19
+ /** Form types that render as a portalled, page-locking overlay. */
20
+ export const OVERLAY_FORM_TYPES = new Set(['drawer', 'modal']);
21
+ /** True when `t` is a form type that would mount a page-locking overlay. */
22
+ export function isOverlayFormType(t) {
23
+ return typeof t === 'string' && OVERLAY_FORM_TYPES.has(t);
24
+ }
25
+ /** Map any form type to an inline one: overlay types collapse to `simple`,
26
+ * inline types pass through, unknown/missing falls back to `simple`. */
27
+ export function toInlineFormType(t) {
28
+ return typeof t === 'string' && INLINE_FORM_TYPES.has(t) ? t : 'simple';
29
+ }
@@ -15,12 +15,55 @@ import { ReportPreview } from './ReportPreview';
15
15
  import { AppPreview } from './AppPreview';
16
16
  import { ObjectPreview } from './ObjectPreview';
17
17
  import { EmailTemplatePreview } from './EmailTemplatePreview';
18
+ import { FlowPreview } from './FlowPreview';
19
+ import { AgentPreview } from './AgentPreview';
20
+ import { ToolPreview } from './ToolPreview';
21
+ import { PermissionPreview } from './PermissionPreview';
22
+ import { ActionPreview } from './ActionPreview';
23
+ import { JobPreview } from './JobPreview';
24
+ import { TranslationPreview } from './TranslationPreview';
25
+ import { RolePreview } from './RolePreview';
26
+ import { SkillPreview } from './SkillPreview';
27
+ import { DatasourcePreview } from './DatasourcePreview';
28
+ import { ValidationPreview } from './ValidationPreview';
29
+ import { DatasetPreview } from './DatasetPreview';
30
+ import { BookPreview } from './BookPreview';
18
31
  export function registerBuiltinPreviews() {
32
+ // UI surfaces
19
33
  registerMetadataPreview('page', PagePreview);
20
34
  registerMetadataPreview('view', ViewPreview);
21
35
  registerMetadataPreview('dashboard', DashboardPreview);
22
36
  registerMetadataPreview('report', ReportPreview);
23
37
  registerMetadataPreview('app', AppPreview);
38
+ registerMetadataPreview('action', ActionPreview);
39
+ // Data
24
40
  registerMetadataPreview('object', ObjectPreview);
41
+ registerMetadataPreview('datasource', DatasourcePreview);
42
+ registerMetadataPreview('validation', ValidationPreview);
43
+ // Analytics (ADR-0021): live cross-object dataset preview.
44
+ registerMetadataPreview('dataset', DatasetPreview);
45
+ // System
25
46
  registerMetadataPreview('email_template', EmailTemplatePreview);
47
+ registerMetadataPreview('translation', TranslationPreview);
48
+ // Documentation navigation spine (ADR-0046 §6): ordered groups with
49
+ // derived membership over docs.
50
+ registerMetadataPreview('book', BookPreview);
51
+ // Automation
52
+ // Approval is a flow node (`type: 'approval'`) since ADR-0019 — it renders on
53
+ // the Flow canvas with its `approve` / `reject` branches; no standalone
54
+ // approval-process preview.
55
+ registerMetadataPreview('flow', FlowPreview);
56
+ // ADR-0020: `workflow` retired as a metadata type — record state machines
57
+ // are now a `state_machine` validation rule (rendered by ValidationPreview)
58
+ // and side-effecting automation is a Flow. No standalone workflow preview.
59
+ registerMetadataPreview('job', JobPreview);
60
+ // AI
61
+ registerMetadataPreview('agent', AgentPreview);
62
+ registerMetadataPreview('tool', ToolPreview);
63
+ registerMetadataPreview('skill', SkillPreview);
64
+ // Security & Identity
65
+ // `profile` is a PermissionSet with `isProfile: true` — reuse the same preview.
66
+ registerMetadataPreview('permission', PermissionPreview);
67
+ registerMetadataPreview('profile', PermissionPreview);
68
+ registerMetadataPreview('role', RolePreview);
26
69
  }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Bridge between framework metadata `Object.fields` (a record of rich
3
+ * 48-type field definitions) and the lighter `DesignerFieldDefinition[]`
4
+ * shape consumed by `@object-ui/plugin-designer`'s `FieldDesigner`.
5
+ *
6
+ * Why this exists: the designer ships with a curated subset (27 types,
7
+ * no `master_detail`, no `tree`, no `multiselect`, etc.). Letting it
8
+ * own the full draft would silently drop properties on round-trip. So
9
+ * the bridge:
10
+ *
11
+ * - converts the supported subset for editing,
12
+ * - quarantines unknown types into a "preserved" bucket keyed by
13
+ * field name, and
14
+ * - reassembles the full record on commit, putting preserved entries
15
+ * back in their original order/shape so nothing the user can't see
16
+ * is destroyed.
17
+ */
18
+ import type { DesignerFieldDefinition } from '@object-ui/types';
19
+ interface FrameworkFieldDef {
20
+ type?: string;
21
+ label?: string;
22
+ required?: boolean;
23
+ unique?: boolean;
24
+ readonly?: boolean;
25
+ hidden?: boolean;
26
+ description?: string;
27
+ default?: unknown;
28
+ placeholder?: string;
29
+ options?: Array<{
30
+ label?: string;
31
+ value: string;
32
+ color?: string;
33
+ }>;
34
+ reference?: string;
35
+ formula?: string;
36
+ group?: string;
37
+ [k: string]: unknown;
38
+ }
39
+ export interface FieldsBridgeResult {
40
+ /** Editable subset shaped for FieldDesigner. */
41
+ designerFields: DesignerFieldDefinition[];
42
+ /**
43
+ * Preserves the original framework definitions for fields the
44
+ * designer can't edit losslessly. Keyed by field name. Round-tripped
45
+ * verbatim on commit.
46
+ */
47
+ preserved: Map<string, FrameworkFieldDef>;
48
+ /**
49
+ * Captured input shape (`'record'` or `'array'`) so we commit back
50
+ * in the same shape we received.
51
+ */
52
+ inputShape: 'record' | 'array';
53
+ /**
54
+ * Ordered list of all field names as they appeared on input; the
55
+ * commit function uses it to preserve user-visible ordering.
56
+ */
57
+ originalOrder: string[];
58
+ }
59
+ export declare function bridgeFromDraft(fieldsInput: unknown): FieldsBridgeResult;
60
+ /**
61
+ * Reassemble the framework-shape fields record from designer output.
62
+ * Preserved fields are spliced back in their original order. Newly
63
+ * added fields land at the end.
64
+ */
65
+ export declare function commitToDraft(designerFields: DesignerFieldDefinition[], prev: FieldsBridgeResult): Record<string, FrameworkFieldDef> | FrameworkFieldDef[];
66
+ export {};