windmill-components 1.542.5 → 1.555.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +6 -2
  4. package/package/components/AIAgentLogViewer.svelte +1 -1
  5. package/package/components/AIProviderPicker.svelte +25 -8
  6. package/package/components/ArgEnum.svelte +17 -7
  7. package/package/components/ArgEnum.svelte.d.ts +1 -0
  8. package/package/components/ArgInput.svelte +257 -188
  9. package/package/components/ArgInput.svelte.d.ts +4 -1
  10. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  11. package/package/components/AutoscalingEvents.svelte +21 -5
  12. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  13. package/package/components/ChannelSelector.svelte +92 -18
  14. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  15. package/package/components/ConnectionSection.svelte +12 -1
  16. package/package/components/DateTimeInput.svelte +8 -6
  17. package/package/components/DeployButton.svelte +1 -1
  18. package/package/components/Dev.svelte +24 -9
  19. package/package/components/Dev.svelte.d.ts +23 -1
  20. package/package/components/DisplayResult.svelte +36 -23
  21. package/package/components/DropdownV2.svelte +8 -2
  22. package/package/components/DropdownV2.svelte.d.ts +1 -0
  23. package/package/components/DynamicInput.svelte +10 -10
  24. package/package/components/EditableSchemaForm.svelte +28 -13
  25. package/package/components/Editor.svelte +2 -1
  26. package/package/components/EditorSettings.svelte +5 -5
  27. package/package/components/EditorSettings.svelte.d.ts +4 -18
  28. package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
  29. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  30. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  31. package/package/components/FieldHeader.svelte +5 -7
  32. package/package/components/FirstStepInputs.svelte +1 -1
  33. package/package/components/FlowHistoryJobPicker.svelte +3 -0
  34. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  35. package/package/components/FlowJobResult.svelte +5 -5
  36. package/package/components/FlowLogRow.svelte +2 -2
  37. package/package/components/FlowLogViewer.svelte +228 -57
  38. package/package/components/FlowLogViewer.svelte.d.ts +16 -5
  39. package/package/components/FlowLogViewerWrapper.svelte +56 -3
  40. package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
  41. package/package/components/FlowLoopIterationPreview.svelte +4 -4
  42. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  43. package/package/components/FlowMetadata.svelte +3 -4
  44. package/package/components/FlowMetadata.svelte.d.ts +4 -18
  45. package/package/components/FlowPlugConnect.svelte +8 -2
  46. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  47. package/package/components/FlowPreviewContent.svelte +121 -94
  48. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  49. package/package/components/FlowStatusViewer.svelte +63 -59
  50. package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
  51. package/package/components/FlowStatusViewerInner.svelte +186 -94
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
  53. package/package/components/FlowTimeline.svelte +110 -131
  54. package/package/components/FlowTimeline.svelte.d.ts +13 -4
  55. package/package/components/FlowTimelineBar.svelte +227 -0
  56. package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
  57. package/package/components/FolderEditor.svelte +6 -7
  58. package/package/components/GroupEditor.svelte +148 -141
  59. package/package/components/GroupEditor.svelte.d.ts +5 -4
  60. package/package/components/InputTransformForm.svelte +193 -71
  61. package/package/components/InputTransformForm.svelte.d.ts +3 -0
  62. package/package/components/InputTransformSchemaForm.svelte +10 -5
  63. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  64. package/package/components/InstanceSetting.svelte +34 -51
  65. package/package/components/InstanceSettings.svelte +12 -21
  66. package/package/components/JobArgs.svelte +15 -16
  67. package/package/components/JobArgs.svelte.d.ts +4 -18
  68. package/package/components/JobLoader.svelte +23 -42
  69. package/package/components/JobLoader.svelte.d.ts +2 -0
  70. package/package/components/JobStatus.svelte +1 -1
  71. package/package/components/JobStatus.svelte.d.ts +4 -18
  72. package/package/components/JsonEditor.svelte +18 -9
  73. package/package/components/JsonEditor.svelte.d.ts +1 -1
  74. package/package/components/JsonInputs.svelte +1 -1
  75. package/package/components/ModulePreviewForm.svelte +23 -19
  76. package/package/components/ModulePreviewResultViewer.svelte +1 -7
  77. package/package/components/NextcloudSetting.svelte +6 -1
  78. package/package/components/NumberTypeNarrowing.svelte +32 -16
  79. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  80. package/package/components/Password.svelte +7 -11
  81. package/package/components/Password.svelte.d.ts +5 -20
  82. package/package/components/PasswordArgInput.svelte +35 -15
  83. package/package/components/PasswordArgInput.svelte.d.ts +4 -18
  84. package/package/components/Path.svelte +2 -8
  85. package/package/components/Path.svelte.d.ts +1 -1
  86. package/package/components/QueuePosition.svelte +6 -2
  87. package/package/components/ResourceEditor.svelte +3 -10
  88. package/package/components/ResourcePicker.svelte +85 -72
  89. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  90. package/package/components/RunChart.svelte +1 -1
  91. package/package/components/RunForm.svelte +16 -21
  92. package/package/components/S3ArrayHelperButton.svelte +18 -0
  93. package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
  94. package/package/components/S3FilePicker.svelte +1 -1
  95. package/package/components/SchemaForm.svelte +18 -10
  96. package/package/components/SchemaForm.svelte.d.ts +7 -1
  97. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  98. package/package/components/ScriptBuilder.svelte +2 -2
  99. package/package/components/ScriptEditor.svelte +9 -9
  100. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  101. package/package/components/ShareModal.svelte +4 -4
  102. package/package/components/SimpleEditor.svelte +6 -2
  103. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  104. package/package/components/StringTypeNarrowing.svelte +44 -25
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/SuperadminSettingsInner.svelte +3 -3
  107. package/package/components/TeamSelector.svelte +83 -37
  108. package/package/components/TeamSelector.svelte.d.ts +0 -1
  109. package/package/components/TemplateEditor.svelte +18 -9
  110. package/package/components/Toast.svelte +2 -7
  111. package/package/components/Toast.svelte.d.ts +4 -18
  112. package/package/components/Toggle.svelte +17 -7
  113. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  114. package/package/components/WorkerGroup.svelte +2 -14
  115. package/package/components/apps/components/buttons/AppButton.svelte +66 -38
  116. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  117. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  118. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  119. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
  120. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
  121. package/package/components/apps/components/display/table/utils.js +14 -4
  122. package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
  123. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
  124. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  125. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  126. package/package/components/apps/components/layout/AppTabs.svelte +116 -71
  127. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  128. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  129. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  130. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  131. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  132. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  133. package/package/components/apps/editor/GridEditor.svelte +7 -2
  134. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  135. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  136. package/package/components/apps/editor/appUtils.d.ts +1 -0
  137. package/package/components/apps/editor/appUtils.js +30 -1
  138. package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
  139. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  140. package/package/components/apps/editor/component/components.d.ts +19 -4
  141. package/package/components/apps/editor/component/components.js +23 -3
  142. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  143. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  144. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  145. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  146. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  147. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
  148. package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
  149. package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
  150. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
  151. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
  152. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  153. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
  154. package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
  155. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  156. package/package/components/common/CloseButton.svelte +2 -2
  157. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  158. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  159. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  160. package/package/components/common/badge/CountBadge.svelte +29 -0
  161. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  162. package/package/components/common/button/Button.svelte +1 -0
  163. package/package/components/common/button/ConnectionButton.svelte +6 -1
  164. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  165. package/package/components/common/button/RefreshButton.svelte +8 -4
  166. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  167. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  168. package/package/components/common/fileInput/FileInput.svelte +7 -6
  169. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  170. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  171. package/package/components/common/layout/List.svelte +3 -7
  172. package/package/components/common/layout/List.svelte.d.ts +7 -29
  173. package/package/components/common/popup/PopupV2.svelte +14 -25
  174. package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
  175. package/package/components/common/table/ScriptRow.svelte +22 -2
  176. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  177. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  178. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  179. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  180. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  181. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  182. package/package/components/copilot/CronGen.svelte +1 -1
  183. package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
  184. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  185. package/package/components/copilot/IteratorGen.svelte +30 -25
  186. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  187. package/package/components/copilot/MetadataGen.svelte +4 -3
  188. package/package/components/copilot/PredicateGen.svelte +15 -12
  189. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  190. package/package/components/copilot/RegexGen.svelte +1 -1
  191. package/package/components/copilot/ScriptFix.svelte +1 -1
  192. package/package/components/copilot/ScriptGen.svelte +2 -1
  193. package/package/components/copilot/StepGenQuick.svelte +15 -16
  194. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  195. package/package/components/copilot/StepInputGen.svelte +50 -36
  196. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  197. package/package/components/copilot/StepInputsGen.svelte +18 -19
  198. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  199. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  200. package/package/components/copilot/autocomplete/request.js +1 -1
  201. package/package/components/copilot/chat/AIChat.svelte +2 -1
  202. package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
  203. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  204. package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
  205. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  206. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  207. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
  208. package/package/components/copilot/chat/script/core.d.ts +4 -4
  209. package/package/components/copilot/chat/script/core.js +95 -35
  210. package/package/components/copilot/chat/shared.js +2 -1
  211. package/package/components/copilot/lib.d.ts +1 -0
  212. package/package/components/copilot/lib.js +7 -3
  213. package/package/components/custom_ui.d.ts +1 -0
  214. package/package/components/details/DetailPageLayout.svelte +3 -2
  215. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  216. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  217. package/package/components/flows/FlowChatInterface.svelte +404 -0
  218. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  219. package/package/components/flows/FlowChatMessage.svelte +41 -0
  220. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  221. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  222. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  223. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  224. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  225. package/package/components/flows/FlowProgressBar.svelte +16 -16
  226. package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
  227. package/package/components/flows/common/FlowCard.svelte +10 -2
  228. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  229. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  230. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  231. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  232. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  233. package/package/components/flows/content/FlowInput.svelte +381 -259
  234. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  235. package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
  236. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
  237. package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
  238. package/package/components/flows/flowInfers.d.ts +60 -0
  239. package/package/components/flows/flowInfers.js +72 -40
  240. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
  241. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  242. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  243. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  244. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  245. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
  246. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  247. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  248. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  249. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  250. package/package/components/flows/map/InsertModuleButton.svelte +8 -15
  251. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
  252. package/package/components/flows/map/InsertModuleInner.svelte +19 -20
  253. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  254. package/package/components/flows/map/MapItem.svelte +1 -1
  255. package/package/components/flows/map/VirtualItem.svelte +1 -2
  256. package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
  257. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
  258. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
  259. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
  260. package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
  261. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  262. package/package/components/git_sync/DetectionFlow.svelte +33 -44
  263. package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
  264. package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
  265. package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
  266. package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
  267. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
  268. package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
  269. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
  270. package/package/components/git_sync/GitSyncSection.svelte +134 -14
  271. package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
  272. package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
  273. package/package/components/graph/FlowGraphV2.svelte +2 -1
  274. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  275. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  276. package/package/components/graph/graphBuilder.svelte.js +1 -0
  277. package/package/components/graph/model.d.ts +5 -5
  278. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  279. package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
  280. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
  281. package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
  282. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  283. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
  284. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  285. package/package/components/home/ItemsList.svelte +1 -1
  286. package/package/components/instanceSettings.js +17 -0
  287. package/package/components/jobs/JobProgressBar.svelte +27 -21
  288. package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
  289. package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
  290. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
  291. package/package/components/meltComponents/Popover.svelte +3 -2
  292. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  293. package/package/components/meltComponents/Tooltip.svelte +1 -1
  294. package/package/components/progressBar/ProgressBar.svelte +39 -53
  295. package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
  296. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  297. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  298. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  299. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  300. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  301. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  302. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  303. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  304. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  305. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  306. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  307. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  308. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  309. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  310. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  311. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  312. package/package/components/raw_apps/utils.d.ts +1 -1
  313. package/package/components/raw_apps/utils.js +3 -3
  314. package/package/components/runs/JobsLoader.svelte +1 -1
  315. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  316. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
  317. package/package/components/runs/RunOption.svelte +2 -2
  318. package/package/components/runs/RunsFilter.svelte +15 -12
  319. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  320. package/package/components/schema/AddPropertyV2.svelte +7 -4
  321. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  322. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  323. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  324. package/package/components/schema/PropertyEditor.svelte +22 -26
  325. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  326. package/package/components/schema/SchemaFormDND.svelte +3 -2
  327. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  328. package/package/components/select/DraggableTags.svelte +2 -2
  329. package/package/components/select/MultiSelect.svelte +15 -9
  330. package/package/components/select/MultiSelect.svelte.d.ts +1 -0
  331. package/package/components/select/Select.svelte +12 -5
  332. package/package/components/select/Select.svelte.d.ts +11 -0
  333. package/package/components/select/SelectDropdown.svelte +98 -46
  334. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  335. package/package/components/select/utils.svelte.js +2 -0
  336. package/package/components/settings/CreateToken.svelte +76 -49
  337. package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
  338. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  339. package/package/components/sidebar/Linkify.svelte +14 -0
  340. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  341. package/package/components/sidebar/MenuLink.svelte +2 -1
  342. package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
  343. package/package/components/sidebar/SidebarContent.svelte +27 -27
  344. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  345. package/package/components/table/Cell.svelte +7 -14
  346. package/package/components/table/Cell.svelte.d.ts +13 -35
  347. package/package/components/table/tableUtils.js +1 -1
  348. package/package/components/text_input/TextInput.svelte +30 -0
  349. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  350. package/package/components/triggers/AddTriggersButton.svelte +1 -0
  351. package/package/components/triggers/TriggersEditor.svelte +11 -1
  352. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  353. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  354. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
  355. package/package/components/triggers/gcp/utils.js +1 -0
  356. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
  357. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  358. package/package/components/triggers/triggers.svelte.js +8 -4
  359. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
  360. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
  361. package/package/components/triggers/websocket/utils.js +1 -0
  362. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  363. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  364. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  365. package/package/components/tutorials/Tutorial.svelte +9 -0
  366. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  367. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  368. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  369. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  370. package/package/components/tutorials/utils.js +2 -154
  371. package/package/components/vscode.js +16 -8
  372. package/package/components/workspaceSettings/AISettings.svelte +12 -5
  373. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  374. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  375. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  376. package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
  377. package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
  378. package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
  379. package/package/editorUtils.d.ts +1 -1
  380. package/package/gen/core/OpenAPI.js +1 -1
  381. package/package/gen/schemas.gen.d.ts +223 -17
  382. package/package/gen/schemas.gen.js +226 -17
  383. package/package/gen/services.gen.d.ts +221 -27
  384. package/package/gen/services.gen.js +440 -48
  385. package/package/gen/types.gen.d.ts +1067 -218
  386. package/package/hubPaths.json +2 -1
  387. package/package/script_helpers.js +5 -5
  388. package/package/services/JobManager.js +14 -9
  389. package/package/stores.d.ts +4 -12
  390. package/package/stores.js +5 -65
  391. package/package/timelineCompute.svelte.d.ts +21 -0
  392. package/package/timelineCompute.svelte.js +113 -0
  393. package/package/toast.js +2 -1
  394. package/package/utils.d.ts +16 -8
  395. package/package/utils.js +65 -12
  396. package/package/workspace_settings.d.ts +13 -8
  397. package/package/workspace_settings.js +46 -11
  398. package/package.json +4 -4
  399. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -14,7 +14,9 @@ import ArgInput from './ArgInput.svelte';
