windmill-components 1.642.0 → 1.655.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 (853) hide show
  1. package/dist/appPolicy/myFunction.es.js +1337 -0
  2. package/dist/sharedUtils/common.d.ts +2 -5
  3. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
  4. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +3 -14
  5. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +1 -1
  6. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +1 -12
  7. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +2 -68
  8. package/dist/sharedUtils/components/apps/inputType.d.ts +2 -4
  9. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -2
  10. package/dist/sharedUtils/components/dbTypes.d.ts +0 -3
  11. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +1 -1
  12. package/dist/sharedUtils/components/raw_apps/utils.d.ts +1 -1
  13. package/dist/sharedUtils/components/triggers/utils.d.ts +3 -2
  14. package/dist/sharedUtils/gen/schemas.gen.d.ts +71 -915
  15. package/dist/sharedUtils/gen/services.gen.d.ts +23 -329
  16. package/dist/sharedUtils/gen/types.gen.d.ts +141 -1870
  17. package/dist/sharedUtils/hub.d.ts +0 -1
  18. package/dist/sharedUtils/jsr.json +5 -5
  19. package/dist/sharedUtils/lib.d.ts +1 -1
  20. package/dist/sharedUtils/lib.es.js +79 -241
  21. package/dist/sharedUtils/package.json +11 -11
  22. package/dist/sharedUtils/stores.d.ts +0 -1
  23. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +1 -32
  24. package/dist/sharedUtils/utils.d.ts +4 -19
  25. package/package/aiStore.d.ts +1 -0
  26. package/package/aiStore.js +3 -0
  27. package/package/components/ApiConnectForm.svelte +7 -0
  28. package/package/components/ApiConnectForm.svelte.d.ts +1 -1
  29. package/package/components/AppConnectDrawer.svelte +18 -15
  30. package/package/components/AppConnectDrawer.svelte.d.ts +5 -5
  31. package/package/components/AppConnectInner.svelte +2 -0
  32. package/package/components/AppConnectLightweightResourcePicker.svelte +3 -3
  33. package/package/components/AppWrapper.svelte +3 -2
  34. package/package/components/ArgInput.svelte +1 -0
  35. package/package/components/AutheliaSetting.svelte +9 -6
  36. package/package/components/AutheliaSetting.svelte.d.ts +4 -18
  37. package/package/components/AuthentikSetting.svelte +10 -7
  38. package/package/components/AuthentikSetting.svelte.d.ts +4 -18
  39. package/package/components/AzureOauthSettings.svelte +23 -23
  40. package/package/components/AzureOauthSettings.svelte.d.ts +4 -18
  41. package/package/components/Badge.svelte +2 -4
  42. package/package/components/Badge.svelte.d.ts +5 -27
  43. package/package/components/ChangeInstanceUsernameInner.svelte +4 -7
  44. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +8 -7
  45. package/package/components/ChannelSelector.svelte +19 -15
  46. package/package/components/CompareWorkspaces.svelte +618 -650
  47. package/package/components/ContextualVariableEditor.svelte +8 -8
  48. package/package/components/ContextualVariableEditor.svelte.d.ts +3 -6
  49. package/package/components/CustomOauth.svelte +19 -23
  50. package/package/components/CustomOauth.svelte.d.ts +4 -26
  51. package/package/components/CustomPopover.svelte +3 -2
  52. package/package/components/CustomSso.svelte +20 -25
  53. package/package/components/CustomSso.svelte.d.ts +4 -27
  54. package/package/components/DBManagerDrawer.svelte +26 -44
  55. package/package/components/DBManagerDrawer.svelte.d.ts +3 -5
  56. package/package/components/DBSchemaExplorer.svelte +3 -3
  57. package/package/components/DBTableEditor.svelte +6 -6
  58. package/package/components/DatatablePicker.svelte +1 -3
  59. package/package/components/DateInput.svelte +1 -0
  60. package/package/components/DateTimeInput.svelte +1 -0
  61. package/package/components/DefaultScripts.svelte +3 -5
  62. package/package/components/DefaultScripts.svelte.d.ts +6 -20
  63. package/package/components/DefaultScriptsInner.svelte +4 -4
  64. package/package/components/DefaultScriptsInner.svelte.d.ts +4 -18
  65. package/package/components/DeployWorkspace.svelte +222 -470
  66. package/package/components/DeployWorkspaceDrawer.svelte +1 -10
  67. package/package/components/Description.svelte +3 -3
  68. package/package/components/Description.svelte.d.ts +6 -28
  69. package/package/components/Dev.svelte +15 -14
  70. package/package/components/DiffEditor.svelte +2 -2
  71. package/package/components/DisplayResult.svelte.d.ts +1 -1
  72. package/package/components/DropdownSubmenuItem.svelte +3 -2
  73. package/package/components/DropdownV2.svelte +1 -1
  74. package/package/components/DropdownV2.svelte.d.ts +2 -2
  75. package/package/components/DropdownV2Inner.svelte +3 -0
  76. package/package/components/DucklakePicker.svelte +1 -3
  77. package/package/components/DurationMs.svelte +1 -3
  78. package/package/components/DurationMs.svelte.d.ts +4 -18
  79. package/package/components/DynamicInput.svelte +2 -2
  80. package/package/components/EditableSchemaForm.svelte +4 -4
  81. package/package/components/Editor.svelte +9 -11
  82. package/package/components/EditorBar.svelte +2 -2
  83. package/package/components/EditorBar.svelte.d.ts +1 -1
  84. package/package/components/ExecutionDuration.svelte +12 -20
  85. package/package/components/ExecutionDuration.svelte.d.ts +14 -24
  86. package/package/components/ExploreAssetButton.svelte +13 -6
  87. package/package/components/ExploreAssetButton.svelte.d.ts +0 -2
  88. package/package/components/FakeMonacoPlaceHolder.svelte +3 -2
  89. package/package/components/FieldHeader.svelte +6 -16
  90. package/package/components/FieldHeader.svelte.d.ts +5 -20
  91. package/package/components/FilesetEditor.svelte +23 -0
  92. package/package/components/FilterSearchbar.svelte +44 -11
  93. package/package/components/FilterSearchbar.svelte.d.ts +1 -0
  94. package/package/components/FlowBuilder.svelte +47 -28
  95. package/package/components/FlowGraphViewer.svelte +1 -10
  96. package/package/components/FlowGraphViewer.svelte.d.ts +17 -16
  97. package/package/components/FlowGraphViewerStep.svelte +5 -7
  98. package/package/components/FlowGraphViewerStep.svelte.d.ts +4 -18
  99. package/package/components/FlowHistoryJobPicker.svelte +4 -2
  100. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  101. package/package/components/FlowInputViewer.svelte +1 -1
  102. package/package/components/FlowInputViewer.svelte.d.ts +4 -18
  103. package/package/components/FlowLogViewer.svelte +6 -4
  104. package/package/components/FlowLogViewerWrapper.svelte +2 -2
  105. package/package/components/FlowPlugConnect.svelte +1 -3
  106. package/package/components/FlowPlugConnect.svelte.d.ts +7 -6
  107. package/package/components/FlowPreviewContent.svelte +111 -6
  108. package/package/components/FlowPreviewContent.svelte.d.ts +1 -0
  109. package/package/components/FlowStatusViewer.svelte +6 -6
  110. package/package/components/FlowStatusViewerInner.svelte +99 -86
  111. package/package/components/FlowViewer.svelte +6 -4
  112. package/package/components/FlowWrapper.svelte +5 -4
  113. package/package/components/FolderEditor.svelte +9 -7
  114. package/package/components/FolderUsageInfo.svelte +7 -6
  115. package/package/components/FolderUsageInfo.svelte.d.ts +5 -19
  116. package/package/components/GraphqlSchemaViewer.svelte +3 -3
  117. package/package/components/GraphqlSchemaViewer.svelte.d.ts +5 -19
  118. package/package/components/GroupEditor.svelte +22 -10
  119. package/package/components/IdEditorInput.svelte +3 -2
  120. package/package/components/InputTransformForm.svelte +2 -0
  121. package/package/components/InputTransformSchemaForm.svelte.d.ts +1 -1
  122. package/package/components/InputTransformsViewer.svelte +2 -2
  123. package/package/components/InputTransformsViewer.svelte.d.ts +4 -18
  124. package/package/components/InstanceGroupEditor.svelte +28 -23
  125. package/package/components/InstanceGroupEditor.svelte.d.ts +5 -4
  126. package/package/components/InstanceNameEditor.svelte +19 -19
  127. package/package/components/InstanceNameEditor.svelte.d.ts +9 -9
  128. package/package/components/InstanceSetting.svelte +8 -2
  129. package/package/components/InstanceSettings.svelte +36 -22
  130. package/package/components/InviteGlobalUser.svelte +4 -4
  131. package/package/components/InviteGlobalUser.svelte.d.ts +5 -4
  132. package/package/components/JobLoader.svelte +51 -1
  133. package/package/components/KanidmSetting.svelte +15 -12
  134. package/package/components/KanidmSetting.svelte.d.ts +4 -18
  135. package/package/components/KeycloakSetting.svelte +18 -9
  136. package/package/components/KeycloakSetting.svelte.d.ts +4 -18
  137. package/package/components/LogId.svelte +5 -2
  138. package/package/components/LogId.svelte.d.ts +4 -18
  139. package/package/components/LogSnippetViewer.svelte +5 -5
  140. package/package/components/LogSnippetViewer.svelte.d.ts +5 -20
  141. package/package/components/LogViewer.svelte +2 -2
  142. package/package/components/ManualPopover.svelte +4 -1
  143. package/package/components/MapResult.svelte +33 -33
  144. package/package/components/MapResult.svelte.d.ts +13 -26
  145. package/package/components/MemoryFootprintViewer.svelte +8 -6
  146. package/package/components/MemoryFootprintViewer.svelte.d.ts +4 -18
  147. package/package/components/ModulePreview.svelte.d.ts +1 -1
  148. package/package/components/ModuleStatus.svelte +1 -3
  149. package/package/components/ModuleStatus.svelte.d.ts +5 -19
  150. package/package/components/ModuleTest.svelte +3 -3
  151. package/package/components/ModuleTest.svelte.d.ts +1 -1
  152. package/package/components/OAuthSetting.svelte +57 -41
  153. package/package/components/OauthExtraParams.svelte +9 -4
  154. package/package/components/OauthExtraParams.svelte.d.ts +4 -18
  155. package/package/components/OauthScopes.svelte +9 -4
  156. package/package/components/OauthScopes.svelte.d.ts +4 -18
  157. package/package/components/ObjectResourceInput.svelte +10 -3
  158. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  159. package/package/components/OnBehalfOfSelector.svelte +191 -0
  160. package/package/components/OnBehalfOfSelector.svelte.d.ts +21 -0
  161. package/package/components/PageHeader.svelte +3 -7
  162. package/package/components/PageHeader.svelte.d.ts +5 -27
  163. package/package/components/ParqetCsvTableRenderer.svelte +12 -12
  164. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +4 -18
  165. package/package/components/PermissionHistory.svelte +8 -6
  166. package/package/components/PersistentScriptDrawer.svelte +56 -50
  167. package/package/components/PersistentScriptDrawer.svelte.d.ts +3 -5
  168. package/package/components/Popover.svelte +2 -2
  169. package/package/components/PrefixedInput.svelte +2 -2
  170. package/package/components/QueueMetricsDrawer.svelte +1 -1
  171. package/package/components/QueueMetricsDrawer.svelte.d.ts +3 -20
  172. package/package/components/QueueMetricsDrawerInner.svelte +14 -9
  173. package/package/components/QueueMetricsDrawerInner.svelte.d.ts +2 -17
  174. package/package/components/RadioButton.svelte +3 -8
  175. package/package/components/RadioButton.svelte.d.ts +13 -12
  176. package/package/components/Range.svelte +15 -18
  177. package/package/components/Range.svelte.d.ts +5 -21
  178. package/package/components/RepositorySelector.svelte +3 -2
  179. package/package/components/Required.svelte +4 -4
  180. package/package/components/Required.svelte.d.ts +6 -20
  181. package/package/components/ResourceEditor.svelte +22 -5
  182. package/package/components/ResourceEditor.svelte.d.ts +0 -1
  183. package/package/components/ResourceEditorDrawer.svelte +11 -16
  184. package/package/components/ResourceEditorDrawer.svelte.d.ts +3 -6
  185. package/package/components/ResourcePicker.svelte +35 -17
  186. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  187. package/package/components/RunForm.svelte +2 -2
  188. package/package/components/RunFormAdvancedPopup.svelte +1 -4
  189. package/package/components/RunFormAdvancedPopup.svelte.d.ts +4 -18
  190. package/package/components/RunsPage.svelte +126 -27
  191. package/package/components/S3FilePicker.svelte +2 -1
  192. package/package/components/S3FilePicker.svelte.d.ts +1 -0
  193. package/package/components/S3FilePickerInner.svelte +19 -7
  194. package/package/components/S3FilePickerInner.svelte.d.ts +1 -0
  195. package/package/components/S3ObjectPicker.svelte +4 -5
  196. package/package/components/S3ObjectPicker.svelte.d.ts +6 -6
  197. package/package/components/SaveButton.svelte +2 -0
  198. package/package/components/SaveInputsButton.svelte +2 -7
  199. package/package/components/SaveInputsButton.svelte.d.ts +10 -9
  200. package/package/components/SavedInputsPickerViewer.svelte +21 -22
  201. package/package/components/SavedInputsPickerViewer.svelte.d.ts +10 -10
  202. package/package/components/SchemaEditorProperty.svelte +1 -1
  203. package/package/components/SchemaEditorProperty.svelte.d.ts +4 -18
  204. package/package/components/SchemaForm.svelte.d.ts +1 -1
  205. package/package/components/ScriptBuilder.svelte +113 -30
  206. package/package/components/ScriptEditor.svelte +90 -34
  207. package/package/components/ScriptEditor.svelte.d.ts +2 -2
  208. package/package/components/ScriptPicker.svelte +1 -1
  209. package/package/components/ScriptWrapper.svelte +3 -2
  210. package/package/components/Scrollable.svelte +10 -10
  211. package/package/components/Scrollable.svelte.d.ts +6 -29
  212. package/package/components/SearchItems.svelte +1 -1
  213. package/package/components/ServiceLogsInner.svelte +15 -9
  214. package/package/components/ShareModal.svelte +15 -8
  215. package/package/components/ShareModal.svelte.d.ts +1 -1
  216. package/package/components/SimpleEditor.svelte +1 -1
  217. package/package/components/Slider.svelte +2 -5
  218. package/package/components/Slider.svelte.d.ts +6 -28
  219. package/package/components/StringTypeNarrowing.svelte +3 -2
  220. package/package/components/Subsection.svelte +3 -2
  221. package/package/components/Summary.svelte +1 -2
  222. package/package/components/Summary.svelte.d.ts +4 -18
  223. package/package/components/SupabaseConnect.svelte +20 -17
  224. package/package/components/SupabaseConnect.svelte.d.ts +3 -5
  225. package/package/components/SuperadminSettings.svelte +11 -9
  226. package/package/components/SuperadminSettingsInner.svelte +3 -3
  227. package/package/components/TableCustom.svelte +6 -8
  228. package/package/components/TableCustom.svelte.d.ts +10 -10
  229. package/package/components/TeamSelector.svelte +20 -14
  230. package/package/components/TemplateEditor.svelte +1 -7
  231. package/package/components/TestConnection.svelte +2 -5
  232. package/package/components/TestConnection.svelte.d.ts +4 -18
  233. package/package/components/TimelineBar.svelte +5 -2
  234. package/package/components/Toast.svelte +2 -2
  235. package/package/components/Toggle.svelte +2 -2
  236. package/package/components/Tooltip.svelte +3 -16
  237. package/package/components/Tooltip.svelte.d.ts +4 -1
  238. package/package/components/TooltipInner.svelte +3 -14
  239. package/package/components/TooltipInner.svelte.d.ts +5 -28
  240. package/package/components/Uptodate.svelte +1 -1
  241. package/package/components/Uptodate.svelte.d.ts +2 -17
  242. package/package/components/Urlize.svelte +2 -2
  243. package/package/components/Urlize.svelte.d.ts +4 -18
  244. package/package/components/Version.svelte +1 -1
  245. package/package/components/Version.svelte.d.ts +2 -17
  246. package/package/components/WhitelistIp.svelte +1 -1
  247. package/package/components/WhitelistIp.svelte.d.ts +2 -17
  248. package/package/components/WorkerGroup.svelte +1 -5
  249. package/package/components/WorkerRepl.svelte +1 -2
  250. package/package/components/WorkflowTimeline.svelte +10 -14
  251. package/package/components/WorkflowTimeline.svelte.d.ts +4 -18
  252. package/package/components/WorkspaceDependenciesEditor.svelte +1 -1
  253. package/package/components/WorkspaceDeployLayout.svelte +107 -0
  254. package/package/components/WorkspaceDeployLayout.svelte.d.ts +31 -0
  255. package/package/components/ZitadelSetting.svelte +9 -6
  256. package/package/components/ZitadelSetting.svelte.d.ts +4 -18
  257. package/package/components/apps/components/GroupWrapper.svelte +5 -2
  258. package/package/components/apps/components/buttons/AppButton.svelte +6 -5
  259. package/package/components/apps/components/buttons/AppForm.svelte +5 -5
  260. package/package/components/apps/components/buttons/AppFormButton.svelte +5 -5
  261. package/package/components/apps/components/buttons/AppSchemaForm.svelte +5 -4
  262. package/package/components/apps/components/display/AppAccordionList.svelte +4 -4
  263. package/package/components/apps/components/display/AppAlert.svelte +4 -4
  264. package/package/components/apps/components/display/AppBarChart.svelte +4 -4
  265. package/package/components/apps/components/display/AppCarouselList.svelte +5 -5
  266. package/package/components/apps/components/display/AppChartJs.svelte +4 -4
  267. package/package/components/apps/components/display/AppChartJsV2.svelte +4 -4
  268. package/package/components/apps/components/display/AppChat.svelte +5 -5
  269. package/package/components/apps/components/display/AppCustomComponent.svelte +3 -3
  270. package/package/components/apps/components/display/AppDisplayComponent.svelte +5 -5
  271. package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +3 -3
  272. package/package/components/apps/components/display/AppDownload.svelte +3 -3
  273. package/package/components/apps/components/display/AppHtml.svelte +4 -3
  274. package/package/components/apps/components/display/AppIcon.svelte +4 -4
  275. package/package/components/apps/components/display/AppImage.svelte +4 -4
  276. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +4 -4
  277. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +3 -3
  278. package/package/components/apps/components/display/AppJobProgressBar.svelte +3 -3
  279. package/package/components/apps/components/display/AppMap.svelte +6 -4
  280. package/package/components/apps/components/display/AppMarkdown.svelte +5 -4
  281. package/package/components/apps/components/display/AppMenu.svelte +4 -3
  282. package/package/components/apps/components/display/AppNavbar.svelte +4 -4
  283. package/package/components/apps/components/display/AppPdf.svelte +3 -3
  284. package/package/components/apps/components/display/AppPieChart.svelte +3 -3
  285. package/package/components/apps/components/display/AppRecomputeAll.svelte +3 -3
  286. package/package/components/apps/components/display/AppScatterChart.svelte +3 -3
  287. package/package/components/apps/components/display/AppStatCard.svelte +3 -3
  288. package/package/components/apps/components/display/AppText.svelte +10 -8
  289. package/package/components/apps/components/display/AppTimeseries.svelte +3 -3
  290. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
  291. package/package/components/apps/components/display/PlotlyHtml.svelte +3 -2
  292. package/package/components/apps/components/display/PlotlyHtmlV2.svelte +3 -2
  293. package/package/components/apps/components/display/ResolveNavbarItemPath.svelte +3 -2
  294. package/package/components/apps/components/display/VegaLiteHtml.svelte +3 -2
  295. package/package/components/apps/components/display/charts/AppAgCharts.svelte +3 -3
  296. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -2
  297. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +3 -3
  298. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
  299. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
  300. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
  301. package/package/components/apps/components/display/dbtable/metadata.js +9 -4
  302. package/package/components/apps/components/display/dbtable/utils.d.ts +3 -3
  303. package/package/components/apps/components/display/dbtable/utils.js +3 -3
  304. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +8 -4
  305. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -1
  306. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
  307. package/package/components/apps/components/display/table/AppAggridTable.svelte +4 -3
  308. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +3 -3
  309. package/package/components/apps/components/display/table/AppTable.svelte +4 -4
  310. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -2
  311. package/package/components/apps/components/helpers/InputValue.svelte +3 -3
  312. package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -2
  313. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  314. package/package/components/apps/components/inputs/AppCheckbox.svelte +6 -6
  315. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +6 -5
  316. package/package/components/apps/components/inputs/AppDateInput.svelte +4 -4
  317. package/package/components/apps/components/inputs/AppDateSelect.svelte +4 -4
  318. package/package/components/apps/components/inputs/AppDateSliderInput.svelte +5 -4
  319. package/package/components/apps/components/inputs/AppDateTimeInput.svelte +4 -4
  320. package/package/components/apps/components/inputs/AppFileInput.svelte +4 -4
  321. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +5 -4
  322. package/package/components/apps/components/inputs/AppNumberInput.svelte +4 -4
  323. package/package/components/apps/components/inputs/AppQuillEditor.svelte +3 -2
  324. package/package/components/apps/components/inputs/AppRangeInput.svelte +5 -4
  325. package/package/components/apps/components/inputs/AppS3FileInput.svelte +4 -4
  326. package/package/components/apps/components/inputs/AppSelect.svelte +8 -7
  327. package/package/components/apps/components/inputs/AppSelectStep.svelte +5 -4
  328. package/package/components/apps/components/inputs/AppSelectTab.svelte +4 -4
  329. package/package/components/apps/components/inputs/AppSliderInputs.svelte +5 -4
  330. package/package/components/apps/components/inputs/AppTextInput.svelte +4 -4
  331. package/package/components/apps/components/inputs/AppTimeInput.svelte +4 -4
  332. package/package/components/apps/components/inputs/AppUserResource.svelte +4 -4
  333. package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +5 -4
  334. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +3 -1
  335. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +5 -5
  336. package/package/components/apps/components/layout/AppContainer.svelte +3 -3
  337. package/package/components/apps/components/layout/AppDecisionTree.svelte +5 -5
  338. package/package/components/apps/components/layout/AppDivider.svelte +3 -3
  339. package/package/components/apps/components/layout/AppDrawer.svelte +7 -6
  340. package/package/components/apps/components/layout/AppList.svelte +5 -5
  341. package/package/components/apps/components/layout/AppModal.svelte +7 -6
  342. package/package/components/apps/components/layout/AppSplitpanes.svelte +8 -6
  343. package/package/components/apps/components/layout/AppStepper.svelte +6 -6
  344. package/package/components/apps/components/layout/AppTabs.svelte +8 -8
  345. package/package/components/apps/components/layout/ListWrapper.svelte +6 -2
  346. package/package/components/apps/components/layout/RowWrapper.svelte +6 -2
  347. package/package/components/apps/editor/AppEditor.svelte +11 -11
  348. package/package/components/apps/editor/AppEditorHeader.svelte +21 -4
  349. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +41 -1
  350. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -1
  351. package/package/components/apps/editor/AppExportButton.svelte +4 -4
  352. package/package/components/apps/editor/AppExportButton.svelte.d.ts +3 -20
  353. package/package/components/apps/editor/AppInputs.svelte +1 -1
  354. package/package/components/apps/editor/AppInputs.svelte.d.ts +2 -17
  355. package/package/components/apps/editor/AppJsonEditor.svelte +5 -5
  356. package/package/components/apps/editor/AppJsonEditor.svelte.d.ts +3 -7
  357. package/package/components/apps/editor/AppPreview.svelte +17 -16
  358. package/package/components/apps/editor/ComponentHeader.svelte +1 -1
  359. package/package/components/apps/editor/DecisionTreeDebug.svelte +4 -4
  360. package/package/components/apps/editor/GridEditor.svelte +1 -0
  361. package/package/components/apps/editor/GridViewer.svelte +3 -3
  362. package/package/components/apps/editor/RecomputeAllComponents.svelte +13 -8
  363. package/package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +2 -17
  364. package/package/components/apps/editor/SubGridEditor.svelte +4 -2
  365. package/package/components/apps/editor/appPolicy.js +1 -1
  366. package/package/components/apps/editor/commonAppUtils.d.ts +1 -1
  367. package/package/components/apps/editor/commonAppUtils.js +1 -1
  368. package/package/components/apps/editor/component/Component.svelte +2 -2
  369. package/package/components/apps/editor/component/components.d.ts +8 -2
  370. package/package/components/apps/editor/component/components.js +26 -39
  371. package/package/components/apps/editor/componentsPanel/CssHelperPanel.svelte +10 -7
  372. package/package/components/apps/editor/componentsPanel/CssHelperPanel.svelte.d.ts +1 -1
  373. package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte +7 -7
  374. package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte.d.ts +1 -1
  375. package/package/components/apps/editor/componentsPanel/NameEditor.svelte +2 -2
  376. package/package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +3 -4
  377. package/package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +3 -3
  378. package/package/components/apps/editor/componentsPanel/ThemeList.svelte +5 -5
  379. package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +1 -1
  380. package/package/components/apps/editor/componentsPanel/ThemeNameEditor.svelte +2 -2
  381. package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +2 -2
  382. package/package/components/apps/editor/contextPanel/DebugPanel.svelte +4 -4
  383. package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +2 -17
  384. package/package/components/apps/editor/contextPanel/components/Output.svelte +6 -1
  385. package/package/components/apps/editor/contextPanel/components/Output.svelte.d.ts +1 -0
  386. package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -2
  387. package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +3 -2
  388. package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +6 -6
  389. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +4 -4
  390. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +0 -1
  391. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -2
  392. package/package/components/apps/editor/settingsPanel/common/PanelSection.svelte +3 -2
  393. package/package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +6 -5
  394. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -2
  395. package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +3 -2
  396. package/package/components/apps/svelte-grid/Grid.svelte +4 -4
  397. package/package/components/apps/svelte-grid/MoveResize.svelte +5 -5
  398. package/package/components/assets/AssetButtons.svelte +31 -27
  399. package/package/components/assets/AssetButtons.svelte.d.ts +0 -1
  400. package/package/components/assets/AssetColumnBadges.svelte +5 -3
  401. package/package/components/assets/AssetsDropdownButton.svelte +11 -13
  402. package/package/components/assets/AssetsUsageDrawer.svelte +7 -5
  403. package/package/components/assets/JobAssetsViewer.svelte +11 -5
  404. package/package/components/assets/VolumeDetailDrawer.svelte +101 -0
  405. package/package/components/assets/VolumeDetailDrawer.svelte.d.ts +9 -0
  406. package/package/components/assets/VolumesDrawer.svelte +191 -0
  407. package/package/components/assets/VolumesDrawer.svelte.d.ts +8 -0
  408. package/package/components/assets/assetsFilter.d.ts +4 -0
  409. package/package/components/assets/assetsFilter.js +4 -0
  410. package/package/components/assets/lib.js +4 -0
  411. package/package/components/auditLogs/AuditLogsFilters.svelte +4 -7
  412. package/package/components/chartjs-wrappers/Chart.svelte +4 -4
  413. package/package/components/common/FileProgressBar.svelte +9 -7
  414. package/package/components/common/FileProgressBar.svelte.d.ts +5 -27
  415. package/package/components/common/InlineCalendarInput.svelte +5 -1
  416. package/package/components/common/alert/Notification.svelte +2 -2
  417. package/package/components/common/alert/Notification.svelte.d.ts +4 -18
  418. package/package/components/common/button/AnimatedButton.svelte +3 -9
  419. package/package/components/common/button/AnimatedButton.svelte.d.ts +5 -27
  420. package/package/components/common/button/AnimatedButtonInner.svelte +6 -12
  421. package/package/components/common/button/AnimatedButtonInner.svelte.d.ts +5 -27
  422. package/package/components/common/button/Button.svelte +5 -5
  423. package/package/components/common/button/PulseButton.svelte +15 -19
  424. package/package/components/common/button/PulseButton.svelte.d.ts +10 -48
  425. package/package/components/common/button/RefreshButton.svelte +3 -2
  426. package/package/components/common/button/RefreshButton.svelte.d.ts +1 -1
  427. package/package/components/common/button/RoundIconButton.svelte +5 -5
  428. package/package/components/common/button/RoundIconButton.svelte.d.ts +6 -28
  429. package/package/components/common/button/UndoRedo.svelte +1 -2
  430. package/package/components/common/button/UndoRedo.svelte.d.ts +6 -5
  431. package/package/components/common/calendarPicker/CalendarPicker.svelte +44 -43
  432. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +11 -11
  433. package/package/components/common/clearableInput/ClearableInput.svelte +28 -27
  434. package/package/components/common/clearableInput/ClearableInput.svelte.d.ts +11 -37
  435. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  436. package/package/components/common/confirmationModal/DraftTriggersConfirmationModal.svelte +2 -2
  437. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +3 -3
  438. package/package/components/common/contextmenu/ContextMenu.svelte +14 -4
  439. package/package/components/common/contextmenu/ContextMenu.svelte.d.ts +2 -0
  440. package/package/components/common/contextmenu/contextMenuStyles.d.ts +4 -0
  441. package/package/components/common/contextmenu/contextMenuStyles.js +4 -0
  442. package/package/components/common/drawer/Disposable.svelte +3 -3
  443. package/package/components/common/fileInput/FileInput.svelte +16 -30
  444. package/package/components/common/fileInput/FileInput.svelte.d.ts +24 -32
  445. package/package/components/common/fileUpload/FileUploadModal.svelte +2 -4
  446. package/package/components/common/fileUpload/FileUploadModal.svelte.d.ts +7 -6
  447. package/package/components/common/kbd/Kbd.svelte +4 -3
  448. package/package/components/common/languageIcons/LanguageIcon.svelte +21 -4
  449. package/package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
  450. package/package/components/common/layout/ListElement.svelte +5 -1
  451. package/package/components/common/layout/ListElement.svelte.d.ts +5 -25
  452. package/package/components/common/menu/MenuItem.svelte +9 -4
  453. package/package/components/common/menu/MenuItem.svelte.d.ts +5 -29
  454. package/package/components/common/menu/ResolveOpen.svelte +6 -3
  455. package/package/components/common/menu/ResolveOpen.svelte.d.ts +8 -4
  456. package/package/components/common/modal/AlwaysMountedModal.svelte +11 -15
  457. package/package/components/common/modal/AlwaysMountedModal.svelte.d.ts +8 -32
  458. package/package/components/common/modal/Modal2.svelte +12 -20
  459. package/package/components/common/modal/Modal2.svelte.d.ts +10 -36
  460. package/package/components/common/popup/PopupV2.svelte +3 -2
  461. package/package/components/common/stepper/Stepper.svelte +4 -9
  462. package/package/components/common/stepper/Stepper.svelte.d.ts +10 -9
  463. package/package/components/common/table/AppRow.svelte +20 -12
  464. package/package/components/common/table/FlowRow.svelte +17 -9
  465. package/package/components/common/table/Row.svelte +6 -5
  466. package/package/components/common/table/Row.svelte.d.ts +2 -1
  467. package/package/components/common/table/RowIcon.svelte +40 -11
  468. package/package/components/common/table/RowIcon.svelte.d.ts +6 -18
  469. package/package/components/common/table/ScriptRow.svelte +37 -27
  470. package/package/components/common/table/Table.svelte +5 -1
  471. package/package/components/common/table/Table.svelte.d.ts +5 -25
  472. package/package/components/common/tabs/Tabs.svelte +2 -2
  473. package/package/components/common/tabs/TabsV2.svelte +1 -1
  474. package/package/components/common/toggleButton-v2/ToggleButton.svelte +0 -1
  475. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +10 -5
  476. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  477. package/package/components/copilot/FlowCopilotInputsModal.svelte +14 -13
  478. package/package/components/copilot/FlowCopilotInputsModal.svelte.d.ts +6 -5
  479. package/package/components/copilot/MetadataGen.svelte +5 -5
  480. package/package/components/copilot/RegexGen.svelte +87 -80
  481. package/package/components/copilot/RegexGen.svelte.d.ts +1 -1
  482. package/package/components/copilot/ResourceGen.svelte +157 -0
  483. package/package/components/copilot/ResourceGen.svelte.d.ts +12 -0
  484. package/package/components/copilot/ScriptFix.svelte +37 -33
  485. package/package/components/copilot/ScriptGen.svelte +1 -1
  486. package/package/components/copilot/chat/AIChat.svelte +1 -1
  487. package/package/components/copilot/chat/AIChatDisplay.svelte +52 -48
  488. package/package/components/copilot/chat/AIChatInput.svelte +46 -38
  489. package/package/components/copilot/chat/AIChatManager.svelte.js +4 -2
  490. package/package/components/copilot/chat/AssistantMessage.svelte +1 -1
  491. package/package/components/copilot/chat/AssistantMessage.svelte.d.ts +4 -18
  492. package/package/components/copilot/chat/ChatMode.svelte +37 -33
  493. package/package/components/copilot/chat/ContextElementBadge.svelte +6 -8
  494. package/package/components/copilot/chat/flow/AIChangesWarningModal.svelte +8 -11
  495. package/package/components/copilot/lib.d.ts +3 -2
  496. package/package/components/copilot/lib.js +25 -29
  497. package/package/components/custom_ui.d.ts +3 -0
  498. package/package/components/dbManagerDrawerModel.svelte.d.ts +13 -0
  499. package/package/components/dbManagerDrawerModel.svelte.js +182 -0
  500. package/package/components/details/ClipboardPanel.svelte +5 -8
  501. package/package/components/details/ClipboardPanel.svelte.d.ts +8 -22
  502. package/package/components/details/ErrorHandlerToggleButton.svelte +1 -4
  503. package/package/components/details/ErrorHandlerToggleButton.svelte.d.ts +5 -19
  504. package/package/components/details/ErrorHandlerToggleButtonV2.svelte +2 -6
  505. package/package/components/details/ErrorHandlerToggleButtonV2.svelte.d.ts +6 -20
  506. package/package/components/flows/CreateActionsApp.svelte +42 -18
  507. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  508. package/package/components/flows/FlowAssetsHandler.svelte +3 -2
  509. package/package/components/flows/FlowModuleIcon.svelte +4 -3
  510. package/package/components/flows/common/FlowCardHeader.svelte +3 -2
  511. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  512. package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -1
  513. package/package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +2 -17
  514. package/package/components/flows/content/FlowEditorPanel.svelte +14 -1
  515. package/package/components/flows/content/FlowEnvironmentVariables.svelte +128 -32
  516. package/package/components/flows/content/FlowFailureModule.svelte +2 -3
  517. package/package/components/flows/content/FlowFailureModule.svelte.d.ts +4 -18
  518. package/package/components/flows/content/FlowInputs.svelte +20 -2
  519. package/package/components/flows/content/FlowInputsQuick.svelte +21 -0
  520. package/package/components/flows/content/FlowLoop.svelte +2 -2
  521. package/package/components/flows/content/FlowModuleComponent.svelte +2 -2
  522. package/package/components/flows/content/FlowModuleMockTransitionMessage.svelte +13 -13
  523. package/package/components/flows/content/FlowModuleMockTransitionMessage.svelte.d.ts +2 -17
  524. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  525. package/package/components/flows/content/FlowPathViewer.svelte +7 -5
  526. package/package/components/flows/content/FlowPathViewer.svelte.d.ts +4 -18
  527. package/package/components/flows/content/FlowPreprocessorModule.svelte +2 -3
  528. package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +4 -18
  529. package/package/components/flows/content/FlowSelectionPanel.svelte +34 -10
  530. package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +5 -0
  531. package/package/components/flows/content/FlowSettings.svelte +70 -22
  532. package/package/components/flows/content/FlowWhileLoop.svelte +2 -1
  533. package/package/components/flows/content/GenAiQuick.svelte +6 -6
  534. package/package/components/flows/content/GenAiQuick.svelte.d.ts +7 -6
  535. package/package/components/flows/content/ScriptEditorDrawer.svelte +5 -4
  536. package/package/components/flows/content/SuspendDrawer.svelte +4 -4
  537. package/package/components/flows/content/SuspendDrawer.svelte.d.ts +4 -18
  538. package/package/components/flows/flowModuleNextId.d.ts +1 -0
  539. package/package/components/flows/flowModuleNextId.js +11 -0
  540. package/package/components/flows/flowStateUtils.svelte.d.ts +1 -1
  541. package/package/components/flows/header/FlowPreviewButtons.svelte +10 -0
  542. package/package/components/flows/header/FlowYamlEditor.svelte +6 -2
  543. package/package/components/flows/map/FlowJobsMenu.svelte +4 -0
  544. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +2 -2
  545. package/package/components/flows/map/FlowModuleSchemaItem.svelte +65 -54
  546. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +2 -2
  547. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +11 -9
  548. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +1 -0
  549. package/package/components/flows/map/FlowModuleSchemaMap.svelte +151 -17
  550. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +3 -0
  551. package/package/components/flows/map/InsertModuleInner.svelte +46 -21
  552. package/package/components/flows/map/MapItem.svelte +22 -9
  553. package/package/components/flows/map/MapItem.svelte.d.ts +4 -3
  554. package/package/components/flows/map/VirtualItem.svelte +5 -2
  555. package/package/components/flows/multiSelectUtils.d.ts +26 -0
  556. package/package/components/flows/multiSelectUtils.js +122 -0
  557. package/package/components/flows/pickers/FlowScriptPicker.svelte +3 -0
  558. package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  559. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +5 -6
  560. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +9 -8
  561. package/package/components/flows/pickers/FlowToplevelNode.svelte +2 -3
  562. package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +6 -5
  563. package/package/components/flows/pickers/PickHubApp.svelte +21 -2
  564. package/package/components/flows/pickers/PickHubFlow.svelte +21 -2
  565. package/package/components/flows/pickers/PickHubScript.svelte +12 -1
  566. package/package/components/flows/pickers/PickHubScriptQuick.svelte +16 -7
  567. package/package/components/flows/pickers/TopLevelNode.svelte +2 -0
  568. package/package/components/flows/previousResults.d.ts +1 -1
  569. package/package/components/flows/propPicker/JobPickerLight.svelte +1 -1
  570. package/package/components/flows/propPicker/JobPickerLight.svelte.d.ts +4 -18
  571. package/package/components/flows/propPicker/OutputBadge.svelte +2 -2
  572. package/package/components/flows/propPicker/OutputBadge.svelte.d.ts +6 -20
  573. package/package/components/flows/propPicker/OutputPicker.svelte +1 -0
  574. package/package/components/flows/propPicker/PropPickerWrapper.svelte +0 -3
  575. package/package/components/flows/types.d.ts +2 -3
  576. package/package/components/git_sync/GitSyncContext.svelte.js +74 -41
  577. package/package/components/git_sync/GitSyncModalManager.svelte +1 -1
  578. package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +2 -17
  579. package/package/components/git_sync/GitSyncRepositoryCard.svelte +34 -17
  580. package/package/components/graph/DragCoordinator.svelte +63 -0
  581. package/package/components/graph/DragCoordinator.svelte.d.ts +12 -0
  582. package/package/components/graph/DragGhost.svelte +138 -0
  583. package/package/components/graph/DragGhost.svelte.d.ts +10 -0
  584. package/package/components/graph/FlowGraphV2.svelte +85 -61
  585. package/package/components/graph/FlowGraphV2.svelte.d.ts +9 -3
  586. package/package/components/graph/MiniFlowGraph.svelte +82 -0
  587. package/package/components/graph/MiniFlowGraph.svelte.d.ts +11 -0
  588. package/package/components/graph/MoveHandleButton.svelte +47 -0
  589. package/package/components/graph/MoveHandleButton.svelte.d.ts +13 -0
  590. package/package/components/graph/SelectionBoundingBox.svelte +72 -20
  591. package/package/components/graph/SelectionBoundingBox.svelte.d.ts +7 -0
  592. package/package/components/graph/SelectionTool.svelte +3 -2
  593. package/package/components/graph/compoundLayout.d.ts +28 -0
  594. package/package/components/graph/compoundLayout.js +436 -0
  595. package/package/components/graph/graphBuilder.svelte.d.ts +9 -22
  596. package/package/components/graph/graphBuilder.svelte.js +27 -41
  597. package/package/components/graph/graphContext.d.ts +2 -0
  598. package/package/components/graph/moveManager.svelte.d.ts +74 -0
  599. package/package/components/graph/moveManager.svelte.js +176 -0
  600. package/package/components/graph/noteEditor.svelte.d.ts +0 -1
  601. package/package/components/graph/noteManager.svelte.d.ts +4 -0
  602. package/package/components/graph/noteManager.svelte.js +6 -0
  603. package/package/components/graph/noteUtils.svelte.d.ts +0 -1
  604. package/package/components/graph/noteUtils.svelte.js +0 -2
  605. package/package/components/graph/renderers/edges/BaseEdge.svelte +65 -24
  606. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +0 -1
  607. package/package/components/graph/renderers/edges/HiddenBaseEdge.svelte +1 -1
  608. package/package/components/graph/renderers/edges/HiddenBaseEdge.svelte.d.ts +4 -18
  609. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  610. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -0
  611. package/package/components/graph/renderers/nodes/AssetNode.svelte +30 -27
  612. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +1 -0
  613. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +18 -14
  614. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte.d.ts +1 -0
  615. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  616. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  617. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  618. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +1 -1
  619. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  620. package/package/components/graph/renderers/nodes/ModuleNode.svelte +50 -9
  621. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -0
  622. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +2 -2
  623. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
  624. package/package/components/graph/renderers/nodes/NodeWrapper.svelte +21 -7
  625. package/package/components/graph/renderers/nodes/NodeWrapper.svelte.d.ts +4 -1
  626. package/package/components/graph/renderers/nodes/NoteNode.svelte +2 -2
  627. package/package/components/graph/renderers/nodes/SubflowBound.svelte +1 -1
  628. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  629. package/package/components/graph/renderers/triggers/TriggerButton.svelte +6 -4
  630. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +5 -29
  631. package/package/components/graph/renderers/triggers/TriggerCount.svelte +1 -1
  632. package/package/components/graph/renderers/triggers/TriggerCount.svelte.d.ts +4 -18
  633. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -6
  634. package/package/components/graph/selectionUtils.svelte.d.ts +1 -0
  635. package/package/components/graph/selectionUtils.svelte.js +11 -1
  636. package/package/components/graph/util.d.ts +1 -4
  637. package/package/components/graph/util.js +3 -6
  638. package/package/components/graph/wacToFlow.d.ts +4 -0
  639. package/package/components/graph/wacToFlow.js +14 -0
  640. package/package/components/home/FlowIcon.svelte +2 -2
  641. package/package/components/home/FlowIcon.svelte.d.ts +5 -19
  642. package/package/components/home/ItemsList.svelte +3 -3
  643. package/package/components/home/ListFiltersQuick.svelte +2 -4
  644. package/package/components/home/ListFiltersQuick.svelte.d.ts +10 -9
  645. package/package/components/icons/AssetGenericIcon.svelte +3 -1
  646. package/package/components/icons/ClaudeIcon.svelte +20 -0
  647. package/package/components/icons/ClaudeIcon.svelte.d.ts +7 -0
  648. package/package/components/icons/RubyIcon.svelte +2 -2
  649. package/package/components/icons/WindmillIcon2.svelte +0 -1
  650. package/package/components/instanceSettings/IndexerMemorySettings.svelte +153 -20
  651. package/package/components/instanceSettings.js +44 -6
  652. package/package/components/meltComponents/MeltButton.svelte +5 -10
  653. package/package/components/meltComponents/MeltButton.svelte.d.ts +12 -35
  654. package/package/components/meltComponents/Menu.svelte +6 -6
  655. package/package/components/meltComponents/Menu.svelte.d.ts +2 -2
  656. package/package/components/meltComponents/Menubar.svelte +3 -2
  657. package/package/components/meltComponents/Menubar.svelte.d.ts +7 -0
  658. package/package/components/meltComponents/Popover.svelte +49 -73
  659. package/package/components/meltComponents/Popover.svelte.d.ts +40 -44
  660. package/package/components/meltComponents/SideBarTab.svelte +3 -2
  661. package/package/components/meltComponents/Tooltip.svelte +15 -21
  662. package/package/components/meltComponents/Tooltip.svelte.d.ts +16 -39
  663. package/package/components/propertyPicker/ObjectViewer.svelte +253 -165
  664. package/package/components/propertyPicker/ObjectViewerWrapper.svelte +16 -27
  665. package/package/components/propertyPicker/ObjectViewerWrapper.svelte.d.ts +16 -15
  666. package/package/components/propertyPicker/PropPicker.svelte +21 -53
  667. package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -1
  668. package/package/components/propertyPicker/PropPickerResult.svelte +1 -5
  669. package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +9 -8
  670. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +40 -36
  671. package/package/components/raw_apps/FileTreeNode.svelte +2 -2
  672. package/package/components/raw_apps/RawAppEditorHeader.svelte +14 -1
  673. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  674. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +4 -4
  675. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +0 -1
  676. package/package/components/raw_apps/RunnableRow.svelte +2 -2
  677. package/package/components/raw_apps/fileTreeUtils.js +2 -3
  678. package/package/components/raw_apps/utils.js +6 -1
  679. package/package/components/recording/FlowRecordingReplay.svelte +210 -0
  680. package/package/components/recording/FlowRecordingReplay.svelte.d.ts +7 -0
  681. package/package/components/recording/ScriptRecordingReplay.svelte +210 -0
  682. package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +7 -0
  683. package/package/components/recording/flowRecording.svelte.d.ts +22 -0
  684. package/package/components/recording/flowRecording.svelte.js +205 -0
  685. package/package/components/recording/scriptRecording.svelte.d.ts +9 -0
  686. package/package/components/recording/scriptRecording.svelte.js +88 -0
  687. package/package/components/recording/types.d.ts +39 -0
  688. package/package/components/recording/types.js +1 -0
  689. package/package/components/resources/resourcesFilter.d.ts +4 -0
  690. package/package/components/resources/resourcesFilter.js +4 -0
  691. package/package/components/runs/JobRunsPreview.svelte +8 -1
  692. package/package/components/runs/MobileFilters.svelte +15 -10
  693. package/package/components/runs/MobileFilters.svelte.d.ts +4 -18
  694. package/package/components/runs/PreprocessedArgsDisplay.svelte +2 -10
  695. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +4 -18
  696. package/package/components/runs/QueuePopover.svelte +2 -2
  697. package/package/components/runs/QueuePopover.svelte.d.ts +4 -18
  698. package/package/components/runs/RunBadges.svelte +1 -1
  699. package/package/components/runs/RunsTable.svelte +9 -4
  700. package/package/components/runs/RunsTable.svelte.d.ts +1 -0
  701. package/package/components/runs/runsFilter.d.ts +18 -2
  702. package/package/components/runs/runsFilter.js +20 -4
  703. package/package/components/runs/useJobsLoader.svelte.d.ts +8 -1
  704. package/package/components/runs/useJobsLoader.svelte.js +189 -47
  705. package/package/components/schedules/schedulesFilter.d.ts +4 -0
  706. package/package/components/schedules/schedulesFilter.js +4 -0
  707. package/package/components/schema/AddProperty.svelte +1 -1
  708. package/package/components/schema/AddProperty.svelte.d.ts +5 -6
  709. package/package/components/schema/AddPropertyForm.svelte +1 -1
  710. package/package/components/schema/AddPropertyForm.svelte.d.ts +1 -1
  711. package/package/components/schema/EditableSchemaSdkWrapper.svelte +3 -2
  712. package/package/components/schema/FlowPropertyEditor.svelte +1 -5
  713. package/package/components/schema/RunningJobSchemaPicker.svelte +31 -30
  714. package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +8 -7
  715. package/package/components/schema/SchemaPickerRow.svelte +3 -3
  716. package/package/components/scriptEditor/LogPanel.svelte +11 -2
  717. package/package/components/script_builder.d.ts +1 -1
  718. package/package/components/search/QuickMenuItem.svelte +2 -2
  719. package/package/components/search/RunsSearch.svelte +5 -1
  720. package/package/components/select/GenericDropdown.svelte +5 -2
  721. package/package/components/select/MultiSelect.svelte +1 -0
  722. package/package/components/select/Select.svelte +1 -0
  723. package/package/components/select/SelectDropdown.svelte +1 -1
  724. package/package/components/settings/ChangeWorkspaceId.svelte +14 -9
  725. package/package/components/settings/ChangeWorkspaceId.svelte.d.ts +4 -18
  726. package/package/components/settings/CreateToken.svelte +8 -20
  727. package/package/components/settings/PremiumInfo.svelte +36 -32
  728. package/package/components/settings/PremiumInfo.svelte.d.ts +4 -18
  729. package/package/components/settings/TokensTable.svelte +74 -14
  730. package/package/components/settings/WorkspaceUserSettings.svelte +0 -1
  731. package/package/components/sidebar/CriticalAlertModal.svelte +33 -30
  732. package/package/components/sidebar/CriticalAlertModal.svelte.d.ts +4 -18
  733. package/package/components/sidebar/CriticalAlertTable.svelte +4 -13
  734. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +4 -18
  735. package/package/components/sidebar/DarkModeToggle.svelte +2 -3
  736. package/package/components/sidebar/DarkModeToggle.svelte.d.ts +5 -20
  737. package/package/components/sidebar/FavoriteMenu.svelte +1 -1
  738. package/package/components/sidebar/MenuButton.svelte +2 -2
  739. package/package/components/sidebar/MultiplayerMenu.svelte +12 -7
  740. package/package/components/sidebar/MultiplayerMenu.svelte.d.ts +2 -17
  741. package/package/components/sidebar/SideBarNotification.svelte +1 -2
  742. package/package/components/sidebar/SideBarNotification.svelte.d.ts +4 -18
  743. package/package/components/sidebar/SidebarContent.svelte +3 -3
  744. package/package/components/sidebar/WorkspaceMenu.svelte +4 -4
  745. package/package/components/splitPanes/AnimatedPane.svelte +2 -2
  746. package/package/components/splitPanes/SplitPanesWrapper.svelte +11 -15
  747. package/package/components/splitPanes/SplitPanesWrapper.svelte.d.ts +12 -28
  748. package/package/components/sqlTypeService.d.ts +2 -2
  749. package/package/components/sqlTypeService.js +4 -8
  750. package/package/components/table/Cell.svelte +2 -2
  751. package/package/components/table/DataTable.svelte +1 -1
  752. package/package/components/table/DownloadCsv.svelte +1 -2
  753. package/package/components/table/DownloadCsv.svelte.d.ts +4 -18
  754. package/package/components/table/Head.svelte +6 -2
  755. package/package/components/table/Head.svelte.d.ts +6 -27
  756. package/package/components/table/Row.svelte +6 -10
  757. package/package/components/table/Row.svelte.d.ts +11 -18
  758. package/package/components/triggers/CaptureIcon.svelte +1 -2
  759. package/package/components/triggers/CaptureIcon.svelte.d.ts +5 -19
  760. package/package/components/triggers/TestTriggerConnection.svelte +1 -4
  761. package/package/components/triggers/TestTriggerConnection.svelte.d.ts +6 -21
  762. package/package/components/triggers/TriggerAdvancedBadges.svelte +16 -0
  763. package/package/components/triggers/TriggerAdvancedBadges.svelte.d.ts +12 -0
  764. package/package/components/triggers/TriggerEditorToolbar.svelte +11 -9
  765. package/package/components/triggers/TriggerTokens.svelte +8 -7
  766. package/package/components/triggers/TriggerTokens.svelte.d.ts +6 -21
  767. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +1 -1
  768. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +7 -2
  769. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +9 -2
  770. package/package/components/triggers/http/RouteCapture.svelte +1 -1
  771. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  772. package/package/components/triggers/http/RouteEditorInner.svelte +10 -1
  773. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +119 -5
  774. package/package/components/triggers/kafka/KafkaTriggersConfigSection.svelte +1 -0
  775. package/package/components/triggers/kafka/utils.js +2 -0
  776. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +12 -3
  777. package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte.d.ts +1 -1
  778. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +7 -2
  779. package/package/components/triggers/postgres/CheckPostgresRequirement.svelte +2 -4
  780. package/package/components/triggers/postgres/CheckPostgresRequirement.svelte.d.ts +4 -18
  781. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +10 -4
  782. package/package/components/triggers/postgres/PublicationPicker.svelte +9 -12
  783. package/package/components/triggers/postgres/PublicationPicker.svelte.d.ts +4 -18
  784. package/package/components/triggers/postgres/SlotPicker.svelte +4 -7
  785. package/package/components/triggers/postgres/SlotPicker.svelte.d.ts +4 -18
  786. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +10 -0
  787. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +6 -1
  788. package/package/components/triggers/testingBadge.svelte +3 -1
  789. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +1 -1
  790. package/package/components/triggers/websocket/WebsocketCapture.svelte +15 -13
  791. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +10 -4
  792. package/package/components/tutorials/Tutorial.svelte +2 -6
  793. package/package/components/tutorials/Tutorial.svelte.d.ts +14 -23
  794. package/package/components/tutorials/TutorialControls.svelte +1 -2
  795. package/package/components/tutorials/TutorialControls.svelte.d.ts +6 -5
  796. package/package/components/tutorials/TutorialWrapper.svelte +3 -2
  797. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +2 -3
  798. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte.d.ts +6 -6
  799. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -3
  800. package/package/components/tutorials/app/ConnectionTutorial.svelte.d.ts +6 -6
  801. package/package/components/tutorials/app/ExpressionEvaluationTutorial.svelte +2 -3
  802. package/package/components/tutorials/app/ExpressionEvaluationTutorial.svelte.d.ts +6 -6
  803. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +3 -3
  804. package/package/components/tutorials/workspace/WorkspaceOnboardingTutorial.svelte +3 -3
  805. package/package/components/variables/variablesFilter.d.ts +4 -0
  806. package/package/components/variables/variablesFilter.js +4 -0
  807. package/package/components/wizards/AppPicker.svelte +3 -3
  808. package/package/components/wizards/AppPicker.svelte.d.ts +4 -18
  809. package/package/components/wizards/DBExplorerWizard.svelte +1 -0
  810. package/package/components/workspace/WorkspaceCard.svelte +3 -2
  811. package/package/components/workspaceSettings/CreateWorkspace.svelte +3 -3
  812. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -3
  813. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte.d.ts +0 -2
  814. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -3
  815. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +0 -1
  816. package/package/components/workspaceSettings/DataTableSettings.svelte +7 -12
  817. package/package/components/workspaceSettings/DucklakeSettings.svelte +131 -167
  818. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +12 -2
  819. package/package/components/workspaceSettings/RulesetEditor.svelte +24 -12
  820. package/package/components/workspaceSettings/StorageSettings.svelte +68 -15
  821. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +10 -9
  822. package/package/gen/core/OpenAPI.js +1 -1
  823. package/package/gen/schemas.gen.d.ts +257 -9
  824. package/package/gen/schemas.gen.js +257 -9
  825. package/package/gen/services.gen.d.ts +165 -58
  826. package/package/gen/services.gen.js +278 -64
  827. package/package/gen/types.gen.d.ts +779 -128
  828. package/package/hub.d.ts +0 -1
  829. package/package/hubPaths.json +24 -22
  830. package/package/infer.js +64 -14
  831. package/package/infer.svelte.js +88 -42
  832. package/package/script_helpers.d.ts +8 -5
  833. package/package/script_helpers.js +64 -21
  834. package/package/stores.d.ts +3 -1
  835. package/package/stores.js +2 -3
  836. package/package/svelte5Utils.svelte.js +6 -0
  837. package/package/svelte5UtilsKit.svelte.js +3 -2
  838. package/package/system_prompts/prompts.d.ts +20 -20
  839. package/package/system_prompts/prompts.js +814 -540
  840. package/package/templates/claude_sandbox.ts.template +85 -0
  841. package/package/utils/editInFork.d.ts +3 -0
  842. package/package/utils/editInFork.js +19 -0
  843. package/package/utils.js +2 -2
  844. package/package/utils_deployable.d.ts +233 -9
  845. package/package/utils_deployable.js +64 -10
  846. package/package/utils_workspace_deploy.d.ts +31 -0
  847. package/package/utils_workspace_deploy.js +449 -0
  848. package/package/workspace_settings.d.ts +2 -1
  849. package/package/workspace_settings.js +28 -0
  850. package/package.json +34 -15
  851. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  852. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  853. package/package/svelte5Utils.svelte.d.ts +0 -178
