windmill-components 1.52.0 → 1.55.1

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 (351) hide show
  1. package/components/ApiConnectForm.svelte +42 -7
  2. package/components/ApiConnectForm.svelte.d.ts +2 -1
  3. package/components/AppConnect.svelte +19 -11
  4. package/components/ArgInfo.svelte +6 -2
  5. package/components/ArgInput.svelte +9 -3
  6. package/components/ArgInput.svelte.d.ts +1 -0
  7. package/components/CenteredPage.svelte +1 -1
  8. package/components/CenteredPage.svelte.d.ts +6 -2
  9. package/components/CronInput.svelte +1 -1
  10. package/components/DisplayResult.svelte +39 -2
  11. package/components/Dropdown.svelte +73 -100
  12. package/components/Dropdown.svelte.d.ts +1 -3
  13. package/components/Editor.svelte +16 -5
  14. package/components/EditorBar.svelte +69 -63
  15. package/components/EditorBar.svelte.d.ts +1 -0
  16. package/components/FlowBuilder.svelte +74 -68
  17. package/components/FlowGraphViewer.svelte +136 -34
  18. package/components/FlowGraphViewer.svelte.d.ts +1 -0
  19. package/components/FlowJobResult.svelte +6 -1
  20. package/components/FlowJobResult.svelte.d.ts +2 -0
  21. package/components/FlowMetadata.svelte +4 -2
  22. package/components/FlowPreviewContent.svelte +10 -23
  23. package/components/FlowPreviewContent.svelte.d.ts +3 -0
  24. package/components/FlowStatusViewer.svelte +155 -30
  25. package/components/FlowStatusViewer.svelte.d.ts +4 -2
  26. package/components/FlowViewer.svelte +5 -5
  27. package/components/FlowViewer.svelte.d.ts +1 -0
  28. package/components/HighlightCode.svelte +1 -1
  29. package/components/HighlightCode.svelte.d.ts +1 -0
  30. package/components/IconedPath.svelte +16 -6
  31. package/components/IconedPath.svelte.d.ts +2 -0
  32. package/components/IconedResourceType.svelte +5 -2
  33. package/components/InputTransformForm.svelte +92 -73
  34. package/components/InviteGlobalUser.svelte +2 -2
  35. package/components/InviteGlobalUser.svelte.d.ts +1 -1
  36. package/components/InviteUser.svelte +20 -6
  37. package/components/InviteUser.svelte.d.ts +1 -1
  38. package/components/ItemPicker.svelte +38 -27
  39. package/components/ItemPicker.svelte.d.ts +2 -1
  40. package/components/JobStatus.svelte +19 -13
  41. package/components/LogViewer.svelte +11 -3
  42. package/components/LogViewer.svelte.d.ts +1 -0
  43. package/components/ModuleStatus.svelte +38 -0
  44. package/components/ModuleStatus.svelte.d.ts +18 -0
  45. package/components/ObjectResourceInput.svelte +8 -52
  46. package/components/ObjectResourceInput.svelte.d.ts +0 -1
  47. package/components/Path.svelte +2 -2
  48. package/components/Path.svelte.d.ts +1 -1
  49. package/components/Popover.svelte +7 -1
  50. package/components/Popover.svelte.d.ts +3 -1
  51. package/components/ResourceEditor.svelte +57 -29
  52. package/components/ResourcePicker.svelte +12 -2
  53. package/components/RunForm.svelte +1 -1
  54. package/components/SchemaEditor.svelte +2 -1
  55. package/components/SchemaForm.svelte +2 -1
  56. package/components/SchemaForm.svelte.d.ts +1 -0
  57. package/components/SchemaModal.svelte +11 -10
  58. package/components/ScriptBuilder.svelte +207 -192
  59. package/components/ScriptBuilder.svelte.d.ts +1 -1
  60. package/components/ScriptEditor.svelte +49 -45
  61. package/components/ScriptEditor.svelte.d.ts +1 -0
  62. package/components/ScriptPicker.svelte.d.ts +1 -1
  63. package/components/ScriptSchema.svelte +11 -30
  64. package/components/ScriptSchema.svelte.d.ts +0 -1
  65. package/components/SharedBadge.svelte +2 -3
  66. package/components/SimpleEditor.svelte +6 -7
  67. package/components/SimpleEditor.svelte.d.ts +1 -0
  68. package/components/Star.svelte +2 -2
  69. package/components/SuperadminSettings.svelte +9 -38
  70. package/components/TableSimple.svelte +1 -1
  71. package/components/TestJobLoader.svelte +20 -8
  72. package/components/ToggleHubWorkspace.svelte +16 -0
  73. package/components/ToggleHubWorkspace.svelte.d.ts +16 -0
  74. package/components/Tooltip.svelte.d.ts +1 -1
  75. package/components/VariableEditor.svelte +22 -9
  76. package/components/apps/CreateApp.svelte +5 -2
  77. package/components/apps/CreateApp.svelte.d.ts +1 -1
  78. package/components/apps/components/DisplayComponent.svelte +7 -14
  79. package/components/apps/components/DisplayComponent.svelte.d.ts +3 -2
  80. package/components/apps/components/buttons/AppButton.svelte +34 -27
  81. package/components/apps/components/buttons/AppButton.svelte.d.ts +6 -6
  82. package/components/apps/components/dataDisplay/AppBarChart.svelte +33 -9
  83. package/components/apps/components/dataDisplay/AppBarChart.svelte.d.ts +3 -5
  84. package/components/apps/components/dataDisplay/AppPieChart.svelte +33 -12
  85. package/components/apps/components/dataDisplay/AppPieChart.svelte.d.ts +3 -5
  86. package/components/apps/components/dataDisplay/AppTable.svelte +27 -30
  87. package/components/apps/components/dataDisplay/AppTable.svelte.d.ts +4 -8
  88. package/components/apps/components/dataDisplay/AppText.svelte +16 -9
  89. package/components/apps/components/dataDisplay/AppText.svelte.d.ts +3 -2
  90. package/components/apps/components/dataDisplay/app.md +49 -0
  91. package/components/apps/components/form/AppForm.svelte +50 -0
  92. package/components/apps/components/form/AppForm.svelte.d.ts +25 -0
  93. package/components/apps/components/helpers/AlignWrapper.svelte +2 -1
  94. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +1 -0
  95. package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  96. package/components/apps/components/helpers/DebouncedInput.svelte.d.ts +2 -1
  97. package/components/apps/components/helpers/InputValue.svelte +15 -6
  98. package/components/apps/components/helpers/InputValue.svelte.d.ts +2 -2
  99. package/components/apps/components/helpers/NonRunnableComponent.svelte +20 -0
  100. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +21 -0
  101. package/components/apps/components/helpers/RunnableComponent.svelte +36 -30
  102. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +6 -7
  103. package/components/apps/components/helpers/RunnableWrapper.svelte +32 -0
  104. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +26 -0
  105. package/components/apps/components/numberInputs/AppNumberInput.svelte +36 -0
  106. package/components/apps/components/numberInputs/AppNumberInput.svelte.d.ts +20 -0
  107. package/components/apps/components/selectInputs/AppCheckbox.svelte +4 -2
  108. package/components/apps/components/selectInputs/AppCheckbox.svelte.d.ts +2 -2
  109. package/components/apps/components/textInputs/AppTextInput.svelte +21 -0
  110. package/components/apps/components/textInputs/AppTextInput.svelte.d.ts +20 -0
  111. package/components/apps/editor/AppEditor.svelte +66 -55
  112. package/components/apps/editor/AppEditorHeader.svelte +4 -4
  113. package/components/apps/editor/AppPreview.svelte +42 -0
  114. package/components/apps/editor/AppPreview.svelte.d.ts +17 -0
  115. package/components/apps/editor/ComponentEditor.svelte +41 -20
  116. package/components/apps/editor/ComponentEditor.svelte.d.ts +2 -0
  117. package/components/apps/editor/ComponentHeader.svelte +28 -0
  118. package/components/apps/editor/ComponentHeader.svelte.d.ts +20 -0
  119. package/components/apps/editor/GridEditor.svelte +54 -5
  120. package/components/apps/editor/GridEditor.svelte.d.ts +1 -1
  121. package/components/apps/editor/RecomputeAllComponents.svelte +28 -0
  122. package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +14 -0
  123. package/components/apps/editor/componentsPanel/ComponentList.svelte +94 -26
  124. package/components/apps/editor/componentsPanel/ComponentList.svelte.d.ts +1 -1
  125. package/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +2 -6
  126. package/components/apps/editor/componentsPanel/componentDefaultProps.js +1 -5
  127. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
  128. package/components/apps/editor/componentsPanel/componentStaticValues.js +3 -1
  129. package/components/apps/editor/componentsPanel/data.js +191 -76
  130. package/components/apps/editor/contextPanel/ContextPanel.svelte +56 -48
  131. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +67 -0
  132. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +55 -0
  133. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +154 -129
  134. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte +70 -0
  135. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte.d.ts +17 -0
  136. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +6 -6
  137. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  138. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +55 -87
  139. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +3 -4
  140. package/components/apps/editor/settingsPanel/PickFlow.svelte +3 -2
  141. package/components/apps/editor/settingsPanel/PickFlow.svelte.d.ts +1 -1
  142. package/components/apps/editor/settingsPanel/PickInlineScript.svelte +3 -3
  143. package/components/apps/editor/settingsPanel/Recompute.svelte +46 -0
  144. package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +17 -0
  145. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte +31 -14
  146. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte.d.ts +3 -3
  147. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +17 -0
  148. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +19 -0
  149. package/components/apps/editor/settingsPanel/TableActionLabel.svelte +10 -0
  150. package/components/apps/editor/settingsPanel/TableActionLabel.svelte.d.ts +17 -0
  151. package/components/apps/editor/settingsPanel/TableActions.svelte +13 -9
  152. package/components/apps/editor/settingsPanel/UserInputEditor.svelte.d.ts +1 -1
  153. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +3 -2
  154. package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +1 -0
  155. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +53 -0
  156. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +21 -0
  157. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +98 -0
  158. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +18 -0
  159. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +81 -0
  160. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte.d.ts +20 -0
  161. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +81 -0
  162. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte.d.ts +20 -0
  163. package/components/apps/inputType.d.ts +62 -0
  164. package/components/apps/inputType.js +1 -0
  165. package/components/apps/rx.d.ts +4 -4
  166. package/components/apps/rx.js +16 -4
  167. package/components/apps/types.d.ts +20 -54
  168. package/components/apps/utils.d.ts +11 -34
  169. package/components/apps/utils.js +54 -18
  170. package/components/common/alert/Alert.svelte +2 -1
  171. package/components/common/alert/Alert.svelte.d.ts +1 -0
  172. package/components/common/button/Button.svelte +1 -1
  173. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +1 -1
  174. package/components/common/drawer/DrawerContent.svelte +23 -22
  175. package/components/common/drawer/DrawerContent.svelte.d.ts +1 -3
  176. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  177. package/components/common/languageIcons/LanguageIcon.svelte +4 -2
  178. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
  179. package/components/common/menu/Menu.svelte +0 -1
  180. package/components/common/menu/MenuItem.svelte.d.ts +6 -2
  181. package/components/common/popup/Popup.svelte +0 -13
  182. package/components/common/popup/Popup.svelte.d.ts +0 -4
  183. package/components/common/table/AppRow.svelte +42 -26
  184. package/components/common/table/AppRow.svelte.d.ts +1 -1
  185. package/components/common/table/FlowRow.svelte +54 -49
  186. package/components/common/table/LanguageBadge.svelte +1 -1
  187. package/components/common/table/Row.svelte +27 -16
  188. package/components/common/table/Row.svelte.d.ts +2 -1
  189. package/components/common/table/RowIcon.svelte +13 -8
  190. package/components/common/table/ScriptRow.svelte +65 -57
  191. package/components/common/table/Table.svelte.d.ts +6 -2
  192. package/components/flows/CreateActionsFlow.svelte +14 -41
  193. package/components/flows/CreateActionsFlow.svelte.d.ts +1 -1
  194. package/components/flows/common/FlowCardHeader.svelte +7 -8
  195. package/components/flows/content/BranchPredicateEditor.svelte +30 -0
  196. package/components/flows/content/BranchPredicateEditor.svelte.d.ts +23 -0
  197. package/components/flows/content/CapturePayload.svelte +12 -8
  198. package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +1 -1
  199. package/components/flows/content/FlowBranchAllWrapper.svelte +2 -2
  200. package/components/flows/content/FlowBranchOneWrapper.svelte +4 -36
  201. package/components/flows/content/FlowBranchesAllWrapper.svelte +91 -0
  202. package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +18 -0
  203. package/components/flows/content/FlowBranchesOneWrapper.svelte +88 -0
  204. package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +18 -0
  205. package/components/flows/content/FlowFailureModule.svelte.d.ts +1 -1
  206. package/components/flows/content/FlowInput.svelte +1 -2
  207. package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  208. package/components/flows/content/FlowInputs.svelte +28 -26
  209. package/components/flows/content/FlowInputsFlow.svelte +101 -0
  210. package/components/flows/content/FlowInputsFlow.svelte.d.ts +20 -0
  211. package/components/flows/content/FlowLoop.svelte +10 -3
  212. package/components/flows/content/FlowModuleComponent.svelte +46 -35
  213. package/components/flows/content/FlowModuleEarlyStop.svelte +4 -3
  214. package/components/flows/content/FlowModuleHeader.svelte +22 -21
  215. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  216. package/components/flows/content/FlowModuleSleep.svelte +69 -0
  217. package/components/flows/content/FlowModuleSleep.svelte.d.ts +18 -0
  218. package/components/flows/content/FlowModuleSuspend.svelte +5 -63
  219. package/components/flows/content/FlowModuleSuspend.svelte.d.ts +0 -1
  220. package/components/flows/content/FlowModuleWrapper.svelte +59 -35
  221. package/components/flows/content/FlowPathViewer.svelte +20 -0
  222. package/components/flows/content/FlowPathViewer.svelte.d.ts +17 -0
  223. package/components/flows/content/FlowSchedules.svelte.d.ts +1 -1
  224. package/components/flows/content/FlowSettings.svelte +11 -13
  225. package/components/flows/flowState.js +2 -2
  226. package/components/flows/flowStateUtils.d.ts +7 -3
  227. package/components/flows/flowStateUtils.js +29 -8
  228. package/components/flows/header/FlowImportExportMenu.svelte.d.ts +1 -1
  229. package/components/flows/header/FlowPreviewButtons.svelte +17 -11
  230. package/components/flows/header/FlowPreviewButtons.svelte.d.ts +1 -1
  231. package/components/flows/map/FlowErrorHandlerItem.svelte +5 -5
  232. package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -1
  233. package/components/flows/map/FlowInputsItem.svelte.d.ts +1 -1
  234. package/components/flows/map/FlowModuleSchemaItem.svelte +30 -11
  235. package/components/flows/map/FlowModuleSchemaMap.svelte +26 -20
  236. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  237. package/components/flows/map/FlowSettingsItem.svelte +1 -1
  238. package/components/flows/map/FlowSettingsItem.svelte.d.ts +1 -1
  239. package/components/flows/map/InsertModuleButton.svelte +20 -4
  240. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -1
  241. package/components/flows/map/MapItem.svelte +11 -5
  242. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  243. package/components/flows/pickers/PickHubFlow.svelte +72 -0
  244. package/components/flows/pickers/PickHubFlow.svelte.d.ts +20 -0
  245. package/components/flows/pickers/PickHubScript.svelte +65 -56
  246. package/components/flows/pickers/PickHubScript.svelte.d.ts +3 -1
  247. package/components/flows/pickers/PickScript.svelte +2 -2
  248. package/components/flows/pickers/WorkspaceScriptPicker.svelte +79 -19
  249. package/components/flows/pickers/WorkspaceScriptPicker.svelte.d.ts +5 -1
  250. package/components/flows/previousResults.d.ts +1 -0
  251. package/components/flows/previousResults.js +2 -1
  252. package/components/flows/propPicker/PropPickerWrapper.svelte +9 -1
  253. package/components/flows/utils.d.ts +0 -1
  254. package/components/flows/utils.js +6 -6
  255. package/components/graph/FlowGraph.svelte +121 -55
  256. package/components/graph/FlowGraph.svelte.d.ts +3 -2
  257. package/components/graph/model.d.ts +46 -1
  258. package/components/home/ItemsList.svelte +265 -0
  259. package/components/home/ItemsList.svelte.d.ts +16 -0
  260. package/components/home/ListFilters.svelte +37 -0
  261. package/components/home/ListFilters.svelte.d.ts +18 -0
  262. package/components/home/NoItemFound.svelte +6 -0
  263. package/components/home/NoItemFound.svelte.d.ts +23 -0
  264. package/components/icons/DatadogIcon.svelte +48 -0
  265. package/components/icons/DatadogIcon.svelte.d.ts +17 -0
  266. package/components/icons/FunkwhaleIcon.svelte +90 -0
  267. package/components/icons/FunkwhaleIcon.svelte.d.ts +17 -0
  268. package/components/icons/GdocsIcon.svelte +9 -0
  269. package/components/icons/GdocsIcon.svelte.d.ts +17 -0
  270. package/components/icons/HubspotIcon.svelte +9 -0
  271. package/components/icons/HubspotIcon.svelte.d.ts +17 -0
  272. package/components/icons/LinkedinIcon.svelte +9 -0
  273. package/components/icons/LinkedinIcon.svelte.d.ts +17 -0
  274. package/components/icons/Mail.svelte +9 -53
  275. package/components/icons/Mysql.svelte +8 -8
  276. package/components/icons/NextcloudIcon.svelte +9 -0
  277. package/components/icons/NextcloudIcon.svelte.d.ts +17 -0
  278. package/components/icons/QRCodeIcon.svelte +5 -0
  279. package/components/icons/QRCodeIcon.svelte.d.ts +16 -0
  280. package/components/icons/SendflakeIcon.svelte +15 -0
  281. package/components/icons/SendflakeIcon.svelte.d.ts +17 -0
  282. package/components/icons/StripeIcon.svelte +9 -0
  283. package/components/icons/StripeIcon.svelte.d.ts +17 -0
  284. package/components/icons/TelegramIcon.svelte +9 -0
  285. package/components/icons/TelegramIcon.svelte.d.ts +17 -0
  286. package/components/icons/WindmillIcon.svelte +3 -3
  287. package/components/icons/index.d.ts +23 -1
  288. package/components/icons/index.js +23 -1
  289. package/components/jobs/JobDetail.svelte +2 -2
  290. package/components/preview/FlowPreviewStatus.svelte +12 -23
  291. package/components/propertyPicker/PropPicker.svelte +16 -0
  292. package/components/propertyPicker/PropPickerResult.svelte +2 -3
  293. package/components/propertyPicker/WarningMessage.svelte.d.ts +6 -2
  294. package/components/scriptEditor/LogPanel.svelte +11 -4
  295. package/components/scripts/CreateActionsScript.svelte +13 -59
  296. package/components/scripts/CreateActionsScript.svelte.d.ts +1 -1
  297. package/components/sidebar/FavoriteMenu.svelte +52 -0
  298. package/components/sidebar/FavoriteMenu.svelte.d.ts +21 -0
  299. package/components/sidebar/SidebarContent.svelte +10 -19
  300. package/components/sidebar/SidebarContent.svelte.d.ts +0 -4
  301. package/components/sidebar/UserMenu.svelte +21 -4
  302. package/components/sidebar/WorkspaceMenu.svelte +6 -7
  303. package/editorUtils.d.ts +2 -0
  304. package/editorUtils.js +3 -1
  305. package/gen/core/OpenAPI.js +1 -1
  306. package/gen/index.d.ts +1 -0
  307. package/gen/models/CompletedJob.d.ts +1 -0
  308. package/gen/models/CreateWorkspace.d.ts +0 -1
  309. package/gen/models/EditWorkspaceUser.d.ts +2 -0
  310. package/gen/models/FlowModuleValue.d.ts +2 -1
  311. package/gen/models/FlowStatus.d.ts +3 -1
  312. package/gen/models/FlowStatusModule.d.ts +1 -1
  313. package/gen/models/FlowStatusModule.js +1 -1
  314. package/gen/models/Identity.d.ts +1 -0
  315. package/gen/models/ListableResource.d.ts +1 -0
  316. package/gen/models/ListableVariable.d.ts +1 -0
  317. package/gen/models/PathFlow.d.ts +6 -0
  318. package/gen/models/PathFlow.js +4 -0
  319. package/gen/models/PathScript.d.ts +1 -0
  320. package/gen/models/QueuedJob.d.ts +1 -0
  321. package/gen/models/Schedule.d.ts +2 -0
  322. package/gen/models/Usage.d.ts +1 -3
  323. package/gen/models/WorkspaceInvite.d.ts +1 -0
  324. package/gen/services/AppService.d.ts +7 -1
  325. package/gen/services/AppService.js +2 -1
  326. package/gen/services/JobService.d.ts +35 -5
  327. package/gen/services/JobService.js +14 -5
  328. package/gen/services/OauthService.d.ts +1 -1
  329. package/gen/services/ResourceService.d.ts +6 -2
  330. package/gen/services/ResourceService.js +2 -1
  331. package/gen/services/UserService.d.ts +6 -0
  332. package/gen/services/UserService.js +11 -0
  333. package/gen/services/WorkspaceService.d.ts +35 -0
  334. package/gen/services/WorkspaceService.js +41 -0
  335. package/package.json +461 -422
  336. package/script_helpers.d.ts +2 -1
  337. package/script_helpers.js +20 -3
  338. package/scripts.d.ts +1 -0
  339. package/scripts.js +8 -1
  340. package/stores.d.ts +11 -2
  341. package/stores.js +24 -6
  342. package/utils.d.ts +3 -1
  343. package/utils.js +11 -4
  344. package/components/ButtonAndDropdown.svelte +0 -25
  345. package/components/ButtonAndDropdown.svelte.d.ts +0 -23
  346. package/components/apps/components/index.d.ts +0 -22
  347. package/components/apps/components/index.js +0 -42
  348. package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte +0 -64
  349. package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte.d.ts +0 -17
  350. package/components/flows/content/FlowBranchesWrapper.svelte +0 -140
  351. package/components/flows/content/FlowBranchesWrapper.svelte.d.ts +0 -19
