windmill-components 1.655.1 → 1.665.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 (653) hide show
  1. package/package/components/ApiConnectForm.svelte +6 -6
  2. package/package/components/ApiConnectForm.svelte.d.ts +3 -2
  3. package/package/components/AppConnectDrawer.svelte +3 -1
  4. package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
  5. package/package/components/AppConnectInner.svelte +137 -72
  6. package/package/components/AppConnectInner.svelte.d.ts +1 -0
  7. package/package/components/CompareWorkspaces.svelte +32 -24
  8. package/package/components/DBManager.svelte +7 -13
  9. package/package/components/DBTable.svelte +2 -2
  10. package/package/components/DBTableEditor.svelte +39 -31
  11. package/package/components/DBTableEditor.svelte.d.ts +2 -2
  12. package/package/components/DedicatedWorkersSelector.svelte +292 -85
  13. package/package/components/DeployWorkspace.svelte +30 -26
  14. package/package/components/Dev.svelte +7 -2
  15. package/package/components/Dev.svelte.d.ts +3 -0
  16. package/package/components/Editor.svelte +17 -13
  17. package/package/components/EditorBar.svelte.d.ts +1 -1
  18. package/package/components/FilterSearchbar.svelte +1 -1
  19. package/package/components/FirstStepInputs.svelte +0 -1
  20. package/package/components/FlowBuilder.svelte +5 -0
  21. package/package/components/FlowGraphDiffViewer.svelte +3 -0
  22. package/package/components/FlowGraphViewer.svelte +7 -4
  23. package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
  24. package/package/components/FlowGraphViewerStep.svelte +3 -3
  25. package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
  26. package/package/components/FlowPreviewContent.svelte +11 -1
  27. package/package/components/FlowStatusViewer.svelte +4 -1
  28. package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
  29. package/package/components/FlowStatusViewerInner.svelte +46 -11
  30. package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
  31. package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
  32. package/package/components/FlowTimeline.svelte +76 -84
  33. package/package/components/FlowViewer.svelte +40 -22
  34. package/package/components/FlowViewer.svelte.d.ts +8 -2
  35. package/package/components/GroupEditor.svelte +7 -9
  36. package/package/components/HistoricList.svelte +12 -4
  37. package/package/components/InstanceGroupEditor.svelte +92 -19
  38. package/package/components/InstanceSetting.svelte +16 -6
  39. package/package/components/InstanceSettings.svelte +51 -7
  40. package/package/components/InstanceSettings.svelte.d.ts +2 -1
  41. package/package/components/JobLoader.svelte +5 -4
  42. package/package/components/JobLoader.svelte.d.ts +1 -1
  43. package/package/components/Login.svelte +9 -1
  44. package/package/components/NoMainFuncBadge.svelte +2 -2
  45. package/package/components/OnBehalfOfSelector.svelte +49 -37
  46. package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
  47. package/package/components/ResourceEditor.svelte +16 -11
  48. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  49. package/package/components/ResourceEditorDrawer.svelte +3 -1
  50. package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
  51. package/package/components/ResourcePicker.svelte +10 -5
  52. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  53. package/package/components/S3FilePickerInner.svelte +12 -4
  54. package/package/components/SchemaForm.svelte +20 -14
  55. package/package/components/SchemaForm.svelte.d.ts +2 -2
  56. package/package/components/ScriptBuilder.svelte +158 -18
  57. package/package/components/ScriptEditor.svelte +674 -150
  58. package/package/components/ScriptEditor.svelte.d.ts +7 -3
  59. package/package/components/SuperadminSettings.svelte +4 -1
  60. package/package/components/SuperadminSettingsInner.svelte +176 -67
  61. package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
  62. package/package/components/SyncResourceTypes.svelte +31 -0
  63. package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
  64. package/package/components/TimelineBar.svelte +14 -8
  65. package/package/components/TimelineBar.svelte.d.ts +1 -0
  66. package/package/components/WorkerGroup.svelte +11 -4
  67. package/package/components/WorkflowTimeline.svelte +386 -58
  68. package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
  69. package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
  70. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
  71. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
  72. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
  73. package/package/components/apps/components/display/dbtable/metadata.js +44 -222
  74. package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
  75. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
  76. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
  77. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
  78. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
  79. package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
  80. package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
  81. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
  82. package/package/components/apps/editor/appUtilsS3.js +2 -2
  83. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
  84. package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
  86. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  87. package/package/components/common/drawer/Disposable.svelte +24 -2
  88. package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
  89. package/package/components/common/modal/Modal.svelte +84 -58
  90. package/package/components/common/table/AppRow.svelte.d.ts +1 -1
  91. package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
  92. package/package/components/common/table/ScriptRow.svelte +31 -3
  93. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
  94. package/package/components/copilot/MetadataGen.svelte +8 -5
  95. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
  96. package/package/components/copilot/TestAIKey.svelte +2 -1
  97. package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
  98. package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
  99. package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
  100. package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
  101. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
  102. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
  103. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
  104. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
  105. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
  106. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
  107. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
  108. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
  109. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
  110. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
  111. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
  112. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
  113. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
  114. package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
  115. package/package/components/copilot/chat/anthropic.d.ts +9 -2
  116. package/package/components/copilot/chat/anthropic.js +12 -6
  117. package/package/components/copilot/chat/app/core.js +5 -12
  118. package/package/components/copilot/chat/chatLoop.d.ts +40 -0
  119. package/package/components/copilot/chat/chatLoop.js +97 -0
  120. package/package/components/copilot/chat/openai-responses.d.ts +8 -2
  121. package/package/components/copilot/chat/openai-responses.js +17 -17
  122. package/package/components/copilot/chat/shared.d.ts +2 -1
  123. package/package/components/copilot/chat/shared.js +2 -2
  124. package/package/components/copilot/lib.d.ts +14 -5
  125. package/package/components/copilot/lib.js +68 -48
  126. package/package/components/custom_ui.d.ts +1 -0
  127. package/package/components/dbOps.d.ts +2 -2
  128. package/package/components/dbOps.js +129 -53
  129. package/package/components/debug/debugUtils.d.ts +5 -0
  130. package/package/components/debug/debugUtils.js +20 -0
  131. package/package/components/debug/index.d.ts +1 -1
  132. package/package/components/debug/index.js +3 -7
  133. package/package/components/flows/CreateActionsFlow.svelte +221 -43
  134. package/package/components/flows/DebounceLimit.svelte +42 -9
  135. package/package/components/flows/common/FlowCard.svelte +2 -1
  136. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  137. package/package/components/flows/common/FlowCardHeader.svelte +14 -10
  138. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  139. package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
  140. package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
  141. package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
  142. package/package/components/flows/content/FlowInputs.svelte +1 -1
  143. package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
  144. package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
  145. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  146. package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
  147. package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
  148. package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
  149. package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
  150. package/package/components/flows/content/FlowRetries.svelte +57 -57
  151. package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
  152. package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
  153. package/package/components/flows/content/FlowSettings.svelte +6 -6
  154. package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
  155. package/package/components/flows/content/SuspendDrawer.svelte +0 -18
  156. package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
  157. package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
  158. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  159. package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
  160. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
  161. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
  163. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  164. package/package/components/flows/map/FlowStickyNode.svelte +24 -16
  165. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  166. package/package/components/flows/map/InsertModuleInner.svelte +2 -0
  167. package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
  168. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  169. package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
  170. package/package/components/flows/scheduleUtils.js +3 -1
  171. package/package/components/flows/utils.svelte.js +6 -1
  172. package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
  173. package/package/components/git_sync/GitSyncSection.svelte +135 -99
  174. package/package/components/graph/DragGhost.svelte +11 -2
  175. package/package/components/graph/FlowGraphV2.svelte +138 -42
  176. package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
  177. package/package/components/graph/GroupActionBar.svelte +124 -0
  178. package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
  179. package/package/components/graph/GroupHeader.svelte +98 -0
  180. package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
  181. package/package/components/graph/GroupHeaderBlock.svelte +58 -0
  182. package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
  183. package/package/components/graph/GroupModuleIcons.svelte +163 -0
  184. package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
  185. package/package/components/graph/GroupNodeCard.svelte +127 -0
  186. package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
  187. package/package/components/graph/GroupNoteArea.svelte +132 -0
  188. package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
  189. package/package/components/graph/GroupOverlay.svelte +71 -0
  190. package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
  191. package/package/components/graph/MiniFlowGraph.svelte +17 -2
  192. package/package/components/graph/SelectionBoundingBox.svelte +14 -14
  193. package/package/components/graph/compoundLayout.d.ts +17 -1
  194. package/package/components/graph/compoundLayout.js +129 -14
  195. package/package/components/graph/flowStructure.d.ts +63 -0
  196. package/package/components/graph/flowStructure.js +422 -0
  197. package/package/components/graph/flowStructure.test.d.ts +1 -0
  198. package/package/components/graph/flowStructure.test.js +205 -0
  199. package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
  200. package/package/components/graph/graphBuilder.svelte.js +170 -67
  201. package/package/components/graph/graphContext.d.ts +7 -0
  202. package/package/components/graph/groupDetectionUtils.d.ts +24 -1
  203. package/package/components/graph/groupDetectionUtils.js +101 -1
  204. package/package/components/graph/groupEditor.svelte.d.ts +105 -0
  205. package/package/components/graph/groupEditor.svelte.js +253 -0
  206. package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
  207. package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
  208. package/package/components/graph/model.d.ts +2 -1
  209. package/package/components/graph/moveManager.svelte.js +0 -3
  210. package/package/components/graph/nodeExtraSpace.d.ts +32 -0
  211. package/package/components/graph/nodeExtraSpace.js +113 -0
  212. package/package/components/graph/noteColors.d.ts +1 -0
  213. package/package/components/graph/noteColors.js +20 -10
  214. package/package/components/graph/noteUtils.svelte.d.ts +0 -18
  215. package/package/components/graph/noteUtils.svelte.js +6 -41
  216. package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
  217. package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
  218. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
  219. package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
  220. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
  221. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
  222. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
  223. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
  224. package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
  225. package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
  226. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
  227. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
  228. package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
  229. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  230. package/package/components/graph/util.d.ts +5 -1
  231. package/package/components/graph/util.js +7 -5
  232. package/package/components/home/Item.svelte +1 -0
  233. package/package/components/home/ItemsList.svelte +1 -1
  234. package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
  235. package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
  236. package/package/components/icons/AlgoliaIcon.svelte +7 -0
  237. package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
  238. package/package/components/icons/ApolloIcon.svelte +7 -0
  239. package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
  240. package/package/components/icons/BambooHrIcon.svelte +7 -0
  241. package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
  242. package/package/components/icons/BaremetricsIcon.svelte +7 -0
  243. package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
  244. package/package/components/icons/BitlyIcon.svelte +7 -0
  245. package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
  246. package/package/components/icons/BloggerIcon.svelte +7 -0
  247. package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
  248. package/package/components/icons/BlueskyIcon.svelte +7 -0
  249. package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
  250. package/package/components/icons/BoxIcon.svelte +7 -0
  251. package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
  252. package/package/components/icons/BrevoIcon.svelte +7 -0
  253. package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
  254. package/package/components/icons/BrexIcon.svelte +7 -0
  255. package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
  256. package/package/components/icons/BrowserlessIcon.svelte +7 -0
  257. package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
  258. package/package/components/icons/BubbleIcon.svelte +11 -0
  259. package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
  260. package/package/components/icons/BuildkiteIcon.svelte +7 -0
  261. package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
  262. package/package/components/icons/CalcomIcon.svelte +1 -1
  263. package/package/components/icons/CalendlyIcon.svelte +7 -0
  264. package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
  265. package/package/components/icons/CircleCiIcon.svelte +7 -0
  266. package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
  267. package/package/components/icons/CiscoIcon.svelte +7 -0
  268. package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
  269. package/package/components/icons/ClearbitIcon.svelte +7 -0
  270. package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
  271. package/package/components/icons/ClerkIcon.svelte +7 -0
  272. package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
  273. package/package/components/icons/CloseIcon.svelte +37 -0
  274. package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
  275. package/package/components/icons/CloudinaryIcon.svelte +7 -0
  276. package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
  277. package/package/components/icons/CockroachDbIcon.svelte +7 -0
  278. package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
  279. package/package/components/icons/CodaIcon.svelte +7 -0
  280. package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
  281. package/package/components/icons/CohereIcon.svelte +16 -0
  282. package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
  283. package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
  284. package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
  285. package/package/components/icons/CoinbaseIcon.svelte +7 -0
  286. package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
  287. package/package/components/icons/ConfluenceIcon.svelte +7 -0
  288. package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
  289. package/package/components/icons/ContentfulIcon.svelte +7 -0
  290. package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
  291. package/package/components/icons/ConvertKitIcon.svelte +7 -0
  292. package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
  293. package/package/components/icons/DatoCmsIcon.svelte +7 -0
  294. package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
  295. package/package/components/icons/DeelIcon.svelte +7 -0
  296. package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
  297. package/package/components/icons/DeepLIcon.svelte +7 -0
  298. package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
  299. package/package/components/icons/DigitalOceanIcon.svelte +7 -0
  300. package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
  301. package/package/components/icons/DiscourseIcon.svelte +7 -0
  302. package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
  303. package/package/components/icons/DocusignIcon.svelte +7 -0
  304. package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
  305. package/package/components/icons/DropboxIcon.svelte +7 -0
  306. package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
  307. package/package/components/icons/EdgeDbIcon.svelte +16 -20
  308. package/package/components/icons/EventbriteIcon.svelte +10 -0
  309. package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
  310. package/package/components/icons/FigmaIcon.svelte +7 -0
  311. package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
  312. package/package/components/icons/FlyIcon.svelte +7 -0
  313. package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
  314. package/package/components/icons/FreshdeskIcon.svelte +7 -0
  315. package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
  316. package/package/components/icons/FrontAppIcon.svelte +7 -0
  317. package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
  318. package/package/components/icons/GhostCmsIcon.svelte +7 -0
  319. package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
  320. package/package/components/icons/GiphyIcon.svelte +7 -0
  321. package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
  322. package/package/components/icons/GitBookIcon.svelte +7 -0
  323. package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
  324. package/package/components/icons/GroqIcon.svelte +7 -0
  325. package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
  326. package/package/components/icons/HoneybadgerIcon.svelte +7 -0
  327. package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
  328. package/package/components/icons/HttpIcon.svelte +1 -0
  329. package/package/components/icons/IftttIcon.svelte +7 -0
  330. package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
  331. package/package/components/icons/IntercomIcon.svelte +7 -0
  332. package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
  333. package/package/components/icons/JoomlaIcon.svelte +7 -0
  334. package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
  335. package/package/components/icons/LineIcon.svelte +7 -0
  336. package/package/components/icons/LineIcon.svelte.d.ts +7 -0
  337. package/package/components/icons/LinearIcon.svelte +7 -0
  338. package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
  339. package/package/components/icons/LinodeIcon.svelte +7 -0
  340. package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
  341. package/package/components/icons/LumaAiIcon.svelte +39 -0
  342. package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
  343. package/package/components/icons/MSTeamsIcon.svelte +20 -38
  344. package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
  345. package/package/components/icons/MagentoIcon.svelte +7 -0
  346. package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
  347. package/package/components/icons/MailchimpIcon.svelte +25 -13
  348. package/package/components/icons/MandrillIcon.svelte +7 -0
  349. package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
  350. package/package/components/icons/MauticIcon.svelte +7 -0
  351. package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
  352. package/package/components/icons/MediumIcon.svelte +7 -0
  353. package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
  354. package/package/components/icons/MiroIcon.svelte +7 -0
  355. package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
  356. package/package/components/icons/MistralIcon.svelte +7 -0
  357. package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
  358. package/package/components/icons/MixpanelIcon.svelte +7 -0
  359. package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
  360. package/package/components/icons/MondayIcon.svelte +7 -0
  361. package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
  362. package/package/components/icons/NeonDbIcon.svelte +23 -0
  363. package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
  364. package/package/components/icons/NetlifyIcon.svelte +7 -0
  365. package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
  366. package/package/components/icons/OneSignalIcon.svelte +9 -0
  367. package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
  368. package/package/components/icons/OpenWeatherIcon.svelte +7 -0
  369. package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
  370. package/package/components/icons/PagerDutyIcon.svelte +7 -0
  371. package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
  372. package/package/components/icons/PandaDocIcon.svelte +7 -0
  373. package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
  374. package/package/components/icons/PaypalIcon.svelte +7 -0
  375. package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
  376. package/package/components/icons/PersonioIcon.svelte +7 -0
  377. package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
  378. package/package/components/icons/PinterestIcon.svelte +7 -0
  379. package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
  380. package/package/components/icons/PipedriveIcon.svelte +11 -0
  381. package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
  382. package/package/components/icons/PlanetScaleIcon.svelte +7 -0
  383. package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
  384. package/package/components/icons/PostmarkIcon.svelte +7 -0
  385. package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
  386. package/package/components/icons/PusherIcon.svelte +7 -0
  387. package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
  388. package/package/components/icons/QuickbooksIcon.svelte +13 -1
  389. package/package/components/icons/RaindropIcon.svelte +27 -0
  390. package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
  391. package/package/components/icons/ReadwiseIcon.svelte +12 -0
  392. package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
  393. package/package/components/icons/RenderIcon.svelte +7 -0
  394. package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
  395. package/package/components/icons/ReplicateIcon.svelte +7 -0
  396. package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
  397. package/package/components/icons/ResendIcon.svelte +1 -1
  398. package/package/components/icons/RestIcon.svelte +1 -0
  399. package/package/components/icons/RingCentralIcon.svelte +7 -0
  400. package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
  401. package/package/components/icons/RocketChatIcon.svelte +7 -0
  402. package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
  403. package/package/components/icons/RunPodIcon.svelte +8 -0
  404. package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
  405. package/package/components/icons/RustIcon.svelte +74 -56
  406. package/package/components/icons/SalesforceIcon.svelte +7 -0
  407. package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
  408. package/package/components/icons/SegmentIcon.svelte +7 -0
  409. package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
  410. package/package/components/icons/SentryIcon.svelte +7 -0
  411. package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
  412. package/package/components/icons/ServiceNowIcon.svelte +7 -0
  413. package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
  414. package/package/components/icons/ShortcutIcon.svelte +7 -0
  415. package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
  416. package/package/components/icons/SigNozIcon.svelte +8 -0
  417. package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
  418. package/package/components/icons/SmartsheetIcon.svelte +7 -0
  419. package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
  420. package/package/components/icons/SpeechifyIcon.svelte +7 -0
  421. package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
  422. package/package/components/icons/SplitwiseIcon.svelte +7 -0
  423. package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
  424. package/package/components/icons/StravaIcon.svelte +7 -0
  425. package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
  426. package/package/components/icons/TallyIcon.svelte +7 -0
  427. package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
  428. package/package/components/icons/TelnyxIcon.svelte +19 -0
  429. package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
  430. package/package/components/icons/ThreadsIcon.svelte +7 -0
  431. package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
  432. package/package/components/icons/TodoistIcon.svelte +7 -0
  433. package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
  434. package/package/components/icons/TogetherAiIcon.svelte +23 -0
  435. package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
  436. package/package/components/icons/TrelloIcon.svelte +22 -1
  437. package/package/components/icons/TursoIcon.svelte +7 -0
  438. package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
  439. package/package/components/icons/TwitchIcon.svelte +7 -0
  440. package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
  441. package/package/components/icons/TwitterIcon.svelte +7 -0
  442. package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
  443. package/package/components/icons/TypeformIcon.svelte +1 -1
  444. package/package/components/icons/VercelIcon.svelte +7 -0
  445. package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
  446. package/package/components/icons/WebflowIcon.svelte +7 -0
  447. package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
  448. package/package/components/icons/WooCommerceIcon.svelte +7 -0
  449. package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
  450. package/package/components/icons/WordpressIcon.svelte +7 -0
  451. package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
  452. package/package/components/icons/XataIcon.svelte +13 -0
  453. package/package/components/icons/XataIcon.svelte.d.ts +7 -0
  454. package/package/components/icons/YelpIcon.svelte +7 -0
  455. package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
  456. package/package/components/icons/YnabIcon.svelte +7 -0
  457. package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
  458. package/package/components/icons/YoutubeIcon.svelte +7 -0
  459. package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
  460. package/package/components/icons/ZendeskIcon.svelte +1 -1
  461. package/package/components/icons/ZeroTierIcon.svelte +7 -0
  462. package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
  463. package/package/components/icons/ZoomIcon.svelte +7 -0
  464. package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
  465. package/package/components/icons/index.d.ts +111 -1
  466. package/package/components/icons/index.js +225 -2
  467. package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
  468. package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
  469. package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
  470. package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
  471. package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
  472. package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
  473. package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
  474. package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
  475. package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
  476. package/package/components/instanceSettings.d.ts +3 -1
  477. package/package/components/instanceSettings.js +92 -2
  478. package/package/components/mcp/McpScopeSelector.svelte +408 -0
  479. package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
  480. package/package/components/meltComponents/Popover.svelte +0 -1
  481. package/package/components/raw_apps/RawAppPreview.svelte +6 -2
  482. package/package/components/recording/FlowRecordingReplay.svelte +94 -52
  483. package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
  484. package/package/components/recording/ScriptRecordingReplay.svelte +140 -76
  485. package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
  486. package/package/components/runs/JobRunsPreview.svelte +8 -1
  487. package/package/components/runs/TimeframeSelect.svelte +0 -1
  488. package/package/components/schema/JobSchemaPicker.svelte +8 -2
  489. package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
  490. package/package/components/schema/SchemaFormDND.svelte +15 -3
  491. package/package/components/scriptEditor/LogPanel.svelte +78 -68
  492. package/package/components/script_builder.d.ts +1 -1
  493. package/package/components/scripts/CreateActionsScript.svelte +3 -3
  494. package/package/components/scripts/WacExportDrawer.svelte +127 -0
  495. package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
  496. package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
  497. package/package/components/scripts/scriptStore.svelte.js +2 -0
  498. package/package/components/select/SelectDropdown.svelte +1 -1
  499. package/package/components/settings/AIPromptsModal.svelte +5 -2
  500. package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
  501. package/package/components/settings/CloudQuotas.svelte +152 -0
  502. package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
  503. package/package/components/settings/CreateToken.svelte +15 -430
  504. package/package/components/settings/Trashbin.svelte +248 -0
  505. package/package/components/settings/Trashbin.svelte.d.ts +3 -0
  506. package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
  507. package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
  508. package/package/components/triggers/PermissionedAsLine.svelte +66 -0
  509. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
  510. package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
  511. package/package/components/triggers/TriggerTokens.svelte +3 -3
  512. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
  513. package/package/components/triggers/email/utils.js +3 -1
  514. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
  515. package/package/components/triggers/gcp/utils.js +2 -0
  516. package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
  517. package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
  518. package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
  519. package/package/components/triggers/http/utils.js +3 -1
  520. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
  521. package/package/components/triggers/kafka/utils.js +3 -1
  522. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
  523. package/package/components/triggers/mqtt/utils.js +2 -0
  524. package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
  525. package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
  526. package/package/components/triggers/native/utils.js +3 -2
  527. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
  528. package/package/components/triggers/nats/utils.js +2 -0
  529. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
  530. package/package/components/triggers/postgres/utils.js +2 -0
  531. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
  532. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
  533. package/package/components/triggers/sqs/utils.js +2 -0
  534. package/package/components/triggers/utils.js +9 -2
  535. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
  536. package/package/components/triggers/websocket/utils.js +3 -1
  537. package/package/components/workspaceSettings/AISettings.svelte +342 -214
  538. package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
  539. package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
  540. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
  541. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  542. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
  543. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
  544. package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
  545. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
  546. package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
  547. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
  548. package/package/gen/core/OpenAPI.js +1 -1
  549. package/package/gen/schemas.gen.d.ts +294 -94
  550. package/package/gen/schemas.gen.js +294 -94
  551. package/package/gen/services.gen.d.ts +121 -5
  552. package/package/gen/services.gen.js +237 -5
  553. package/package/gen/types.gen.d.ts +715 -91
  554. package/package/githubApp.js +19 -1
  555. package/package/hubPaths.json +8 -4
  556. package/package/infer.d.ts +1 -1
  557. package/package/infer.js +5 -1
  558. package/package/logoutRedirect.d.ts +1 -0
  559. package/package/logoutRedirect.js +24 -0
  560. package/package/script_helpers.d.ts +8 -2
  561. package/package/script_helpers.js +15 -1
  562. package/package/services/trashService.d.ts +28 -0
  563. package/package/services/trashService.js +47 -0
  564. package/package/stores.d.ts +1 -0
  565. package/package/stores.js +1 -0
  566. package/package/system_prompts/index.d.ts +1 -0
  567. package/package/system_prompts/index.js +7 -0
  568. package/package/system_prompts/prompts.d.ts +7 -5
  569. package/package/system_prompts/prompts.js +182 -11
  570. package/package/templates/wac_python.py.template +42 -0
  571. package/package/templates/wac_typescript.ts.template +48 -0
  572. package/package/utils_deployable.d.ts +22 -21
  573. package/package/utils_deployable.js +58 -25
  574. package/package/utils_workspace_deploy.d.ts +15 -4
  575. package/package/utils_workspace_deploy.js +19 -15
  576. package/package/wsUrl.d.ts +1 -0
  577. package/package/wsUrl.js +15 -0
  578. package/package.json +13 -5
  579. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  580. package/dist/sharedUtils/base.d.ts +0 -1
  581. package/dist/sharedUtils/cloud.d.ts +0 -1
  582. package/dist/sharedUtils/common.d.ts +0 -111
  583. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  584. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  585. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  586. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  587. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  588. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  589. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  590. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  591. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  592. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  593. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  594. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  595. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  596. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  597. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  598. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  599. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  600. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  601. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  602. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  603. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  604. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  605. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  606. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  607. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  608. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  609. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  610. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  611. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  612. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  613. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  614. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  615. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  616. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  617. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  618. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  619. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  620. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  621. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
  622. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  623. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  624. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  625. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  626. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  627. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  628. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  629. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  630. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  631. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  632. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  633. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  634. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  635. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  636. package/dist/sharedUtils/gen/index.d.ts +0 -6
  637. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  638. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  639. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  640. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  641. package/dist/sharedUtils/hub.d.ts +0 -49
  642. package/dist/sharedUtils/jsr.json +0 -6
  643. package/dist/sharedUtils/lib.d.ts +0 -5
  644. package/dist/sharedUtils/lib.es.js +0 -1588
  645. package/dist/sharedUtils/package.json +0 -12
  646. package/dist/sharedUtils/schema.d.ts +0 -3
  647. package/dist/sharedUtils/stores.d.ts +0 -97
  648. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  649. package/dist/sharedUtils/toast.d.ts +0 -8
  650. package/dist/sharedUtils/utils.d.ts +0 -265
  651. package/package/components/graph/NodeContextMenu.svelte +0 -36
  652. package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
  653. package/package/svelte5Utils.svelte.d.ts +0 -184