14
14
  import { createEventDispatcher, untrack } from 'svelte';
15
15
  import { deepEqual } from 'fast-equals';
16
16
  import { dragHandleZone } from '@windmill-labs/svelte-dnd-action';
17
- let { schema = $bindable(), hiddenArgs = [], schemaFieldTooltip = {}, args = $bindable(undefined), disabledArgs = [], disabled = false, isValid = $bindable(true), autofocus = false, defaultValues = {}, shouldHideNoInputs = false, compact = false, linkedSecret = $bindable(undefined), linkedSecretCandidates = undefined, noVariablePicker = false, flexWrap = false, noDelete = false, prettifyHeader = false, disablePortal = false, showSchemaExplorer = false, showReset = false, onlyMaskPassword = false, dndConfig = undefined, items = undefined, helperScript = undefined, lightHeader = false, diff = {}, nestedParent = undefined, shouldDispatchChanges = false, nestedClasses = '', dynamicEnums = {}, largeGap = false, css = undefined, displayType = true, appPath = undefined, className = '', computeS3ForceViewerPolicies = undefined, workspace = undefined, actions: actions_render = undefined } = $props();
17
+ import ResizeTransitionWrapper from './common/ResizeTransitionWrapper.svelte';
18
+ import { twMerge } from 'tailwind-merge';
19
+ let { schema = $bindable(), hiddenArgs = [], schemaFieldTooltip = {}, args = $bindable(undefined), disabledArgs = [], disabled = false, isValid = $bindable(true), autofocus = false, defaultValues = {}, shouldHideNoInputs = false, compact = false, linkedSecret = $bindable(undefined), linkedSecretCandidates = undefined, noVariablePicker = false, flexWrap = false, noDelete = false, prettifyHeader = false, disablePortal = false, showSchemaExplorer = false, showReset = false, onlyMaskPassword = false, dndConfig = undefined, items = undefined, helperScript = undefined, lightHeader = false, diff = {}, nestedParent = undefined, shouldDispatchChanges = false, nestedClasses = '', dynamicEnums = {}, largeGap = false, css = undefined, displayType = true, appPath = undefined, className = '', lightHeaderFont = false, computeS3ForceViewerPolicies = undefined, workspace = undefined, actions: actions_render = undefined } = $props();
18
20
  const dispatch = createEventDispatcher();
