windmill-components 1.532.0 → 1.542.4

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 (371) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +60 -27
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/Auth0Setting.svelte +8 -3
  8. package/package/components/ConcurrentJobsChart.svelte +36 -48
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  10. package/package/components/CustomPopover.svelte.d.ts +1 -1
  11. package/package/components/Dev.svelte +5 -4
  12. package/package/components/DiffDrawer.svelte +2 -2
  13. package/package/components/DiffEditor.svelte +34 -37
  14. package/package/components/DiffEditor.svelte.d.ts +23 -39
  15. package/package/components/DropdownSelect.svelte +26 -0
  16. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  17. package/package/components/DropdownV2Inner.svelte +1 -1
  18. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  19. package/package/components/DynamicInput.svelte.d.ts +11 -0
  20. package/package/components/EditableSchemaForm.svelte +155 -140
  21. package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
  22. package/package/components/Editor.svelte +101 -87
  23. package/package/components/Editor.svelte.d.ts +7 -1
  24. package/package/components/EditorBar.svelte +2 -5
  25. package/package/components/FlowBuilder.svelte +10 -7
  26. package/package/components/FlowLogRow.svelte +64 -0
  27. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  28. package/package/components/FlowLogViewer.svelte +406 -373
  29. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  30. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  31. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  32. package/package/components/FlowPreviewContent.svelte +3 -3
  33. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusViewer.svelte +28 -0
  35. package/package/components/FlowStatusViewerInner.svelte +106 -23
  36. package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
  37. package/package/components/FolderPicker.svelte +1 -1
  38. package/package/components/InputTransformForm.svelte +20 -10
  39. package/package/components/JobArgs.svelte +1 -1
  40. package/package/components/JobLoader.svelte.d.ts +1 -1
  41. package/package/components/JobStatus.svelte +2 -0
  42. package/package/components/LogSnippetViewer.svelte +3 -3
  43. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  44. package/package/components/LogViewer.svelte +87 -71
  45. package/package/components/LogViewer.svelte.d.ts +1 -0
  46. package/package/components/ModulePreview.svelte +2 -1
  47. package/package/components/ModulePreview.svelte.d.ts +1 -0
  48. package/package/components/ModulePreviewForm.svelte +72 -65
  49. package/package/components/ModulePreviewResultViewer.svelte +13 -18
  50. package/package/components/ModuleTest.svelte +6 -5
  51. package/package/components/ModuleTest.svelte.d.ts +1 -0
  52. package/package/components/OktaSetting.svelte +8 -3
  53. package/package/components/Path.svelte +7 -1
  54. package/package/components/Path.svelte.d.ts +1 -1
  55. package/package/components/Portal.svelte +11 -7
  56. package/package/components/Portal.svelte.d.ts +19 -39
  57. package/package/components/PrefixedInput.svelte +120 -0
  58. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  59. package/package/components/QueuePosition.svelte +81 -0
  60. package/package/components/QueuePosition.svelte.d.ts +8 -0
  61. package/package/components/ResourceNarrowing.svelte +13 -0
  62. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  63. package/package/components/ResourceTypePicker.svelte +49 -74
  64. package/package/components/RunChart.svelte +74 -89
  65. package/package/components/RunChart.svelte.d.ts +10 -22
  66. package/package/components/RunForm.svelte +2 -2
  67. package/package/components/RunForm.svelte.d.ts +1 -1
  68. package/package/components/RunFormAdvancedPopup.svelte +13 -1
  69. package/package/components/S3FilePicker.svelte +1 -1
  70. package/package/components/SchemaForm.svelte +1 -2
  71. package/package/components/SchemaForm.svelte.d.ts +2 -2
  72. package/package/components/ScriptBuilder.svelte +3 -2
  73. package/package/components/ScriptEditor.svelte +25 -10
  74. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  75. package/package/components/ServiceLogsInner.svelte +1 -1
  76. package/package/components/ShareModal.svelte.d.ts +1 -1
  77. package/package/components/SimpleEditor.svelte +4 -68
  78. package/package/components/StringTypeNarrowing.svelte +5 -10
  79. package/package/components/TemplateEditor.svelte +2 -16
  80. package/package/components/TimeAgo.svelte +1 -1
  81. package/package/components/TimeAgo.svelte.d.ts +1 -0
  82. package/package/components/Toggle.svelte +2 -1
  83. package/package/components/Toggle.svelte.d.ts +2 -1
  84. package/package/components/WorkerRepl.svelte +1 -1
  85. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  86. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  87. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  88. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  89. package/package/components/apps/components/display/table/utils.js +36 -5
  90. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  91. package/package/components/apps/components/layout/AppModal.svelte +2 -2
  92. package/package/components/apps/editor/AppEditor.svelte +4 -3
  93. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  94. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  95. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  96. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
  97. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  103. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
  104. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
  105. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
  106. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
  107. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  108. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
  109. package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
  110. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  111. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  112. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  113. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  114. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  115. package/package/components/common/OnChange.svelte.d.ts +11 -4
  116. package/package/components/common/badge/Badge.svelte +9 -2
  117. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  118. package/package/components/common/button/model.d.ts +1 -1
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  120. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  121. package/package/components/common/drawer/Disposable.svelte +45 -26
  122. package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
  123. package/package/components/common/drawer/Drawer.svelte +17 -14
  124. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  125. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  126. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  127. package/package/components/common/tabs/TabContent.svelte +2 -7
  128. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  129. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  130. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  131. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  132. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  133. package/package/components/copilot/MetadataGen.svelte +14 -3
  134. package/package/components/copilot/chat/AIChatInput.svelte +0 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
  136. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  137. package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
  138. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
  139. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  140. package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
  141. package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
  142. package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
  143. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
  144. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  145. package/package/components/copilot/chat/anthropic.js +208 -0
  146. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  147. package/package/components/copilot/chat/api/apiTools.js +10 -7
  148. package/package/components/copilot/chat/api/core.d.ts +1 -1
  149. package/package/components/copilot/chat/api/core.js +7 -2
  150. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  151. package/package/components/copilot/chat/ask/core.js +7 -2
  152. package/package/components/copilot/chat/context.d.ts +7 -2
  153. package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
  154. package/package/components/copilot/chat/flow/core.d.ts +12 -1
  155. package/package/components/copilot/chat/flow/core.js +133 -5
  156. package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
  157. package/package/components/copilot/chat/flow/uiIntents.js +5 -0
  158. package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
  159. package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
  160. package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
  161. package/package/components/copilot/chat/monaco-adapter.js +55 -16
  162. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  163. package/package/components/copilot/chat/navigator/core.js +7 -2
  164. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  165. package/package/components/copilot/chat/script/core.d.ts +5 -4
  166. package/package/components/copilot/chat/script/core.js +134 -21
  167. package/package/components/copilot/chat/shared.d.ts +10 -9
  168. package/package/components/copilot/chat/shared.js +24 -12
  169. package/package/components/copilot/lib.d.ts +29 -8
  170. package/package/components/copilot/lib.js +211 -31
  171. package/package/components/copilot/shared.d.ts +1 -1
  172. package/package/components/copilot/shared.js +16 -10
  173. package/package/components/flows/FlowEditor.svelte +4 -2
  174. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  175. package/package/components/flows/FlowModuleIcon.svelte +8 -8
  176. package/package/components/flows/common/FlowCardHeader.svelte +4 -1
  177. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
  178. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
  179. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  180. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  181. package/package/components/flows/content/FlowInput.svelte +36 -39
  182. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -0
  184. package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
  185. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  188. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
  189. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  190. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  191. package/package/components/flows/content/FlowRetries.svelte +108 -3
  192. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  193. package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
  194. package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
  195. package/package/components/flows/dfs.d.ts +1 -1
  196. package/package/components/flows/dfs.js +6 -6
  197. package/package/components/flows/flowInfers.js +15 -42
  198. package/package/components/flows/flowStateUtils.svelte.js +1 -2
  199. package/package/components/flows/flowStore.d.ts +45 -1
  200. package/package/components/flows/flowStore.js +1 -1
  201. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  202. package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
  203. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  205. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  206. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  207. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  208. package/package/components/flows/map/MapItem.svelte +8 -4
  209. package/package/components/flows/map/VirtualItem.svelte +1 -1
  210. package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
  211. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
  212. package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
  213. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
  214. package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
  215. package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
  216. package/package/components/flows/types.d.ts +16 -3
  217. package/package/components/flows/utils.js +3 -0
  218. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  219. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  220. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  221. package/package/components/graph/FlowGraphV2.svelte +1 -1
  222. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  223. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  224. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  225. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  226. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  227. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  228. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
  229. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  230. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  231. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  232. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  233. package/package/components/home/ItemsList.svelte +17 -13
  234. package/package/components/home/TreeView.svelte +21 -27
  235. package/package/components/home/TreeView.svelte.d.ts +2 -29
  236. package/package/components/home/TreeViewRoot.svelte +11 -23
  237. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  238. package/package/components/icons/GitIcon.svelte +10 -2
  239. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  240. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  241. package/package/components/meltComponents/Popover.svelte +23 -3
  242. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  243. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  244. package/package/components/monacoLanguagesOptions.js +109 -0
  245. package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
  246. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  247. package/package/components/propertyPicker/utils.js +14 -7
  248. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
  249. package/package/components/runs/JobRunsPreview.svelte +212 -177
  250. package/package/components/runs/JobsLoader.svelte +2 -2
  251. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  252. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  253. package/package/components/runs/RunBadges.svelte +100 -0
  254. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  255. package/package/components/runs/RunLabels.svelte +86 -0
  256. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  257. package/package/components/runs/RunOption.svelte +20 -0
  258. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  259. package/package/components/runs/RunRow.svelte +239 -151
  260. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  261. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  262. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  263. package/package/components/runs/RunsFilter.svelte +369 -243
  264. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  265. package/package/components/runs/RunsQueue.svelte +96 -25
  266. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  267. package/package/components/runs/RunsTable.svelte +62 -71
  268. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  269. package/package/components/runs/runs-grid.css +95 -0
  270. package/package/components/schema/AddPropertyV2.svelte +2 -7
  271. package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
  272. package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
  273. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
  274. package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
  275. package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
  276. package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
  277. package/package/components/schema/FlowPropertyEditor.svelte +195 -236
  278. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  279. package/package/components/schema/PropertyEditor.svelte +33 -35
  280. package/package/components/schema/SchemaFormDND.svelte +11 -10
  281. package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
  282. package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
  283. package/package/components/search/GlobalSearchModal.svelte +8 -1
  284. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  285. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  286. package/package/components/select/Select.svelte +2 -1
  287. package/package/components/select/Select.svelte.d.ts +25 -13
  288. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  289. package/package/components/settings/PremiumInfo.svelte +7 -2
  290. package/package/components/settings/TokenDisplay.svelte +1 -1
  291. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  292. package/package/components/sidebar/SidebarContent.svelte +48 -2
  293. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  294. package/package/components/toast.js +6 -3
  295. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  296. package/package/components/triggers/CaptureWrapper.svelte +21 -16
  297. package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
  298. package/package/components/triggers/TriggerLabel.svelte +8 -0
  299. package/package/components/triggers/TriggerTokens.svelte +1 -1
  300. package/package/components/triggers/TriggersEditor.svelte +9 -5
  301. package/package/components/triggers/TriggersTable.svelte +2 -2
  302. package/package/components/triggers/TriggersWrapper.svelte +17 -5
  303. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  304. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  305. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  306. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  307. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  308. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  309. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  310. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  311. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  312. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  313. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  314. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  315. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  316. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  317. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  318. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  319. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  320. package/package/components/triggers/email/utils.d.ts +4 -0
  321. package/package/components/triggers/email/utils.js +52 -0
  322. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  323. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  324. package/package/components/triggers/http/utils.js +1 -1
  325. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
  326. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
  327. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
  328. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  329. package/package/components/triggers/triggers.svelte.js +24 -2
  330. package/package/components/triggers/utils.js +19 -5
  331. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
  332. package/package/components/triggers.d.ts +1 -1
  333. package/package/components/triggers.js +2 -0
  334. package/package/components/wizards/AgGridWizard.svelte +85 -80
  335. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  336. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  337. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  338. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  339. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  340. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  341. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  342. package/package/gen/core/OpenAPI.js +1 -1
  343. package/package/gen/schemas.gen.d.ts +142 -3
  344. package/package/gen/schemas.gen.js +144 -3
  345. package/package/gen/services.gen.d.ts +129 -1
  346. package/package/gen/services.gen.js +267 -1
  347. package/package/gen/types.gen.d.ts +434 -8
  348. package/package/hubPaths.json +6 -2
  349. package/package/infer.js +1 -1
  350. package/package/keyboardChain.d.ts +5 -0
  351. package/package/keyboardChain.js +40 -0
  352. package/package/script_helpers.d.ts +2 -2
  353. package/package/script_helpers.js +2 -0
  354. package/package/services/JobManager.js +2 -2
  355. package/package/stores.d.ts +4 -1
  356. package/package/stores.js +16 -6
  357. package/package/utils/workspaceHierarchy.d.ts +27 -0
  358. package/package/utils/workspaceHierarchy.js +101 -0
  359. package/package/utils.d.ts +6 -3
  360. package/package/utils.js +30 -15
  361. package/package/workspace_settings.js +2 -3
  362. package/package.json +10 -12
  363. package/package/components/DynSelect.svelte.d.ts +0 -11
  364. package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
  365. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  366. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  367. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  368. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  369. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  370. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  371. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -303,7 +303,7 @@ let graph = $derived.by(() => {
303
303
  suspendStatus,
304
304
  flowHasChanged,
305
305
  additionalAssetsMap: flowGraphAssetsCtx?.val.additionalAssetsMap
306
- }, untrack(() => failureModule), untrack(() => preprocessorModule), eventHandler, success, $useDataflow, untrack(() => $selectedId), moving, simplifiableFlow, triggerNode ? path : undefined, expandedSubflows);
306
+ }, untrack(() => failureModule), preprocessorModule, eventHandler, success, $useDataflow, untrack(() => $selectedId), moving, simplifiableFlow, triggerNode ? path : undefined, expandedSubflows);
307
307
  });