@@ -37,8 +37,17 @@ import AssetsOverflowedNode from './renderers/nodes/AssetsOverflowedNode.svelte'
37
37
  import AiToolNode, { computeAIToolNodes } from './renderers/nodes/AIToolNode.svelte';
38
38
  import NewAiToolNode from './renderers/nodes/NewAIToolNode.svelte';
39
39
  import NoteNode from './renderers/nodes/NoteNode.svelte';
40
+ import CollapsedGroupNode from './renderers/nodes/CollapsedGroupNode.svelte';
41
+ import GroupHeadNode from './renderers/nodes/GroupHeadNode.svelte';
42
+ import GroupEndNode from './renderers/nodes/GroupEndNode.svelte';
40
43
  import NoteTool from './NoteTool.svelte';
41
44
  import SelectionBoundingBox from './SelectionBoundingBox.svelte';
45
+ import GroupOverlay from './GroupOverlay.svelte';
46
+ import { GroupDisplayState, getGroupEditorContext, groupKey } from './groupEditor.svelte';
47
+ import { buildStructureTree, computeGroupDepths } from './flowStructure';
48
+ import { stateSnapshot } from '../../svelte5Utils.svelte';
49
+ import { computeGroupModuleIds } from './groupDetectionUtils';
50
+ import { getAllModules } from '../flows/flowExplorer';
42
51
  import SelectionTool from './SelectionTool.svelte';