19
21
  let inputCheck = $state({});
20
22
  export function setDefaults() {
@@ -155,10 +157,15 @@ $effect.pre(() => {
155
157
  {#if keys.length > 0 && args}
156
158
  {#each fields as item, i (item.id)}
157
159
  {@const argName = item.value}
158
- <div
159
- class={typeof diff[argName] === 'object' && diff[argName].diff !== 'same'
160
- ? 'bg-red-300 dark:bg-red-800 rounded-md'
161
- : ''}
160
+ <ResizeTransitionWrapper
161
+ vertical
162
+ class={twMerge(
163
+ typeof diff[argName] === 'object' &&
164
+ diff[argName].diff !== 'same' &&
165
+ 'bg-red-300 dark:bg-red-800 rounded-md',
166
+ 'relative'
167
+ )}
168
+ innerClass="w-full"
162
169
  >
163
170
  <!-- svelte-ignore a11y_click_events_have_key_events -->
164
171
  {#if !hiddenArgs.includes(argName) && keys.includes(argName)}
@@ -166,6 +173,7 @@ $effect.pre(() => {
166
173
  {@const formerProperty = diff[argName].oldSchema}
167
174
  <div class="px-2">
168
175
  <ArgInput
176
+ {lightHeaderFont}
169
177
  {disablePortal}
170
178
  {resourceTypes}
171
179
  {prettifyHeader}
@@ -228,6 +236,7 @@ $effect.pre(() => {
228
236
  {JSON.stringify(args?.[argName])} -->
229
237
  {#if !hidden[argName]}
230
238
  <ArgInput
239
+ {lightHeaderFont}
231
240
  on:change={() => {
232
241
  dispatch('change')
233
242
  }}
@@ -289,7 +298,7 @@ $effect.pre(() => {
289
298
  {displayType}
290
299
  >
291
300
  {#snippet actions()}
292
- {@render actions_render?.()}
301
+ {@render actions_render?.({ item })}
293
302
  {#if linkedSecretCandidates?.includes(argName)}
294
303
  <div>
295
304
  <ToggleButtonGroup
@@ -305,15 +314,14 @@ $effect.pre(() => {
305
314
  {#snippet children({ item })}
306
315
  <ToggleButton
307
316
  value="inlined"
308
- size="sm"
317
+ small
309
318
  label="Inlined"
310
319
  tooltip="The value is inlined in the resource and thus has no special treatment."
311
320
  {item}
312
321
  />
313
322
  <ToggleButton
314
- position="right"
315
323
  value="secret"
316
- size="sm"
324
+ small
317
325
  label="Secret"
318
326
  tooltip="The value will be stored in a newly created linked secret variable at the same path. That variable can be permissioned differently, will be treated as a secret the UI, operators will not be able to load it and every access will generate a corresponding audit log."
319
327
  {item}
@@ -329,7 +337,7 @@ $effect.pre(() => {
329
337
  {/if}
330
338
  </div>
331
339
  {/if}
332
- </div>
340
+ </ResizeTransitionWrapper>
333
341
  {/each}
334
342
  {:else if !shouldHideNoInputs}
335
343
  <div class="text-secondary text-sm">No inputs</div>
@@ -45,6 +45,7 @@ interface Props {
45
45
  displayType?: boolean;
46
46
  appPath?: string | undefined;
47
47
  className?: string;
48
+ lightHeaderFont?: boolean;
48
49
  computeS3ForceViewerPolicies?: (() => {
49
50
  allowed_resources: string[];
50
51
  allow_user_resources: boolean;
@@ -52,7 +53,12 @@ interface Props {
52
53
  file_key_regex: string;
53
54
  } | undefined) | undefined;
54
55
  workspace?: string | undefined;
55
- actions?: import('svelte').Snippet;
56
+ actions?: import('svelte').Snippet<[{
57
+ item: {
58
+ id: string;
59
+ value: string;
60
+ };
61
+ }]> | undefined;
56
62
  }
57
63
  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> {
58
64
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -81,7 +81,7 @@ let savedInputsPicker = undefined;
81
81
  let loading = false;
82
82
  let captureTable = undefined;
83
83
  let historicInputs = undefined;
84
- $: selectedTab, (dropdownItems = getDropdownItems());
84
+ $: (selectedTab, (dropdownItems = getDropdownItems()));
85
85
  let inputPanelSize = 70;
86
86
  </script>
87
87
 
@@ -221,7 +221,7 @@ async function isTemplateScript() {
221
221
  return templateScript;
222
222
  }
223
223
  catch (error) {
224
- sendUserToast('An error occured when trying to load your template script, please try again later', true);
224
+ sendUserToast('An error occurred when trying to load your template script, please try again later', true);
225
225
  }
226
226
  }
227
227
  async function initContent(language, kind, template) {
@@ -1492,7 +1492,7 @@ async function loadWorkerTags() {
1492
1492
  {#if $workerTags?.length ?? 0 > 0}
1493
1493
  <div class="max-w-[200px] pr-8">
1494
1494
  <WorkerTagSelect
1495
- inputClass="text-sm text-secondary !placeholder-secondary"
1495
+ inputClass="text-sm text-secondary !h-8 !placeholder-secondary"
1496
1496
  nullTag={script.language}
1497
1497
  placeholder={customUi?.tagSelectPlaceholder}
1498
1498
  bind:tag={script.tag}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">import { BROWSER } from 'esm-env';
2
2
  import { JobService } from '../gen';
3
- import { copilotInfo, enterpriseLicense, userStore, workspaceStore } from '../stores';
3
+ import { enterpriseLicense, userStore, workspaceStore } from '../stores';
4
4
  import { copyToClipboard, emptySchema, sendUserToast } from '../utils';
5
5
  import Editor from './Editor.svelte';
6
6
  import { inferArgs, inferAssets } from '../infer';
@@ -36,6 +36,7 @@ import { triggerableByAI } from '../actions/triggerableByAI.svelte';
36
36
  import AssetsDropdownButton from './assets/AssetsDropdownButton.svelte';
37
37
  import { assetEq } from './assets/lib';
38
38
  import { editor as meditor } from 'monaco-editor';
39
+ import { copilotInfo } from '../aiStore';
39
40
  let { schema = $bindable(), code = $bindable(), path, lang, kind = undefined, template = 'script', tag, fixedOverflowWidgets = true, noSyncFromGithub = false, editor = $bindable(undefined), diffEditor = $bindable(undefined), collabMode = false, edit = true, noHistory = false, saveToWorkspace = false, watchChanges = false, customUi = undefined, args = $bindable(), selectedTab = $bindable('main'), hasPreprocessor = $bindable(false), captureTable = $bindable(undefined), showCaptures = true, stablePathForCaptures = '', lastSavedCode = undefined, lastDeployedCode = undefined, disableAi = false, assets = $bindable(), editor_bar_right, enablePreprocessorSnippet = false } = $props();
40
41
  $effect.pre(() => {
41
42
  if (schema == undefined) {
@@ -43,7 +44,7 @@ $effect.pre(() => {
43
44
  }
44
45
  });
45
46
  let showHistoryDrawer = $state(false);
46
- let jobProgressReset = $state(undefined);
47
+ let jobProgressBar = $state(undefined);
47
48
  let diffMode = $state(false);
48
49
  let websocketAlive = $state({
49
50
  pyright: false,
@@ -109,8 +110,7 @@ export function setArgs(nargs) {
109
110
  }
110
111
  export async function runTest() {
111
112
  // Not defined if JobProgressBar not loaded
112
- if (jobProgressReset)
113
- jobProgressReset();
113
+ jobProgressBar?.reset();
114
114
  //@ts-ignore
115
115
  let job = await jobLoader.runPreview(path, code, lang, selectedTab === 'preprocessor' || kind === 'preprocessor'
116
116
  ? { _ENTRYPOINT_OVERRIDE: 'preprocessor', ...(args ?? {}) }
@@ -392,7 +392,7 @@ $effect(() => {
392
392
  icon: Github
393
393
  }}
394
394
  >
395
- Use VScode
395
+ VScode
396
396
  </Button>
397
397
  </div>
398
398
  {/if}
@@ -401,7 +401,7 @@ $effect(() => {
401
401
  <SplitPanesWrapper>
402
402
  <Splitpanes class="!overflow-visible">
403
403
  <Pane bind:size={codePanelSize} minSize={10} class="!overflow-visible">
404
- <div class="h-full !overflow-visible bg-gray-50 dark:bg-[#272D38] relative">
404
+ <div class="h-full !overflow-visible bg-surface dark:bg-[#272D38] relative">
405
405
  <div class="absolute top-2 right-4 z-10 flex flex-row gap-2">
406
406
  {#if assets?.length}
407
407
  <AssetsDropdownButton {assets} />
@@ -615,7 +615,7 @@ $effect(() => {
615
615
  {#key argsRender}
616
616
  <SchemaForm
617
617
  helperScript={{
618
- type: 'inline',
618
+ source: 'inline',
619
619
  code,
620
620
  //@ts-ignore
621
621
  lang
@@ -648,8 +648,8 @@ $effect(() => {
648
648
  <!-- Put to the slot in logpanel -->
649
649
  <JobProgressBar
650
650
  job={testJob}
651
- bind:scriptProgress
652
- bind:reset={jobProgressReset}
651
+ {scriptProgress}
652
+ bind:this={jobProgressBar}
653
653
  compact={true}
654
654
  />
655
655
  {/if}
@@ -75,6 +75,6 @@ declare const ScriptEditor: $$__sveltets_2_IsomorphicComponent<Props, {
75
75
  setCollaborationMode: () => Promise<void>;
76
76
  disableCollaboration: () => void;
77
77
  updateArgs: (newArgs: Record<string, any>) => Promise<void>;
78
- }, "args" | "code" | "assets" | "schema" | "editor" | "selectedTab" | "diffEditor" | "hasPreprocessor" | "captureTable">;
78
+ }, "args" | "code" | "assets" | "schema" | "selectedTab" | "editor" | "diffEditor" | "hasPreprocessor" | "captureTable">;
79
79
  type ScriptEditor = InstanceType<typeof ScriptEditor>;
80
80
  export default ScriptEditor;
@@ -93,8 +93,8 @@ async function addAcl(owner, write) {
93
93
  <div>
94
94
  <ToggleButtonGroup bind:selected={ownerKind} on:selected={() => (owner = '')}>
95
95
  {#snippet children({ item })}
96
- <ToggleButton value="user" size="xs" label="User" {item} />
97
- <ToggleButton value="group" size="xs" label="Group" {item} />
96
+ <ToggleButton value="user" small label="User" {item} />
97
+ <ToggleButton value="group" small label="Group" {item} />
98
98
  {/snippet}
99
99
  </ToggleButtonGroup>
100
100
  </div>
@@ -139,8 +139,8 @@ async function addAcl(owner, write) {
139
139
  }}
140
140
  >
141
141
  {#snippet children({ item })}
142
- <ToggleButton value="viewer" size="xs" label="Viewer" {item} />
143
- <ToggleButton value="writer" size="xs" label="Writer" {item} />
142
+ <ToggleButton value="viewer" small label="Viewer" {item} />
143
+ <ToggleButton value="writer" small label="Writer" {item} />
144
144
  {/snippet}
145
145
  </ToggleButtonGroup>
146
146
  </div>
@@ -46,7 +46,7 @@ let suggestion = $state('');
46
46
  let placeholderVisible = $state(false);
47
47
  let mounted = $state(false);
48
48
  let valueAfterDispose = undefined;
49
- let { lang, code = $bindable(), hash = createHash(), cmdEnterAction, formatAction, automaticLayout = true, extraLib = '', placeholder = '', disableSuggestions = false, disableLinting = false, hideLineNumbers = false, shouldBindKey = true, autoHeight = false, fixedOverflowWidgets = true, small = false, domLib = false, autofocus = false, allowVim = false, tailwindClasses = [], class: className = '', loadAsync = false, key, disabled = false, minHeight = 1000 } = $props();
49
+ let { lang, code = $bindable(), hash = createHash(), cmdEnterAction, formatAction, automaticLayout = true, extraLib = '', placeholder = '', disableSuggestions = false, disableLinting = false, hideLineNumbers = false, shouldBindKey = true, autoHeight = false, fixedOverflowWidgets = true, small = false, domLib = false, autofocus = false, allowVim = false, tailwindClasses = [], class: className = '', fakeMonacoPlaceholderClass = '', loadAsync = false, key, disabled = false, minHeight = 1000, renderLineHighlight = 'none', yPadding } = $props();
50
50
  const dispatch = createEventDispatcher();
51
51
  const uri = `file:///${hash}.${langToExt(lang)}`;
52
52
  export function getCode() {
@@ -229,6 +229,8 @@ async function loadMonaco() {
229
229
  editor = meditor.create(divEl, {
230
230
  ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets, $relativeLineNumbers),
231
231
  model,
232
+ ...(yPadding !== undefined ? { padding: { bottom: yPadding, top: yPadding } } : {}),
233
+ renderLineHighlight,
232
234
  lineDecorationsWidth: 6,
233
235
  lineNumbersMinChars: 2,
234
236
  fontSize: fontSize,
@@ -480,9 +482,11 @@ updatePlaceholderVisibility(code ?? '');
480
482
  <FakeMonacoPlaceHolder
481
483
  {code}
482
484
  autoheight
483
- lineNumbersWidth={(23 * fontSize) / 14}
485
+ lineNumbersWidth={hideLineNumbers ? 0 : (23 * fontSize) / 14}
484
486
  lineNumbersOffset={fontSize == 14 ? -8 : -11}
485
487
  {fontSize}
488
+ showNumbers={!hideLineNumbers}
489
+ class={fakeMonacoPlaceholderClass}
486
490
  />
487
491
  {/if}
488
492
 
@@ -25,11 +25,14 @@ type $$ComponentProps = {
25
25
  allowVim?: boolean;
26
26
  tailwindClasses?: string[];
27
27
  class?: string;
28
+ fakeMonacoPlaceholderClass?: string;
28
29
  loadAsync?: boolean;
29
30
  initialCursorPos?: IPosition;
30
31
  key?: string;
31
32
  disabled?: boolean;
32
33
  minHeight?: number;
34
+ renderLineHighlight?: 'all' | 'line' | 'gutter' | 'none';
35
+ yPadding?: number;
33
36
  };
34
37
  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> {
35
38
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -9,6 +9,7 @@ import ClearableInput from './common/clearableInput/ClearableInput.svelte';
9
9
  import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
10
10
  import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
11
11
  import RegexGen from './copilot/RegexGen.svelte';
12
+ import TextInput from './text_input/TextInput.svelte';
12
13
  let { pattern = $bindable(), enum_ = $bindable(), format = $bindable(), contentEncoding = $bindable(), customErrorMessage = $bindable(), minRows = $bindable(undefined), disableCreate = $bindable(undefined), disableVariablePicker = $bindable(undefined), password = $bindable(undefined), noExtra = false, dateFormat = $bindable(), enumLabels = $bindable(undefined), overrideAllowKindChange = true, originalType = undefined } = $props();
13
14
  let kind = $state(computeKind(enum_, contentEncoding, pattern, format));
14
15
  const allowKindChange = overrideAllowKindChange || originalType === 'string';
@@ -57,7 +58,7 @@ function add() {
57
58
  }
58
59
  function remove(item) {
59
60
  enum_ = (enum_ || []).filter((el) => el !== item);
60
- if (enum_.length == 0) {
61
+ if (enum_?.length == 0) {
61
62
  enum_ = undefined;
62
63
  }
63
64
  if (enumLabels !== undefined) {
@@ -181,34 +182,49 @@ function onEnumKeyChange(oldKey, newKey) {
181
182
  <div class="flex flex-col gap-1">
182
183
  {#if enum_}
183
184
  {#each enum_ as _, i}
184
- <div class="flex flex-row w-full gap-2 pt-2">
185
- <input
186
- id="input"
187
- type="text"
188
- bind:value={enum_[i]}
189
- oninput={(event) => enum_ && onEnumKeyChange(event?.currentTarget.value, enum_[i])}
190
- />
191
- {#if enumLabels !== undefined}
185
+ {#if typeof enum_[i] === 'string'}
186
+ <div class="flex flex-row w-full gap-2 pt-2">
192
187
  <input
193
188
  id="input"
194
189
  type="text"
195
- bind:value={enumLabels[enum_[i]]}
196
- placeholder="Optional title..."
197
- oninput={(event) => {
198
- if (event?.currentTarget.value === '') {
199
- if (enumLabels === undefined) {
200
- enumLabels = {}
201
- }
202
- enum_ && delete enumLabels[enum_[i]]
203
- }
204
- }}
190
+ bind:value={enum_[i]}
191
+ oninput={(event) =>
192
+ enum_ &&
193
+ typeof enum_[i] === 'string' &&
194
+ onEnumKeyChange(event?.currentTarget.value, enum_[i])}
205
195
  />
206
- {/if}
196
+ {#if enumLabels !== undefined}
197
+ <input
198
+ id="input"
199
+ type="text"
200
+ bind:value={enumLabels[enum_[i]]}
201
+ placeholder="Optional title..."
202
+ oninput={(event) => {
203
+ if (event?.currentTarget.value === '') {
204
+ if (enumLabels === undefined) {
205
+ enumLabels = {}
206
+ }
207
+ if (typeof enum_?.[i] === 'string') {
208
+ enum_ && delete enumLabels[enum_[i]]
209
+ }
210
+ }
211
+ }}
212
+ />
213
+ {/if}
207
214
 
208
- {#if allowKindChange}
209
- <Button size="sm" on:click={() => enum_ && remove(enum_[i])}>-</Button>
210
- {/if}
211
- </div>
215
+ {#if allowKindChange}
216
+ <Button
217
+ size="sm"
218
+ on:click={() => enum_ && typeof enum_[i] === 'string' && remove(enum_[i])}
219
+ >-</Button
220
+ >
221
+ {/if}
222
+ </div>
223
+ {:else}
224
+ <div class="flex flex-row w-full gap-2 pt-2">
225
+ {JSON.stringify(enum_[i])} is not a string, remove it
226
+ </div>
227
+ {/if}
212
228
  {/each}
213
229
  {/if}
214
230
  </div>
@@ -277,7 +293,10 @@ function onEnumKeyChange(oldKey, newKey) {
277
293
  {:else if kind == 'none'}
278
294
  {#if !noExtra}
279
295
  <Label label="Min textarea rows">
280
- <input type="number" bind:value={minRows} />
296
+ <TextInput
297
+ inputProps={{ type: 'number' }}
298
+ bind:value={() => minRows?.toString(), (v) => (minRows = v ? parseInt(v) : undefined)}
299
+ />
281
300
  </Label>
282
301
  {/if}
283
302
  {:else if kind === 'base64'}
@@ -15,6 +15,6 @@ interface Props {
15
15
  overrideAllowKindChange?: boolean;
16
16
  originalType?: string | undefined;
17
17
  }
18
- declare const StringTypeNarrowing: import("svelte").Component<Props, {}, "password" | "disableCreate" | "pattern" | "format" | "enum_" | "enumLabels" | "contentEncoding" | "customErrorMessage" | "minRows" | "disableVariablePicker" | "dateFormat">;
18
+ declare const StringTypeNarrowing: import("svelte").Component<Props, {}, "password" | "pattern" | "disableCreate" | "format" | "enum_" | "enumLabels" | "contentEncoding" | "customErrorMessage" | "minRows" | "disableVariablePicker" | "dateFormat">;
19
19
  type StringTypeNarrowing = ReturnType<typeof StringTypeNarrowing>;
20
20
  export default StringTypeNarrowing;
@@ -288,17 +288,17 @@ async function updateName(name, email) {
288
288
  }}
289
289
  >
290
290
  {#snippet children({ item })}
291
- <ToggleButton value={'user'} size="xs" label="User" {item} />
291
+ <ToggleButton value={'user'} small label="User" {item} />
292
292
  <ToggleButton
293
293
  value={'devops'}
294
- size="xs"
294
+ small
295
295
  label="Devops"
296
296
  tooltip="Devops is a role that grants visibilty similar to that of a super admin, but without giving all rights. For example devops users can see service logs and crtical alerts. You can think of it as a 'readonly' super admin"
297
297
  {item}
298
298
  />
299
299
  <ToggleButton
300
300
  value={'super_admin'}
301
- size="xs"
301
+ small
302
302
  label="Superadmin"
303
303
  {item}
304
304
  />
@@ -2,71 +2,117 @@
2
2
  import { RefreshCcw } from 'lucide-svelte';
3
3
  import { WorkspaceService } from '../gen';
4
4
  import Select from './select/Select.svelte';
5
- import { onMount } from 'svelte';
6
- let { disabled = false, placeholder = 'Select a team', selectedTeam = $bindable(), containerClass = 'w-64', showRefreshButton = true, teams = undefined, minWidth = '160px', onError } = $props();
5
+ import { debounce } from '../utils';
6
+ let { disabled = false, selectedTeam = $bindable(), containerClass = 'w-64', showRefreshButton = true, teams = undefined, minWidth = '160px', onError } = $props();
7
7
  let isFetching = $state(false);
8
- onMount(() => {
9
- if (!teams)
10
- loadTeams();
8
+ let searchResults = $state([]);
9
+ // Only enable search mode if no teams are provided
10
+ const searchMode = !teams;
11
+ // Determine which teams to show: provided teams or search results
12
+ // In search mode, include the selected team if it exists
13
+ let displayTeams = $derived(() => {
14
+ const baseTeams = teams || searchResults;
15
+ if (searchMode && selectedTeam && !baseTeams.find(t => t.team_id === selectedTeam?.team_id)) {
16
+ return [selectedTeam, ...baseTeams];
17
+ }
18
+ return baseTeams;
19
+ });
20
+ // Create separate filter text for search mode
21
+ let searchFilterText = $state('');
22
+ // Debounced search function
23
+ const debouncedSearch = debounce(async (query) => {
24
+ await searchTeams(query);
25
+ }, 500);
26
+ // Watch for search filter text changes (only in search mode)
27
+ $effect(() => {
28
+ if (searchMode) {
29
+ if (searchFilterText.length >= 1) {
30
+ debouncedSearch.debounced(searchFilterText);
31
+ }
32
+ else if (searchFilterText.length === 0) {
33
+ searchResults = [];
34
+ }
35
+ }
11
36
  });
12
- async function loadTeams() {
37
+ async function searchTeams(query) {
38
+ if (!query)
39
+ return;
13
40
  isFetching = true;
14
41
  try {
15
42
  const response = (await WorkspaceService.listAvailableTeamsIds({
16
- workspace: $workspaceStore
43
+ workspace: $workspaceStore,
44
+ search: query
17
45
  }));
18
- teams = response || [];
46
+ searchResults = response || [];
19
47
  isFetching = false;
20
- console.log('Teams loaded:', teams.length);
21
- return teams;
48
+ return searchResults;
22
49
  }
23
50
  catch (error) {
24
51
  isFetching = false;
25
52
  onError?.(error);
26
- console.error('Error loading teams:', error);
53
+ console.error('Error searching teams:', error);
54
+ searchResults = [];
27
55
  return [];
28
56
  }
29
57
  }
58
+ async function refreshSearch() {
59
+ if (searchMode && searchFilterText.length >= 2) {
60
+ await searchTeams(searchFilterText);
61
+ }
62
+ }
30
63
  </script>
31
64
 
32
65
  <div class={containerClass}>
33
66
  <div class="flex items-center gap-2">
34
67
  <div class="flex-grow" style="min-width: {minWidth};">
35
- <Select
36
- containerStyle={'min-width: ' + minWidth}
37
- items={teams?.map((team) => ({
38
- label: team.team_name,
39
- value: team.team_id
40
- })) ?? []}
41
- {placeholder}
42
- clearable
43
- disabled={disabled || isFetching}
44
- bind:value={
45
- () => selectedTeam?.team_id,
46
- (value) => (selectedTeam = teams?.find((team) => team.team_id === value))
47
- }
48
- />
68
+ {#if searchMode}
69
+ <Select
70
+ containerStyle={'min-width: ' + minWidth}
71
+ items={searchFilterText.length >= 1 || (searchFilterText.length === 0 && selectedTeam) ? displayTeams().map((team) => ({
72
+ label: team.team_name,
73
+ value: team.team_id
74
+ })) : []}
75
+ placeholder={isFetching ? "Searching..." : "Search teams..."}
76
+ clearable
77
+ disabled={disabled || isFetching}
78
+ bind:filterText={searchFilterText}
79
+ bind:value={
80
+ () => selectedTeam?.team_id,
81
+ (value) => {
82
+ selectedTeam = value ? displayTeams().find((team) => team.team_id === value) : undefined
83
+ }
84
+ }
85
+ />
86
+ {:else}
87
+ <Select
88
+ containerStyle={'min-width: ' + minWidth}
89
+ items={displayTeams().map((team) => ({
90
+ label: team.team_name,
91
+ value: team.team_id
92
+ }))}
93
+ placeholder="Select a team"
94
+ clearable
95
+ disabled={disabled || isFetching}
96
+ bind:value={
97
+ () => selectedTeam?.team_id,
98
+ (value) => {
99
+ selectedTeam = value ? displayTeams().find((team) => team.team_id === value) : undefined
100
+ }
101
+ }
102
+ />
103
+ {/if}
49
104
  </div>
50
105
 
51
106
  {#if showRefreshButton}
52
107
  <button
53
- onclick={loadTeams}
54
- disabled={isFetching || disabled}
108
+ onclick={refreshSearch}
109
+ disabled={isFetching || disabled || (searchMode && searchFilterText.length < 2)}
55
110
  class="flex items-center justify-center p-1.5 rounded hover:bg-surface-hover focus:bg-surface-hover disabled:opacity-50"
56
- title="Refresh teams from Microsoft"
111
+ title={searchMode ? "Refresh search results" : "Refresh teams from Microsoft"}
57
112
  >
58
113
  <RefreshCcw size={16} class={isFetching ? 'animate-spin' : ''} />
59
114
  </button>
60
115
  {/if}
61
116
  </div>
62
117
 
63
- {#if isFetching || ((!teams || teams.length === 0) && !isFetching)}
64
- <div class="text-xs text-tertiary mt-1">
65
- {#if isFetching}
66
- Fetching teams from Microsoft...
67
- {:else}
68
- No available teams found
69
- {/if}
70
- </div>
71
- {/if}
72
118
  </div>
@@ -4,7 +4,6 @@ interface TeamItem {
4
4
  }
5
5
  interface Props {
6
6
  disabled?: boolean;
7
- placeholder?: string;
8
7
  selectedTeam?: TeamItem | undefined;
9
8
  containerClass?: string;
10
9
  showRefreshButton?: boolean;
@@ -15,6 +15,7 @@ import { initializeVscode } from './vscode';
15
15
  import EditorTheme from './EditorTheme.svelte';
16
16
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
17
17
  import { setMonacoJsonOptions } from './monacoLanguagesOptions';
18
+ import { inputBorderClass } from './text_input/TextInput.svelte';
18
19
  export const conf = {
19
20
  wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
20
21
  comments: {
@@ -388,7 +389,13 @@ async function loadMonaco() {
388
389
  lineDecorationsWidth: 6,
389
390
  lineNumbersMinChars: 2,
390
391
  fontSize,
391
- suggestOnTriggerCharacters: true
392
+ suggestOnTriggerCharacters: true,
393
+ renderLineHighlight: 'none',
394
+ lineNumbers: 'off',
395
+ padding: {
396
+ bottom: 8,
397
+ top: 8
398
+ }
392
399
  });
393
400
  }
394
401
  catch (e) {
@@ -431,9 +438,11 @@ async function loadMonaco() {
431
438
  }
432
439
  editor.onDidFocusEditorText(() => {
433
440
  dispatch('focus');
441
+ isFocus = true;
434
442
  });
435
443
  editor.onDidBlurEditorText(() => {
436
444
  dispatch('blur');
445
+ isFocus = false;
437
446
  updateCode();
438
447
  });
439
448
  jsLoader = setTimeout(async () => {
@@ -509,6 +518,7 @@ async function loadMonaco() {
509
518
  export function focus() {
510
519
  editor?.focus();
511
520
  }
521
+ let isFocus = false;
512
522
  let mounted = false;
513
523
  let loadTimeout = undefined;
514
524
  onMount(async () => {
@@ -562,19 +572,18 @@ onDestroy(() => {
562
572
  {#if !editor}
563
573
  <FakeMonacoPlaceHolder
564
574
  autoheight
575
+ showNumbers={false}
565
576
  {code}
566
- lineNumbersWidth={23}
567
- lineNumbersOffset={-8}
568
- class="border template nonmain-editor rounded min-h-4 mx-0.5 overflow-clip"
577
+ lineNumbersWidth={14}
578
+ lineNumbersOffset={-20}
579
+ class="template nonmain-editor rounded-md min-h-4 bg-surface-secondary !py-[9px] overflow-clip"
569
580
  />
570
581
  {/if}
571
582
  <div
572
583
  bind:this={divEl}
573
- style="height: 18px;"
574
- class="{$$props.class ??
575
- ''} border template nonmain-editor rounded min-h-4 mx-0.5 overflow-clip {!editor
576
- ? 'hidden'
577
- : ''}"
584
+ style="height: 18px; padding-left: 6px;"
585
+ class="{inputBorderClass({ forceFocus: isFocus })} {$$props.class ??
586
+ ''} template nonmain-editor rounded-md min-h-4 overflow-clip {!editor ? 'hidden' : ''}"
578
587
  bind:clientWidth={width}
579
588
  ></div>
580
589