@nuraly/lumenui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +248 -0
  3. package/dist/nuralyui.bundle.js +29209 -0
  4. package/dist/nuralyui.bundle.js.gz +0 -0
  5. package/dist/src/components/alert/alert.component.d.ts +103 -0
  6. package/dist/src/components/alert/alert.component.js +225 -0
  7. package/dist/src/components/alert/alert.style.d.ts +14 -0
  8. package/dist/src/components/alert/alert.style.js +191 -0
  9. package/dist/src/components/alert/alert.types.d.ts +46 -0
  10. package/dist/src/components/alert/alert.types.js +7 -0
  11. package/dist/src/components/alert/bundle.js +231 -0
  12. package/dist/src/components/alert/bundle.js.gz +0 -0
  13. package/dist/src/components/alert/index.d.ts +8 -0
  14. package/dist/src/components/alert/index.js +8 -0
  15. package/dist/src/components/alert/react.d.ts +5 -0
  16. package/dist/src/components/alert/react.js +17 -0
  17. package/dist/src/components/badge/badge.component.d.ts +148 -0
  18. package/dist/src/components/badge/badge.component.js +270 -0
  19. package/dist/src/components/badge/badge.style.d.ts +14 -0
  20. package/dist/src/components/badge/badge.style.js +250 -0
  21. package/dist/src/components/badge/badge.types.d.ts +84 -0
  22. package/dist/src/components/badge/badge.types.js +7 -0
  23. package/dist/src/components/badge/bundle.js +277 -0
  24. package/dist/src/components/badge/bundle.js.gz +0 -0
  25. package/dist/src/components/badge/index.d.ts +2 -0
  26. package/dist/src/components/badge/index.js +2 -0
  27. package/dist/src/components/badge/react.d.ts +3 -0
  28. package/dist/src/components/badge/react.js +10 -0
  29. package/dist/src/components/breadcrumb/breadcrumb.component.d.ts +121 -0
  30. package/dist/src/components/breadcrumb/breadcrumb.component.js +257 -0
  31. package/dist/src/components/breadcrumb/breadcrumb.style.d.ts +14 -0
  32. package/dist/src/components/breadcrumb/breadcrumb.style.js +153 -0
  33. package/dist/src/components/breadcrumb/breadcrumb.types.d.ts +63 -0
  34. package/dist/src/components/breadcrumb/breadcrumb.types.js +7 -0
  35. package/dist/src/components/breadcrumb/bundle.js +213 -0
  36. package/dist/src/components/breadcrumb/bundle.js.gz +0 -0
  37. package/dist/src/components/breadcrumb/index.d.ts +2 -0
  38. package/dist/src/components/breadcrumb/index.js +2 -0
  39. package/dist/src/components/breadcrumb/react.d.ts +5 -0
  40. package/dist/src/components/breadcrumb/react.js +12 -0
  41. package/dist/src/components/button/bundle.js +606 -0
  42. package/dist/src/components/button/bundle.js.gz +0 -0
  43. package/dist/src/components/button/button.component.d.ts +96 -0
  44. package/dist/src/components/button/button.component.js +312 -0
  45. package/dist/src/components/button/button.style.d.ts +10 -0
  46. package/dist/src/components/button/button.style.js +535 -0
  47. package/dist/src/components/button/button.types.d.ts +57 -0
  48. package/dist/src/components/button/button.types.js +2 -0
  49. package/dist/src/components/button/index.d.ts +2 -0
  50. package/dist/src/components/button/index.js +2 -0
  51. package/dist/src/components/button/react.d.ts +5 -0
  52. package/dist/src/components/button/react.js +12 -0
  53. package/dist/src/components/canvas/base-canvas.component.d.ts +177 -0
  54. package/dist/src/components/canvas/base-canvas.component.js +865 -0
  55. package/dist/src/components/canvas/bundle.js +16664 -0
  56. package/dist/src/components/canvas/bundle.js.gz +0 -0
  57. package/dist/src/components/canvas/canvas.component.d.ts +2 -0
  58. package/dist/src/components/canvas/canvas.component.js +295 -0
  59. package/dist/src/components/canvas/canvas.constants.d.ts +66 -0
  60. package/dist/src/components/canvas/canvas.constants.js +61 -0
  61. package/dist/src/components/canvas/chatbot-panel.style.d.ts +11 -0
  62. package/dist/src/components/canvas/chatbot-panel.style.js +189 -0
  63. package/dist/src/components/canvas/index.d.ts +13 -0
  64. package/dist/src/components/canvas/index.js +21 -0
  65. package/dist/src/components/canvas/react.d.ts +354 -0
  66. package/dist/src/components/canvas/react.js +41 -0
  67. package/dist/src/components/canvas/whiteboard-canvas.component.d.ts +63 -0
  68. package/dist/src/components/canvas/whiteboard-canvas.component.js +356 -0
  69. package/dist/src/components/canvas/whiteboard-canvas.style.d.ts +7 -0
  70. package/dist/src/components/canvas/whiteboard-canvas.style.js +1011 -0
  71. package/dist/src/components/canvas/whiteboard-node.component.d.ts +87 -0
  72. package/dist/src/components/canvas/whiteboard-node.component.js +809 -0
  73. package/dist/src/components/canvas/whiteboard-node.style.d.ts +7 -0
  74. package/dist/src/components/canvas/whiteboard-node.style.js +775 -0
  75. package/dist/src/components/canvas/workflow-canvas.component.d.ts +150 -0
  76. package/dist/src/components/canvas/workflow-canvas.component.js +1468 -0
  77. package/dist/src/components/canvas/workflow-canvas.style.d.ts +8 -0
  78. package/dist/src/components/canvas/workflow-canvas.style.js +2903 -0
  79. package/dist/src/components/canvas/workflow-canvas.types.d.ts +710 -0
  80. package/dist/src/components/canvas/workflow-canvas.types.js +2305 -0
  81. package/dist/src/components/canvas/workflow-node.component.d.ts +96 -0
  82. package/dist/src/components/canvas/workflow-node.component.js +752 -0
  83. package/dist/src/components/canvas/workflow-node.style.d.ts +8 -0
  84. package/dist/src/components/canvas/workflow-node.style.js +1053 -0
  85. package/dist/src/components/card/bundle.js +69 -0
  86. package/dist/src/components/card/bundle.js.gz +0 -0
  87. package/dist/src/components/card/card.component.d.ts +30 -0
  88. package/dist/src/components/card/card.component.js +64 -0
  89. package/dist/src/components/card/card.style.d.ts +2 -0
  90. package/dist/src/components/card/card.style.js +62 -0
  91. package/dist/src/components/card/card.types.d.ts +17 -0
  92. package/dist/src/components/card/card.types.js +2 -0
  93. package/dist/src/components/card/index.d.ts +3 -0
  94. package/dist/src/components/card/index.js +3 -0
  95. package/dist/src/components/card/react.d.ts +5 -0
  96. package/dist/src/components/card/react.js +12 -0
  97. package/dist/src/components/carousel/bundle.js +96 -0
  98. package/dist/src/components/carousel/bundle.js.gz +0 -0
  99. package/dist/src/components/carousel/carousel.component.d.ts +19 -0
  100. package/dist/src/components/carousel/carousel.component.js +128 -0
  101. package/dist/src/components/carousel/carousel.style.d.ts +2 -0
  102. package/dist/src/components/carousel/carousel.style.js +68 -0
  103. package/dist/src/components/carousel/index.d.ts +2 -0
  104. package/dist/src/components/carousel/index.js +2 -0
  105. package/dist/src/components/carousel/react.d.ts +5 -0
  106. package/dist/src/components/carousel/react.js +12 -0
  107. package/dist/src/components/chatbot/bundle.js +2527 -0
  108. package/dist/src/components/chatbot/bundle.js.gz +0 -0
  109. package/dist/src/components/chatbot/chatbot.component.d.ts +215 -0
  110. package/dist/src/components/chatbot/chatbot.component.js +1097 -0
  111. package/dist/src/components/chatbot/chatbot.style.d.ts +3 -0
  112. package/dist/src/components/chatbot/chatbot.style.js +1638 -0
  113. package/dist/src/components/chatbot/chatbot.types.d.ts +246 -0
  114. package/dist/src/components/chatbot/chatbot.types.js +124 -0
  115. package/dist/src/components/chatbot/index.d.ts +13 -0
  116. package/dist/src/components/chatbot/index.js +20 -0
  117. package/dist/src/components/chatbot/react.d.ts +54 -0
  118. package/dist/src/components/chatbot/react.js +55 -0
  119. package/dist/src/components/checkbox/bundle.js +352 -0
  120. package/dist/src/components/checkbox/bundle.js.gz +0 -0
  121. package/dist/src/components/checkbox/checkbox.component.d.ts +62 -0
  122. package/dist/src/components/checkbox/checkbox.component.js +178 -0
  123. package/dist/src/components/checkbox/checkbox.style.d.ts +2 -0
  124. package/dist/src/components/checkbox/checkbox.style.js +323 -0
  125. package/dist/src/components/checkbox/checkbox.types.d.ts +6 -0
  126. package/dist/src/components/checkbox/checkbox.types.js +2 -0
  127. package/dist/src/components/checkbox/index.d.ts +2 -0
  128. package/dist/src/components/checkbox/index.js +2 -0
  129. package/dist/src/components/checkbox/react.d.ts +5 -0
  130. package/dist/src/components/checkbox/react.js +12 -0
  131. package/dist/src/components/code-editor/bundle.js +55 -0
  132. package/dist/src/components/code-editor/bundle.js.gz +0 -0
  133. package/dist/src/components/code-editor/code-editor.component.d.ts +119 -0
  134. package/dist/src/components/code-editor/code-editor.component.js +532 -0
  135. package/dist/src/components/code-editor/code-editor.style.d.ts +7 -0
  136. package/dist/src/components/code-editor/code-editor.style.js +39 -0
  137. package/dist/src/components/code-editor/code-editor.types.d.ts +39 -0
  138. package/dist/src/components/code-editor/code-editor.types.js +22 -0
  139. package/dist/src/components/code-editor/index.d.ts +9 -0
  140. package/dist/src/components/code-editor/index.js +9 -0
  141. package/dist/src/components/collapse/bundle.js +308 -0
  142. package/dist/src/components/collapse/bundle.js.gz +0 -0
  143. package/dist/src/components/collapse/collapse.component.d.ts +93 -0
  144. package/dist/src/components/collapse/collapse.component.js +322 -0
  145. package/dist/src/components/collapse/collapse.style.d.ts +11 -0
  146. package/dist/src/components/collapse/collapse.style.js +234 -0
  147. package/dist/src/components/collapse/collapse.type.d.ts +79 -0
  148. package/dist/src/components/collapse/collapse.type.js +11 -0
  149. package/dist/src/components/collapse/index.d.ts +2 -0
  150. package/dist/src/components/collapse/index.js +2 -0
  151. package/dist/src/components/collapse/react.d.ts +6 -0
  152. package/dist/src/components/collapse/react.js +13 -0
  153. package/dist/src/components/colorpicker/bundle.js +242 -0
  154. package/dist/src/components/colorpicker/bundle.js.gz +0 -0
  155. package/dist/src/components/colorpicker/color-holder.component.d.ts +50 -0
  156. package/dist/src/components/colorpicker/color-holder.component.js +116 -0
  157. package/dist/src/components/colorpicker/color-holder.style.d.ts +2 -0
  158. package/dist/src/components/colorpicker/color-holder.style.js +45 -0
  159. package/dist/src/components/colorpicker/color-picker.component.d.ts +178 -0
  160. package/dist/src/components/colorpicker/color-picker.component.js +374 -0
  161. package/dist/src/components/colorpicker/color-picker.style.d.ts +10 -0
  162. package/dist/src/components/colorpicker/color-picker.style.js +86 -0
  163. package/dist/src/components/colorpicker/color-picker.types.d.ts +60 -0
  164. package/dist/src/components/colorpicker/color-picker.types.js +2 -0
  165. package/dist/src/components/colorpicker/default-color-sets.component.d.ts +45 -0
  166. package/dist/src/components/colorpicker/default-color-sets.component.js +121 -0
  167. package/dist/src/components/colorpicker/default-color-sets.style.d.ts +2 -0
  168. package/dist/src/components/colorpicker/default-color-sets.style.js +34 -0
  169. package/dist/src/components/colorpicker/index.d.ts +3 -0
  170. package/dist/src/components/colorpicker/index.js +3 -0
  171. package/dist/src/components/colorpicker/react.d.ts +6 -0
  172. package/dist/src/components/colorpicker/react.js +13 -0
  173. package/dist/src/components/console/react.d.ts +340 -0
  174. package/dist/src/components/console/react.js +13 -0
  175. package/dist/src/components/container/bundle.js +161 -0
  176. package/dist/src/components/container/bundle.js.gz +0 -0
  177. package/dist/src/components/container/container.component.d.ts +85 -0
  178. package/dist/src/components/container/container.component.js +223 -0
  179. package/dist/src/components/container/container.style.d.ts +6 -0
  180. package/dist/src/components/container/container.style.js +146 -0
  181. package/dist/src/components/container/container.types.d.ts +67 -0
  182. package/dist/src/components/container/container.types.js +5 -0
  183. package/dist/src/components/container/index.d.ts +3 -0
  184. package/dist/src/components/container/index.js +3 -0
  185. package/dist/src/components/container/react.d.ts +3 -0
  186. package/dist/src/components/container/react.js +10 -0
  187. package/dist/src/components/datepicker/bundle.js +706 -0
  188. package/dist/src/components/datepicker/bundle.js.gz +0 -0
  189. package/dist/src/components/datepicker/datepicker.component.d.ts +190 -0
  190. package/dist/src/components/datepicker/datepicker.component.js +673 -0
  191. package/dist/src/components/datepicker/datepicker.constant.d.ts +60 -0
  192. package/dist/src/components/datepicker/datepicker.constant.js +60 -0
  193. package/dist/src/components/datepicker/datepicker.style.d.ts +17 -0
  194. package/dist/src/components/datepicker/datepicker.style.js +453 -0
  195. package/dist/src/components/datepicker/datepicker.style.variables.d.ts +2 -0
  196. package/dist/src/components/datepicker/datepicker.style.variables.js +119 -0
  197. package/dist/src/components/datepicker/datepicker.types.d.ts +142 -0
  198. package/dist/src/components/datepicker/datepicker.types.js +75 -0
  199. package/dist/src/components/datepicker/index.d.ts +4 -0
  200. package/dist/src/components/datepicker/index.js +4 -0
  201. package/dist/src/components/datepicker/react.d.ts +16 -0
  202. package/dist/src/components/datepicker/react.js +23 -0
  203. package/dist/src/components/db-connection-select/bundle.js +308 -0
  204. package/dist/src/components/db-connection-select/bundle.js.gz +0 -0
  205. package/dist/src/components/db-connection-select/db-connection-select.component.d.ts +105 -0
  206. package/dist/src/components/db-connection-select/db-connection-select.component.js +573 -0
  207. package/dist/src/components/db-connection-select/index.d.ts +7 -0
  208. package/dist/src/components/db-connection-select/index.js +7 -0
  209. package/dist/src/components/divider/bundle.js +143 -0
  210. package/dist/src/components/divider/bundle.js.gz +0 -0
  211. package/dist/src/components/divider/divider.component.d.ts +90 -0
  212. package/dist/src/components/divider/divider.component.js +168 -0
  213. package/dist/src/components/divider/divider.style.d.ts +3 -0
  214. package/dist/src/components/divider/divider.style.js +139 -0
  215. package/dist/src/components/divider/divider.types.d.ts +55 -0
  216. package/dist/src/components/divider/divider.types.js +6 -0
  217. package/dist/src/components/divider/index.d.ts +3 -0
  218. package/dist/src/components/divider/index.js +3 -0
  219. package/dist/src/components/divider/react.d.ts +3 -0
  220. package/dist/src/components/divider/react.js +10 -0
  221. package/dist/src/components/document/bundle.js +242 -0
  222. package/dist/src/components/document/bundle.js.gz +0 -0
  223. package/dist/src/components/document/document.component.d.ts +27 -0
  224. package/dist/src/components/document/document.component.js +136 -0
  225. package/dist/src/components/document/document.style.d.ts +3 -0
  226. package/dist/src/components/document/document.style.js +210 -0
  227. package/dist/src/components/document/document.types.d.ts +68 -0
  228. package/dist/src/components/document/document.types.js +7 -0
  229. package/dist/src/components/document/index.d.ts +3 -0
  230. package/dist/src/components/document/index.js +3 -0
  231. package/dist/src/components/document/react.d.ts +8 -0
  232. package/dist/src/components/document/react.js +15 -0
  233. package/dist/src/components/dropdown/bundle.js +528 -0
  234. package/dist/src/components/dropdown/bundle.js.gz +0 -0
  235. package/dist/src/components/dropdown/dropdown.component.d.ts +120 -0
  236. package/dist/src/components/dropdown/dropdown.component.js +390 -0
  237. package/dist/src/components/dropdown/dropdown.style.d.ts +2 -0
  238. package/dist/src/components/dropdown/dropdown.style.js +460 -0
  239. package/dist/src/components/dropdown/dropdown.types.d.ts +99 -0
  240. package/dist/src/components/dropdown/dropdown.types.js +2 -0
  241. package/dist/src/components/dropdown/index.d.ts +3 -0
  242. package/dist/src/components/dropdown/index.js +3 -0
  243. package/dist/src/components/dropdown/react.d.ts +7 -0
  244. package/dist/src/components/dropdown/react.js +14 -0
  245. package/dist/src/components/file-upload/bundle.js +472 -0
  246. package/dist/src/components/file-upload/bundle.js.gz +0 -0
  247. package/dist/src/components/file-upload/file-upload.component.d.ts +43 -0
  248. package/dist/src/components/file-upload/file-upload.component.js +398 -0
  249. package/dist/src/components/file-upload/index.d.ts +2 -0
  250. package/dist/src/components/file-upload/index.js +2 -0
  251. package/dist/src/components/file-upload/react.d.ts +7 -0
  252. package/dist/src/components/file-upload/react.js +14 -0
  253. package/dist/src/components/file-upload/styles.d.ts +2 -0
  254. package/dist/src/components/file-upload/styles.js +373 -0
  255. package/dist/src/components/file-upload/types.d.ts +11 -0
  256. package/dist/src/components/file-upload/types.js +2 -0
  257. package/dist/src/components/file-upload/utils.d.ts +6 -0
  258. package/dist/src/components/file-upload/utils.js +24 -0
  259. package/dist/src/components/flex/bundle.js +114 -0
  260. package/dist/src/components/flex/bundle.js.gz +0 -0
  261. package/dist/src/components/flex/flex.component.d.ts +89 -0
  262. package/dist/src/components/flex/flex.component.js +178 -0
  263. package/dist/src/components/flex/flex.style.d.ts +6 -0
  264. package/dist/src/components/flex/flex.style.js +101 -0
  265. package/dist/src/components/flex/flex.types.d.ts +63 -0
  266. package/dist/src/components/flex/flex.types.js +5 -0
  267. package/dist/src/components/flex/index.d.ts +3 -0
  268. package/dist/src/components/flex/index.js +3 -0
  269. package/dist/src/components/flex/react.d.ts +3 -0
  270. package/dist/src/components/flex/react.js +10 -0
  271. package/dist/src/components/form/bundle.js +98 -0
  272. package/dist/src/components/form/bundle.js.gz +0 -0
  273. package/dist/src/components/form/form.component.d.ts +279 -0
  274. package/dist/src/components/form/form.component.js +644 -0
  275. package/dist/src/components/form/form.style.d.ts +7 -0
  276. package/dist/src/components/form/form.style.js +68 -0
  277. package/dist/src/components/form/form.types.d.ts +92 -0
  278. package/dist/src/components/form/form.types.js +38 -0
  279. package/dist/src/components/form/index.d.ts +10 -0
  280. package/dist/src/components/form/index.js +13 -0
  281. package/dist/src/components/grid/bundle.js +202 -0
  282. package/dist/src/components/grid/bundle.js.gz +0 -0
  283. package/dist/src/components/grid/col.component.d.ts +103 -0
  284. package/dist/src/components/grid/col.component.js +253 -0
  285. package/dist/src/components/grid/col.style.d.ts +6 -0
  286. package/dist/src/components/grid/col.style.js +117 -0
  287. package/dist/src/components/grid/grid.types.d.ts +80 -0
  288. package/dist/src/components/grid/grid.types.js +16 -0
  289. package/dist/src/components/grid/index.d.ts +4 -0
  290. package/dist/src/components/grid/index.js +4 -0
  291. package/dist/src/components/grid/react.d.ts +5 -0
  292. package/dist/src/components/grid/react.js +17 -0
  293. package/dist/src/components/grid/row.component.d.ts +83 -0
  294. package/dist/src/components/grid/row.component.js +197 -0
  295. package/dist/src/components/grid/row.style.d.ts +6 -0
  296. package/dist/src/components/grid/row.style.js +68 -0
  297. package/dist/src/components/icon/bundle.js +340 -0
  298. package/dist/src/components/icon/bundle.js.gz +0 -0
  299. package/dist/src/components/icon/icon.component.d.ts +64 -0
  300. package/dist/src/components/icon/icon.component.js +207 -0
  301. package/dist/src/components/icon/icon.style.d.ts +2 -0
  302. package/dist/src/components/icon/icon.style.js +211 -0
  303. package/dist/src/components/icon/icon.types.d.ts +5 -0
  304. package/dist/src/components/icon/icon.types.js +2 -0
  305. package/dist/src/components/icon/icon.variables.d.ts +17 -0
  306. package/dist/src/components/icon/icon.variables.js +132 -0
  307. package/dist/src/components/icon/index.d.ts +2 -0
  308. package/dist/src/components/icon/index.js +2 -0
  309. package/dist/src/components/icon/react.d.ts +3 -0
  310. package/dist/src/components/icon/react.js +9 -0
  311. package/dist/src/components/iconpicker/bundle.js +2811 -0
  312. package/dist/src/components/iconpicker/bundle.js.gz +0 -0
  313. package/dist/src/components/iconpicker/icon-picker.component.d.ts +119 -0
  314. package/dist/src/components/iconpicker/icon-picker.component.js +337 -0
  315. package/dist/src/components/iconpicker/icon-picker.constant.d.ts +15 -0
  316. package/dist/src/components/iconpicker/icon-picker.constant.js +31 -0
  317. package/dist/src/components/iconpicker/icon-picker.style.d.ts +8 -0
  318. package/dist/src/components/iconpicker/icon-picker.style.js +216 -0
  319. package/dist/src/components/iconpicker/icon-picker.types.d.ts +49 -0
  320. package/dist/src/components/iconpicker/icon-picker.types.js +7 -0
  321. package/dist/src/components/iconpicker/index.d.ts +9 -0
  322. package/dist/src/components/iconpicker/index.js +9 -0
  323. package/dist/src/components/iconpicker/react.d.ts +14 -0
  324. package/dist/src/components/iconpicker/react.js +21 -0
  325. package/dist/src/components/image/bundle.js +98 -0
  326. package/dist/src/components/image/bundle.js.gz +0 -0
  327. package/dist/src/components/image/image.component.d.ts +31 -0
  328. package/dist/src/components/image/image.component.js +143 -0
  329. package/dist/src/components/image/image.style.d.ts +3 -0
  330. package/dist/src/components/image/image.style.js +83 -0
  331. package/dist/src/components/image/image.types.d.ts +68 -0
  332. package/dist/src/components/image/image.types.js +7 -0
  333. package/dist/src/components/image/index.d.ts +3 -0
  334. package/dist/src/components/image/index.js +3 -0
  335. package/dist/src/components/image/react.d.ts +8 -0
  336. package/dist/src/components/image/react.js +15 -0
  337. package/dist/src/components/input/bundle.js +930 -0
  338. package/dist/src/components/input/bundle.js.gz +0 -0
  339. package/dist/src/components/input/index.d.ts +3 -0
  340. package/dist/src/components/input/index.js +3 -0
  341. package/dist/src/components/input/input.component.d.ts +174 -0
  342. package/dist/src/components/input/input.component.js +490 -0
  343. package/dist/src/components/input/input.style.d.ts +2 -0
  344. package/dist/src/components/input/input.style.js +810 -0
  345. package/dist/src/components/input/input.types.d.ts +127 -0
  346. package/dist/src/components/input/input.types.js +75 -0
  347. package/dist/src/components/input/react.d.ts +9 -0
  348. package/dist/src/components/input/react.js +16 -0
  349. package/dist/src/components/input/validation.d.ts +3 -0
  350. package/dist/src/components/input/validation.js +3 -0
  351. package/dist/src/components/kv-secret-select/bundle.js +183 -0
  352. package/dist/src/components/kv-secret-select/bundle.js.gz +0 -0
  353. package/dist/src/components/kv-secret-select/index.d.ts +2 -0
  354. package/dist/src/components/kv-secret-select/index.js +2 -0
  355. package/dist/src/components/kv-secret-select/kv-secret-select.component.d.ts +83 -0
  356. package/dist/src/components/kv-secret-select/kv-secret-select.component.js +360 -0
  357. package/dist/src/components/label/bundle.js +104 -0
  358. package/dist/src/components/label/bundle.js.gz +0 -0
  359. package/dist/src/components/label/index.d.ts +2 -0
  360. package/dist/src/components/label/index.js +2 -0
  361. package/dist/src/components/label/label.component.d.ts +18 -0
  362. package/dist/src/components/label/label.component.js +64 -0
  363. package/dist/src/components/label/label.style.d.ts +3 -0
  364. package/dist/src/components/label/label.style.js +70 -0
  365. package/dist/src/components/label/label.style.variables.d.ts +2 -0
  366. package/dist/src/components/label/label.style.variables.js +35 -0
  367. package/dist/src/components/label/label.types.d.ts +42 -0
  368. package/dist/src/components/label/label.types.js +2 -0
  369. package/dist/src/components/label/react.d.ts +339 -0
  370. package/dist/src/components/label/react.js +12 -0
  371. package/dist/src/components/layout/bundle.js +220 -0
  372. package/dist/src/components/layout/bundle.js.gz +0 -0
  373. package/dist/src/components/layout/content.component.d.ts +35 -0
  374. package/dist/src/components/layout/content.component.js +47 -0
  375. package/dist/src/components/layout/content.style.d.ts +2 -0
  376. package/dist/src/components/layout/content.style.js +17 -0
  377. package/dist/src/components/layout/footer.component.d.ts +38 -0
  378. package/dist/src/components/layout/footer.component.js +60 -0
  379. package/dist/src/components/layout/footer.style.d.ts +2 -0
  380. package/dist/src/components/layout/footer.style.js +17 -0
  381. package/dist/src/components/layout/header.component.d.ts +39 -0
  382. package/dist/src/components/layout/header.component.js +61 -0
  383. package/dist/src/components/layout/header.style.d.ts +2 -0
  384. package/dist/src/components/layout/header.style.js +19 -0
  385. package/dist/src/components/layout/index.d.ts +8 -0
  386. package/dist/src/components/layout/index.js +7 -0
  387. package/dist/src/components/layout/layout.component.d.ts +50 -0
  388. package/dist/src/components/layout/layout.component.js +89 -0
  389. package/dist/src/components/layout/layout.style.d.ts +2 -0
  390. package/dist/src/components/layout/layout.style.js +23 -0
  391. package/dist/src/components/layout/layout.types.d.ts +75 -0
  392. package/dist/src/components/layout/layout.types.js +12 -0
  393. package/dist/src/components/layout/react.d.ts +14 -0
  394. package/dist/src/components/layout/react.js +37 -0
  395. package/dist/src/components/layout/sider.component.d.ts +116 -0
  396. package/dist/src/components/layout/sider.component.js +273 -0
  397. package/dist/src/components/layout/sider.style.d.ts +2 -0
  398. package/dist/src/components/layout/sider.style.js +104 -0
  399. package/dist/src/components/menu/bundle.js +520 -0
  400. package/dist/src/components/menu/bundle.js.gz +0 -0
  401. package/dist/src/components/menu/index.d.ts +4 -0
  402. package/dist/src/components/menu/index.js +2 -0
  403. package/dist/src/components/menu/menu.component.d.ts +87 -0
  404. package/dist/src/components/menu/menu.component.js +596 -0
  405. package/dist/src/components/menu/menu.constants.d.ts +12 -0
  406. package/dist/src/components/menu/menu.constants.js +14 -0
  407. package/dist/src/components/menu/menu.style.d.ts +2 -0
  408. package/dist/src/components/menu/menu.style.js +372 -0
  409. package/dist/src/components/menu/menu.types.d.ts +66 -0
  410. package/dist/src/components/menu/menu.types.js +7 -0
  411. package/dist/src/components/menu/react.d.ts +5 -0
  412. package/dist/src/components/menu/react.js +12 -0
  413. package/dist/src/components/modal/bundle.js +442 -0
  414. package/dist/src/components/modal/bundle.js.gz +0 -0
  415. package/dist/src/components/modal/index.d.ts +10 -0
  416. package/dist/src/components/modal/index.js +10 -0
  417. package/dist/src/components/modal/modal-manager.d.ts +72 -0
  418. package/dist/src/components/modal/modal-manager.js +170 -0
  419. package/dist/src/components/modal/modal.component.d.ts +121 -0
  420. package/dist/src/components/modal/modal.component.js +461 -0
  421. package/dist/src/components/modal/modal.style.d.ts +9 -0
  422. package/dist/src/components/modal/modal.style.js +369 -0
  423. package/dist/src/components/modal/modal.types.d.ts +105 -0
  424. package/dist/src/components/modal/modal.types.js +93 -0
  425. package/dist/src/components/modal/react.d.ts +9 -0
  426. package/dist/src/components/modal/react.js +16 -0
  427. package/dist/src/components/panel/bundle.js +1075 -0
  428. package/dist/src/components/panel/bundle.js.gz +0 -0
  429. package/dist/src/components/panel/index.d.ts +9 -0
  430. package/dist/src/components/panel/index.js +9 -0
  431. package/dist/src/components/panel/panel.component.d.ts +199 -0
  432. package/dist/src/components/panel/panel.component.js +720 -0
  433. package/dist/src/components/panel/panel.style.d.ts +7 -0
  434. package/dist/src/components/panel/panel.style.js +497 -0
  435. package/dist/src/components/panel/panel.types.d.ts +94 -0
  436. package/dist/src/components/panel/panel.types.js +50 -0
  437. package/dist/src/components/panel/react.d.ts +11 -0
  438. package/dist/src/components/panel/react.js +18 -0
  439. package/dist/src/components/popconfirm/bundle.js +438 -0
  440. package/dist/src/components/popconfirm/bundle.js.gz +0 -0
  441. package/dist/src/components/popconfirm/index.d.ts +4 -0
  442. package/dist/src/components/popconfirm/index.js +4 -0
  443. package/dist/src/components/popconfirm/popconfirm-manager.component.d.ts +129 -0
  444. package/dist/src/components/popconfirm/popconfirm-manager.component.js +372 -0
  445. package/dist/src/components/popconfirm/popconfirm-manager.style.d.ts +2 -0
  446. package/dist/src/components/popconfirm/popconfirm-manager.style.js +137 -0
  447. package/dist/src/components/popconfirm/popconfirm.component.d.ts +179 -0
  448. package/dist/src/components/popconfirm/popconfirm.component.js +409 -0
  449. package/dist/src/components/popconfirm/popconfirm.style.d.ts +2 -0
  450. package/dist/src/components/popconfirm/popconfirm.style.js +207 -0
  451. package/dist/src/components/popconfirm/popconfirm.types.d.ts +104 -0
  452. package/dist/src/components/popconfirm/popconfirm.types.js +2 -0
  453. package/dist/src/components/popconfirm/react.d.ts +7 -0
  454. package/dist/src/components/popconfirm/react.js +14 -0
  455. package/dist/src/components/radio/bundle.js +180 -0
  456. package/dist/src/components/radio/bundle.js.gz +0 -0
  457. package/dist/src/components/radio/index.d.ts +3 -0
  458. package/dist/src/components/radio/index.js +3 -0
  459. package/dist/src/components/radio/radio.component.d.ts +70 -0
  460. package/dist/src/components/radio/radio.component.js +187 -0
  461. package/dist/src/components/radio/radio.style.d.ts +7 -0
  462. package/dist/src/components/radio/radio.style.js +149 -0
  463. package/dist/src/components/radio/radio.types.d.ts +14 -0
  464. package/dist/src/components/radio/radio.types.js +15 -0
  465. package/dist/src/components/radio/react.d.ts +12 -0
  466. package/dist/src/components/radio/react.js +19 -0
  467. package/dist/src/components/radio-group/bundle.js +430 -0
  468. package/dist/src/components/radio-group/bundle.js.gz +0 -0
  469. package/dist/src/components/radio-group/index.d.ts +3 -0
  470. package/dist/src/components/radio-group/index.js +3 -0
  471. package/dist/src/components/radio-group/radio-group.component.d.ts +165 -0
  472. package/dist/src/components/radio-group/radio-group.component.js +437 -0
  473. package/dist/src/components/radio-group/radio-group.style.d.ts +7 -0
  474. package/dist/src/components/radio-group/radio-group.style.js +270 -0
  475. package/dist/src/components/radio-group/radio-group.types.d.ts +39 -0
  476. package/dist/src/components/radio-group/radio-group.types.js +29 -0
  477. package/dist/src/components/radio-group/radio.constant.d.ts +2 -0
  478. package/dist/src/components/radio-group/radio.constant.js +2 -0
  479. package/dist/src/components/radio-group/react.d.ts +10 -0
  480. package/dist/src/components/radio-group/react.js +17 -0
  481. package/dist/src/components/select/bundle.js +721 -0
  482. package/dist/src/components/select/bundle.js.gz +0 -0
  483. package/dist/src/components/select/index.d.ts +17 -0
  484. package/dist/src/components/select/index.js +20 -0
  485. package/dist/src/components/select/react.d.ts +19 -0
  486. package/dist/src/components/select/react.js +26 -0
  487. package/dist/src/components/select/select.component.d.ts +359 -0
  488. package/dist/src/components/select/select.component.js +775 -0
  489. package/dist/src/components/select/select.constant.d.ts +133 -0
  490. package/dist/src/components/select/select.constant.js +136 -0
  491. package/dist/src/components/select/select.style.d.ts +2 -0
  492. package/dist/src/components/select/select.style.js +533 -0
  493. package/dist/src/components/select/select.types.d.ts +100 -0
  494. package/dist/src/components/select/select.types.js +73 -0
  495. package/dist/src/components/skeleton/bundle.js +293 -0
  496. package/dist/src/components/skeleton/bundle.js.gz +0 -0
  497. package/dist/src/components/skeleton/index.d.ts +3 -0
  498. package/dist/src/components/skeleton/index.js +3 -0
  499. package/dist/src/components/skeleton/react.d.ts +3 -0
  500. package/dist/src/components/skeleton/react.js +10 -0
  501. package/dist/src/components/skeleton/skeleton.component.d.ts +165 -0
  502. package/dist/src/components/skeleton/skeleton.component.js +387 -0
  503. package/dist/src/components/skeleton/skeleton.style.d.ts +2 -0
  504. package/dist/src/components/skeleton/skeleton.style.js +224 -0
  505. package/dist/src/components/skeleton/skeleton.types.d.ts +82 -0
  506. package/dist/src/components/skeleton/skeleton.types.js +2 -0
  507. package/dist/src/components/slider-input/bundle.js +241 -0
  508. package/dist/src/components/slider-input/bundle.js.gz +0 -0
  509. package/dist/src/components/slider-input/index.d.ts +3 -0
  510. package/dist/src/components/slider-input/index.js +3 -0
  511. package/dist/src/components/slider-input/react.d.ts +340 -0
  512. package/dist/src/components/slider-input/react.js +13 -0
  513. package/dist/src/components/slider-input/slider-input.component.d.ts +38 -0
  514. package/dist/src/components/slider-input/slider-input.component.js +191 -0
  515. package/dist/src/components/slider-input/slider-input.style.d.ts +3 -0
  516. package/dist/src/components/slider-input/slider-input.style.js +171 -0
  517. package/dist/src/components/slider-input/slider-input.style.variables.d.ts +2 -0
  518. package/dist/src/components/slider-input/slider-input.style.variables.js +59 -0
  519. package/dist/src/components/slider-input/slider-input.types.d.ts +21 -0
  520. package/dist/src/components/slider-input/slider-input.types.js +6 -0
  521. package/dist/src/components/table/bundle.js +987 -0
  522. package/dist/src/components/table/bundle.js.gz +0 -0
  523. package/dist/src/components/table/index.d.ts +2 -0
  524. package/dist/src/components/table/index.js +2 -0
  525. package/dist/src/components/table/react.d.ts +7 -0
  526. package/dist/src/components/table/react.js +14 -0
  527. package/dist/src/components/table/table.component.d.ts +140 -0
  528. package/dist/src/components/table/table.component.js +433 -0
  529. package/dist/src/components/table/table.style.d.ts +3 -0
  530. package/dist/src/components/table/table.style.js +702 -0
  531. package/dist/src/components/table/table.types.d.ts +103 -0
  532. package/dist/src/components/table/table.types.js +2 -0
  533. package/dist/src/components/tabs/bundle.js +1782 -0
  534. package/dist/src/components/tabs/bundle.js.gz +0 -0
  535. package/dist/src/components/tabs/index.d.ts +9 -0
  536. package/dist/src/components/tabs/index.js +10 -0
  537. package/dist/src/components/tabs/react.d.ts +50 -0
  538. package/dist/src/components/tabs/react.js +50 -0
  539. package/dist/src/components/tabs/tabs.component.d.ts +100 -0
  540. package/dist/src/components/tabs/tabs.component.js +461 -0
  541. package/dist/src/components/tabs/tabs.constant.d.ts +20 -0
  542. package/dist/src/components/tabs/tabs.constant.js +21 -0
  543. package/dist/src/components/tabs/tabs.style.d.ts +9 -0
  544. package/dist/src/components/tabs/tabs.style.js +577 -0
  545. package/dist/src/components/tabs/tabs.types.d.ts +241 -0
  546. package/dist/src/components/tabs/tabs.types.js +13 -0
  547. package/dist/src/components/tag/bundle.js +108 -0
  548. package/dist/src/components/tag/bundle.js.gz +0 -0
  549. package/dist/src/components/tag/index.d.ts +2 -0
  550. package/dist/src/components/tag/index.js +2 -0
  551. package/dist/src/components/tag/react.d.ts +6 -0
  552. package/dist/src/components/tag/react.js +13 -0
  553. package/dist/src/components/tag/tag.component.d.ts +57 -0
  554. package/dist/src/components/tag/tag.component.js +157 -0
  555. package/dist/src/components/tag/tag.style.d.ts +7 -0
  556. package/dist/src/components/tag/tag.style.js +88 -0
  557. package/dist/src/components/tag/tag.types.d.ts +28 -0
  558. package/dist/src/components/tag/tag.types.js +7 -0
  559. package/dist/src/components/textarea/bundle.js +404 -0
  560. package/dist/src/components/textarea/bundle.js.gz +0 -0
  561. package/dist/src/components/textarea/index.d.ts +8 -0
  562. package/dist/src/components/textarea/index.js +7 -0
  563. package/dist/src/components/textarea/react.d.ts +9 -0
  564. package/dist/src/components/textarea/react.js +16 -0
  565. package/dist/src/components/textarea/textarea.component.d.ts +203 -0
  566. package/dist/src/components/textarea/textarea.component.js +657 -0
  567. package/dist/src/components/textarea/textarea.style.d.ts +59 -0
  568. package/dist/src/components/textarea/textarea.style.js +386 -0
  569. package/dist/src/components/textarea/textarea.types.d.ts +102 -0
  570. package/dist/src/components/textarea/textarea.types.js +14 -0
  571. package/dist/src/components/timeline/bundle.js +261 -0
  572. package/dist/src/components/timeline/bundle.js.gz +0 -0
  573. package/dist/src/components/timeline/index.d.ts +2 -0
  574. package/dist/src/components/timeline/index.js +2 -0
  575. package/dist/src/components/timeline/react.d.ts +3 -0
  576. package/dist/src/components/timeline/react.js +10 -0
  577. package/dist/src/components/timeline/timeline.component.d.ts +109 -0
  578. package/dist/src/components/timeline/timeline.component.js +214 -0
  579. package/dist/src/components/timeline/timeline.style.d.ts +14 -0
  580. package/dist/src/components/timeline/timeline.style.js +234 -0
  581. package/dist/src/components/timeline/timeline.types.d.ts +62 -0
  582. package/dist/src/components/timeline/timeline.types.js +7 -0
  583. package/dist/src/components/timepicker/bundle.js +810 -0
  584. package/dist/src/components/timepicker/bundle.js.gz +0 -0
  585. package/dist/src/components/timepicker/index.d.ts +12 -0
  586. package/dist/src/components/timepicker/index.js +12 -0
  587. package/dist/src/components/timepicker/timepicker.component.d.ts +115 -0
  588. package/dist/src/components/timepicker/timepicker.component.js +743 -0
  589. package/dist/src/components/timepicker/timepicker.constants.d.ts +85 -0
  590. package/dist/src/components/timepicker/timepicker.constants.js +85 -0
  591. package/dist/src/components/timepicker/timepicker.style.d.ts +7 -0
  592. package/dist/src/components/timepicker/timepicker.style.js +568 -0
  593. package/dist/src/components/timepicker/timepicker.style.variables.d.ts +2 -0
  594. package/dist/src/components/timepicker/timepicker.style.variables.js +122 -0
  595. package/dist/src/components/timepicker/timepicker.types.d.ts +161 -0
  596. package/dist/src/components/timepicker/timepicker.types.js +125 -0
  597. package/dist/src/components/toast/bundle.js +393 -0
  598. package/dist/src/components/toast/bundle.js.gz +0 -0
  599. package/dist/src/components/toast/index.d.ts +9 -0
  600. package/dist/src/components/toast/index.js +9 -0
  601. package/dist/src/components/toast/react.d.ts +7 -0
  602. package/dist/src/components/toast/react.js +19 -0
  603. package/dist/src/components/toast/toast.component.d.ts +152 -0
  604. package/dist/src/components/toast/toast.component.js +368 -0
  605. package/dist/src/components/toast/toast.style.d.ts +14 -0
  606. package/dist/src/components/toast/toast.style.js +338 -0
  607. package/dist/src/components/toast/toast.types.d.ts +124 -0
  608. package/dist/src/components/toast/toast.types.js +9 -0
  609. package/dist/src/components/tooltips/bundle.js +123 -0
  610. package/dist/src/components/tooltips/bundle.js.gz +0 -0
  611. package/dist/src/components/tooltips/index.d.ts +2 -0
  612. package/dist/src/components/tooltips/index.js +2 -0
  613. package/dist/src/components/tooltips/react.d.ts +1 -0
  614. package/dist/src/components/tooltips/react.js +2 -0
  615. package/dist/src/components/tooltips/tooltips.component.d.ts +33 -0
  616. package/dist/src/components/tooltips/tooltips.component.js +313 -0
  617. package/dist/src/components/tooltips/tooltips.constant.d.ts +13 -0
  618. package/dist/src/components/tooltips/tooltips.constant.js +15 -0
  619. package/dist/src/components/tooltips/tooltips.style.d.ts +2 -0
  620. package/dist/src/components/tooltips/tooltips.style.js +103 -0
  621. package/dist/src/components/tooltips/tooltips.variables.d.ts +2 -0
  622. package/dist/src/components/tooltips/tooltips.variables.js +14 -0
  623. package/dist/src/components/video/bundle.js +171 -0
  624. package/dist/src/components/video/bundle.js.gz +0 -0
  625. package/dist/src/components/video/index.d.ts +3 -0
  626. package/dist/src/components/video/index.js +3 -0
  627. package/dist/src/components/video/react.d.ts +10 -0
  628. package/dist/src/components/video/react.js +17 -0
  629. package/dist/src/components/video/video.component.d.ts +34 -0
  630. package/dist/src/components/video/video.component.js +184 -0
  631. package/dist/src/components/video/video.style.d.ts +3 -0
  632. package/dist/src/components/video/video.style.js +124 -0
  633. package/dist/src/components/video/video.types.d.ts +80 -0
  634. package/dist/src/components/video/video.types.js +7 -0
  635. package/package.json +215 -0
  636. package/packages/common/README.md +137 -0
  637. package/packages/common/dist/LICENSE +28 -0
  638. package/packages/common/dist/README.md +137 -0
  639. package/packages/common/dist/VERSIONS.md +4 -0
  640. package/packages/common/dist/constants/index.d.ts +2 -0
  641. package/packages/common/dist/constants/index.d.ts.map +1 -0
  642. package/packages/common/dist/constants/index.js +2 -0
  643. package/packages/common/dist/constants/index.js.map +1 -0
  644. package/packages/common/dist/constants.d.ts +17 -0
  645. package/packages/common/dist/constants.d.ts.map +1 -0
  646. package/packages/common/dist/constants.js +7 -0
  647. package/packages/common/dist/constants.js.map +1 -0
  648. package/packages/common/dist/controllers/index.d.ts +2 -0
  649. package/packages/common/dist/controllers/index.d.ts.map +1 -0
  650. package/packages/common/dist/controllers/index.js +2 -0
  651. package/packages/common/dist/controllers/index.js.map +1 -0
  652. package/packages/common/dist/controllers.d.ts +21 -0
  653. package/packages/common/dist/controllers.d.ts.map +1 -0
  654. package/packages/common/dist/controllers.js +22 -0
  655. package/packages/common/dist/controllers.js.map +1 -0
  656. package/packages/common/dist/index.d.ts +25 -0
  657. package/packages/common/dist/index.d.ts.map +1 -0
  658. package/packages/common/dist/index.js +27 -0
  659. package/packages/common/dist/index.js.map +1 -0
  660. package/packages/common/dist/mixins/index.d.ts +2 -0
  661. package/packages/common/dist/mixins/index.d.ts.map +1 -0
  662. package/packages/common/dist/mixins/index.js +3 -0
  663. package/packages/common/dist/mixins/index.js.map +1 -0
  664. package/packages/common/dist/mixins.d.ts +26 -0
  665. package/packages/common/dist/mixins.d.ts.map +1 -0
  666. package/packages/common/dist/mixins.js +29 -0
  667. package/packages/common/dist/mixins.js.map +1 -0
  668. package/packages/common/dist/shared/base-mixin.d.ts +42 -0
  669. package/packages/common/dist/shared/base-mixin.d.ts.map +1 -0
  670. package/packages/common/dist/shared/base-mixin.js +38 -0
  671. package/packages/common/dist/shared/base-mixin.js.map +1 -0
  672. package/packages/common/dist/shared/constants.d.ts +1 -0
  673. package/packages/common/dist/shared/constants.d.ts.map +1 -0
  674. package/packages/common/dist/shared/constants.js +2 -0
  675. package/packages/common/dist/shared/constants.js.map +1 -0
  676. package/packages/common/dist/shared/controllers/base-validation.controller.d.ts +81 -0
  677. package/packages/common/dist/shared/controllers/base-validation.controller.d.ts.map +1 -0
  678. package/packages/common/dist/shared/controllers/base-validation.controller.js +104 -0
  679. package/packages/common/dist/shared/controllers/base-validation.controller.js.map +1 -0
  680. package/packages/common/dist/shared/controllers/base.controller.d.ts +76 -0
  681. package/packages/common/dist/shared/controllers/base.controller.d.ts.map +1 -0
  682. package/packages/common/dist/shared/controllers/base.controller.js +129 -0
  683. package/packages/common/dist/shared/controllers/base.controller.js.map +1 -0
  684. package/packages/common/dist/shared/controllers/dropdown.controller.d.ts +77 -0
  685. package/packages/common/dist/shared/controllers/dropdown.controller.d.ts.map +1 -0
  686. package/packages/common/dist/shared/controllers/dropdown.controller.js +341 -0
  687. package/packages/common/dist/shared/controllers/dropdown.controller.js.map +1 -0
  688. package/packages/common/dist/shared/controllers/dropdown.interface.d.ts +37 -0
  689. package/packages/common/dist/shared/controllers/dropdown.interface.d.ts.map +1 -0
  690. package/packages/common/dist/shared/controllers/dropdown.interface.js +2 -0
  691. package/packages/common/dist/shared/controllers/dropdown.interface.js.map +1 -0
  692. package/packages/common/dist/shared/controllers/index.d.ts +6 -0
  693. package/packages/common/dist/shared/controllers/index.d.ts.map +1 -0
  694. package/packages/common/dist/shared/controllers/index.js +6 -0
  695. package/packages/common/dist/shared/controllers/index.js.map +1 -0
  696. package/packages/common/dist/shared/controllers/theme.controller.d.ts +48 -0
  697. package/packages/common/dist/shared/controllers/theme.controller.d.ts.map +1 -0
  698. package/packages/common/dist/shared/controllers/theme.controller.js +133 -0
  699. package/packages/common/dist/shared/controllers/theme.controller.js.map +1 -0
  700. package/packages/common/dist/shared/dependency-mixin.d.ts +37 -0
  701. package/packages/common/dist/shared/dependency-mixin.d.ts.map +1 -0
  702. package/packages/common/dist/shared/dependency-mixin.js +141 -0
  703. package/packages/common/dist/shared/dependency-mixin.js.map +1 -0
  704. package/packages/common/dist/shared/event-handler-mixin.d.ts +64 -0
  705. package/packages/common/dist/shared/event-handler-mixin.d.ts.map +1 -0
  706. package/packages/common/dist/shared/event-handler-mixin.js +95 -0
  707. package/packages/common/dist/shared/event-handler-mixin.js.map +1 -0
  708. package/packages/common/dist/shared/index.d.ts +13 -0
  709. package/packages/common/dist/shared/index.d.ts.map +1 -0
  710. package/packages/common/dist/shared/index.js +17 -0
  711. package/packages/common/dist/shared/index.js.map +1 -0
  712. package/packages/common/dist/shared/render-utils.d.ts +103 -0
  713. package/packages/common/dist/shared/render-utils.d.ts.map +1 -0
  714. package/packages/common/dist/shared/render-utils.js +132 -0
  715. package/packages/common/dist/shared/render-utils.js.map +1 -0
  716. package/packages/common/dist/shared/theme-mixin.d.ts +78 -0
  717. package/packages/common/dist/shared/theme-mixin.d.ts.map +1 -0
  718. package/packages/common/dist/shared/theme-mixin.js +194 -0
  719. package/packages/common/dist/shared/theme-mixin.js.map +1 -0
  720. package/packages/common/dist/shared/themes.d.ts +44 -0
  721. package/packages/common/dist/shared/themes.d.ts.map +1 -0
  722. package/packages/common/dist/shared/themes.js +85 -0
  723. package/packages/common/dist/shared/themes.js.map +1 -0
  724. package/packages/common/dist/shared/utils.d.ts +60 -0
  725. package/packages/common/dist/shared/utils.d.ts.map +1 -0
  726. package/packages/common/dist/shared/utils.js +85 -0
  727. package/packages/common/dist/shared/utils.js.map +1 -0
  728. package/packages/common/dist/shared/validation.types.d.ts +108 -0
  729. package/packages/common/dist/shared/validation.types.d.ts.map +1 -0
  730. package/packages/common/dist/shared/validation.types.js +17 -0
  731. package/packages/common/dist/shared/validation.types.js.map +1 -0
  732. package/packages/common/dist/themes/index.d.ts +2 -0
  733. package/packages/common/dist/themes/index.d.ts.map +1 -0
  734. package/packages/common/dist/themes/index.js +2 -0
  735. package/packages/common/dist/themes/index.js.map +1 -0
  736. package/packages/common/dist/themes.d.ts +22 -0
  737. package/packages/common/dist/themes.d.ts.map +1 -0
  738. package/packages/common/dist/themes.js +23 -0
  739. package/packages/common/dist/themes.js.map +1 -0
  740. package/packages/common/dist/utils/index.d.ts +2 -0
  741. package/packages/common/dist/utils/index.d.ts.map +1 -0
  742. package/packages/common/dist/utils/index.js +2 -0
  743. package/packages/common/dist/utils/index.js.map +1 -0
  744. package/packages/common/dist/utils.d.ts +22 -0
  745. package/packages/common/dist/utils.d.ts.map +1 -0
  746. package/packages/common/dist/utils.js +24 -0
  747. package/packages/common/dist/utils.js.map +1 -0
  748. package/packages/themes/README.md +146 -0
  749. package/packages/themes/dist/README.md +146 -0
  750. package/packages/themes/dist/carbon.css +2987 -0
  751. package/packages/themes/dist/default.css +2757 -0
  752. package/packages/themes/dist/editor.css +1063 -0
  753. package/packages/themes/dist/index.cjs +46 -0
  754. package/packages/themes/dist/index.js +46 -0
  755. package/packages/themes/dist/package.json +59 -0