@@ -1,15 +1,20 @@
1
1
  <script lang="ts">import { ViewportPortal } from '@xyflow/svelte';
2
2
  import { calculateNodesBoundsWithOffset } from './util';
3
- import { StickyNote } from 'lucide-svelte';
4
- import Button from '../common/button/Button.svelte';
3
+ import { StickyNote, Move, Copy, Trash2, EllipsisVertical } from 'lucide-svelte';
4
+ import { Button } from '../common';
5
+ import DropdownV2 from '../DropdownV2.svelte';
5
6
  import { getNoteEditorContext } from './noteEditor.svelte';
6
7
  import { getGraphContext } from './graphContext';
8
+ import MoveHandleButton from './MoveHandleButton.svelte';
7
9
  import { tick } from 'svelte';
8
- let { selectedNodes, allNodes } = $props();
10
+ import { isMac } from '../../utils';
11
+ let { selectedNodes, allNodes, onDeleteSelected, onDuplicateSelected, onMoveSelected, onCancelMove, canMoveSelected = false, isMoving = false, resolvedModuleIds = [] } = $props();
12
+ let resolvedCount = $derived(resolvedModuleIds.length);
9
13
  // Get NoteEditor context for group note creation
10
14
  const noteEditorContext = getNoteEditorContext();
