@invect/ui 0.0.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 (419) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/dist/Invect-CWpIwZ5F.js +92738 -0
  4. package/dist/Invect.d.ts +25 -0
  5. package/dist/InvectShell.d.ts +14 -0
  6. package/dist/api/agent-tools.api.d.ts +1 -0
  7. package/dist/api/client.d.ts +207 -0
  8. package/dist/api/credentials.api.d.ts +47 -0
  9. package/dist/api/executions.api.d.ts +43 -0
  10. package/dist/api/flows.api.d.ts +100 -0
  11. package/dist/api/index.d.ts +9 -0
  12. package/dist/api/node-data.api.d.ts +66 -0
  13. package/dist/api/query-keys.d.ts +22 -0
  14. package/dist/api/triggers.api.d.ts +44 -0
  15. package/dist/api/types.d.ts +147 -0
  16. package/dist/api/use-flow-run-stream.d.ts +12 -0
  17. package/dist/assets/invect-branding.d.ts +4 -0
  18. package/dist/assets/provider-icons/index.d.ts +8 -0
  19. package/dist/babel-C9OtljFZ.js +9721 -0
  20. package/dist/components/PageLayout.d.ts +17 -0
  21. package/dist/components/chat/ChatInput.d.ts +17 -0
  22. package/dist/components/chat/ChatMessageList.d.ts +14 -0
  23. package/dist/components/chat/ChatModelSelector.d.ts +11 -0
  24. package/dist/components/chat/ChatPanel.d.ts +19 -0
  25. package/dist/components/chat/ChatPromptOverlay.d.ts +13 -0
  26. package/dist/components/chat/ChatProviderSelector.d.ts +9 -0
  27. package/dist/components/chat/ChatSettingsPanel.d.ts +11 -0
  28. package/dist/components/chat/InlineCredentialSetup.d.ts +9 -0
  29. package/dist/components/chat/MarkdownRenderer.d.ts +7 -0
  30. package/dist/components/chat/chat-memory.d.ts +21 -0
  31. package/dist/components/chat/chat.store.d.ts +416 -0
  32. package/dist/components/chat/index.d.ts +5 -0
  33. package/dist/components/chat/use-chat.d.ts +28 -0
  34. package/dist/components/credentials/CreateCredentialModal.d.ts +13 -0
  35. package/dist/components/credentials/CredentialDetailDialog.d.ts +17 -0
  36. package/dist/components/credentials/EditCredentialModal.d.ts +11 -0
  37. package/dist/components/credentials/OAuth2ConnectButton.d.ts +38 -0
  38. package/dist/components/credentials/OAuth2ProviderSelector.d.ts +15 -0
  39. package/dist/components/credentials/credential-utils.d.ts +12 -0
  40. package/dist/components/credentials/index.d.ts +9 -0
  41. package/dist/components/dashboard/FailedRunsAlert.d.ts +3 -0
  42. package/dist/components/dashboard/FlowCard.d.ts +7 -0
  43. package/dist/components/dashboard/RecentActivityTable.d.ts +9 -0
  44. package/dist/components/dashboard/StatCard.d.ts +10 -0
  45. package/dist/components/dashboard/index.d.ts +5 -0
  46. package/dist/components/dashboard/status-helpers.d.ts +5 -0
  47. package/dist/components/flow-editor/ActionsSidebar.d.ts +2 -0
  48. package/dist/components/flow-editor/FlowEditor.d.ts +21 -0
  49. package/dist/components/flow-editor/FlowHeader.d.ts +9 -0
  50. package/dist/components/flow-editor/FlowLayout.d.ts +24 -0
  51. package/dist/components/flow-editor/ModeSwitcher.d.ts +7 -0
  52. package/dist/components/flow-editor/NodeSidebar.d.ts +24 -0
  53. package/dist/components/flow-editor/RunControls.d.ts +12 -0
  54. package/dist/components/flow-editor/ToolConfigPanel.d.ts +16 -0
  55. package/dist/components/flow-editor/ValidationPanel.d.ts +5 -0
  56. package/dist/components/flow-editor/flow-editor.store.d.ts +1 -0
  57. package/dist/components/flow-editor/index.d.ts +6 -0
  58. package/dist/components/flow-editor/inline-edit.d.ts +10 -0
  59. package/dist/components/flow-editor/node-config-panel/ConfigFieldWithTemplate.d.ts +26 -0
  60. package/dist/components/flow-editor/node-config-panel/CredentialCombobox.d.ts +21 -0
  61. package/dist/components/flow-editor/node-config-panel/CredentialsSection.d.ts +19 -0
  62. package/dist/components/flow-editor/node-config-panel/DroppableInput.d.ts +20 -0
  63. package/dist/components/flow-editor/node-config-panel/DynamicSelectField.d.ts +22 -0
  64. package/dist/components/flow-editor/node-config-panel/JsonPreviewPanel.d.ts +25 -0
  65. package/dist/components/flow-editor/node-config-panel/NodeConfigPanel.d.ts +14 -0
  66. package/dist/components/flow-editor/node-config-panel/NodeConfigPanelHeader.d.ts +15 -0
  67. package/dist/components/flow-editor/node-config-panel/ParametersSection.d.ts +16 -0
  68. package/dist/components/flow-editor/node-config-panel/SearchableSelectField.d.ts +17 -0
  69. package/dist/components/flow-editor/node-config-panel/SwitchCasesField.d.ts +18 -0
  70. package/dist/components/flow-editor/node-config-panel/hooks/index.d.ts +2 -0
  71. package/dist/components/flow-editor/node-config-panel/hooks/use-node-config-panel-state.d.ts +24 -0
  72. package/dist/components/flow-editor/node-config-panel/hooks/use-node-execution.d.ts +46 -0
  73. package/dist/components/flow-editor/node-config-panel/hooks/use-upstream-slots.d.ts +16 -0
  74. package/dist/components/flow-editor/node-config-panel/panels/AgentToolsPanel.d.ts +18 -0
  75. package/dist/components/flow-editor/node-config-panel/panels/ConfigurationPanel.d.ts +49 -0
  76. package/dist/components/flow-editor/node-config-panel/panels/DataMapperPane.d.ts +40 -0
  77. package/dist/components/flow-editor/node-config-panel/panels/InputPanel.d.ts +49 -0
  78. package/dist/components/flow-editor/node-config-panel/panels/OutputPanel.d.ts +7 -0
  79. package/dist/components/flow-editor/node-config-panel/panels/index.d.ts +4 -0
  80. package/dist/components/flow-editor/node-config-panel/types.d.ts +19 -0
  81. package/dist/components/flow-editor/node-config-panel/use-node-config-panel-store.d.ts +49 -0
  82. package/dist/components/flow-editor/node-config-panel/use-node-config-state.d.ts +26 -0
  83. package/dist/components/flow-editor/node-config-panel/use-run-node.d.ts +16 -0
  84. package/dist/components/flow-editor/node-config-panel/utils.d.ts +9 -0
  85. package/dist/components/flow-editor/serialize-to-sdk.d.ts +20 -0
  86. package/dist/components/flow-editor/toolbar-context.d.ts +2 -0
  87. package/dist/components/flow-editor/use-copy-paste.d.ts +7 -0
  88. package/dist/components/flow-editor/use-copy-paste.types.d.ts +38 -0
  89. package/dist/components/flow-editor/use-flow-editor.d.ts +44 -0
  90. package/dist/components/flow-runs-table/FlowRunsTable.d.ts +6 -0
  91. package/dist/components/flow-runs-table/index.d.ts +1 -0
  92. package/dist/components/flow-viewer/FlowRunsView.d.ts +7 -0
  93. package/dist/components/flow-viewer/FlowStatusView.d.ts +21 -0
  94. package/dist/components/flow-viewer/RunSelector.d.ts +13 -0
  95. package/dist/components/flow-viewer/RunsSidebar.d.ts +14 -0
  96. package/dist/components/flow-viewer/agent-tool-executions-list.d.ts +7 -0
  97. package/dist/components/flow-viewer/index.d.ts +1 -0
  98. package/dist/components/flow-viewer/logs-panel.d.ts +18 -0
  99. package/dist/components/flow-viewer/use-execution-log-data.d.ts +113 -0
  100. package/dist/components/graph/BatchFlowEdge.d.ts +33 -0
  101. package/dist/components/graph/LayoutSelector.d.ts +9 -0
  102. package/dist/components/graph/index.d.ts +47 -0
  103. package/dist/components/graph/styleUtils.d.ts +124 -0
  104. package/dist/components/nodes/AgentConfigPanel.d.ts +24 -0
  105. package/dist/components/nodes/AgentNode.d.ts +8 -0
  106. package/dist/components/nodes/AgentToolsBox.d.ts +41 -0
  107. package/dist/components/nodes/NodeAppendix.d.ts +19 -0
  108. package/dist/components/nodes/NodeStatusIndicator.d.ts +30 -0
  109. package/dist/components/nodes/NodeViewContext.d.ts +18 -0
  110. package/dist/components/nodes/ToolParamField.d.ts +28 -0
  111. package/dist/components/nodes/ToolSelectorModal.d.ts +80 -0
  112. package/dist/components/nodes/ToolSelectorParts.d.ts +30 -0
  113. package/dist/components/nodes/UniversalNode.d.ts +2 -0
  114. package/dist/components/nodes/createContextAwareNodes.d.ts +6 -0
  115. package/dist/components/nodes/index.d.ts +22 -0
  116. package/dist/components/nodes/nodeRegistry.d.ts +13 -0
  117. package/dist/components/nodes/withNodeContext.d.ts +7 -0
  118. package/dist/components/shared/InvectLoader.d.ts +8 -0
  119. package/dist/components/shared/InvectLogo.d.ts +9 -0
  120. package/dist/components/shared/ProviderIcon.d.ts +23 -0
  121. package/dist/components/side-menu/side-menu.d.ts +4 -0
  122. package/dist/components/sidebar/BaseSidebar.d.ts +17 -0
  123. package/dist/components/sidebar/index.d.ts +1 -0
  124. package/dist/components/triggers/CronPreview.d.ts +12 -0
  125. package/dist/components/triggers/index.d.ts +1 -0
  126. package/dist/components/ui/alert-dialog.d.ts +18 -0
  127. package/dist/components/ui/badge.d.ts +9 -0
  128. package/dist/components/ui/button.d.ts +13 -0
  129. package/dist/components/ui/card.d.ts +9 -0
  130. package/dist/components/ui/codemirror-js-editor.d.ts +25 -0
  131. package/dist/components/ui/codemirror-json-editor.d.ts +18 -0
  132. package/dist/components/ui/codemirror-nunjucks-editor.d.ts +13 -0
  133. package/dist/components/ui/codemirror-vscode-theme.d.ts +24 -0
  134. package/dist/components/ui/collapsible.d.ts +6 -0
  135. package/dist/components/ui/command.d.ts +18 -0
  136. package/dist/components/ui/dialog.d.ts +18 -0
  137. package/dist/components/ui/dropdown-menu.d.ts +25 -0
  138. package/dist/components/ui/empty-state.d.ts +21 -0
  139. package/dist/components/ui/input.d.ts +3 -0
  140. package/dist/components/ui/label.d.ts +4 -0
  141. package/dist/components/ui/popover.d.ts +10 -0
  142. package/dist/components/ui/resizable.d.ts +8 -0
  143. package/dist/components/ui/scroll-area.d.ts +5 -0
  144. package/dist/components/ui/select.d.ts +18 -0
  145. package/dist/components/ui/separator.d.ts +4 -0
  146. package/dist/components/ui/slider.d.ts +4 -0
  147. package/dist/components/ui/switch.d.ts +3 -0
  148. package/dist/components/ui/table.d.ts +10 -0
  149. package/dist/components/ui/textarea.d.ts +3 -0
  150. package/dist/components/ui/tooltip.d.ts +7 -0
  151. package/dist/components/ui/tree-view.d.ts +107 -0
  152. package/dist/contexts/AgentToolCallbacksContext.d.ts +23 -0
  153. package/dist/contexts/ApiContext.d.ts +11 -0
  154. package/dist/contexts/FlowDataContext.d.ts +9 -0
  155. package/dist/contexts/NodeRegistryContext.d.ts +14 -0
  156. package/dist/contexts/PluginRegistryContext.d.ts +39 -0
  157. package/dist/contexts/ThemeProvider.d.ts +18 -0
  158. package/dist/contexts/ValidationContext.d.ts +22 -0
  159. package/dist/demo/DemoInvect.d.ts +11 -0
  160. package/dist/demo/FlowViewer.d.ts +31 -0
  161. package/dist/demo/demo-api-client.d.ts +33 -0
  162. package/dist/demo/index.d.ts +6 -0
  163. package/dist/demo/sample-data.d.ts +1538 -0
  164. package/dist/demo.d.ts +2 -0
  165. package/dist/demo.js +2774 -0
  166. package/dist/estree-ClbRfS-1.js +7076 -0
  167. package/dist/fonts/geist-cyrillic-wght-normal.woff2 +0 -0
  168. package/dist/fonts/geist-latin-ext-wght-normal.woff2 +0 -0
  169. package/dist/fonts/geist-latin-wght-normal.woff2 +0 -0
  170. package/dist/fonts/iosevka-latin-400-normal.woff2 +0 -0
  171. package/dist/hooks/index.d.ts +1 -0
  172. package/dist/hooks/use-document-title.d.ts +1 -0
  173. package/dist/hooks/use-flow-data.d.ts +22 -0
  174. package/dist/hooks/use-invect-portal-class.d.ts +21 -0
  175. package/dist/hooks/useFlowEditorStore.d.ts +1 -0
  176. package/dist/index.css +3 -0
  177. package/dist/index.d.ts +22 -0
  178. package/dist/index.js +717 -0
  179. package/dist/lib/utils.d.ts +2 -0
  180. package/dist/prettier.d.ts +13 -0
  181. package/dist/routes/all-flow-runs.d.ts +5 -0
  182. package/dist/routes/credentials.d.ts +5 -0
  183. package/dist/routes/flow-route-layout.d.ts +19 -0
  184. package/dist/routes/flow-runs.d.ts +5 -0
  185. package/dist/routes/flow.d.ts +5 -0
  186. package/dist/routes/home.d.ts +5 -0
  187. package/dist/services/index.d.ts +1 -0
  188. package/dist/standalone-C3Df7W52.js +3463 -0
  189. package/dist/stores/executionViewStore.d.ts +64 -0
  190. package/dist/stores/flow-editor.store.d.ts +137 -0
  191. package/dist/stores/flowEditorStore.d.ts +1 -0
  192. package/dist/stores/index.d.ts +2 -0
  193. package/dist/stores/uiStore.d.ts +45 -0
  194. package/dist/types/agent-tools.types.d.ts +53 -0
  195. package/dist/types/index.d.ts +2 -0
  196. package/dist/types/node-definition.types.d.ts +85 -0
  197. package/dist/types/plugin.types.d.ts +100 -0
  198. package/dist/utils/credentialBranding.d.ts +8 -0
  199. package/dist/utils/credentialFiltering.d.ts +20 -0
  200. package/dist/utils/flowTransformations.d.ts +16 -0
  201. package/dist/utils/layoutUtils.d.ts +23 -0
  202. package/dist/utils/nodeReferenceUtils.d.ts +37 -0
  203. package/dist/vendor.d.ts +5 -0
  204. package/package.json +130 -0
  205. package/src/.DS_Store +0 -0
  206. package/src/Invect.tsx +229 -0
  207. package/src/InvectShell.tsx +55 -0
  208. package/src/api/agent-tools.api.ts +23 -0
  209. package/src/api/client.ts +899 -0
  210. package/src/api/credentials.api.ts +197 -0
  211. package/src/api/executions.api.ts +228 -0
  212. package/src/api/flows.api.ts +195 -0
  213. package/src/api/index.ts +17 -0
  214. package/src/api/node-data.api.ts +167 -0
  215. package/src/api/query-keys.ts +44 -0
  216. package/src/api/triggers.api.ts +120 -0
  217. package/src/api/types.ts +212 -0
  218. package/src/api/use-flow-run-stream.ts +206 -0
  219. package/src/app.css +560 -0
  220. package/src/assets/.DS_Store +0 -0
  221. package/src/assets/favicon.ico +0 -0
  222. package/src/assets/fonts/geist-cyrillic-wght-normal.woff2 +0 -0
  223. package/src/assets/fonts/geist-latin-ext-wght-normal.woff2 +0 -0
  224. package/src/assets/fonts/geist-latin-wght-normal.woff2 +0 -0
  225. package/src/assets/fonts/iosevka-latin-400-normal.woff2 +0 -0
  226. package/src/assets/invect-branding.ts +51 -0
  227. package/src/assets/provider-icons/anthropic.svg +1 -0
  228. package/src/assets/provider-icons/anthropic_light.svg +1 -0
  229. package/src/assets/provider-icons/github.svg +1 -0
  230. package/src/assets/provider-icons/github_light.svg +1 -0
  231. package/src/assets/provider-icons/gmail.svg +1 -0
  232. package/src/assets/provider-icons/google_calendar.svg +1 -0
  233. package/src/assets/provider-icons/google_docs.svg +1 -0
  234. package/src/assets/provider-icons/google_drive.svg +1 -0
  235. package/src/assets/provider-icons/google_sheets.svg +1 -0
  236. package/src/assets/provider-icons/index.ts +55 -0
  237. package/src/assets/provider-icons/linear.svg +1 -0
  238. package/src/assets/provider-icons/openai.svg +1 -0
  239. package/src/assets/provider-icons/postgres.svg +1 -0
  240. package/src/assets/provider-icons/slack.svg +1 -0
  241. package/src/assets/small-loader-dark.svg +22 -0
  242. package/src/assets/small-loader-light.svg +22 -0
  243. package/src/assets/small.svg +7 -0
  244. package/src/components/.DS_Store +0 -0
  245. package/src/components/PageLayout.tsx +55 -0
  246. package/src/components/chat/ChatInput.tsx +115 -0
  247. package/src/components/chat/ChatMessageList.tsx +788 -0
  248. package/src/components/chat/ChatModelSelector.tsx +208 -0
  249. package/src/components/chat/ChatPanel.tsx +243 -0
  250. package/src/components/chat/ChatPromptOverlay.tsx +150 -0
  251. package/src/components/chat/ChatProviderSelector.tsx +135 -0
  252. package/src/components/chat/ChatSettingsPanel.tsx +277 -0
  253. package/src/components/chat/InlineCredentialSetup.tsx +343 -0
  254. package/src/components/chat/MarkdownRenderer.tsx +140 -0
  255. package/src/components/chat/chat-memory.ts +88 -0
  256. package/src/components/chat/chat.store.ts +479 -0
  257. package/src/components/chat/index.ts +5 -0
  258. package/src/components/chat/use-chat.ts +473 -0
  259. package/src/components/credentials/CreateCredentialModal.tsx +609 -0
  260. package/src/components/credentials/CredentialDetailDialog.tsx +882 -0
  261. package/src/components/credentials/EditCredentialModal.tsx +399 -0
  262. package/src/components/credentials/OAuth2ConnectButton.tsx +288 -0
  263. package/src/components/credentials/OAuth2ProviderSelector.tsx +360 -0
  264. package/src/components/credentials/credential-utils.ts +99 -0
  265. package/src/components/credentials/index.ts +10 -0
  266. package/src/components/dashboard/FailedRunsAlert.tsx +67 -0
  267. package/src/components/dashboard/FlowCard.tsx +64 -0
  268. package/src/components/dashboard/RecentActivityTable.tsx +92 -0
  269. package/src/components/dashboard/StatCard.tsx +32 -0
  270. package/src/components/dashboard/index.ts +5 -0
  271. package/src/components/dashboard/status-helpers.tsx +102 -0
  272. package/src/components/flow-editor/ActionsSidebar.tsx +503 -0
  273. package/src/components/flow-editor/FlowEditor.tsx +1002 -0
  274. package/src/components/flow-editor/FlowHeader.tsx +87 -0
  275. package/src/components/flow-editor/FlowLayout.tsx +117 -0
  276. package/src/components/flow-editor/ModeSwitcher.tsx +49 -0
  277. package/src/components/flow-editor/NodeSidebar.tsx +343 -0
  278. package/src/components/flow-editor/RunControls.tsx +109 -0
  279. package/src/components/flow-editor/ToolConfigPanel.tsx +434 -0
  280. package/src/components/flow-editor/ValidationPanel.tsx +167 -0
  281. package/src/components/flow-editor/flow-editor.store.ts +2 -0
  282. package/src/components/flow-editor/index.ts +6 -0
  283. package/src/components/flow-editor/inline-edit.tsx +111 -0
  284. package/src/components/flow-editor/node-config-panel/ConfigFieldWithTemplate.tsx +334 -0
  285. package/src/components/flow-editor/node-config-panel/CredentialCombobox.tsx +217 -0
  286. package/src/components/flow-editor/node-config-panel/CredentialsSection.tsx +154 -0
  287. package/src/components/flow-editor/node-config-panel/DroppableInput.tsx +45 -0
  288. package/src/components/flow-editor/node-config-panel/DynamicSelectField.tsx +223 -0
  289. package/src/components/flow-editor/node-config-panel/JsonPreviewPanel.tsx +134 -0
  290. package/src/components/flow-editor/node-config-panel/NodeConfigPanel.tsx +650 -0
  291. package/src/components/flow-editor/node-config-panel/NodeConfigPanelHeader.tsx +91 -0
  292. package/src/components/flow-editor/node-config-panel/ParametersSection.tsx +144 -0
  293. package/src/components/flow-editor/node-config-panel/SearchableSelectField.tsx +126 -0
  294. package/src/components/flow-editor/node-config-panel/SwitchCasesField.tsx +212 -0
  295. package/src/components/flow-editor/node-config-panel/hooks/index.ts +2 -0
  296. package/src/components/flow-editor/node-config-panel/hooks/use-node-config-panel-state.ts +284 -0
  297. package/src/components/flow-editor/node-config-panel/hooks/use-node-execution.ts +287 -0
  298. package/src/components/flow-editor/node-config-panel/hooks/use-upstream-slots.ts +310 -0
  299. package/src/components/flow-editor/node-config-panel/panels/AgentToolsPanel.tsx +837 -0
  300. package/src/components/flow-editor/node-config-panel/panels/ConfigurationPanel.tsx +383 -0
  301. package/src/components/flow-editor/node-config-panel/panels/DataMapperPane.tsx +456 -0
  302. package/src/components/flow-editor/node-config-panel/panels/InputPanel.tsx +338 -0
  303. package/src/components/flow-editor/node-config-panel/panels/OutputPanel.tsx +109 -0
  304. package/src/components/flow-editor/node-config-panel/panels/index.ts +4 -0
  305. package/src/components/flow-editor/node-config-panel/types.ts +20 -0
  306. package/src/components/flow-editor/node-config-panel/use-node-config-panel-store.ts +283 -0
  307. package/src/components/flow-editor/node-config-panel/use-node-config-state.ts +172 -0
  308. package/src/components/flow-editor/node-config-panel/use-run-node.ts +147 -0
  309. package/src/components/flow-editor/node-config-panel/utils.ts +73 -0
  310. package/src/components/flow-editor/serialize-to-sdk.ts +204 -0
  311. package/src/components/flow-editor/toolbar-context.ts +9 -0
  312. package/src/components/flow-editor/use-copy-paste.ts +575 -0
  313. package/src/components/flow-editor/use-copy-paste.types.ts +35 -0
  314. package/src/components/flow-editor/use-flow-editor.ts +241 -0
  315. package/src/components/flow-runs-table/FlowRunsTable.tsx +631 -0
  316. package/src/components/flow-runs-table/index.ts +1 -0
  317. package/src/components/flow-viewer/FlowRunsView.tsx +268 -0
  318. package/src/components/flow-viewer/FlowStatusView.tsx +351 -0
  319. package/src/components/flow-viewer/RunSelector.tsx +422 -0
  320. package/src/components/flow-viewer/RunsSidebar.tsx +125 -0
  321. package/src/components/flow-viewer/agent-tool-executions-list.tsx +298 -0
  322. package/src/components/flow-viewer/index.ts +1 -0
  323. package/src/components/flow-viewer/logs-panel.tsx +567 -0
  324. package/src/components/flow-viewer/use-execution-log-data.ts +374 -0
  325. package/src/components/graph/BatchFlowEdge.tsx +229 -0
  326. package/src/components/graph/LayoutSelector.tsx +42 -0
  327. package/src/components/graph/index.ts +61 -0
  328. package/src/components/graph/styleUtils.ts +375 -0
  329. package/src/components/nodes/.DS_Store +0 -0
  330. package/src/components/nodes/AgentConfigPanel.tsx +1033 -0
  331. package/src/components/nodes/AgentNode.tsx +298 -0
  332. package/src/components/nodes/AgentToolsBox.tsx +193 -0
  333. package/src/components/nodes/NodeAppendix.tsx +98 -0
  334. package/src/components/nodes/NodeStatusIndicator.tsx +74 -0
  335. package/src/components/nodes/NodeViewContext.tsx +45 -0
  336. package/src/components/nodes/ToolParamField.tsx +282 -0
  337. package/src/components/nodes/ToolSelectorModal.tsx +648 -0
  338. package/src/components/nodes/ToolSelectorParts.tsx +505 -0
  339. package/src/components/nodes/UniversalNode.tsx +356 -0
  340. package/src/components/nodes/createContextAwareNodes.ts +19 -0
  341. package/src/components/nodes/index.ts +45 -0
  342. package/src/components/nodes/nodeRegistry.ts +50 -0
  343. package/src/components/nodes/withNodeContext.tsx +55 -0
  344. package/src/components/shared/InvectLoader.tsx +59 -0
  345. package/src/components/shared/InvectLogo.tsx +59 -0
  346. package/src/components/shared/ProviderIcon.tsx +115 -0
  347. package/src/components/side-menu/side-menu.tsx +267 -0
  348. package/src/components/sidebar/BaseSidebar.tsx +148 -0
  349. package/src/components/sidebar/index.ts +1 -0
  350. package/src/components/triggers/CronPreview.tsx +243 -0
  351. package/src/components/triggers/index.ts +1 -0
  352. package/src/components/ui/alert-dialog.tsx +152 -0
  353. package/src/components/ui/badge.tsx +39 -0
  354. package/src/components/ui/button.tsx +58 -0
  355. package/src/components/ui/card.tsx +75 -0
  356. package/src/components/ui/codemirror-js-editor.tsx +432 -0
  357. package/src/components/ui/codemirror-json-editor.tsx +816 -0
  358. package/src/components/ui/codemirror-nunjucks-editor.tsx +451 -0
  359. package/src/components/ui/codemirror-vscode-theme.ts +243 -0
  360. package/src/components/ui/collapsible.tsx +12 -0
  361. package/src/components/ui/command.tsx +162 -0
  362. package/src/components/ui/dialog.tsx +140 -0
  363. package/src/components/ui/dropdown-menu.tsx +232 -0
  364. package/src/components/ui/empty-state.tsx +93 -0
  365. package/src/components/ui/input.tsx +26 -0
  366. package/src/components/ui/label.tsx +19 -0
  367. package/src/components/ui/popover.tsx +53 -0
  368. package/src/components/ui/resizable.tsx +61 -0
  369. package/src/components/ui/scroll-area.tsx +56 -0
  370. package/src/components/ui/select.tsx +179 -0
  371. package/src/components/ui/separator.tsx +26 -0
  372. package/src/components/ui/slider.tsx +58 -0
  373. package/src/components/ui/switch.tsx +22 -0
  374. package/src/components/ui/table.tsx +90 -0
  375. package/src/components/ui/textarea.tsx +23 -0
  376. package/src/components/ui/tooltip.tsx +54 -0
  377. package/src/components/ui/tree-view.tsx +574 -0
  378. package/src/contexts/AgentToolCallbacksContext.tsx +31 -0
  379. package/src/contexts/ApiContext.tsx +51 -0
  380. package/src/contexts/FlowDataContext.tsx +21 -0
  381. package/src/contexts/NodeRegistryContext.tsx +54 -0
  382. package/src/contexts/PluginRegistryContext.tsx +182 -0
  383. package/src/contexts/ThemeProvider.tsx +106 -0
  384. package/src/contexts/ValidationContext.tsx +122 -0
  385. package/src/demo/DemoInvect.tsx +42 -0
  386. package/src/demo/FlowViewer.tsx +294 -0
  387. package/src/demo/demo-api-client.ts +246 -0
  388. package/src/demo/index.ts +28 -0
  389. package/src/demo/sample-data.ts +1980 -0
  390. package/src/hooks/index.ts +1 -0
  391. package/src/hooks/use-document-title.ts +8 -0
  392. package/src/hooks/use-flow-data.ts +144 -0
  393. package/src/hooks/use-invect-portal-class.ts +27 -0
  394. package/src/hooks/useFlowEditorStore.ts +2 -0
  395. package/src/index.ts +70 -0
  396. package/src/lib/utils.ts +6 -0
  397. package/src/prettier.d.ts +13 -0
  398. package/src/routes/all-flow-runs.tsx +27 -0
  399. package/src/routes/credentials.tsx +362 -0
  400. package/src/routes/flow-route-layout.tsx +113 -0
  401. package/src/routes/flow-runs.tsx +22 -0
  402. package/src/routes/flow.tsx +22 -0
  403. package/src/routes/home.tsx +282 -0
  404. package/src/services/index.ts +6 -0
  405. package/src/stores/executionViewStore.ts +211 -0
  406. package/src/stores/flow-editor.store.ts +738 -0
  407. package/src/stores/flowEditorStore.ts +2 -0
  408. package/src/stores/index.ts +10 -0
  409. package/src/stores/uiStore.ts +189 -0
  410. package/src/types/agent-tools.types.ts +64 -0
  411. package/src/types/index.ts +5 -0
  412. package/src/types/node-definition.types.ts +104 -0
  413. package/src/types/plugin.types.ts +123 -0
  414. package/src/utils/credentialBranding.ts +116 -0
  415. package/src/utils/credentialFiltering.ts +68 -0
  416. package/src/utils/flowTransformations.ts +137 -0
  417. package/src/utils/layoutUtils.ts +127 -0
  418. package/src/utils/nodeReferenceUtils.ts +135 -0
  419. package/src/vendor.d.ts +7 -0
