windmill-components 1.596.1 → 1.612.2

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 (414) hide show
  1. package/dist/appPolicy/myFunction.es.js +1337 -0
  2. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
  3. package/dist/sharedUtils/base.d.ts +1 -0
  4. package/dist/sharedUtils/cloud.d.ts +1 -0
  5. package/dist/sharedUtils/common.d.ts +108 -0
  6. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
  7. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
  8. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  9. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +11 -0
  10. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
  11. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +84 -0
  12. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
  13. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
  14. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +22 -0
  15. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
  16. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5305 -0
  17. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
  18. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
  19. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
  20. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  21. package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
  22. package/dist/sharedUtils/components/apps/inputType.d.ts +176 -0
  23. package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
  24. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +19 -0
  25. package/dist/sharedUtils/components/apps/types.d.ts +274 -0
  26. package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
  27. package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
  28. package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
  29. package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
  30. package/dist/sharedUtils/components/common/index.d.ts +24 -0
  31. package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
  32. package/dist/sharedUtils/components/dbTypes.d.ts +11 -0
  33. package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
  34. package/dist/sharedUtils/components/ducklake.d.ts +1 -0
  35. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
  36. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
  37. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
  38. package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
  39. package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
  40. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
  41. package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
  42. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
  43. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
  44. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
  45. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
  46. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
  47. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
  48. package/dist/sharedUtils/components/triggers/utils.d.ts +81 -0
  49. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
  50. package/dist/sharedUtils/components/triggers.d.ts +20 -0
  51. package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
  52. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
  53. package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
  54. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
  55. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
  56. package/dist/sharedUtils/gen/core/request.d.ts +29 -0
  57. package/dist/sharedUtils/gen/index.d.ts +6 -0
  58. package/dist/sharedUtils/gen/schemas.gen.d.ts +6192 -0
  59. package/dist/sharedUtils/gen/services.gen.d.ts +5741 -0
  60. package/dist/sharedUtils/gen/types.gen.d.ts +20152 -0
  61. package/dist/sharedUtils/history.svelte.d.ts +9 -0
  62. package/dist/sharedUtils/hub.d.ts +48 -0
  63. package/dist/sharedUtils/jsr.json +6 -0
  64. package/dist/sharedUtils/lib.d.ts +5 -0
  65. package/dist/sharedUtils/lib.es.js +1426 -0
  66. package/dist/sharedUtils/package.json +12 -0
  67. package/dist/sharedUtils/schema.d.ts +3 -0
  68. package/dist/sharedUtils/stores.d.ts +96 -0
  69. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +49 -0
  70. package/dist/sharedUtils/toast.d.ts +8 -0
  71. package/dist/sharedUtils/utils.d.ts +250 -0
  72. package/package/assets/tokens/tokens.json +11 -1
  73. package/package/ata/apis.js +78 -5
  74. package/package/components/AddUser.svelte +1 -1
  75. package/package/components/CenteredModal.svelte +32 -24
  76. package/package/components/CenteredModal.svelte.d.ts +7 -27
  77. package/package/components/CenteredPage.svelte +5 -2
  78. package/package/components/CenteredPage.svelte.d.ts +2 -0
  79. package/package/components/ConcurrentJobsChart.svelte +3 -2
  80. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  81. package/package/components/CustomPopover.svelte +20 -23
  82. package/package/components/CustomPopover.svelte.d.ts +14 -39
  83. package/package/components/DBManager.svelte +105 -17
  84. package/package/components/DBManager.svelte.d.ts +2 -1
  85. package/package/components/DBManagerContent.svelte +4 -3
  86. package/package/components/DBManagerContent.svelte.d.ts +1 -1
  87. package/package/components/DBTableEditor.svelte +210 -171
  88. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  89. package/package/components/Description.svelte +3 -2
  90. package/package/components/Dev.svelte +36 -2
  91. package/package/components/DiffDrawer.svelte +8 -29
  92. package/package/components/DiffEditor.svelte +32 -2
  93. package/package/components/DisplayResult.svelte +32 -24
  94. package/package/components/Editor.svelte +70 -16
  95. package/package/components/Editor.svelte.d.ts +3 -0
  96. package/package/components/EditorBar.svelte +1 -1
  97. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  98. package/package/components/FlowBuilder.svelte +17 -11
  99. package/package/components/FlowDiffViewer.svelte +37 -0
  100. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  101. package/package/components/FlowPreviewContent.svelte +3 -2
  102. package/package/components/FlowPreviewResult.svelte +0 -4
  103. package/package/components/FlowStatusViewerInner.svelte +50 -33
  104. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  105. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  106. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  107. package/package/components/FlowViewer.svelte +103 -2
  108. package/package/components/FlowViewer.svelte.d.ts +9 -3
  109. package/package/components/ForkWorkspaceBanner.svelte +16 -13
  110. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  111. package/package/components/HistoricInputs.svelte +25 -27
  112. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  113. package/package/components/InstanceSetting.svelte +38 -0
  114. package/package/components/InviteUser.svelte +16 -42
  115. package/package/components/InviteUser.svelte.d.ts +4 -18
  116. package/package/components/JobOtelTraces.svelte +287 -0
  117. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  118. package/package/components/JsonInputs.svelte +6 -8
  119. package/package/components/JsonInputs.svelte.d.ts +7 -8
  120. package/package/components/LogViewer.svelte +91 -33
  121. package/package/components/Login.svelte +21 -0
  122. package/package/components/ManualPopover.svelte +5 -6
  123. package/package/components/ManualPopover.svelte.d.ts +9 -35
  124. package/package/components/MemoryFootprintViewer.svelte +2 -6
  125. package/package/components/ModulePreview.svelte +23 -21
  126. package/package/components/ModulePreview.svelte.d.ts +1 -0
  127. package/package/components/Path.svelte +2 -2
  128. package/package/components/Path.svelte.d.ts +1 -1
  129. package/package/components/ResourcePicker.svelte +3 -0
  130. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  131. package/package/components/RunButton.svelte +5 -15
  132. package/package/components/RunButton.svelte.d.ts +7 -19
  133. package/package/components/RunChart.svelte +8 -4
  134. package/package/components/RunChart.svelte.d.ts +2 -2
  135. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  136. package/package/components/RunsPage.svelte +169 -539
  137. package/package/components/RunsPage.svelte.d.ts +5 -5
  138. package/package/components/S3FilePicker.svelte +7 -11
  139. package/package/components/S3FilePickerInner.svelte +2 -3
  140. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  141. package/package/components/SchemaForm.svelte +26 -19
  142. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  143. package/package/components/ScriptBuilder.svelte +1 -1
  144. package/package/components/ScriptEditor.svelte +575 -101
  145. package/package/components/Section.svelte +3 -1
  146. package/package/components/ServiceLogsInner.svelte +4 -4
  147. package/package/components/SimpleEditor.svelte +46 -2
  148. package/package/components/SuperadminSettingsInner.svelte +1 -1
  149. package/package/components/TemplateEditor.svelte +54 -29
  150. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  151. package/package/components/UserSettings.svelte +1 -1
  152. package/package/components/WorkerTagPicker.svelte +1 -1
  153. package/package/components/WorkerTagSelect.svelte +5 -2
  154. package/package/components/WorkspaceTutorials.svelte +5 -0
  155. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  156. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  157. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  158. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +0 -4
  159. package/package/components/apps/components/display/dbtable/metadata.js +69 -30
  160. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  161. package/package/components/apps/components/display/dbtable/queries/alterTable.js +314 -0
  162. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  163. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  164. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  165. package/package/components/apps/components/display/dbtable/queries/createTable.js +11 -25
  166. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  167. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  168. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +47 -0
  169. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +402 -0
  170. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  171. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  172. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  173. package/package/components/apps/components/display/dbtable/tableEditor.js +49 -0
  174. package/package/components/apps/components/display/dbtable/utils.d.ts +10 -1
  175. package/package/components/apps/components/display/dbtable/utils.js +52 -20
  176. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  177. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  178. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  179. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  180. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  181. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  182. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  183. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  184. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  185. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  186. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  187. package/package/components/apps/editor/PublicApp.svelte +49 -30
  188. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  189. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  190. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  191. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  192. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  193. package/package/components/apps/inputType.d.ts +6 -1
  194. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  195. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  196. package/package/components/common/button/model.js +1 -1
  197. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  198. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  199. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  200. package/package/components/common/modal/Modal.svelte +3 -3
  201. package/package/components/copilot/autocomplete/Autocompletor.js +3 -2
  202. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  203. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  204. package/package/components/copilot/chat/AIChat.svelte +3 -1
  205. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  206. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  207. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  208. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  209. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  210. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  211. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  212. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  213. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  214. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  215. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  216. package/package/components/copilot/chat/app/core.d.ts +56 -15
  217. package/package/components/copilot/chat/app/core.js +141 -22
  218. package/package/components/copilot/chat/context.d.ts +59 -2
  219. package/package/components/copilot/chat/context.js +6 -2
  220. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  221. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  222. package/package/components/copilot/chat/flow/core.js +29 -2
  223. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  224. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  225. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  226. package/package/components/copilot/chat/script/core.d.ts +4 -1
  227. package/package/components/copilot/chat/script/core.js +38 -2
  228. package/package/components/copilot/chat/shared.d.ts +10 -0
  229. package/package/components/copilot/chat/shared.js +24 -0
  230. package/package/components/copilot/lib.d.ts +1 -1
  231. package/package/components/custom_ui.d.ts +1 -0
  232. package/package/components/dbOps.d.ts +18 -4
  233. package/package/components/dbOps.js +25 -3
  234. package/package/components/debug/DebugConsole.svelte +277 -0
  235. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  236. package/package/components/debug/DebugPanel.svelte +97 -0
  237. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  238. package/package/components/debug/DebugToolbar.svelte +148 -0
  239. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  240. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  241. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  242. package/package/components/debug/MonacoDebugger.svelte +384 -0
  243. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  244. package/package/components/debug/dapClient.d.ts +192 -0
  245. package/package/components/debug/dapClient.js +426 -0
  246. package/package/components/debug/debugUtils.d.ts +30 -0
  247. package/package/components/debug/debugUtils.js +131 -0
  248. package/package/components/debug/index.d.ts +75 -0
  249. package/package/components/debug/index.js +82 -0
  250. package/package/components/flows/CreateActionsApp.svelte +6 -4
  251. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  252. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  253. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  254. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  255. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  256. package/package/components/flows/content/FlowInput.svelte +211 -37
  257. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  258. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  259. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  260. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  261. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  262. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  263. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  264. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  265. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  266. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  267. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  268. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  269. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  270. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  271. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  272. package/package/components/flows/types.d.ts +2 -0
  273. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  274. package/package/components/home/ItemsList.svelte +5 -5
  275. package/package/components/home/TutorialBanner.svelte +34 -18
  276. package/package/components/icons/CssIcon.svelte +20 -0
  277. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  278. package/package/components/icons/HtmlIcon.svelte +20 -0
  279. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  280. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  281. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  282. package/package/components/icons/JsonIcon.svelte +8 -2
  283. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  284. package/package/components/icons/LessIcon.svelte +16 -0
  285. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  286. package/package/components/icons/MarkdownIcon.svelte +20 -0
  287. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  288. package/package/components/icons/ReactIcon.svelte +10 -2
  289. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  290. package/package/components/icons/SassIcon.svelte +28 -0
  291. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  292. package/package/components/icons/SvelteIcon.svelte +10 -2
  293. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  294. package/package/components/icons/VueIcon.svelte +10 -2
  295. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  296. package/package/components/icons/YamlIcon.svelte +20 -0
  297. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  298. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  299. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  300. package/package/components/instanceSettings.d.ts +2 -1
  301. package/package/components/instanceSettings.js +32 -1
  302. package/package/components/jobs/JobPreview.svelte +46 -39
  303. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  304. package/package/components/monacoLanguagesOptions.js +16 -15
  305. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  306. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  307. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  308. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  309. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  310. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  311. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  312. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  313. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  314. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  315. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  316. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  317. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  318. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  319. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  320. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  321. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  322. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  323. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  324. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  325. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  326. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  327. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  328. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  329. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  330. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  331. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  332. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  333. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  334. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  335. package/package/components/raw_apps/utils.d.ts +1 -1
  336. package/package/components/raw_apps/utils.js +76 -18
  337. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  338. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  339. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  340. package/package/components/runs/RunsFilter.svelte +75 -63
  341. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  342. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  343. package/package/components/runs/RunsTable.svelte +1 -1
  344. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  345. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  346. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  347. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  348. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  349. package/package/components/select/SelectDropdown.svelte +2 -2
  350. package/package/components/settings/AIPromptsModal.svelte +88 -0
  351. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  352. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  353. package/package/components/settings/ChangeWorkspaceId.svelte +14 -10
  354. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  355. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  356. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  357. package/package/components/settings/WorkspaceUserSettings.svelte +531 -406
  358. package/package/components/sidebar/MenuButton.svelte +46 -24
  359. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  360. package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
  361. package/package/components/sidebar/OperatorMenu.svelte +62 -87
  362. package/package/components/sidebar/SidebarContent.svelte +7 -2
  363. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  364. package/package/components/sqlTypeService.js +4 -3
  365. package/package/components/table/DataTable.svelte +3 -2
  366. package/package/components/table/DataTable.svelte.d.ts +1 -0
  367. package/package/components/text_input/TextInput.svelte +3 -0
  368. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  369. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  370. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  371. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  372. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  373. package/package/components/tutorials/utils.d.ts +16 -0
  374. package/package/components/tutorials/utils.js +96 -0
  375. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  376. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  377. package/package/components/vscode.js +6 -6
  378. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  379. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  380. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  381. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  382. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  383. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  384. package/package/components/workspaceSettings/AISettings.svelte +146 -108
  385. package/package/components/workspaceSettings/CreateWorkspace.svelte +25 -11
  386. package/package/components/workspaceSettings/DucklakeSettings.svelte +46 -23
  387. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  388. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  389. package/package/components/workspaceSettings/StorageSettings.svelte +280 -241
  390. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  391. package/package/consts.js +4 -1
  392. package/package/gen/core/OpenAPI.js +1 -1
  393. package/package/gen/schemas.gen.d.ts +126 -0
  394. package/package/gen/schemas.gen.js +126 -0
  395. package/package/gen/services.gen.d.ts +160 -2
  396. package/package/gen/services.gen.js +319 -4
  397. package/package/gen/types.gen.d.ts +607 -2
  398. package/package/hubPaths.json +3 -2
  399. package/package/infer.js +2 -0
  400. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  401. package/package/rawAppWmillTs.d.ts +11 -0
  402. package/package/rawAppWmillTs.js +38 -1
  403. package/package/svelte5Utils.svelte.d.ts +9 -0
  404. package/package/svelte5Utils.svelte.js +51 -1
  405. package/package/tutorialUtils.js +0 -4
  406. package/package/tutorials/config.js +31 -3
  407. package/package/tutorials/roleUtils.d.ts +1 -1
  408. package/package/tutorials/roleUtils.js +6 -2
  409. package/package/utils.js +159 -1
  410. package/package.json +16 -17
  411. package/package/components/SavedInputs.svelte +0 -416
  412. package/package/components/runs/JobsLoader.svelte +0 -468
  413. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  414. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -37,7 +37,6 @@ import { datatypeHasLength, dbSupportsSchemas } from './apps/components/display/
