windmill-components 1.623.1 → 1.623.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 (480) hide show
  1. package/package/assets/tokens/tokens.json +11 -1
  2. package/package/ata/apis.js +78 -5
  3. package/package/cancelable-promise-utils.js +4 -2
  4. package/package/components/AddUser.svelte +1 -1
  5. package/package/components/ApiConnectForm.svelte +6 -0
  6. package/package/components/AppConnectDrawer.svelte +1 -0
  7. package/package/components/AppConnectInner.svelte +1 -0
  8. package/package/components/AuthSettings.svelte +3 -1
  9. package/package/components/BedrockCredentialsCheck.svelte +241 -0
  10. package/package/components/BedrockCredentialsCheck.svelte.d.ts +3 -0
  11. package/package/components/CenteredModal.svelte +32 -24
  12. package/package/components/CenteredModal.svelte.d.ts +7 -27
  13. package/package/components/CenteredPage.svelte +6 -2
  14. package/package/components/CenteredPage.svelte.d.ts +3 -0
  15. package/package/components/CompareWorkspaces.svelte +74 -16
  16. package/package/components/ConcurrentJobsChart.svelte +3 -2
  17. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  18. package/package/components/CustomPopover.svelte +20 -23
  19. package/package/components/CustomPopover.svelte.d.ts +14 -39
  20. package/package/components/DBManager.svelte +134 -42
  21. package/package/components/DBManager.svelte.d.ts +13 -2
  22. package/package/components/DBManagerContent.svelte +25 -63
  23. package/package/components/DBManagerContent.svelte.d.ts +38 -4
  24. package/package/components/DBManagerDrawer.svelte +7 -9
  25. package/package/components/DBTable.svelte +1 -1
  26. package/package/components/DBTable.svelte.d.ts +3 -1
  27. package/package/components/DBTableEditor.svelte +234 -178
  28. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  29. package/package/components/DateInput.svelte +29 -35
  30. package/package/components/DateInput.svelte.d.ts +10 -11
  31. package/package/components/DedicatedWorkersSelector.svelte +569 -0
  32. package/package/components/DedicatedWorkersSelector.svelte.d.ts +8 -0
  33. package/package/components/DeployWorkspace.svelte +106 -29
  34. package/package/components/Description.svelte +3 -2
  35. package/package/components/Dev.svelte +36 -2
  36. package/package/components/DiffDrawer.svelte +8 -29
  37. package/package/components/DiffEditor.svelte +32 -2
  38. package/package/components/DisplayResult.svelte +32 -24
  39. package/package/components/DropdownV2.svelte +2 -1
  40. package/package/components/DropdownV2.svelte.d.ts +1 -0
  41. package/package/components/Editor.svelte +71 -26
  42. package/package/components/Editor.svelte.d.ts +3 -0
  43. package/package/components/EditorBar.svelte +1 -1
  44. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  45. package/package/components/FlowBuilder.svelte +17 -11
  46. package/package/components/FlowDiffViewer.svelte +37 -0
  47. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  48. package/package/components/FlowGraphViewer.svelte +5 -2
  49. package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
  50. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  51. package/package/components/FlowPreviewContent.svelte +3 -2
  52. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  53. package/package/components/FlowPreviewResult.svelte +0 -4
  54. package/package/components/FlowRestartButton.svelte +2 -3
  55. package/package/components/FlowRestartButton.svelte.d.ts +3 -0
  56. package/package/components/FlowStatusViewerInner.svelte +55 -35
  57. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  58. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  59. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  60. package/package/components/FlowViewer.svelte +103 -2
  61. package/package/components/FlowViewer.svelte.d.ts +9 -3
  62. package/package/components/ForkWorkspaceBanner.svelte +32 -13
  63. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  64. package/package/components/HistoricInputs.svelte +25 -27
  65. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  66. package/package/components/InfiniteList.svelte +27 -20
  67. package/package/components/InfiniteList.svelte.d.ts +2 -0
  68. package/package/components/InstanceSetting.svelte +38 -0
  69. package/package/components/InviteUser.svelte +16 -42
  70. package/package/components/InviteUser.svelte.d.ts +4 -18
  71. package/package/components/JobLoader.svelte.d.ts +1 -1
  72. package/package/components/JobOtelTraces.svelte +287 -0
  73. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  74. package/package/components/JsonInputs.svelte +6 -8
  75. package/package/components/JsonInputs.svelte.d.ts +7 -8
  76. package/package/components/LogViewer.svelte +91 -33
  77. package/package/components/Login.svelte +27 -0
  78. package/package/components/ManualPopover.svelte +5 -6
  79. package/package/components/ManualPopover.svelte.d.ts +9 -35
  80. package/package/components/MemoryFootprintViewer.svelte +2 -6
  81. package/package/components/ModulePreview.svelte +23 -21
  82. package/package/components/ModulePreview.svelte.d.ts +1 -0
  83. package/package/components/NextcloudSetting.svelte +1 -1
  84. package/package/components/OAuthSetting.svelte +1 -0
  85. package/package/components/Path.svelte +2 -2
  86. package/package/components/Path.svelte.d.ts +1 -1
  87. package/package/components/PocketIdSetting.svelte +82 -0
  88. package/package/components/PocketIdSetting.svelte.d.ts +6 -0
  89. package/package/components/ResourceEditor.svelte +4 -4
  90. package/package/components/ResourcePicker.svelte +4 -0
  91. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  92. package/package/components/RunButton.svelte +5 -15
  93. package/package/components/RunButton.svelte.d.ts +7 -19
  94. package/package/components/RunChart.svelte +8 -4
  95. package/package/components/RunChart.svelte.d.ts +2 -2
  96. package/package/components/RunForm.svelte +9 -17
  97. package/package/components/RunForm.svelte.d.ts +0 -1
  98. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  99. package/package/components/RunsPage.svelte +202 -537
  100. package/package/components/RunsPage.svelte.d.ts +5 -5
  101. package/package/components/S3FilePicker.svelte +7 -11
  102. package/package/components/S3FilePickerInner.svelte +2 -3
  103. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  104. package/package/components/SavedInputsPicker.svelte +1 -1
  105. package/package/components/SavedInputsV2.svelte +35 -36
  106. package/package/components/SchemaForm.svelte +26 -19
  107. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  108. package/package/components/ScriptBuilder.svelte +1 -1
  109. package/package/components/ScriptEditor.svelte +575 -101
  110. package/package/components/Section.svelte +4 -2
  111. package/package/components/ServiceLogsInner.svelte +4 -4
  112. package/package/components/ShareModal.svelte.d.ts +1 -1
  113. package/package/components/SimpleEditor.svelte +46 -2
  114. package/package/components/Star.svelte +8 -12
  115. package/package/components/Star.svelte.d.ts +6 -19
  116. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  117. package/package/components/SuperadminSettingsInner.svelte +1 -1
  118. package/package/components/TemplateEditor.svelte +54 -29
  119. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  120. package/package/components/TimeAgo.svelte +49 -7
  121. package/package/components/TimeAgo.svelte.d.ts +1 -0
  122. package/package/components/Toast.svelte +5 -1
  123. package/package/components/UserSettings.svelte +1 -1
  124. package/package/components/WorkerGroup.svelte +35 -20
  125. package/package/components/WorkerGroup.svelte.d.ts +1 -0
  126. package/package/components/WorkerTagPicker.svelte +1 -1
  127. package/package/components/WorkerTagSelect.svelte +5 -2
  128. package/package/components/WorkspaceTutorials.svelte +5 -0
  129. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  130. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  131. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  132. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
  133. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -5
  134. package/package/components/apps/components/display/dbtable/dbFeatures.d.ts +9 -0
  135. package/package/components/apps/components/display/dbtable/dbFeatures.js +32 -0
  136. package/package/components/apps/components/display/dbtable/metadata.d.ts +3 -3
  137. package/package/components/apps/components/display/dbtable/metadata.js +177 -148
  138. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  139. package/package/components/apps/components/display/dbtable/queries/alterTable.js +322 -0
  140. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  141. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  142. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  143. package/package/components/apps/components/display/dbtable/queries/createTable.js +13 -25
  144. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  145. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  146. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +45 -0
  147. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +401 -0
  148. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  149. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  150. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  151. package/package/components/apps/components/display/dbtable/tableEditor.js +67 -0
  152. package/package/components/apps/components/display/dbtable/utils.d.ts +2 -0
  153. package/package/components/apps/components/display/dbtable/utils.js +61 -36
  154. package/package/components/apps/components/display/table/AppAggridTable.svelte +8 -0
  155. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -9
  156. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -1
  157. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  158. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  159. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  160. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  161. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  162. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  163. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +2 -4
  164. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  165. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  166. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  167. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  168. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  169. package/package/components/apps/editor/PublicApp.svelte +49 -30
  170. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  171. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  172. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  173. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  174. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  175. package/package/components/apps/inputType.d.ts +6 -1
  176. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  177. package/package/components/assets/AssetsUsageDrawer.svelte +98 -27
  178. package/package/components/assets/AssetsUsageDrawer.svelte.d.ts +5 -6
  179. package/package/components/assets/lib.d.ts +3 -2
  180. package/package/components/assets/lib.js +3 -1
  181. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  182. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  183. package/package/components/common/CloseButton.svelte +2 -1
  184. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  185. package/package/components/common/badge/CountBadge.svelte +4 -3
  186. package/package/components/common/badge/CountBadge.svelte.d.ts +1 -0
  187. package/package/components/common/button/Button.svelte +1 -1
  188. package/package/components/common/button/model.js +1 -1
  189. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  190. package/package/components/common/confirmationModal/ConfirmationModal.svelte +2 -1
  191. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  192. package/package/components/common/drawer/Drawer.svelte +4 -1
  193. package/package/components/common/drawer/DrawerContent.svelte +6 -3
  194. package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
  195. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  196. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  197. package/package/components/common/modal/Modal.svelte +3 -3
  198. package/package/components/common/modal/Modal2.svelte +1 -0
  199. package/package/components/common/table/AppRow.svelte +4 -1
  200. package/package/components/common/table/FlowRow.svelte +4 -1
  201. package/package/components/common/table/RawAppRow.svelte +4 -1
  202. package/package/components/common/table/Row.svelte +11 -21
  203. package/package/components/common/table/Row.svelte.d.ts +4 -20
  204. package/package/components/common/table/RowIcon.svelte +6 -2
  205. package/package/components/common/table/RowIcon.svelte.d.ts +1 -1
  206. package/package/components/common/table/ScriptRow.svelte +4 -1
  207. package/package/components/copilot/autocomplete/Autocompletor.d.ts +1 -1
  208. package/package/components/copilot/autocomplete/Autocompletor.js +7 -6
  209. package/package/components/copilot/autocomplete/request.js +13 -9
  210. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  211. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  212. package/package/components/copilot/chat/AIChat.svelte +3 -1
  213. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  214. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  215. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  216. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  217. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  218. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  219. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  220. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  221. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  222. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  223. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  224. package/package/components/copilot/chat/app/core.d.ts +56 -15
  225. package/package/components/copilot/chat/app/core.js +141 -22
  226. package/package/components/copilot/chat/context.d.ts +59 -2
  227. package/package/components/copilot/chat/context.js +6 -2
  228. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  229. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  230. package/package/components/copilot/chat/flow/core.js +29 -2
  231. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  232. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  233. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  234. package/package/components/copilot/chat/script/core.d.ts +4 -1
  235. package/package/components/copilot/chat/script/core.js +43 -6
  236. package/package/components/copilot/chat/shared.d.ts +10 -0
  237. package/package/components/copilot/chat/shared.js +24 -0
  238. package/package/components/copilot/lib.d.ts +1 -1
  239. package/package/components/copilot/lib.js +2 -9
  240. package/package/components/copilot/utils.d.ts +5 -0
  241. package/package/components/copilot/utils.js +8 -0
  242. package/package/components/custom_ui.d.ts +2 -0
  243. package/package/components/dbOps.d.ts +18 -4
  244. package/package/components/dbOps.js +25 -3
  245. package/package/components/debug/DebugConsole.svelte +277 -0
  246. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  247. package/package/components/debug/DebugPanel.svelte +97 -0
  248. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  249. package/package/components/debug/DebugToolbar.svelte +148 -0
  250. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  251. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  252. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  253. package/package/components/debug/MonacoDebugger.svelte +384 -0
  254. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  255. package/package/components/debug/dapClient.d.ts +192 -0
  256. package/package/components/debug/dapClient.js +426 -0
  257. package/package/components/debug/debugUtils.d.ts +30 -0
  258. package/package/components/debug/debugUtils.js +131 -0
  259. package/package/components/debug/index.d.ts +75 -0
  260. package/package/components/debug/index.js +82 -0
  261. package/package/components/details/DetailPageHeader.svelte +21 -7
  262. package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
  263. package/package/components/details/DetailPageLayout.svelte +10 -1
  264. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  265. package/package/components/flows/CreateActionsApp.svelte +6 -4
  266. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  267. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  268. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  269. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  270. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  271. package/package/components/flows/content/FlowInput.svelte +211 -37
  272. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  273. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  274. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  275. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  276. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  277. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  278. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  279. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  280. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  281. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  282. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  283. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  284. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  285. package/package/components/flows/conversations/FlowConversationsSidebar.svelte +79 -77
  286. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  287. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  288. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  289. package/package/components/flows/types.d.ts +2 -0
  290. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  291. package/package/components/graph/FlowGraphV2.svelte +7 -1
  292. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +41 -24
  293. package/package/components/home/ItemsList.svelte +7 -6
  294. package/package/components/home/TutorialBanner.svelte +34 -18
  295. package/package/components/home/treeViewUtils.js +1 -1
  296. package/package/components/icons/CssIcon.svelte +20 -0
  297. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  298. package/package/components/icons/HtmlIcon.svelte +20 -0
  299. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  300. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  301. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  302. package/package/components/icons/JsonIcon.svelte +8 -2
  303. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  304. package/package/components/icons/LessIcon.svelte +16 -0
  305. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  306. package/package/components/icons/MarkdownIcon.svelte +20 -0
  307. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  308. package/package/components/icons/NextcloudIcon.svelte +3 -2
  309. package/package/components/icons/NextcloudIcon.svelte.d.ts +2 -0
  310. package/package/components/icons/PocketIdIcon.svelte +9 -0
  311. package/package/components/icons/PocketIdIcon.svelte.d.ts +9 -0
  312. package/package/components/icons/ReactIcon.svelte +10 -2
  313. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  314. package/package/components/icons/SassIcon.svelte +28 -0
  315. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  316. package/package/components/icons/SvelteIcon.svelte +10 -2
  317. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  318. package/package/components/icons/VueIcon.svelte +10 -2
  319. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  320. package/package/components/icons/YamlIcon.svelte +20 -0
  321. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  322. package/package/components/icons/index.js +3 -1
  323. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  324. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  325. package/package/components/instanceSettings.d.ts +2 -1
  326. package/package/components/instanceSettings.js +33 -1
  327. package/package/components/jobs/JobPreview.svelte +46 -39
  328. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  329. package/package/components/monacoLanguagesOptions.js +16 -15
  330. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  331. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  332. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  333. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  334. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  335. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  336. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  337. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -3
  338. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  339. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  340. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  341. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  342. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  343. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  344. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  345. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  346. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  347. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  348. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  349. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  350. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  351. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  352. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  353. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  354. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  355. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  356. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  357. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  358. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  359. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  360. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  361. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  362. package/package/components/raw_apps/utils.d.ts +1 -1
  363. package/package/components/raw_apps/utils.js +76 -18
  364. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  365. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  366. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  367. package/package/components/runs/RunsFilter.svelte +75 -63
  368. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  369. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  370. package/package/components/runs/RunsTable.svelte +1 -1
  371. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  372. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  373. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  374. package/package/components/schema/EditableSchemaWrapper.svelte +2 -2
  375. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  376. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  377. package/package/components/select/MultiSelect.svelte +1 -1
  378. package/package/components/select/SelectDropdown.svelte +17 -5
  379. package/package/components/settings/AIPromptsModal.svelte +88 -0
  380. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  381. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  382. package/package/components/settings/ChangeWorkspaceId.svelte +16 -11
  383. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  384. package/package/components/settings/CreateToken.svelte +4 -4
  385. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  386. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  387. package/package/components/settings/WorkspaceUserSettings.svelte +537 -411
  388. package/package/components/sidebar/MenuButton.svelte +54 -24
  389. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  390. package/package/components/sidebar/MultiplayerMenu.svelte +4 -4
  391. package/package/components/sidebar/OperatorMenu.svelte +63 -88
  392. package/package/components/sidebar/SidebarContent.svelte +39 -6
  393. package/package/components/sidebar/UserMenu.svelte +3 -3
  394. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  395. package/package/components/sqlTypeService.js +4 -3
  396. package/package/components/table/DataTable.svelte +8 -3
  397. package/package/components/table/DataTable.svelte.d.ts +2 -0
  398. package/package/components/text_input/TextInput.svelte +3 -0
  399. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  400. package/package/components/triggers/AddTriggersButton.svelte +17 -4
  401. package/package/components/triggers/TriggersEditor.svelte +4 -0
  402. package/package/components/triggers/TriggersWrapper.svelte +14 -0
  403. package/package/components/triggers/native/NativeTriggerEditor.svelte +379 -0
  404. package/package/components/triggers/native/NativeTriggerEditor.svelte.d.ts +26 -0
  405. package/package/components/triggers/native/NativeTriggerTable.svelte +155 -0
  406. package/package/components/triggers/native/NativeTriggerTable.svelte.d.ts +16 -0
  407. package/package/components/triggers/native/NativeTriggersPanel.svelte +40 -0
  408. package/package/components/triggers/native/NativeTriggersPanel.svelte.d.ts +15 -0
  409. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte +104 -0
  410. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte.d.ts +18 -0
  411. package/package/components/triggers/native/utils.d.ts +74 -0
  412. package/package/components/triggers/native/utils.js +152 -0
  413. package/package/components/triggers/triggers.svelte.d.ts +2 -1
  414. package/package/components/triggers/triggers.svelte.js +36 -8
  415. package/package/components/triggers/utils.js +18 -6
  416. package/package/components/triggers.d.ts +1 -1
  417. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  418. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  419. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  420. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  421. package/package/components/tutorials/utils.d.ts +16 -0
  422. package/package/components/tutorials/utils.js +96 -0
  423. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  424. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  425. package/package/components/vscode.js +6 -6
  426. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  427. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  428. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  429. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  430. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  431. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  432. package/package/components/workspaceSettings/AISettings.svelte +147 -108
  433. package/package/components/workspaceSettings/CreateWorkspace.svelte +26 -12
  434. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -0
  435. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -1
  436. package/package/components/workspaceSettings/DataTableSettings.svelte +2 -1
  437. package/package/components/workspaceSettings/DucklakeSettings.svelte +54 -26
  438. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  439. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  440. package/package/components/workspaceSettings/OAuthClientConfig.svelte +180 -0
  441. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +14 -0
  442. package/package/components/workspaceSettings/StorageSettings.svelte +285 -241
  443. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  444. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +302 -0
  445. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte.d.ts +3 -0
  446. package/package/consts.js +4 -3
  447. package/package/gen/core/OpenAPI.js +1 -1
  448. package/package/gen/schemas.gen.d.ts +517 -4
  449. package/package/gen/schemas.gen.js +523 -4
  450. package/package/gen/services.gen.d.ts +359 -22
  451. package/package/gen/services.gen.js +702 -44
  452. package/package/gen/types.gen.d.ts +1501 -121
  453. package/package/hub.js +2 -2
  454. package/package/hubPaths.json +3 -2
  455. package/package/infer.js +2 -0
  456. package/package/logout.d.ts +0 -2
  457. package/package/logout.js +2 -23
  458. package/package/logoutKit.d.ts +2 -0
  459. package/package/logoutKit.js +26 -0
  460. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  461. package/package/navigation.d.ts +1 -1
  462. package/package/rawAppWmillTs.d.ts +11 -0
  463. package/package/rawAppWmillTs.js +38 -1
  464. package/package/refreshUser.d.ts +5 -1
  465. package/package/refreshUser.js +20 -30
  466. package/package/storeUtils.js +2 -0
  467. package/package/svelte5Utils.svelte.d.ts +68 -1
  468. package/package/svelte5Utils.svelte.js +193 -2
  469. package/package/svelte5UtilsKit.svelte.d.ts +3 -0
  470. package/package/svelte5UtilsKit.svelte.js +30 -0
  471. package/package/tutorialUtils.js +0 -4
  472. package/package/tutorials/config.js +31 -3
  473. package/package/tutorials/roleUtils.d.ts +1 -1
  474. package/package/tutorials/roleUtils.js +6 -2
  475. package/package/utils.js +162 -1
  476. package/package.json +1 -1
  477. package/package/components/SavedInputs.svelte +0 -416
  478. package/package/components/runs/JobsLoader.svelte +0 -468
  479. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  480. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -13,8 +13,9 @@ import { Badge } from '../common';
