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
@@ -1,5 +1,4 @@
1
- <script lang="ts">import { run } from 'svelte/legacy';
2
- import { computeKind } from '../utils';
1
+ <script lang="ts">import { computeKind } from '../utils';
3
2
  import Label from './Label.svelte';
4
3
  import ResourceTypePicker from './ResourceTypePicker.svelte';
5
4
  import Toggle from './Toggle.svelte';
@@ -21,6 +20,7 @@ const FORMATS = [
21
20
  'uri',
22
21
  'uuid',
23
22
  'ipv4',
23
+ 'ipv6',
24
24
  'yaml',
25
25
  'sql',
26
26
  // 'time',
@@ -38,21 +38,16 @@ const FIELD_SETTINGS = [
38
38
  ['Format', 'format'],
39
39
  ['Pattern', 'pattern']
40
40
  ];
41
- run(() => {
41
+ $effect(() => {
42
42
  format =
43
43
  kind == 'resource' ? (resource != undefined ? `resource-${resource}` : 'resource') : format;
44
44
  });
45
- run(() => {
45
+ $effect(() => {
46
46
  pattern = patternStr == '' ? undefined : patternStr;
47
47
  });
48
- run(() => {
48
+ $effect(() => {
49
49
  contentEncoding = kind == 'base64' ? 'base64' : undefined;
50
50
  });
51
- run(() => {
52
- if (format == 'email') {
53
- pattern = '^[\\w-+.]+@([\\w-]+\\.)+[\\w-]{2,63}$';
54
- }
55
- });
56
51
  function add() {
57
52
  if (enumLabels === undefined) {
58
53
  enumLabels = {};
@@ -1,19 +1,5 @@
1
1
  <script module>
2
2
  import '@codingame/monaco-vscode-standalone-typescript-language-features'
3
-
4
- languages.typescript.javascriptDefaults.setCompilerOptions({
5
- target: languages.typescript.ScriptTarget.Latest,
6
- allowNonTsExtensions: true,
7
- noSemanticValidation: false,
8
- noLib: true,
9
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
10
- })
11
- languages.typescript.javascriptDefaults.setDiagnosticsOptions({
12
- noSemanticValidation: false,
13
- noSyntaxValidation: false,
14
- noSuggestionDiagnostics: false,
15
- diagnosticCodesToIgnore: [1108]
16
- })
17
3
  </script>
18
4
 
19
5
  <script lang="ts">import { BROWSER } from 'esm-env';
@@ -28,6 +14,7 @@ import { writable } from 'svelte/store';
28
14
  import { initializeVscode } from './vscode';
29
15
  import EditorTheme from './EditorTheme.svelte';
30
16
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
17
+ import { setMonacoJsonOptions } from './monacoLanguagesOptions';
31
18
  export const conf = {
32
19
  wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
33
20
  comments: {
@@ -381,9 +368,8 @@ let initialized = false;
381
368
  let jsLoader = undefined;
382
369
  let timeoutModel = undefined;
383
370
  async function loadMonaco() {
384
- console.log('init template');
371
+ setMonacoJsonOptions();
385
372
  await initializeVscode('templateEditor');
386
- console.log('initialized');
387
373
  initialized = true;
388
374
  languages.register({ id: 'template' });
389
375
  // Register a tokens provider for the language
@@ -4,8 +4,8 @@ import { onDestroy, onMount } from 'svelte';
4
4
  export let date;
5
5
  export let agoOnlyIfRecent = false;
6
6
  export let noDate = false;
7
+ export let isRecent = true;
7
8
  let computedTimeAgo = undefined;
8
- let isRecent = true;
9
9
  let interval;
10
10
  $: date && computeDate();
11
11
  onMount(() => {
@@ -15,6 +15,7 @@ declare const TimeAgo: $$__sveltets_2_IsomorphicComponent<{
15
15
  date: string;
16
16
  agoOnlyIfRecent?: boolean;
17
17
  noDate?: boolean;
18
+ isRecent?: boolean;
18
19
  }, {
19
20
  [evt: string]: CustomEvent<any>;
20
21
  }, {}, {}, string>;
@@ -26,6 +26,7 @@ export let textDisabled = false;
26
26
  class="{$$props.class || ''} z-auto flex flex-row items-center duration-50 {disabled
27
27
  ? 'grayscale opacity-50'
28
28
  : 'cursor-pointer'}"
29
+ title={options?.title}
29
30
  >
30
31
  {#if Boolean(options?.left)}
31
32
  <span
@@ -92,7 +93,7 @@ export let textDisabled = false;
92
93
  class={twMerge(
93
94
  'ml-2 font-medium duration-50 select-none',
94
95
  bothOptions || textDisabled ? (checked ? 'text-primary' : 'text-disabled') : 'text-primary',
95
- size === 'xs' || size === '2sm' ? 'text-xs' : 'text-sm',
96
+ size === 'xs' || size === '2sm' ? 'text-xs' : size === '2xs' ? 'text-xs' : 'text-sm',
96
97
  textClass
97
98
  )}
98
99
  style={textStyle}
@@ -19,6 +19,7 @@ declare const Toggle: $$__sveltets_2_IsomorphicComponent<{
19
19
  right?: string;
20
20
  rightTooltip?: string;
21
21
  rightDocumentationLink?: string;
22
+ title?: string;
22
23
  } | undefined;
23
24
  checked?: boolean | undefined;
24
25
  disabled?: boolean | undefined;
@@ -33,7 +34,7 @@ declare const Toggle: $$__sveltets_2_IsomorphicComponent<{
33
34
  size?: "sm" | "xs" | "2xs" | "2sm" | undefined;
34
35
  textDisabled?: boolean | undefined;
35
36
  }, {
36
- click: MouseEvent;
37
+ click: PointerEvent;
37
38
  focus: FocusEvent;
38
39
  change: CustomEvent<boolean>;
39
40
  } & {
@@ -37,7 +37,7 @@ let homeDirectory = '~';
37
37
  let pendingsJobs = $state([]);
38
38
  let loadingPendingJobs = $state(false);
39
39
  let isCancelingJob = $state(false);
40
- let prompt = $derived(`$-${working_directory === '/' ? '/' : working_directory.split('/').at(-1)} `);
40
+ let prompt = $derived(`$-${working_directory === '/' ? '/' : working_directory.split('/').pop()} `);
41
41
  let codeObj = $state(undefined);
42
42
  function getNewWorkingDirectoryPath(currentDir, newPath) {
43
43
  if (newPath.startsWith('/') || newPath.startsWith('~')) {
@@ -9,6 +9,7 @@ import { loadIcon } from '../icon';
9
9
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
10
10
  import { twMerge } from 'tailwind-merge';
11
11
  import ResolveNavbarItemPath from './ResolveNavbarItemPath.svelte';
12
+ import { urlParamsToObject } from '../../../../utils';
12
13
  let { navbarItem, id, borderColor = undefined, index, output = $bindable(), orientation = undefined } = $props();
13
14
  let icon = $state();
14
15
  async function handleIcon() {
@@ -47,7 +48,7 @@ function getButtonProps(resolvedPath) {
47
48
  const queryParams = url.search;
48
49
  const hash = url.hash;
49
50
  replaceStateFn?.(`${window.location.pathname}${queryParams}${hash}`);
50
- $worldStore.outputsById['ctx'].query.set(Object.fromEntries(new URLSearchParams(queryParams).entries()));
51
+ $worldStore.outputsById['ctx'].query.set(urlParamsToObject(new URLSearchParams(queryParams)));
51
52
  $worldStore.outputsById['ctx'].hash.set(hash.substring(1));
52
53
  $selected = resolvedPath === extractPathDetails() ? resolvedPath : undefined;
53
54
  },
@@ -17,7 +17,7 @@ import { twMerge } from 'tailwind-merge';
17
17
  import { deepCloneWithFunctions, initCss } from '../../../utils';
18
18
  import ResolveStyle from '../../helpers/ResolveStyle.svelte';
19
19
  import AppAggridTableActions from './AppAggridTableActions.svelte';
20
- import { cellRendererFactory, defaultCellRenderer } from './utils';
20
+ import { cellRendererFactory, transformColumnDefs } from './utils';
21
21
  import Popover from '../../../../Popover.svelte';
22
22
  import { Button } from '../../../../common';
23
23
  import InputValue from '../../helpers/InputValue.svelte';
@@ -217,6 +217,12 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
217
217
  taComponent.props.rowIndex = params.node.rowIndex ?? 0;
218
218
  taComponent.props.row = params.data;
219
219
  taComponent.props.p = params;
220
+ const nextActions = computedOrder
221
+ ? computedOrder
222
+ .map((key) => actions?.find((a) => a.id === key))
223
+ .filter(Boolean)
224
+ : actions;
225
+ taComponent.props.actions = nextActions;
220
226
  }
221
227
  };
222
228
  });
@@ -229,31 +235,21 @@ function mountGrid() {
229
235
  // console.log(resolvedConfig?.extraConfig)
230
236
  if (eGui) {
231
237
  try {
232
- let columnDefs = Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
233
- ? [...resolvedConfig?.columnDefs] // Clone to avoid direct mutation
234
- : [];
235
- // Add the action column if actions are defined
236
- if (actions && actions.length > 0) {
237
- columnDefs.push({
238
- headerName: resolvedConfig?.customActionsHeader
239
- ? resolvedConfig?.customActionsHeader
240
- : 'Actions',
241
- cellRenderer: tableActionsFactory,
242
- autoHeight: true,
243
- cellStyle: { textAlign: 'center' },
244
- cellClass: 'grid-cell-centered',
245
- ...(!resolvedConfig?.wrapActions ? { minWidth: 130 * actions?.length } : {})
246
- });
247
- }
238
+ const agColumnDefs = transformColumnDefs({
239
+ columnDefs: Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
240
+ ? [...resolvedConfig?.columnDefs]
241
+ : [],
242
+ actions,
243
+ customActionsHeader: resolvedConfig?.customActionsHeader,
244
+ wrapActions: resolvedConfig?.wrapActions,
245
+ tableActionsFactory,
246
+ onInvalidColumnDefs: (errors) => {
247
+ sendUserToast(`Invalid columnDefs: ${errors.join('\n')}`, true);
248
+ }
249
+ });
248
250
  createGrid(eGui, {
249
251
  rowData: value,
250
- columnDefs: columnDefs.map((fields) => {
251
- let cr = defaultCellRenderer(fields.cellRendererType);
252
- return {
253
- ...fields,
254
- ...(cr ? { cellRenderer: cr } : {})
255
- };
256
- }),
252
+ columnDefs: agColumnDefs,
257
253
  pagination: resolvedConfig?.pagination,
258
254
  paginationAutoPageSize: resolvedConfig?.pagination,
259
255
  suppressPaginationPanel: true,
@@ -377,31 +373,21 @@ function updateValue() {
377
373
  }
378
374
  function updateOptions() {
379
375
  try {
380
- const columnDefs = Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
381
- ? [...resolvedConfig?.columnDefs] // Clone to avoid direct mutation
382
- : [];
383
- // Add the action column if actions are defined
384
- if (actions && actions.length > 0) {
385
- columnDefs.push({
386
- headerName: resolvedConfig?.customActionsHeader
387
- ? resolvedConfig?.customActionsHeader
388
- : 'Actions',
389
- cellRenderer: tableActionsFactory,
390
- autoHeight: true,
391
- cellStyle: { textAlign: 'center' },
392
- cellClass: 'grid-cell-centered',
393
- ...(!resolvedConfig?.wrapActions ? { minWidth: 130 * actions?.length } : {})
394
- });
395
- }
376
+ const agColumnDefs = transformColumnDefs({
377
+ columnDefs: Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
378
+ ? [...resolvedConfig?.columnDefs]
379
+ : [],
380
+ actions,
381
+ customActionsHeader: resolvedConfig?.customActionsHeader,
382
+ wrapActions: resolvedConfig?.wrapActions,
383
+ tableActionsFactory,
384
+ onInvalidColumnDefs: (errors) => {
385
+ sendUserToast(`Invalid columnDefs: ${errors.join('\n')}`, true);
386
+ }
387
+ });
396
388
  api?.updateGridOptions({
397
389
  rowData: value,
398
- columnDefs: columnDefs.map((fields) => {
399
- let cr = defaultCellRenderer(fields.cellRendererType);
400
- return {
401
- ...fields,
402
- ...(cr ? { cellRenderer: cr } : {})
403
- };
404
- }),
390
+ columnDefs: agColumnDefs,
405
391
  pagination: resolvedConfig?.pagination,
406
392
  paginationAutoPageSize: resolvedConfig?.pagination,
407
393
  suppressPaginationPanel: true,
@@ -421,6 +407,10 @@ function updateOptions() {
421
407
  ...resolvedConfig?.extraConfig?.['defaultColDef']
422
408
  }
423
409
  });
410
+ // Force refresh to re-render cell renderers after actions change
411
+ api?.refreshCells({ force: true });
412
+ // Force complete redraw to clear stale inline styles
413
+ api?.redrawRows();
424
414
  }
425
415
  catch (e) {
426
416
  console.error(e);
@@ -507,7 +497,13 @@ $effect(() => {
507
497
  bind:loading
508
498
  hideRefreshButton={true}
509
499
  >
510
- <SyncColumnDefs {id} columnDefs={resolvedConfig.columnDefs} {result}>
500
+ <SyncColumnDefs
501
+ {id}
502
+ columnDefs={resolvedConfig.columnDefs}
503
+ {result}
504
+ actionsPresent={Array.isArray(actions) && actions.length > 0}
505
+ customActionsHeader={resolvedConfig?.customActionsHeader}
506
+ >
511
507
  <div
512
508
  class={twMerge(
513
509
  'flex flex-col h-full component-wrapper divide-y',
@@ -5,37 +5,119 @@ import { RefreshCw } from 'lucide-svelte';
5
5
  import Badge from '../../../../common/badge/Badge.svelte';
6
6
  import Alert from '../../../../common/alert/Alert.svelte';
7
7
  import { isObject } from '../../../../../utils';
8
- let { id, columnDefs = [], result = [], allowColumnDefsActions = true, children } = $props();
8
+ let { id, columnDefs = [], result = [], allowColumnDefsActions = true, children, actionsPresent = false, customActionsHeader = undefined } = $props();
9
9
  const { app, mode, selectedComponent } = getContext('AppViewerContext');
10
+ let syncInProgress = false;
11
+ function hasActionsPlaceholder(cols) {
12
+ if (!Array.isArray(cols))
13
+ return false;
14
+ return cols.findIndex((c) => c?._isActionsColumn === true) > -1;
15
+ }
16
+ function addActionsPlaceholder(cols) {
17
+ const hdr = customActionsHeader ?? 'Actions';
18
+ const placeholder = {
19
+ field: '__actions__',
20
+ _isActionsColumn: true,
21
+ headerName: hdr,
22
+ flex: 1
23
+ };
24
+ if (!Array.isArray(cols))
25
+ return [placeholder];
26
+ return [...cols, placeholder];
27
+ }
28
+ function removeActionsPlaceholder(cols) {
29
+ if (!Array.isArray(cols))
30
+ return [];
31
+ return cols.filter((c) => c?._isActionsColumn !== true);
32
+ }
33
+ async function ensureActionsColumn() {
34
+ // Only act in editor (DND) mode
35
+ if ($mode !== 'dnd')
36
+ return;
37
+ const gridItem = findGridItem($app, id);
38
+ if (!gridItem)
39
+ return;
40
+ // Type the configuration more safely
41
+ const rawConf = gridItem.data.configuration?.columnDefs;
42
+ if (!rawConf)
43
+ return;
44
+ // Type guard for configuration structure
45
+ const conf = rawConf;
46
+ if (!conf.type || (conf.type !== 'static' && conf.type !== 'evalv2'))
47
+ return;
48
+ let currentColumns;
49
+ if (conf.type === 'static') {
50
+ currentColumns = Array.isArray(conf.value) ? conf.value : [];
51
+ }
52
+ else if (conf.type === 'evalv2') {
53
+ try {
54
+ const parsed = JSON.parse(conf.expr ?? '[]');
55
+ currentColumns = Array.isArray(parsed) ? parsed : [];
56
+ }
57
+ catch (e) {
58
+ console.warn('Failed to parse columnDefs expression:', e);
59
+ currentColumns = [];
60
+ }
61
+ }
62
+ const hasPlaceholder = hasActionsPlaceholder(currentColumns);
63
+ // Auto-sync logic: add missing actions column, remove when actions gone
64
+ const needsAdd = actionsPresent && !hasPlaceholder;
65
+ const needsRemove = !actionsPresent && hasPlaceholder;
66
+ if (!needsAdd && !needsRemove)
67
+ return;
68
+ let nextColumns = currentColumns || [];
69
+ if (needsAdd)
70
+ nextColumns = addActionsPlaceholder(nextColumns);
71
+ if (needsRemove)
72
+ nextColumns = removeActionsPlaceholder(nextColumns);
73
+ // Update configuration with proper typing
74
+ if (conf.type === 'static') {
75
+ conf.value = nextColumns;
76
+ }
77
+ else if (conf.type === 'evalv2') {
78
+ conf.expr = JSON.stringify(nextColumns);
79
+ }
80
+ await updateConfiguration();
81
+ }
82
+ $effect(() => {
83
+ const shouldSync = actionsPresent !== undefined || columnDefs?.length !== undefined;
84
+ if (shouldSync && !syncInProgress) {
85
+ syncInProgress = true;
86
+ ensureActionsColumn().finally(() => {
87
+ syncInProgress = false;
88
+ });
89
+ }
90
+ });
10
91
  async function syncColumns() {
11
- let gridItem = findGridItem($app, id);
92
+ const gridItem = findGridItem($app, id);
12
93
  if (gridItem && result) {
13
94
  const keys = Object.keys(result[0] ?? {}) ?? [];
14
- if (gridItem.data.configuration.columnDefs.type === 'static') {
15
- gridItem.data.configuration.columnDefs.value = keys.map((key) => ({
16
- field: key,
17
- headerName: key,
18
- flex: 1
19
- }));
95
+ const conf = gridItem.data.configuration.columnDefs;
96
+ const newColumns = keys.map((key) => ({
97
+ field: key,
98
+ headerName: key,
99
+ flex: 1
100
+ }));
101
+ if (conf.type === 'static') {
102
+ conf.value = newColumns;
20
103
  }
21
- else if (gridItem.data.configuration.columnDefs.type === 'evalv2') {
22
- gridItem.data.configuration.columnDefs.expr = JSON.stringify(keys.map((key, index) => ({
23
- field: key,
24
- headerName: key,
25
- flex: 1
26
- })));
104
+ else if (conf.type === 'evalv2') {
105
+ conf.expr = JSON.stringify(newColumns);
27
106
  }
28
107
  await updateConfiguration();
29
108
  }
30
109
  }
31
110
  async function setEmptyColumns() {
32
- let gridItem = findGridItem($app, id);
33
- if (gridItem && gridItem.data.configuration.columnDefs.type === 'static') {
34
- gridItem.data.configuration.columnDefs.value = [];
111
+ const gridItem = findGridItem($app, id);
112
+ if (!gridItem)
113
+ return;
114
+ const conf = gridItem.data.configuration.columnDefs;
115
+ if (conf.type === 'static') {
116
+ conf.value = [];
35
117
  await updateConfiguration();
36
118
  }
37
- else if (gridItem && gridItem.data.configuration.columnDefs.type === 'evalv2') {
38
- gridItem.data.configuration.columnDefs.expr = '[]';
119
+ else if (conf.type === 'evalv2') {
120
+ conf.expr = '[]';
39
121
  await updateConfiguration();
40
122
  }
41
123
  }
@@ -1,9 +1,12 @@
1
+ import type { WindmillColumnDef } from './utils';
1
2
  interface Props {
2
3
  id: string;
3
- columnDefs?: Array<any>;
4
- result?: Array<any> | undefined;
4
+ columnDefs?: WindmillColumnDef[];
5
+ result?: Array<Record<string, any>> | undefined;
5
6
  allowColumnDefsActions?: boolean;
6
7
  children?: import('svelte').Snippet;
8
+ actionsPresent?: boolean;
9
+ customActionsHeader?: string | undefined;
7
10
  }
8
11
  declare const SyncColumnDefs: import("svelte").Component<Props, {}, "">;
9
12
  type SyncColumnDefs = ReturnType<typeof SyncColumnDefs>;
@@ -76,6 +76,12 @@ export function transformColumnDefs({ columnDefs, actions, customActionsHeader,
76
76
  return [];
77
77
  }
78
78
  let r = columnDefs?.filter((x) => x && !x.ignored) ?? [];
79
+ // Allow an explicit "actions" placeholder in columnDefs so users can manage it like any column.
80
+ // When present, replace it with the computed actions colDef. When not present but actions exist,
81
+ // we will append the actions column after validation below.
82
+ const actionsIndex = r.findIndex((c) => {
83
+ return c?._isActionsColumn === true;
84
+ });
79
85
  if (onDelete) {
80
86
  r.push({
81
87
  field: 'delete',
@@ -118,15 +124,40 @@ export function transformColumnDefs({ columnDefs, actions, customActionsHeader,
118
124
  });
119
125
  }
120
126
  if (actions?.length) {
121
- r.push({
122
- headerName: customActionsHeader ?? 'Actions',
127
+ const computedActionsCol = {
128
+ field: '__actions__',
129
+ _isActionsColumn: true,
130
+ headerName: 'Actions',
123
131
  cellRenderer: tableActionsFactory,
124
132
  autoHeight: true,
125
133
  cellStyle: { textAlign: 'center' },
126
134
  cellClass: 'grid-cell-centered',
127
- lockPosition: 'right',
128
- ...(!wrapActions ? { minWidth: 130 * actions?.length } : {})
129
- });
135
+ // Only lock position to right if user hasn't explicitly positioned the actions column
136
+ ...(actionsIndex === -1 ? { lockPosition: 'right' } : {}),
137
+ // Set default minWidth based on number of actions (if not wrapping)
138
+ ...(!wrapActions ? { minWidth: 130 * actions?.length } : {}),
139
+ // Respect user-specified overrides when placeholder present (these should override defaults)
140
+ ...(actionsIndex > -1
141
+ ? {
142
+ // keep width/pin/flex/align/hide from placeholder when provided
143
+ ...(['width', 'minWidth', 'maxWidth', 'flex', 'pinned', 'headerName', 'cellStyle', 'cellClass', 'autoHeight', 'hide']
144
+ .reduce((acc, key) => {
145
+ if (r[actionsIndex] && r[actionsIndex][key] !== undefined)
146
+ acc[key] = r[actionsIndex][key];
147
+ return acc;
148
+ }, {}))
149
+ }
150
+ : {}),
151
+ ...(customActionsHeader?.trim() ? { headerName: customActionsHeader } : {})
152
+ };
153
+ if (actionsIndex > -1) {
154
+ // Replace the placeholder with computed column
155
+ r.splice(actionsIndex, 1, computedActionsCol);
156
+ }
157
+ else {
158
+ // Backward compatible: append if not explicitly placed
159
+ r.push(computedActionsCol);
160
+ }
130
161
  }
131
162
  return r.map((fields) => {
132
163
  let cr = defaultCellRenderer(fields.cellRendererType);
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import DarkModeObserver from '../../../../DarkModeObserver.svelte';
2
- import { untrack } from 'svelte';
2
+ import { onMount, untrack } from 'svelte';
3
3
  /* Forked from MIT LICENSE
4
4
  https://raw.githubusercontent.com/Canutin/svelte-currency-input/main/src/lib/CurrencyInput.svelte
5
5
  */
@@ -14,7 +14,12 @@ const DEFAULT_CLASS_FORMATTED = 'currencyInput__formatted';
14
14
  const DEFAULT_CLASS_FORMATTED_POSITIVE = 'currencyInput__formatted--positive';
15
15
  const DEFAULT_CLASS_FORMATTED_NEGATIVE = 'currencyInput__formatted--negative';
16
16
  const DEFAULT_CLASS_FORMATTED_ZERO = 'currencyInput__formatted--zero';
17
- let { value = $bindable(DEFAULT_VALUE), locale = DEFAULT_LOCALE, currency = DEFAULT_CURRENCY, name = DEFAULT_NAME, required = false, disabled = false, placeholder = DEFAULT_VALUE, isNegativeAllowed = true, fractionDigits = DEFAULT_FRACTION_DIGITS, inputClasses = null, noColor = false, style = '' } = $props();
17
+ let { value = $bindable(), locale = DEFAULT_LOCALE, currency = DEFAULT_CURRENCY, name = DEFAULT_NAME, required = false, disabled = false, placeholder = DEFAULT_VALUE, isNegativeAllowed = true, fractionDigits = DEFAULT_FRACTION_DIGITS, inputClasses = null, noColor = false, style = '' } = $props();
18
+ onMount(() => {
19
+ if (value == undefined) {
20
+ value = DEFAULT_VALUE;
21
+ }
22
+ });
18
23
  // Formats value as: e.g. $1,523.00 | -$1,523.00
19
24
  const formatCurrency = (value, maximumFractionDigits, minimumFractionDigits) => {
20
25
  try {
@@ -67,7 +72,7 @@ const setUnformattedValue = (event) => {
67
72
  inputTarget = event.target;
68
73
  // Reverse the value when minus is pressed
69
74
  if (isNegativeAllowed && event.key === '-')
70
- value = value * -1;
75
+ value = (value ?? DEFAULT_VALUE) * -1;
71
76
  }
72
77
  // Remove all characters that arent: numbers, commas, periods (or minus signs if `isNegativeAllowed`)
73
78
  let unformattedValue = isNegativeAllowed
@@ -101,7 +106,7 @@ const setFormattedValue = () => {
101
106
  const startCaretPosition = inputTarget?.selectionStart || 0;
102
107
  const previousFormattedValueLength = formattedValue.length;
103
108
  // Apply formatting to input
104
- formattedValue = formatCurrency(value, fractionDigits, 0);
109
+ formattedValue = formatCurrency(value ?? DEFAULT_VALUE, fractionDigits, 0);
105
110
  // Update `value` after formatting
106
111
  setUnformattedValue();
107
112
  // New caret position
@@ -115,7 +120,7 @@ const setFormattedValue = () => {
115
120
  let formattedValue = $state('');
116
121
  let formattedPlaceholder = placeholder !== null ? formatCurrency(placeholder, fractionDigits, fractionDigits) : '';
117
122
  let isZero = $derived(value === 0);
118
- let isNegative = $derived(value < 0);
123
+ let isNegative = $derived((value ?? DEFAULT_VALUE) < 0);
119
124
  $effect(() => {
120
125
  value;
121
126
  untrack(() => {
@@ -121,11 +121,11 @@ async function getMenuElements() {
121
121
  <Disposable
122
122
  {id}
123
123
  bind:this={disposable}
124
- on:open={() => {
124
+ onOpen={() => {
125
125
  outputs?.open.set(true)
126
126
  onOpenRecomputeIds?.forEach((id) => $runnableComponents?.[id]?.cb?.map((cb) => cb?.()))
127
127
  }}
128
- on:close={() => {
128
+ onClose={() => {
129
129
  outputs?.open.set(false)
130
130
  onCloseRecomputeIds?.forEach((id) => $runnableComponents?.[id]?.cb?.map((cb) => cb?.()))
131
131
  }}
@@ -12,7 +12,7 @@ import { Alert, Button, Tab } from '../../common';
12
12
  import TabContent from '../../common/tabs/TabContent.svelte';
13
13
  import Tabs from '../../common/tabs/TabsV2.svelte';
14
14
  import { userStore, workspaceStore } from '../../../stores';
15
- import { classNames, encodeState, getModifierKey, sendUserToast } from '../../../utils';
15
+ import { classNames, encodeState, getModifierKey, sendUserToast, urlParamsToObject } from '../../../utils';
16
16
  import AppPreview from './AppPreview.svelte';
17
17
  import ComponentList from './componentsPanel/ComponentList.svelte';
18
18
  import ContextPanel from './contextPanel/ContextPanel.svelte';
@@ -60,7 +60,7 @@ let context = $state({
60
60
  groups: $userStore?.groups,
61
61
  username: $userStore?.username,
62
62
  name: $userStore?.name,
63
- query: Object.fromEntries(new URL(window.location.href).searchParams.entries()),
63
+ query: urlParamsToObject(new URL(window.location.href).searchParams),
64
64
  hash: window.location.hash.substring(1),
65
65
  workspace: $workspaceStore,
66
66
  mode: 'editor',
@@ -643,7 +643,8 @@ $effect(() => {
643
643
  untrack(() => setGridPanelSize($componentActive));
644
644
  });
645
645
  $effect(() => {
646
- $connectingInput.opened, untrack(() => updatePannelInConnecting());
646
+ ;
647
+ ($connectingInput.opened, untrack(() => updatePannelInConnecting()));
647
648
  });
648
649
  $effect(() => {
649
650
  forceDeactivatePanzoom = isModifierKeyPressed && handMode;
@@ -91,7 +91,6 @@ function closeDraftDrawer() {
91
91
  }
92
92
  async function computeTriggerables() {
93
93
  const items = allItems($app.grid, $app.subgrids);
94
- console.debug('items', items);
95
94
  const allTriggers = (await Promise.all(items
96
95
  .flatMap((x) => {
97
96
  let c = x.data;
@@ -1,7 +1,7 @@
1
1
  import type { EditorBreakpoint } from '../types';
2
2
  import type { FilledItem } from '../svelte-grid/types';
3
- declare class __sveltets_Render<T> {
4
- props(): {
3
+ declare function $$render<T>(): {
4
+ props: {
5
5
  items: FilledItem<T>[];
6
6
  rowHeight?: number;
7
7
  gap?: any;
@@ -13,11 +13,18 @@ declare class __sveltets_Render<T> {
13
13
  parentWidth?: number | undefined;
14
14
  children?: import("svelte").Snippet<[any]>;
15
15
  };
16
- events(): {
16
+ exports: {};
17
+ bindings: "items" | "containerWidth";
18
+ slots: {};
19
+ events: {
17
20
  resize: CustomEvent<any>;
18
21
  mount: CustomEvent<any>;
19
22
  };
20
- slots(): {};
23
+ };
24
+ declare class __sveltets_Render<T> {
25
+ props(): ReturnType<typeof $$render<T>>['props'];
26
+ events(): ReturnType<typeof $$render<T>>['events'];
27
+ slots(): ReturnType<typeof $$render<T>>['slots'];
21
28
  bindings(): "items" | "containerWidth";
22
29
  exports(): {};
23
30
  }