43
52
  import PaneContextMenu from './PaneContextMenu.svelte';
44
53
  import { SelectionManager } from './selectionUtils.svelte';
@@ -47,6 +56,7 @@ import { NoteManager } from './noteManager.svelte';
47
56
  import DragCoordinator from './DragCoordinator.svelte';
48
57
  import { compoundLayout } from './compoundLayout';
49
58
  import { deepEqual } from 'fast-equals';
59
+ import { computeNodeExtraSpace } from './nodeExtraSpace';
50
60
  import { setGraphContext } from './graphContext';
51
61
  import { computeNoteNodes } from './noteUtils.svelte';
52
62
  import { Tooltip } from '../meltComponents';
@@ -61,16 +71,18 @@ const diffManager = createFlowDiffManager();
61
71
  let fullWidth = 0;
62
72
  let width = $state(0);
63
73
  let simplifiableFlow = $state(undefined);
64
- let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDuplicate = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, testModuleStates = undefined, moduleActions = undefined, selectionManager: selectionManagerProp = undefined, path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moveManager = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}), onTestUpTo = undefined, onEditInput = undefined, isOwner = false, onTestFlow = undefined, isRunning = false, onCancelTestFlow = undefined, onOpenPreview = undefined, onHideJobStatus = undefined, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = {}, flowHasChanged = false, noteMode = false, notes = undefined, exitNoteMode = undefined, onNotePositionUpdate = undefined, chatInputEnabled = false, sharedViewport = undefined, onViewportChange = undefined, leftHeader = undefined, diffBeforeFlow = undefined, currentInputSchema = undefined, markRemovedAsShadowed = false, multiSelectEnabled = false, onDeleteMultiple = undefined, onDuplicateMultiple = undefined, onMoveMultiple = undefined, movingIds = undefined } = $props();
74
+ let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDuplicate = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], groupedModules: groupedModulesProp = undefined, groupError = undefined, failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, testModuleStates = undefined, moduleActions = undefined, selectionManager: selectionManagerProp = undefined, path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moveManager = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}), onTestUpTo = undefined, onEditInput = undefined, isOwner = false, onTestFlow = undefined, isRunning = false, onCancelTestFlow = undefined, onOpenPreview = undefined, onHideJobStatus = undefined, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = {}, flowHasChanged = false, noteMode = false, notes = undefined, groups = undefined, groupDisplayState: groupDisplayStateProp = undefined, exitNoteMode = undefined, onNotePositionUpdate = undefined, chatInputEnabled = false, sharedViewport = undefined, onViewportChange = undefined, leftHeader = undefined, diffBeforeFlow = undefined, currentInputSchema = undefined, markRemovedAsShadowed = false, multiSelectEnabled = false, onDeleteMultiple = undefined, onDuplicateMultiple = undefined, onMoveMultiple = undefined, movingIds = undefined } = $props();
65
75
  // Initialize note manager with fine-grained reactivity