13
13
  import { forLater } from '../../forLater';
14
14
  import DurationMs from '../DurationMs.svelte';
15
15
  import { workspaceStore } from '../../stores';
16
+ import { twMerge } from 'tailwind-merge';
16
17
  const POPUP_HEIGHT = 320;
17
- let { id, children } = $props();
18
+ let { id, children, class: clazz } = $props();
18
19
  let job = $state(undefined);
19
20
  let hovered = $state(false);
20
21
  let timeout;
@@ -83,11 +84,51 @@ onDestroy(() => {
83
84
  {#if open}
84
85
  <div
85
86
  transition:fade|local={{ duration: 50 }}
86
- class="absolute z-50 {popupOnTop ? 'bottom-[35px]' : 'top-[35px]'} -left-10 bg-surface rounded
87
- border shadow-xl flex justify-start items-start w-[600px] h-80
88
- overflow-hidden"
87
+ class={twMerge(
88
+ 'absolute z-50 -left-10 bg-surface rounded border shadow-md flex flex-col gap-4 items-start w-[600px] h-80 overflow-hidden',
89
+ popupOnTop ? 'bottom-[35px]' : 'top-[35px]',
90
+ clazz
91
+ )}
89
92
  >
90
- <div class="absolute bottom-0 right-1 flex justify-end gap-2 pb-0.5 z-50 bg-surface-primary">
93
+ <div class="w-full flex flex-row grow min-h-0 gap-2">
94
+ <div class="w-1/2 h-full overflow-auto space-y-1">
95
+ <span class="text-xs font-normal text-secondary">Arguments</span>
96
+ <JobArgs
97
+ id={job?.id}
98
+ workspace={job?.workspace_id ?? $workspaceStore ?? 'no_w'}
99
+ args={job?.args}
100
+ />
101
+ </div>
102
+ <div class="w-1/2 h-full overflow-auto space-y-1">
103
+ {#if job && 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
104
+ <div class="text-xs font-semibold text-emphasis mb-1">
105
+ <div>Job is scheduled for</div>
106
+ <div>{new Date(job?.['scheduled_for']).toLocaleString()}</div>
107
+ </div>
108
+ {/if}
109
+ {#if job?.type === 'CompletedJob'}
110
+ <span class="text-xs font-normal text-secondary mb-1">Result</span>
111
+ <DisplayResult
112
+ workspaceId={job?.workspace_id}
113
+ jobId={job?.id}
114
+ {result}
115
+ disableExpand
116
+ language={job?.language}
117
+ />
118
+ {:else if job && `running` in job ? job.running : false}
119
+ <div class="text-sm font-semibold text-primary mb-1"> Job is still running </div>
120
+ <LogViewer
121
+ jobId={job?.id}
122
+ duration={job?.['duration_ms']}
123
+ mem={job?.['mem_peak']}
124
+ content={job?.logs}
125
+ isLoading={job?.['running'] == false}
126
+ tag={job?.tag}
127
+ />
128
+ {/if}
129
+ </div>
130
+ </div>
131
+ <div class="flex justify-end gap-2 pb-0.5 z-50 bg-surface-primary">
91
132
  {#if job?.started_at}
92
133
  <Badge>{new Date(job?.['started_at']).toLocaleString()}</Badge>
93
134
  {/if}
@@ -107,40 +148,6 @@ onDestroy(() => {
107
148
  {/each}
108
149
  {/if}
109
150
  </div>
110
- <div class="w-1/2 h-full overflow-auto">
111
- <JobArgs
112
- id={job?.id}
113
- workspace={job?.workspace_id ?? $workspaceStore ?? 'no_w'}
114
- args={job?.args}
115
- />
116
- </div>
117
- <div class="w-1/2 h-full overflow-auto p-2">
118
- {#if job && 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
119
- <div class="text-xs font-semibold text-emphasis mb-1">
120
- <div>Job is scheduled for</div>
121
- <div>{new Date(job?.['scheduled_for']).toLocaleString()}</div>
122
- </div>
123
- {/if}
124
- {#if job?.type === 'CompletedJob'}
125
- <DisplayResult
126
- workspaceId={job?.workspace_id}
127
- jobId={job?.id}
128
- {result}
129
- disableExpand
130
- language={job?.language}
131
- />
132
- {:else if job && `running` in job ? job.running : false}
133
- <div class="text-sm font-semibold text-primary mb-1"> Job is still running </div>
134
- <LogViewer
135
- jobId={job?.id}
136
- duration={job?.['duration_ms']}
137
- mem={job?.['mem_peak']}
138
- content={job?.logs}
139
- isLoading={job?.['running'] == false}
140
- tag={job?.tag}
141
- />
142
- {/if}
143
- </div>
144
151
  </div>
145
152
  {/if}
146
153
  </div>
@@ -2,6 +2,7 @@ export declare const openStore: import("svelte/store").Writable<string>;
2
2
  interface Props {
3
3
  id: string;
4
4
  children?: import('svelte').Snippet<[any]>;
5
+ class?: string;
5
6
  }
6
7
  declare const JobPreview: import("svelte").Component<Props, {}, "">;
7
8
  type JobPreview = ReturnType<typeof JobPreview>;
@@ -1,17 +1,18 @@
1
- import { languages } from 'monaco-editor';
2
1
  import processStdContent from '../process.d.ts.txt?raw';
2
+ import { jsonDefaults } from '@codingame/monaco-vscode-standalone-json-language-features';
3
+ import { javascriptDefaults, JsxEmit, ModuleResolutionKind, ScriptTarget, typescriptDefaults } from '@codingame/monaco-vscode-standalone-typescript-language-features';
3
4
  let jsonInitialized = false;
4
5
  export function setMonacoJsonOptions() {
5
6
  if (jsonInitialized)
6
7
  return;
7
8
  jsonInitialized = true;
8
- languages.json.jsonDefaults.setDiagnosticsOptions({
9
+ jsonDefaults.setDiagnosticsOptions({
9
10
  validate: true,
10
11
  allowComments: false,
11
12
  schemas: [],
12
13
  enableSchemaRequest: true
13
14
  });
14
- languages.json.jsonDefaults.setModeConfiguration({
15
+ jsonDefaults.setModeConfiguration({
15
16
  documentRangeFormattingEdits: false,
16
17
  documentFormattingEdits: true,
17
18
  hovers: true,
@@ -29,8 +30,8 @@ export function setMonacoTypescriptOptions() {
29
30
  if (typescriptInitialized)
30
31
  return;
31
32
  typescriptInitialized = true;
32
- languages.typescript.typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts');
33
- languages.typescript.typescriptDefaults.setModeConfiguration({
33
+ typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts');
34
+ typescriptDefaults.setModeConfiguration({
34
35
  completionItems: true,
35
36
  hovers: true,
36
37
  documentSymbols: true,
@@ -46,21 +47,21 @@ export function setMonacoTypescriptOptions() {
46
47
  inlayHints: true
47
48
  });
48
49
  // languages.typescript.javascriptDefaults.setEagerModelSync(true)
49
- languages.typescript.typescriptDefaults.setEagerModelSync(true);
50
+ typescriptDefaults.setEagerModelSync(true);
50
51
  // languages.typescript.javascriptDefaults.setDiagnosticsOptions({
51
52
  // noSemanticValidation: false,
52
53
  // noSyntaxValidation: false,
53
54
  // noSuggestionDiagnostics: false,
54
55
  // diagnosticCodesToIgnore: [1108]
55
56
  // })
56
- languages.typescript.typescriptDefaults.setDiagnosticsOptions({
57
+ typescriptDefaults.setDiagnosticsOptions({
57
58
  noSemanticValidation: false,
58
59
  noSyntaxValidation: false,
59
60
  noSuggestionDiagnostics: false,
60
61
  diagnosticCodesToIgnore: [1108, 7006, 7034, 7019, 7005]
61
62
  });
62
- languages.typescript.typescriptDefaults.setCompilerOptions({
63
- target: languages.typescript.ScriptTarget.Latest,
63
+ typescriptDefaults.setCompilerOptions({
64
+ target: ScriptTarget.Latest,
64
65
  allowNonTsExtensions: true,
65
66
  noSemanticValidation: false,
66
67
  noSyntaxValidation: false,
@@ -84,8 +85,8 @@ export function setMonacoTypescriptOptions() {
84
85
  noLib: false,
85
86
  allowImportingTsExtensions: true,
86
87
  allowSyntheticDefaultImports: true,
87
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs,
88
- jsx: languages.typescript.JsxEmit.React
88
+ moduleResolution: ModuleResolutionKind.NodeJs,
89
+ jsx: JsxEmit.React
89
90
  });
90
91
  }
91
92
  let javascriptInitialized = false;
@@ -93,14 +94,14 @@ export function setMonacoJavascriptOptions() {
93
94
  if (javascriptInitialized)
94
95
  return;
95
96
  javascriptInitialized = true;
96
- languages.typescript.javascriptDefaults.setCompilerOptions({
97
- target: languages.typescript.ScriptTarget.Latest,
97
+ javascriptDefaults.setCompilerOptions({
98
+ target: ScriptTarget.Latest,
98
99
  allowNonTsExtensions: true,
99
100
  noSemanticValidation: false,
100
101
  noLib: true,
101
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
102
+ moduleResolution: ModuleResolutionKind.NodeJs
102
103
  });
103
- languages.typescript.javascriptDefaults.setDiagnosticsOptions({
104
+ javascriptDefaults.setDiagnosticsOptions({
104
105
  noSemanticValidation: false,
105
106
  noSyntaxValidation: false,
106
107
  noSuggestionDiagnostics: false,
@@ -13,6 +13,8 @@ export let error = false;
13
13
  export let allowCopy = false;
14
14
  export let previousId = undefined;
15
15
  export let flow_env = undefined;
16
+ export let result = undefined;
17
+ export let extraResults = undefined;
16
18
  let variables = {};
17
19
  let resources = {};
18
20
  let displayVariable = false;
@@ -45,7 +47,9 @@ function onSearch(search) {
45
47
  ? pickableProperties.priorIds
46
48
  : keepByKey(pickableProperties.priorIds, search);
47
49
  flowEnvFiltered =
48
- search === EMPTY_STRING ? pickableProperties.flow_env : keepByKey(pickableProperties.flow_env, search);
50
+ search === EMPTY_STRING
51
+ ? pickableProperties.flow_env
52
+ : keepByKey(pickableProperties.flow_env, search);
49
53
  }, 50);
50
54
  }
51
55
  $: suggestedPropsFiltered =
@@ -176,7 +180,7 @@ async function updateState() {
176
180
  await filterPickableProperties();
177
181
  await updateCollapsable();
178
182
  }
179
- $: search, $inputMatches, $propPickerConfig, pickableProperties, updateState();
183
+ $: (search, $inputMatches, $propPickerConfig, pickableProperties, updateState());
180
184
  onDestroy(() => {
181
185
  clearTimeout(timeout);
182
186
  });
@@ -204,6 +208,16 @@ const categoryTitleClasses = 'font-semibold text-xs text-emphasis';
204
208
  <Badge small>filter: {filteringFlowInputsOrResult}</Badge>
205
209
  </div>
206
210
  {/if}
211
+ {#if result != undefined}
212
+ <span class={categoryTitleClasses}>Step Result</span>
213
+ <div class={categoryContentClasses}>
214
+ <ObjectViewer
215
+ {allowCopy}
216
+ json={{ result, ...(extraResults ? extraResults : {}) }}
217
+ on:select
218
+ />
219
+ </div>
220
+ {/if}
207
221
  {#if flowInputsFiltered && (Object.keys(flowInputsFiltered ?? {}).length > 0 || !filterActive)}
208
222
  <span class={categoryTitleClasses}>Flow Input</span>
209
223
  <div class={categoryContentClasses}>
@@ -19,6 +19,8 @@ declare const PropPicker: $$__sveltets_2_IsomorphicComponent<{
19
19
  allowCopy?: boolean;
20
20
  previousId?: string | undefined;
21
21
  flow_env?: Record<string, any> | undefined;
22
+ result?: any | undefined;
23
+ extraResults?: any;
22
24
  }, {
23
25
  select: any;
24
26
  } & {
@@ -3,6 +3,7 @@ import Popover from '../meltComponents/Popover.svelte';
3
3
  import Select from '../select/Select.svelte';
4
4
  import { workspaceStore } from '../../stores';
5
5
  import { createDatatablesResource, createSchemasResource, toDatatableItems, toSchemaItems } from './datatableUtils.svelte';
6
+ import { Button } from '../common';
6
7
  let { datatable, schema, onChange, description = 'Set the default datatable and schema for new tables. This is where AI will create new tables when needed.' } = $props();
7
8
  // Load available datatables and schemas using shared utilities
8
9
  const datatables = createDatatablesResource(() => $workspaceStore);
@@ -22,15 +23,18 @@ $effect(() => {
22
23
 
23
24
  <Popover>
24
25
  <svelte:fragment slot="trigger">
25
- <button
26
- class="pt-1.5 pb-0.5 px-1 hover:bg-surface-hover rounded transition-colors"
26
+ <Button
27
27
  title="Configure default datatable & schema"
28
+ unifiedSize="xs"
29
+ variant="subtle"
30
+ nonCaptureEvent
31
+ btnClasses="px-1"
28
32
  >
29
- <Settings size={12} class="text-tertiary" />
30
- </button>
33
+ <Settings size={12} />
34
+ </Button>
31
35
  </svelte:fragment>
32
36
  <svelte:fragment slot="content">
33
- <div class="flex flex-col gap-3 p-2 min-w-64 max-w-80">
37
+ <div class="flex flex-col gap-3 p-4 min-w-64 max-w-80">
34
38
  <div class="text-xs font-medium text-primary">Default Datatable & Schema</div>
35
39
 
36
40
  <p class="text-2xs text-tertiary leading-relaxed">
@@ -1,24 +1,29 @@
1
+ <script lang="ts" module>export const SUPPORTED_EXTENSIONS = ['tsx', 'json', 'ts', 'js', 'vue', 'css', 'svelte'];
2
+ </script>
3
+
1
4
  <script lang="ts">import TypeScript from '../common/languageIcons/TypeScript.svelte';
2
5
  import JavaScriptIcon from '../icons/JavaScriptIcon.svelte';
3
6
  import JsonIcon from '../icons/JsonIcon.svelte';
4
7
  import ReactIcon from '../icons/ReactIcon.svelte';
5
8
  import SvelteIcon from '../icons/SvelteIcon.svelte';
6
9
  import VueIcon from '../icons/VueIcon.svelte';
7
- let { file } = $props();
10
+ let { file, size = 16 } = $props();
11
+ const width = $derived(size.toString() + 'px');
12
+ const height = $derived(size.toString() + 'px');
8
13
  </script>
9
14
 
10
15
  {#if file.endsWith('.tsx')}
11
- <ReactIcon width="16px" height="16px" />
16
+ <ReactIcon {width} {height} />
12
17
  {:else if file.endsWith('.json')}
13
- <JsonIcon width="16px" height="16px" />
18
+ <JsonIcon {width} {height} />
14
19
  {:else if file.endsWith('.ts')}
15
- <TypeScript width={16} height={16} />
20
+ <TypeScript width={size} height={size} />
16
21
  {:else if file.endsWith('.js')}
17
- <JavaScriptIcon width="16px" height="16px" />
22
+ <JavaScriptIcon {width} {height} />
18
23
  {:else if file.endsWith('.vue')}
19
- <VueIcon width="16px" height="16px" />
24
+ <VueIcon {width} {height} />
20
25
  {:else if file.endsWith('.css')}
21
26
  <span class="text-blue-600 ml-0.5" style="font-size: 16px;">#</span>
22
27
  {:else if file.endsWith('.svelte')}
23
- <SvelteIcon width="16px" height="16px" />
28
+ <SvelteIcon {width} {height} />
24
29
  {/if}
@@ -1,5 +1,7 @@
1
+ export declare const SUPPORTED_EXTENSIONS: string[];
1
2
  interface Props {
2
3
  file: string;
4
+ size?: number;
3
5
  }
4
6
  declare const FileEditorIcon: import("svelte").Component<Props, {}, "">;
5
7
  type FileEditorIcon = ReturnType<typeof FileEditorIcon>;
@@ -1,15 +1,41 @@
1
- <script lang="ts">import { ChevronRight, ChevronDown, File, Folder, FileJson, FileCode, ImageIcon, Palette, Pencil, Trash2, Lock } from 'lucide-svelte';
1
+ <script lang="ts">import { ChevronRight, ChevronDown, File, Folder, Pencil, Trash2, Lock, Ellipsis, ImageIcon } from 'lucide-svelte';
2
2
  import Self from './FileTreeNode.svelte';
3
- let { node, onFileClick, onAddFile, onAddFolder, onRename, onDelete, selectedPath, pathToRename, pathToExpand, noEdit = false, level = 0 } = $props();
4
- let expanded = $state(level === 0); // Root folders start expanded
3
+ import { twMerge } from 'tailwind-merge';
4
+ import DropdownV2 from '../DropdownV2.svelte';
5
+ import { Button } from '../common';
6
+ import TextInput from '../text_input/TextInput.svelte';
7
+ import TypeScript from '../common/languageIcons/TypeScript.svelte';
8
+ import JavaScriptIcon from '../icons/JavaScriptIcon.svelte';
9
+ import JsonIcon from '../icons/JsonIcon.svelte';
10
+ import ReactIcon from '../icons/ReactIcon.svelte';
11
+ import SvelteIcon from '../icons/SvelteIcon.svelte';
12
+ import VueIcon from '../icons/VueIcon.svelte';
13
+ import CssIcon from '../icons/CssIcon.svelte';
14
+ import SassIcon from '../icons/SassIcon.svelte';
15
+ import LessIcon from '../icons/LessIcon.svelte';
16
+ import HtmlIcon from '../icons/HtmlIcon.svelte';
17
+ import MarkdownIcon from '../icons/MarkdownIcon.svelte';
18
+ import YamlIcon from '../icons/YamlIcon.svelte';
19
+ import { tick } from 'svelte';
20
+ let { node, onFileClick, onAddFile, onAddFolder, onRename, onDelete, onRequestEdit, onCancelEdit, selectedPath, pathToEdit, noEdit = false, level = 0 } = $props();
21
+ let userExpanded = $state(null); // null = not set by user
5
22
  let isHovered = $state(false);
6
- let isEditing = $state(false);
7
23
  let editValue = $state(node.name);
8
- let inputElement = $state();
24
+ let textInputElement = $state();
25
+ let dropdownOpen = $state(false);
9
26
  const isSelected = $derived(selectedPath === node.path);
27
+ const isEditing = $derived(pathToEdit === node.path);
28
+ const expanded = $derived(
29
+ // Auto-expand for editing nested paths takes priority
30
+ pathToEdit && node.isFolder && pathToEdit.startsWith(node.path)
31
+ ? true
32
+ : userExpanded !== null
33
+ ? userExpanded
34
+ : level === 0 // Default: root expanded
35
+ );
10
36
  function toggleExpanded() {
11
37
  if (node.isFolder) {
12
- expanded = !expanded;
38
+ userExpanded = !expanded;
13
39
  }
14
40
  }
15
41
  function handleClick() {
@@ -22,61 +48,43 @@ function handleClick() {
22
48
  }
23
49
  function handleEdit(e) {
24
50
  e.stopPropagation();
25
- isEditing = true;
26
- editValue = node.name;
51
+ onRequestEdit?.(node.path);
27
52
  }
28
53
  function handleDelete(e) {
29
54
  e.stopPropagation();
30
55
  onDelete?.(node.path);
31
56
  }
32
57
  function finishEdit() {
33
- if (isEditing && editValue.trim() && editValue !== node.name) {
58
+ if (isEditing && editValue.trim()) {
59
+ // Always call onRename - parent handles whether it's a new file or actual rename
34
60
  onRename?.(node.path, editValue.trim());
35
61
  }
36
- isEditing = false;
62
+ else {
63
+ onCancelEdit?.();
64
+ }
37
65
  }
38
66
  function handleInputKeydown(e) {
39
67
  if (e.key === 'Enter') {
40
68
  finishEdit();
41
69
  }
42
70
  else if (e.key === 'Escape') {
43
- isEditing = false;
44
- editValue = node.name;
71
+ editValue = node.name; // Reset to original
72
+ onCancelEdit?.();
45
73
  }
46
74
  }
47
- function handleInputBlur() {
75
+ function handleInputBlur(e) {
48
76
  finishEdit();
49
77
  }
78
+ // Single effect for DOM operations only
50
79
  $effect(() => {
51
- if (isEditing && inputElement) {
52
- inputElement.focus();
53
- inputElement.select();
54
- }
55
- });
56
- // Automatically enter edit mode for newly created files
57
- $effect(() => {
58
- if (pathToRename === node.path && !isEditing) {
59
- isEditing = true;
80
+ if (isEditing && textInputElement) {
81
+ // Reset edit value when entering edit mode
60
82
  editValue = node.name;
61
- // If this is a folder, expand it
62
- if (node.isFolder) {
63
- expanded = true;
64
- }
65
- }
66
- });
67
- // Expand parent folders when a child needs to be renamed
68
- $effect(() => {
69
- if (pathToRename && node.isFolder && pathToRename.startsWith(node.path + '/')) {
70
- expanded = true;
71
- }
72
- });
73
- // Expand folder when pathToExpand matches this node or a parent of pathToExpand
74
- $effect(() => {
75
- if (pathToExpand && node.isFolder) {
76
- // Expand if this folder is the target or an ancestor of the target
77
- if (node.path === pathToExpand || pathToExpand.startsWith(node.path + '/')) {
78
- expanded = true;
79
- }
83
+ // Focus and select input (DOM side effects)
84
+ tick().then(() => {
85
+ textInputElement?.focus();
86
+ textInputElement?.select();
87
+ });
80
88
  }
81
89
  });
82
90
  const sortedChildren = $derived(node.children?.slice().sort((a, b) => {
@@ -97,22 +105,26 @@ const fileIcon = $derived.by(() => {
97
105
  const ext = getFileExtension(node.name);
98
106
  switch (ext) {
99
107
  case 'json':
100
- return { icon: FileJson, className: 'text-yellow-500' };
108
+ return { icon: JsonIcon };
101
109
  case 'tsx':
110
+ return { icon: ReactIcon };
102
111
  case 'jsx':
103
- return { icon: FileCode, className: 'text-blue-500' };
112
+ return { icon: ReactIcon };
104
113
  case 'ts':
114
+ return { icon: TypeScript };
105
115
  case 'js':
106
- return { icon: FileCode, className: 'text-blue-400' };
116
+ return { icon: JavaScriptIcon };
107
117
  case 'svelte':
108
- return { icon: FileCode, className: 'text-orange-500' };
118
+ return { icon: SvelteIcon };
109
119
  case 'vue':
110
- return { icon: FileCode, className: 'text-green-500' };
120
+ return { icon: VueIcon };
111
121
  case 'css':
122
+ return { icon: CssIcon };
112
123
  case 'scss':
113
124
  case 'sass':
125
+ return { icon: SassIcon };
114
126
  case 'less':
115
- return { icon: Palette, className: 'text-pink-500' };
127
+ return { icon: LessIcon };
116
128
  case 'png':
117
129
  case 'jpg':
118
130
  case 'jpeg':
@@ -121,6 +133,15 @@ const fileIcon = $derived.by(() => {
121
133
  case 'webp':
122
134
  case 'ico':
123
135
  return { icon: ImageIcon, className: 'text-purple-500' };
136
+ case 'html':
137
+ case 'htm':
138
+ return { icon: HtmlIcon };
139
+ case 'md':
140
+ case 'markdown':
141
+ return { icon: MarkdownIcon };
142
+ case 'yaml':
143
+ case 'yml':
144
+ return { icon: YamlIcon };
124
145
  default:
125
146
  return { icon: File, className: 'text-tertiary' };
126
147
  }
@@ -136,7 +157,7 @@ const fileIcon = $derived.by(() => {
136
157
  >
137
158
  {#if isEditing}
138
159
  <div
139
- class="w-full flex items-center gap-1 px-2 py-1 text-xs rounded {isSelected
160
+ class="w-full flex items-center gap-1 px-2 min-h-6 text-xs rounded {isSelected
140
161
  ? 'bg-blue-100 dark:bg-blue-900/30'
141
162
  : ''}"
142
163
  style="padding-left: {level * 12}px"
@@ -150,26 +171,28 @@ const fileIcon = $derived.by(() => {
150
171
  <ChevronRight size={12} />
151
172
  {/if}
152
173
  </span>
153
- <IconComponent size={12} class="flex-shrink-0 {fileIcon.className}" />
174
+ <IconComponent size={14} class="flex-shrink-0 {fileIcon.className}" />
154
175
  {:else}
155
176
  {@const IconComponent = fileIcon.icon}
156
177
  <span class="flex-shrink-0"></span>
157
- <IconComponent size={12} class="flex-shrink-0 {fileIcon.className}" />
178
+ <IconComponent size={14} class="flex-shrink-0 {fileIcon.className}" />
158
179
  {/if}
159
- <input
160
- bind:this={inputElement}
180
+ <TextInput
181
+ bind:this={textInputElement}
161
182
  bind:value={editValue}
162
- onkeydown={handleInputKeydown}
163
- onblur={handleInputBlur}
164
- class="flex-1 min-w-0 bg-surface border border-blue-500 rounded px-1 text-primary font-mono focus:outline-none focus:ring-1 focus:ring-blue-500"
165
- type="text"
183
+ inputProps={{
184
+ onkeydown: handleInputKeydown,
185
+ onblur: (e) => handleInputBlur(e),
186
+ type: 'text'
187
+ }}
188
+ size="xs"
166
189
  />
167
190
  </div>
168
191
  {:else}
169
192
  <button
170
193
  onclick={handleClick}
171
194
  class="w-full flex items-center gap-1 px-2 py-1 text-xs hover:bg-surface-hover transition-colors rounded text-left {isSelected
172
- ? 'bg-blue-100 dark:bg-blue-900/30'
195
+ ? 'bg-surface-accent-selected'
173
196
  : ''}"
174
197
  style="padding-left: {level * 12}px"
175
198
  >
@@ -188,32 +211,44 @@ const fileIcon = $derived.by(() => {
188
211
  <span class="flex-shrink-0"></span>
189
212
  <IconComponent size={12} class="flex-shrink-0 {fileIcon.className}" />
190
213
  {/if}
191
- <span class="truncate text-primary font-mono">{node.name}</span>
214
+ <span class={twMerge('truncate text-primary font-normal', isSelected ? 'text-accent' : '')}
215
+ >{node.name}</span
216
+ >
192
217
  </button>
193
218
 
194
- {#if isHovered && !isEditing}
195
- <div
196
- class="absolute right-1 top-1 flex gap-0.5 bg-surface rounded shadow-sm border border-gray-200 dark:border-gray-700"
197
- >
198
- {#if !noEdit}
199
- <button
200
- onclick={handleEdit}
201
- class="p-0.5 hover:bg-surface-hover rounded transition-colors"
202
- title="Rename"
203
- >
204
- <Pencil size={12} class="text-secondary" />
205
- </button>
206
- <button
207
- onclick={handleDelete}
208
- class="p-0.5 hover:bg-surface-hover rounded transition-colors"
209
- title="Delete"
210
- >
211
- <Trash2 size={12} class="text-red-500" />
212
- </button>
213
- {:else}
214
- <Lock size={12} class="text-secondary" />
215
- {/if}
216
- </div>
219
+ {#if isHovered || dropdownOpen}
220
+ {#if !noEdit}
221
+ <DropdownV2
222
+ items={[
223
+ {
224
+ displayName: 'Rename',
225
+ icon: Pencil,
226
+ action: handleEdit
227
+ },
228
+ {
229
+ displayName: 'Delete',
230
+ icon: Trash2,
231
+ action: handleDelete,
232
+ type: 'delete'
233
+ }
234
+ ]}
235
+ placement="bottom-end"
236
+ class="absolute -translate-y-1/2 top-1/2 right-1"
237
+ bind:open={dropdownOpen}
238
+ >
239
+ {#snippet buttonReplacement()}
240
+ <Button
241
+ iconOnly
242
+ unifiedSize="xs"
243
+ variant="subtle"
244
+ nonCaptureEvent
245
+ startIcon={{ icon: Ellipsis }}
246
+ ></Button>
247
+ {/snippet}
248
+ </DropdownV2>
249
+ {:else}
250
+ <Lock size={12} class="text-secondary absolute -translate-y-1/2 top-1/2 right-2" />
251
+ {/if}
217
252
  {/if}
218
253
  {/if}
219
254
  </div>
@@ -227,9 +262,10 @@ const fileIcon = $derived.by(() => {
227
262
  {onAddFolder}
228
263
  {onRename}
229
264
  {onDelete}
265
+ {onRequestEdit}
266
+ {onCancelEdit}
230
267
  {selectedPath}
231
- {pathToRename}
232
- {pathToExpand}
268
+ {pathToEdit}
233
269
  level={level + 1}
234
270
  />
235
271
  {/each}