package/dist/index.js ADDED
@@ -0,0 +1,717 @@
1
+ "use client";
2
+ import { $ as e, A as t, At as n, Bt as r, C as i, Ct as a, D as o, Dt as s, E as c, Et as l, F as u, Ft as d, G as f, Gt as p, H as m, Ht as h, It as g, J as _, Jt as v, K as y, Kt as ee, Lt as te, M as ne, N as re, Nt as ie, O as ae, Ot as oe, P as b, Q as se, Qt as ce, Rt as le, S as ue, St as de, T as fe, Tt as pe, U as me, Ut as he, Vt as ge, W as x, Wt as S, X as _e, Xt as C, Y as ve, Yt as ye, Z as be, Zt as xe, _ as Se, _t as Ce, at as we, b as Te, bt as Ee, c as De, ct as Oe, d as ke, dt as Ae, et as je, f as Me, ft as Ne, g as Pe, gt as Fe, h as Ie, ht as Le, i as Re, it as ze, j as Be, jt as Ve, k as He, kt as Ue, l as We, lt as Ge, m as Ke, mt as qe, n as Je, nt as Ye, o as Xe, ot as Ze, p as Qe, pt as $e, q as et, r as tt, rt as nt, s as rt, st as it, t as at, tt as ot, u as w, ut as st, v as ct, vt as lt, w as ut, wt as dt, x as ft, xt as pt, y as mt, yt as T, zt as ht } from "./Invect-CWpIwZ5F.js";
3
+ import E from "react";
4
+ import { useMutation as D, useQuery as O, useQueryClient as k } from "@tanstack/react-query";
5
+ import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
6
+ import { ChevronRight as gt, CircleIcon as _t } from "lucide-react";
7
+ import { createSlot as N } from "@radix-ui/react-slot";
8
+ import * as P from "@radix-ui/react-dropdown-menu";
9
+ //#region src/InvectShell.tsx
10
+ var F = E.memo(({ children: e, theme: t = "dark", className: n }) => /* @__PURE__ */ j(ee, {
11
+ defaultTheme: t,
12
+ storageKey: "invect-ui-theme",
13
+ className: n,
14
+ children: e
15
+ }));
16
+ F.displayName = "InvectShell";
17
+ //#endregion
18
+ //#region src/stores/executionViewStore.ts
19
+ var I = {
20
+ activeFlowRunId: null,
21
+ activeFlowId: null,
22
+ selectedExecutionNodeId: null,
23
+ statusFilter: "all",
24
+ flowIdFilter: null,
25
+ page: 1,
26
+ limit: 20,
27
+ sortBy: "startedAt",
28
+ sortOrder: "desc",
29
+ logsExpanded: !1,
30
+ selectedLogNodeId: null
31
+ }, L = we()(nt(ze(Ye((e) => ({
32
+ ...I,
33
+ setActiveExecution: (t, n) => e((e) => {
34
+ e.activeFlowId = t, e.activeFlowRunId = n, e.selectedExecutionNodeId = null, e.selectedLogNodeId = null;
35
+ }),
36
+ clearActiveExecution: () => e((e) => {
37
+ e.activeFlowId = null, e.activeFlowRunId = null, e.selectedExecutionNodeId = null, e.selectedLogNodeId = null;
38
+ }),
39
+ selectExecutionNode: (t) => e((e) => {
40
+ e.selectedExecutionNodeId = t;
41
+ }),
42
+ setStatusFilter: (t) => e((e) => {
43
+ e.statusFilter = t, e.page = 1;
44
+ }),
45
+ setFlowIdFilter: (t) => e((e) => {
46
+ e.flowIdFilter = t, e.page = 1;
47
+ }),
48
+ clearFilters: () => e((e) => {
49
+ e.statusFilter = "all", e.flowIdFilter = null, e.page = 1;
50
+ }),
51
+ setPage: (t) => e((e) => {
52
+ e.page = t;
53
+ }),
54
+ setLimit: (t) => e((e) => {
55
+ e.limit = t, e.page = 1;
56
+ }),
57
+ setSortBy: (t) => e((e) => {
58
+ e.sortBy = t;
59
+ }),
60
+ setSortOrder: (t) => e((e) => {
61
+ e.sortOrder = t;
62
+ }),
63
+ toggleLogsExpanded: () => e((e) => {
64
+ e.logsExpanded = !e.logsExpanded;
65
+ }),
66
+ setLogsExpanded: (t) => e((e) => {
67
+ e.logsExpanded = t;
68
+ }),
69
+ selectLogNode: (t) => e((e) => {
70
+ e.selectedLogNodeId = t;
71
+ }),
72
+ reset: () => e(() => ({ ...I }))
73
+ }))), { name: "execution-view" })), vt = () => L((e) => e.activeFlowRunId), yt = () => L((e) => e.activeFlowId), bt = () => L((e) => e.selectedExecutionNodeId), xt = () => L((e) => e.statusFilter), St = () => L((e) => ({
74
+ page: e.page,
75
+ limit: e.limit,
76
+ setPage: e.setPage,
77
+ setLimit: e.setLimit
78
+ })), Ct = () => L((e) => ({
79
+ sortBy: e.sortBy,
80
+ sortOrder: e.sortOrder,
81
+ setSortBy: e.setSortBy,
82
+ setSortOrder: e.setSortOrder
83
+ })), wt = () => L((e) => ({
84
+ logsExpanded: e.logsExpanded,
85
+ selectedLogNodeId: e.selectedLogNodeId,
86
+ toggleLogsExpanded: e.toggleLogsExpanded,
87
+ setLogsExpanded: e.setLogsExpanded,
88
+ selectLogNode: e.selectLogNode
89
+ })), Tt = () => L((e) => ({
90
+ statusFilter: e.statusFilter,
91
+ flowIdFilter: e.flowIdFilter,
92
+ setStatusFilter: e.setStatusFilter,
93
+ setFlowIdFilter: e.setFlowIdFilter,
94
+ clearFilters: e.clearFilters
95
+ }));
96
+ //#endregion
97
+ //#region src/api/triggers.api.ts
98
+ function Et(e) {
99
+ let t = C();
100
+ return O({
101
+ queryKey: p.triggers(e),
102
+ queryFn: () => t.listTriggersForFlow(e),
103
+ enabled: !!e,
104
+ staleTime: 1e3 * 30
105
+ });
106
+ }
107
+ function Dt(e) {
108
+ let t = C();
109
+ return O({
110
+ queryKey: p.trigger(e),
111
+ queryFn: () => t.getTrigger(e),
112
+ enabled: !!e
113
+ });
114
+ }
115
+ function Ot() {
116
+ let e = C(), t = k();
117
+ return D({
118
+ mutationFn: ({ flowId: t, input: n }) => e.createTrigger(t, n),
119
+ onSuccess: (e, { flowId: n }) => {
120
+ t.invalidateQueries({ queryKey: p.triggers(n) });
121
+ },
122
+ onError: (e) => {
123
+ console.error("Error creating trigger:", S(e));
124
+ }
125
+ });
126
+ }
127
+ function kt() {
128
+ let e = C(), t = k();
129
+ return D({
130
+ mutationFn: ({ triggerId: t, input: n }) => e.updateTrigger(t, n),
131
+ onSuccess: (e, { triggerId: n, flowId: r }) => {
132
+ t.invalidateQueries({ queryKey: p.trigger(n) }), t.invalidateQueries({ queryKey: p.triggers(r) });
133
+ },
134
+ onError: (e) => {
135
+ console.error("Error updating trigger:", S(e));
136
+ }
137
+ });
138
+ }
139
+ function At() {
140
+ let e = C(), t = k();
141
+ return D({
142
+ mutationFn: ({ triggerId: t }) => e.deleteTrigger(t),
143
+ onSuccess: (e, { flowId: n }) => {
144
+ t.invalidateQueries({ queryKey: p.triggers(n) });
145
+ },
146
+ onError: (e) => {
147
+ console.error("Error deleting trigger:", S(e));
148
+ }
149
+ });
150
+ }
151
+ function jt() {
152
+ let e = C(), t = k();
153
+ return D({
154
+ mutationFn: ({ flowId: t, definition: n }) => e.syncTriggersForFlow(t, n),
155
+ onSuccess: (e, { flowId: n }) => {
156
+ t.invalidateQueries({ queryKey: p.triggers(n) });
157
+ },
158
+ onError: (e) => {
159
+ console.error("Error syncing triggers:", S(e));
160
+ }
161
+ });
162
+ }
163
+ //#endregion
164
+ //#region ../../node_modules/.pnpm/@radix-ui+react-collection@1.1.7_@types+react-dom@18.3.7_@types+react@18.3.7__@types+re_9c54a6c78143ba4955bf0911e594a119/node_modules/@radix-ui/react-collection/dist/index.mjs
165
+ function Mt(e) {
166
+ let t = e + "CollectionProvider", [n, r] = x(t), [i, a] = n(t, {
167
+ collectionRef: { current: null },
168
+ itemMap: /* @__PURE__ */ new Map()
169
+ }), o = (e) => {
170
+ let { scope: t, children: n } = e, r = E.useRef(null), a = E.useRef(/* @__PURE__ */ new Map()).current;
171
+ return /* @__PURE__ */ j(i, {
172
+ scope: t,
173
+ itemMap: a,
174
+ collectionRef: r,
175
+ children: n
176
+ });
177
+ };
178
+ o.displayName = t;
179
+ let s = e + "CollectionSlot", c = N(s), l = E.forwardRef((e, t) => {
180
+ let { scope: n, children: r } = e;
181
+ return /* @__PURE__ */ j(c, {
182
+ ref: f(t, a(s, n).collectionRef),
183
+ children: r
184
+ });
185
+ });
186
+ l.displayName = s;
187
+ let u = e + "CollectionItemSlot", d = "data-radix-collection-item", p = N(u), m = E.forwardRef((e, t) => {
188
+ let { scope: n, children: r, ...i } = e, o = E.useRef(null), s = f(t, o), c = a(u, n);
189
+ return E.useEffect(() => (c.itemMap.set(o, {
190
+ ref: o,
191
+ ...i
192
+ }), () => void c.itemMap.delete(o))), /* @__PURE__ */ j(p, {
193
+ [d]: "",
194
+ ref: s,
195
+ children: r
196
+ });
197
+ });
198
+ m.displayName = u;
199
+ function h(t) {
200
+ let n = a(e + "CollectionConsumer", t);
201
+ return E.useCallback(() => {
202
+ let e = n.collectionRef.current;
203
+ if (!e) return [];
204
+ let t = Array.from(e.querySelectorAll(`[${d}]`));
205
+ return Array.from(n.itemMap.values()).sort((e, n) => t.indexOf(e.ref.current) - t.indexOf(n.ref.current));
206
+ }, [n.collectionRef, n.itemMap]);
207
+ }
208
+ return [
209
+ {
210
+ Provider: o,
211
+ Slot: l,
212
+ ItemSlot: m
213
+ },
214
+ h,
215
+ r
216
+ ];
217
+ }
218
+ //#endregion
219
+ //#region ../../node_modules/.pnpm/@radix-ui+react-accordion@1.2.12_@types+react-dom@18.3.7_@types+react@18.3.7__@types+re_38986d0a8e303276d4d07a19b1e5d4a9/node_modules/@radix-ui/react-accordion/dist/index.mjs
220
+ var R = "Accordion", Nt = [
221
+ "Home",
222
+ "End",
223
+ "ArrowDown",
224
+ "ArrowUp",
225
+ "ArrowLeft",
226
+ "ArrowRight"
227
+ ], [z, Pt, Ft] = Mt(R), [B, It] = x(R, [Ft, w]), V = w(), H = E.forwardRef((e, t) => {
228
+ let { type: n, ...r } = e, i = r, a = r;
229
+ return /* @__PURE__ */ j(z.Provider, {
230
+ scope: e.__scopeAccordion,
231
+ children: n === "multiple" ? /* @__PURE__ */ j(Bt, {
232
+ ...a,
233
+ ref: t
234
+ }) : /* @__PURE__ */ j(zt, {
235
+ ...i,
236
+ ref: t
237
+ })
238
+ });
239
+ });
240
+ H.displayName = R;
241
+ var [U, Lt] = B(R), [W, Rt] = B(R, { collapsible: !1 }), zt = E.forwardRef((e, t) => {
242
+ let { value: n, defaultValue: r, onValueChange: i = () => {}, collapsible: a = !1, ...o } = e, [s, c] = b({
243
+ prop: n,
244
+ defaultProp: r ?? "",
245
+ onChange: i,
246
+ caller: R
247
+ });
248
+ return /* @__PURE__ */ j(U, {
249
+ scope: e.__scopeAccordion,
250
+ value: E.useMemo(() => s ? [s] : [], [s]),
251
+ onItemOpen: c,
252
+ onItemClose: E.useCallback(() => a && c(""), [a, c]),
253
+ children: /* @__PURE__ */ j(W, {
254
+ scope: e.__scopeAccordion,
255
+ collapsible: a,
256
+ children: /* @__PURE__ */ j(K, {
257
+ ...o,
258
+ ref: t
259
+ })
260
+ })
261
+ });
262
+ }), Bt = E.forwardRef((e, t) => {
263
+ let { value: n, defaultValue: r, onValueChange: i = () => {}, ...a } = e, [o, s] = b({
264
+ prop: n,
265
+ defaultProp: r ?? [],
266
+ onChange: i,
267
+ caller: R
268
+ }), c = E.useCallback((e) => s((t = []) => [...t, e]), [s]), l = E.useCallback((e) => s((t = []) => t.filter((t) => t !== e)), [s]);
269
+ return /* @__PURE__ */ j(U, {
270
+ scope: e.__scopeAccordion,
271
+ value: o,
272
+ onItemOpen: c,
273
+ onItemClose: l,
274
+ children: /* @__PURE__ */ j(W, {
275
+ scope: e.__scopeAccordion,
276
+ collapsible: !0,
277
+ children: /* @__PURE__ */ j(K, {
278
+ ...a,
279
+ ref: t
280
+ })
281
+ })
282
+ });
283
+ }), [Vt, G] = B(R), K = E.forwardRef((e, t) => {
284
+ let { __scopeAccordion: n, disabled: r, dir: i, orientation: a = "vertical", ...o } = e, s = f(E.useRef(null), t), c = Pt(n), l = me(i) === "ltr", u = m(e.onKeyDown, (e) => {
285
+ if (!Nt.includes(e.key)) return;
286
+ let t = e.target, n = c().filter((e) => !e.ref.current?.disabled), r = n.findIndex((e) => e.ref.current === t), i = n.length;
287
+ if (r === -1) return;
288
+ e.preventDefault();
289
+ let o = r, s = i - 1, u = () => {
290
+ o = r + 1, o > s && (o = 0);
291
+ }, d = () => {
292
+ o = r - 1, o < 0 && (o = s);
293
+ };
294
+ switch (e.key) {
295
+ case "Home":
296
+ o = 0;
297
+ break;
298
+ case "End":
299
+ o = s;
300
+ break;
301
+ case "ArrowRight":
302
+ a === "horizontal" && (l ? u() : d());
303
+ break;
304
+ case "ArrowDown":
305
+ a === "vertical" && u();
306
+ break;
307
+ case "ArrowLeft":
308
+ a === "horizontal" && (l ? d() : u());
309
+ break;
310
+ case "ArrowUp":
311
+ a === "vertical" && d();
312
+ break;
313
+ }
314
+ n[o % i].ref.current?.focus();
315
+ });
316
+ return /* @__PURE__ */ j(Vt, {
317
+ scope: n,
318
+ disabled: r,
319
+ direction: i,
320
+ orientation: a,
321
+ children: /* @__PURE__ */ j(z.Slot, {
322
+ scope: n,
323
+ children: /* @__PURE__ */ j(y.div, {
324
+ ...o,
325
+ "data-orientation": a,
326
+ ref: s,
327
+ onKeyDown: r ? void 0 : u
328
+ })
329
+ })
330
+ });
331
+ }), q = "AccordionItem", [Ht, J] = B(q), Y = E.forwardRef((e, t) => {
332
+ let { __scopeAccordion: n, value: r, ...i } = e, a = G(q, n), o = Lt(q, n), s = V(n), c = u(), l = r && o.value.includes(r) || !1, d = a.disabled || e.disabled;
333
+ return /* @__PURE__ */ j(Ht, {
334
+ scope: n,
335
+ open: l,
336
+ disabled: d,
337
+ triggerId: c,
338
+ children: /* @__PURE__ */ j(De, {
339
+ "data-orientation": a.orientation,
340
+ "data-state": qt(l),
341
+ ...s,
342
+ ...i,
343
+ ref: t,
344
+ disabled: d,
345
+ open: l,
346
+ onOpenChange: (e) => {
347
+ e ? o.onItemOpen(r) : o.onItemClose(r);
348
+ }
349
+ })
350
+ });
351
+ });
352
+ Y.displayName = q;
353
+ var X = "AccordionHeader", Ut = E.forwardRef((e, t) => {
354
+ let { __scopeAccordion: n, ...r } = e, i = G(R, n), a = J(X, n);
355
+ return /* @__PURE__ */ j(y.h3, {
356
+ "data-orientation": i.orientation,
357
+ "data-state": qt(a.open),
358
+ "data-disabled": a.disabled ? "" : void 0,
359
+ ...r,
360
+ ref: t
361
+ });
362
+ });
363
+ Ut.displayName = X;
364
+ var Z = "AccordionTrigger", Wt = E.forwardRef((e, t) => {
365
+ let { __scopeAccordion: n, ...r } = e, i = G(R, n), a = J(Z, n), o = Rt(Z, n), s = V(n);
366
+ return /* @__PURE__ */ j(z.ItemSlot, {
367
+ scope: n,
368
+ children: /* @__PURE__ */ j(We, {
369
+ "aria-disabled": a.open && !o.collapsible || void 0,
370
+ "data-orientation": i.orientation,
371
+ id: a.triggerId,
372
+ ...s,
373
+ ...r,
374
+ ref: t
375
+ })
376
+ });
377
+ });
378
+ Wt.displayName = Z;
379
+ var Gt = "AccordionContent", Kt = E.forwardRef((e, t) => {
380
+ let { __scopeAccordion: n, ...r } = e, i = G(R, n), a = J(Gt, n), o = V(n);
381
+ return /* @__PURE__ */ j(rt, {
382
+ role: "region",
383
+ "aria-labelledby": a.triggerId,
384
+ "data-orientation": i.orientation,
385
+ ...o,
386
+ ...r,
387
+ ref: t,
388
+ style: {
389
+ "--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
390
+ "--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
391
+ ...e.style
392
+ }
393
+ });
394
+ });
395
+ Kt.displayName = Gt;
396
+ function qt(e) {
397
+ return e ? "open" : "closed";
398
+ }
399
+ var Jt = H, Yt = Y, Xt = Ut, Zt = Wt, Qt = Kt;
400
+ //#endregion
401
+ //#region src/components/ui/tree-view.tsx
402
+ function $t(e, t) {
403
+ return t ? { backgroundColor: "color-mix(in srgb, var(--imp-primary, #5B5BD6) 15%, transparent)" } : e ? { backgroundColor: "var(--imp-accent, #ededf7)" } : {};
404
+ }
405
+ var en = "group relative rounded-md px-2 cursor-pointer transition-colors", tn = "imp-tree-item-hover", nn = "font-medium", rn = E.forwardRef(({ data: e, initialSelectedItemId: t, onSelectChange: n, expandAll: r, defaultLeafIcon: i, defaultNodeIcon: a, className: o, onDocumentDrag: s, renderItem: c, ...l }, u) => {
406
+ let [d, f] = E.useState(t), [p, m] = E.useState(null), h = E.useCallback((e) => {
407
+ f(e?.id), n && n(e);
408
+ }, [n]), g = E.useCallback((e) => {
409
+ m(e);
410
+ }, []), _ = E.useCallback((e) => {
411
+ p && s && p.id !== e.id && s(p, e), m(null);
412
+ }, [p, s]), v = E.useMemo(() => {
413
+ if (!t) return [];
414
+ let n = [];
415
+ function i(e, t) {
416
+ if (Array.isArray(e)) for (let a = 0; a < e.length; a++) {
417
+ if (n.push(e[a].id), i(e[a], t) && !r) return !0;
418
+ r || n.pop();
419
+ }
420
+ else if (!r && e.id === t) return !0;
421
+ else if (e.children) return i(e.children, t);
422
+ }
423
+ return i(e, t), n;
424
+ }, [
425
+ e,
426
+ r,
427
+ t
428
+ ]);
429
+ return /* @__PURE__ */ M("div", {
430
+ className: T("overflow-hidden relative p-2", o),
431
+ children: [/* @__PURE__ */ j(Q, {
432
+ data: e,
433
+ ref: u,
434
+ selectedItemId: d,
435
+ handleSelectChange: h,
436
+ expandedItemIds: v,
437
+ defaultLeafIcon: i,
438
+ defaultNodeIcon: a,
439
+ handleDragStart: g,
440
+ handleDrop: _,
441
+ draggedItem: p,
442
+ renderItem: c,
443
+ level: 0,
444
+ ...l
445
+ }), /* @__PURE__ */ j("div", {
446
+ className: "w-full h-12",
447
+ onDrop: () => {
448
+ _({
449
+ id: "",
450
+ name: "parent_div"
451
+ });
452
+ }
453
+ })]
454
+ });
455
+ });
456
+ rn.displayName = "TreeView";
457
+ var Q = E.forwardRef(({ className: e, data: t, selectedItemId: n, handleSelectChange: r, expandedItemIds: i, defaultNodeIcon: a, defaultLeafIcon: o, handleDragStart: s, handleDrop: c, draggedItem: l, renderItem: u, level: d, onSelectChange: f, expandAll: p, initialSelectedItemId: m, onDocumentDrag: h, ...g }, _) => {
458
+ let v = t;
459
+ return Array.isArray(v) || (v = [v]), /* @__PURE__ */ j("div", {
460
+ ref: _,
461
+ role: "tree",
462
+ className: e,
463
+ ...g,
464
+ children: /* @__PURE__ */ j("ul", { children: v.map((e) => /* @__PURE__ */ j("li", { children: e.children ? /* @__PURE__ */ j(an, {
465
+ item: e,
466
+ level: d ?? 0,
467
+ selectedItemId: n,
468
+ expandedItemIds: i,
469
+ handleSelectChange: r,
470
+ defaultNodeIcon: a,
471
+ defaultLeafIcon: o,
472
+ handleDragStart: s,
473
+ handleDrop: c,
474
+ draggedItem: l,
475
+ renderItem: u
476
+ }) : /* @__PURE__ */ j(on, {
477
+ item: e,
478
+ level: d ?? 0,
479
+ selectedItemId: n,
480
+ handleSelectChange: r,
481
+ defaultLeafIcon: o,
482
+ handleDragStart: s,
483
+ handleDrop: c,
484
+ draggedItem: l,
485
+ renderItem: u
486
+ }) }, e.id)) })
487
+ });
488
+ });
489
+ Q.displayName = "TreeItem";
490
+ var an = ({ item: e, handleSelectChange: t, expandedItemIds: n, selectedItemId: r, defaultNodeIcon: i, defaultLeafIcon: a, handleDragStart: o, handleDrop: s, draggedItem: c, renderItem: l, level: u = 0 }) => {
491
+ let [d, f] = E.useState(n.includes(e.id) ? [e.id] : []), [p, m] = E.useState(!1), h = !!e.children?.length, g = r === e.id, _ = d.includes(e.id);
492
+ return /* @__PURE__ */ j(Jt, {
493
+ type: "multiple",
494
+ value: d,
495
+ onValueChange: (e) => f(e),
496
+ children: /* @__PURE__ */ M(Yt, {
497
+ value: e.id,
498
+ children: [/* @__PURE__ */ j(sn, {
499
+ className: T(en, tn, g && nn, e.className),
500
+ style: $t(g, p),
501
+ onClick: () => {
502
+ t(e), e.onClick?.();
503
+ },
504
+ draggable: !!e.draggable,
505
+ onDragStart: (t) => {
506
+ if (!e.draggable) {
507
+ t.preventDefault();
508
+ return;
509
+ }
510
+ t.dataTransfer.setData("text/plain", e.id), o?.(e);
511
+ },
512
+ onDragOver: (t) => {
513
+ e.droppable !== !1 && c && c.id !== e.id && (t.preventDefault(), m(!0));
514
+ },
515
+ onDragLeave: () => {
516
+ m(!1);
517
+ },
518
+ onDrop: (t) => {
519
+ t.preventDefault(), m(!1), s?.(e);
520
+ },
521
+ children: l ? l({
522
+ item: e,
523
+ level: u,
524
+ isLeaf: !1,
525
+ isSelected: g,
526
+ isOpen: _,
527
+ hasChildren: h
528
+ }) : /* @__PURE__ */ M(A, { children: [
529
+ /* @__PURE__ */ j(ln, {
530
+ item: e,
531
+ isSelected: g,
532
+ isOpen: _,
533
+ default: i
534
+ }),
535
+ /* @__PURE__ */ j("span", {
536
+ className: "min-w-0 flex-1 text-sm truncate",
537
+ title: e.name,
538
+ children: e.name
539
+ }),
540
+ e.trailingContent ? /* @__PURE__ */ j("span", {
541
+ className: "ml-2 shrink-0",
542
+ children: e.trailingContent
543
+ }) : null,
544
+ /* @__PURE__ */ j($, {
545
+ isSelected: g,
546
+ children: e.actions
547
+ })
548
+ ] })
549
+ }), /* @__PURE__ */ j(cn, {
550
+ className: T("ml-4 pl-1 border-l border-imp-border", e.childContainerClassName),
551
+ children: /* @__PURE__ */ j(Q, {
552
+ data: e.children ? e.children : e,
553
+ selectedItemId: r,
554
+ handleSelectChange: t,
555
+ expandedItemIds: n,
556
+ defaultLeafIcon: a,
557
+ defaultNodeIcon: i,
558
+ handleDragStart: o,
559
+ handleDrop: s,
560
+ draggedItem: c,
561
+ renderItem: l,
562
+ level: u + 1
563
+ })
564
+ })]
565
+ })
566
+ });
567
+ }, on = E.forwardRef(({ className: e, item: t, level: n, selectedItemId: r, handleSelectChange: i, defaultLeafIcon: a, handleDragStart: o, handleDrop: s, draggedItem: c, renderItem: l, ...u }, d) => {
568
+ let [f, p] = E.useState(!1), m = r === t.id;
569
+ return /* @__PURE__ */ j("div", {
570
+ ref: d,
571
+ className: T("ml-5 flex items-center py-2 text-left cursor-pointer", en, tn, e, m && nn, t.disabled && "opacity-50 cursor-not-allowed pointer-events-none", t.className),
572
+ style: $t(m, f),
573
+ onClick: () => {
574
+ t.disabled || (i(t), t.onClick?.());
575
+ },
576
+ draggable: !!t.draggable && !t.disabled,
577
+ onDragStart: (e) => {
578
+ if (!t.draggable || t.disabled) {
579
+ e.preventDefault();
580
+ return;
581
+ }
582
+ e.dataTransfer.setData("text/plain", t.id), o?.(t);
583
+ },
584
+ onDragOver: (e) => {
585
+ t.droppable !== !1 && !t.disabled && c && c.id !== t.id && (e.preventDefault(), p(!0));
586
+ },
587
+ onDragLeave: () => {
588
+ p(!1);
589
+ },
590
+ onDrop: (e) => {
591
+ t.disabled || (e.preventDefault(), p(!1), s?.(t));
592
+ },
593
+ ...u,
594
+ children: l ? /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j("div", { className: "h-4 w-4 shrink-0 mr-1" }), l({
595
+ item: t,
596
+ level: n,
597
+ isLeaf: !0,
598
+ isSelected: m,
599
+ hasChildren: !1
600
+ })] }) : /* @__PURE__ */ M(A, { children: [
601
+ /* @__PURE__ */ j(ln, {
602
+ item: t,
603
+ isSelected: m,
604
+ default: a
605
+ }),
606
+ /* @__PURE__ */ j("span", {
607
+ className: "grow min-w-0 text-sm truncate",
608
+ title: t.name,
609
+ children: t.name
610
+ }),
611
+ t.trailingContent ? /* @__PURE__ */ j("span", {
612
+ className: "ml-2 shrink-0",
613
+ children: t.trailingContent
614
+ }) : null,
615
+ /* @__PURE__ */ j($, {
616
+ isSelected: m && !t.disabled,
617
+ children: t.actions
618
+ })
619
+ ] })
620
+ });
621
+ });
622
+ on.displayName = "TreeLeaf";
623
+ var sn = E.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ j(Xt, { children: /* @__PURE__ */ M(Zt, {
624
+ ref: r,
625
+ className: T("flex w-full flex-1 items-center py-2 text-left transition-all first:[&[data-state=open]>svg]:first-of-type:rotate-90", e),
626
+ ...n,
627
+ children: [/* @__PURE__ */ j(gt, { className: "mr-1 h-4 w-4 shrink-0 text-accent-foreground/50 transition-transform duration-200" }), t]
628
+ }) }));
629
+ sn.displayName = Zt.displayName;
630
+ var cn = E.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ j(Qt, {
631
+ ref: r,
632
+ className: T("overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down", e),
633
+ ...n,
634
+ children: /* @__PURE__ */ j("div", {
635
+ className: "pb-1 pt-0",
636
+ children: t
637
+ })
638
+ }));
639
+ cn.displayName = Qt.displayName;
640
+ var ln = ({ item: e, isOpen: t, isSelected: n, default: r }) => {
641
+ let i = r;
642
+ return n && e.selectedIcon ? i = e.selectedIcon : t && e.openIcon ? i = e.openIcon : e.icon && (i = e.icon), i ? /* @__PURE__ */ j(i, { className: "h-4 w-4 shrink-0 mr-2" }) : /* @__PURE__ */ j(A, {});
643
+ }, $ = ({ children: e, isSelected: t }) => /* @__PURE__ */ j("div", {
644
+ className: T(t ? "block" : "hidden", "absolute right-3 group-hover:block"),
645
+ children: e
646
+ });
647
+ //#endregion
648
+ //#region src/components/ui/dropdown-menu.tsx
649
+ function un({ ...e }) {
650
+ return /* @__PURE__ */ j(P.Root, {
651
+ "data-slot": "dropdown-menu",
652
+ ...e
653
+ });
654
+ }
655
+ function dn({ ...e }) {
656
+ return /* @__PURE__ */ j(P.Trigger, {
657
+ "data-slot": "dropdown-menu-trigger",
658
+ ...e
659
+ });
660
+ }
661
+ function fn({ className: e, sideOffset: t = 4, ...n }) {
662
+ let r = Ze();
663
+ return /* @__PURE__ */ j(P.Portal, { children: /* @__PURE__ */ j("div", {
664
+ className: r,
665
+ children: /* @__PURE__ */ j(P.Content, {
666
+ "data-slot": "dropdown-menu-content",
667
+ sideOffset: t,
668
+ className: T("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", e),
669
+ ...n
670
+ })
671
+ }) });
672
+ }
673
+ function pn({ className: e, inset: t, variant: n = "default", ...r }) {
674
+ return /* @__PURE__ */ j(P.Item, {
675
+ "data-slot": "dropdown-menu-item",
676
+ "data-inset": t,
677
+ "data-variant": n,
678
+ className: T("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
679
+ ...r
680
+ });
681
+ }
682
+ function mn({ ...e }) {
683
+ return /* @__PURE__ */ j(P.RadioGroup, {
684
+ "data-slot": "dropdown-menu-radio-group",
685
+ ...e
686
+ });
687
+ }
688
+ function hn({ className: e, children: t, ...n }) {
689
+ return /* @__PURE__ */ M(P.RadioItem, {
690
+ "data-slot": "dropdown-menu-radio-item",
691
+ className: T("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", e),
692
+ ...n,
693
+ children: [/* @__PURE__ */ j("span", {
694
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
695
+ children: /* @__PURE__ */ j(P.ItemIndicator, { children: /* @__PURE__ */ j(_t, { className: "size-2 fill-current" }) })
696
+ }), t]
697
+ });
698
+ }
699
+ function gn({ className: e, inset: t, ...n }) {
700
+ return /* @__PURE__ */ j(P.Label, {
701
+ "data-slot": "dropdown-menu-label",
702
+ "data-inset": t,
703
+ className: T("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", e),
704
+ ...n
705
+ });
706
+ }
707
+ function _n({ className: e, ...t }) {
708
+ return /* @__PURE__ */ j(P.Separator, {
709
+ "data-slot": "dropdown-menu-separator",
710
+ className: T("bg-border -mx-1 my-1 h-px", e),
711
+ ...t
712
+ });
713
+ }
714
+ //#endregion
715
+ export { xe as ApiClient, v as ApiProvider, ut as Dialog, fe as DialogClose, c as DialogContent, o as DialogDescription, ae as DialogFooter, He as DialogHeader, t as DialogOverlay, Be as DialogPortal, ne as DialogTitle, re as DialogTrigger, un as DropdownMenu, fn as DropdownMenuContent, pn as DropdownMenuItem, gn as DropdownMenuLabel, mn as DropdownMenuRadioGroup, hn as DropdownMenuRadioItem, _n as DropdownMenuSeparator, dn as DropdownMenuTrigger, tt as FlowEditor, at as Invect, it as InvectLoader, Je as InvectLogo, F as InvectShell, Xe as OAuth2CallbackHandler, Ve as PageLayout, rn as TreeView, ce as ValidationError, S as getErrorMessage, p as queryKeys, yt as useActiveFlowId, vt as useActiveFlowRunId, et as useActiveModal, _ as useActiveSidebarTab, Re as useAgentTools, ye as useApiBaseURL, C as useApiClient, d as useAvailableNodes, Oe as useCancelFlowRun, ke as useCreateCredential, Ee as useCreateFlow, pt as useCreateFlowVersion, de as useCreateFlowWithVersion, Ot as useCreateTrigger, Me as useCredential, Qe as useCredentialUsage, Ke as useCredentials, a as useDashboardStats, Ie as useDeleteCredential, dt as useDeleteFlow, At as useDeleteTrigger, Ge as useExecuteFlow, st as useExecuteFlowToNode, g as useExecuteModelPrompt, te as useExecuteSqlQuery, Tt as useExecutionFilters, St as useExecutionPagination, Ct as useExecutionSorting, L as useExecutionViewStore, pe as useFlow, l as useFlowReactFlowData, Ae as useFlowRun, Ne as useFlowRuns, Et as useFlowTriggers, s as useFlowVersions, oe as useFlows, Pe as useHandleOAuth2Callback, $e as useLatestFlowRun, le as useListAvailableModels, qe as useListFlowRuns, ht as useListQueryDatabases, r as useLoadFieldOptions, ve as useLogsPanelOpen, wt as useLogsState, _e as useModalData, be as useModals, Le as useNodeExecutions, se as useNodeSidebarOpen, Se as useOAuth2Provider, ct as useOAuth2Providers, Fe as usePauseFlowRun, ie as usePluginRegistry, mt as useRefreshOAuth2Credential, ge as useResolveNodeDefinition, Ce as useResumeFlowRun, bt as useSelectedExecutionNodeId, e as useSidebarCollapsed, Te as useStartOAuth2Flow, xt as useStatusFilter, jt as useSyncTriggers, ft as useTestCredential, ue as useTestCredentialRequest, h as useTestJsExpression, he as useTestMapper, lt as useTestNode, Dt as useTrigger, je as useUIStore, i as useUpdateCredential, Ue as useUpdateFlow, kt as useUpdateTrigger, n as useValidateFlow, ot as useValidationPanelOpen };
716
+
717
+ //# sourceMappingURL=index.js.map