@@ -0,0 +1,2305 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ // Import and re-export DataOperation from data-node
7
+ import { DataOperation } from './data-node/data-node.types.js';
8
+ export { DataOperation };
9
+ /**
10
+ * Node types for standard workflow nodes
11
+ */
12
+ export var WorkflowNodeType;
13
+ (function (WorkflowNodeType) {
14
+ WorkflowNodeType["START"] = "START";
15
+ WorkflowNodeType["END"] = "END";
16
+ WorkflowNodeType["HTTP_START"] = "HTTP_START";
17
+ WorkflowNodeType["HTTP_END"] = "HTTP_END";
18
+ WorkflowNodeType["CHAT_START"] = "CHAT_START";
19
+ WorkflowNodeType["CHAT_OUTPUT"] = "CHAT_OUTPUT";
20
+ WorkflowNodeType["FUNCTION"] = "FUNCTION";
21
+ WorkflowNodeType["HTTP"] = "HTTP";
22
+ WorkflowNodeType["CONDITION"] = "CONDITION";
23
+ WorkflowNodeType["DELAY"] = "DELAY";
24
+ WorkflowNodeType["PARALLEL"] = "PARALLEL";
25
+ WorkflowNodeType["LOOP"] = "LOOP";
26
+ WorkflowNodeType["TRANSFORM"] = "TRANSFORM";
27
+ WorkflowNodeType["SUB_WORKFLOW"] = "SUB_WORKFLOW";
28
+ WorkflowNodeType["EMAIL"] = "EMAIL";
29
+ WorkflowNodeType["NOTIFICATION"] = "NOTIFICATION";
30
+ WorkflowNodeType["DATABASE"] = "DATABASE";
31
+ WorkflowNodeType["VARIABLE"] = "VARIABLE";
32
+ WorkflowNodeType["CHATBOT"] = "CHATBOT";
33
+ WorkflowNodeType["DEBUG"] = "DEBUG";
34
+ WorkflowNodeType["LLM"] = "LLM";
35
+ WorkflowNodeType["OCR"] = "OCR";
36
+ // Web nodes
37
+ WorkflowNodeType["WEB_SEARCH"] = "WEB_SEARCH";
38
+ WorkflowNodeType["WEB_CRAWL"] = "WEB_CRAWL";
39
+ // Document generation
40
+ WorkflowNodeType["DOCUMENT_GENERATOR"] = "DOCUMENT_GENERATOR";
41
+ // Storage nodes
42
+ WorkflowNodeType["FILE_STORAGE"] = "FILE_STORAGE";
43
+ // RAG nodes
44
+ WorkflowNodeType["EMBEDDING"] = "EMBEDDING";
45
+ WorkflowNodeType["DOCUMENT_LOADER"] = "DOCUMENT_LOADER";
46
+ WorkflowNodeType["TEXT_SPLITTER"] = "TEXT_SPLITTER";
47
+ WorkflowNodeType["VECTOR_WRITE"] = "VECTOR_WRITE";
48
+ WorkflowNodeType["VECTOR_SEARCH"] = "VECTOR_SEARCH";
49
+ WorkflowNodeType["CONTEXT_BUILDER"] = "CONTEXT_BUILDER";
50
+ // Safety nodes
51
+ WorkflowNodeType["GUARDRAIL"] = "GUARDRAIL";
52
+ // Slack integration nodes
53
+ WorkflowNodeType["SLACK_SEND_MESSAGE"] = "SLACK_SEND_MESSAGE";
54
+ WorkflowNodeType["SLACK_GET_CHANNEL_INFO"] = "SLACK_GET_CHANNEL_INFO";
55
+ WorkflowNodeType["SLACK_LIST_CHANNELS"] = "SLACK_LIST_CHANNELS";
56
+ WorkflowNodeType["SLACK_ADD_REACTION"] = "SLACK_ADD_REACTION";
57
+ WorkflowNodeType["SLACK_UPLOAD_FILE"] = "SLACK_UPLOAD_FILE";
58
+ // RAG nodes (continued)
59
+ WorkflowNodeType["RERANKER"] = "RERANKER";
60
+ // Telegram integration nodes
61
+ WorkflowNodeType["TELEGRAM_SEND"] = "TELEGRAM_SEND";
62
+ // Persistent trigger nodes
63
+ WorkflowNodeType["TELEGRAM_BOT"] = "TELEGRAM_BOT";
64
+ WorkflowNodeType["SLACK_SOCKET"] = "SLACK_SOCKET";
65
+ WorkflowNodeType["DISCORD_BOT"] = "DISCORD_BOT";
66
+ WorkflowNodeType["WHATSAPP_WEBHOOK"] = "WHATSAPP_WEBHOOK";
67
+ WorkflowNodeType["CUSTOM_WEBSOCKET"] = "CUSTOM_WEBSOCKET";
68
+ // MCP integration
69
+ WorkflowNodeType["MCP"] = "MCP";
70
+ // Display nodes
71
+ WorkflowNodeType["UI_TABLE"] = "UI_TABLE";
72
+ // Annotation nodes
73
+ WorkflowNodeType["NOTE"] = "NOTE";
74
+ WorkflowNodeType["FRAME"] = "FRAME";
75
+ })(WorkflowNodeType || (WorkflowNodeType = {}));
76
+ /**
77
+ * Node types for agent-based workflows
78
+ */
79
+ export var AgentNodeType;
80
+ (function (AgentNodeType) {
81
+ AgentNodeType["AGENT"] = "AGENT";
82
+ AgentNodeType["TOOL"] = "TOOL";
83
+ AgentNodeType["MEMORY"] = "MEMORY";
84
+ AgentNodeType["CONTEXT_MEMORY"] = "CONTEXT_MEMORY";
85
+ AgentNodeType["PROMPT"] = "PROMPT";
86
+ AgentNodeType["LLM"] = "AGENT_LLM";
87
+ AgentNodeType["RETRIEVER"] = "RETRIEVER";
88
+ AgentNodeType["CHAIN"] = "CHAIN";
89
+ AgentNodeType["ROUTER"] = "ROUTER";
90
+ AgentNodeType["HUMAN_INPUT"] = "HUMAN_INPUT";
91
+ AgentNodeType["OUTPUT_PARSER"] = "OUTPUT_PARSER";
92
+ AgentNodeType["STRUCTURED_OUTPUT"] = "STRUCTURED_OUTPUT";
93
+ })(AgentNodeType || (AgentNodeType = {}));
94
+ /**
95
+ * Node types for database designer mode
96
+ */
97
+ export var DbDesignerNodeType;
98
+ (function (DbDesignerNodeType) {
99
+ DbDesignerNodeType["TABLE"] = "DB_TABLE";
100
+ DbDesignerNodeType["VIEW"] = "DB_VIEW";
101
+ DbDesignerNodeType["INDEX"] = "DB_INDEX";
102
+ DbDesignerNodeType["RELATIONSHIP"] = "DB_RELATIONSHIP";
103
+ DbDesignerNodeType["CONSTRAINT"] = "DB_CONSTRAINT";
104
+ DbDesignerNodeType["QUERY"] = "DB_QUERY";
105
+ })(DbDesignerNodeType || (DbDesignerNodeType = {}));
106
+ /**
107
+ * Node types for whiteboard mode
108
+ */
109
+ export var WhiteboardNodeType;
110
+ (function (WhiteboardNodeType) {
111
+ WhiteboardNodeType["STICKY_NOTE"] = "WB_STICKY_NOTE";
112
+ WhiteboardNodeType["SHAPE_RECTANGLE"] = "WB_SHAPE_RECTANGLE";
113
+ WhiteboardNodeType["SHAPE_CIRCLE"] = "WB_SHAPE_CIRCLE";
114
+ WhiteboardNodeType["SHAPE_DIAMOND"] = "WB_SHAPE_DIAMOND";
115
+ WhiteboardNodeType["SHAPE_TRIANGLE"] = "WB_SHAPE_TRIANGLE";
116
+ WhiteboardNodeType["SHAPE_ARROW"] = "WB_SHAPE_ARROW";
117
+ WhiteboardNodeType["SHAPE_LINE"] = "WB_SHAPE_LINE";
118
+ WhiteboardNodeType["SHAPE_STAR"] = "WB_SHAPE_STAR";
119
+ WhiteboardNodeType["SHAPE_HEXAGON"] = "WB_SHAPE_HEXAGON";
120
+ WhiteboardNodeType["TEXT_BLOCK"] = "WB_TEXT_BLOCK";
121
+ WhiteboardNodeType["IMAGE"] = "WB_IMAGE";
122
+ WhiteboardNodeType["DRAWING"] = "WB_DRAWING";
123
+ WhiteboardNodeType["FRAME"] = "WB_FRAME";
124
+ WhiteboardNodeType["VOTING"] = "WB_VOTING";
125
+ WhiteboardNodeType["MERMAID"] = "WB_MERMAID";
126
+ WhiteboardNodeType["ANCHOR"] = "WB_ANCHOR";
127
+ WhiteboardNodeType["WORKFLOW"] = "WB_WORKFLOW";
128
+ WhiteboardNodeType["DATABASE"] = "WB_DATABASE";
129
+ })(WhiteboardNodeType || (WhiteboardNodeType = {}));
130
+ /**
131
+ * Canvas type to differentiate between canvas modes
132
+ */
133
+ export var CanvasType;
134
+ (function (CanvasType) {
135
+ CanvasType["WORKFLOW"] = "WORKFLOW";
136
+ CanvasType["DATABASE"] = "DATABASE";
137
+ CanvasType["WHITEBOARD"] = "WHITEBOARD";
138
+ })(CanvasType || (CanvasType = {}));
139
+ /**
140
+ * Connection state for long-running/persistent triggers (Telegram, Slack, etc.)
141
+ */
142
+ export var TriggerConnectionState;
143
+ (function (TriggerConnectionState) {
144
+ TriggerConnectionState["DISCONNECTED"] = "DISCONNECTED";
145
+ TriggerConnectionState["CONNECTING"] = "CONNECTING";
146
+ TriggerConnectionState["CONNECTED"] = "CONNECTED";
147
+ TriggerConnectionState["PAUSED"] = "PAUSED";
148
+ TriggerConnectionState["HANDOFF_PENDING"] = "HANDOFF_PENDING";
149
+ TriggerConnectionState["ERROR"] = "ERROR";
150
+ })(TriggerConnectionState || (TriggerConnectionState = {}));
151
+ /**
152
+ * Execution status for nodes and workflows
153
+ */
154
+ export var ExecutionStatus;
155
+ (function (ExecutionStatus) {
156
+ ExecutionStatus["IDLE"] = "IDLE";
157
+ ExecutionStatus["PENDING"] = "PENDING";
158
+ ExecutionStatus["RUNNING"] = "RUNNING";
159
+ ExecutionStatus["COMPLETED"] = "COMPLETED";
160
+ ExecutionStatus["FAILED"] = "FAILED";
161
+ ExecutionStatus["CANCELLED"] = "CANCELLED";
162
+ ExecutionStatus["PAUSED"] = "PAUSED";
163
+ ExecutionStatus["WAITING"] = "WAITING";
164
+ })(ExecutionStatus || (ExecutionStatus = {}));
165
+ /**
166
+ * Port types for node connections
167
+ */
168
+ export var PortType;
169
+ (function (PortType) {
170
+ PortType["INPUT"] = "INPUT";
171
+ PortType["OUTPUT"] = "OUTPUT";
172
+ PortType["CONFIG"] = "CONFIG";
173
+ PortType["CONDITIONAL_TRUE"] = "CONDITIONAL_TRUE";
174
+ PortType["CONDITIONAL_FALSE"] = "CONDITIONAL_FALSE";
175
+ PortType["CONDITIONAL_DEFAULT"] = "CONDITIONAL_DEFAULT";
176
+ PortType["LOOP_ITEM"] = "LOOP_ITEM";
177
+ PortType["LOOP_DONE"] = "LOOP_DONE";
178
+ PortType["PARALLEL_BRANCH"] = "PARALLEL_BRANCH";
179
+ PortType["ERROR"] = "ERROR";
180
+ })(PortType || (PortType = {}));
181
+ /**
182
+ * Canvas interaction modes
183
+ */
184
+ export var CanvasMode;
185
+ (function (CanvasMode) {
186
+ CanvasMode["SELECT"] = "SELECT";
187
+ CanvasMode["PAN"] = "PAN";
188
+ CanvasMode["CONNECT"] = "CONNECT";
189
+ CanvasMode["ADD_NODE"] = "ADD_NODE";
190
+ })(CanvasMode || (CanvasMode = {}));
191
+ /**
192
+ * Default node colors by type
193
+ */
194
+ export const NODE_COLORS = {
195
+ // Workflow nodes
196
+ [WorkflowNodeType.START]: '#22c55e',
197
+ [WorkflowNodeType.END]: '#ef4444',
198
+ [WorkflowNodeType.HTTP_START]: '#059669',
199
+ [WorkflowNodeType.HTTP_END]: '#dc2626',
200
+ [WorkflowNodeType.CHAT_START]: '#0ea5e9',
201
+ [WorkflowNodeType.CHAT_OUTPUT]: '#06b6d4',
202
+ [WorkflowNodeType.FUNCTION]: '#3b82f6',
203
+ [WorkflowNodeType.HTTP]: '#8b5cf6',
204
+ [WorkflowNodeType.CONDITION]: '#f59e0b',
205
+ [WorkflowNodeType.DELAY]: '#6b7280',
206
+ [WorkflowNodeType.PARALLEL]: '#06b6d4',
207
+ [WorkflowNodeType.LOOP]: '#ec4899',
208
+ [WorkflowNodeType.TRANSFORM]: '#14b8a6',
209
+ [WorkflowNodeType.SUB_WORKFLOW]: '#6366f1',
210
+ [WorkflowNodeType.EMAIL]: '#f97316',
211
+ [WorkflowNodeType.NOTIFICATION]: '#84cc16',
212
+ [WorkflowNodeType.DATABASE]: '#a855f7',
213
+ [WorkflowNodeType.VARIABLE]: '#64748b',
214
+ [WorkflowNodeType.CHATBOT]: '#0ea5e9',
215
+ [WorkflowNodeType.DEBUG]: '#f97316',
216
+ [WorkflowNodeType.LLM]: '#22d3ee',
217
+ [WorkflowNodeType.OCR]: '#0d9488',
218
+ // Web nodes
219
+ [WorkflowNodeType.WEB_SEARCH]: '#3b82f6',
220
+ [WorkflowNodeType.WEB_CRAWL]: '#6366f1',
221
+ // Document generation
222
+ [WorkflowNodeType.DOCUMENT_GENERATOR]: '#0284c7',
223
+ // Storage nodes
224
+ [WorkflowNodeType.FILE_STORAGE]: '#f59e0b',
225
+ // RAG nodes
226
+ [WorkflowNodeType.EMBEDDING]: '#8b5cf6',
227
+ [WorkflowNodeType.DOCUMENT_LOADER]: '#ec4899',
228
+ [WorkflowNodeType.TEXT_SPLITTER]: '#14b8a6',
229
+ [WorkflowNodeType.VECTOR_WRITE]: '#10b981',
230
+ [WorkflowNodeType.VECTOR_SEARCH]: '#06b6d4',
231
+ [WorkflowNodeType.CONTEXT_BUILDER]: '#a855f7',
232
+ // Safety nodes
233
+ [WorkflowNodeType.GUARDRAIL]: '#ef4444',
234
+ // Slack integration nodes
235
+ [WorkflowNodeType.SLACK_SEND_MESSAGE]: '#4A154B',
236
+ [WorkflowNodeType.SLACK_GET_CHANNEL_INFO]: '#4A154B',
237
+ [WorkflowNodeType.SLACK_LIST_CHANNELS]: '#4A154B',
238
+ [WorkflowNodeType.SLACK_ADD_REACTION]: '#4A154B',
239
+ [WorkflowNodeType.SLACK_UPLOAD_FILE]: '#4A154B',
240
+ // RAG nodes (continued)
241
+ [WorkflowNodeType.RERANKER]: '#d946ef',
242
+ // Telegram integration nodes
243
+ [WorkflowNodeType.TELEGRAM_SEND]: '#0088cc',
244
+ // Persistent trigger nodes
245
+ [WorkflowNodeType.TELEGRAM_BOT]: '#0088cc',
246
+ [WorkflowNodeType.SLACK_SOCKET]: '#4A154B',
247
+ [WorkflowNodeType.DISCORD_BOT]: '#5865F2',
248
+ [WorkflowNodeType.WHATSAPP_WEBHOOK]: '#25D366',
249
+ [WorkflowNodeType.CUSTOM_WEBSOCKET]: '#6366f1',
250
+ // MCP integration
251
+ [WorkflowNodeType.MCP]: '#7c3aed',
252
+ // Display nodes
253
+ [WorkflowNodeType.UI_TABLE]: '#0891b2',
254
+ // Annotation nodes
255
+ [WorkflowNodeType.NOTE]: '#fef08a',
256
+ [WorkflowNodeType.FRAME]: '#6366f1',
257
+ // Agent nodes
258
+ [AgentNodeType.AGENT]: '#10b981',
259
+ [AgentNodeType.TOOL]: '#0ea5e9',
260
+ [AgentNodeType.MEMORY]: '#d946ef',
261
+ [AgentNodeType.CONTEXT_MEMORY]: '#c026d3',
262
+ [AgentNodeType.PROMPT]: '#f472b6',
263
+ [AgentNodeType.LLM]: '#22d3ee',
264
+ [AgentNodeType.RETRIEVER]: '#a78bfa',
265
+ [AgentNodeType.CHAIN]: '#fbbf24',
266
+ [AgentNodeType.ROUTER]: '#fb923c',
267
+ [AgentNodeType.HUMAN_INPUT]: '#4ade80',
268
+ [AgentNodeType.OUTPUT_PARSER]: '#2dd4bf',
269
+ [AgentNodeType.STRUCTURED_OUTPUT]: '#f59e0b',
270
+ // DB Designer nodes
271
+ [DbDesignerNodeType.TABLE]: '#64748b', // Soft slate for tables
272
+ [DbDesignerNodeType.VIEW]: '#a855f7', // Purple for views
273
+ [DbDesignerNodeType.INDEX]: '#f59e0b', // Amber for indexes
274
+ [DbDesignerNodeType.RELATIONSHIP]: '#ec4899', // Pink for relationships
275
+ [DbDesignerNodeType.CONSTRAINT]: '#ef4444', // Red for constraints
276
+ [DbDesignerNodeType.QUERY]: '#06b6d4', // Cyan for queries
277
+ // Whiteboard nodes
278
+ [WhiteboardNodeType.STICKY_NOTE]: '#fef08a',
279
+ [WhiteboardNodeType.SHAPE_RECTANGLE]: '#3b82f6',
280
+ [WhiteboardNodeType.SHAPE_CIRCLE]: '#8b5cf6',
281
+ [WhiteboardNodeType.SHAPE_DIAMOND]: '#f59e0b',
282
+ [WhiteboardNodeType.SHAPE_TRIANGLE]: '#22c55e',
283
+ [WhiteboardNodeType.SHAPE_ARROW]: '#6b7280',
284
+ [WhiteboardNodeType.SHAPE_LINE]: '#6b7280',
285
+ [WhiteboardNodeType.SHAPE_STAR]: '#f97316',
286
+ [WhiteboardNodeType.SHAPE_HEXAGON]: '#ec4899',
287
+ [WhiteboardNodeType.TEXT_BLOCK]: '#111827',
288
+ [WhiteboardNodeType.IMAGE]: '#06b6d4',
289
+ [WhiteboardNodeType.DRAWING]: '#14b8a6',
290
+ [WhiteboardNodeType.FRAME]: '#6366f1',
291
+ [WhiteboardNodeType.VOTING]: '#ef4444',
292
+ [WhiteboardNodeType.MERMAID]: '#8b5cf6',
293
+ [WhiteboardNodeType.ANCHOR]: '#f59e0b',
294
+ [WhiteboardNodeType.WORKFLOW]: '#6366f1',
295
+ [WhiteboardNodeType.DATABASE]: '#64748b',
296
+ };
297
+ /**
298
+ * Default node icons by type
299
+ */
300
+ export const NODE_ICONS = {
301
+ // Workflow nodes
302
+ [WorkflowNodeType.START]: 'play',
303
+ [WorkflowNodeType.END]: 'stop',
304
+ [WorkflowNodeType.HTTP_START]: 'download',
305
+ [WorkflowNodeType.HTTP_END]: 'upload',
306
+ [WorkflowNodeType.CHAT_START]: 'message-circle',
307
+ [WorkflowNodeType.CHAT_OUTPUT]: 'message-square',
308
+ [WorkflowNodeType.FUNCTION]: 'code',
309
+ [WorkflowNodeType.HTTP]: 'globe',
310
+ [WorkflowNodeType.CONDITION]: 'git-branch',
311
+ [WorkflowNodeType.DELAY]: 'clock',
312
+ [WorkflowNodeType.PARALLEL]: 'git-merge',
313
+ [WorkflowNodeType.LOOP]: 'repeat',
314
+ [WorkflowNodeType.TRANSFORM]: 'shuffle',
315
+ [WorkflowNodeType.SUB_WORKFLOW]: 'layers',
316
+ [WorkflowNodeType.EMAIL]: 'mail',
317
+ [WorkflowNodeType.NOTIFICATION]: 'bell',
318
+ [WorkflowNodeType.DATABASE]: 'database',
319
+ [WorkflowNodeType.VARIABLE]: 'box',
320
+ [WorkflowNodeType.CHATBOT]: 'message-circle',
321
+ [WorkflowNodeType.DEBUG]: 'bug',
322
+ [WorkflowNodeType.LLM]: 'brain',
323
+ [WorkflowNodeType.OCR]: 'scan',
324
+ // Web nodes
325
+ [WorkflowNodeType.WEB_SEARCH]: 'search',
326
+ [WorkflowNodeType.WEB_CRAWL]: 'globe',
327
+ // Document generation
328
+ [WorkflowNodeType.DOCUMENT_GENERATOR]: 'file-text',
329
+ // Storage nodes
330
+ [WorkflowNodeType.FILE_STORAGE]: 'hard-drive',
331
+ // RAG nodes
332
+ [WorkflowNodeType.EMBEDDING]: 'hash',
333
+ [WorkflowNodeType.DOCUMENT_LOADER]: 'file-text',
334
+ [WorkflowNodeType.TEXT_SPLITTER]: 'scissors',
335
+ [WorkflowNodeType.VECTOR_WRITE]: 'database',
336
+ [WorkflowNodeType.VECTOR_SEARCH]: 'search',
337
+ [WorkflowNodeType.CONTEXT_BUILDER]: 'layers',
338
+ // Safety nodes
339
+ [WorkflowNodeType.GUARDRAIL]: 'shield',
340
+ // Slack integration nodes
341
+ [WorkflowNodeType.SLACK_SEND_MESSAGE]: 'message-square',
342
+ [WorkflowNodeType.SLACK_GET_CHANNEL_INFO]: 'hash',
343
+ [WorkflowNodeType.SLACK_LIST_CHANNELS]: 'list',
344
+ [WorkflowNodeType.SLACK_ADD_REACTION]: 'smile-plus',
345
+ [WorkflowNodeType.SLACK_UPLOAD_FILE]: 'upload',
346
+ // RAG nodes (continued)
347
+ [WorkflowNodeType.RERANKER]: 'arrow-up-down',
348
+ // Telegram integration nodes
349
+ [WorkflowNodeType.TELEGRAM_SEND]: 'send',
350
+ // Persistent trigger nodes
351
+ [WorkflowNodeType.TELEGRAM_BOT]: 'send',
352
+ [WorkflowNodeType.SLACK_SOCKET]: 'message-square',
353
+ [WorkflowNodeType.DISCORD_BOT]: 'gamepad-2',
354
+ [WorkflowNodeType.WHATSAPP_WEBHOOK]: 'phone',
355
+ [WorkflowNodeType.CUSTOM_WEBSOCKET]: 'radio',
356
+ // MCP integration
357
+ [WorkflowNodeType.MCP]: 'plug',
358
+ // Display nodes
359
+ [WorkflowNodeType.UI_TABLE]: 'table',
360
+ // Annotation nodes
361
+ [WorkflowNodeType.NOTE]: 'sticky-note',
362
+ [WorkflowNodeType.FRAME]: 'square',
363
+ // Agent nodes
364
+ [AgentNodeType.AGENT]: 'cpu',
365
+ [AgentNodeType.TOOL]: 'tool',
366
+ [AgentNodeType.MEMORY]: 'hard-drive',
367
+ [AgentNodeType.CONTEXT_MEMORY]: 'brain',
368
+ [AgentNodeType.PROMPT]: 'message-square',
369
+ [AgentNodeType.LLM]: 'brain',
370
+ [AgentNodeType.RETRIEVER]: 'search',
371
+ [AgentNodeType.CHAIN]: 'link',
372
+ [AgentNodeType.ROUTER]: 'git-pull-request',
373
+ [AgentNodeType.HUMAN_INPUT]: 'user',
374
+ [AgentNodeType.OUTPUT_PARSER]: 'file-text',
375
+ [AgentNodeType.STRUCTURED_OUTPUT]: 'braces',
376
+ // DB Designer nodes
377
+ [DbDesignerNodeType.TABLE]: 'table',
378
+ [DbDesignerNodeType.VIEW]: 'eye',
379
+ [DbDesignerNodeType.INDEX]: 'list',
380
+ [DbDesignerNodeType.RELATIONSHIP]: 'git-merge',
381
+ [DbDesignerNodeType.CONSTRAINT]: 'shield',
382
+ [DbDesignerNodeType.QUERY]: 'terminal',
383
+ // Whiteboard nodes
384
+ [WhiteboardNodeType.STICKY_NOTE]: 'sticky-note',
385
+ [WhiteboardNodeType.SHAPE_RECTANGLE]: 'square',
386
+ [WhiteboardNodeType.SHAPE_CIRCLE]: 'circle',
387
+ [WhiteboardNodeType.SHAPE_DIAMOND]: 'diamond',
388
+ [WhiteboardNodeType.SHAPE_TRIANGLE]: 'triangle',
389
+ [WhiteboardNodeType.SHAPE_ARROW]: 'arrow-right',
390
+ [WhiteboardNodeType.SHAPE_LINE]: 'minus',
391
+ [WhiteboardNodeType.SHAPE_STAR]: 'star',
392
+ [WhiteboardNodeType.SHAPE_HEXAGON]: 'hexagon',
393
+ [WhiteboardNodeType.TEXT_BLOCK]: 'type',
394
+ [WhiteboardNodeType.IMAGE]: 'image',
395
+ [WhiteboardNodeType.DRAWING]: 'pen-tool',
396
+ [WhiteboardNodeType.FRAME]: 'frame',
397
+ [WhiteboardNodeType.VOTING]: 'thumbs-up',
398
+ [WhiteboardNodeType.MERMAID]: 'git-branch',
399
+ [WhiteboardNodeType.ANCHOR]: 'anchor',
400
+ [WhiteboardNodeType.WORKFLOW]: 'layers',
401
+ [WhiteboardNodeType.DATABASE]: 'table',
402
+ };
403
+ /**
404
+ * Node templates for creating new nodes
405
+ */
406
+ export const NODE_TEMPLATES = [
407
+ // Workflow nodes
408
+ {
409
+ type: WorkflowNodeType.START,
410
+ name: 'Start',
411
+ description: 'Entry point of the workflow',
412
+ icon: NODE_ICONS[WorkflowNodeType.START],
413
+ color: NODE_COLORS[WorkflowNodeType.START],
414
+ category: 'control',
415
+ defaultConfig: {},
416
+ defaultPorts: {
417
+ inputs: [],
418
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
419
+ },
420
+ },
421
+ {
422
+ type: WorkflowNodeType.END,
423
+ name: 'End',
424
+ description: 'Exit point of the workflow',
425
+ icon: NODE_ICONS[WorkflowNodeType.END],
426
+ color: NODE_COLORS[WorkflowNodeType.END],
427
+ category: 'control',
428
+ defaultConfig: {},
429
+ defaultPorts: {
430
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
431
+ outputs: [],
432
+ },
433
+ },
434
+ {
435
+ type: WorkflowNodeType.HTTP_START,
436
+ name: 'HTTP Trigger',
437
+ description: 'Start workflow from HTTP request',
438
+ icon: NODE_ICONS[WorkflowNodeType.HTTP_START],
439
+ color: NODE_COLORS[WorkflowNodeType.HTTP_START],
440
+ category: 'trigger',
441
+ defaultConfig: {
442
+ httpPath: '/webhook',
443
+ httpMethods: ['POST'],
444
+ httpAuth: 'none',
445
+ httpCors: true,
446
+ httpRateLimit: 100,
447
+ httpRequestSchema: {},
448
+ },
449
+ defaultPorts: {
450
+ inputs: [],
451
+ outputs: [
452
+ { id: 'out', type: PortType.OUTPUT, label: 'Request' },
453
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
454
+ ],
455
+ },
456
+ },
457
+ {
458
+ type: WorkflowNodeType.HTTP_END,
459
+ name: 'HTTP Response',
460
+ description: 'Return HTTP response to caller',
461
+ icon: NODE_ICONS[WorkflowNodeType.HTTP_END],
462
+ color: NODE_COLORS[WorkflowNodeType.HTTP_END],
463
+ category: 'control',
464
+ defaultConfig: {
465
+ httpStatusCode: 200,
466
+ httpResponseHeaders: { 'Content-Type': 'application/json' },
467
+ httpResponseBody: '{{data}}',
468
+ httpContentType: 'application/json',
469
+ },
470
+ defaultPorts: {
471
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
472
+ outputs: [],
473
+ },
474
+ },
475
+ {
476
+ type: WorkflowNodeType.CHAT_START,
477
+ name: 'Chat Trigger',
478
+ description: 'Start workflow from chatbot message',
479
+ icon: NODE_ICONS[WorkflowNodeType.CHAT_START],
480
+ color: NODE_COLORS[WorkflowNodeType.CHAT_START],
481
+ category: 'trigger',
482
+ defaultConfig: {
483
+ outputVariable: 'chatInput',
484
+ enableFileUpload: false,
485
+ maxFileSize: 10,
486
+ maxFiles: 5,
487
+ allowImages: true,
488
+ allowDocuments: false,
489
+ allowText: false,
490
+ allowAudio: false,
491
+ allowVideo: false,
492
+ },
493
+ defaultPorts: {
494
+ inputs: [],
495
+ outputs: [
496
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
497
+ { id: 'files', type: PortType.OUTPUT, label: 'Files' },
498
+ ],
499
+ },
500
+ },
501
+ {
502
+ type: WorkflowNodeType.CHAT_OUTPUT,
503
+ name: 'Chat Output',
504
+ description: 'Send message to chatbot during execution',
505
+ icon: NODE_ICONS[WorkflowNodeType.CHAT_OUTPUT],
506
+ color: NODE_COLORS[WorkflowNodeType.CHAT_OUTPUT],
507
+ category: 'action',
508
+ defaultConfig: {
509
+ message: '${variables.response}',
510
+ messageType: 'text',
511
+ typing: false,
512
+ typingDelay: 1000,
513
+ },
514
+ defaultPorts: {
515
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
516
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
517
+ },
518
+ },
519
+ {
520
+ type: WorkflowNodeType.LLM,
521
+ name: 'LLM',
522
+ description: 'Call AI language model (OpenAI, Anthropic, etc.)',
523
+ icon: NODE_ICONS[WorkflowNodeType.LLM],
524
+ color: NODE_COLORS[WorkflowNodeType.LLM],
525
+ category: 'action',
526
+ defaultConfig: {
527
+ provider: 'openai',
528
+ model: 'gpt-4',
529
+ temperature: 0.7,
530
+ maxTokens: 2048,
531
+ systemPrompt: '',
532
+ userPrompt: '${variables.message}',
533
+ },
534
+ defaultPorts: {
535
+ inputs: [
536
+ { id: 'in', type: PortType.INPUT, label: 'Input' },
537
+ { id: 'context_memory', type: PortType.INPUT, label: 'Context Memory' },
538
+ ],
539
+ outputs: [
540
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
541
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
542
+ ],
543
+ },
544
+ },
545
+ {
546
+ type: WorkflowNodeType.OCR,
547
+ name: 'OCR',
548
+ description: 'Extract text from images using OCR',
549
+ icon: NODE_ICONS[WorkflowNodeType.OCR],
550
+ color: NODE_COLORS[WorkflowNodeType.OCR],
551
+ category: 'action',
552
+ defaultConfig: {
553
+ imageSource: 'variable',
554
+ imageField: '${input.files[0].base64}',
555
+ language: 'fr',
556
+ detectLayout: false,
557
+ outputVariable: 'ocrResult',
558
+ },
559
+ defaultPorts: {
560
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Image' }],
561
+ outputs: [
562
+ { id: 'out', type: PortType.OUTPUT, label: 'Text' },
563
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
564
+ ],
565
+ },
566
+ },
567
+ {
568
+ type: WorkflowNodeType.FUNCTION,
569
+ name: 'Function',
570
+ description: 'Invoke a Nuraly function',
571
+ icon: NODE_ICONS[WorkflowNodeType.FUNCTION],
572
+ color: NODE_COLORS[WorkflowNodeType.FUNCTION],
573
+ category: 'action',
574
+ defaultConfig: { functionId: '', inputMapping: {}, outputMapping: {} },
575
+ defaultPorts: {
576
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
577
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
578
+ },
579
+ },
580
+ {
581
+ type: WorkflowNodeType.HTTP,
582
+ name: 'HTTP Request',
583
+ description: 'Make an HTTP request',
584
+ icon: NODE_ICONS[WorkflowNodeType.HTTP],
585
+ color: NODE_COLORS[WorkflowNodeType.HTTP],
586
+ category: 'action',
587
+ defaultConfig: { method: 'GET', url: '', headers: {}, timeout: 30000 },
588
+ defaultPorts: {
589
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
590
+ outputs: [
591
+ { id: 'out', type: PortType.OUTPUT, label: 'Success' },
592
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
593
+ ],
594
+ },
595
+ },
596
+ {
597
+ type: WorkflowNodeType.CONDITION,
598
+ name: 'Condition',
599
+ description: 'Branch based on a condition',
600
+ icon: NODE_ICONS[WorkflowNodeType.CONDITION],
601
+ color: NODE_COLORS[WorkflowNodeType.CONDITION],
602
+ category: 'control',
603
+ defaultConfig: { expression: '', language: 'javascript' },
604
+ defaultPorts: {
605
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
606
+ outputs: [
607
+ { id: 'true', type: PortType.CONDITIONAL_TRUE, label: 'True' },
608
+ { id: 'false', type: PortType.CONDITIONAL_FALSE, label: 'False' },
609
+ ],
610
+ },
611
+ },
612
+ {
613
+ type: WorkflowNodeType.DELAY,
614
+ name: 'Delay',
615
+ description: 'Wait for a specified duration',
616
+ icon: NODE_ICONS[WorkflowNodeType.DELAY],
617
+ color: NODE_COLORS[WorkflowNodeType.DELAY],
618
+ category: 'control',
619
+ defaultConfig: { duration: 1000, unit: 'milliseconds' },
620
+ defaultPorts: {
621
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
622
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
623
+ },
624
+ },
625
+ {
626
+ type: WorkflowNodeType.PARALLEL,
627
+ name: 'Parallel',
628
+ description: 'Execute branches in parallel',
629
+ icon: NODE_ICONS[WorkflowNodeType.PARALLEL],
630
+ color: NODE_COLORS[WorkflowNodeType.PARALLEL],
631
+ category: 'control',
632
+ defaultConfig: {},
633
+ defaultPorts: {
634
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
635
+ outputs: [
636
+ { id: 'branch1', type: PortType.PARALLEL_BRANCH, label: 'Branch 1' },
637
+ { id: 'branch2', type: PortType.PARALLEL_BRANCH, label: 'Branch 2' },
638
+ ],
639
+ },
640
+ },
641
+ {
642
+ type: WorkflowNodeType.LOOP,
643
+ name: 'Loop',
644
+ description: 'Iterate over an array',
645
+ icon: NODE_ICONS[WorkflowNodeType.LOOP],
646
+ color: NODE_COLORS[WorkflowNodeType.LOOP],
647
+ category: 'control',
648
+ defaultConfig: { iteratorVariable: 'item', arrayExpression: '', maxIterations: 100 },
649
+ defaultPorts: {
650
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
651
+ outputs: [
652
+ { id: 'item', type: PortType.LOOP_ITEM, label: 'Each Item' },
653
+ { id: 'done', type: PortType.LOOP_DONE, label: 'Done' },
654
+ ],
655
+ },
656
+ },
657
+ {
658
+ type: WorkflowNodeType.TRANSFORM,
659
+ name: 'Transform',
660
+ description: 'Transform data using expressions',
661
+ icon: NODE_ICONS[WorkflowNodeType.TRANSFORM],
662
+ color: NODE_COLORS[WorkflowNodeType.TRANSFORM],
663
+ category: 'data',
664
+ defaultConfig: { transformExpression: '', language: 'jsonata' },
665
+ defaultPorts: {
666
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
667
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
668
+ },
669
+ },
670
+ {
671
+ type: WorkflowNodeType.SUB_WORKFLOW,
672
+ name: 'Sub-Workflow',
673
+ description: 'Invoke another workflow',
674
+ icon: NODE_ICONS[WorkflowNodeType.SUB_WORKFLOW],
675
+ color: NODE_COLORS[WorkflowNodeType.SUB_WORKFLOW],
676
+ category: 'action',
677
+ defaultConfig: { workflowId: '' },
678
+ defaultPorts: {
679
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
680
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
681
+ },
682
+ },
683
+ {
684
+ type: WorkflowNodeType.EMAIL,
685
+ name: 'Email',
686
+ description: 'Send an email',
687
+ icon: NODE_ICONS[WorkflowNodeType.EMAIL],
688
+ color: NODE_COLORS[WorkflowNodeType.EMAIL],
689
+ category: 'action',
690
+ defaultConfig: { to: '', cc: '', bcc: '', subject: '', body: '', bodyType: 'text', fromName: '', replyTo: '', priority: 'normal' },
691
+ defaultPorts: {
692
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
693
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
694
+ },
695
+ },
696
+ {
697
+ type: WorkflowNodeType.NOTIFICATION,
698
+ name: 'Notification',
699
+ description: 'Send a notification',
700
+ icon: NODE_ICONS[WorkflowNodeType.NOTIFICATION],
701
+ color: NODE_COLORS[WorkflowNodeType.NOTIFICATION],
702
+ category: 'action',
703
+ defaultConfig: { channel: '', message: '' },
704
+ defaultPorts: {
705
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
706
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
707
+ },
708
+ },
709
+ {
710
+ type: WorkflowNodeType.DATABASE,
711
+ name: 'Data',
712
+ description: 'Read and write data to databases',
713
+ icon: NODE_ICONS[WorkflowNodeType.DATABASE],
714
+ color: '#6366F1',
715
+ category: 'data',
716
+ defaultConfig: {
717
+ operation: DataOperation.QUERY,
718
+ dataSource: null,
719
+ entity: null,
720
+ filter: null,
721
+ fields: {},
722
+ select: [],
723
+ orderBy: [],
724
+ limit: null,
725
+ offset: null,
726
+ outputVariable: 'results',
727
+ },
728
+ defaultPorts: {
729
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
730
+ outputs: [
731
+ { id: 'out', type: PortType.OUTPUT, label: 'Output' },
732
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
733
+ ],
734
+ },
735
+ },
736
+ {
737
+ type: WorkflowNodeType.VARIABLE,
738
+ name: 'Variable',
739
+ description: 'Set or get a workflow variable',
740
+ icon: NODE_ICONS[WorkflowNodeType.VARIABLE],
741
+ color: NODE_COLORS[WorkflowNodeType.VARIABLE],
742
+ category: 'data',
743
+ defaultConfig: { variableOperation: 'set', variableName: '', value: '' },
744
+ defaultPorts: {
745
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
746
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
747
+ },
748
+ },
749
+ {
750
+ type: WorkflowNodeType.CHATBOT,
751
+ name: 'Chatbot Trigger',
752
+ description: 'Trigger workflow from chatbot interactions',
753
+ icon: NODE_ICONS[WorkflowNodeType.CHATBOT],
754
+ color: NODE_COLORS[WorkflowNodeType.CHATBOT],
755
+ category: 'trigger',
756
+ defaultConfig: {
757
+ triggerEvents: ['MESSAGE_SENT'],
758
+ chatbotSize: 'medium',
759
+ chatbotVariant: 'floating',
760
+ title: 'Chat Assistant',
761
+ subtitle: 'Ask me anything',
762
+ placeholder: 'Type a message...',
763
+ initialMessage: '',
764
+ enableTypingIndicator: true,
765
+ enableSuggestions: false,
766
+ suggestions: [],
767
+ loadingType: 'dots',
768
+ enableFileUpload: false,
769
+ maxFileSize: 10,
770
+ maxFiles: 5,
771
+ allowImages: true,
772
+ allowDocuments: false,
773
+ allowText: false,
774
+ allowAudio: false,
775
+ allowVideo: false,
776
+ },
777
+ defaultPorts: {
778
+ inputs: [],
779
+ outputs: [
780
+ { id: 'message', type: PortType.OUTPUT, label: 'Message' },
781
+ { id: 'files', type: PortType.OUTPUT, label: 'Files' },
782
+ { id: 'session', type: PortType.OUTPUT, label: 'Session Start' },
783
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
784
+ ],
785
+ },
786
+ },
787
+ {
788
+ type: WorkflowNodeType.DEBUG,
789
+ name: 'Debug',
790
+ description: 'Display input, output, and variables for debugging',
791
+ icon: NODE_ICONS[WorkflowNodeType.DEBUG],
792
+ color: NODE_COLORS[WorkflowNodeType.DEBUG],
793
+ category: 'data',
794
+ defaultConfig: {},
795
+ defaultPorts: {
796
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
797
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
798
+ },
799
+ },
800
+ // Display nodes
801
+ {
802
+ type: WorkflowNodeType.UI_TABLE,
803
+ name: 'Table',
804
+ description: 'Display data as an interactive table',
805
+ icon: NODE_ICONS[WorkflowNodeType.UI_TABLE],
806
+ color: NODE_COLORS[WorkflowNodeType.UI_TABLE],
807
+ category: 'display',
808
+ defaultConfig: {
809
+ tableColumns: [],
810
+ dataExpression: '',
811
+ tablePageSize: 10,
812
+ tableEnableFilter: false,
813
+ tableEnableSort: true,
814
+ tableFixedHeader: false,
815
+ tableSize: 'normal',
816
+ tableEmptyText: 'No data available',
817
+ },
818
+ defaultPorts: {
819
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Data' }],
820
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
821
+ },
822
+ },
823
+ // Web nodes
824
+ {
825
+ type: WorkflowNodeType.WEB_SEARCH,
826
+ name: 'Web Search',
827
+ description: 'Search the web using Google, Bing, Brave, or DuckDuckGo',
828
+ icon: NODE_ICONS[WorkflowNodeType.WEB_SEARCH],
829
+ color: NODE_COLORS[WorkflowNodeType.WEB_SEARCH],
830
+ category: 'web',
831
+ defaultConfig: {
832
+ provider: 'google',
833
+ queryField: 'query',
834
+ numResults: 10,
835
+ safeSearch: true,
836
+ timeout: 30000,
837
+ },
838
+ defaultPorts: {
839
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
840
+ outputs: [
841
+ { id: 'out', type: PortType.OUTPUT, label: 'Results' },
842
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
843
+ ],
844
+ },
845
+ },
846
+ {
847
+ type: WorkflowNodeType.WEB_CRAWL,
848
+ name: 'Web Crawl',
849
+ description: 'Crawl web pages and extract text content',
850
+ icon: NODE_ICONS[WorkflowNodeType.WEB_CRAWL],
851
+ color: NODE_COLORS[WorkflowNodeType.WEB_CRAWL],
852
+ category: 'web',
853
+ defaultConfig: {
854
+ urlField: 'url',
855
+ maxDepth: 1,
856
+ maxPages: 10,
857
+ sameDomainOnly: true,
858
+ renderJs: false,
859
+ },
860
+ defaultPorts: {
861
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
862
+ outputs: [
863
+ { id: 'out', type: PortType.OUTPUT, label: 'Pages' },
864
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
865
+ ],
866
+ },
867
+ },
868
+ // Document generation
869
+ {
870
+ type: WorkflowNodeType.DOCUMENT_GENERATOR,
871
+ name: 'Document Generator',
872
+ description: 'Generate Word documents from templates with dynamic data',
873
+ icon: NODE_ICONS[WorkflowNodeType.DOCUMENT_GENERATOR],
874
+ color: NODE_COLORS[WorkflowNodeType.DOCUMENT_GENERATOR],
875
+ category: 'documents',
876
+ defaultConfig: {
877
+ templateId: '',
878
+ data: {},
879
+ outputVariable: 'documentResult',
880
+ },
881
+ defaultPorts: {
882
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
883
+ outputs: [
884
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
885
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
886
+ ],
887
+ },
888
+ },
889
+ // Storage nodes
890
+ {
891
+ type: WorkflowNodeType.FILE_STORAGE,
892
+ name: 'File Storage',
893
+ description: 'Store files to S3, MinIO, or local filesystem',
894
+ icon: NODE_ICONS[WorkflowNodeType.FILE_STORAGE],
895
+ color: NODE_COLORS[WorkflowNodeType.FILE_STORAGE],
896
+ category: 'storage',
897
+ defaultConfig: {
898
+ provider: 'local',
899
+ bucket: 'default',
900
+ path: '',
901
+ fileField: 'file',
902
+ filenameField: 'filename',
903
+ },
904
+ defaultPorts: {
905
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
906
+ outputs: [
907
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
908
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
909
+ ],
910
+ },
911
+ },
912
+ // RAG nodes
913
+ {
914
+ type: WorkflowNodeType.EMBEDDING,
915
+ name: 'Embedding',
916
+ description: 'Convert text to vector embeddings',
917
+ icon: NODE_ICONS[WorkflowNodeType.EMBEDDING],
918
+ color: NODE_COLORS[WorkflowNodeType.EMBEDDING],
919
+ category: 'rag',
920
+ defaultConfig: {
921
+ provider: 'openai',
922
+ model: 'text-embedding-3-small',
923
+ inputField: 'text',
924
+ batchSize: 100,
925
+ },
926
+ defaultPorts: {
927
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Text' }],
928
+ outputs: [
929
+ { id: 'out', type: PortType.OUTPUT, label: 'Embedding' },
930
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
931
+ ],
932
+ },
933
+ },
934
+ {
935
+ type: WorkflowNodeType.DOCUMENT_LOADER,
936
+ name: 'Document Loader',
937
+ description: 'Load and parse documents (PDF, Word, HTML, etc.)',
938
+ icon: NODE_ICONS[WorkflowNodeType.DOCUMENT_LOADER],
939
+ color: NODE_COLORS[WorkflowNodeType.DOCUMENT_LOADER],
940
+ category: 'rag',
941
+ defaultConfig: {
942
+ sourceType: 'text',
943
+ contentField: 'content',
944
+ filenameField: 'filename',
945
+ defaultType: 'txt',
946
+ timeout: 30000,
947
+ },
948
+ defaultPorts: {
949
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Document' }],
950
+ outputs: [
951
+ { id: 'out', type: PortType.OUTPUT, label: 'Content' },
952
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
953
+ ],
954
+ },
955
+ },
956
+ {
957
+ type: WorkflowNodeType.TEXT_SPLITTER,
958
+ name: 'Text Splitter',
959
+ description: 'Split text into chunks for embedding',
960
+ icon: NODE_ICONS[WorkflowNodeType.TEXT_SPLITTER],
961
+ color: NODE_COLORS[WorkflowNodeType.TEXT_SPLITTER],
962
+ category: 'rag',
963
+ defaultConfig: {
964
+ strategy: 'recursive',
965
+ chunkSize: 1000,
966
+ chunkOverlap: 200,
967
+ contentField: 'content',
968
+ },
969
+ defaultPorts: {
970
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Text' }],
971
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Chunks' }],
972
+ },
973
+ },
974
+ {
975
+ type: WorkflowNodeType.VECTOR_WRITE,
976
+ name: 'Vector Write',
977
+ description: 'Store embeddings in vector database',
978
+ icon: NODE_ICONS[WorkflowNodeType.VECTOR_WRITE],
979
+ color: NODE_COLORS[WorkflowNodeType.VECTOR_WRITE],
980
+ category: 'rag',
981
+ defaultConfig: {
982
+ collectionName: '',
983
+ upsertMode: 'replace',
984
+ },
985
+ defaultPorts: {
986
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Embeddings' }],
987
+ outputs: [
988
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
989
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
990
+ ],
991
+ },
992
+ },
993
+ {
994
+ type: WorkflowNodeType.VECTOR_SEARCH,
995
+ name: 'Vector Search',
996
+ description: 'Search for similar documents in vector store',
997
+ icon: NODE_ICONS[WorkflowNodeType.VECTOR_SEARCH],
998
+ color: NODE_COLORS[WorkflowNodeType.VECTOR_SEARCH],
999
+ category: 'rag',
1000
+ defaultConfig: {
1001
+ collectionName: '',
1002
+ topK: 5,
1003
+ minScore: 0.7,
1004
+ includeContent: true,
1005
+ includeMetadata: true,
1006
+ provider: 'openai',
1007
+ model: 'text-embedding-3-small',
1008
+ },
1009
+ defaultPorts: {
1010
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Query' }],
1011
+ outputs: [
1012
+ { id: 'out', type: PortType.OUTPUT, label: 'Results' },
1013
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1014
+ ],
1015
+ },
1016
+ },
1017
+ {
1018
+ type: WorkflowNodeType.CONTEXT_BUILDER,
1019
+ name: 'Context Builder',
1020
+ description: 'Format retrieved documents into LLM-ready context',
1021
+ icon: NODE_ICONS[WorkflowNodeType.CONTEXT_BUILDER],
1022
+ color: NODE_COLORS[WorkflowNodeType.CONTEXT_BUILDER],
1023
+ category: 'rag',
1024
+ defaultConfig: {
1025
+ template: 'default',
1026
+ maxTokens: 4000,
1027
+ maxDocuments: 10,
1028
+ includeSourceInfo: true,
1029
+ includeSimilarityScore: false,
1030
+ separator: '\n\n---\n\n',
1031
+ },
1032
+ defaultPorts: {
1033
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Results' }],
1034
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Context' }],
1035
+ },
1036
+ },
1037
+ {
1038
+ type: WorkflowNodeType.RERANKER,
1039
+ name: 'Reranker',
1040
+ description: 'Re-rank search results by relevance',
1041
+ icon: NODE_ICONS[WorkflowNodeType.RERANKER],
1042
+ color: NODE_COLORS[WorkflowNodeType.RERANKER],
1043
+ category: 'rag',
1044
+ defaultConfig: {
1045
+ model: 'cross-encoder',
1046
+ topK: 5,
1047
+ threshold: 0.5,
1048
+ },
1049
+ defaultPorts: {
1050
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Results' }],
1051
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Reranked' }],
1052
+ },
1053
+ },
1054
+ // Safety nodes
1055
+ {
1056
+ type: WorkflowNodeType.GUARDRAIL,
1057
+ name: 'Guardrail',
1058
+ description: 'Validate and filter LLM inputs/outputs for safety',
1059
+ icon: NODE_ICONS[WorkflowNodeType.GUARDRAIL],
1060
+ color: NODE_COLORS[WorkflowNodeType.GUARDRAIL],
1061
+ category: 'safety',
1062
+ defaultConfig: {
1063
+ mode: 'input',
1064
+ contentField: 'content',
1065
+ onFail: 'block',
1066
+ checks: [],
1067
+ },
1068
+ defaultPorts: {
1069
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1070
+ outputs: [
1071
+ { id: 'out', type: PortType.OUTPUT, label: 'Passed' },
1072
+ { id: 'blocked', type: PortType.ERROR, label: 'Blocked' },
1073
+ ],
1074
+ },
1075
+ },
1076
+ // Slack integration nodes
1077
+ {
1078
+ type: WorkflowNodeType.SLACK_SEND_MESSAGE,
1079
+ name: 'Slack: Send Message',
1080
+ description: 'Send a message to a Slack channel or user',
1081
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_SEND_MESSAGE],
1082
+ color: NODE_COLORS[WorkflowNodeType.SLACK_SEND_MESSAGE],
1083
+ category: 'slack',
1084
+ defaultConfig: {
1085
+ slackMethod: 'api',
1086
+ botToken: '',
1087
+ channel: '',
1088
+ text: '',
1089
+ unfurlLinks: true,
1090
+ unfurlMedia: true,
1091
+ },
1092
+ defaultPorts: {
1093
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1094
+ outputs: [
1095
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1096
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1097
+ ],
1098
+ },
1099
+ },
1100
+ {
1101
+ type: WorkflowNodeType.SLACK_GET_CHANNEL_INFO,
1102
+ name: 'Slack: Channel Info',
1103
+ description: 'Get information about a Slack channel',
1104
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_GET_CHANNEL_INFO],
1105
+ color: NODE_COLORS[WorkflowNodeType.SLACK_GET_CHANNEL_INFO],
1106
+ category: 'slack',
1107
+ defaultConfig: {
1108
+ botToken: '',
1109
+ channel: '',
1110
+ includeLocale: false,
1111
+ includeNumMembers: false,
1112
+ },
1113
+ defaultPorts: {
1114
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1115
+ outputs: [
1116
+ { id: 'out', type: PortType.OUTPUT, label: 'Info' },
1117
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1118
+ ],
1119
+ },
1120
+ },
1121
+ {
1122
+ type: WorkflowNodeType.SLACK_LIST_CHANNELS,
1123
+ name: 'Slack: List Channels',
1124
+ description: 'List available Slack channels in the workspace',
1125
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_LIST_CHANNELS],
1126
+ color: NODE_COLORS[WorkflowNodeType.SLACK_LIST_CHANNELS],
1127
+ category: 'slack',
1128
+ defaultConfig: {
1129
+ botToken: '',
1130
+ types: 'public_channel',
1131
+ excludeArchived: true,
1132
+ limit: 100,
1133
+ },
1134
+ defaultPorts: {
1135
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1136
+ outputs: [
1137
+ { id: 'out', type: PortType.OUTPUT, label: 'Channels' },
1138
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1139
+ ],
1140
+ },
1141
+ },
1142
+ {
1143
+ type: WorkflowNodeType.SLACK_ADD_REACTION,
1144
+ name: 'Slack: Add Reaction',
1145
+ description: 'Add a reaction emoji to a Slack message',
1146
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_ADD_REACTION],
1147
+ color: NODE_COLORS[WorkflowNodeType.SLACK_ADD_REACTION],
1148
+ category: 'slack',
1149
+ defaultConfig: {
1150
+ botToken: '',
1151
+ channel: '',
1152
+ timestamp: '',
1153
+ name: 'thumbsup',
1154
+ },
1155
+ defaultPorts: {
1156
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1157
+ outputs: [
1158
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1159
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1160
+ ],
1161
+ },
1162
+ },
1163
+ {
1164
+ type: WorkflowNodeType.SLACK_UPLOAD_FILE,
1165
+ name: 'Slack: Upload File',
1166
+ description: 'Upload a file to a Slack channel',
1167
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_UPLOAD_FILE],
1168
+ color: NODE_COLORS[WorkflowNodeType.SLACK_UPLOAD_FILE],
1169
+ category: 'slack',
1170
+ defaultConfig: {
1171
+ botToken: '',
1172
+ channels: '',
1173
+ filename: '',
1174
+ content: '',
1175
+ title: '',
1176
+ },
1177
+ defaultPorts: {
1178
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1179
+ outputs: [
1180
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1181
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1182
+ ],
1183
+ },
1184
+ },
1185
+ // Telegram integration nodes
1186
+ {
1187
+ type: WorkflowNodeType.TELEGRAM_SEND,
1188
+ name: 'Telegram: Send Message',
1189
+ description: 'Send a message to a Telegram chat with typing indicator and optional emoji reaction',
1190
+ icon: NODE_ICONS[WorkflowNodeType.TELEGRAM_SEND],
1191
+ color: NODE_COLORS[WorkflowNodeType.TELEGRAM_SEND],
1192
+ category: 'telegram',
1193
+ defaultConfig: {
1194
+ botToken: '',
1195
+ chatId: '',
1196
+ text: '',
1197
+ parseMode: '',
1198
+ replyToMessageId: '',
1199
+ showTyping: true,
1200
+ reaction: '',
1201
+ disableNotification: false,
1202
+ },
1203
+ defaultPorts: {
1204
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1205
+ outputs: [
1206
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1207
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1208
+ ],
1209
+ },
1210
+ },
1211
+ // Persistent trigger nodes
1212
+ {
1213
+ type: WorkflowNodeType.TELEGRAM_BOT,
1214
+ name: 'Telegram Bot',
1215
+ description: 'Receive messages from a Telegram bot via polling or webhook',
1216
+ icon: NODE_ICONS[WorkflowNodeType.TELEGRAM_BOT],
1217
+ color: NODE_COLORS[WorkflowNodeType.TELEGRAM_BOT],
1218
+ category: 'trigger',
1219
+ defaultConfig: {
1220
+ botToken: '',
1221
+ mode: 'polling',
1222
+ pollingTimeout: 30,
1223
+ allowedUpdates: [],
1224
+ allowedChatIds: '',
1225
+ allowedUserIds: '',
1226
+ },
1227
+ defaultPorts: {
1228
+ inputs: [],
1229
+ outputs: [
1230
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
1231
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1232
+ ],
1233
+ },
1234
+ },
1235
+ {
1236
+ type: WorkflowNodeType.SLACK_SOCKET,
1237
+ name: 'Slack Socket',
1238
+ description: 'Receive events via Slack Socket Mode (WebSocket)',
1239
+ icon: NODE_ICONS[WorkflowNodeType.SLACK_SOCKET],
1240
+ color: NODE_COLORS[WorkflowNodeType.SLACK_SOCKET],
1241
+ category: 'trigger',
1242
+ defaultConfig: { appToken: '', botToken: '' },
1243
+ defaultPorts: {
1244
+ inputs: [],
1245
+ outputs: [
1246
+ { id: 'out', type: PortType.OUTPUT, label: 'Event' },
1247
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1248
+ ],
1249
+ },
1250
+ },
1251
+ {
1252
+ type: WorkflowNodeType.DISCORD_BOT,
1253
+ name: 'Discord Bot',
1254
+ description: 'Receive events from a Discord bot (Gateway WebSocket)',
1255
+ icon: NODE_ICONS[WorkflowNodeType.DISCORD_BOT],
1256
+ color: NODE_COLORS[WorkflowNodeType.DISCORD_BOT],
1257
+ category: 'trigger',
1258
+ defaultConfig: { botToken: '' },
1259
+ defaultPorts: {
1260
+ inputs: [],
1261
+ outputs: [
1262
+ { id: 'out', type: PortType.OUTPUT, label: 'Event' },
1263
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1264
+ ],
1265
+ },
1266
+ },
1267
+ {
1268
+ type: WorkflowNodeType.WHATSAPP_WEBHOOK,
1269
+ name: 'WhatsApp',
1270
+ description: 'Receive messages via WhatsApp Business API',
1271
+ icon: NODE_ICONS[WorkflowNodeType.WHATSAPP_WEBHOOK],
1272
+ color: NODE_COLORS[WorkflowNodeType.WHATSAPP_WEBHOOK],
1273
+ category: 'trigger',
1274
+ defaultConfig: {},
1275
+ defaultPorts: {
1276
+ inputs: [],
1277
+ outputs: [
1278
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
1279
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1280
+ ],
1281
+ },
1282
+ },
1283
+ {
1284
+ type: WorkflowNodeType.CUSTOM_WEBSOCKET,
1285
+ name: 'WebSocket Listener',
1286
+ description: 'Listen for messages on a custom WebSocket endpoint',
1287
+ icon: NODE_ICONS[WorkflowNodeType.CUSTOM_WEBSOCKET],
1288
+ color: NODE_COLORS[WorkflowNodeType.CUSTOM_WEBSOCKET],
1289
+ category: 'trigger',
1290
+ defaultConfig: { url: '' },
1291
+ defaultPorts: {
1292
+ inputs: [],
1293
+ outputs: [
1294
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
1295
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1296
+ ],
1297
+ },
1298
+ },
1299
+ // MCP integration
1300
+ {
1301
+ type: WorkflowNodeType.MCP,
1302
+ name: 'MCP Server',
1303
+ description: 'Connect to MCP server - provides tools to Agent/LLM nodes',
1304
+ icon: NODE_ICONS[WorkflowNodeType.MCP],
1305
+ color: NODE_COLORS[WorkflowNodeType.MCP],
1306
+ category: 'trigger',
1307
+ defaultConfig: {
1308
+ serverUrl: '',
1309
+ transportType: 'streamable_http',
1310
+ },
1311
+ defaultPorts: {
1312
+ inputs: [],
1313
+ outputs: [
1314
+ { id: 'out', type: PortType.OUTPUT, label: 'Event' },
1315
+ ],
1316
+ },
1317
+ },
1318
+ // Annotation nodes
1319
+ {
1320
+ type: WorkflowNodeType.NOTE,
1321
+ name: 'Note',
1322
+ description: 'Add annotations and comments to your workflow',
1323
+ icon: NODE_ICONS[WorkflowNodeType.NOTE],
1324
+ color: NODE_COLORS[WorkflowNodeType.NOTE],
1325
+ category: 'annotation',
1326
+ defaultConfig: {
1327
+ noteContent: 'Add your note here...',
1328
+ noteBackgroundColor: '#fef08a',
1329
+ noteTextColor: '#713f12',
1330
+ noteFontSize: 'medium',
1331
+ noteShowBorder: false,
1332
+ },
1333
+ defaultPorts: {
1334
+ inputs: [],
1335
+ outputs: [],
1336
+ },
1337
+ },
1338
+ {
1339
+ type: WorkflowNodeType.FRAME,
1340
+ name: 'Frame',
1341
+ description: 'Group related nodes together with a labeled container',
1342
+ icon: NODE_ICONS[WorkflowNodeType.FRAME],
1343
+ color: NODE_COLORS[WorkflowNodeType.FRAME],
1344
+ category: 'annotation',
1345
+ defaultConfig: {
1346
+ frameLabel: 'Group',
1347
+ frameWidth: 400,
1348
+ frameHeight: 300,
1349
+ frameBackgroundColor: 'rgba(99, 102, 241, 0.05)',
1350
+ frameBorderColor: 'rgba(99, 102, 241, 0.3)',
1351
+ frameLabelPosition: 'top-left',
1352
+ frameLabelPlacement: 'outside',
1353
+ frameShowLabel: true,
1354
+ frameCollapsed: false,
1355
+ },
1356
+ defaultPorts: {
1357
+ inputs: [],
1358
+ outputs: [],
1359
+ },
1360
+ },
1361
+ // Agent nodes
1362
+ {
1363
+ type: AgentNodeType.AGENT,
1364
+ name: 'AI Agent',
1365
+ description: 'Autonomous AI agent that can use tools',
1366
+ icon: NODE_ICONS[AgentNodeType.AGENT],
1367
+ color: NODE_COLORS[AgentNodeType.AGENT],
1368
+ category: 'agent',
1369
+ defaultConfig: { agentId: '', maxIterations: 10 },
1370
+ defaultPorts: {
1371
+ inputs: [
1372
+ { id: 'in', type: PortType.INPUT, label: 'Input' },
1373
+ { id: 'retriever', type: PortType.INPUT, label: 'Retriever' },
1374
+ ],
1375
+ configs: [
1376
+ { id: 'llm', type: PortType.CONFIG, label: 'LLM' },
1377
+ { id: 'prompt', type: PortType.CONFIG, label: 'Prompt' },
1378
+ { id: 'memory', type: PortType.CONFIG, label: 'Memory' },
1379
+ { id: 'tools', type: PortType.CONFIG, label: 'Tools', multiple: true },
1380
+ { id: 'structured_output', type: PortType.CONFIG, label: 'Structured Output' },
1381
+ ],
1382
+ outputs: [
1383
+ { id: 'out', type: PortType.OUTPUT, label: 'Output' },
1384
+ ],
1385
+ },
1386
+ },
1387
+ {
1388
+ type: AgentNodeType.TOOL,
1389
+ name: 'Tool',
1390
+ description: 'A tool that can be used by an agent',
1391
+ icon: NODE_ICONS[AgentNodeType.TOOL],
1392
+ color: NODE_COLORS[AgentNodeType.TOOL],
1393
+ category: 'agent',
1394
+ defaultConfig: { toolName: '', description: '', parameters: [] },
1395
+ defaultPorts: {
1396
+ inputs: [
1397
+ { id: 'function', type: PortType.INPUT, label: 'Function' },
1398
+ ],
1399
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Tool' }],
1400
+ },
1401
+ },
1402
+ {
1403
+ type: AgentNodeType.MEMORY,
1404
+ name: 'Context Memory',
1405
+ description: 'Conversation memory for agents - stores and retrieves chat history',
1406
+ icon: NODE_ICONS[AgentNodeType.MEMORY],
1407
+ color: NODE_COLORS[AgentNodeType.MEMORY],
1408
+ category: 'agent',
1409
+ defaultConfig: {
1410
+ cutoffMode: 'message',
1411
+ maxMessages: 50,
1412
+ maxTokens: 4000,
1413
+ conversationIdExpression: '${input.threadId}',
1414
+ },
1415
+ defaultPorts: {
1416
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1417
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Memory Config' }],
1418
+ },
1419
+ },
1420
+ {
1421
+ type: AgentNodeType.CONTEXT_MEMORY,
1422
+ name: 'Context Memory (RAG)',
1423
+ description: 'RAG-enhanced conversation memory with buffer, semantic, or hybrid modes',
1424
+ icon: NODE_ICONS[AgentNodeType.CONTEXT_MEMORY],
1425
+ color: NODE_COLORS[AgentNodeType.CONTEXT_MEMORY],
1426
+ category: 'agent',
1427
+ defaultConfig: {
1428
+ memoryType: 'hybrid',
1429
+ cutoffMode: 'message',
1430
+ maxMessages: 50,
1431
+ maxTokens: 4000,
1432
+ conversationIdExpression: '${input.threadId}',
1433
+ },
1434
+ defaultPorts: {
1435
+ inputs: [],
1436
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Memory Config' }],
1437
+ },
1438
+ },
1439
+ {
1440
+ type: AgentNodeType.PROMPT,
1441
+ name: 'Prompt',
1442
+ description: 'Prompt template for LLM',
1443
+ icon: NODE_ICONS[AgentNodeType.PROMPT],
1444
+ color: NODE_COLORS[AgentNodeType.PROMPT],
1445
+ category: 'agent',
1446
+ defaultConfig: { template: '', variables: [] },
1447
+ defaultPorts: {
1448
+ inputs: [],
1449
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Prompt' }],
1450
+ },
1451
+ },
1452
+ {
1453
+ type: AgentNodeType.LLM,
1454
+ name: 'LLM',
1455
+ description: 'Large Language Model call',
1456
+ icon: NODE_ICONS[AgentNodeType.LLM],
1457
+ color: NODE_COLORS[AgentNodeType.LLM],
1458
+ category: 'agent',
1459
+ defaultConfig: { provider: 'openai', modelName: 'gpt-4', temperature: 0.7, maxTokens: 2048 },
1460
+ defaultPorts: {
1461
+ inputs: [],
1462
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Response' }],
1463
+ },
1464
+ },
1465
+ {
1466
+ type: AgentNodeType.RETRIEVER,
1467
+ name: 'Retriever',
1468
+ description: 'Retrieve relevant documents from vector store',
1469
+ icon: NODE_ICONS[AgentNodeType.RETRIEVER],
1470
+ color: NODE_COLORS[AgentNodeType.RETRIEVER],
1471
+ category: 'agent',
1472
+ defaultConfig: { vectorStoreId: '', topK: 5 },
1473
+ defaultPorts: {
1474
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Query' }],
1475
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Documents' }],
1476
+ },
1477
+ },
1478
+ {
1479
+ type: AgentNodeType.CHAIN,
1480
+ name: 'Chain',
1481
+ description: 'Chain multiple LLM calls together',
1482
+ icon: NODE_ICONS[AgentNodeType.CHAIN],
1483
+ color: NODE_COLORS[AgentNodeType.CHAIN],
1484
+ category: 'agent',
1485
+ defaultConfig: { chainType: 'sequential' },
1486
+ defaultPorts: {
1487
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1488
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
1489
+ },
1490
+ },
1491
+ {
1492
+ type: AgentNodeType.ROUTER,
1493
+ name: 'Router',
1494
+ description: 'Route to different chains based on input',
1495
+ icon: NODE_ICONS[AgentNodeType.ROUTER],
1496
+ color: NODE_COLORS[AgentNodeType.ROUTER],
1497
+ category: 'agent',
1498
+ defaultConfig: { routingExpression: '' },
1499
+ defaultPorts: {
1500
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1501
+ outputs: [
1502
+ { id: 'route1', type: PortType.OUTPUT, label: 'Route 1' },
1503
+ { id: 'route2', type: PortType.OUTPUT, label: 'Route 2' },
1504
+ { id: 'default', type: PortType.CONDITIONAL_DEFAULT, label: 'Default' },
1505
+ ],
1506
+ },
1507
+ },
1508
+ {
1509
+ type: AgentNodeType.HUMAN_INPUT,
1510
+ name: 'Human Input',
1511
+ description: 'Wait for human input in the workflow',
1512
+ icon: NODE_ICONS[AgentNodeType.HUMAN_INPUT],
1513
+ color: NODE_COLORS[AgentNodeType.HUMAN_INPUT],
1514
+ category: 'agent',
1515
+ defaultConfig: { prompt: '', timeout: 86400000 },
1516
+ defaultPorts: {
1517
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Context' }],
1518
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Response' }],
1519
+ },
1520
+ },
1521
+ {
1522
+ type: AgentNodeType.OUTPUT_PARSER,
1523
+ name: 'Output Parser',
1524
+ description: 'Parse LLM output into structured data',
1525
+ icon: NODE_ICONS[AgentNodeType.OUTPUT_PARSER],
1526
+ color: NODE_COLORS[AgentNodeType.OUTPUT_PARSER],
1527
+ category: 'agent',
1528
+ defaultConfig: { parserType: 'json', schema: {} },
1529
+ defaultPorts: {
1530
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Raw Output' }],
1531
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Parsed Data' }],
1532
+ },
1533
+ },
1534
+ {
1535
+ type: AgentNodeType.STRUCTURED_OUTPUT,
1536
+ name: 'Structured Output',
1537
+ description: 'Define a JSON schema to enforce structured LLM output',
1538
+ icon: NODE_ICONS[AgentNodeType.STRUCTURED_OUTPUT],
1539
+ color: NODE_COLORS[AgentNodeType.STRUCTURED_OUTPUT],
1540
+ category: 'agent',
1541
+ defaultConfig: {
1542
+ schemaName: 'structured_output',
1543
+ strict: true,
1544
+ schema: {
1545
+ type: 'object',
1546
+ properties: {},
1547
+ required: [],
1548
+ additionalProperties: false,
1549
+ },
1550
+ },
1551
+ defaultPorts: {
1552
+ inputs: [],
1553
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Schema' }],
1554
+ },
1555
+ },
1556
+ // DB Designer nodes
1557
+ {
1558
+ type: DbDesignerNodeType.TABLE,
1559
+ name: 'Table',
1560
+ description: 'Define a database table with columns',
1561
+ icon: NODE_ICONS[DbDesignerNodeType.TABLE],
1562
+ color: NODE_COLORS[DbDesignerNodeType.TABLE],
1563
+ category: 'db-tables-views',
1564
+ defaultConfig: {
1565
+ tableName: '',
1566
+ columns: [],
1567
+ primaryKey: '',
1568
+ },
1569
+ defaultPorts: {
1570
+ inputs: [],
1571
+ outputs: [
1572
+ { id: 'ref', type: PortType.OUTPUT, label: 'Reference' },
1573
+ ],
1574
+ },
1575
+ },
1576
+ {
1577
+ type: DbDesignerNodeType.VIEW,
1578
+ name: 'View',
1579
+ description: 'Create a database view based on queries',
1580
+ icon: NODE_ICONS[DbDesignerNodeType.VIEW],
1581
+ color: NODE_COLORS[DbDesignerNodeType.VIEW],
1582
+ category: 'db-tables-views',
1583
+ defaultConfig: {
1584
+ viewName: '',
1585
+ query: '',
1586
+ materialized: false,
1587
+ },
1588
+ defaultPorts: {
1589
+ inputs: [{ id: 'source', type: PortType.INPUT, label: 'Source Tables' }],
1590
+ outputs: [
1591
+ { id: 'ref', type: PortType.OUTPUT, label: 'Reference' },
1592
+ ],
1593
+ },
1594
+ },
1595
+ {
1596
+ type: DbDesignerNodeType.INDEX,
1597
+ name: 'Index',
1598
+ description: 'Create an index on table columns',
1599
+ icon: NODE_ICONS[DbDesignerNodeType.INDEX],
1600
+ color: NODE_COLORS[DbDesignerNodeType.INDEX],
1601
+ category: 'db-indexes-queries',
1602
+ defaultConfig: {
1603
+ indexName: '',
1604
+ indexColumns: [],
1605
+ unique: false,
1606
+ indexType: 'BTREE',
1607
+ },
1608
+ defaultPorts: {
1609
+ inputs: [{ id: 'table', type: PortType.INPUT, label: 'Table' }],
1610
+ outputs: [],
1611
+ },
1612
+ },
1613
+ {
1614
+ type: DbDesignerNodeType.RELATIONSHIP,
1615
+ name: 'Relationship',
1616
+ description: 'Define foreign key relationships between tables',
1617
+ icon: NODE_ICONS[DbDesignerNodeType.RELATIONSHIP],
1618
+ color: NODE_COLORS[DbDesignerNodeType.RELATIONSHIP],
1619
+ category: 'db-relations-constraints',
1620
+ defaultConfig: {
1621
+ relationshipType: 'ONE_TO_MANY',
1622
+ sourceColumn: '',
1623
+ targetColumn: '',
1624
+ onDelete: 'CASCADE',
1625
+ onUpdate: 'CASCADE',
1626
+ },
1627
+ defaultPorts: {
1628
+ inputs: [
1629
+ { id: 'source', type: PortType.INPUT, label: 'Source Table' },
1630
+ { id: 'target', type: PortType.INPUT, label: 'Target Table' },
1631
+ ],
1632
+ outputs: [],
1633
+ },
1634
+ },
1635
+ {
1636
+ type: DbDesignerNodeType.CONSTRAINT,
1637
+ name: 'Constraint',
1638
+ description: 'Add constraints (unique, check, foreign_key)',
1639
+ icon: NODE_ICONS[DbDesignerNodeType.CONSTRAINT],
1640
+ color: NODE_COLORS[DbDesignerNodeType.CONSTRAINT],
1641
+ category: 'db-relations-constraints',
1642
+ defaultConfig: {
1643
+ constraintName: '',
1644
+ constraintType: 'UNIQUE',
1645
+ constraintColumns: [],
1646
+ checkExpression: '',
1647
+ },
1648
+ defaultPorts: {
1649
+ inputs: [{ id: 'table', type: PortType.INPUT, label: 'Table' }],
1650
+ outputs: [],
1651
+ },
1652
+ },
1653
+ {
1654
+ type: DbDesignerNodeType.QUERY,
1655
+ name: 'Query',
1656
+ description: 'Define saved queries or stored procedures',
1657
+ icon: NODE_ICONS[DbDesignerNodeType.QUERY],
1658
+ color: NODE_COLORS[DbDesignerNodeType.QUERY],
1659
+ category: 'db-indexes-queries',
1660
+ defaultConfig: {
1661
+ queryName: '',
1662
+ queryText: '',
1663
+ parameters: [],
1664
+ },
1665
+ defaultPorts: {
1666
+ inputs: [{ id: 'tables', type: PortType.INPUT, label: 'Tables' }],
1667
+ outputs: [{ id: 'result', type: PortType.OUTPUT, label: 'Result Schema' }],
1668
+ },
1669
+ },
1670
+ // Whiteboard nodes
1671
+ {
1672
+ type: WhiteboardNodeType.STICKY_NOTE,
1673
+ name: 'Sticky Note',
1674
+ description: 'Add a sticky note to the whiteboard',
1675
+ icon: NODE_ICONS[WhiteboardNodeType.STICKY_NOTE],
1676
+ color: NODE_COLORS[WhiteboardNodeType.STICKY_NOTE],
1677
+ category: 'wb-notes-text',
1678
+ defaultConfig: {
1679
+ textContent: '',
1680
+ backgroundColor: '#fef08a',
1681
+ textColor: '#713f12',
1682
+ fontSize: 14,
1683
+ width: 200,
1684
+ height: 200,
1685
+ },
1686
+ defaultPorts: {
1687
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1688
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1689
+ },
1690
+ },
1691
+ {
1692
+ type: WhiteboardNodeType.TEXT_BLOCK,
1693
+ name: 'Text Block',
1694
+ description: 'Add a text block to the whiteboard',
1695
+ icon: NODE_ICONS[WhiteboardNodeType.TEXT_BLOCK],
1696
+ color: NODE_COLORS[WhiteboardNodeType.TEXT_BLOCK],
1697
+ category: 'wb-notes-text',
1698
+ defaultConfig: {
1699
+ textContent: '',
1700
+ fontSize: 16,
1701
+ fontWeight: 'normal',
1702
+ textAlign: 'left',
1703
+ width: 200,
1704
+ height: 50,
1705
+ },
1706
+ defaultPorts: {
1707
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1708
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1709
+ },
1710
+ },
1711
+ {
1712
+ type: WhiteboardNodeType.SHAPE_RECTANGLE,
1713
+ name: 'Rectangle',
1714
+ description: 'Add a rectangle shape',
1715
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_RECTANGLE],
1716
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_RECTANGLE],
1717
+ category: 'wb-shapes',
1718
+ defaultConfig: { width: 120, height: 120, fillColor: '#3b82f6' },
1719
+ defaultPorts: {
1720
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1721
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1722
+ },
1723
+ },
1724
+ {
1725
+ type: WhiteboardNodeType.SHAPE_CIRCLE,
1726
+ name: 'Circle',
1727
+ description: 'Add a circle shape',
1728
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_CIRCLE],
1729
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_CIRCLE],
1730
+ category: 'wb-shapes',
1731
+ defaultConfig: { width: 120, height: 120, fillColor: '#8b5cf6' },
1732
+ defaultPorts: {
1733
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1734
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1735
+ },
1736
+ },
1737
+ {
1738
+ type: WhiteboardNodeType.SHAPE_DIAMOND,
1739
+ name: 'Diamond',
1740
+ description: 'Add a diamond shape',
1741
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_DIAMOND],
1742
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_DIAMOND],
1743
+ category: 'wb-shapes',
1744
+ defaultConfig: { width: 120, height: 120, fillColor: '#f59e0b' },
1745
+ defaultPorts: {
1746
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1747
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1748
+ },
1749
+ },
1750
+ {
1751
+ type: WhiteboardNodeType.SHAPE_TRIANGLE,
1752
+ name: 'Triangle',
1753
+ description: 'Add a triangle shape',
1754
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_TRIANGLE],
1755
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_TRIANGLE],
1756
+ category: 'wb-shapes',
1757
+ defaultConfig: { width: 120, height: 120, fillColor: '#22c55e' },
1758
+ defaultPorts: {
1759
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1760
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1761
+ },
1762
+ },
1763
+ {
1764
+ type: WhiteboardNodeType.SHAPE_ARROW,
1765
+ name: 'Arrow',
1766
+ description: 'Add an arrow shape',
1767
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_ARROW],
1768
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_ARROW],
1769
+ category: 'wb-shapes',
1770
+ defaultConfig: { width: 120, height: 60, fillColor: '#6b7280' },
1771
+ defaultPorts: {
1772
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1773
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1774
+ },
1775
+ },
1776
+ {
1777
+ type: WhiteboardNodeType.SHAPE_LINE,
1778
+ name: 'Line',
1779
+ description: 'Add a line shape',
1780
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_LINE],
1781
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_LINE],
1782
+ category: 'wb-shapes',
1783
+ defaultConfig: { width: 120, height: 4, fillColor: '#6b7280' },
1784
+ defaultPorts: {
1785
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1786
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1787
+ },
1788
+ },
1789
+ {
1790
+ type: WhiteboardNodeType.SHAPE_STAR,
1791
+ name: 'Star',
1792
+ description: 'Add a star shape',
1793
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_STAR],
1794
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_STAR],
1795
+ category: 'wb-shapes',
1796
+ defaultConfig: { width: 120, height: 120, fillColor: '#f97316' },
1797
+ defaultPorts: {
1798
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1799
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1800
+ },
1801
+ },
1802
+ {
1803
+ type: WhiteboardNodeType.SHAPE_HEXAGON,
1804
+ name: 'Hexagon',
1805
+ description: 'Add a hexagon shape',
1806
+ icon: NODE_ICONS[WhiteboardNodeType.SHAPE_HEXAGON],
1807
+ color: NODE_COLORS[WhiteboardNodeType.SHAPE_HEXAGON],
1808
+ category: 'wb-shapes',
1809
+ defaultConfig: { width: 120, height: 120, fillColor: '#ec4899' },
1810
+ defaultPorts: {
1811
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1812
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1813
+ },
1814
+ },
1815
+ {
1816
+ type: WhiteboardNodeType.IMAGE,
1817
+ name: 'Image',
1818
+ description: 'Add an image to the whiteboard',
1819
+ icon: NODE_ICONS[WhiteboardNodeType.IMAGE],
1820
+ color: NODE_COLORS[WhiteboardNodeType.IMAGE],
1821
+ category: 'wb-media',
1822
+ defaultConfig: { imageUrl: '', width: 200, height: 200 },
1823
+ defaultPorts: {
1824
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1825
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1826
+ },
1827
+ },
1828
+ {
1829
+ type: WhiteboardNodeType.DRAWING,
1830
+ name: 'Drawing',
1831
+ description: 'Add a freehand drawing area',
1832
+ icon: NODE_ICONS[WhiteboardNodeType.DRAWING],
1833
+ color: NODE_COLORS[WhiteboardNodeType.DRAWING],
1834
+ category: 'wb-media',
1835
+ defaultConfig: { pathData: '', width: 200, height: 200 },
1836
+ defaultPorts: {
1837
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1838
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1839
+ },
1840
+ },
1841
+ {
1842
+ type: WhiteboardNodeType.VOTING,
1843
+ name: 'Voting',
1844
+ description: 'Add a voting element for collaboration',
1845
+ icon: NODE_ICONS[WhiteboardNodeType.VOTING],
1846
+ color: NODE_COLORS[WhiteboardNodeType.VOTING],
1847
+ category: 'wb-media',
1848
+ defaultConfig: { textContent: 'Vote', width: 200, height: 150 },
1849
+ defaultPorts: {
1850
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1851
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1852
+ },
1853
+ },
1854
+ {
1855
+ type: WhiteboardNodeType.MERMAID,
1856
+ name: 'Mermaid Diagram',
1857
+ description: 'Add a Mermaid diagram to the whiteboard',
1858
+ icon: NODE_ICONS[WhiteboardNodeType.MERMAID],
1859
+ color: NODE_COLORS[WhiteboardNodeType.MERMAID],
1860
+ category: 'wb-media',
1861
+ defaultConfig: { textContent: 'graph TD\n A[Start] --> B[End]', width: 400, height: 300 },
1862
+ defaultPorts: {
1863
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1864
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1865
+ },
1866
+ },
1867
+ {
1868
+ type: WhiteboardNodeType.ANCHOR,
1869
+ name: 'Anchor',
1870
+ description: 'Navigation anchor — other elements can link here',
1871
+ icon: NODE_ICONS[WhiteboardNodeType.ANCHOR],
1872
+ color: NODE_COLORS[WhiteboardNodeType.ANCHOR],
1873
+ category: 'wb-navigation',
1874
+ defaultConfig: { anchorLabel: 'Anchor', width: 120, height: 48 },
1875
+ defaultPorts: { inputs: [], outputs: [] },
1876
+ },
1877
+ {
1878
+ type: WhiteboardNodeType.FRAME,
1879
+ name: 'Frame',
1880
+ description: 'Group whiteboard elements together',
1881
+ icon: NODE_ICONS[WhiteboardNodeType.FRAME],
1882
+ color: NODE_COLORS[WhiteboardNodeType.FRAME],
1883
+ category: 'wb-layout',
1884
+ defaultConfig: {
1885
+ frameLabel: 'Group',
1886
+ frameWidth: 400,
1887
+ frameHeight: 300,
1888
+ frameBackgroundColor: 'rgba(99, 102, 241, 0.05)',
1889
+ frameBorderColor: 'rgba(99, 102, 241, 0.3)',
1890
+ frameLabelPosition: 'top-left',
1891
+ frameLabelPlacement: 'outside',
1892
+ frameShowLabel: true,
1893
+ frameCollapsed: false,
1894
+ },
1895
+ defaultPorts: {
1896
+ inputs: [],
1897
+ outputs: [],
1898
+ },
1899
+ },
1900
+ {
1901
+ type: WhiteboardNodeType.WORKFLOW,
1902
+ name: 'Workflow',
1903
+ description: 'Embed a workflow on the whiteboard',
1904
+ icon: NODE_ICONS[WhiteboardNodeType.WORKFLOW],
1905
+ color: NODE_COLORS[WhiteboardNodeType.WORKFLOW],
1906
+ category: 'wb-media',
1907
+ defaultConfig: {
1908
+ workflowId: '',
1909
+ workflowName: 'Workflow',
1910
+ workflowSteps: [],
1911
+ width: 280,
1912
+ height: 200,
1913
+ },
1914
+ defaultPorts: {
1915
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1916
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1917
+ },
1918
+ },
1919
+ {
1920
+ type: WhiteboardNodeType.DATABASE,
1921
+ name: 'Database Table',
1922
+ description: 'Embed a database table on the whiteboard',
1923
+ icon: NODE_ICONS[WhiteboardNodeType.DATABASE],
1924
+ color: NODE_COLORS[WhiteboardNodeType.DATABASE],
1925
+ category: 'wb-media',
1926
+ defaultConfig: {
1927
+ dbTableId: '',
1928
+ dbTableName: 'Table',
1929
+ dbTableColumns: [],
1930
+ dbPrimaryKey: '',
1931
+ width: 280,
1932
+ height: 200,
1933
+ },
1934
+ defaultPorts: {
1935
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1936
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Out' }],
1937
+ },
1938
+ },
1939
+ ];
1940
+ /**
1941
+ * Node categories for palette organization
1942
+ */
1943
+ export const NODE_CATEGORIES = [
1944
+ // Workflow mode categories
1945
+ {
1946
+ id: 'trigger',
1947
+ name: 'Triggers',
1948
+ icon: 'zap',
1949
+ nodeTypes: [
1950
+ WorkflowNodeType.START,
1951
+ WorkflowNodeType.HTTP_START,
1952
+ WorkflowNodeType.CHAT_START,
1953
+ WorkflowNodeType.TELEGRAM_BOT,
1954
+ WorkflowNodeType.SLACK_SOCKET,
1955
+ WorkflowNodeType.DISCORD_BOT,
1956
+ WorkflowNodeType.WHATSAPP_WEBHOOK,
1957
+ WorkflowNodeType.CUSTOM_WEBSOCKET,
1958
+ WorkflowNodeType.MCP,
1959
+ ],
1960
+ canvasType: CanvasType.WORKFLOW,
1961
+ },
1962
+ {
1963
+ id: 'control',
1964
+ name: 'Control Flow',
1965
+ icon: 'git-branch',
1966
+ nodeTypes: [
1967
+ WorkflowNodeType.END,
1968
+ WorkflowNodeType.HTTP_END,
1969
+ WorkflowNodeType.CONDITION,
1970
+ WorkflowNodeType.DELAY,
1971
+ WorkflowNodeType.PARALLEL,
1972
+ WorkflowNodeType.LOOP,
1973
+ ],
1974
+ canvasType: CanvasType.WORKFLOW,
1975
+ },
1976
+ {
1977
+ id: 'action',
1978
+ name: 'Actions',
1979
+ icon: 'zap',
1980
+ nodeTypes: [
1981
+ WorkflowNodeType.FUNCTION,
1982
+ WorkflowNodeType.HTTP,
1983
+ WorkflowNodeType.LLM,
1984
+ WorkflowNodeType.OCR,
1985
+ WorkflowNodeType.CHAT_OUTPUT,
1986
+ WorkflowNodeType.SUB_WORKFLOW,
1987
+ WorkflowNodeType.EMAIL,
1988
+ WorkflowNodeType.NOTIFICATION,
1989
+ WorkflowNodeType.DOCUMENT_GENERATOR,
1990
+ ],
1991
+ canvasType: CanvasType.WORKFLOW,
1992
+ },
1993
+ {
1994
+ id: 'data',
1995
+ name: 'Data',
1996
+ icon: 'database',
1997
+ nodeTypes: [
1998
+ WorkflowNodeType.TRANSFORM,
1999
+ WorkflowNodeType.DATABASE,
2000
+ WorkflowNodeType.VARIABLE,
2001
+ WorkflowNodeType.DEBUG,
2002
+ ],
2003
+ canvasType: CanvasType.WORKFLOW,
2004
+ },
2005
+ {
2006
+ id: 'web',
2007
+ name: 'Web',
2008
+ icon: 'globe',
2009
+ nodeTypes: [
2010
+ WorkflowNodeType.WEB_SEARCH,
2011
+ WorkflowNodeType.WEB_CRAWL,
2012
+ ],
2013
+ canvasType: CanvasType.WORKFLOW,
2014
+ },
2015
+ {
2016
+ id: 'storage',
2017
+ name: 'Storage',
2018
+ icon: 'hard-drive',
2019
+ nodeTypes: [
2020
+ WorkflowNodeType.FILE_STORAGE,
2021
+ ],
2022
+ canvasType: CanvasType.WORKFLOW,
2023
+ },
2024
+ {
2025
+ id: 'rag',
2026
+ name: 'RAG',
2027
+ icon: 'layers',
2028
+ nodeTypes: [
2029
+ WorkflowNodeType.DOCUMENT_LOADER,
2030
+ WorkflowNodeType.TEXT_SPLITTER,
2031
+ WorkflowNodeType.EMBEDDING,
2032
+ WorkflowNodeType.VECTOR_WRITE,
2033
+ WorkflowNodeType.VECTOR_SEARCH,
2034
+ WorkflowNodeType.CONTEXT_BUILDER,
2035
+ WorkflowNodeType.RERANKER,
2036
+ ],
2037
+ canvasType: CanvasType.WORKFLOW,
2038
+ },
2039
+ {
2040
+ id: 'safety',
2041
+ name: 'Safety',
2042
+ icon: 'shield',
2043
+ nodeTypes: [
2044
+ WorkflowNodeType.GUARDRAIL,
2045
+ ],
2046
+ canvasType: CanvasType.WORKFLOW,
2047
+ },
2048
+ {
2049
+ id: 'display',
2050
+ name: 'Display',
2051
+ icon: 'monitor',
2052
+ nodeTypes: [
2053
+ WorkflowNodeType.UI_TABLE,
2054
+ ],
2055
+ canvasType: CanvasType.WORKFLOW,
2056
+ },
2057
+ {
2058
+ id: 'telegram',
2059
+ name: 'Telegram',
2060
+ icon: 'send',
2061
+ nodeTypes: [
2062
+ WorkflowNodeType.TELEGRAM_SEND,
2063
+ ],
2064
+ canvasType: CanvasType.WORKFLOW,
2065
+ },
2066
+ {
2067
+ id: 'slack',
2068
+ name: 'Slack',
2069
+ icon: 'message-square',
2070
+ nodeTypes: [
2071
+ WorkflowNodeType.SLACK_SEND_MESSAGE,
2072
+ WorkflowNodeType.SLACK_GET_CHANNEL_INFO,
2073
+ WorkflowNodeType.SLACK_LIST_CHANNELS,
2074
+ WorkflowNodeType.SLACK_ADD_REACTION,
2075
+ WorkflowNodeType.SLACK_UPLOAD_FILE,
2076
+ ],
2077
+ canvasType: CanvasType.WORKFLOW,
2078
+ },
2079
+ {
2080
+ id: 'annotation',
2081
+ name: 'Annotations',
2082
+ icon: 'message-square',
2083
+ nodeTypes: [
2084
+ WorkflowNodeType.NOTE,
2085
+ WorkflowNodeType.FRAME,
2086
+ ],
2087
+ canvasType: CanvasType.WORKFLOW,
2088
+ },
2089
+ {
2090
+ id: 'agent',
2091
+ name: 'AI Agents',
2092
+ icon: 'cpu',
2093
+ nodeTypes: [
2094
+ AgentNodeType.AGENT,
2095
+ AgentNodeType.LLM,
2096
+ AgentNodeType.PROMPT,
2097
+ AgentNodeType.MEMORY,
2098
+ AgentNodeType.CONTEXT_MEMORY,
2099
+ AgentNodeType.TOOL,
2100
+ AgentNodeType.RETRIEVER,
2101
+ AgentNodeType.CHAIN,
2102
+ AgentNodeType.ROUTER,
2103
+ AgentNodeType.HUMAN_INPUT,
2104
+ AgentNodeType.OUTPUT_PARSER,
2105
+ AgentNodeType.STRUCTURED_OUTPUT,
2106
+ ],
2107
+ canvasType: CanvasType.WORKFLOW,
2108
+ },
2109
+ // Database designer mode categories
2110
+ {
2111
+ id: 'db-tables-views',
2112
+ name: 'Tables & Views',
2113
+ icon: 'table',
2114
+ nodeTypes: [
2115
+ DbDesignerNodeType.TABLE,
2116
+ DbDesignerNodeType.VIEW,
2117
+ ],
2118
+ canvasType: CanvasType.DATABASE,
2119
+ },
2120
+ {
2121
+ id: 'db-relations-constraints',
2122
+ name: 'Relations & Constraints',
2123
+ icon: 'git-merge',
2124
+ nodeTypes: [
2125
+ DbDesignerNodeType.RELATIONSHIP,
2126
+ DbDesignerNodeType.CONSTRAINT,
2127
+ ],
2128
+ canvasType: CanvasType.DATABASE,
2129
+ },
2130
+ {
2131
+ id: 'db-indexes-queries',
2132
+ name: 'Indexes & Queries',
2133
+ icon: 'list',
2134
+ nodeTypes: [
2135
+ DbDesignerNodeType.INDEX,
2136
+ DbDesignerNodeType.QUERY,
2137
+ ],
2138
+ canvasType: CanvasType.DATABASE,
2139
+ },
2140
+ // Whiteboard mode categories
2141
+ {
2142
+ id: 'wb-notes-text',
2143
+ name: 'Notes & Text',
2144
+ icon: 'sticky-note',
2145
+ nodeTypes: [WhiteboardNodeType.STICKY_NOTE, WhiteboardNodeType.TEXT_BLOCK],
2146
+ canvasType: CanvasType.WHITEBOARD,
2147
+ },
2148
+ {
2149
+ id: 'wb-shapes',
2150
+ name: 'Shapes',
2151
+ icon: 'square',
2152
+ nodeTypes: [
2153
+ WhiteboardNodeType.SHAPE_RECTANGLE,
2154
+ WhiteboardNodeType.SHAPE_CIRCLE,
2155
+ WhiteboardNodeType.SHAPE_DIAMOND,
2156
+ WhiteboardNodeType.SHAPE_TRIANGLE,
2157
+ WhiteboardNodeType.SHAPE_ARROW,
2158
+ WhiteboardNodeType.SHAPE_LINE,
2159
+ WhiteboardNodeType.SHAPE_STAR,
2160
+ WhiteboardNodeType.SHAPE_HEXAGON,
2161
+ ],
2162
+ canvasType: CanvasType.WHITEBOARD,
2163
+ },
2164
+ {
2165
+ id: 'wb-media',
2166
+ name: 'Media & Interactive',
2167
+ icon: 'image',
2168
+ nodeTypes: [WhiteboardNodeType.IMAGE, WhiteboardNodeType.DRAWING, WhiteboardNodeType.VOTING, WhiteboardNodeType.MERMAID],
2169
+ canvasType: CanvasType.WHITEBOARD,
2170
+ },
2171
+ {
2172
+ id: 'wb-navigation',
2173
+ name: 'Navigation',
2174
+ icon: 'anchor',
2175
+ nodeTypes: [WhiteboardNodeType.ANCHOR],
2176
+ canvasType: CanvasType.WHITEBOARD,
2177
+ },
2178
+ {
2179
+ id: 'wb-layout',
2180
+ name: 'Layout',
2181
+ icon: 'frame',
2182
+ nodeTypes: [WhiteboardNodeType.FRAME],
2183
+ canvasType: CanvasType.WHITEBOARD,
2184
+ },
2185
+ ];
2186
+ /**
2187
+ * Helper to get node template by type
2188
+ */
2189
+ export function getNodeTemplate(type) {
2190
+ return NODE_TEMPLATES.find(t => t.type === type);
2191
+ }
2192
+ /**
2193
+ * Helper to check if node type is an agent node
2194
+ */
2195
+ export function isAgentNode(type) {
2196
+ return Object.values(AgentNodeType).includes(type);
2197
+ }
2198
+ /**
2199
+ * Helper to check if node type is a workflow node
2200
+ */
2201
+ export function isWorkflowNode(type) {
2202
+ return Object.values(WorkflowNodeType).includes(type);
2203
+ }
2204
+ /**
2205
+ * Helper to check if node type is a DB designer node
2206
+ */
2207
+ export function isDbDesignerNode(type) {
2208
+ return Object.values(DbDesignerNodeType).includes(type);
2209
+ }
2210
+ /**
2211
+ * Helper to check if node type is a whiteboard node
2212
+ */
2213
+ export function isWhiteboardNode(type) {
2214
+ return Object.values(WhiteboardNodeType).includes(type);
2215
+ }
2216
+ /**
2217
+ * Get filtered categories for the current canvas type
2218
+ */
2219
+ export function getCategoriesForCanvasType(canvasType) {
2220
+ return NODE_CATEGORIES.filter(category => category.canvasType === canvasType);
2221
+ }
2222
+ /**
2223
+ * Create a new node from template
2224
+ */
2225
+ export function createNodeFromTemplate(type, position, id) {
2226
+ var _a;
2227
+ const template = getNodeTemplate(type);
2228
+ if (!template)
2229
+ return null;
2230
+ return {
2231
+ id: id || `node_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
2232
+ name: template.name,
2233
+ type: template.type,
2234
+ position,
2235
+ configuration: Object.assign({}, template.defaultConfig),
2236
+ ports: {
2237
+ inputs: template.defaultPorts.inputs.map(p => (Object.assign({}, p))),
2238
+ configs: (_a = template.defaultPorts.configs) === null || _a === void 0 ? void 0 : _a.map(p => (Object.assign({}, p))),
2239
+ outputs: template.defaultPorts.outputs.map(p => (Object.assign({}, p))),
2240
+ },
2241
+ metadata: {
2242
+ icon: template.icon,
2243
+ color: template.color,
2244
+ description: template.description,
2245
+ },
2246
+ status: ExecutionStatus.IDLE,
2247
+ selected: false,
2248
+ };
2249
+ }
2250
+ /**
2251
+ * Predefined color presets for note nodes
2252
+ */
2253
+ export const NOTE_COLOR_PRESETS = [
2254
+ { name: 'Yellow', bg: '#fef08a', text: '#713f12' },
2255
+ { name: 'Blue', bg: '#bfdbfe', text: '#1e3a5f' },
2256
+ { name: 'Green', bg: '#bbf7d0', text: '#14532d' },
2257
+ { name: 'Pink', bg: '#fbcfe8', text: '#831843' },
2258
+ { name: 'Orange', bg: '#fed7aa', text: '#7c2d12' },
2259
+ { name: 'Purple', bg: '#ddd6fe', text: '#4c1d95' },
2260
+ { name: 'Gray', bg: '#e5e7eb', text: '#374151' },
2261
+ ];
2262
+ /**
2263
+ * Predefined color presets for frame nodes
2264
+ */
2265
+ export const FRAME_COLOR_PRESETS = [
2266
+ { name: 'Indigo', bg: 'rgba(99, 102, 241, 0.05)', border: 'rgba(99, 102, 241, 0.3)', solid: '#6366f1' },
2267
+ { name: 'Blue', bg: 'rgba(59, 130, 246, 0.05)', border: 'rgba(59, 130, 246, 0.3)', solid: '#3b82f6' },
2268
+ { name: 'Green', bg: 'rgba(34, 197, 94, 0.05)', border: 'rgba(34, 197, 94, 0.3)', solid: '#22c55e' },
2269
+ { name: 'Orange', bg: 'rgba(249, 115, 22, 0.05)', border: 'rgba(249, 115, 22, 0.3)', solid: '#f97316' },
2270
+ { name: 'Red', bg: 'rgba(239, 68, 68, 0.05)', border: 'rgba(239, 68, 68, 0.3)', solid: '#ef4444' },
2271
+ { name: 'Purple', bg: 'rgba(168, 85, 247, 0.05)', border: 'rgba(168, 85, 247, 0.3)', solid: '#a855f7' },
2272
+ { name: 'Gray', bg: 'rgba(107, 114, 128, 0.05)', border: 'rgba(107, 114, 128, 0.3)', solid: '#6b7280' },
2273
+ ];
2274
+ /**
2275
+ * Helper to check if node type is an annotation node (NOTE or FRAME)
2276
+ */
2277
+ export function isAnnotationNode(type) {
2278
+ return type === WorkflowNodeType.NOTE || type === WorkflowNodeType.FRAME;
2279
+ }
2280
+ /**
2281
+ * Helper to check if node type is a frame node
2282
+ */
2283
+ export function isFrameNode(type) {
2284
+ return type === WorkflowNodeType.FRAME;
2285
+ }
2286
+ /**
2287
+ * Helper to check if node type is a note node
2288
+ */
2289
+ export function isNoteNode(type) {
2290
+ return type === WorkflowNodeType.NOTE;
2291
+ }
2292
+ /**
2293
+ * Set of node types that are persistent/long-running triggers
2294
+ */
2295
+ export const PERSISTENT_TRIGGER_TYPES = new Set([
2296
+ WorkflowNodeType.TELEGRAM_BOT,
2297
+ WorkflowNodeType.SLACK_SOCKET,
2298
+ WorkflowNodeType.DISCORD_BOT,
2299
+ WorkflowNodeType.WHATSAPP_WEBHOOK,
2300
+ WorkflowNodeType.CUSTOM_WEBSOCKET,
2301
+ ]);
2302
+ export function isPersistentTriggerNode(type) {
2303
+ return PERSISTENT_TRIGGER_TYPES.has(type);
2304
+ }
2305
+ //# sourceMappingURL=workflow-canvas.types.js.map