@@ -6,28 +6,31 @@ import TestJobLoader from '../../../TestJobLoader.svelte';
6
6
  import { AppService } from '../../../../gen';
7
7
  import { workspaceStore } from '../../../../stores';
8
8
  import { faRefresh } from '@fortawesome/free-solid-svg-icons';
9
- import { getContext } from 'svelte';
9
+ import { getContext, onMount } from 'svelte';
10
10
  import { loadSchema, schemaToInputsSpec } from '../../utils';
11
11
  import InputValue from './InputValue.svelte';
12
12
  // Component props
13
13
  export let id;
14
14
  export let inputs;
15
- export let path = undefined;
16
- export let runType = undefined;
17
- export let inlineScriptName = undefined;
15
+ export let runnable;
18
16
  export let extraQueryParams = {};
19
17
  export let autoRefresh = true;
20
18
  export let result = undefined;
21
- const { app, worldStore } = getContext('AppEditorContext');
19
+ export let forceSchemaDisplay = false;
20
+ const { app, worldStore, runnableComponents } = getContext('AppEditorContext');
21
+ onMount(() => {
22
+ $runnableComponents[id] = async () => {
23
+ await executeComponent();
24
+ };
25
+ });
22
26
  let pagePath = $page.params.path;
23
27
  let args = {};
