windmill-components 1.60.3 → 1.70.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 (335) hide show
  1. package/assets/app.css +3 -0
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +24 -9
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +51 -1
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FlowBuilder.svelte +2 -2
  13. package/components/FlowJobResult.svelte +10 -2
  14. package/components/FlowJobResult.svelte.d.ts +1 -0
  15. package/components/FlowMetadata.svelte +24 -8
  16. package/components/FlowPreviewContent.svelte +3 -4
  17. package/components/FlowStatusViewer.svelte +41 -9
  18. package/components/FolderEditor.svelte +4 -3
  19. package/components/HighlightCode.svelte +7 -1
  20. package/components/InlineCodeCopy.svelte +11 -0
  21. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  22. package/components/InputTransformForm.svelte +9 -5
  23. package/components/LogViewer.svelte +6 -0
  24. package/components/LogViewer.svelte.d.ts +1 -0
  25. package/components/ModulePreview.svelte +11 -2
  26. package/components/MoveDrawer.svelte +1 -1
  27. package/components/Multiselect.svelte.d.ts +2 -2
  28. package/components/ObjectResourceInput.svelte +6 -1
  29. package/components/Path.svelte +14 -5
  30. package/components/Popover.svelte +8 -2
  31. package/components/Popover.svelte.d.ts +1 -0
  32. package/components/Range.svelte.d.ts +2 -2
  33. package/components/ResourceEditor.svelte +39 -16
  34. package/components/ResourcePicker.svelte +0 -1
  35. package/components/RunForm.svelte +26 -2
  36. package/components/RunForm.svelte.d.ts +1 -0
  37. package/components/ScheduleEditor.svelte +1 -1
  38. package/components/SchemaEditor.svelte +2 -2
  39. package/components/SchemaForm.svelte +14 -4
  40. package/components/SchemaForm.svelte.d.ts +1 -0
  41. package/components/ScriptBuilder.svelte +45 -22
  42. package/components/ScriptBuilder.svelte.d.ts +1 -0
  43. package/components/ScriptEditor.svelte +1 -0
  44. package/components/SharedBadge.svelte +5 -5
  45. package/components/Slider.svelte +14 -0
  46. package/components/Slider.svelte.d.ts +19 -0
  47. package/components/StringTypeNarrowing.svelte +0 -1
  48. package/components/SuperadminSettings.svelte +11 -3
  49. package/components/SuperadminSettings.svelte.d.ts +2 -0
  50. package/components/TemplateEditor.svelte.d.ts +204 -0
  51. package/components/TestJobLoader.svelte +3 -3
  52. package/components/Toggle.svelte +1 -2
  53. package/components/UserSettings.svelte +25 -28
  54. package/components/UserSettings.svelte.d.ts +2 -0
  55. package/components/VariableEditor.svelte +1 -1
  56. package/components/WhitelistIp.svelte +23 -0
  57. package/components/WhitelistIp.svelte.d.ts +14 -0
  58. package/components/apps/components/buttons/AppButton.svelte +52 -6
  59. package/components/apps/components/buttons/AppButton.svelte.d.ts +3 -0
  60. package/components/apps/components/{form → buttons}/AppForm.svelte +3 -1
  61. package/components/apps/components/buttons/AppFormButton.svelte +137 -0
  62. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +25 -0
  63. package/components/apps/components/buttons/index.d.ts +3 -0
  64. package/components/apps/components/buttons/index.js +3 -0
  65. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +15 -4
  66. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +1 -0
  67. package/components/apps/components/display/AppDisplayComponent.svelte +31 -0
  68. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +23 -0
  69. package/components/apps/components/display/AppHtml.svelte +32 -0
  70. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -3
  71. package/components/apps/components/display/AppIcon.svelte +35 -0
  72. package/components/apps/components/display/AppIcon.svelte.d.ts +22 -0
  73. package/components/apps/components/display/AppImage.svelte +27 -0
  74. package/components/apps/components/display/AppImage.svelte.d.ts +22 -0
  75. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +2 -1
  76. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +1 -0
  77. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +2 -1
  78. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +1 -0
  79. package/components/apps/components/{dataDisplay → display}/AppText.svelte +16 -14
  80. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +3 -0
  81. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +3 -2
  82. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +1 -0
  83. package/components/apps/components/display/PlotlyHtml.svelte +38 -0
  84. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  85. package/components/apps/components/display/VegaLiteHtml.svelte +52 -0
  86. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +3 -2
  87. package/components/apps/components/display/index.d.ts +12 -0
  88. package/components/apps/components/display/index.js +12 -0
  89. package/components/apps/components/display/table/AppAggridTable.svelte +83 -0
  90. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +24 -0
  91. package/components/apps/components/{table → display/table}/AppTable.svelte +44 -23
  92. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +4 -2
  93. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +1 -1
  94. package/components/apps/components/helpers/AlignWrapper.svelte +19 -19
  95. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +4 -2
  96. package/components/apps/components/helpers/HiddenComponent.svelte +22 -0
  97. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  98. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  99. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  100. package/components/apps/components/helpers/InputValue.svelte +5 -7
  101. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  102. package/components/apps/components/helpers/RunnableComponent.svelte +37 -48
  103. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
  104. package/components/apps/components/helpers/RunnableWrapper.svelte +7 -2
  105. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +2 -1
  106. package/components/apps/components/helpers/index.d.ts +10 -0
  107. package/components/apps/components/helpers/index.js +10 -0
  108. package/components/apps/components/icon.d.ts +1 -0
  109. package/components/apps/components/icon.js +18 -0
  110. package/components/apps/components/index.d.ts +5 -0
  111. package/components/apps/components/index.js +5 -0
  112. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +4 -2
  113. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte +6 -0
  114. package/components/apps/components/inputs/AppFileInput.svelte +34 -0
  115. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +20 -0
  116. package/components/apps/components/inputs/AppNumberInput.svelte +48 -0
  117. package/components/apps/components/inputs/AppRangeInput.svelte +44 -0
  118. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +23 -0
  119. package/components/apps/components/inputs/AppSelect.svelte +90 -0
  120. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +2 -0
  121. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte +13 -9
  122. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte +6 -0
  123. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +49 -0
  124. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +21 -0
  125. package/components/apps/components/inputs/currency/CurrencyInput.svelte +181 -0
  126. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +32 -0
  127. package/components/apps/components/inputs/index.d.ts +9 -0
  128. package/components/apps/components/inputs/index.js +9 -0
  129. package/components/apps/components/layout/AppContainer.svelte +32 -0
  130. package/components/apps/components/layout/AppContainer.svelte.d.ts +21 -0
  131. package/components/apps/components/layout/AppDivider.svelte +20 -0
  132. package/components/apps/components/layout/AppDivider.svelte.d.ts +22 -0
  133. package/components/apps/components/layout/AppTabs.svelte +58 -0
  134. package/components/apps/components/layout/AppTabs.svelte.d.ts +24 -0
  135. package/components/apps/components/layout/index.d.ts +3 -0
  136. package/components/apps/components/layout/index.js +3 -0
  137. package/components/apps/editor/AppComponentInput.svelte +33 -0
  138. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  139. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  140. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  141. package/components/apps/editor/AppEditor.svelte +66 -31
  142. package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  143. package/components/apps/editor/AppEditorHeader.svelte +74 -18
  144. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  145. package/components/apps/editor/AppInputs.svelte +60 -0
  146. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  147. package/components/apps/editor/AppPreview.svelte +32 -5
  148. package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
  149. package/components/apps/editor/ComponentHeader.svelte +40 -2
  150. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
  151. package/components/apps/editor/GridEditor.svelte +75 -32
  152. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  153. package/components/apps/editor/SettingsPanel.svelte +31 -3
  154. package/components/apps/editor/SubGridEditor.svelte +111 -0
  155. package/components/apps/editor/SubGridEditor.svelte.d.ts +24 -0
  156. package/components/apps/editor/TablePanel.svelte +2 -0
  157. package/components/apps/editor/TablePanel.svelte.d.ts +1 -1
  158. package/components/apps/editor/appUtils.d.ts +9 -0
  159. package/components/apps/editor/appUtils.js +141 -0
  160. package/components/apps/editor/component/Component.svelte +209 -0
  161. package/components/apps/editor/component/Component.svelte.d.ts +23 -0
  162. package/components/apps/editor/component/README.md +15 -0
  163. package/components/apps/editor/component/components.d.ts +65 -0
  164. package/components/apps/editor/component/components.js +1102 -0
  165. package/components/apps/editor/component/default-codes.d.ts +3 -0
  166. package/components/apps/editor/component/default-codes.js +322 -0
  167. package/components/apps/editor/component/index.d.ts +4 -0
  168. package/components/apps/editor/component/index.js +4 -0
  169. package/components/apps/editor/component/sets.d.ts +2 -0
  170. package/components/apps/editor/component/sets.js +47 -0
  171. package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -105
  172. package/components/apps/editor/componentsPanel/CssProperty.svelte +31 -0
  173. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +20 -0
  174. package/components/apps/editor/componentsPanel/CssSettings.svelte +141 -0
  175. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  176. package/components/apps/editor/componentsPanel/ListItem.svelte +28 -0
  177. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  178. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +4 -1
  179. package/components/apps/editor/componentsPanel/componentStaticValues.js +4 -1
  180. package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
  181. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +98 -9
  182. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +38 -29
  183. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +21 -1
  184. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +66 -8
  185. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +92 -46
  186. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -1
  187. package/components/apps/editor/inlineScriptsPanel/utils.js +30 -0
  188. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  189. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  190. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +4 -1
  191. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +59 -1
  192. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -34
  193. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
  194. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  195. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +18 -0
  196. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +3 -0
  197. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  198. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +92 -77
  199. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  200. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +85 -0
  201. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  202. package/components/apps/editor/settingsPanel/Recompute.svelte +4 -1
  203. package/components/apps/editor/settingsPanel/TableActions.svelte +17 -6
  204. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  205. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +5 -3
  206. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +83 -0
  207. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +19 -0
  208. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +6 -1
  209. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +2 -0
  210. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +23 -0
  211. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  212. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +3 -20
  213. package/components/apps/gridUtils.d.ts +3 -1
  214. package/components/apps/gridUtils.js +5 -3
  215. package/components/apps/inputType.d.ts +33 -6
  216. package/components/apps/types.d.ts +35 -39
  217. package/components/apps/types.js +1 -1
  218. package/components/apps/utils.d.ts +6 -5
  219. package/components/apps/utils.js +90 -90
  220. package/components/common/button/Button.svelte +12 -5
  221. package/components/common/button/Button.svelte.d.ts +3 -1
  222. package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
  223. package/components/common/button/model.d.ts +2 -2
  224. package/components/common/button/model.js +21 -6
  225. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  226. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  227. package/components/common/drawer/Drawer.svelte +3 -1
  228. package/components/common/fileInput/FileInput.svelte +112 -0
  229. package/components/common/fileInput/FileInput.svelte.d.ts +27 -0
  230. package/components/common/index.d.ts +1 -0
  231. package/components/common/index.js +1 -0
  232. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  233. package/components/common/modal/Modal.svelte +74 -0
  234. package/components/common/modal/Modal.svelte.d.ts +22 -0
  235. package/components/common/popup/Popup.svelte +34 -17
  236. package/components/common/popup/Popup.svelte.d.ts +11 -4
  237. package/components/common/table/FlowRow.svelte +22 -3
  238. package/components/common/table/LanguageBadge.svelte +10 -4
  239. package/components/common/table/Row.svelte +1 -1
  240. package/components/common/table/ScriptRow.svelte +2 -2
  241. package/components/common/tabs/Tabs.svelte +9 -7
  242. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  243. package/components/flows/CreateActionsFlow.svelte +2 -3
  244. package/components/flows/content/BranchPredicateEditor.svelte +10 -8
  245. package/components/flows/content/CapturePayload.svelte +3 -3
  246. package/components/flows/content/FlowInputs.svelte +109 -99
  247. package/components/flows/content/FlowLoop.svelte +1 -1
  248. package/components/flows/content/FlowModuleComponent.svelte +3 -2
  249. package/components/flows/content/FlowRetries.svelte +8 -6
  250. package/components/flows/content/FlowSettings.svelte +72 -26
  251. package/components/flows/flowState.d.ts +1 -0
  252. package/components/flows/flowState.js +1 -0
  253. package/components/flows/flowStateUtils.js +4 -2
  254. package/components/flows/flowStore.d.ts +1 -0
  255. package/components/flows/flowStore.js +1 -0
  256. package/components/flows/map/FlowBranchAllMap.svelte +1 -1
  257. package/components/flows/map/FlowBranchOneMap.svelte +2 -2
  258. package/components/flows/map/FlowModuleSchemaItem.svelte +5 -5
  259. package/components/flows/map/FlowModuleSchemaMap.svelte +15 -8
  260. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  261. package/components/flows/map/InsertModuleButton.svelte +24 -10
  262. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  263. package/components/flows/map/MapItem.svelte +3 -1
  264. package/components/flows/utils.js +16 -10
  265. package/components/graph/FlowGraph.svelte +38 -15
  266. package/components/graph/FlowGraph.svelte.d.ts +1 -0
  267. package/components/icons/SquareIcon.svelte +9 -0
  268. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  269. package/components/icons/index.d.ts +2 -0
  270. package/components/icons/index.js +2 -0
  271. package/components/jobs/JobDetail.svelte +29 -5
  272. package/components/propertyPicker/ObjectViewer.svelte +8 -5
  273. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  274. package/components/propertyPicker/PropPicker.svelte +8 -1
  275. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  276. package/components/random_positive_adjetive.d.ts +1 -0
  277. package/components/random_positive_adjetive.js +961 -0
  278. package/components/scriptEditor/LogPanel.svelte +2 -1
  279. package/components/sidebar/SidebarContent.svelte +1 -1
  280. package/components/sidebar/UserMenu.svelte +46 -16
  281. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  282. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  283. package/components/sidebar/settings.d.ts +2 -0
  284. package/components/sidebar/settings.js +2 -0
  285. package/gen/core/OpenAPI.js +1 -1
  286. package/gen/models/CompletedJob.d.ts +1 -0
  287. package/gen/models/FlowModule.d.ts +0 -1
  288. package/gen/models/QueuedJob.d.ts +1 -0
  289. package/gen/models/WorkerPing.d.ts +1 -1
  290. package/gen/services/FlowService.d.ts +9 -0
  291. package/gen/services/FlowService.js +15 -0
  292. package/gen/services/JobService.d.ts +97 -15
  293. package/gen/services/JobService.js +74 -15
  294. package/gen/services/ScriptService.d.ts +10 -1
  295. package/gen/services/ScriptService.js +16 -1
  296. package/gen/services/VariableService.d.ts +4 -2
  297. package/gen/services/VariableService.js +8 -2
  298. package/gen/services/WorkspaceService.d.ts +17 -0
  299. package/gen/services/WorkspaceService.js +16 -0
  300. package/infer.js +3 -0
  301. package/init_scripts/python_failure_module.py +10 -0
  302. package/init_scripts/python_init_code.py +37 -0
  303. package/init_scripts/python_init_code_clear.py +5 -0
  304. package/init_scripts/python_init_code_trigger.py +14 -0
  305. package/logout.js +2 -1
  306. package/package.json +577 -522
  307. package/script_helpers.d.ts +6 -5
  308. package/script_helpers.js +7 -73
  309. package/stores.d.ts +5 -1
  310. package/stores.js +8 -1
  311. package/user.d.ts +1 -1
  312. package/user.js +14 -8
  313. package/utils.d.ts +1 -1
  314. package/utils.js +8 -7
  315. package/components/apps/components/DisplayComponent.svelte +0 -16
  316. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  317. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -35
  318. package/components/apps/components/dataDisplay/VegaLiteHtml.svelte +0 -28
  319. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  320. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  321. package/components/apps/editor/ComponentEditor.svelte +0 -138
  322. package/components/apps/editor/ComponentEditor.svelte.d.ts +0 -23
  323. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  324. package/components/apps/editor/componentsPanel/data.js +0 -465
  325. package/components/apps/editorUtils.d.ts +0 -1
  326. package/components/apps/editorUtils.js +0 -253
  327. /package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +0 -0
  328. /package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +0 -0
  329. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  330. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
  331. /package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +0 -0
  332. /package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +0 -0
  333. /package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +0 -0
  334. /package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +0 -0
  335. /package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- export const BUTTON_COLORS = ['blue', 'red', 'dark', 'light', 'green', 'gray'];