308
308
  $effect(() => {
309
309
  ;
@@ -30,9 +30,13 @@ export type GraphEventHandlers = {
30
30
  branch: number;
31
31
  };
32
32
  index: number;
33
- kind: string;
33
+ kind?: string;
34
34
  inlineScript?: InlineScript;
35
35
  script?: PathScript;
36
+ flow?: {
37
+ path: string;
38
+ summary: string;
39
+ };
36
40
  isPreprocessor?: boolean;
37
41
  }) => void;
38
42
  deleteBranch: (detail: {
@@ -146,7 +146,15 @@ let suspendStatus = $derived(data?.suspendStatus);
146
146
  {/if}
147
147
  </EdgeLabel>
148
148
 
149
- <BaseEdge path={completeEdge} {markerEnd} class={$useDataflow ? 'hidden' : ''} />
149
+ <BaseEdge
150
+ path={completeEdge}
151
+ {markerEnd}
152
+ class={$useDataflow ? 'hidden' : ''}
153
+ interactionWidth={0}
154
+ style={undefined}
155
+ label={undefined}
156
+ labelStyle={undefined}
157
+ />
150
158
 
151
159
  <style>
152
160
  .edgeButtonContainer {
@@ -6,7 +6,10 @@ type $$ComponentProps = EdgeProps & {
6
6
  data: {
7
7
  insertable: boolean;
8
8
  sourceId: string;
9
- branch: number | undefined;
9
+ branch: {
10
+ rootId: string;
11
+ branch: number;
12
+ } | undefined;
10
13
  targetId: string;
11
14
  moving: string | undefined;
12
15
  eventHandlers: GraphEventHandlers;
@@ -7,7 +7,7 @@ export const BELOW_ADDITIONAL_OFFSET = 19;
7
7
  export const AI_TOOL_CALL_PREFIX = '_wm_ai_agent_tool_call';
8
8
  export const AI_TOOL_MESSAGE_PREFIX = '_wm_ai_agent_message';
9
9
  const ROW_WIDTH = 275;
10
- const NEW_TOOL_NODE_WIDTH = 40;
10
+ const NEW_TOOL_NODE_WIDTH = 50;
11
11
  const MAX_TOOLS_PER_ROW = 2;
12
12
  let computeAIToolNodesCache;
13
13
  export function getToolCallId(idx, agentModuleId, moduleId) {
@@ -100,13 +100,13 @@ export function computeAIToolNodes(nodes, eventHandlers, insertable, flowModuleS
100
100
  id: `${node.id}-tool-${tool.id}`,
101
101
  width: inputToolWidth,
102
102
  position: {
103
- x: tools.length === 1
103
+ x: (tools.length === 1
104
104
  ? (ROW_WIDTH - inputToolWidth) / 2
105
105
  : (i + 1) % 2 === 0
106
106
  ? inputToolWidth + inputToolXGap
107
107
  : isLastRow && tools.length % 2 === 1
108
108
  ? (ROW_WIDTH - inputToolWidth) / 2
109
- : 0,
109
+ : 0) + node.data.offset,
110
110
  y: baseOffset +
111
111
  rowOffset *
112
112
  (agentActions
@@ -132,7 +132,7 @@ export function computeAIToolNodes(nodes, eventHandlers, insertable, flowModuleS
132
132
  parentId: node.id,
133
133
  width: NEW_TOOL_NODE_WIDTH,
134
134
  position: {
135
- x: (ROW_WIDTH - NEW_TOOL_NODE_WIDTH) / 2,
135
+ x: (ROW_WIDTH - NEW_TOOL_NODE_WIDTH) / 2 + node.data.offset,
136
136
  y: baseOffset + rowOffset
137
137
  }
138
138
  });
@@ -29,9 +29,8 @@ let borderStatus = $derived(computeBorderStatus(data.branchIndex, 'branchall', d
29
29
  {#if data.insertable}
30
30
  <button
31
31
  title="Delete branch"
32
- class="z-50 absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] center-center text-primary
33
- outline-[1px] outline outline-gray-700 bg-surface duration-0 hover:bg-red-400 hover:text-white
34
- hover:border-red-700"
32
+ class="z-50 absolute -translate-y-[100%] top-1 -right-1 rounded-md p-1 center-center text-primary
33
+ bg-surface duration-0 hover:bg-red-400 hover:text-white shadow-md"
35
34
  onclick={stopPropagation(
36
35
  preventDefault(() => {
37
36
  data.eventHandlers.deleteBranch(
@@ -25,9 +25,8 @@ let borderStatus = $derived(computeBorderStatus(data.branchIndex + 1, 'branchone
25
25
  {#if data.insertable}
26
26
  <button
27
27
  title="Delete branch"
28
- class="z-50 absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] center-center text-primary
29
- border-[1.5px] border-gray-700 bg-surface duration-0 hover:bg-red-400 hover:text-white
30
- hover:border-red-700"
28
+ class="z-50 absolute -translate-y-[100%] top-1 -right-1 rounded-md p-1 center-center text-primary
29
+ bg-surface duration-0 hover:bg-red-400 hover:text-white shadow-md"
31
30
  onclick={stopPropagation(
32
31
  preventDefault(() => {
33
32
  data.eventHandlers.deleteBranch(
@@ -1,64 +1,81 @@
1
- <script lang="ts">import { twMerge } from 'tailwind-merge';
1
+ <script lang="ts">import { preventDefault, stopPropagation } from 'svelte/legacy';
2
+ import { twMerge } from 'tailwind-merge';
2
3
  import {} from '../../graphBuilder.svelte';
3
- import NodeWrapper from './NodeWrapper.svelte';
4
- import Popover from '../../../meltComponents/Popover.svelte';
5
4
  import InsertModuleInner from '../../../flows/map/InsertModuleInner.svelte';
5
+ import { Cross } from 'lucide-svelte';
6
+ import PopupV2 from '../../../common/popup/PopupV2.svelte';
7
+ import { flip, offset } from 'svelte-floating-ui/dom';
6
8
  let funcDesc = $state('');
7
9
  let { data } = $props();
10
+ let floatingConfig = {
11
+ strategy: 'fixed',
12
+ // @ts-ignore
13
+ placement: 'bottom-center',
14
+ middleware: [offset(8), flip()],
15
+ autoUpdate: true
16
+ };
8
17
  </script>
9
18
 
10
- <NodeWrapper>
11
- {#snippet children({ darkMode })}
12
- <!-- svelte-ignore a11y_no_static_element_interactions -->
13
- <Popover
14
- portal={null}
15
- usePointerDownOutside
19
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
20
+ <PopupV2 {floatingConfig} target="#flow-editor">
21
+ {#snippet button({ pointerdown, pointerup })}
22
+ <button
23
+ title={`Add 'tool'
24
+ }`}
25
+ type="button"
16
26
  class={twMerge(
17
- '!w-full text-2xs font-normal bg-surface h-6 pr-0.5 flex justify-center items-center rounded-sm text-tertiary border',
18
- 'hover:bg-surface-hover'
27
+ '!w-full h-6 flex items-center justify-center !outline-[1px] outline dark:outline-gray-500 outline-gray-300 text-secondary bg-surface focus:outline-none hover:bg-surface-hover rounded'
19
28
  )}
20
- placement="top"
29
+ onpointerdown={stopPropagation(
30
+ preventDefault(() => {
31
+ pointerdown()
32
+ })
33
+ )}
34
+ onpointerup={pointerup}
21
35
  >
22
- <svelte:fragment slot="trigger">+tool</svelte:fragment>
23
- <svelte:fragment slot="content" let:close>
24
- <InsertModuleInner
25
- bind:funcDesc
26
- scriptOnly
27
- on:close={() => {
28
- close()
29
- }}
30
- on:new={(e) => {
31
- data.eventHandlers.insert({
32
- index: -1, // ignored when agentId is set
33
- agentId: data.agentModuleId,
34
- ...e.detail
35
- })
36
- close()
37
- }}
38
- on:insert={(e) => {
39
- data.eventHandlers.insert({
40
- index: -1, // ignored when agentId is set
41
- agentId: data.agentModuleId,
42
- ...e.detail
43
- })
44
- close()
45
- }}
46
- on:pickScript={(e) => {
47
- data.eventHandlers.insert({
48
- index: -1, // ignored when agentId is set
49
- agentId: data.agentModuleId,
50
- kind: e.detail.kind,
51
- script: {
52
- ...e.detail,
53
- summary: e.detail.summary
54
- ? e.detail.summary.replace(/\s/, '_').replace(/[^a-zA-Z0-9_]/g, '')
55
- : e.detail.path.split('/').pop()
56
- }
57
- })
58
- close()
59
- }}
60
- />
61
- </svelte:fragment>
62
- </Popover>
36
+ <div class="flex flex-row items-center gap-1 font-medium text-2xs">
37
+ <Cross size={12} />
38
+ tool
39
+ </div>
40
+ </button>
41
+ {/snippet}
42
+ {#snippet children({ close })}
43
+ <InsertModuleInner
44
+ bind:funcDesc
45
+ scriptOnly
46
+ on:close={() => {
47
+ close()
48
+ }}
49
+ on:new={(e) => {
50
+ data.eventHandlers.insert({
51
+ index: -1, // ignored when agentId is set
52
+ agentId: data.agentModuleId,
53
+ ...e.detail
54
+ })
55
+ close()
56
+ }}
57
+ on:insert={(e) => {
58
+ data.eventHandlers.insert({
59
+ index: -1, // ignored when agentId is set
60
+ agentId: data.agentModuleId,
61
+ ...e.detail
62
+ })
63
+ close()
64
+ }}
65
+ on:pickScript={(e) => {
66
+ data.eventHandlers.insert({
67
+ index: -1, // ignored when agentId is set
68
+ agentId: data.agentModuleId,
69
+ kind: e.detail.kind,
70
+ script: {
71
+ ...e.detail,
72
+ summary: e.detail.summary
73
+ ? e.detail.summary.replace(/\s/, '_').replace(/[^a-zA-Z0-9_]/g, '')
74
+ : e.detail.path.split('/').pop()
75
+ }
76
+ })
77
+ close()
78
+ }}
79
+ />
63
80
  {/snippet}
64
- </NodeWrapper>
81
+ </PopupV2>
@@ -21,7 +21,7 @@ declare const TriggerButton: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_P
21
21
  }, {
22
22
  default: {};
23
23
  }>, {
24
- click: MouseEvent;
24
+ click: PointerEvent;
25
25
  } & {
26
26
  [evt: string]: CustomEvent<any>;
27
27
  }, {
@@ -23,6 +23,7 @@ const triggerTypeConfig = {
23
23
  websocket: { icon: Unplug, countKey: 'websocket_count' },
24
24
  postgres: { icon: Database, countKey: 'postgres_count' },
25
25
  kafka: { icon: KafkaIcon, countKey: 'kafka_count', disabled: !$enterpriseLicense },
26
+ default_email: { icon: Mail, countKey: 'default_email_count' },
26
27
  email: { icon: Mail, countKey: 'email_count' },
27
28
  nats: { icon: NatsIcon, countKey: 'nats_count', disabled: !$enterpriseLicense },
28
29
  mqtt: { icon: MqttIcon, countKey: 'mqtt_count', disabled: !$enterpriseLicense },
@@ -38,11 +39,12 @@ const allTypes = [
38
39
  'websocket',
39
40
  'postgres',
40
41
  'kafka',
41
- 'email',
42
+ 'default_email',
42
43
  'nats',
43
44
  'mqtt',
44
45
  'sqs',
45
46
  'gcp',
47
+ 'email',
46
48
  'poll',
47
49
  'cli'
48
50
  ];
@@ -5,15 +5,25 @@ import { Plus } from 'lucide-svelte';
5
5
  import InsertModuleInner from '../../../flows/map/InsertModuleInner.svelte';
6
6
  import AddTriggersButton from '../../../triggers/AddTriggersButton.svelte';
7
7
  import { twMerge } from 'tailwind-merge';
8
+ import Portal from '../../../Portal.svelte';
9
+ import { flip, offset } from 'svelte-floating-ui/dom';
10
+ import { createFloatingActions } from 'svelte-floating-ui';
8
11
  let { path, newItem, selected, isEditor = false, disableAi = false, bgColor, bgHoverColor = '', showDraft, onSelect, onAddDraftTrigger } = $props();
9
12
  let showTriggerScriptPicker = $state(false);
10
13
  let numberOfTriggers = $state(0);
11
14
  const dispatch = createEventDispatcher();
12
15
  let hover = $state(false);
13
- let addTriggersButton = $state(undefined);
16
+ let floatingConfig = {
17
+ strategy: 'fixed',
18
+ // @ts-ignore
19
+ placement: 'bottom',
20
+ middleware: [offset(8), flip()],
21
+ autoUpdate: true
22
+ };
23
+ const [floatingRef, floatingContent] = createFloatingActions(floatingConfig);
14
24
  </script>
15
25
 
16
- <div style={`width: ${NODE.width}px;`}>
26
+ <div style={`width: ${NODE.width}px;`} use:floatingRef>
17
27
  <button
18
28
  style="background-color: {hover && bgHoverColor ? bgHoverColor : bgColor};"
19
29
  class="relative flex w-full flex-row gap-1.5 px-2 p-1 items-center justify-center rounded-sm {selected
@@ -48,15 +58,10 @@ let addTriggersButton = $state(undefined);
48
58
 
49
59
  {#if isEditor}
50
60
  <AddTriggersButton
51
- bind:this={addTriggersButton}
52
61
  onAddScheduledPoll={() => {
53
62
  showTriggerScriptPicker = true
54
63
  }}
55
64
  class="w-fit h-fit"
56
- triggerScriptPicker={showTriggerScriptPicker ? triggerScriptPicker : undefined}
57
- onClose={() => {
58
- showTriggerScriptPicker = false
59
- }}
60
65
  isEditor
61
66
  {onAddDraftTrigger}
62
67
  >
@@ -70,20 +75,25 @@ let addTriggersButton = $state(undefined);
70
75
  </button>
71
76
  </div>
72
77
 
73
- {#snippet triggerScriptPicker()}
74
- <div class="border rounded-lg shadow-lg bg-surface z5000">
75
- <InsertModuleInner
76
- {disableAi}
77
- on:new
78
- on:pickScript
79
- on:select
80
- on:open={() => {
81
- dispatch('openScheduledPoll')
82
- }}
83
- on:close={() => {
84
- addTriggersButton?.close()
85
- }}
86
- kind="trigger"
87
- />
88
- </div>
89
- {/snippet}
78
+ {#if showTriggerScriptPicker}
79
+ <Portal target="#flow-editor">
80
+ <div
81
+ class="border rounded-lg shadow-lg bg-surface z5000"
82
+ style="position:absolute"
83
+ use:floatingContent
84
+ >
85
+ <InsertModuleInner
86
+ {disableAi}
87
+ on:new={(e) => {
88
+ showTriggerScriptPicker = false
89
+ dispatch('new', e.detail)
90
+ }}
91
+ on:pickScript={(e) => {
92
+ showTriggerScriptPicker = false
93
+ dispatch('pickScript', e.detail)
94
+ }}
95
+ kind="trigger"
96
+ />
97
+ </div>
98
+ </Portal>
99
+ {/if}
@@ -25,10 +25,9 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
25
25
  z_$$bindings?: Bindings;
26
26
  }
27
27
  declare const TriggersWrapper: $$__sveltets_2_IsomorphicComponent<Props, {
28
+ select: CustomEvent<any>;
28
29
  new: CustomEvent<any>;
29
30
  pickScript: CustomEvent<any>;
30
- select: CustomEvent<any>;
31
- openScheduledPoll: CustomEvent<any>;
32
31
  } & {
33
32
  [evt: string]: CustomEvent<any>;
34
33
  }, {}, {}, "">;
@@ -83,15 +83,14 @@ async function loadRawApps() {
83
83
  });
84
84
  loading = false;
85
85
  }
86
- function filterItemsPathsBaseOnUserFilters(item, filterUserFolders) {
87
- if ($workspaceStore == 'admins')
86
+ function filterItemsPathsBaseOnUserFilters(item, filterUserFolders, filterUserFoldersType) {
87
+ if (!filterUserFoldersType || !filterUserFolders)
88
88
  return true;
89
- if (filterUserFolders) {
90
- return !item.path.startsWith('u/') || item.path.startsWith('u/' + $userStore?.username + '/');
91
- }
92
- else {
93
- return true;
94
- }
89
+ if (filterUserFoldersType === 'only f/*')
90
+ return item.path.startsWith('f/');
91
+ if (filterUserFoldersType === 'u/username and f/*')
92
+ return item.path.startsWith('f/') || item.path.startsWith(`u/${$userStore?.username}/`);
93
+ return true; // should not happen
95
94
  }
96
95
  let ownerFilter = $state(undefined);
97
96
  const cmp = new Intl.Collator('en').compare;
@@ -138,6 +137,11 @@ const TREE_VIEW_SETTING_NAME = 'treeView';
138
137
  const FILTER_USER_FOLDER_SETTING_NAME = 'filterUserFolders';
139
138
  const INCLUDE_WITHOUT_MAIN_SETTING_NAME = 'includeWithoutMain';
140
139
  let treeView = $state(getLocalSetting(TREE_VIEW_SETTING_NAME) == 'true');
140
+ let filterUserFoldersType = $derived($userStore?.is_super_admin && $userStore.username.includes('@')
141
+ ? 'only f/*'
142
+ : $userStore?.is_admin || $userStore?.is_super_admin
143
+ ? 'u/username and f/*'
144
+ : undefined);
141
145
  let filterUserFolders = $state(getLocalSetting(FILTER_USER_FOLDER_SETTING_NAME) == 'true');
142
146
  let includeWithoutMain = $state(getLocalSetting(INCLUDE_WITHOUT_MAIN_SETTING_NAME)
143
147
  ? getLocalSetting(INCLUDE_WITHOUT_MAIN_SETTING_NAME) == 'true'
@@ -206,9 +210,9 @@ $effect(() => {
206
210
  let preFilteredItems = $derived(ownerFilter != undefined
207
211
  ? combinedItems?.filter((x) => x.path.startsWith(ownerFilter + '/') &&
208
212
  (x.type == itemKind || itemKind == 'all') &&
209
- filterItemsPathsBaseOnUserFilters(x, filterUserFolders))
213
+ filterItemsPathsBaseOnUserFilters(x, filterUserFolders, filterUserFoldersType))
210
214
  : combinedItems?.filter((x) => (x.type == itemKind || itemKind == 'all') &&
211
- filterItemsPathsBaseOnUserFilters(x, filterUserFolders)));
215
+ filterItemsPathsBaseOnUserFilters(x, filterUserFolders, filterUserFoldersType)));
212
216
  let items = $derived(filter !== '' ? filteredItems : preFilteredItems);
213
217
  $effect(() => {
214
218
  items && resetScroll();
@@ -385,13 +389,13 @@ $effect(() => {
385
389
  </div>
386
390
  {/snippet}
387
391
  </Popover>
388
- {#if $userStore?.is_super_admin && $userStore.username.includes('@')}
392
+ {#if filterUserFoldersType === 'only f/*'}
389
393
  <Toggle size="xs" bind:checked={filterUserFolders} options={{ right: 'Only f/*' }} />
390
- {:else if $userStore?.is_admin || $userStore?.is_super_admin}
394
+ {:else if filterUserFoldersType === 'u/username and f/*'}
391
395
  <Toggle
392
396
  size="xs"
393
397
  bind:checked={filterUserFolders}
394
- options={{ right: `Only u/${$userStore.username} and f/*` }}
398
+ options={{ right: `Only u/${$userStore?.username} and f/*` }}
395
399
  />
396
400
  {/if}
397
401
  <Toggle size="xs" bind:checked={treeView} options={{ right: 'Tree view' }} />
@@ -1,30 +1,24 @@
1
- <svelte:options immutable={true} />
2
-
3
- <script lang="ts">import { ChevronDown, ChevronUp, Folder, FolderTree, User } from 'lucide-svelte';
1
+ <script lang="ts">import TreeView from './TreeView.svelte';
2
+ import { ChevronDown, ChevronUp, Folder, FolderTree, User } from 'lucide-svelte';
4
3
  import Item from './Item.svelte';
5
4
  import { twMerge } from 'tailwind-merge';
6
5
  import { pluralize } from '../../utils';
7
- export let item;
8
- export let collapseAll;
9
- export let depth = 0;
10
- export let showCode;
11
- export let isSearching = false;
6
+ let { item, collapseAll, depth = 0, showCode, isSearching = false } = $props();
12
7
  const isFolder = (i) => i && 'folderName' in i;
13
8
  const isUser = (i) => i && 'username' in i;
14
- let opened = true;
15
- $: toggleOpened(collapseAll);
16
- function toggleOpened(collapseAll) {
9
+ let opened = $state(true);
10
+ let showMax = $state(15);
11
+ $effect(() => {
17
12
  opened = !collapseAll;
18
- }
19
- let showMax = 15;
13
+ });
20
14
  </script>
21
15
 
22
16
  {#if isFolder(item)}
23
17
  <div>
24
- <!-- svelte-ignore a11y-click-events-have-key-events -->
25
- <!-- svelte-ignore a11y-no-static-element-interactions -->
18
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
19
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
26
20
  <div
27
- on:click={() => (opened = !opened)}
21
+ onclick={() => (opened = !opened)}
28
22
  class="px-4 py-2 border-b w-full flex flex-row items-center justify-between cursor-pointer"
29
23
  >
30
24
  <div
@@ -61,7 +55,7 @@ let showMax = 15;
61
55
  {#if opened || isSearching}
62
56
  <div>
63
57
  {#each item.items.slice(0, showMax) as subItem ((subItem['path'] ? subItem['type'] + '__' + subItem['path'] : undefined) ?? 'folder__' + subItem['folderName'])}
64
- <svelte:self
58
+ <TreeView
65
59
  {isSearching}
66
60
  {collapseAll}
67
61
  item={subItem}
@@ -75,11 +69,11 @@ let showMax = 15;
75
69
  />
76
70
  {/each}
77
71
  {#if showMax < item.items.length}
78
- <!-- svelte-ignore a11y-click-events-have-key-events -->
79
- <!-- svelte-ignore a11y-no-static-element-interactions -->
72
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
73
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
80
74
  <div
81
75
  class="text-center text-sm text-secondary cursor-pointer hover:text-primary"
82
- on:click={() => {
76
+ onclick={() => {
83
77
  if (isFolder(item)) {
84
78
  showMax += Math.min(30, item.items.length - showMax)
85
79
  showMax = showMax
@@ -94,10 +88,10 @@ let showMax = 15;
94
88
  </div>
95
89
  {:else if isUser(item)}
96
90
  <div>
97
- <!-- svelte-ignore a11y-click-events-have-key-events -->
98
- <!-- svelte-ignore a11y-no-static-element-interactions -->
91
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
92
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
99
93
  <div
100
- on:click={() => (opened = !opened)}
94
+ onclick={() => (opened = !opened)}
101
95
  class="px-4 py-2 border-b w-full flex flex-row items-center justify-between cursor-pointer"
102
96
  >
103
97
  <div
@@ -128,7 +122,7 @@ let showMax = 15;
128
122
  {#if opened || isSearching}
129
123
  <div>
130
124
  {#each item.items.slice(0, showMax) as subItem ((subItem['path'] ? subItem['type'] + '__' + subItem['path'] : undefined) ?? 'folder__' + subItem['folderName'])}
131
- <svelte:self
125
+ <TreeView
132
126
  {collapseAll}
133
127
  item={subItem}
134
128
  on:scriptChanged
@@ -141,11 +135,11 @@ let showMax = 15;
141
135
  />
142
136
  {/each}
143
137
  {#if showMax < item.items.length}
144
- <!-- svelte-ignore a11y-click-events-have-key-events -->
145
- <!-- svelte-ignore a11y-no-static-element-interactions -->
138
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
139
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
146
140
  <div
147
141
  class="text-center text-sm text-secondary cursor-pointer py-2 hover:text-primary"
148
- on:click={() => {
142
+ onclick={() => {
149
143
  if (isUser(item)) {
150
144
  showMax += Math.min(30, item.items.length - showMax)
151
145
  }
@@ -1,31 +1,4 @@
1
- import type { FolderItem, ItemType, UserItem } from './treeViewUtils';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const TreeView: $$__sveltets_2_IsomorphicComponent<{
16
- item: ItemType | FolderItem | UserItem;
17
- collapseAll: boolean;
18
- depth?: number;
19
- showCode: (path: string, summary: string) => void;
20
- isSearching?: boolean;
21
- }, {
22
- scriptChanged: CustomEvent<any>;
23
- flowChanged: CustomEvent<any>;
24
- appChanged: CustomEvent<any>;
25
- rawAppChanged: CustomEvent<any>;
26
- reload: CustomEvent<any>;
27
- } & {
28
- [evt: string]: CustomEvent<any>;
29
- }, {}, {}, string>;
1
+ import TreeView from './TreeView.svelte';
2
+ declare const TreeView: any;
30
3
  type TreeView = InstanceType<typeof TreeView>;
31
4
  export default TreeView;
@@ -1,29 +1,17 @@
1
- <script lang="ts">import TreeView from './TreeView.svelte';
1
+ <script lang="ts">import { untrack } from 'svelte';
2
+ import TreeView from './TreeView.svelte';
2
3
  import { groupItems } from './treeViewUtils';
3
- export let collapseAll;
4
- export let showCode;
5
- export let nbDisplayed;
6
- export let items;
7
- export let isSearching = false;
8
- let treeLoading = false;
9
- $: groupedItems = grpItems(items);
10
- function grpItems(items) {
11
- treeLoading = true;
12
- let r;
13
- try {
14
- r = groupItems(items);
15
- }
16
- finally {
17
- treeLoading = false;
18
- }
19
- return r;
20
- }
4
+ let { collapseAll, showCode, nbDisplayed = $bindable(), items, isSearching = false } = $props();
5
+ let groupedItems = $state('loading');
6
+ $effect(() => {
7
+ items;
8
+ untrack(() => (groupedItems = groupItems(items)));
9
+ });
21
10
  </script>
22
11
 
23
- {#if treeLoading}
12
+ {#if groupedItems === 'loading'}
24
13
  <div class="flex flex-row items-center justify-center">
25
- <div
26
- class="animate-spin rounded-full h-8 w-8 border-b-2 border-gray-900 dark:border-gray-100"
14
+ <div class="animate-spin rounded-full h-8 w-8 border-b-2 border-gray-900 dark:border-gray-100"
27
15
  ></div>
28
16
  </div>
29
17
  {:else if groupedItems.length === 0}
@@ -51,7 +39,7 @@ function grpItems(items) {
51
39
  {#if groupedItems.length > 15 && nbDisplayed < groupedItems.length}
52
40
  <span class="text-xs"
53
41
  >{nbDisplayed} root nodes out of {groupedItems.length}
54
- <button class="ml-4" on:click={() => (nbDisplayed += 30)}>load 30 more</button></span
42
+ <button class="ml-4" onclick={() => (nbDisplayed += 30)}>load 30 more</button></span
55
43
  >
56
44
  {/if}
57
45
  {/if}