24
28
  let schema = undefined;
25
29
  let testIsLoading = false;
26
30
  let runnableInputValues = {};
27
31
  $: mergedArgs = { ...args, ...extraQueryParams, ...runnableInputValues };
28
- // TODO: Review
29
32
  function setStaticInputsToArgs() {
30
- Object.entries(inputs).forEach(([key, value]) => {
33
+ Object.entries(inputs ?? {}).forEach(([key, value]) => {
31
34
  if (value.type === 'static') {
32
35
  args[key] = value.value;
33
36
  }
@@ -35,18 +38,18 @@ function setStaticInputsToArgs() {
35
38
  args = args;
36
39
  }
37
40
  $: inputs && setStaticInputsToArgs();
38
- function argMergedArgsValid(mergedArgs) {
39
- if (Object.keys(inputs).filter((k) => inputs[k].type !== 'user').length !==
41
+ function argMergedArgsValid(mergedArgs, testJobLoader) {
42
+ if (Object.keys(inputs ?? {}).filter((k) => inputs[k].type !== 'user').length !==
40
43
  Object.keys(runnableInputValues).length) {
41
44
  return false;
42
45
  }
43
46
  const areAllArgsValid = Object.values(mergedArgs).every((arg) => arg !== undefined && arg !== null);
44
- if (areAllArgsValid && autoRefresh) {
47
+ if (areAllArgsValid && autoRefresh && testJobLoader) {
45
48
  executeComponent();
46
49
  }
47
50
  return areAllArgsValid;
48
51
  }
49
- $: isValid = argMergedArgsValid(mergedArgs);
52
+ $: isValid = argMergedArgsValid(mergedArgs, testJobLoader);
50
53
  // Test job internal state
51
54
  let testJob = undefined;
52
55
  let testJobLoader = undefined;
@@ -55,17 +58,19 @@ async function loadSchemaFromTriggerable(workspace, path, runType) {
55
58
  schema = await loadSchema(workspace, path, runType);
56
59
  }
57
60
  // Only loads the schema
58
- $: if ($workspaceStore && path && runType && !schema) {
61
+ $: if ($workspaceStore && runnable?.type === 'runnableByPath' && !schema) {
59
62
  // Remote schema needs to be loaded
63
+ const { path, runType } = runnable;
60
64
  loadSchemaFromTriggerable($workspaceStore, path, runType);
61
65
  }
62
- else if (inlineScriptName && $app.inlineScripts[inlineScriptName] && !schema) {
66
+ else if (runnable?.type === 'runnableByName' && !schema) {
67
+ const { inlineScriptName } = runnable;
63
68
  // Inline scripts directly provide the schema
64
69
  schema = $app.inlineScripts[inlineScriptName].schema;
65
70
  }
66
71
  // When the schema is loaded, we need to update the inputs spec
67
72
  // in order to render the inputs the component panel
68
- $: if (schema && Object.keys(schema.properties).length !== Object.keys(inputs).length) {
73
+ $: if (schema && Object.keys(schema.properties).length !== Object.keys(inputs ?? {}).length) {
69
74
  let schemaWithoutExtraQueries = JSON.parse(JSON.stringify(schema));
70
75
  // Remove extra query params from the schema, which are not directly configurable by the user
71
76
  Object.keys(extraQueryParams).forEach((key) => {
@@ -77,12 +82,12 @@ let schemaStripped = undefined;
77
82
  function stripSchema(schema, inputs) {
78
83
  schemaStripped = JSON.parse(JSON.stringify(schema));
79
84
  // Remove hidden static inputs
80
- Object.keys(inputs).forEach((key) => {
85
+ Object.keys(inputs ?? {}).forEach((key) => {
81
86
  const input = inputs[key];
82
87
  if (input.type === 'static' && !input.visible && schemaStripped !== undefined) {
83
88
  delete schemaStripped.properties[key];
84
89
  }
85
- if (input.type === 'output' && schemaStripped !== undefined) {
90
+ if (input.type === 'connected' && schemaStripped !== undefined) {
86
91
  delete schemaStripped.properties[key];
87
92
  }
88
93
  });
@@ -94,7 +99,7 @@ function stripSchema(schema, inputs) {
94
99
  });
95
100
  }
96
101
  $: schema && inputs && stripSchema(schema, inputs);
97
- $: disabledArgs = Object.keys(inputs).reduce((disabledArgsAccumulator, inputName) => {
102
+ $: disabledArgs = Object.keys(inputs ?? {}).reduce((disabledArgsAccumulator, inputName) => {
98
103
  if (inputs[inputName].type === 'static') {
99
104
  disabledArgsAccumulator = [...disabledArgsAccumulator, inputName];
100
105
  }
@@ -104,20 +109,22 @@ async function executeComponent() {
104
109
  if (!schema) {
105
110
  return;
106
111
  }
107
- outputs?.loading.set(true);
112
+ outputs?.loading?.set(true);
108
113
  await testJobLoader?.abstractRun(() => {
109
114
  const requestBody = {
110
115
  args: mergedArgs,
111
116
  force_viewer_static_fields: {}
112
117
  };
113
- if (inlineScriptName && $app.inlineScripts[inlineScriptName]) {
118
+ if (runnable?.type === 'runnableByName') {
119
+ const { inlineScriptName } = runnable;
114
120
  requestBody['raw_code'] = {
115
121
  content: $app.inlineScripts[inlineScriptName].content,
116
122
  language: $app.inlineScripts[inlineScriptName].language,
117
123
  path: $app.inlineScripts[inlineScriptName].path
118
124
  };
119
125
  }
120
- else if (path && runType) {
126
+ else if (runnable?.type === 'runnableByPath') {
127
+ const { path, runType } = runnable;
121
128
  requestBody['path'] = `${runType}/${path}`;
122
129
  }
123
130
  return AppService.executeComponent({
@@ -127,22 +134,21 @@ async function executeComponent() {
127
134
  });
128
135
  });
129
136
  }
130
- export function runComponent() {
131
- executeComponent();
137
+ export async function runComponent() {
138
+ await executeComponent();
132
139
  }
133
140
  </script>
134
141
 
135
- {#each Object.keys(inputs) as key}
142
+ {#each Object.keys(inputs ?? {}) as key}
136
143
  <InputValue input={inputs[key]} bind:value={runnableInputValues[key]} />
137
144
  {/each}
138
145
 
139
146
  <TestJobLoader
140
147
  on:done={() => {
141
- if (testJob) {
142
- outputs.result.set(testJob?.result)
143
- outputs?.loading.set(false)
144
-
145
- result = testJob?.result
148
+ if (testJob && outputs) {
149
+ outputs.result?.set(testJob?.result)
150
+ outputs.loading?.set(false)
151
+ result = testJob.result
146
152
  }
147
153
  }}
148
154
  bind:isLoading={testIsLoading}
@@ -150,11 +156,11 @@ export function runComponent() {
150
156
  bind:this={testJobLoader}
151
157
  />
152
158
 
153
- {#if schemaStripped !== undefined && autoRefresh}
159
+ {#if schemaStripped !== undefined && (autoRefresh || forceSchemaDisplay)}
154
160
  <SchemaForm schema={schemaStripped} bind:args {isValid} {disabledArgs} shouldHideNoInputs />
155
161
  {/if}
156
162
 
157
- {#if inlineScriptName === undefined && path === undefined && runType === undefined && autoRefresh}
163
+ {#if !runnable}
158
164
  <Alert type="warning" size="xs" class="mt-2" title="Missing runnable">
159
165
  Please select a runnable
160
166
  </Alert>
@@ -1,16 +1,15 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { InputsSpec } from '../../types';
2
+ import type { AppInputs, Runnable } from '../../inputType';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  id: string;
6
- inputs: InputsSpec;
7
- path?: string | undefined;
8
- runType?: 'script' | 'flow' | undefined;
9
- inlineScriptName?: string | undefined;
6
+ inputs: AppInputs;
7
+ runnable: Runnable;
10
8
  extraQueryParams?: Record<string, any> | undefined;
11
9
  autoRefresh?: boolean | undefined;
12
10
  result?: any;
13
- runComponent?: (() => void) | undefined;
11
+ forceSchemaDisplay?: boolean | undefined;
12
+ runComponent?: (() => Promise<void>) | undefined;
14
13
  };
15
14
  events: {
16
15
  [evt: string]: CustomEvent<any>;
@@ -23,6 +22,6 @@ export type RunnableComponentProps = typeof __propDef.props;
23
22
  export type RunnableComponentEvents = typeof __propDef.events;
24
23
  export type RunnableComponentSlots = typeof __propDef.slots;
25
24
  export default class RunnableComponent extends SvelteComponentTyped<RunnableComponentProps, RunnableComponentEvents, RunnableComponentSlots> {
26
- get runComponent(): () => void;
25
+ get runComponent(): () => Promise<void>;
27
26
  }
28
27
  export {};
@@ -0,0 +1,32 @@
1
+ <script>import NonRunnableComponent from './NonRunnableComponent.svelte';
2
+ import RunnableComponent from './RunnableComponent.svelte';
3
+ export let componentInput;
4
+ export let id;
5
+ export let result = undefined;
6
+ // Optional props
7
+ export let extraQueryParams = {};
8
+ export let autoRefresh = true;
9
+ export let runnableComponent = undefined;
10
+ export let forceSchemaDisplay = false;
11
+ </script>
12
+
13
+ {#if componentInput === undefined}
14
+ <slot />
15
+ {:else if componentInput.type === 'runnable' && componentInput.runnable}
16
+ <RunnableComponent
17
+ bind:this={runnableComponent}
18
+ bind:inputs={componentInput.fields}
19
+ bind:result
20
+ runnable={componentInput.runnable}
21
+ {autoRefresh}
22
+ {id}
23
+ {extraQueryParams}
24
+ {forceSchemaDisplay}
25
+ >
26
+ <slot />
27
+ </RunnableComponent>
28
+ {:else}
29
+ <NonRunnableComponent bind:result {id} {componentInput}>
30
+ <slot />
31
+ </NonRunnableComponent>
32
+ {/if}
@@ -0,0 +1,26 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppInput } from '../../inputType';
3
+ import RunnableComponent from './RunnableComponent.svelte';
4
+ declare const __propDef: {
5
+ props: {
6
+ componentInput: AppInput | undefined;
7
+ id: string;
8
+ result?: any;
9
+ extraQueryParams?: Record<string, any> | undefined;
10
+ autoRefresh?: boolean | undefined;
11
+ runnableComponent?: RunnableComponent | undefined;
12
+ forceSchemaDisplay?: boolean | undefined;
13
+ };
14
+ events: {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {
18
+ default: {};
19
+ };
20
+ };
21
+ export type RunnableWrapperProps = typeof __propDef.props;
22
+ export type RunnableWrapperEvents = typeof __propDef.events;
23
+ export type RunnableWrapperSlots = typeof __propDef.slots;
24
+ export default class RunnableWrapper extends SvelteComponentTyped<RunnableWrapperProps, RunnableWrapperEvents, RunnableWrapperSlots> {
25
+ }
26
+ export {};
@@ -0,0 +1,36 @@
1
+ <script>import { getContext } from 'svelte';
2
+ import DebouncedInput from '../helpers/DebouncedInput.svelte';
3
+ import InputValue from '../helpers/InputValue.svelte';
4
+ export let id;
5
+ export let configuration;
6
+ export const staticOutputs = ['result'];
7
+ const { worldStore } = getContext('AppEditorContext');
8
+ let value;
9
+ let labelValue = 'Title';
10
+ $: outputs = $worldStore?.outputsById[id];
11
+ $: if (value || !value) {
12
+ // Disallow 'e' character in numbers
13
+ // if(value && value.toString().includes('e')) {
14
+ // value = +value.toString().replaceAll('e', '')
15
+ // }
16
+ const num = isNaN(+value) ? null : +value;
17
+ outputs?.result.set(num);
18
+ }
19
+ </script>
20
+
21
+ <InputValue input={configuration.label} bind:value={labelValue} />
22
+
23
+ <!-- svelte-ignore a11y-label-has-associated-control -->
24
+ <label>
25
+ <div>
26
+ {labelValue}
27
+ </div>
28
+ <DebouncedInput
29
+ bind:value={value}
30
+ debounceDelay={300}
31
+ type="number"
32
+ inputmode="numeric"
33
+ pattern="\d*"
34
+ placeholder="Type..."
35
+ />
36
+ </label>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppInput } from '../../inputType';
3
+ declare const __propDef: {
4
+ props: {
5
+ id: string;
6
+ configuration: Record<string, AppInput>;
7
+ staticOutputs?: string[] | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type AppNumberInputProps = typeof __propDef.props;
15
+ export type AppNumberInputEvents = typeof __propDef.events;
16
+ export type AppNumberInputSlots = typeof __propDef.slots;
17
+ export default class AppNumberInput extends SvelteComponentTyped<AppNumberInputProps, AppNumberInputEvents, AppNumberInputSlots> {
18
+ get staticOutputs(): string[];
19
+ }
20
+ export {};
@@ -3,17 +3,19 @@ import { getContext } from 'svelte';
3
3
  import AlignWrapper from '../helpers/AlignWrapper.svelte';
4
4
  import InputValue from '../helpers/InputValue.svelte';
5
5
  export let id;
6
- export let componentInputs;
6
+ export let configuration;
7
7
  export let horizontalAlignment = undefined;
8
8
  export let verticalAlignment = undefined;
9
9
  const { worldStore } = getContext('AppEditorContext');
10
10
  export const staticOutputs = ['result'];
11
11
  let labelValue = 'Default label';
12
12
  let value = false;
13
+ // As the checkbox is a special case and has no input
14
+ // we need to manually set the output
13
15
  $: outputs = $worldStore?.outputsById[id];
14
16
  </script>
15
17
 
16
- <InputValue input={componentInputs.label} bind:value={labelValue} />
18
+ <InputValue input={configuration.label} bind:value={labelValue} />
17
19
 
18
20
  <AlignWrapper {horizontalAlignment} {verticalAlignment}>
19
21
  <Toggle
@@ -1,9 +1,9 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { InputsSpec } from '../../types';
2
+ import type { AppInput } from '../../inputType';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  id: string;
6
- componentInputs: InputsSpec;
6
+ configuration: Record<string, AppInput>;
7
7
  horizontalAlignment?: 'left' | 'center' | 'right' | undefined;
8
8
  verticalAlignment?: 'top' | 'center' | 'bottom' | undefined;
9
9
  staticOutputs?: string[] | undefined;
@@ -0,0 +1,21 @@
1
+ <script>import { getContext } from 'svelte';
2
+ import InputValue from '../helpers/InputValue.svelte';
3
+ export let id;
4
+ export let configuration;
5
+ export const staticOutputs = ['result'];
6
+ const { worldStore } = getContext('AppEditorContext');
7
+ let value;
8
+ let labelValue = 'Title';
9
+ $: outputs = $worldStore?.outputsById[id];
10
+ $: (value || !value) && outputs?.result.set(value || '');
11
+ </script>
12
+
13
+ <InputValue input={configuration.label} bind:value={labelValue} />
14
+
15
+ <!-- svelte-ignore a11y-label-has-associated-control -->
16
+ <label>
17
+ <div>
18
+ {labelValue}
19
+ </div>
20
+ <input type="text" bind:value placeholder="Type..." />
21
+ </label>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppInput } from '../../inputType';
3
+ declare const __propDef: {
4
+ props: {
5
+ id: string;
6
+ configuration: Record<string, AppInput>;
7
+ staticOutputs?: string[] | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type AppTextInputProps = typeof __propDef.props;
15
+ export type AppTextInputEvents = typeof __propDef.events;
16
+ export type AppTextInputSlots = typeof __propDef.slots;
17
+ export default class AppTextInput extends SvelteComponentTyped<AppTextInputProps, AppTextInputEvents, AppTextInputSlots> {
18
+ get staticOutputs(): string[];
19
+ }
20
+ export {};
@@ -14,6 +14,8 @@ import { faPlus, faSliders } from '@fortawesome/free-solid-svg-icons';
14
14
  import ComponentPanel from './settingsPanel/ComponentPanel.svelte';
15
15
  import ContextPanel from './contextPanel/ContextPanel.svelte';
16
16
  import { classNames } from '../../../utils';
17
+ import AppPreview from './AppPreview.svelte';
18
+ import { userStore } from '../../../stores';
17
19
  export let app;
18
20
  export let path;
19
21
  export let initialMode = 'dnd';
@@ -27,6 +29,7 @@ const connectingInput = writable({
27
29
  opened: false,
28
30
  input: undefined
29
31
  });
32
+ const runnableComponents = writable({});
30
33
  setContext('AppEditorContext', {
31
34
  worldStore,
32
35
  staticOutputs,
@@ -34,72 +37,80 @@ setContext('AppEditorContext', {
34
37
  selectedComponent,
35
38
  mode,
36
39
  connectingInput,
37
- breakpoint
40
+ breakpoint,
41
+ runnableComponents
38
42
  });
39
- function clearSelectionOnPreview() {
40
- if ($mode === 'preview') {
41
- $selectedComponent = undefined;
42
- }
43
- }
44
43
  let mounted = false;
45
44
  onMount(() => {
46
45
  mounted = true;
47
46
  });
48
47
  $: mounted && ($worldStore = buildWorld($staticOutputs));
49
- $: $mode && $selectedComponent && clearSelectionOnPreview();
50
48
  $: selectedTab = $selectedComponent ? 'settings' : 'insert';
51
49
  $: previewing = $mode === 'preview';
52
50
  $: width = $breakpoint === 'sm' ? 'w-[640px]' : 'w-full ';
53
51
  </script>
54
52
 
55
- {#if initialMode !== 'preview'}
56
- <AppEditorHeader bind:title={$appStore.title} bind:mode={$mode} bind:breakpoint={$breakpoint} />
57
- {/if}
53
+ {#if !$userStore?.operator}
54
+ {#if initialMode !== 'preview'}
55
+ <AppEditorHeader bind:title={$appStore.title} bind:mode={$mode} bind:breakpoint={$breakpoint} />
56
+ {/if}
58
57
 
59
- <SplitPanesWrapper class="max-w-full overflow-hidden">
60
- <Pane size={previewing ? 0 : 20} minSize={previewing ? 0 : 20} maxSize={40}>
61
- <ContextPanel appPath={path} />
62
- </Pane>
63
- <Pane size={previewing ? 100 : 60}>
64
- <div class="p-4 bg-gray-100 h-full w-full">
65
- {#if $appStore.grid}
66
- <div class={classNames('mx-auto h-full', width)}>
67
- <GridEditor />
68
- </div>
69
- {/if}
70
- </div>
71
- </Pane>
72
- <Pane size={previewing ? 0 : 25} minSize={previewing ? 0 : 20} maxSize={40}>
73
- <Tabs bind:selected={selectedTab}>
74
- <Tab value="insert" size="xs">
75
- <div class="m-1 flex flex-row gap-2">
76
- <Icon data={faPlus} />
77
- <span>Insert</span>
78
- </div>
79
- </Tab>
80
- <Tab value="settings" size="xs">
81
- <div class="m-1 flex flex-row gap-2">
82
- <Icon data={faSliders} />
83
- <span>Settings</span>
84
- </div>
85
- </Tab>
86
- <svelte:fragment slot="content">
87
- <TabContent value="settings">
88
- {#if $selectedComponent !== undefined}
89
- {#each $appStore.grid as gridItem (gridItem.id)}
90
- {#if gridItem.data.id === $selectedComponent}
91
- <ComponentPanel bind:component={gridItem.data} />
92
- {/if}
93
- {/each}
58
+ {#if previewing}
59
+ <AppPreview app={$appStore} />
60
+ {:else}
61
+ <SplitPanesWrapper class="max-w-full overflow-hidden">
62
+ <Pane size={20} minSize={15} maxSize={40}>
63
+ <ContextPanel appPath={path} />
64
+ </Pane>
65
+ <Pane size={60}>
66
+ <div class="p-4 bg-gray-100 min-h-full w-full relative">
67
+ {#if $appStore.grid}
68
+ <div class={classNames('mx-auto h-full', width)}>
69
+ <GridEditor />
70
+ </div>
94
71
  {/if}
95
- {#if $selectedComponent === undefined}
96
- <div class="p-4 text-sm">No component selected.</div>
72
+ {#if $connectingInput.opened}
73
+ <div
74
+ class="absolute top-0 left-0 w-full h-full bg-black border-2 bg-opacity-25 z-1 flex justify-center items-center"
75
+ />
97
76
  {/if}
98
- </TabContent>
99
- <TabContent value="insert">
100
- <ComponentList />
101
- </TabContent>
102
- </svelte:fragment>
103
- </Tabs>
104
- </Pane>
105
- </SplitPanesWrapper>
77
+ </div>
78
+ </Pane>
79
+ <Pane size={30} minSize={25} maxSize={40}>
80
+ <Tabs bind:selected={selectedTab}>
81
+ <Tab value="insert" size="xs">
82
+ <div class="m-1 flex flex-row gap-2">
83
+ <Icon data={faPlus} />
84
+ <span>Insert</span>
85
+ </div>
86
+ </Tab>
87
+ <Tab value="settings" size="xs">
88
+ <div class="m-1 flex flex-row gap-2">
89
+ <Icon data={faSliders} />
90
+ <span>Settings</span>
91
+ </div>
92
+ </Tab>
93
+ <svelte:fragment slot="content">
94
+ <TabContent value="settings">
95
+ {#if $selectedComponent !== undefined}
96
+ {#each $appStore.grid as gridItem (gridItem.id)}
97
+ {#if gridItem.data.id === $selectedComponent}
98
+ <ComponentPanel bind:component={gridItem.data} />
99
+ {/if}
100
+ {/each}
101
+ {/if}
102
+ {#if $selectedComponent === undefined}
103
+ <div class="p-4 text-sm">No component selected.</div>
104
+ {/if}
105
+ </TabContent>
106
+ <TabContent value="insert">
107
+ <ComponentList />
108
+ </TabContent>
109
+ </svelte:fragment>
110
+ </Tabs>
111
+ </Pane>
112
+ </SplitPanesWrapper>
113
+ {/if}
114
+ {:else}
115
+ App editor not available to operators
116
+ {/if}
@@ -31,10 +31,10 @@ async function save() {
31
31
  }
32
32
  })
33
33
  .then(() => {
34
- sendUserToast('Saved successfully.');
34
+ sendUserToast('Saved');
35
35
  })
36
36
  .catch(() => {
37
- sendUserToast('Error during saving. Please try again later.', true);
37
+ sendUserToast('Error during saving. Please try again later', true);
38
38
  })
39
39
  .finally(() => {
40
40
  loading.save = false;
@@ -44,7 +44,7 @@ async function save() {
44
44
 
45
45
  <div class="border-b flex flex-row justify-between py-1 px-4 items-center">
46
46
  <input class="text-sm w-64" bind:value={title} />
47
- <div class="flex gap-8">
47
+ <div class="flex gap-2">
48
48
  <div>
49
49
  <ToggleButtonGroup bind:selected={mode}>
50
50
  <ToggleButton position="left" value="dnd" startIcon={{ icon: faHand }} size="xs">
@@ -66,7 +66,7 @@ async function save() {
66
66
  </ToggleButtonGroup>
67
67
  </div>
68
68
  </div>
69
- <div class="flex flex-row gap-2">
69
+ <div class="flex flex-row gap-2 w-64 justify-end">
70
70
  <Button color="dark" size="xs" variant="border" startIcon={{ icon: faExternalLink }}>
71
71
  Publish
72
72
  </Button>
@@ -0,0 +1,42 @@
1
+ <script>import { onMount, setContext } from 'svelte';
2
+ import { writable } from 'svelte/store';
3
+ import { buildWorld } from '../rx';
4
+ import GridEditor from './GridEditor.svelte';
5
+ import { classNames } from '../../../utils';
6
+ export let app;
7
+ const appStore = writable(app);
8
+ const worldStore = writable(undefined);
9
+ const staticOutputs = writable({});
10
+ const selectedComponent = writable(undefined);
11
+ const mode = writable('preview');
12
+ const breakpoint = writable('lg');
13
+ const connectingInput = writable({
14
+ opened: false,
15
+ input: undefined
16
+ });
17
+ const runnableComponents = writable({});
18
+ setContext('AppEditorContext', {
19
+ worldStore,
20
+ staticOutputs,
21
+ app: appStore,
22
+ selectedComponent,
23
+ mode,
24
+ connectingInput,
25
+ breakpoint,
26
+ runnableComponents
27
+ });
28
+ let mounted = false;
29
+ onMount(() => {
30
+ mounted = true;
31
+ });
32
+ $: mounted && ($worldStore = buildWorld($staticOutputs));
33
+ $: width = $breakpoint === 'sm' ? 'w-[640px]' : 'w-full ';
34
+ </script>
35
+
36
+ <div class="h-full w-5/6 mx-auto">
37
+ {#if $appStore.grid}
38
+ <div class={classNames('mx-auto h-full', width)}>
39
+ <GridEditor />
40
+ </div>
41
+ {/if}
42
+ </div>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { App } from '../types';
3
+ declare const __propDef: {
4
+ props: {
5
+ app: App;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type AppPreviewProps = typeof __propDef.props;
13
+ export type AppPreviewEvents = typeof __propDef.events;
14
+ export type AppPreviewSlots = typeof __propDef.slots;
15
+ export default class AppPreview extends SvelteComponentTyped<AppPreviewProps, AppPreviewEvents, AppPreviewSlots> {
16
+ }
17
+ export {};