1
+ export const BUTTON_COLORS = ['blue', 'red', 'dark', 'light', 'green', 'gray', 'none'];
2
2
  export var ButtonType;
3
3
  (function (ButtonType) {
4
4
  ButtonType.FontSizeClasses = {
@@ -9,11 +9,26 @@ export var ButtonType;
9
9
  xl: 'text-xl'
10
10
  };
11
11
  ButtonType.SpacingClasses = {
12
- xs: 'px-3 py-1.5',
13
- sm: 'px-3 py-1.5',
14
- md: 'px-3 py-1.5',
15
- lg: 'px-4 py-2',
16
- xl: 'px-4 py-2'
12
+ xs: {
13
+ border: 'px-3 py-[6px]',
14
+ contained: 'px-3 py-[7px]'
15
+ },
16
+ sm: {
17
+ border: 'px-3 py-[6px]',
18
+ contained: 'px-3 py-[7px]'
19
+ },
20
+ md: {
21
+ border: 'px-3 py-[6px]',
22
+ contained: 'px-3 py-[7px]'
23
+ },
24
+ lg: {
25
+ border: 'px-4 py-[8px]',
26
+ contained: 'px-4 py-[9px]'
27
+ },
28
+ xl: {
29
+ border: 'px-4 py-[8px]',
30
+ contained: 'px-4 py-[9px]'
31
+ },
17
32
  };
18
33
  ButtonType.IconScale = {
19
34
  xs: 0.7,
@@ -23,12 +23,19 @@ function onKeyDown(event) {
23
23
  }
24
24
  }
25
25
  }
26
+ function fadeFast(node) {
27
+ return fade(node, { duration: 100 });
28
+ }
26
29
  </script>
27
30
 
28
31
  <svelte:window on:keydown={onKeyDown} />
29
32
 
30
33
  {#if open}
31
- <div transition:fade={{ duration: 100 }} class={'relative z-50'} role="dialog">
34
+ <div
35
+ transition:fadeFast|local
36
+ class={'absolute top-0 bottom-0 left-0 right-0 z-50'}
37
+ role="dialog"
38
+ >
32
39
  <div
33
40
  class={classNames(
34
41
  'fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity',
@@ -41,9 +41,9 @@ onDestroy(() => {
41
41
  }}
42
42
  >
43
43
  <div class="flex flex-col w-full space-y-4">
44
- <span
45
- >Are you sure you want to discard change you have made? (A draft has been temporarily and
46
- locally saved)</span
47
- >
44
+ <span>
45
+ Are you sure you want to discard change you have made? (A draft has been temporarily and
46
+ locally saved)
47
+ </span>
48
48
  </div>
49
49
  </ConfirmationModal>
@@ -42,8 +42,10 @@ function onKeyDown(event) {
42
42
  if (open) {
43
43
  switch (event.key) {
44
44
  case 'Escape':
45
- open = false;
46
45
  event.preventDefault();
46
+ event.stopPropagation();
47
+ event.stopImmediatePropagation();
48
+ open = false;
47
49
  break;
48
50
  }
49
51
  }
@@ -0,0 +1,112 @@
1
+ <script>import { createEventDispatcher } from "svelte";
2
+ import { FileUp } from "lucide-svelte";
3
+ import Button from "../../common/button/Button.svelte";
4
+ import { faTrash } from "@fortawesome/free-solid-svg-icons";
5
+ let c = '';
6
+ export { c as class };
7
+ export let accept = '*';
8
+ export let multiple = false;
9
+ export let convertToBase64 = false;
10
+ export let hideIcon = false;
11
+ export let iconSize = 36;
12
+ const dispatch = createEventDispatcher();
13
+ let input;
14
+ let files = undefined;
15
+ async function onChange(fileList) {
16
+ if (!fileList || !fileList.length) {
17
+ files = undefined;
18
+ dispatch('change', files);
19
+ return;
20
+ }
21
+ if (!multiple || !files) {
22
+ files = [];
23
+ }
24
+ for (let i = 0; i < fileList.length; i++) {
25
+ const file = fileList.item(i);
26
+ if (file)
27
+ files.push(file);
28
+ }
29
+ // Needs to be reset so the same file can be selected
30
+ // multiple times in a row
31
+ input.value = '';
32
+ dispatchChange();
33
+ }
34
+ async function fileToBase64(file) {
35
+ return new Promise((resolve) => {
36
+ const reader = new FileReader();
37
+ reader.onloadend = () => {
38
+ resolve(reader.result);
39
+ };
40
+ reader.readAsDataURL(file);
41
+ });
42
+ }
43
+ function removeFile(index) {
44
+ if (!files)
45
+ return;
46
+ files.splice(index, 1);
47
+ files = files.length ? files : undefined;
48
+ dispatchChange();
49
+ }
50
+ async function dispatchChange() {
51
+ files = files;
52
+ if (convertToBase64 && files) {
53
+ const promises = files.map(fileToBase64);
54
+ const b64s = await Promise.all(promises);
55
+ dispatch('change', b64s);
56
+ }
57
+ else {
58
+ dispatch('change', files);
59
+ }
60
+ }
61
+ </script>
62
+
63
+ <button
64
+ class="relative center-center flex-col text-center font-medium text-gray-600
65
+ border-2 border-dashed border-gray-400 hover:border-blue-500
66
+ focus-within:border-blue-500 hover:bg-blue-50 focus-within:bg-blue-50
67
+ duration-200 rounded-lg p-1 {c ?? ''}"
68
+ >
69
+ {#if !hideIcon && !files}
70
+ <FileUp size={iconSize} class="mb-2" />
71
+ {/if}
72
+ {#if files}
73
+ <div class="w-full max-h-full overflow-auto px-6">
74
+ <slot name="selected-title">
75
+ <div class="text-center mb-2 px-2">
76
+ Selected file{files.length > 1 ? 's' : ''}:
77
+ </div>
78
+ </slot>
79
+ <ul class="relative z-20 max-w-[250px] bg-white rounded-lg overflow-hidden mx-auto">
80
+ {#each files as {name}, i}
81
+ <li class="flex justify-between items-center font-normal text-sm
82
+ hover:bg-gray-300/20 duration-200 py-1 px-2 cursor-default">
83
+ <span class="pr-2 ellipsize">{name}</span>
84
+ <Button
85
+ size="xs"
86
+ color="red"
87
+ variant="border"
88
+ iconOnly
89
+ btnClasses="bg-transparent"
90
+ startIcon={{ icon: faTrash }}
91
+ on:click={() => removeFile(i)}
92
+ />
93
+ </li>
94
+ {/each}
95
+ </ul>
96
+ </div>
97
+ {:else}
98
+ <slot>
99
+ <span>Drag and drop {multiple ? 'files' : 'a file'}</span>
100
+ </slot>
101
+ {/if}
102
+ <input
103
+ class="!absolute !inset-0 !z-10 !opacity-0 !cursor-pointer"
104
+ type="file"
105
+ title={files ? `${files.length} file${files.length > 1 ? 's' : ''} chosen` : 'No file chosen'}
106
+ bind:this={input}
107
+ on:change={({currentTarget}) => {onChange(currentTarget.files)}}
108
+ {accept}
109
+ {multiple}
110
+ {...$$restProps}
111
+ />
112
+ </button>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ class?: string | undefined;
6
+ accept?: string | undefined;
7
+ multiple?: boolean | undefined;
8
+ convertToBase64?: boolean | undefined;
9
+ hideIcon?: boolean | undefined;
10
+ iconSize?: number | undefined;
11
+ };
12
+ events: {
13
+ change: CustomEvent<any>;
14
+ } & {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {
18
+ 'selected-title': {};
19
+ default: {};
20
+ };
21
+ };
22
+ export type FileInputProps = typeof __propDef.props;
23
+ export type FileInputEvents = typeof __propDef.events;
24
+ export type FileInputSlots = typeof __propDef.slots;
25
+ export default class FileInput extends SvelteComponentTyped<FileInputProps, FileInputEvents, FileInputSlots> {
26
+ }
27
+ export {};
@@ -17,6 +17,7 @@ export { default as Tabs } from './tabs/Tabs.svelte';
17
17
  export { default as ToggleButton } from './toggleButton/ToggleButton.svelte';
18
18
  export { default as ToggleButtonGroup } from './toggleButton/ToggleButtonGroup.svelte';
19
19
  export { default as Breadcrumb } from './breadcrumb/Breadcrumb.svelte';
20
+ export { default as FileInput } from './fileInput/FileInput.svelte';
20
21
  export * from './alert/model';
21
22
  export * from './badge/model';
22
23
  export * from './button/model';
@@ -17,6 +17,7 @@ export { default as Tabs } from './tabs/Tabs.svelte';
17
17
  export { default as ToggleButton } from './toggleButton/ToggleButton.svelte';
18
18
  export { default as ToggleButtonGroup } from './toggleButton/ToggleButtonGroup.svelte';
19
19
  export { default as Breadcrumb } from './breadcrumb/Breadcrumb.svelte';
20
+ export { default as FileInput } from './fileInput/FileInput.svelte';
20
21
  export * from './alert/model';
21
22
  export * from './badge/model';
22
23
  export * from './button/model';
@@ -2,7 +2,7 @@
2
2
  /** @typedef {typeof __propDef.events} KbdEvents */
3
3
  /** @typedef {typeof __propDef.slots} KbdSlots */
4
4
  export default class Kbd extends SvelteComponentTyped<{
5
- [x: string]: never;
5
+ [x: string]: any;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
8
8
  }, {
@@ -15,7 +15,7 @@ export type KbdSlots = typeof __propDef.slots;
15
15
  import { SvelteComponentTyped } from "svelte";
16
16
  declare const __propDef: {
17
17
  props: {
18
- [x: string]: never;
18
+ [x: string]: any;
19
19
  };
20
20
  events: {
21
21
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,74 @@
1
+ <script>import { classNames } from '../../../utils';
2
+ import { createEventDispatcher } from 'svelte';
3
+ import { fade } from 'svelte/transition';
4
+ import Button from '../button/Button.svelte';
5
+ import Badge from '../badge/Badge.svelte';
6
+ export let title;
7
+ export let open = false;
8
+ const dispatch = createEventDispatcher();
9
+ function onKeyDown(event) {
10
+ if (open) {
11
+ switch (event.key) {
12
+ case 'Enter':
13
+ event.stopPropagation();
14
+ event.preventDefault();
15
+ dispatch('confirmed');
16
+ break;
17
+ case 'Escape':
18
+ event.stopPropagation();
19
+ event.preventDefault();
20
+ dispatch('canceled');
21
+ break;
22
+ }
23
+ }
24
+ }
25
+ function fadeFast(node) {
26
+ return fade(node, { duration: 100 });
27
+ }
28
+ </script>
29
+
30
+ <svelte:window on:keydown={onKeyDown} />
31
+
32
+ {#if open}
33
+ <div
34
+ transition:fadeFast|local
35
+ class={'absolute top-0 bottom-0 left-0 right-0 z-50'}
36
+ role="dialog"
37
+ >
38
+ <div
39
+ class={classNames(
40
+ 'fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity',
41
+ open ? 'ease-out duration-300 opacity-100' : 'ease-in duration-200 opacity-0'
42
+ )}
43
+ />
44
+
45
+ <div class="fixed inset-0 z-10 overflow-y-auto">
46
+ <div class="flex min-h-full items-center justify-center p-4">
47
+ <div
48
+ class={classNames(
49
+ 'relative transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6',
50
+ open
51
+ ? 'ease-out duration-300 opacity-100 translate-y-0 sm:scale-100'
52
+ : 'ease-in duration-200 opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95'
53
+ )}
54
+ >
55
+ <div class="flex">
56
+ <div class="ml-4 text-left flex-1">
57
+ <h3 class="text-lg font-medium text-gray-900">
58
+ {title}
59
+ </h3>
60
+ <div class="mt-2 text-sm text-gray-500">
61
+ <slot />
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <div class="flex items-center space-x-2 flex-row-reverse space-x-reverse mt-4">
66
+ <Button on:click={() => dispatch('canceled')} color="light" size="sm">
67
+ <span class="gap-2">Cancel <Badge color="dark-gray">Escape</Badge></span>
68
+ </Button>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ {/if}
@@ -0,0 +1,22 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ open?: boolean | undefined;
6
+ };
7
+ events: {
8
+ canceled: CustomEvent<any>;
9
+ confirmed: CustomEvent<any>;
10
+ } & {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {
14
+ default: {};
15
+ };
16
+ };
17
+ export type ModalProps = typeof __propDef.props;
18
+ export type ModalEvents = typeof __propDef.events;
19
+ export type ModalSlots = typeof __propDef.slots;
20
+ export default class Modal extends SvelteComponentTyped<ModalProps, ModalEvents, ModalSlots> {
21
+ }
22
+ export {};
@@ -1,43 +1,46 @@
1
1
  <svelte:options accessors />
2
2
 
3
- <script>import { onMount, onDestroy } from 'svelte';
3
+ <script>import { onDestroy } from 'svelte';
4
4
  import { slide } from 'svelte/transition';
5
5
  import { createPopperActions } from 'svelte-popperjs';
6
6
  import { clickOutside } from '../../../utils';
7
7
  import { createStateMachine } from '../../../stateMachine';
8
8
  export let ref;
9
- export let options = { placement: 'auto' };
9
+ export let options = { placement: 'auto', strategy: 'fixed' };
10
10
  /** Events on the reference element */
11
11
  export let openOn = ['focus'];
12
12
  /** Events on the reference element */
13
13
  export let closeOn = ['blur'];
14
14
  export let innerClasses = '';
15
15
  export let outerClasses = '';
16
+ export let transition = slide;
16
17
  const states = ['closed', 'open-focus-in', 'open-focus-out'];
17
18
  const stateMachine = createStateMachine(states, {
18
19
  to: {
19
20
  closed: ({ previousState, currentState }) => {
20
- const activeElem = document.activeElement;
21
- const revert = popup.contains(activeElem) || ref.contains(activeElem);
22
- return revert ? previousState : currentState;
21
+ return isFocusContained() ? previousState : currentState;
23
22
  }
24
23
  }
25
24
  });
26
- const [popperRef, popperContent] = createPopperActions();
25
+ const [popperRef, popperContent, getInstance] = createPopperActions();
27
26
  let popup;
28
27
  let focusableElements;
29
28
  function getFocusableElements() {
30
29
  let elements = [];
31
30
  popup
32
- .querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')
31
+ ?.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')
33
32
  .forEach((elem) => elements.push(elem));
34
33
  focusableElements = elements.filter((el) => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden'));
35
34
  focusableElements.forEach((el) => {
36
35
  el.tabIndex = -1;
37
36
  el.addEventListener('click', openFocusIn);
38
- el.addEventListener('blur', closed);
37
+ el.addEventListener('blur', conditionalClosed);
39
38
  });
40
39
  }
40
+ function isFocusContained() {
41
+ const activeElem = document.activeElement;
42
+ return popup?.contains(activeElem) || ref?.contains(activeElem);
43
+ }
41
44
  function closed() {
42
45
  if ($stateMachine.currentState === 'open-focus-out') {
43
46
  setTimeout(() => {
@@ -48,6 +51,11 @@ function closed() {
48
51
  stateMachine.setState('closed');
49
52
  }
50
53
  }
54
+ function conditionalClosed() {
55
+ if (isFocusContained())
56
+ return;
57
+ closed();
58
+ }
51
59
  function openFocusOut() {
52
60
  stateMachine.setState('open-focus-out');
53
61
  }
@@ -62,18 +70,20 @@ function keyDown(event) {
62
70
  if (event.key === 'Escape') {
63
71
  return document.activeElement?.blur();
64
72
  }
65
- if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')
73
+ const prev = ['Up', 'Left'];
74
+ const next = ['Down', 'Right'];
75
+ if (![...prev, ...next].some((dir) => `Arrow${dir}` === event.key))
66
76
  return;
67
77
  event.preventDefault();
68
- if (popup.contains(document.activeElement)) {
78
+ if (popup?.contains(document.activeElement)) {
69
79
  const index = focusableElements.findIndex((elem) => elem === document.activeElement);
70
80
  if (index === -1)
71
81
  return;
72
82
  let targetIndex = undefined;
73
- if (event.key === 'ArrowUp') {
83
+ if (prev.some((dir) => `Arrow${dir}` === event.key)) {
74
84
  targetIndex = index === 0 ? focusableElements.length - 1 : index - 1;
75
85
  }
76
- else if (event.key === 'ArrowDown') {
86
+ else if (next.some((dir) => `Arrow${dir}` === event.key)) {
77
87
  targetIndex = index + 1 === focusableElements.length ? 0 : index + 1;
78
88
  }
79
89
  if (targetIndex !== undefined) {
@@ -90,12 +100,16 @@ function keyDown(event) {
90
100
  }
91
101
  }
92
102
  function addRefListeners() {
103
+ if (!ref)
104
+ return;
93
105
  openOn.forEach((action) => ref.addEventListener(action, openFocusOut));
94
106
  closeOn.forEach((action) => ref.addEventListener(action, closed));
95
107
  }
96
108
  function removeAllListeners() {
97
109
  focusableElements?.forEach((el) => el.removeEventListener('click', openFocusIn));
98
- focusableElements?.forEach((el) => el.removeEventListener('blur', closed));
110
+ focusableElements?.forEach((el) => el.removeEventListener('blur', conditionalClosed));
111
+ if (!ref)
112
+ return;
99
113
  openOn.forEach((action) => ref.removeEventListener(action, openFocusOut));
100
114
  closeOn.forEach((action) => ref.removeEventListener(action, closed));
101
115
  }
@@ -105,18 +119,21 @@ $: if ($stateMachine.currentState === 'closed') {
105
119
  else {
106
120
  setTimeout(() => {
107
121
  getFocusableElements();
122
+ getInstance()?.update();
108
123
  }, 0);
109
124
  }
110
- onMount(() => {
125
+ $: if (ref) {
111
126
  popperRef(ref);
112
127
  addRefListeners();
113
- });
128
+ }
129
+ $: $$slots.default && getInstance()?.update();
114
130
  onDestroy(removeAllListeners);
115
131
  </script>
116
132
 
117
133
  <svelte:window on:keydown={keyDown} />
118
134
 
119
135
  <div
136
+ class="z-50"
120
137
  bind:this={popup}
121
138
  use:popperContent={options}
122
139
  use:clickOutside
@@ -125,9 +142,9 @@ onDestroy(removeAllListeners);
125
142
  aria-expanded={$stateMachine.currentState !== 'closed'}
126
143
  >
127
144
  {#if $stateMachine.currentState !== 'closed'}
128
- <div transition:slide|local={{ duration: 200 }} class={outerClasses}>
145
+ <div transition:transition|local={{ duration: 200 }} class={outerClasses}>
129
146
  <div class={innerClasses}>
130
- <slot />
147
+ <slot close={closed} />
131
148
  </div>
132
149
  </div>
133
150
  {/if}
@@ -1,28 +1,32 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import { type TransitionConfig } from 'svelte/transition';
2
3
  import { type PopperOptions } from 'svelte-popperjs';
3
4
  declare const __propDef: {
4
5
  props: {
5
- ref: HTMLElement;
6
+ ref: HTMLElement | undefined;
6
7
  options?: PopperOptions<any>;
7
8
  /** Events on the reference element */ openOn?: (keyof HTMLElementEventMap)[] | undefined;
8
9
  /** Events on the reference element */ closeOn?: (keyof HTMLElementEventMap)[] | undefined;
9
10
  innerClasses?: string | undefined;
10
11
  outerClasses?: string | undefined;
12
+ transition?: ((node: Element, params?: Record<string, any>) => TransitionConfig) | undefined;
11
13
  };
12
14
  events: {
13
15
  [evt: string]: CustomEvent<any>;
14
16
  };
15
17
  slots: {
16
- default: {};
18
+ default: {
19
+ close: () => void;
20
+ };
17
21
  };
18
22
  };
19
23
  export type PopupProps = typeof __propDef.props;
20
24
  export type PopupEvents = typeof __propDef.events;
21
25
  export type PopupSlots = typeof __propDef.slots;
22
26
  export default class Popup extends SvelteComponentTyped<PopupProps, PopupEvents, PopupSlots> {
23
- get ref(): HTMLElement;
27
+ get ref(): HTMLElement | undefined;
24
28
  /**accessor*/
25
- set ref(_: HTMLElement);
29
+ set ref(_: HTMLElement | undefined);
26
30
  get options(): PopperOptions<any>;
27
31
  /**accessor*/
28
32
  set options(_: PopperOptions<any>);
@@ -38,5 +42,8 @@ export default class Popup extends SvelteComponentTyped<PopupProps, PopupEvents,
38
42
  get outerClasses(): string | undefined;
39
43
  /**accessor*/
40
44
  set outerClasses(_: string | undefined);
45
+ get transition(): ((node: Element, params?: Record<string, any> | undefined) => TransitionConfig) | undefined;
46
+ /**accessor*/
47
+ set transition(_: ((node: Element, params?: Record<string, any> | undefined) => TransitionConfig) | undefined);
41
48
  }
42
49
  export {};
@@ -5,7 +5,7 @@ import SharedBadge from '../../SharedBadge.svelte';
5
5
  import { FlowService } from '../../../gen';
6
6
  import { userStore, workspaceStore } from '../../../stores';
7
7
  import { sendUserToast } from '../../../utils';
8
- import { faArchive, faCalendarAlt, faCodeFork, faEdit, faEye, faFileExport, faList, faPlay, faShare } from '@fortawesome/free-solid-svg-icons';
8
+ import { faArchive, faCalendarAlt, faCodeFork, faEdit, faEye, faFileExport, faList, faPlay, faShare, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
9
9
  import { MoreVertical } from 'lucide-svelte';
10
10
  import { createEventDispatcher } from 'svelte';
11
11
  import Button from '../button/Button.svelte';
@@ -27,6 +27,16 @@ async function archiveFlow(path) {
27
27
  sendUserToast(`Could not archive this flow ${err.body}`, true);
28
28
  }
29
29
  }
30
+ async function deleteFlow(path) {
31
+ try {
32
+ await FlowService.deleteFlowByPath({ workspace: $workspaceStore, path });
33
+ dispatch('change');
34
+ sendUserToast(`Deleted flow ${path}`);
35
+ }
36
+ catch (err) {
37
+ sendUserToast(`Could not delete this flow ${err.body}`, true);
38
+ }
39
+ }
30
40
  let scheduleEditor;
31
41
  </script>
32
42
 
@@ -75,7 +85,7 @@ let scheduleEditor;
75
85
  {/if}
76
86
 
77
87
  <Button
78
- href="/flows/get/{path}"
88
+ href="/flows/get/{path}?workspace_id={$workspaceStore}"
79
89
  color="light"
80
90
  variant="border"
81
91
  size="xs"
@@ -102,7 +112,7 @@ let scheduleEditor;
102
112
  {
103
113
  displayName: 'View flow',
104
114
  icon: faEye,
105
- href: `/flows/get/${path}`
115
+ href: `/flows/get/${path}?workspace_id=${$workspaceStore}`
106
116
  },
107
117
  {
108
118
  displayName: 'Edit',
@@ -150,6 +160,15 @@ let scheduleEditor;
150
160
  },
151
161
  type: 'delete',
152
162
  disabled: !canWrite
163
+ },
164
+ {
165
+ displayName: 'Delete',
166
+ icon: faTrashAlt,
167
+ action: () => {
168
+ path ? deleteFlow(path) : null
169
+ },
170
+ type: 'delete',
171
+ disabled: !canWrite
153
172
  }
154
173
  ]}
155
174
  >
@@ -2,6 +2,7 @@
2
2
  import { classNames } from '../../../utils';
3
3
  import Badge from '../badge/Badge.svelte';
4
4
  import { LanguageIcon } from '../languageIcons';
5
+ import Popover from '../../Popover.svelte';
5
6
  export let language;
6
7
  const languageLabel = {
7
8
  [Script.language.PYTHON3]: 'Python',
@@ -27,8 +28,13 @@ const colorByLanguage = {
27
28
  color={colorByLanguage}
28
29
  baseClass={classNames(baseClassByLanguage, 'flex gap-1 items-center')}
29
30
  >
30
- <LanguageIcon lang={language} width={12} height={12} />
31
- <span class="hidden lg:inline">
32
- {languageLabel}
33
- </span>
31
+ <Popover notClickable>
32
+ <LanguageIcon lang={language} width={12} height={12} />
33
+ <span slot="text">
34
+ {languageLabel}
35
+ </span>
36
+ </Popover>
37
+
38
+ <!-- <span class="hidden xl:inline">
39
+ </span> -->
34
40
  </Badge>
@@ -36,7 +36,7 @@ first-of-type:rounded-t-md last-of-type:rounded-b-md {color}"
36
36
  </div>
37
37
  </a>
38
38
  {#if $$slots.badges}
39
- <div class="hidden md:flex flex-row gap-1 items-start flex-wrap">
39
+ <div class="hidden lg:flex flex-row gap-1 items-start">
40
40
  <slot name="badges" />
41
41
  </div>
42
42
  {/if}
@@ -82,7 +82,7 @@ let scheduleEditor;
82
82
  {/if}
83
83
 
84
84
  <Button
85
- href="/scripts/get/{hash}"
85
+ href="/scripts/get/{hash}?workspace_id={$workspaceStore}"
86
86
  color="light"
87
87
  variant="border"
88
88
  size="xs"
@@ -108,7 +108,7 @@ let scheduleEditor;
108
108
  {
109
109
  displayName: 'View script',
110
110
  icon: faEye,
111
- href: `/scripts/get/${hash}`
111
+ href: `/scripts/get/${hash}?workspace_id=${$workspaceStore}`
112
112
  },
113
113
 
114
114
  {