11
- // Get Graph context for clearFlowSelection function
15
+ // Get Graph context for clearFlowSelection function and moveManager
12
16
  const graphContext = getGraphContext();
17
+ const moveManager = graphContext?.moveManager;
13
18
  function handleAddGroupNote() {
14
19
  if (selectedNodes.length > 0 && noteEditorContext?.noteEditor && graphContext) {
15
20
  // Create the group note first
@@ -21,7 +26,37 @@ function handleAddGroupNote() {
21
26
  });
22
27
  }
23
28
  }
24
- let bounds = $derived(() => {
29
+ let menuItems = $derived([
30
+ {
31
+ displayName: 'Move',
32
+ icon: Move,
33
+ action: () => onMoveSelected?.(),
34
+ disabled: !canMoveSelected
35
+ },
36
+ {
37
+ displayName: 'Duplicate',
38
+ icon: Copy,
39
+ action: () => onDuplicateSelected?.()
40
+ },
41
+ {
42
+ displayName: `Delete (${resolvedCount})`,
43
+ icon: Trash2,
44
+ type: 'delete',
45
+ shortcut: isMac() ? '⌫' : 'Del',
46
+ action: () => onDeleteSelected?.()
47
+ },
48
+ ...(noteEditorContext?.noteEditor
49
+ ? [
50
+ {
51
+ displayName: 'Add note',
52
+ icon: StickyNote,
53
+ separatorTop: true,
54
+ action: handleAddGroupNote
55
+ }
56
+ ]
57
+ : [])
58
+ ]);
59
+ let bounds = $derived.by(() => {
25
60
  if (selectedNodes.length === 0) {
26
61
  return null;
27
62
  }
@@ -39,8 +74,8 @@ let bounds = $derived(() => {
39
74
  });
40
75
  </script>
41
76
 
42
- {#if bounds() && selectedNodes.length > 1}
43
- {@const currentBounds = bounds()!}
77
+ {#if bounds && selectedNodes.length > 1}
78
+ {@const currentBounds = bounds!}
44
79
  <ViewportPortal target="front">
45
80
  <div
46
81
  class={'absolute cursor-pointer bg-surface-selected/40 rounded-md pointer-events-none'}
@@ -49,20 +84,37 @@ let bounds = $derived(() => {
49
84
  style:height="{currentBounds.height}px"
50
85
  style:z-index="10"
51
86
  >
52
- <!-- Add Group Note Button positioned in top-right corner -->
53
- {#if noteEditorContext?.noteEditor}
54
- <div class="absolute -top-4 -right-1 z-20" style="pointer-events: auto;">
55
- <Button
56
- unifiedSize="sm"
57
- variant="accent"
58
- title="Create group note ({selectedNodes.length} nodes)"
59
- onclick={handleAddGroupNote}
60
- startIcon={{ icon: StickyNote }}
87
+ <div
88
+ class="absolute -top-4 -right-1 z-20 flex gap-2 items-center"
89
+ style="pointer-events: auto;"
90
+ >
91
+ {#if isMoving}
92
+ <Button variant="accent" onClick={() => onCancelMove?.()} size="xs" destructive
93
+ >Cancel move</Button
61
94
  >
62
- Create group note ({selectedNodes.length} nodes)
63
- </Button>
64
- </div>
65
- {/if}
95
+ {:else if resolvedCount > 0}
96
+ {#if canMoveSelected && moveManager && resolvedModuleIds.length > 0}
97
+ <div class="">
98
+ <MoveHandleButton
99
+ {moveManager}
100
+ moduleId={resolvedModuleIds[0]}
101
+ selectedIds={resolvedModuleIds}
102
+ onClickMove={() => onMoveSelected?.()}
103
+ />
104
+ </div>
105
+ {/if}
106
+ <DropdownV2 items={menuItems} size="sm" placement="right-start">
107
+ {#snippet buttonReplacement()}
108
+ <button
109
+ class="center-center p-1 rounded-md shadow-md bg-surface text-secondary hover:bg-surface-tertiary"
110
+ title="Actions"
111
+ >
112
+ <EllipsisVertical size={12} />
113
+ </button>
114
+ {/snippet}
115
+ </DropdownV2>
116
+ {/if}
117
+ </div>
66
118
  </div>
67
119
  </ViewportPortal>
68
120
  {/if}
@@ -4,6 +4,13 @@ interface Props {
4
4
  allNodes: (Node & {
5
5
  type: string;
6
6
  })[];
7
+ onDeleteSelected?: () => void;
8
+ onDuplicateSelected?: () => void;
9
+ onMoveSelected?: () => void;
10
+ onCancelMove?: () => void;
11
+ canMoveSelected?: boolean;
12
+ isMoving?: boolean;
13
+ resolvedModuleIds?: string[];
7
14
  }
8
15
  declare const SelectionBoundingBox: import("svelte").Component<Props, {}, "">;
9
16
  type SelectionBoundingBox = ReturnType<typeof SelectionBoundingBox>;
@@ -1,6 +1,7 @@
1
- <script lang="ts">import { useOnSelectionChange, useStore } from '@xyflow/svelte';
1
+ <script lang="ts">import { untrack } from 'svelte';
2
+ import { useOnSelectionChange, useStore } from '@xyflow/svelte';
2
3
  let { selectionManager, clearGraphSelection } = $props();
3
- selectionManager.setClearGraphSelection(clearGraphSelection);
4
+ untrack(() => selectionManager).setClearGraphSelection(untrack(() => clearGraphSelection));
4
5
  // Get store to access selectionRect
5
6
  const store = useStore();
6
7
  // Handle selection changes from SvelteFlow
@@ -0,0 +1,28 @@
1
+ type LayoutConstants = {
2
+ nodeWidth: number;
3
+ nodeHeight: number;
4
+ gapH: number;
5
+ gapV: number;
6
+ };
7
+ type LayoutResult = {
8
+ positions: Map<string, {
9
+ x: number;
10
+ y: number;
11
+ }>;
12
+ bbox: {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ contentMinX: number;
17
+ };
18
+ /**
19
+ * Main entry point for compound layout.
20
+ *
21
+ * Takes the flat list of nodes and edges from graphBuilder and produces
22
+ * absolute positions that account for compound structure (branches, loops).
23
+ */
24
+ export declare function compoundLayout(nodes: {
25
+ id: string;
26
+ parentIds?: string[];
27
+ }[], constants?: Partial<LayoutConstants>): LayoutResult;
28
+ export {};
@@ -0,0 +1,436 @@
1
+ import { sugiyama, dagStratify, coordCenter, decrossTwoLayer, decrossOpt } from 'd3-dag';
2
+ import { NODE } from './util';
3
+ const LOOP_INDENT = 25;
4
+ /**
5
+ * Detect compound groups from a flat list of node IDs.
6
+ * Uses ID naming conventions from graphBuilder:
7
+ * - BranchAll/BranchOne: node X has children X-branch-N and X-end
8
+ * - ForLoop/WhileLoop: node X has child X-start and X-end
9
+ */
10
+ function detectGroups(nodeIds, allNodes, childrenMap) {
11
+ const groups = [];
12
+ for (const id of nodeIds) {
13
+ if (!id.endsWith('-end'))
14
+ continue;
15
+ // Extract base ID (everything before -end)
16
+ const baseId = id.slice(0, -4);
17
+ if (!nodeIds.has(baseId))
18
+ continue;
19
+ const baseNode = allNodes.get(baseId);
20
+ if (!baseNode)
21
+ continue;
22
+ // Check for branch pattern: probe for baseId-branch-N nodes directly
23
+ const branchLabelIds = [];
24
+ if (nodeIds.has(`${baseId}-branch-default`)) {
25
+ branchLabelIds.push(`${baseId}-branch-default`);
26
+ }
27
+ for (let i = 0; nodeIds.has(`${baseId}-branch-${i}`); i++) {
28
+ branchLabelIds.push(`${baseId}-branch-${i}`);
29
+ }
30
+ // Check for loop pattern: baseId-start node
31
+ const hasStart = nodeIds.has(`${baseId}-start`);
32
+ if (branchLabelIds.length > 0) {
33
+ // Branches are already in correct order: default first, then 0, 1, 2...
34
+ const branches = branchLabelIds.map((labelId) => ({
35
+ labelId,
36
+ innerIds: findInnerIds(labelId, id, nodeIds, childrenMap)
37
+ }));
38
+ groups.push({ type: 'branch', headId: baseId, endId: id, branches });
39
+ }
40
+ else if (hasStart) {
41
+ const innerIds = findInnerIds(`${baseId}-start`, id, nodeIds, childrenMap);
42
+ groups.push({
43
+ type: 'loop',
44
+ headId: baseId,
45
+ endId: id,
46
+ branches: [{ labelId: `${baseId}-start`, innerIds }]
47
+ });
48
+ }
49
+ }
50
+ return groups;
51
+ }
52
+ /**
53
+ * Find inner node IDs between a label/start node and an end node.
54
+ * These are nodes that are reachable from the label node but not including
55
+ * the label or end node themselves.
56
+ */
57
+ function findInnerIds(labelId, endId, nodeIds, childrenMap) {
58
+ const inner = [];
59
+ const visited = new Set();
60
+ // BFS from label to find all reachable nodes before end
61
+ const queue = [labelId];
62
+ visited.add(labelId);
63
+ visited.add(endId); // Don't traverse past end
64
+ let qi = 0;
65
+ while (qi < queue.length) {
66
+ const current = queue[qi++];
67
+ const kids = childrenMap.get(current) ?? [];
68
+ for (const kid of kids) {
69
+ if (visited.has(kid))
70
+ continue;
71
+ if (!nodeIds.has(kid))
72
+ continue;
73
+ visited.add(kid);
74
+ inner.push(kid);
75
+ queue.push(kid);
76
+ }
77
+ }
78
+ return inner;
79
+ }
80
+ /**
81
+ * Run sugiyama layout on a set of nodes with parent relationships.
82
+ * Returns x,y positions for each node, centered at x=0.
83
+ */
84
+ function runSugiyama(nodes, constants, nodeSizes) {
85
+ if (nodes.length === 0) {
86
+ return { positions: new Map(), width: 0, height: 0 };
87
+ }
88
+ if (nodes.length === 1) {
89
+ const pos = new Map();
90
+ pos.set(nodes[0].id, { x: 0, y: 0 });
91
+ const w = nodeSizes?.get(nodes[0].id)?.width ?? constants.nodeWidth;
92
+ const h = nodeSizes?.get(nodes[0].id)?.height ?? constants.nodeHeight;
93
+ return { positions: pos, width: w, height: h };
94
+ }
95
+ const nodeIdSet = new Set(nodes.map((n) => n.id));
96
+ const dagNodes = nodes.map((n) => ({
97
+ id: n.id,
98
+ parentIds: (n.parentIds ?? []).filter((pid) => nodeIdSet.has(pid))
99
+ }));
100
+ const dag = dagStratify().id(({ id }) => id)(dagNodes);
101
+ let boxSize;
102
+ try {
103
+ const layout = sugiyama()
104
+ .decross(nodes.length > 20 ? decrossTwoLayer() : decrossOpt())
105
+ .coord(coordCenter())
106
+ .nodeSize((d) => {
107
+ const nodeId = d?.data?.id ?? '';
108
+ const size = nodeSizes?.get(nodeId);
109
+ const w = size?.width ?? constants.nodeWidth;
110
+ const h = size?.height ?? constants.nodeHeight;
111
+ return [w + constants.gapH, h + constants.gapV];
112
+ });
113
+ boxSize = layout(dag);
114
+ }
115
+ catch (e) {
116
+ console.debug('[compoundLayout] decrossOpt failed, falling back to decrossTwoLayer:', e);
117
+ const layout = sugiyama()
118
+ .decross(decrossTwoLayer())
119
+ .coord(coordCenter())
120
+ .nodeSize((d) => {
121
+ const nodeId = d?.data?.id ?? '';
122
+ const size = nodeSizes?.get(nodeId);
123
+ const h = size?.height ?? constants.nodeHeight;
124
+ return [constants.nodeWidth + constants.gapH, h + constants.gapV];
125
+ });
126
+ boxSize = layout(dag);
127
+ }
128
+ const positions = new Map();
129
+ for (const desc of dag.descendants()) {
130
+ const nodeId = desc.data.id;
131
+ // sugiyama returns CENTER positions; convert to TOP by subtracting half the node's allocated height
132
+ const h = nodeSizes?.get(nodeId)?.height ?? constants.nodeHeight;
133
+ const rawY = desc.y ?? 0;
134
+ positions.set(nodeId, {
135
+ x: desc.x ?? 0,
136
+ y: rawY - (h + constants.gapV) / 2
137
+ });
138
+ }
139
+ // Normalize y so minimum = 0
140
+ let minY = Infinity;
141
+ for (const pos of positions.values()) {
142
+ minY = Math.min(minY, pos.y);
143
+ }
144
+ if (minY !== Infinity && minY !== 0) {
145
+ for (const pos of positions.values()) {
146
+ pos.y -= minY;
147
+ }
148
+ }
149
+ // Normalize x so center of bbox = 0 (important for nested branch placement)
150
+ let minX = Infinity;
151
+ let maxX = -Infinity;
152
+ for (const pos of positions.values()) {
153
+ minX = Math.min(minX, pos.x);
154
+ maxX = Math.max(maxX, pos.x);
155
+ }
156
+ if (minX !== Infinity) {
157
+ const centerX = (minX + maxX) / 2;
158
+ for (const pos of positions.values()) {
159
+ pos.x -= centerX;
160
+ }
161
+ }
162
+ return { positions, width: boxSize.width, height: boxSize.height };
163
+ }
164
+ /**
165
+ * Recursive compound layout.
166
+ *
167
+ * 1. Detect compound groups at this level
168
+ * 2. For each group, recursively lay out each branch
169
+ * 3. Compute wrapper bbox for each group
170
+ * 4. Replace group nodes with a single wrapper pseudo-node
171
+ * 5. Run sugiyama on the simplified graph
172
+ * 6. Expand wrapper positions back to absolute positions
173
+ */
174
+ const MAX_RECURSION_DEPTH = 50;
175
+ function layoutLevel(nodeIds, allNodes, constants, childrenMap, depth = 0) {
176
+ const positions = new Map();
177
+ const nodeIdSet = new Set(nodeIds);
178
+ if (nodeIds.length === 0) {
179
+ return {
180
+ positions,
181
+ bbox: { width: constants.nodeWidth, height: 0 },
182
+ contentMinX: 0
183
+ };
184
+ }
185
+ if (depth >= MAX_RECURSION_DEPTH) {
186
+ console.warn('[compoundLayout] Max recursion depth reached, falling back to flat layout');
187
+ const flatNodes = nodeIds.map((id) => {
188
+ const n = allNodes.get(id);
189
+ return { id, parentIds: (n.parentIds ?? []).filter((pid) => nodeIdSet.has(pid)) };
190
+ });
191
+ const result = runSugiyama(flatNodes, constants);
192
+ for (const [id, pos] of result.positions) {
193
+ positions.set(id, pos);
194
+ }
195
+ return { positions, bbox: { width: result.width, height: result.height }, contentMinX: 0 };
196
+ }
197
+ // Step 1: detect compound groups at this level
198
+ const groups = detectGroups(nodeIdSet, allNodes, childrenMap);
199
+ // First pass: quick set of ALL group-owned inner IDs (just for filtering nested heads)
200
+ const allGroupOwnedIds = new Set();
201
+ for (const group of groups) {
202
+ if (!nodeIdSet.has(group.headId))
203
+ continue;
204
+ for (const branch of group.branches) {
205
+ for (const innerId of branch.innerIds) {
206
+ allGroupOwnedIds.add(innerId);
207
+ }
208
+ }
209
+ }
210
+ // Filter to top-level groups (head not owned by another group)
211
+ const topLevelGroups = groups.filter((g) => nodeIdSet.has(g.headId) && !allGroupOwnedIds.has(g.headId));
212
+ // Build final groupOwnedIds and groupByHeadId from top-level only
213
+ const groupOwnedIds = new Set();
214
+ const groupByHeadId = new Map();
215
+ for (const group of topLevelGroups) {
216
+ groupByHeadId.set(group.headId, group);
217
+ groupOwnedIds.add(group.endId);
218
+ for (const branch of group.branches) {
219
+ groupOwnedIds.add(branch.labelId);
220
+ for (const innerId of branch.innerIds) {
221
+ groupOwnedIds.add(innerId);
222
+ }
223
+ }
224
+ }
225
+ const groupLayouts = new Map();
226
+ const wrapperSizes = new Map();
227
+ for (const group of topLevelGroups) {
228
+ const branchLayouts = [];
229
+ const isBranch = group.type === 'branch';
230
+ for (const branch of group.branches) {
231
+ const branchNodeIds = [branch.labelId, ...branch.innerIds];
232
+ // Find sub-groups within this branch
233
+ const result = layoutLevel(branchNodeIds, allNodes, constants, childrenMap, depth + 1);
234
+ branchLayouts.push({
235
+ labelId: branch.labelId,
236
+ result,
237
+ bbox: result.bbox
238
+ });
239
+ }
240
+ // Compute wrapper dimensions
241
+ let wrapperWidth;
242
+ let wrapperHeight;
243
+ let branchWidths = [];
244
+ let totalWidth = 0;
245
+ let maxBranchHeight = 0;
246
+ const rowHeight = constants.nodeHeight + constants.gapV;
247
+ if (isBranch) {
248
+ // Place branches side by side horizontally
249
+ branchWidths = branchLayouts.map((bl) => Math.max(bl.bbox.width, constants.nodeWidth));
250
+ const gaps = Math.max(0, branchWidths.length - 1) * constants.gapH;
251
+ totalWidth = branchWidths.reduce((s, w) => s + w, 0) + gaps;
252
+ wrapperWidth = Math.max(totalWidth, constants.nodeWidth);
253
+ maxBranchHeight = Math.max(0, ...branchLayouts.map((bl) => bl.bbox.height));
254
+ // head row + branch content + end row
255
+ wrapperHeight = rowHeight + maxBranchHeight + rowHeight;
256
+ }
257
+ else {
258
+ // Loop: body is indented
259
+ const bodyWidth = branchLayouts[0]?.bbox.width ?? constants.nodeWidth;
260
+ const bodyHeight = branchLayouts[0]?.bbox.height ?? 0;
261
+ wrapperWidth = Math.max(bodyWidth + LOOP_INDENT * 2, constants.nodeWidth);
262
+ // head row + start row + body + end row
263
+ wrapperHeight = rowHeight + bodyHeight + rowHeight;
264
+ }
265
+ groupLayouts.set(group.headId, {
266
+ group,
267
+ branchLayouts,
268
+ branchWidths,
269
+ totalWidth,
270
+ wrapperWidth,
271
+ wrapperHeight,
272
+ maxBranchHeight
273
+ });
274
+ wrapperSizes.set(group.headId, { width: wrapperWidth, height: wrapperHeight });
275
+ }
276
+ // Step 4: Build flattened node list for sugiyama
277
+ // Merge into a single pass: create flatNode and compute final parentIds with end→head redirection
278
+ const endToHead = new Map();
279
+ for (const group of topLevelGroups) {
280
+ endToHead.set(group.endId, group.headId);
281
+ }
282
+ const flatNodes = [];
283
+ for (const nid of nodeIds) {
284
+ if (groupOwnedIds.has(nid))
285
+ continue;
286
+ const originalNode = allNodes.get(nid);
287
+ const seen = new Set();
288
+ const newParents = [];
289
+ for (const pid of originalNode.parentIds ?? []) {
290
+ if (!nodeIdSet.has(pid))
291
+ continue;
292
+ const resolved = endToHead.get(pid) ?? (groupOwnedIds.has(pid) ? undefined : pid);
293
+ if (resolved && !seen.has(resolved)) {
294
+ seen.add(resolved);
295
+ newParents.push(resolved);
296
+ }
297
+ }
298
+ flatNodes.push({ id: nid, parentIds: newParents });
299
+ }
300
+ // Step 5: Run sugiyama on flattened nodes
301
+ const sugResult = runSugiyama(flatNodes, constants, wrapperSizes);
302
+ // Step 6: Resolve absolute positions
303
+ // First, set positions for regular (non-group) nodes
304
+ for (const [nid, pos] of sugResult.positions) {
305
+ if (groupByHeadId.has(nid))
306
+ continue; // Handle groups separately
307
+ positions.set(nid, { x: pos.x, y: pos.y });
308
+ }
309
+ // Now expand group wrappers into absolute positions
310
+ for (const [headId, gl] of groupLayouts) {
311
+ const wrapperPos = sugResult.positions.get(headId);
312
+ if (!wrapperPos)
313
+ continue;
314
+ const rowHeight = constants.nodeHeight + constants.gapV;
315
+ const isBranch = gl.group.type === 'branch';
316
+ // Position the head node at the top-center of the wrapper
317
+ positions.set(headId, { x: wrapperPos.x, y: wrapperPos.y });
318
+ if (isBranch) {
319
+ // Reuse cached branchWidths and totalWidth
320
+ let currentX = wrapperPos.x - gl.totalWidth / 2;
321
+ for (let bi = 0; bi < gl.branchLayouts.length; bi++) {
322
+ const bl = gl.branchLayouts[bi];
323
+ const bw = gl.branchWidths[bi];
324
+ const branchCenterX = currentX + bw / 2;
325
+ // Offset all branch positions relative to the branch center
326
+ for (const [innerNodeId, innerPos] of bl.result.positions) {
327
+ positions.set(innerNodeId, {
328
+ x: branchCenterX + innerPos.x,
329
+ y: wrapperPos.y + rowHeight + innerPos.y
330
+ });
331
+ }
332
+ currentX += bw + constants.gapH;
333
+ }
334
+ // Position end node below all branches
335
+ const maxBranchHeight = gl.maxBranchHeight;
336
+ positions.set(gl.group.endId, {
337
+ x: wrapperPos.x,
338
+ y: wrapperPos.y + rowHeight + maxBranchHeight + constants.gapV
339
+ });
340
+ }
341
+ else {
342
+ // Loop: position start, body, and end
343
+ const bl = gl.branchLayouts[0];
344
+ if (bl) {
345
+ // Position body nodes with indent
346
+ for (const [innerNodeId, innerPos] of bl.result.positions) {
347
+ positions.set(innerNodeId, {
348
+ x: wrapperPos.x + LOOP_INDENT + innerPos.x,
349
+ y: wrapperPos.y + rowHeight + innerPos.y
350
+ });
351
+ }
352
+ }
353
+ // Position end node below body
354
+ const bodyHeight = bl?.bbox.height ?? 0;
355
+ positions.set(gl.group.endId, {
356
+ x: wrapperPos.x,
357
+ y: wrapperPos.y + rowHeight + bodyHeight + constants.gapV
358
+ });
359
+ }
360
+ }
361
+ // Compute overall bbox (nodes + group wrapper extents)
362
+ let minX = Infinity;
363
+ let maxX = -Infinity;
364
+ let minY = Infinity;
365
+ let maxY = -Infinity;
366
+ for (const pos of positions.values()) {
367
+ minX = Math.min(minX, pos.x - constants.nodeWidth / 2);
368
+ maxX = Math.max(maxX, pos.x + constants.nodeWidth / 2);
369
+ minY = Math.min(minY, pos.y);
370
+ maxY = Math.max(maxY, pos.y + constants.nodeHeight);
371
+ }
372
+ // Account for group wrapper extents in bbox (e.g. LOOP_INDENT makes wrappers wider than nodes)
373
+ for (const [headId, gl] of groupLayouts) {
374
+ const pos = sugResult.positions.get(headId);
375
+ if (!pos)
376
+ continue;
377
+ minX = Math.min(minX, pos.x - gl.wrapperWidth / 2);
378
+ maxX = Math.max(maxX, pos.x + gl.wrapperWidth / 2);
379
+ maxY = Math.max(maxY, pos.y + gl.wrapperHeight);
380
+ }
381
+ const contentMinX = minX === Infinity ? 0 : minX;
382
+ const bboxWidth = maxX - minX;
383
+ const bboxHeight = maxY - (positions.size > 0 ? minY : 0);
384
+ const finalBbox = {
385
+ width: Math.max(bboxWidth, constants.nodeWidth),
386
+ height: Math.max(bboxHeight, 0)
387
+ };
388
+ return { positions, bbox: finalBbox, contentMinX };
389
+ }
390
+ /**
391
+ * Main entry point for compound layout.
392
+ *
393
+ * Takes the flat list of nodes and edges from graphBuilder and produces
394
+ * absolute positions that account for compound structure (branches, loops).
395
+ */
396
+ export function compoundLayout(nodes, constants) {
397
+ const c = {
398
+ nodeWidth: constants?.nodeWidth ?? NODE.width,
399
+ nodeHeight: constants?.nodeHeight ?? NODE.height,
400
+ gapH: constants?.gapH ?? NODE.gap.horizontal,
401
+ gapV: constants?.gapV ?? NODE.gap.vertical
402
+ };
403
+ // Build node map
404
+ const allNodes = new Map();
405
+ for (const n of nodes) {
406
+ allNodes.set(n.id, n);
407
+ }
408
+ // Build children map once (reverse of parentIds), shared across all recursion levels
409
+ const childrenMap = new Map();
410
+ for (const [nid, node] of allNodes) {
411
+ for (const pid of node.parentIds ?? []) {
412
+ if (!childrenMap.has(pid))
413
+ childrenMap.set(pid, []);
414
+ childrenMap.get(pid).push(nid);
415
+ }
416
+ }
417
+ const nodeIds = nodes.map((n) => n.id);
418
+ const result = layoutLevel(nodeIds, allNodes, c, childrenMap);
419
+ // Shift positions so minX=0 (left-aligned).
420
+ // FlowGraphV2 centers with: xCenter = viewport/2 - bbox.width/2
421
+ // which assumes positions start at x=0.
422
+ if (result.positions.size > 0) {
423
+ const minX = result.contentMinX;
424
+ if (minX !== 0 && minX !== Infinity) {
425
+ for (const pos of result.positions.values()) {
426
+ pos.x -= minX;
427
+ }
428
+ }
429
+ }
430
+ // Check for missing nodes
431
+ const missing = nodes.filter((n) => !result.positions.has(n.id));
432
+ if (missing.length > 0) {
433
+ console.warn('[compoundLayout] MISSING positions for:', missing.map((n) => n.id));
434
+ }
435
+ return result;
436
+ }