37
37
  import { DB_TYPES } from '../consts';
38
38
  import Popover from './meltComponents/Popover.svelte';
39
39
  import Tooltip from './meltComponents/Tooltip.svelte';
40
- import { datatypeDefaultLength } from './apps/components/display/dbtable/queries/createTable';
41
40
  import ConfirmationModal from './common/confirmationModal/ConfirmationModal.svelte';
42
41
  import { sendUserToast } from '../toast';
43
42
  import { copyToClipboard } from '../utils';
@@ -48,7 +47,10 @@ import Select from './select/Select.svelte';
48
47
  import { safeSelectItems } from './select/utils.svelte';
49
48
  import TextInput from './text_input/TextInput.svelte';
50
49
  import Portal from './Portal.svelte';
51
- const { onConfirm, dbType, previewSql, dbSchema, currentSchema } = $props();
50
+ import { Debounced } from 'runed';
51
+ import { datatypeDefaultLength } from './apps/components/display/dbtable/tableEditor';
52
+ import Alert from './common/alert/Alert.svelte';
53
+ const { dbType, dbSchema, currentSchema, initialValues, features, onConfirm, computeBtnProps, computePreview } = $props();
52
54
  const columnTypes = DB_TYPES[dbType];
53
55
  const defaultColumnType = {
54
56
  postgresql: 'BIGSERIAL',
@@ -58,7 +60,7 @@ const defaultColumnType = {
58
60
  mysql: 'varchar',
59
61
  duckdb: 'string'
60
62
  }[dbType];
61
- const values = $state({
63
+ const values = $state($state.snapshot(initialValues) ?? {
62
64
  name: '',
63
65
  columns: [],
64
66
  foreignKeys: []
@@ -70,13 +72,17 @@ function addColumn({ name, primaryKey }) {
70
72
  ...(datatypeHasLength(defaultColumnType) && {
71
73
  datatype_length: datatypeDefaultLength(defaultColumnType)
72
74
  }),
73
- ...(primaryKey && { primaryKey })
75
+ ...(primaryKey && { primaryKey }),
76
+ ...(!features?.defaultToNotNull && { nullable: true })
74
77
  });
75
78
  }
76
- addColumn({ name: 'id', primaryKey: dbType !== 'duckdb' });
79
+ if (!initialValues) {
80
+ addColumn({ name: 'id', primaryKey: features?.primaryKeys });
81
+ }
77
82
  const errors = $derived(validate(values, dbSchema));
78
83
  let askingForConfirmation = $state();
79
84
  let darkMode = $state(false);
85
+ let btnProps = new Debounced(() => computeBtnProps({ values }), 500);
80
86
  </script>
81
87
 
82
88
  <DarkModeObserver bind:darkMode />
@@ -87,7 +93,7 @@ let darkMode = $state(false);
87
93
  Name
88
94
  <TextInput
89
95
  inputProps={{ type: 'text', placeholder: 'my_table' }}
90
- class={errors?.name ? 'border !border-red-600/60' : ''}
96
+ error={errors?.name}
91
97
  bind:value={values.name}
92
98
  />
93
99
  </label>
@@ -100,18 +106,39 @@ let darkMode = $state(false);
100
106
  <tr>
101
107
  <Cell head first>Name</Cell>
102
108
  <Cell head>Type</Cell>
103
- <Cell head last>Primary</Cell>
109
+ <Cell head last>{features?.primaryKeys ? 'Primary' : ''}</Cell>
104
110
  </tr>
105
111
  </Head>
106
112
  <tbody class="divide-y bg-surface">
107
113
  {#each values.columns as column, i}
108
114
  <tr>
109
115
  <Cell first>
110
- <TextInput
111
- error={errors?.columns?.includes(column.name)}
112
- inputProps={{ type: 'text', placeholder: 'column_name' }}
113
- bind:value={column.name}
114
- />
116
+ <div class="flex flex-col">
117
+ <TextInput
118
+ error={errors?.columns?.includes(column.name)}
119
+ inputProps={{ type: 'text', placeholder: 'column_name' }}
120
+ bind:value={
121
+ () => column.name,
122
+ (newName) => {
123
+ const oldName = column.name
124
+ column.name = newName
125
+ // Update all foreign keys that reference this column
126
+ if (oldName && oldName !== newName) {
127
+ values.foreignKeys.forEach((fk) => {
128
+ fk.columns.forEach((fkCol) => {
129
+ if (fkCol.sourceColumn === oldName) {
130
+ fkCol.sourceColumn = newName
131
+ }
132
+ })
133
+ })
134
+ }
135
+ }
136
+ }
137
+ />
138
+ {#if column.initialName && column.name !== column.initialName}
139
+ <span class="text-xs text-hint">Old name: {column.initialName}</span>
140
+ {/if}
141
+ </div>
115
142
  </Cell>
116
143
  <Cell>
117
144
  <Select
@@ -129,9 +156,14 @@ let darkMode = $state(false);
129
156
  items={safeSelectItems(columnTypes)}
130
157
  class="w-48"
131
158
  />
159
+ {#if column.initialName && column.name !== column.initialName}
160
+ <span class="text-xs">&nbsp;</span>
161
+ {/if}
132
162
  </Cell>
133
163
  <Cell last class="flex items-center mt-1.5">
134
- <input type="checkbox" class="!w-4 !h-4" bind:checked={column.primaryKey} />
164
+ {#if features?.primaryKeys}
165
+ <input type="checkbox" class="!w-4 !h-4" bind:checked={column.primaryKey} />
166
+ {/if}
135
167
  <Popover class="ml-8" contentClasses="py-3 px-5 flex flex-col gap-6">
136
168
  {#snippet trigger()}
137
169
  <Settings size={18} />
@@ -143,23 +175,25 @@ let darkMode = $state(false);
143
175
  <input type="number" placeholder="0" bind:value={column.datatype_length} />
144
176
  </label>
145
177
  {/if}
146
- <label class="text-xs">
147
- <span class="flex gap-1 mb-1">
148
- Default value
149
- <Tooltip>
150
- <Info size={14} />
151
- {#snippet text()}
152
- Surround your expressions with curly brackets:
153
- <code>
154
- {'{NOW()}'}
155
- </code>.
156
- <br />
157
- By default, it will be parsed as a literal
158
- {/snippet}
159
- </Tooltip>
160
- </span>
161
- <input type="text" placeholder="NULL" bind:value={column.defaultValue} />
162
- </label>
178
+ {#if features?.defaultValues}
179
+ <label class="text-xs">
180
+ <span class="flex gap-1 mb-1">
181
+ Default value
182
+ <Tooltip>
183
+ <Info size={14} />
184
+ {#snippet text()}
185
+ Surround your expressions with curly brackets:
186
+ <code>
187
+ {'{NOW()}'}
188
+ </code>.
189
+ <br />
190
+ By default, it will be parsed as a literal
191
+ {/snippet}
192
+ </Tooltip>
193
+ </span>
194
+ <input type="text" placeholder="NULL" bind:value={column.defaultValue} />
195
+ </label>
196
+ {/if}
163
197
  {#if !column.primaryKey}
164
198
  <label class="flex gap-2 items-center text-xs">
165
199
  <input type="checkbox" class="!w-4 !h-4" bind:checked={column.nullable} />
@@ -193,156 +227,153 @@ let darkMode = $state(false);
193
227
  </tbody>
194
228
  </DataTable>
195
229
  </div>
196
- <div class="flex flex-col">
197
- <!-- svelte-ignore a11y_label_has_associated_control -->
198
- <label>Foreign Keys</label>
199
- <DataTable>
200
- <Head>
201
- <tr>
202
- <Cell head first>Table</Cell>
203
- <Cell head last>Columns</Cell>
204
- </tr>
205
- </Head>
206
- <tbody class="divide-y bg-surface">
207
- {#each values.foreignKeys as foreignKey, foreignKeyIndex}
208
- {@const fkErrors = errors?.foreignKeys?.[foreignKeyIndex]}
230
+ {#if features?.foreignKeys}
231
+ <div class="flex flex-col">
232
+ <!-- svelte-ignore a11y_label_has_associated_control -->
233
+ <label>Foreign Keys</label>
234
+ <DataTable>
235
+ <Head>
209
236
  <tr>
210
- <Cell first class="flex">
211
- <Select
212
- inputClass={twMerge(
213
- '!w-48',
214
- fkErrors?.emptyTarget ? 'border !border-red-600/60' : ''
215
- )}
216
- placeholder=""
217
- bind:value={foreignKey.targetTable}
218
- items={getFlatTableNamesFromSchema(dbSchema).map((o) => ({
219
- value: o,
220
- label:
221
- (currentSchema && o.startsWith(currentSchema)) || !dbSupportsSchemas(dbType)
222
- ? o.split('.')[1]
223
- : o
224
- }))}
225
- />
226
- </Cell>
227
- <Cell>
228
- <div class="flex flex-col gap-2">
229
- {#each foreignKey.columns as column, columnIndex}
230
- <div class="flex">
231
- <div class="flex items-center gap-1 w-60">
232
- <!-- Div wrappers with absolute select are to prevent the Select content
237
+ <Cell head first>Table</Cell>
238
+ <Cell head last>Columns</Cell>
239
+ </tr>
240
+ </Head>
241
+ <tbody class="divide-y bg-surface">
242
+ {#each values.foreignKeys as foreignKey, foreignKeyIndex}
243
+ {@const fkErrors = errors?.foreignKeys?.[foreignKeyIndex]}
244
+ <tr>
245
+ <Cell first class="flex">
246
+ <Select
247
+ inputClass={twMerge('!w-48')}
248
+ error={fkErrors?.emptyTarget}
249
+ placeholder=""
250
+ bind:value={foreignKey.targetTable}
251
+ items={getFlatTableNamesFromSchema(dbSchema).map((o) => ({
252
+ value: o,
253
+ label:
254
+ (currentSchema && o.startsWith(currentSchema)) || !dbSupportsSchemas(dbType)
255
+ ? o.split('.')[1]
256
+ : o
257
+ }))}
258
+ />
259
+ </Cell>
260
+ <Cell>
261
+ <div class="flex flex-col gap-2">
262
+ {#each foreignKey.columns as column, columnIndex}
263
+ <div class="flex">
264
+ <div class="flex items-center gap-1 w-60">
265
+ <!-- Div wrappers with absolute select are to prevent the Select content
233
266
  from x-overflowing -->
234
- <div class="grow h-[2rem] relative">
235
- <Select
236
- class="!absolute inset-0"
237
- inputClass={twMerge(
238
- fkErrors?.nonExistingSourceColumns.includes(column.sourceColumn)
239
- ? 'border !border-red-600/60'
240
- : ''
241
- )}
242
- placeholder=""
243
- bind:value={column.sourceColumn}
244
- items={values.columns
245
- .filter((c) => c.name.length)
246
- .map((c) => ({ value: c.name }))}
247
- clearable={false}
248
- />
267
+ <div class="grow h-[2rem] relative">
268
+ <Select
269
+ class="!absolute inset-0"
270
+ error={fkErrors?.nonExistingSourceColumns.includes(
271
+ column.sourceColumn
272
+ )}
273
+ placeholder=""
274
+ bind:value={column.sourceColumn}
275
+ items={values.columns
276
+ .filter((c) => c.name.length)
277
+ .map((c) => ({ value: c.name }))}
278
+ clearable={false}
279
+ />
280
+ </div>
281
+ <ArrowRight size={16} class="h-fit shrink-0" />
282
+ <div class="grow h-[2rem] relative">
283
+ <Select
284
+ class="!absolute inset-0"
285
+ error={fkErrors?.nonExistingTargetColumns.includes(
286
+ column.targetColumn
287
+ )}
288
+ placeholder=""
289
+ bind:value={column.targetColumn}
290
+ items={Object.keys(
291
+ dbSchema?.schema?.[foreignKey.targetTable?.split('.')?.[0] ?? '']?.[
292
+ foreignKey.targetTable?.split('.')[1]
293
+ ] ?? {}
294
+ ).map((value) => ({ value }))}
295
+ clearable={false}
296
+ />
297
+ </div>
249
298
  </div>
250
- <ArrowRight size={16} class="h-fit shrink-0" />
251
- <div class="grow h-[2rem] relative">
252
- <Select
253
- class="!absolute inset-0"
254
- inputClass={twMerge(
255
- fkErrors?.nonExistingTargetColumns.includes(column.targetColumn)
256
- ? 'border !border-red-600/60'
257
- : ''
258
- )}
259
- placeholder=""
260
- bind:value={column.targetColumn}
261
- items={Object.keys(
262
- dbSchema?.schema?.[foreignKey.targetTable?.split('.')?.[0] ?? '']?.[
263
- foreignKey.targetTable?.split('.')[1]
264
- ] ?? {}
265
- ).map((value) => ({ value }))}
266
- clearable={false}
299
+ <div class="ml-auto flex">
300
+ {#if columnIndex === 0}
301
+ <Popover contentClasses="py-3 px-5 w-52 flex flex-col gap-6">
302
+ {#snippet trigger()}
303
+ <Settings size={18} />
304
+ {/snippet}
305
+ {#snippet content()}
306
+ <span>
307
+ ON DELETE <select bind:value={foreignKey.onDelete}>
308
+ <option value="NO ACTION" selected>NO ACTION</option>
309
+ <option value="CASCADE" selected>CASCADE</option>
310
+ <option value="SET NULL" selected>SET NULL</option>
311
+ </select>
312
+ </span>
313
+ <span>
314
+ ON UPDATE <select bind:value={foreignKey.onUpdate}>
315
+ <option value="NO ACTION" selected>NO ACTION</option>
316
+ <option value="CASCADE" selected>CASCADE</option>
317
+ <option value="SET NULL" selected>SET NULL</option>
318
+ </select>
319
+ </span>
320
+ {/snippet}
321
+ </Popover>
322
+ {/if}
323
+ <Button
324
+ color="light"
325
+ startIcon={{ icon: X }}
326
+ wrapperClasses="w-fit ml-2"
327
+ btnClasses="p-0"
328
+ on:click={foreignKey.columns.length > 1
329
+ ? () => foreignKey.columns.splice(columnIndex, 1)
330
+ : () => values.foreignKeys.splice(foreignKeyIndex, 1)}
267
331
  />
268
332
  </div>
269
333
  </div>
270
- <div class="ml-auto flex">
271
- {#if columnIndex === 0}
272
- <Popover contentClasses="py-3 px-5 w-52 flex flex-col gap-6">
273
- {#snippet trigger()}
274
- <Settings size={18} />
275
- {/snippet}
276
- {#snippet content()}
277
- <span>
278
- ON DELETE <select bind:value={foreignKey.onDelete}>
279
- <option value="NO ACTION" selected>NO ACTION</option>
280
- <option value="CASCADE" selected>CASCADE</option>
281
- <option value="SET NULL" selected>SET NULL</option>
282
- </select>
283
- </span>
284
- <span>
285
- ON UPDATE <select bind:value={foreignKey.onUpdate}>
286
- <option value="NO ACTION" selected>NO ACTION</option>
287
- <option value="CASCADE" selected>CASCADE</option>
288
- <option value="SET NULL" selected>SET NULL</option>
289
- </select>
290
- </span>
291
- {/snippet}
292
- </Popover>
293
- {/if}
294
- <Button
295
- color="light"
296
- startIcon={{ icon: X }}
297
- wrapperClasses="w-fit ml-2"
298
- btnClasses="p-0"
299
- on:click={foreignKey.columns.length > 1
300
- ? () => foreignKey.columns.splice(columnIndex, 1)
301
- : () => values.foreignKeys.splice(foreignKeyIndex, 1)}
302
- />
303
- </div>
304
- </div>
305
- {/each}
306
- <button
307
- class="w-60 border-dashed dark:border-gray-600 border-2 rounded-md flex justify-center items-center py-1 gap-2 text-primary-500 font-normal"
308
- onclick={() => foreignKey.columns.push({})}
309
- >
310
- <Plus class="h-fit" size={12} /> Add
311
- </button>
312
- </div></Cell
313
- >
334
+ {/each}
335
+ <button
336
+ class="w-60 border-dashed dark:border-gray-600 border-2 rounded-md flex justify-center items-center py-1 gap-2 text-primary-500 font-normal"
337
+ onclick={() => foreignKey.columns.push({})}
338
+ >
339
+ <Plus class="h-fit" size={12} /> Add
340
+ </button>
341
+ </div></Cell
342
+ >
343
+ </tr>
344
+ {/each}
345
+ <tr class="w-full">
346
+ <td colspan={99} class="p-1">
347
+ <Button
348
+ wrapperClasses="mx-auto"
349
+ startIcon={{ icon: Plus }}
350
+ color="light"
351
+ on:click={() =>
352
+ values.foreignKeys.push({
353
+ columns: [{}],
354
+ onDelete: 'NO ACTION',
355
+ onUpdate: 'NO ACTION'
356
+ })}
357
+ >
358
+ Add
359
+ </Button>
360
+ </td>
314
361
  </tr>
315
- {/each}
316
- <tr class="w-full">
317
- <td colspan={99} class="p-1">
318
- <Button
319
- wrapperClasses="mx-auto"
320
- startIcon={{ icon: Plus }}
321
- color="light"
322
- on:click={() =>
323
- values.foreignKeys.push({
324
- columns: [{}],
325
- onDelete: 'NO ACTION',
326
- onUpdate: 'NO ACTION'
327
- })}
328
- >
329
- Add
330
- </Button>
331
- </td>
332
- </tr>
333
- </tbody>
334
- </DataTable>
335
- </div>
362
+ </tbody>
363
+ </DataTable>
364
+ </div>
365
+ {/if}
336
366
  </div>
337
367
  <Button
338
- disabled={!!errors}
339
- on:click={() =>
340
- (askingForConfirmation = {
368
+ disabled={!!errors || btnProps.current.disabled}
369
+ loading={btnProps.pending}
370
+ on:click={() => {
371
+ let preview = computePreview?.({ values })
372
+ askingForConfirmation = {
341
373
  onConfirm: async () => {
342
374
  try {
343
375
  askingForConfirmation && (askingForConfirmation.loading = true)
344
- await onConfirm(values)
345
- sendUserToast(values.name + ' created!')
376
+ await onConfirm({ values })
346
377
  } catch (e) {
347
378
  let msg: string | undefined = (e as Error)?.message
348
379
  if (typeof msg !== 'string') msg = e ? JSON.stringify(e) : 'An error occurred'
@@ -351,11 +382,14 @@ let darkMode = $state(false);
351
382
  askingForConfirmation = undefined
352
383
  },
353
384
  title: 'Confirm running the following:',
354
- confirmationText: 'Create ' + values.name,
385
+ confirmationText: btnProps.current.text,
355
386
  open: true,
356
- ...(previewSql && { codeContent: previewSql(values) })
357
- })}>Create table</Button
387
+ ...(preview && { codeContent: preview.sql, alert: preview.alert })
388
+ }
389
+ }}
358
390
  >
391
+ {btnProps.current.text}
392
+ </Button>
359
393
  </div>
360
394
 
361
395
  <Portal>
@@ -364,6 +398,11 @@ let darkMode = $state(false);
364
398
  on:canceled={() => (askingForConfirmation = undefined)}
365
399
  on:confirmed={askingForConfirmation?.onConfirm ?? (() => {})}
366
400
  >
401
+ {#if askingForConfirmation?.alert}
402
+ <Alert title={askingForConfirmation.alert.title} type="error" class="mb-2">
403
+ {askingForConfirmation.alert.body}
404
+ </Alert>
405
+ {/if}
367
406
  {#if askingForConfirmation?.codeContent}
368
407
  <div class="bg-surface-secondary border border-surface-selected rounded-md p-2 relative">
369
408
  <code class="whitespace-pre-wrap">
@@ -1,12 +1,31 @@
1
- import { type CreateTableValues } from './apps/components/display/dbtable/queries/createTable';
1
+ import { type DbFeatures } from './apps/components/display/dbtable/utils';
2
2
  import { type DBSchema } from '../stores';
3
3
  import type { DbType } from './dbTypes';
4
+ import { type TableEditorValues } from './apps/components/display/dbtable/tableEditor';
4
5
  type Props = {
5
- onConfirm: (values: CreateTableValues) => void | Promise<void>;
6
- previewSql?: (values: CreateTableValues) => string;
7
6
  dbType: DbType;
8
7
  dbSchema?: DBSchema;
9
8
  currentSchema?: string;
9
+ initialValues?: TableEditorValues;
10
+ features?: DbFeatures;
11
+ onConfirm: (params: {
12
+ values: TableEditorValues;
13
+ }) => void | Promise<void>;
14
+ computePreview: (params: {
15
+ values: TableEditorValues;
16
+ }) => {
17
+ sql: string;
18
+ alert?: {
19
+ title: string;
20
+ body?: string;
21
+ };
22
+ };
23
+ computeBtnProps: (params: {
24
+ values: TableEditorValues;
25
+ }) => {
26
+ text: string;
27
+ disabled?: boolean;
28
+ };
10
29
  };
11
30
  declare const DBTableEditor: import("svelte").Component<Props, {}, "">;
12
31
  type DBTableEditor = ReturnType<typeof DBTableEditor>;
@@ -1,10 +1,11 @@
1
- <script lang="ts">import { twMerge } from 'tailwind-merge';
1
+ <script lang="ts">import { ExternalLink } from 'lucide-svelte';
2
+ import { twMerge } from 'tailwind-merge';
2
3
  export let link = undefined;
3
4
  </script>
4
5
 
5
6
  <div class={twMerge('text-xs text-primary font-normal', $$props.class)}>
6
7
  <slot />
7
8
  {#if link}
8
- <a href={link} target="_blank">Learn more</a>
9
+ <a href={link} target="_blank">Learn more <ExternalLink size={12} class="inline-block" /></a>
9
10
  {/if}
10
11
  </div>
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">import SchemaForm from './SchemaForm.svelte';
2
+ import JsonInputs from './JsonInputs.svelte';
2
3
  import JobLoader from './JobLoader.svelte';
3
4
  import { Button } from './common';
4
5
  import { WindmillIcon } from './icons';
@@ -74,6 +75,9 @@ let socket = undefined;
74
75
  // Test args input
75
76
  let args = $state({});
76
77
  let isValid = $state(true);
78
+ let jsonView = $state(false);
79
+ let jsonEditor = $state(undefined);
80
+ let schemaHeight = $state(0);
77
81
  // Test
78
82
  let testIsLoading = $state(false);
79
83
  let testJob = $state();
@@ -416,6 +420,7 @@ setContext('FlowEditorContext', {
416
420
  selectionManager,
417
421
  previewArgs: previewArgsStore,
418
422
  scriptEditorDrawer,
423
+ flowEditorDrawer: writable(undefined),
419
424
  moving,
420
425
  history,
421
426
  pathStore: pathStore,
@@ -665,9 +670,38 @@ const selectedId = $derived(selectionManager.getSelectedId());
665
670
  <Splitpanes horizontal style="height: 1000px;">
666
671
  <Pane size={33}>
667
672
  <div class="px-2">
668
- <div class="break-words relative font-sans">
669
- <SchemaForm compact {schema} bind:args bind:isValid />
673
+ <div class="flex justify-end mb-2">
674
+ <Toggle
675
+ bind:checked={jsonView}
676
+ size="xs"
677
+ options={{
678
+ right: 'JSON',
679
+ rightTooltip: 'Fill args from JSON'
680
+ }}
681
+ lightMode
682
+ on:change={() => {
683
+ jsonEditor?.setCode(JSON.stringify(args ?? {}, null, '\t'))
684
+ }}
685
+ />
670
686
  </div>
687
+ {#if jsonView}
688
+ <div class="py-2" style="height: {Math.max(schemaHeight, 300)}px">
689
+ <JsonInputs
690
+ bind:this={jsonEditor}
691
+ on:select={(e) => {
692
+ if (e.detail) {
693
+ args = e.detail
694
+ }
695
+ }}
696
+ updateOnBlur={false}
697
+ placeholder={`Write args as JSON.<br/><br/>Example:<br/><br/>{<br/>&nbsp;&nbsp;"foo": "12"<br/>}`}
698
+ />
699
+ </div>
700
+ {:else}
701
+ <div class="break-words relative font-sans" bind:clientHeight={schemaHeight}>
702
+ <SchemaForm compact {schema} bind:args bind:isValid />
703
+ </div>
704
+ {/if}
671
705
  </div>
672
706
  </Pane>
673
707
  <Pane size={67}>
@@ -5,7 +5,6 @@ import Tabs from './common/tabs/Tabs.svelte';
5
5
  import Tab from './common/tabs/Tab.svelte';
6
6
  import { cleanValueProperties, orderedJsonStringify, orderedYamlStringify, replaceFalseWithUndefined } from '../utils';
7
7
  let diffType = $state(undefined);
8
- let flowdiffMode = $state('yaml');
9
8
  let contentType = $derived.by(() => {
10
9
  if (!data || !diffType)
11
10
  return undefined;
@@ -173,34 +172,14 @@ export function setDiff(diff) {
173
172
  {/await}
174
173
  {:else if contentType === 'metadata'}
175
174
  {#if isFlow}
176
- <Tabs bind:selected={flowdiffMode}>
177
- <Tab value="yaml" label={`YAML`} />
178
- <Tab value="graph" label={`Graph`} />
179
- </Tabs>
180
- {#if flowdiffMode === 'yaml'}
181
- {#await import('./DiffEditor.svelte')}
182
- <Loader2 class="animate-spin" />
183
- {:then Module}
184
- <Module.default
185
- open={true}
186
- automaticLayout
187
- className="h-full"
188
- defaultLang="yaml"
189
- defaultOriginal={metadata}
190
- defaultModified={data.current.metadata}
191
- readOnly
192
- />
193
- {/await}
194
- {:else if flowdiffMode === 'graph'}
195
- {#await import('./FlowGraphDiffViewer.svelte')}
196
- <Loader2 class="animate-spin" />
197
- {:then Module}
198
- <Module.default
199
- beforeYaml={metadata ?? ''}
200
- afterYaml={data.current.metadata}
201
- />
202
- {/await}
203
- {/if}
175
+ {#await import('./FlowDiffViewer.svelte')}
176
+ <Loader2 class="animate-spin" />
177
+ {:then Module}
178
+ <Module.default
179
+ beforeYaml={metadata ?? ''}
180
+ afterYaml={data.current.metadata}
181
+ />
182
+ {/await}
204
183
  {:else}
205
184
  {#await import('./DiffEditor.svelte')}
206
185
  <Loader2 class="animate-spin" />