66
76
  const noteManager = new NoteManager(() => notes ?? [], (newNodes) => {
67
77
  nodes = newNodes;
68
78
  }, () => nodes);
79
+ const groupDisplayState = untrack(() => groupDisplayStateProp) ?? new GroupDisplayState(() => groups ?? []);
69
80
  // Runtime text height tracking for notes (not stored in FlowNote)
70
81
  let noteTextHeights = $state({});
71
82
  // Reference to pane context menu component
72
83
  let paneContextMenu = $state(undefined);
73
84
  let flowContainer = $state(undefined);
85
+ // Hover tracking for group overlay
74
86
  // Selection manager - create one if not provided
75
87
  let selectionManager = untrack(() => selectionManagerProp) || new SelectionManager();
76
88
  const selectedId = $derived(selectionManager.getSelectedId());
@@ -99,7 +111,9 @@ setGraphContext({
99
111
  moveManager: untrack(() => moveManager),
100
112
  clearFlowSelection,
101
113
  yOffset,
102
- diffManager
114
+ diffManager,
115
+ getFlowNodes: () => currentGraphNodeDeps,
116
+ groupDisplayState
103
117
  });
104
118
  if (triggerContext && untrack(() => allowSimplifiedPoll)) {
105
119
  if (isSimplifiable(untrack(() => modules))) {
@@ -123,9 +137,22 @@ function onModulesChange(modules) {
123
137
  computeSimplifiableFlow(modules, triggerContext?.simplifiedPoll ? (get(triggerContext.simplifiedPoll) ?? false) : false);
124
138
  }
125
139
  let lastNodes = undefined;
126
- function layoutNodes(nodes) {
127
- let lastResult = lastNodes?.[1];
128
- if (lastResult && deepEqual(nodes, lastNodes?.[0])) {
140
+ let currentGraphNodeDeps = $state([]);
141
+ // Keep canCreateGroup in sync for consumers (SelectionBoundingBox, FlowSelectionPanel, etc.)
142
+ const groupEditorCtx = getGroupEditorContext();
143
+ $effect(() => {
144
+ if (!groupEditorCtx)
145
+ return;
146
+ const ids = selectionManager.selectedIds;
147
+ groupEditorCtx.canCreateGroup.val =
148
+ ids.length >= 1 && groupEditorCtx.groupEditor.canCreateGroup(ids, currentGraphNodeDeps);
149
+ });
150
+ let lastGroupDimensions = undefined;
151
+ function layoutNodes(nodes, nodeExtraSpace) {
152
+ let lastResult = lastNodes?.[2];
153
+ if (lastResult &&
154
+ deepEqual(nodes, lastNodes?.[0]) &&
155
+ deepEqual(nodeExtraSpace, lastNodes?.[1])) {
129
156
  console.debug('layoutNodes', 'same nodes');
130
157
  return lastResult;
131
158
  }
@@ -137,15 +164,17 @@ function layoutNodes(nodes) {
137
164
  }
138
165
  seenId.push(n.id);
139
166
  }
140
- // Run recursive compound layout
141
- const { positions, bbox } = compoundLayout(nodes, {
167
+ // Run recursive compound layout with pre-computed extra space
168
+ const layoutResult = compoundLayout(nodes, {
142
169
  nodeWidth: NODE.width,
143
170
  nodeHeight: NODE.height,
144
171
  gapH: NODE.gap.horizontal,
145
172
  gapV: NODE.gap.vertical
146
- });
147
- // Center horizontally
173
+ }, nodeExtraSpace);
174
+ const { positions, bbox } = layoutResult;
175
+ lastGroupDimensions = layoutResult.groupDimensions;
148
176
  const xCenter = (fullSize ? fullWidth : width) / 2 - bbox.width / 2 - (width - fullWidth) / 2;
177
+ // Center horizontally
149
178
  const newNodes = nodes.map((n) => ({
150
179
  id: n.id,
151
180
  position: {
@@ -153,7 +182,7 @@ function layoutNodes(nodes) {
153
182
  y: positions.get(n.id)?.y ?? 0
154
183
  }
155
184
  }));
156
- lastNodes = [nodes, newNodes];
185
+ lastNodes = [nodes, nodeExtraSpace, newNodes];
157
186
  return newNodes;
158
187
  }
159
188
  let eventHandler = {
@@ -196,13 +225,16 @@ let eventHandler = {
196
225
  },
197
226
  expandSubflow: async (id, path) => {
198
227
  const flow = await FlowService.getFlowByPath({ workspace: workspace, path });
199
- expandedSubflows[id] = flow.value.modules;
228
+ expandedSubflows[id] = { modules: flow.value.modules, groups: flow.value.groups };
200
229
  expandedSubflows = expandedSubflows;
201
230
  },
202
231
  minimizeSubflow: (id) => {
203
232
  delete expandedSubflows[id];
204
233
  expandedSubflows = expandedSubflows;
205
234
  },
235
+ expandGroup: (groupId) => {
236
+ groupDisplayState.expandGroup(groupId);
237
+ },
206
238
  updateMock: (detail) => {
207
239
  onUpdateMock?.(detail);
208
240
  },
@@ -342,13 +374,34 @@ async function updateStores() {
342
374
  if (graph.error) {
343
375
  return;
344
376
  }
345
- // console.log('compute')
346
- let layoutedNodes = layoutNodes(Object.values(graph.nodes).map((n) => ({
377
+ const graphNodeDeps = Object.values(graph.nodes).map((n) => ({
347
378
  id: n.id,
348
379
  parentIds: n.parentIds,
349
- data: { assets: n.data.assets }
350
- })));
351
- let newNodes = layoutedNodes.map((n) => ({ ...n, ...graph.nodes[n.id] }));
380
+ data: { assets: n.data.assets, module: n.data.module }
381
+ }));
382
+ currentGraphNodeDeps = graphNodeDeps;
383
+ // Pre-compute extra space per node for assets, AI tools, group notes, group headers
384
+ const nodeExtraSpace = computeNodeExtraSpace(graphNodeDeps, {
385
+ showAssets: $showAssets ?? true,
386
+ showNotes,
387
+ notes,
388
+ noteTextHeights,
389
+ groupDisplayState,
390
+ insertable,
391
+ flowModuleStates
392
+ });
393
+ // Layout with extra space baked into sugiyama
394
+ let layoutedNodes = layoutNodes(graphNodeDeps, nodeExtraSpace);
395
+ let newNodes = layoutedNodes.map((n) => {
396
+ const merged = { ...n, ...graph.nodes[n.id] };
397
+ // Augment group head nodes with wrapper dimensions from compound layout
398
+ if (graph.nodes[n.id]?.type === 'groupHead' && lastGroupDimensions?.has(n.id)) {
399
+ const dims = lastGroupDimensions.get(n.id);
400
+ merged.data = { ...merged.data, wrapperWidth: dims.width, wrapperHeight: dims.height };
401
+ }
402
+ return merged;
403
+ });
404
+ // Compute asset visual nodes (no position remapping)
352
405
  let assetNodesResult = $showAssets
353
406
  ? computeAssetNodes(newNodes.map((n) => ({
354
407
  data: { assets: n.data?.assets },
@@ -356,23 +409,14 @@ async function updateStores() {
356
409
  position: n.position
357
410
  })))
358
411
  : undefined;
359
- if (assetNodesResult) {
360
- newNodes = newNodes.map((n) => ({
361
- ...n,
362
- position: assetNodesResult.newNodePositions[n.id]
363
- }));
364
- }
412
+ // Compute AI tool visual nodes (no position remapping)
365
413
  let aiToolNodesResult = computeAIToolNodes(newNodes, eventHandler, insertable, flowModuleStates);
366
- let nodesAfterAITools = newNodes.map((n) => ({
367
- ...n,
368
- position: aiToolNodesResult.newNodePositions[n.id]
369
- }));
370
414
  let finalNodes = [
371
- ...nodesAfterAITools,
415
+ ...newNodes,
372
416
  ...(assetNodesResult?.newAssetNodes ?? []),
373
417
  ...aiToolNodesResult.toolNodes
374
418
  ];
375
- // Compute note nodes and positions
419
+ // Compute note nodes (no position remapping)
376
420
  let noteNodesResult = showNotes
377
421
  ? computeNoteNodes(finalNodes.map((n) => ({
378
422
  id: n.id,
@@ -385,13 +429,6 @@ async function updateStores() {
385
429
  noteManager.render();
386
430
  }, editMode, noteEditorContext)
387
431
  : undefined;
388
- // Apply note positioning to nodes if notes are enabled
389
- if (noteNodesResult) {
390
- finalNodes = finalNodes.map((n) => ({
391
- ...n,
392
- position: noteNodesResult.newNodePositions[n.id] || n.position
393
- }));
394
- }
395
432
  // update nodes
396
433
  nodes = [...finalNodes, ...(noteNodesResult?.noteNodes ?? [])];
397
434
  edges = [
@@ -435,7 +472,10 @@ const nodeTypes = {
435
472
  assetsOverflowed: AssetsOverflowedNode,
436
473
  aiTool: AiToolNode,
437
474
  newAiTool: NewAiToolNode,
438
- note: NoteNode
475
+ note: NoteNode,
476
+ collapsedGroup: CollapsedGroupNode,
477
+ groupHead: GroupHeadNode,
478
+ groupEnd: GroupEndNode
439
479
  };
440
480
  const edgeTypes = {
441
481
  edge: BaseEdge,
@@ -464,7 +504,30 @@ $effect(() => {
464
504
  let graph = $derived.by(() => {
465
505
  moduleTracker.counter;
466
506
  effectiveModuleActions;
467
- return graphBuilder(untrack(() => effectiveModules), {
507
+ currentGroups;
508
+ const collapsedGroupIds = new Set(allGroups
509
+ .filter((g) => groupDisplayState.isRuntimeCollapsed(groupKey(g)))
510
+ .map((g) => groupKey(g)));
511
+ if (groupError) {
512
+ return { nodes: {}, edges: [], error: groupError };
513
+ }
514
+ // Use provided structure tree (from proxy) or build locally (diff mode / read-only)
515
+ let gm = groupedModulesProp;
516
+ if (!gm) {
517
+ const allGroups = groups ?? [];
518
+ const graphGroups = allGroups.map((g) => ({
519
+ ...g,
520
+ id: groupKey(g),
521
+ moduleIds: untrack(() => computeGroupModuleIds(g.start_id, g.end_id, getAllModules(effectiveModules ?? [])))
522
+ }));
523
+ try {
524
+ gm = buildStructureTree(stateSnapshot(untrack(() => effectiveModules) ?? []), graphGroups);
525
+ }
526
+ catch (e) {
527
+ return { nodes: {}, edges: [], error: e };
528
+ }
529
+ }
530
+ const result = graphBuilder(gm, untrack(() => effectiveModules), {
468
531
  disableAi,
469
532
  insertable,
470
533
  flowModuleStates: untrack(() => flowModuleStates),
@@ -485,13 +548,31 @@ let graph = $derived.by(() => {
485
548
  flowHasChanged,
486
549
  chatInputEnabled,
487
550
  additionalAssetsMap: flowGraphAssetsCtx?.val.additionalAssetsMap
488
- }, untrack(() => effectiveFailureModule), effectivePreprocessorModule, eventHandler, success, $useDataflow, untrack(() => selectedId), simplifiableFlow, triggerNode ? path : undefined, expandedSubflows);
551
+ }, untrack(() => effectiveFailureModule), effectivePreprocessorModule, eventHandler, success, $useDataflow, untrack(() => selectedId), simplifiableFlow, triggerNode ? path : undefined, expandedSubflows, showNotes, collapsedGroupIds);
552
+ return { ...result, structureTree: gm };
489
553
  });
490
554
  let hideAssetsToggle = $derived($showAssets && Object.values(nodes).every((n) => n.type !== 'asset'));
491
- let hideNotesToggle = $derived(!notes || notes.length === 0);
555
+ let hideNotesToggle = $derived((!notes || notes.length === 0) && !(groups ?? []).some((g) => g.note != null));
556
+ let currentGroupDepths = $derived('structureTree' in graph && graph.structureTree ? computeGroupDepths(graph.structureTree) : {});
557
+ // All groups including those from expanded subflows (for overlay rendering)
558
+ let allGroups = $derived.by(() => {
559
+ const base = groups ?? [];
560
+ const subflowGroups = Object.values(expandedSubflows).flatMap((sf) => sf.groups ?? []);
561
+ return subflowGroups.length > 0 ? [...base, ...subflowGroups] : base;
562
+ });
563
+ // Track groups for re-layout when groups change
564
+ let currentGroups = $derived(groups ?? []);
492
565
  $effect(() => {
493
566
  ;
494
- [graph, allowSimplifiedPoll, $showAssets, showNotes, noteManager.renderCount];
567
+ [
568
+ graph,
569
+ allowSimplifiedPoll,
570
+ $showAssets,
571
+ showNotes,
572
+ noteManager.renderCount,
573
+ currentGroups,
574
+ groupDisplayState.renderCount
575
+ ];
495
576
  untrack(async () => {
496
577
  await updateStores();
497
578
  });
@@ -587,6 +668,15 @@ export function enableNotes() {
587
668
  showNotes = true;
588
669
  }
589
670
  }
671
+ export function createGroupFromSelection(ids) {
672
+ if (groupEditorCtx?.groupEditor) {
673
+ groupEditorCtx.groupEditor.createGroup(ids, currentGraphNodeDeps);
674
+ tick().then(() => {
675
+ clearFlowSelection();
676
+ selectionManager.clearSelection();
677
+ });
678
+ }
679
+ }
590
680
  const modifierKey = isMac() ? 'Meta' : 'Control';
591
681
  </script>
592
682
 
@@ -603,7 +693,7 @@ const modifierKey = isMac() ? 'Meta' : 'Control';
603
693
  bind:this={flowContainer}
604
694
  >
605
695
  {#if graph?.error}
606
- <div class="center-center p-2">
696
+ <div class="center-center p-2 mt-20">
607
697
  <Alert title="Error parsing the flow" type="error" class="max-w-1/2">
608
698
  {graph.error}
609
699
 
@@ -702,6 +792,12 @@ const modifierKey = isMac() ? 'Meta' : 'Control';
702
792
  />
703
793
  {/if}
704
794
 
795
+ <GroupOverlay
796
+ allNodes={nodesWithOffset as (Node & { type: string })[]}
797
+ groups={allGroups}
798
+ groupDepths={currentGroupDepths}
799
+ />
800
+
705
801
  <!-- SelectionTool for handling selection changes and filtering -->
706
802
  <SelectionTool {selectionManager} clearGraphSelection={clearFlowSelection} />
707
803
 
@@ -759,7 +855,7 @@ const modifierKey = isMac() ? 'Meta' : 'Control';
759
855
  try {
760
856
  localStorage.setItem(
761
857
  'svelvet',
762
- encodeState({ modules, failureModule, preprocessorModule, notes })
858
+ encodeState({ modules, failureModule, preprocessorModule, notes, groups })
763
859
  )
764
860
  } catch (e) {
765
861
  console.error('error interacting with local storage', e)
@@ -5,6 +5,8 @@ import '@xyflow/svelte/dist/base.css';
5
5
  import { type Viewport } from '@xyflow/svelte';
6
6
  import { type InlineScript, type InsertKind, type OnSelectedIteration } from './graphBuilder.svelte';
7
7
  import DiffDrawer from '../DiffDrawer.svelte';
8
+ import { GroupDisplayState, type FlowGroup } from './groupEditor.svelte';
9
+ import { type FlowStructureNode } from './flowStructure';
8
10
  import { SelectionManager } from './selectionUtils.svelte';
9
11
  import type { MoveManager } from './moveManager.svelte';
10
12
  import type { ModulesTestStates } from '../modulesTest.svelte';
@@ -12,6 +14,8 @@ import type { ModuleActionInfo } from '../flows/flowDiff';
12
14
  interface Props {
13
15
  success?: boolean | undefined;
14
16
  modules?: FlowModule[] | undefined;
17
+ groupedModules?: FlowStructureNode[];
18
+ groupError?: unknown;
15
19
  failureModule?: FlowModule | undefined;
16
20
  preprocessorModule?: FlowModule | undefined;
17
21
  minHeight?: number;
@@ -35,7 +39,10 @@ interface Props {
35
39
  workspace?: string;
36
40
  editMode?: boolean;
37
41
  allowSimplifiedPoll?: boolean;
38
- expandedSubflows?: Record<string, FlowModule[]>;
42
+ expandedSubflows?: Record<string, {
43
+ modules: FlowModule[];
44
+ groups?: FlowGroup[];
45
+ }>;
39
46
  isOwner?: boolean;
40
47
  isRunning?: boolean;
41
48
  individualStepTests?: boolean;
@@ -47,6 +54,8 @@ interface Props {
47
54
  }>;
48
55
  noteMode?: boolean;
49
56
  notes?: FlowNote[];
57
+ groups?: FlowGroup[];
58
+ groupDisplayState?: GroupDisplayState;
50
59
  chatInputEnabled?: boolean;
51
60
  multiSelectEnabled?: boolean;
52
61
  onDeleteMultiple?: (ids: string[]) => void;
@@ -76,6 +85,10 @@ interface Props {
76
85
  summary: string;
77
86
  };
78
87
  kind: InsertKind;
88
+ expandGroup?: {
89
+ groupId: string;
90
+ position: 'top' | 'bottom';
91
+ };
79
92
  }) => Promise<void>;
80
93
  onNewBranch?: (id: string) => Promise<void>;
81
94
  onSelect?: (id: string | FlowModule) => void;
@@ -142,6 +155,7 @@ declare const FlowGraphV2: import("svelte").Component<Props, {
142
155
  showModuleDiff: (moduleId: string) => void;
143
156
  };
144
157
  enableNotes: () => void;
158
+ createGroupFromSelection: (ids: string[]) => void;
145
159
  }, "expandedSubflows">;
146
160
  type FlowGraphV2 = ReturnType<typeof FlowGraphV2>;
147
161
  export default FlowGraphV2;
@@ -0,0 +1,124 @@
1
+ <script lang="ts">import { preventDefault, stopPropagation } from 'svelte/legacy';
2
+ import { EllipsisVertical, StickyNote, Ungroup } from 'lucide-svelte';
3
+ import { NoteColor, NOTE_COLOR_SWATCHES } from './noteColors';
4
+ import Toggle from '../Toggle.svelte';
5
+ import DropdownV2 from '../DropdownV2.svelte';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import MoveHandleButton from './MoveHandleButton.svelte';
8
+ let { note, color, autocollapse, visible = true, menuOpen = $bindable(), moveManager, moveModuleId, onMenuOpenChange, onAddNote, onRemoveNote, onUpdateColor, onUpdateAutocollapse, onDeleteGroup = undefined } = $props();
9
+ $effect(() => {
10
+ onMenuOpenChange?.(menuOpen ?? false);
11
+ });
12
+ </script>
13
+
14
+ <div
15
+ class="absolute -translate-y-[100%] top-2 right-0 h-7 p-1 min-w-7 flex flex-row gap-2"
16
+ style="will-change: transform;"
17
+ >
18
+ {#if moveManager && moveModuleId}
19
+ <MoveHandleButton
20
+ {moveManager}
21
+ moduleId={moveModuleId}
22
+ singleNode
23
+ {visible}
24
+ onClickMove={() => moveManager.toggleMoving(moveModuleId!)}
25
+ />
26
+ {/if}
27
+ {#if note == null}
28
+ <button
29
+ class={twMerge(
30
+ 'center-center p-1 text-secondary shadow-sm bg-surface duration-0 hover:bg-surface-tertiary',
31
+ visible ? 'block' : '!hidden',
32
+ 'shadow-md rounded-md'
33
+ )}
34
+ onpointerdown={stopPropagation(preventDefault(() => {}))}
35
+ onclick={() => onAddNote()}
36
+ title="Add note"
37
+ >
38
+ <StickyNote size={12} />
39
+ </button>
40
+ {/if}
41
+ <DropdownV2
42
+ placement="bottom-end"
43
+ bind:open={menuOpen}
44
+ fixedHeight={false}
45
+ usePointerDownOutside
46
+ customMenu
47
+ >
48
+ {#snippet buttonReplacement()}
49
+ <button
50
+ class={twMerge(
51
+ 'center-center p-1 text-secondary shadow-sm bg-surface duration-0 hover:bg-surface-tertiary',
52
+ visible || menuOpen ? 'block' : '!hidden',
53
+ 'shadow-md rounded-md'
54
+ )}
55
+ onpointerdown={stopPropagation(preventDefault(() => {}))}
56
+ title="Actions"
57
+ >
58
+ <EllipsisVertical size={12} />
59
+ </button>
60
+ {/snippet}
61
+ {#snippet menu()}
62
+ <div
63
+ class="bg-surface-tertiary dark:border w-56 origin-top-right rounded-lg shadow-lg focus:outline-none py-1"
64
+ >
65
+ <!-- Color picker -->
66
+ <div class="px-4 py-2">
67
+ <div class="grid grid-cols-5 gap-1">
68
+ {#each Object.values(NoteColor) as c (c)}
69
+ <button
70
+ class="w-6 h-6 rounded-full hover:scale-110 transition-transform duration-100
71
+ {NOTE_COLOR_SWATCHES[c]}
72
+ {(color ?? NoteColor.BLUE) === c ? 'ring-2 ring-accent' : 'dark:border-gray-600'}"
73
+ onclick={() => onUpdateColor(c)}
74
+ title={c.charAt(0).toUpperCase() + c.slice(1)}
75
+ ></button>
76
+ {/each}
77
+ </div>
78
+ </div>
79
+
80
+ <!-- Autocollapse toggle -->
81
+ <div class="px-4 py-2">
82
+ <Toggle
83
+ size="xs"
84
+ checked={autocollapse}
85
+ options={{ right: 'Autocollapse' }}
86
+ on:change={(e) => onUpdateAutocollapse(e.detail)}
87
+ />
88
+ </div>
89
+
90
+ <div class="my-1 border-t border-border-light"></div>
91
+
92
+ <!-- Add / Remove note -->
93
+ <button
94
+ class="px-4 py-2 text-primary font-normal hover:bg-surface-hover cursor-pointer text-xs w-full flex flex-row gap-2 items-center rounded-sm"
95
+ onclick={() => {
96
+ note == null ? onAddNote() : onRemoveNote()
97
+ menuOpen = false
98
+ }}
99
+ >
100
+ <StickyNote size={14} class="shrink-0" />
101
+ <p class="truncate grow min-w-0 whitespace-nowrap text-left"
102
+ >{note == null ? 'Add note' : 'Remove note'}</p
103
+ >
104
+ </button>
105
+
106
+ {#if onDeleteGroup}
107
+ <div class="my-1 border-t border-border-light"></div>
108
+
109
+ <!-- Ungroup -->
110
+ <button
111
+ class="px-4 py-2 font-normal hover:bg-red-500/10 cursor-pointer text-xs w-full flex flex-row gap-2 items-center rounded-sm text-red-600 dark:text-red-400"
112
+ onclick={() => {
113
+ onDeleteGroup?.()
114
+ menuOpen = false
115
+ }}
116
+ >
117
+ <Ungroup size={14} class="shrink-0" />
118
+ <p class="truncate grow min-w-0 whitespace-nowrap text-left">Ungroup</p>
119
+ </button>
120
+ {/if}
121
+ </div>
122
+ {/snippet}
123
+ </DropdownV2>
124
+ </div>
@@ -0,0 +1,20 @@
1
+ import { NoteColor } from './noteColors';
2
+ import type { MoveManager } from './moveManager.svelte';
3
+ interface Props {
4
+ note: string | undefined | null;
5
+ color: string | undefined;
6
+ autocollapse: boolean;
7
+ visible?: boolean;
8
+ menuOpen?: boolean;
9
+ moveManager?: MoveManager;
10
+ moveModuleId?: string;
11
+ onMenuOpenChange?: (open: boolean) => void;
12
+ onAddNote: () => void;
13
+ onRemoveNote: () => void;
14
+ onUpdateColor: (color: NoteColor) => void;
15
+ onUpdateAutocollapse: (value: boolean) => void;
16
+ onDeleteGroup?: () => void;
17
+ }
18
+ declare const GroupActionBar: import("svelte").Component<Props, {}, "menuOpen">;
19
+ type GroupActionBar = ReturnType<typeof GroupActionBar>;
20
+ export default GroupActionBar;
@@ -0,0 +1,98 @@
1
+ <script lang="ts">import { NOTE_COLORS, NoteColor } from './noteColors';
2
+ import { stopPropagation, preventDefault } from 'svelte/legacy';
3
+ import { ChevronRight } from 'lucide-svelte';
4
+ import TextInput from '../text_input/TextInput.svelte';
5
+ let { summary, color, collapsed, editMode, onToggleCollapse, onSummaryUpdate } = $props();
6
+ let colorConfig = $derived(NOTE_COLORS[color ?? NoteColor.BLUE] ?? NOTE_COLORS[NoteColor.BLUE]);
7
+ const PLACEHOLDER = 'Group';
8
+ // Inline summary editing
9
+ let editingSummary = $state(false);
10
+ let summaryInput = $state('');
11
+ let textInputComponent = $state(undefined);
12
+ function startEditingSummary() {
13
+ if (!editMode)
14
+ return;
15
+ editingSummary = true;
16
+ summaryInput = summary ?? '';
17
+ requestAnimationFrame(() => {
18
+ textInputComponent?.focus();
19
+ textInputComponent?.select();
20
+ });
21
+ }
22
+ function saveSummary() {
23
+ editingSummary = false;
24
+ const trimmed = summaryInput.trim();
25
+ if (trimmed !== (summary ?? '')) {
26
+ onSummaryUpdate?.(trimmed);
27
+ }
28
+ }
29
+ function handleSummaryKeydown(event) {
30
+ if (event.key === 'Enter') {
31
+ saveSummary();
32
+ }
33
+ else if (event.key === 'Escape') {
34
+ editingSummary = false;
35
+ }
36
+ }
37
+ </script>
38
+
39
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
40
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
41
+ <div
42
+ class="flex items-center h-[22px] w-full px-2 relative cursor-pointer {colorConfig.background} {colorConfig.text} {collapsed
43
+ ? 'rounded-t-md'
44
+ : 'rounded-md'}"
45
+ onclick={stopPropagation(preventDefault(onToggleCollapse))}
46
+ onpointerdown={stopPropagation(preventDefault(() => {}))}
47
+ title={collapsed ? 'Expand group' : 'Collapse group'}
48
+ >
49
+ <div
50
+ class="flex items-center justify-center shrink-0 opacity-60 transition-transform duration-100"
51
+ class:rotate-90={!collapsed}
52
+ >
53
+ <ChevronRight size={12} />
54
+ </div>
55
+ <div class="absolute inset-x-0 flex items-center justify-center h-full pointer-events-none px-7">
56
+ {#if editingSummary}
57
+ <div
58
+ class="input-sizer inline-grid items-center pointer-events-auto text-2xs font-medium max-w-full"
59
+ data-value={summaryInput || PLACEHOLDER}
60
+ >
61
+ <TextInput
62
+ bind:this={textInputComponent}
63
+ bind:value={summaryInput}
64
+ size="xs"
65
+ class="!bg-transparent !border-transparent !shadow-none !text-2xs !font-medium !p-0 !m-0 !min-w-0 text-center !min-h-0 !h-auto nodrag nowheel"
66
+ inputProps={{
67
+ placeholder: PLACEHOLDER,
68
+ onblur: saveSummary,
69
+ onkeydown: handleSummaryKeydown,
70
+ spellcheck: false,
71
+ size: 1,
72
+ style: 'padding: 2px !important; grid-area: 1 / 1'
73
+ }}
74
+ />
75
+ </div>
76
+ {:else}
77
+ <span
78
+ class="text-2xs font-medium truncate text-center pointer-events-auto {editMode
79
+ ? 'cursor-text rounded px-0.5 -mx-0.5 hover:bg-black/10 dark:hover:bg-white/10'
80
+ : ''}"
81
+ onclick={editMode ? stopPropagation(preventDefault(startEditingSummary)) : undefined}
82
+ onpointerdown={editMode ? stopPropagation(preventDefault(() => {})) : undefined}
83
+ >{summary || PLACEHOLDER}</span
84
+ >
85
+ {/if}
86
+ </div>
87
+ </div>
88
+
89
+ <style>
90
+ .input-sizer::after {
91
+ content: attr(data-value) ' ';
92
+ visibility: hidden;
93
+ white-space: pre;
94
+ grid-area: 1 / 1;
95
+ font: inherit;
96
+ padding: 2px;
97
+ text-align: center;
98
+ }</style>
@@ -0,0 +1,11 @@
1
+ interface Props {
2
+ summary?: string;
3
+ color?: string;
4
+ collapsed: boolean;
5
+ editMode: boolean;
6
+ onToggleCollapse: () => void;
7
+ onSummaryUpdate?: (text: string) => void;
8
+ }
9
+ declare const GroupHeader: import("svelte").Component<Props, {}, "">;
10
+ type GroupHeader = ReturnType<typeof GroupHeader>;
11
+ export default GroupHeader;