@walkeros/explorer 0.3.1 → 1.0.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 (713) hide show
  1. package/AGENT.md +406 -0
  2. package/STYLE.md +993 -0
  3. package/dist/__mocks__/@monaco-editor/react.d.ts +3 -0
  4. package/dist/__mocks__/@monaco-editor/react.d.ts.map +1 -0
  5. package/dist/__mocks__/@monaco-editor/react.js +4 -0
  6. package/dist/__mocks__/@monaco-editor/react.js.map +1 -0
  7. package/dist/chunk-VWWAIDNX.mjs +2939 -0
  8. package/dist/chunk-VWWAIDNX.mjs.map +1 -0
  9. package/dist/components/atoms/base-mapping-pane.d.ts +85 -0
  10. package/dist/components/atoms/base-mapping-pane.d.ts.map +1 -0
  11. package/dist/components/atoms/base-mapping-pane.js +53 -0
  12. package/dist/components/atoms/base-mapping-pane.js.map +1 -0
  13. package/dist/components/atoms/box.d.ts +27 -0
  14. package/dist/components/atoms/box.d.ts.map +1 -0
  15. package/dist/components/atoms/box.js +86 -0
  16. package/dist/components/atoms/box.js.map +1 -0
  17. package/dist/components/atoms/box.stories.d.ts +34 -0
  18. package/dist/components/atoms/box.stories.d.ts.map +1 -0
  19. package/dist/components/atoms/box.stories.js +104 -0
  20. package/dist/components/atoms/box.stories.js.map +1 -0
  21. package/dist/components/atoms/button-group.d.ts +17 -0
  22. package/dist/components/atoms/button-group.d.ts.map +1 -0
  23. package/dist/components/atoms/button-group.js +12 -0
  24. package/dist/components/atoms/button-group.js.map +1 -0
  25. package/dist/components/atoms/button-group.stories.d.ts +18 -0
  26. package/dist/components/atoms/button-group.stories.d.ts.map +1 -0
  27. package/dist/components/atoms/button-group.stories.js +35 -0
  28. package/dist/components/atoms/button-group.stories.js.map +1 -0
  29. package/dist/components/atoms/button-link.d.ts +12 -0
  30. package/dist/components/atoms/button-link.d.ts.map +1 -0
  31. package/dist/components/atoms/button-link.js +10 -0
  32. package/dist/components/atoms/button-link.js.map +1 -0
  33. package/dist/components/atoms/button-link.stories.d.ts +13 -0
  34. package/dist/components/atoms/button-link.stories.d.ts.map +1 -0
  35. package/dist/components/atoms/button-link.stories.js +64 -0
  36. package/dist/components/atoms/button-link.stories.js.map +1 -0
  37. package/dist/components/atoms/button.d.ts +15 -0
  38. package/dist/components/atoms/button.d.ts.map +1 -0
  39. package/dist/components/atoms/button.js +11 -0
  40. package/dist/components/atoms/button.js.map +1 -0
  41. package/dist/components/atoms/code.d.ts +55 -0
  42. package/dist/components/atoms/code.d.ts.map +1 -0
  43. package/dist/components/atoms/code.js +251 -0
  44. package/dist/components/atoms/code.js.map +1 -0
  45. package/dist/components/atoms/code.stories.d.ts +53 -0
  46. package/dist/components/atoms/code.stories.d.ts.map +1 -0
  47. package/dist/components/atoms/code.stories.js +190 -0
  48. package/dist/components/atoms/code.stories.js.map +1 -0
  49. package/dist/components/atoms/config-tile.d.ts +38 -0
  50. package/dist/components/atoms/config-tile.d.ts.map +1 -0
  51. package/dist/components/atoms/config-tile.js +29 -0
  52. package/dist/components/atoms/config-tile.js.map +1 -0
  53. package/dist/components/atoms/consent-state-tile.d.ts +14 -0
  54. package/dist/components/atoms/consent-state-tile.d.ts.map +1 -0
  55. package/dist/components/atoms/consent-state-tile.js +5 -0
  56. package/dist/components/atoms/consent-state-tile.js.map +1 -0
  57. package/dist/components/atoms/field-header.d.ts +41 -0
  58. package/dist/components/atoms/field-header.d.ts.map +1 -0
  59. package/dist/components/atoms/field-header.js +42 -0
  60. package/dist/components/atoms/field-header.js.map +1 -0
  61. package/dist/components/atoms/footer.d.ts +21 -0
  62. package/dist/components/atoms/footer.d.ts.map +1 -0
  63. package/dist/components/atoms/footer.js +19 -0
  64. package/dist/components/atoms/footer.js.map +1 -0
  65. package/dist/components/atoms/grid.d.ts +65 -0
  66. package/dist/components/atoms/grid.d.ts.map +1 -0
  67. package/dist/components/atoms/grid.js +169 -0
  68. package/dist/components/atoms/grid.js.map +1 -0
  69. package/dist/components/atoms/header.d.ts +7 -0
  70. package/dist/components/atoms/header.d.ts.map +1 -0
  71. package/dist/components/atoms/header.js +5 -0
  72. package/dist/components/atoms/header.js.map +1 -0
  73. package/dist/components/atoms/icon-button.d.ts +26 -0
  74. package/dist/components/atoms/icon-button.d.ts.map +1 -0
  75. package/dist/components/atoms/icon-button.js +39 -0
  76. package/dist/components/atoms/icon-button.js.map +1 -0
  77. package/dist/components/atoms/icons/icons.d.ts +2 -0
  78. package/dist/components/atoms/icons/icons.d.ts.map +1 -0
  79. package/dist/components/atoms/icons/icons.js +7 -0
  80. package/dist/components/atoms/icons/icons.js.map +1 -0
  81. package/dist/components/atoms/icons/index.d.ts +3 -0
  82. package/dist/components/atoms/icons/index.d.ts.map +1 -0
  83. package/dist/components/atoms/icons/index.js +3 -0
  84. package/dist/components/atoms/icons/index.js.map +1 -0
  85. package/dist/components/atoms/mapping-boolean.d.ts +31 -0
  86. package/dist/components/atoms/mapping-boolean.d.ts.map +1 -0
  87. package/dist/components/atoms/mapping-boolean.js +38 -0
  88. package/dist/components/atoms/mapping-boolean.js.map +1 -0
  89. package/dist/components/atoms/mapping-breadcrumb.d.ts +14 -0
  90. package/dist/components/atoms/mapping-breadcrumb.d.ts.map +1 -0
  91. package/dist/components/atoms/mapping-breadcrumb.js +10 -0
  92. package/dist/components/atoms/mapping-breadcrumb.js.map +1 -0
  93. package/dist/components/atoms/mapping-collapsible.d.ts +54 -0
  94. package/dist/components/atoms/mapping-collapsible.d.ts.map +1 -0
  95. package/dist/components/atoms/mapping-collapsible.js +87 -0
  96. package/dist/components/atoms/mapping-collapsible.js.map +1 -0
  97. package/dist/components/atoms/mapping-condition-field.d.ts +18 -0
  98. package/dist/components/atoms/mapping-condition-field.d.ts.map +1 -0
  99. package/dist/components/atoms/mapping-condition-field.js +34 -0
  100. package/dist/components/atoms/mapping-condition-field.js.map +1 -0
  101. package/dist/components/atoms/mapping-condition.d.ts +34 -0
  102. package/dist/components/atoms/mapping-condition.d.ts.map +1 -0
  103. package/dist/components/atoms/mapping-condition.js +70 -0
  104. package/dist/components/atoms/mapping-condition.js.map +1 -0
  105. package/dist/components/atoms/mapping-confirm-button.d.ts +29 -0
  106. package/dist/components/atoms/mapping-confirm-button.d.ts.map +1 -0
  107. package/dist/components/atoms/mapping-confirm-button.js +42 -0
  108. package/dist/components/atoms/mapping-confirm-button.js.map +1 -0
  109. package/dist/components/atoms/mapping-consent-field.d.ts +20 -0
  110. package/dist/components/atoms/mapping-consent-field.d.ts.map +1 -0
  111. package/dist/components/atoms/mapping-consent-field.js +36 -0
  112. package/dist/components/atoms/mapping-consent-field.js.map +1 -0
  113. package/dist/components/atoms/mapping-consent.d.ts +34 -0
  114. package/dist/components/atoms/mapping-consent.d.ts.map +1 -0
  115. package/dist/components/atoms/mapping-consent.js +86 -0
  116. package/dist/components/atoms/mapping-consent.js.map +1 -0
  117. package/dist/components/atoms/mapping-data-field.d.ts +23 -0
  118. package/dist/components/atoms/mapping-data-field.d.ts.map +1 -0
  119. package/dist/components/atoms/mapping-data-field.js +38 -0
  120. package/dist/components/atoms/mapping-data-field.js.map +1 -0
  121. package/dist/components/atoms/mapping-data.d.ts +34 -0
  122. package/dist/components/atoms/mapping-data.d.ts.map +1 -0
  123. package/dist/components/atoms/mapping-data.js +76 -0
  124. package/dist/components/atoms/mapping-data.js.map +1 -0
  125. package/dist/components/atoms/mapping-enum-select.d.ts +28 -0
  126. package/dist/components/atoms/mapping-enum-select.d.ts.map +1 -0
  127. package/dist/components/atoms/mapping-enum-select.js +142 -0
  128. package/dist/components/atoms/mapping-enum-select.js.map +1 -0
  129. package/dist/components/atoms/mapping-fn-field.d.ts +23 -0
  130. package/dist/components/atoms/mapping-fn-field.d.ts.map +1 -0
  131. package/dist/components/atoms/mapping-fn-field.js +38 -0
  132. package/dist/components/atoms/mapping-fn-field.js.map +1 -0
  133. package/dist/components/atoms/mapping-fn.d.ts +34 -0
  134. package/dist/components/atoms/mapping-fn.d.ts.map +1 -0
  135. package/dist/components/atoms/mapping-fn.js +70 -0
  136. package/dist/components/atoms/mapping-fn.js.map +1 -0
  137. package/dist/components/atoms/mapping-grid.d.ts +45 -0
  138. package/dist/components/atoms/mapping-grid.d.ts.map +1 -0
  139. package/dist/components/atoms/mapping-grid.js +83 -0
  140. package/dist/components/atoms/mapping-grid.js.map +1 -0
  141. package/dist/components/atoms/mapping-input-with-button.d.ts +54 -0
  142. package/dist/components/atoms/mapping-input-with-button.d.ts.map +1 -0
  143. package/dist/components/atoms/mapping-input-with-button.js +54 -0
  144. package/dist/components/atoms/mapping-input-with-button.js.map +1 -0
  145. package/dist/components/atoms/mapping-input.d.ts +44 -0
  146. package/dist/components/atoms/mapping-input.d.ts.map +1 -0
  147. package/dist/components/atoms/mapping-input.js +35 -0
  148. package/dist/components/atoms/mapping-input.js.map +1 -0
  149. package/dist/components/atoms/mapping-key-field.d.ts +23 -0
  150. package/dist/components/atoms/mapping-key-field.d.ts.map +1 -0
  151. package/dist/components/atoms/mapping-key-field.js +39 -0
  152. package/dist/components/atoms/mapping-key-field.js.map +1 -0
  153. package/dist/components/atoms/mapping-key.d.ts +35 -0
  154. package/dist/components/atoms/mapping-key.d.ts.map +1 -0
  155. package/dist/components/atoms/mapping-key.js +48 -0
  156. package/dist/components/atoms/mapping-key.js.map +1 -0
  157. package/dist/components/atoms/mapping-map-entry.d.ts +31 -0
  158. package/dist/components/atoms/mapping-map-entry.d.ts.map +1 -0
  159. package/dist/components/atoms/mapping-map-entry.js +68 -0
  160. package/dist/components/atoms/mapping-map-entry.js.map +1 -0
  161. package/dist/components/atoms/mapping-number.d.ts +32 -0
  162. package/dist/components/atoms/mapping-number.d.ts.map +1 -0
  163. package/dist/components/atoms/mapping-number.js +52 -0
  164. package/dist/components/atoms/mapping-number.js.map +1 -0
  165. package/dist/components/atoms/mapping-object-explorer-field.d.ts +30 -0
  166. package/dist/components/atoms/mapping-object-explorer-field.d.ts.map +1 -0
  167. package/dist/components/atoms/mapping-object-explorer-field.js +48 -0
  168. package/dist/components/atoms/mapping-object-explorer-field.js.map +1 -0
  169. package/dist/components/atoms/mapping-object-explorer.d.ts +59 -0
  170. package/dist/components/atoms/mapping-object-explorer.d.ts.map +1 -0
  171. package/dist/components/atoms/mapping-object-explorer.js +215 -0
  172. package/dist/components/atoms/mapping-object-explorer.js.map +1 -0
  173. package/dist/components/atoms/mapping-set-entry.d.ts +31 -0
  174. package/dist/components/atoms/mapping-set-entry.d.ts.map +1 -0
  175. package/dist/components/atoms/mapping-set-entry.js +66 -0
  176. package/dist/components/atoms/mapping-set-entry.js.map +1 -0
  177. package/dist/components/atoms/mapping-settings-field.d.ts +33 -0
  178. package/dist/components/atoms/mapping-settings-field.d.ts.map +1 -0
  179. package/dist/components/atoms/mapping-settings-field.js +48 -0
  180. package/dist/components/atoms/mapping-settings-field.js.map +1 -0
  181. package/dist/components/atoms/mapping-settings.d.ts +44 -0
  182. package/dist/components/atoms/mapping-settings.d.ts.map +1 -0
  183. package/dist/components/atoms/mapping-settings.js +108 -0
  184. package/dist/components/atoms/mapping-settings.js.map +1 -0
  185. package/dist/components/atoms/mapping-string.d.ts +19 -0
  186. package/dist/components/atoms/mapping-string.d.ts.map +1 -0
  187. package/dist/components/atoms/mapping-string.js +26 -0
  188. package/dist/components/atoms/mapping-string.js.map +1 -0
  189. package/dist/components/atoms/mapping-tab.d.ts +15 -0
  190. package/dist/components/atoms/mapping-tab.d.ts.map +1 -0
  191. package/dist/components/atoms/mapping-tab.js +8 -0
  192. package/dist/components/atoms/mapping-tab.js.map +1 -0
  193. package/dist/components/atoms/mapping-type-button.d.ts +19 -0
  194. package/dist/components/atoms/mapping-type-button.d.ts.map +1 -0
  195. package/dist/components/atoms/mapping-type-button.js +5 -0
  196. package/dist/components/atoms/mapping-type-button.js.map +1 -0
  197. package/dist/components/atoms/mapping-validate-field.d.ts +23 -0
  198. package/dist/components/atoms/mapping-validate-field.d.ts.map +1 -0
  199. package/dist/components/atoms/mapping-validate-field.js +38 -0
  200. package/dist/components/atoms/mapping-validate-field.js.map +1 -0
  201. package/dist/components/atoms/mapping-validate.d.ts +34 -0
  202. package/dist/components/atoms/mapping-validate.d.ts.map +1 -0
  203. package/dist/components/atoms/mapping-validate.js +68 -0
  204. package/dist/components/atoms/mapping-validate.js.map +1 -0
  205. package/dist/components/atoms/mapping-value.d.ts +17 -0
  206. package/dist/components/atoms/mapping-value.d.ts.map +1 -0
  207. package/dist/components/atoms/mapping-value.js +127 -0
  208. package/dist/components/atoms/mapping-value.js.map +1 -0
  209. package/dist/components/atoms/mdx-code.d.ts +33 -0
  210. package/dist/components/atoms/mdx-code.d.ts.map +1 -0
  211. package/dist/components/atoms/mdx-code.js +69 -0
  212. package/dist/components/atoms/mdx-code.js.map +1 -0
  213. package/dist/components/atoms/pane-header.d.ts +24 -0
  214. package/dist/components/atoms/pane-header.d.ts.map +1 -0
  215. package/dist/components/atoms/pane-header.js +5 -0
  216. package/dist/components/atoms/pane-header.js.map +1 -0
  217. package/dist/components/atoms/panel-hints.d.ts +35 -0
  218. package/dist/components/atoms/panel-hints.d.ts.map +1 -0
  219. package/dist/components/atoms/panel-hints.js +5 -0
  220. package/dist/components/atoms/panel-hints.js.map +1 -0
  221. package/dist/components/atoms/preview-footer.d.ts +32 -0
  222. package/dist/components/atoms/preview-footer.d.ts.map +1 -0
  223. package/dist/components/atoms/preview-footer.js +31 -0
  224. package/dist/components/atoms/preview-footer.js.map +1 -0
  225. package/dist/components/atoms/toggle.d.ts +9 -0
  226. package/dist/components/atoms/toggle.d.ts.map +1 -0
  227. package/dist/components/atoms/toggle.js +6 -0
  228. package/dist/components/atoms/toggle.js.map +1 -0
  229. package/dist/components/demos/DestinationDemo.d.ts +48 -0
  230. package/dist/components/demos/DestinationDemo.d.ts.map +1 -0
  231. package/dist/components/demos/DestinationDemo.js +105 -0
  232. package/dist/components/demos/DestinationDemo.js.map +1 -0
  233. package/dist/components/demos/DestinationDemo.stories.d.ts +17 -0
  234. package/dist/components/demos/DestinationDemo.stories.d.ts.map +1 -0
  235. package/dist/components/demos/DestinationDemo.stories.js +53 -0
  236. package/dist/components/demos/DestinationDemo.stories.js.map +1 -0
  237. package/dist/components/demos/DestinationInitDemo.d.ts +34 -0
  238. package/dist/components/demos/DestinationInitDemo.d.ts.map +1 -0
  239. package/dist/components/demos/DestinationInitDemo.js +73 -0
  240. package/dist/components/demos/DestinationInitDemo.js.map +1 -0
  241. package/dist/components/demos/DestinationInitDemo.stories.d.ts +17 -0
  242. package/dist/components/demos/DestinationInitDemo.stories.d.ts.map +1 -0
  243. package/dist/components/demos/DestinationInitDemo.stories.js +39 -0
  244. package/dist/components/demos/DestinationInitDemo.stories.js.map +1 -0
  245. package/dist/components/demos/MappingCode.d.ts +34 -0
  246. package/dist/components/demos/MappingCode.d.ts.map +1 -0
  247. package/dist/components/demos/MappingCode.js +54 -0
  248. package/dist/components/demos/MappingCode.js.map +1 -0
  249. package/dist/components/demos/MappingCode.stories.d.ts +16 -0
  250. package/dist/components/demos/MappingCode.stories.d.ts.map +1 -0
  251. package/dist/components/demos/MappingCode.stories.js +42 -0
  252. package/dist/components/demos/MappingCode.stories.js.map +1 -0
  253. package/dist/components/demos/MappingDemo.d.ts +41 -0
  254. package/dist/components/demos/MappingDemo.d.ts.map +1 -0
  255. package/dist/components/demos/MappingDemo.js +62 -0
  256. package/dist/components/demos/MappingDemo.js.map +1 -0
  257. package/dist/components/demos/MappingDemo.stories.d.ts +16 -0
  258. package/dist/components/demos/MappingDemo.stories.d.ts.map +1 -0
  259. package/dist/components/demos/MappingDemo.stories.js +63 -0
  260. package/dist/components/demos/MappingDemo.stories.js.map +1 -0
  261. package/dist/components/demos/PromotionPlayground.d.ts +25 -0
  262. package/dist/components/demos/PromotionPlayground.d.ts.map +1 -0
  263. package/dist/components/demos/PromotionPlayground.js +280 -0
  264. package/dist/components/demos/PromotionPlayground.js.map +1 -0
  265. package/dist/components/demos/PromotionPlayground.stories.d.ts +27 -0
  266. package/dist/components/demos/PromotionPlayground.stories.d.ts.map +1 -0
  267. package/dist/components/demos/PromotionPlayground.stories.js +32 -0
  268. package/dist/components/demos/PromotionPlayground.stories.js.map +1 -0
  269. package/dist/components/forms/field-registry.d.ts +42 -0
  270. package/dist/components/forms/field-registry.d.ts.map +1 -0
  271. package/dist/components/forms/field-registry.js +64 -0
  272. package/dist/components/forms/field-registry.js.map +1 -0
  273. package/dist/components/forms/mapping-form-wrapper.d.ts +14 -0
  274. package/dist/components/forms/mapping-form-wrapper.d.ts.map +1 -0
  275. package/dist/components/forms/mapping-form-wrapper.js +105 -0
  276. package/dist/components/forms/mapping-form-wrapper.js.map +1 -0
  277. package/dist/components/forms/widget-registry.d.ts +42 -0
  278. package/dist/components/forms/widget-registry.d.ts.map +1 -0
  279. package/dist/components/forms/widget-registry.js +54 -0
  280. package/dist/components/forms/widget-registry.js.map +1 -0
  281. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts +24 -0
  282. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts.map +1 -0
  283. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js +10 -0
  284. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js.map +1 -0
  285. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts +7 -0
  286. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts.map +1 -0
  287. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js +71 -0
  288. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js.map +1 -0
  289. package/dist/components/molecules/architecture-flow/index.d.ts +3 -0
  290. package/dist/components/molecules/architecture-flow/index.d.ts.map +1 -0
  291. package/dist/components/molecules/architecture-flow/index.js +2 -0
  292. package/dist/components/molecules/architecture-flow/index.js.map +1 -0
  293. package/dist/components/molecules/auto-select.d.ts +29 -0
  294. package/dist/components/molecules/auto-select.d.ts.map +1 -0
  295. package/dist/components/molecules/auto-select.js +188 -0
  296. package/dist/components/molecules/auto-select.js.map +1 -0
  297. package/dist/components/molecules/code-box.d.ts +69 -0
  298. package/dist/components/molecules/code-box.d.ts.map +1 -0
  299. package/dist/components/molecules/code-box.js +109 -0
  300. package/dist/components/molecules/code-box.js.map +1 -0
  301. package/dist/components/molecules/code-box.stories.d.ts +30 -0
  302. package/dist/components/molecules/code-box.stories.d.ts.map +1 -0
  303. package/dist/components/molecules/code-box.stories.js +127 -0
  304. package/dist/components/molecules/code-box.stories.js.map +1 -0
  305. package/dist/components/molecules/code-snippet.d.ts +58 -0
  306. package/dist/components/molecules/code-snippet.d.ts.map +1 -0
  307. package/dist/components/molecules/code-snippet.js +72 -0
  308. package/dist/components/molecules/code-snippet.js.map +1 -0
  309. package/dist/components/molecules/code-snippet.stories.d.ts +20 -0
  310. package/dist/components/molecules/code-snippet.stories.d.ts.map +1 -0
  311. package/dist/components/molecules/code-snippet.stories.js +68 -0
  312. package/dist/components/molecules/code-snippet.stories.js.map +1 -0
  313. package/dist/components/molecules/config-overview-pane.d.ts +44 -0
  314. package/dist/components/molecules/config-overview-pane.d.ts.map +1 -0
  315. package/dist/components/molecules/config-overview-pane.js +75 -0
  316. package/dist/components/molecules/config-overview-pane.js.map +1 -0
  317. package/dist/components/molecules/config-tree-sidebar.d.ts +46 -0
  318. package/dist/components/molecules/config-tree-sidebar.d.ts.map +1 -0
  319. package/dist/components/molecules/config-tree-sidebar.js +183 -0
  320. package/dist/components/molecules/config-tree-sidebar.js.map +1 -0
  321. package/dist/components/molecules/destination-config-overview-pane.d.ts +33 -0
  322. package/dist/components/molecules/destination-config-overview-pane.d.ts.map +1 -0
  323. package/dist/components/molecules/destination-config-overview-pane.js +153 -0
  324. package/dist/components/molecules/destination-config-overview-pane.js.map +1 -0
  325. package/dist/components/molecules/flow-map/FlowMap.d.ts +74 -0
  326. package/dist/components/molecules/flow-map/FlowMap.d.ts.map +1 -0
  327. package/dist/components/molecules/flow-map/FlowMap.js +1028 -0
  328. package/dist/components/molecules/flow-map/FlowMap.js.map +1 -0
  329. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts +73 -0
  330. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts.map +1 -0
  331. package/dist/components/molecules/flow-map/FlowMap.stories.js +587 -0
  332. package/dist/components/molecules/flow-map/FlowMap.stories.js.map +1 -0
  333. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts +45 -0
  334. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts.map +1 -0
  335. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js +195 -0
  336. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js.map +1 -0
  337. package/dist/components/molecules/flow-map/index.d.ts +3 -0
  338. package/dist/components/molecules/flow-map/index.d.ts.map +1 -0
  339. package/dist/components/molecules/flow-map/index.js +2 -0
  340. package/dist/components/molecules/flow-map/index.js.map +1 -0
  341. package/dist/components/molecules/mapping-batch-pane-view.d.ts +22 -0
  342. package/dist/components/molecules/mapping-batch-pane-view.d.ts.map +1 -0
  343. package/dist/components/molecules/mapping-batch-pane-view.js +45 -0
  344. package/dist/components/molecules/mapping-batch-pane-view.js.map +1 -0
  345. package/dist/components/molecules/mapping-boolean-pane-view.d.ts +28 -0
  346. package/dist/components/molecules/mapping-boolean-pane-view.d.ts.map +1 -0
  347. package/dist/components/molecules/mapping-boolean-pane-view.js +34 -0
  348. package/dist/components/molecules/mapping-boolean-pane-view.js.map +1 -0
  349. package/dist/components/molecules/mapping-condition-pane-view.d.ts +18 -0
  350. package/dist/components/molecules/mapping-condition-pane-view.d.ts.map +1 -0
  351. package/dist/components/molecules/mapping-condition-pane-view.js +63 -0
  352. package/dist/components/molecules/mapping-condition-pane-view.js.map +1 -0
  353. package/dist/components/molecules/mapping-consent-pane-view.d.ts +16 -0
  354. package/dist/components/molecules/mapping-consent-pane-view.d.ts.map +1 -0
  355. package/dist/components/molecules/mapping-consent-pane-view.js +65 -0
  356. package/dist/components/molecules/mapping-consent-pane-view.js.map +1 -0
  357. package/dist/components/molecules/mapping-consent-row.d.ts +29 -0
  358. package/dist/components/molecules/mapping-consent-row.d.ts.map +1 -0
  359. package/dist/components/molecules/mapping-consent-row.js +26 -0
  360. package/dist/components/molecules/mapping-consent-row.js.map +1 -0
  361. package/dist/components/molecules/mapping-entity-pane.d.ts +17 -0
  362. package/dist/components/molecules/mapping-entity-pane.d.ts.map +1 -0
  363. package/dist/components/molecules/mapping-entity-pane.js +68 -0
  364. package/dist/components/molecules/mapping-entity-pane.js.map +1 -0
  365. package/dist/components/molecules/mapping-enum-pane-view.d.ts +40 -0
  366. package/dist/components/molecules/mapping-enum-pane-view.d.ts.map +1 -0
  367. package/dist/components/molecules/mapping-enum-pane-view.js +32 -0
  368. package/dist/components/molecules/mapping-enum-pane-view.js.map +1 -0
  369. package/dist/components/molecules/mapping-fn-pane-view.d.ts +18 -0
  370. package/dist/components/molecules/mapping-fn-pane-view.d.ts.map +1 -0
  371. package/dist/components/molecules/mapping-fn-pane-view.js +77 -0
  372. package/dist/components/molecules/mapping-fn-pane-view.js.map +1 -0
  373. package/dist/components/molecules/mapping-function-pane-base.d.ts +53 -0
  374. package/dist/components/molecules/mapping-function-pane-base.d.ts.map +1 -0
  375. package/dist/components/molecules/mapping-function-pane-base.js +60 -0
  376. package/dist/components/molecules/mapping-function-pane-base.js.map +1 -0
  377. package/dist/components/molecules/mapping-key-pane-view.d.ts +23 -0
  378. package/dist/components/molecules/mapping-key-pane-view.d.ts.map +1 -0
  379. package/dist/components/molecules/mapping-key-pane-view.js +12 -0
  380. package/dist/components/molecules/mapping-key-pane-view.js.map +1 -0
  381. package/dist/components/molecules/mapping-loop-field.d.ts +44 -0
  382. package/dist/components/molecules/mapping-loop-field.d.ts.map +1 -0
  383. package/dist/components/molecules/mapping-loop-field.js +133 -0
  384. package/dist/components/molecules/mapping-loop-field.js.map +1 -0
  385. package/dist/components/molecules/mapping-loop-pane-view.d.ts +28 -0
  386. package/dist/components/molecules/mapping-loop-pane-view.d.ts.map +1 -0
  387. package/dist/components/molecules/mapping-loop-pane-view.js +44 -0
  388. package/dist/components/molecules/mapping-loop-pane-view.js.map +1 -0
  389. package/dist/components/molecules/mapping-map-field.d.ts +31 -0
  390. package/dist/components/molecules/mapping-map-field.d.ts.map +1 -0
  391. package/dist/components/molecules/mapping-map-field.js +120 -0
  392. package/dist/components/molecules/mapping-map-field.js.map +1 -0
  393. package/dist/components/molecules/mapping-map-overview.d.ts +13 -0
  394. package/dist/components/molecules/mapping-map-overview.d.ts.map +1 -0
  395. package/dist/components/molecules/mapping-map-overview.js +58 -0
  396. package/dist/components/molecules/mapping-map-overview.js.map +1 -0
  397. package/dist/components/molecules/mapping-map-pane-view-rjsf.d.ts +53 -0
  398. package/dist/components/molecules/mapping-map-pane-view-rjsf.d.ts.map +1 -0
  399. package/dist/components/molecules/mapping-map-pane-view-rjsf.js +127 -0
  400. package/dist/components/molecules/mapping-map-pane-view-rjsf.js.map +1 -0
  401. package/dist/components/molecules/mapping-name-pane-view.d.ts +22 -0
  402. package/dist/components/molecules/mapping-name-pane-view.d.ts.map +1 -0
  403. package/dist/components/molecules/mapping-name-pane-view.js +38 -0
  404. package/dist/components/molecules/mapping-name-pane-view.js.map +1 -0
  405. package/dist/components/molecules/mapping-navigation-header.d.ts +27 -0
  406. package/dist/components/molecules/mapping-navigation-header.d.ts.map +1 -0
  407. package/dist/components/molecules/mapping-navigation-header.js +7 -0
  408. package/dist/components/molecules/mapping-navigation-header.js.map +1 -0
  409. package/dist/components/molecules/mapping-overview-pane.d.ts +14 -0
  410. package/dist/components/molecules/mapping-overview-pane.d.ts.map +1 -0
  411. package/dist/components/molecules/mapping-overview-pane.js +60 -0
  412. package/dist/components/molecules/mapping-overview-pane.js.map +1 -0
  413. package/dist/components/molecules/mapping-pane.d.ts +52 -0
  414. package/dist/components/molecules/mapping-pane.d.ts.map +1 -0
  415. package/dist/components/molecules/mapping-pane.js +155 -0
  416. package/dist/components/molecules/mapping-pane.js.map +1 -0
  417. package/dist/components/molecules/mapping-policy-overview-pane.d.ts +26 -0
  418. package/dist/components/molecules/mapping-policy-overview-pane.d.ts.map +1 -0
  419. package/dist/components/molecules/mapping-policy-overview-pane.js +69 -0
  420. package/dist/components/molecules/mapping-policy-overview-pane.js.map +1 -0
  421. package/dist/components/molecules/mapping-primitive-pane-view.d.ts +30 -0
  422. package/dist/components/molecules/mapping-primitive-pane-view.d.ts.map +1 -0
  423. package/dist/components/molecules/mapping-primitive-pane-view.js +43 -0
  424. package/dist/components/molecules/mapping-primitive-pane-view.js.map +1 -0
  425. package/dist/components/molecules/mapping-rule-pane-view.d.ts +25 -0
  426. package/dist/components/molecules/mapping-rule-pane-view.d.ts.map +1 -0
  427. package/dist/components/molecules/mapping-rule-pane-view.js +35 -0
  428. package/dist/components/molecules/mapping-rule-pane-view.js.map +1 -0
  429. package/dist/components/molecules/mapping-set-field.d.ts +34 -0
  430. package/dist/components/molecules/mapping-set-field.d.ts.map +1 -0
  431. package/dist/components/molecules/mapping-set-field.js +160 -0
  432. package/dist/components/molecules/mapping-set-field.js.map +1 -0
  433. package/dist/components/molecules/mapping-set-pane-view.d.ts +31 -0
  434. package/dist/components/molecules/mapping-set-pane-view.d.ts.map +1 -0
  435. package/dist/components/molecules/mapping-set-pane-view.js +96 -0
  436. package/dist/components/molecules/mapping-set-pane-view.js.map +1 -0
  437. package/dist/components/molecules/mapping-tab-bar.d.ts +15 -0
  438. package/dist/components/molecules/mapping-tab-bar.d.ts.map +1 -0
  439. package/dist/components/molecules/mapping-tab-bar.js +9 -0
  440. package/dist/components/molecules/mapping-tab-bar.js.map +1 -0
  441. package/dist/components/molecules/mapping-tree-sidebar.d.ts +59 -0
  442. package/dist/components/molecules/mapping-tree-sidebar.d.ts.map +1 -0
  443. package/dist/components/molecules/mapping-tree-sidebar.js +491 -0
  444. package/dist/components/molecules/mapping-tree-sidebar.js.map +1 -0
  445. package/dist/components/molecules/mapping-type-grid.d.ts +12 -0
  446. package/dist/components/molecules/mapping-type-grid.d.ts.map +1 -0
  447. package/dist/components/molecules/mapping-type-grid.js +107 -0
  448. package/dist/components/molecules/mapping-type-grid.js.map +1 -0
  449. package/dist/components/molecules/mapping-type-selector.d.ts +21 -0
  450. package/dist/components/molecules/mapping-type-selector.d.ts.map +1 -0
  451. package/dist/components/molecules/mapping-type-selector.js +38 -0
  452. package/dist/components/molecules/mapping-type-selector.js.map +1 -0
  453. package/dist/components/molecules/mapping-validate-pane-view.d.ts +19 -0
  454. package/dist/components/molecules/mapping-validate-pane-view.d.ts.map +1 -0
  455. package/dist/components/molecules/mapping-validate-pane-view.js +66 -0
  456. package/dist/components/molecules/mapping-validate-pane-view.js.map +1 -0
  457. package/dist/components/molecules/mapping-value-config-pane-view.d.ts +30 -0
  458. package/dist/components/molecules/mapping-value-config-pane-view.d.ts.map +1 -0
  459. package/dist/components/molecules/mapping-value-config-pane-view.js +105 -0
  460. package/dist/components/molecules/mapping-value-config-pane-view.js.map +1 -0
  461. package/dist/components/molecules/mapping-value-pane-view.d.ts +28 -0
  462. package/dist/components/molecules/mapping-value-pane-view.d.ts.map +1 -0
  463. package/dist/components/molecules/mapping-value-pane-view.js +40 -0
  464. package/dist/components/molecules/mapping-value-pane-view.js.map +1 -0
  465. package/dist/components/molecules/mapping-value-type-pane-view.d.ts +27 -0
  466. package/dist/components/molecules/mapping-value-type-pane-view.d.ts.map +1 -0
  467. package/dist/components/molecules/mapping-value-type-pane-view.js +253 -0
  468. package/dist/components/molecules/mapping-value-type-pane-view.js.map +1 -0
  469. package/dist/components/molecules/options-pane.d.ts +28 -0
  470. package/dist/components/molecules/options-pane.d.ts.map +1 -0
  471. package/dist/components/molecules/options-pane.js +80 -0
  472. package/dist/components/molecules/options-pane.js.map +1 -0
  473. package/dist/components/molecules/preview.d.ts +22 -0
  474. package/dist/components/molecules/preview.d.ts.map +1 -0
  475. package/dist/components/molecules/preview.js +221 -0
  476. package/dist/components/molecules/preview.js.map +1 -0
  477. package/dist/components/molecules/preview.stories.d.ts +23 -0
  478. package/dist/components/molecules/preview.stories.d.ts.map +1 -0
  479. package/dist/components/molecules/preview.stories.js +186 -0
  480. package/dist/components/molecules/preview.stories.js.map +1 -0
  481. package/dist/components/molecules/property-suggestions.d.ts +17 -0
  482. package/dist/components/molecules/property-suggestions.d.ts.map +1 -0
  483. package/dist/components/molecules/property-suggestions.js +56 -0
  484. package/dist/components/molecules/property-suggestions.js.map +1 -0
  485. package/dist/components/molecules/property-table.d.ts +7 -0
  486. package/dist/components/molecules/property-table.d.ts.map +1 -0
  487. package/dist/components/molecules/property-table.js +88 -0
  488. package/dist/components/molecules/property-table.js.map +1 -0
  489. package/dist/components/molecules/property-table.stories.d.ts +24 -0
  490. package/dist/components/molecules/property-table.stories.d.ts.map +1 -0
  491. package/dist/components/molecules/property-table.stories.js +86 -0
  492. package/dist/components/molecules/property-table.stories.js.map +1 -0
  493. package/dist/components/molecules/settings-overview-pane.d.ts +32 -0
  494. package/dist/components/molecules/settings-overview-pane.d.ts.map +1 -0
  495. package/dist/components/molecules/settings-overview-pane.js +85 -0
  496. package/dist/components/molecules/settings-overview-pane.js.map +1 -0
  497. package/dist/components/molecules/validation-overview-pane.d.ts +27 -0
  498. package/dist/components/molecules/validation-overview-pane.d.ts.map +1 -0
  499. package/dist/components/molecules/validation-overview-pane.js +50 -0
  500. package/dist/components/molecules/validation-overview-pane.js.map +1 -0
  501. package/dist/components/organisms/browser-box.d.ts +31 -0
  502. package/dist/components/organisms/browser-box.d.ts.map +1 -0
  503. package/dist/components/organisms/browser-box.js +80 -0
  504. package/dist/components/organisms/browser-box.js.map +1 -0
  505. package/dist/components/organisms/browser-box.stories.d.ts +26 -0
  506. package/dist/components/organisms/browser-box.stories.d.ts.map +1 -0
  507. package/dist/components/organisms/browser-box.stories.js +102 -0
  508. package/dist/components/organisms/browser-box.stories.js.map +1 -0
  509. package/dist/components/organisms/collector-box.d.ts +24 -0
  510. package/dist/components/organisms/collector-box.d.ts.map +1 -0
  511. package/dist/components/organisms/collector-box.js +56 -0
  512. package/dist/components/organisms/collector-box.js.map +1 -0
  513. package/dist/components/organisms/collector-box.stories.d.ts +22 -0
  514. package/dist/components/organisms/collector-box.stories.d.ts.map +1 -0
  515. package/dist/components/organisms/collector-box.stories.js +59 -0
  516. package/dist/components/organisms/collector-box.stories.js.map +1 -0
  517. package/dist/components/organisms/config-editor/config-editor-box.d.ts +35 -0
  518. package/dist/components/organisms/config-editor/config-editor-box.d.ts.map +1 -0
  519. package/dist/components/organisms/config-editor/config-editor-box.js +50 -0
  520. package/dist/components/organisms/config-editor/config-editor-box.js.map +1 -0
  521. package/dist/components/organisms/config-editor/config-editor-tabs.d.ts +52 -0
  522. package/dist/components/organisms/config-editor/config-editor-tabs.d.ts.map +1 -0
  523. package/dist/components/organisms/config-editor/config-editor-tabs.js +127 -0
  524. package/dist/components/organisms/config-editor/config-editor-tabs.js.map +1 -0
  525. package/dist/components/organisms/config-editor/config-editor.d.ts +47 -0
  526. package/dist/components/organisms/config-editor/config-editor.d.ts.map +1 -0
  527. package/dist/components/organisms/config-editor/config-editor.js +50 -0
  528. package/dist/components/organisms/config-editor/config-editor.js.map +1 -0
  529. package/dist/components/organisms/config-editor/config-editor.stories.d.ts +25 -0
  530. package/dist/components/organisms/config-editor/config-editor.stories.d.ts.map +1 -0
  531. package/dist/components/organisms/config-editor/config-editor.stories.js +77 -0
  532. package/dist/components/organisms/config-editor/config-editor.stories.js.map +1 -0
  533. package/dist/components/organisms/config-editor/index.d.ts +22 -0
  534. package/dist/components/organisms/config-editor/index.d.ts.map +1 -0
  535. package/dist/components/organisms/config-editor/index.js +20 -0
  536. package/dist/components/organisms/config-editor/index.js.map +1 -0
  537. package/dist/components/organisms/live-code.d.ts +22 -0
  538. package/dist/components/organisms/live-code.d.ts.map +1 -0
  539. package/dist/components/organisms/live-code.js +50 -0
  540. package/dist/components/organisms/live-code.js.map +1 -0
  541. package/dist/components/organisms/live-code.stories.d.ts +24 -0
  542. package/dist/components/organisms/live-code.stories.d.ts.map +1 -0
  543. package/dist/components/organisms/live-code.stories.js +55 -0
  544. package/dist/components/organisms/live-code.stories.js.map +1 -0
  545. package/dist/components/ui/button.d.ts +4 -0
  546. package/dist/components/ui/button.d.ts.map +1 -0
  547. package/dist/components/ui/button.js +6 -0
  548. package/dist/components/ui/button.js.map +1 -0
  549. package/dist/components/ui/icon.d.ts +5 -0
  550. package/dist/components/ui/icon.d.ts.map +1 -0
  551. package/dist/components/ui/icon.js +5 -0
  552. package/dist/components/ui/icon.js.map +1 -0
  553. package/dist/components/ui/label.d.ts +5 -0
  554. package/dist/components/ui/label.d.ts.map +1 -0
  555. package/dist/components/ui/label.js +5 -0
  556. package/dist/components/ui/label.js.map +1 -0
  557. package/dist/contexts/GridHeightContext.d.ts +11 -0
  558. package/dist/contexts/GridHeightContext.d.ts.map +1 -0
  559. package/dist/contexts/GridHeightContext.js +14 -0
  560. package/dist/contexts/GridHeightContext.js.map +1 -0
  561. package/dist/helpers/capture.d.ts +83 -0
  562. package/dist/helpers/capture.d.ts.map +1 -0
  563. package/dist/helpers/capture.js +125 -0
  564. package/dist/helpers/capture.js.map +1 -0
  565. package/dist/helpers/destinations.d.ts +21 -0
  566. package/dist/helpers/destinations.d.ts.map +1 -0
  567. package/dist/helpers/destinations.js +46 -0
  568. package/dist/helpers/destinations.js.map +1 -0
  569. package/dist/hooks/useMappingNavigation.d.ts +62 -0
  570. package/dist/hooks/useMappingNavigation.d.ts.map +1 -0
  571. package/dist/hooks/useMappingNavigation.js +339 -0
  572. package/dist/hooks/useMappingNavigation.js.map +1 -0
  573. package/dist/hooks/useMappingState.d.ts +56 -0
  574. package/dist/hooks/useMappingState.d.ts.map +1 -0
  575. package/dist/hooks/useMappingState.js +142 -0
  576. package/dist/hooks/useMappingState.js.map +1 -0
  577. package/dist/hooks/useMonacoHeight.d.ts +31 -0
  578. package/dist/hooks/useMonacoHeight.d.ts.map +1 -0
  579. package/dist/hooks/useMonacoHeight.js +83 -0
  580. package/dist/hooks/useMonacoHeight.js.map +1 -0
  581. package/dist/hooks/useTreeState.d.ts +32 -0
  582. package/dist/hooks/useTreeState.d.ts.map +1 -0
  583. package/dist/hooks/useTreeState.js +94 -0
  584. package/dist/hooks/useTreeState.js.map +1 -0
  585. package/dist/index.d.cts +152 -33
  586. package/dist/index.d.ts +65 -1265
  587. package/dist/index.d.ts.map +1 -0
  588. package/dist/index.js +49 -14046
  589. package/dist/index.js.map +1 -1
  590. package/dist/index.mjs +4759 -1375
  591. package/dist/index.mjs.map +1 -1
  592. package/dist/lib/utils.d.ts +7 -0
  593. package/dist/lib/utils.d.ts.map +1 -0
  594. package/dist/lib/utils.js +10 -0
  595. package/dist/lib/utils.js.map +1 -0
  596. package/dist/{monaco-types-GBPMPIMU.mjs → monaco-types-4FIH5OVX.mjs} +2 -2
  597. package/dist/providers/MDXProvider.d.ts +40 -0
  598. package/dist/providers/MDXProvider.d.ts.map +1 -0
  599. package/dist/providers/MDXProvider.js +57 -0
  600. package/dist/providers/MDXProvider.js.map +1 -0
  601. package/dist/schemas/config-structures/destination-config.d.ts +27 -0
  602. package/dist/schemas/config-structures/destination-config.d.ts.map +1 -0
  603. package/dist/schemas/config-structures/destination-config.js +104 -0
  604. package/dist/schemas/config-structures/destination-config.js.map +1 -0
  605. package/dist/schemas/config-structures/index.d.ts +17 -0
  606. package/dist/schemas/config-structures/index.d.ts.map +1 -0
  607. package/dist/schemas/config-structures/index.js +17 -0
  608. package/dist/schemas/config-structures/index.js.map +1 -0
  609. package/dist/schemas/config-structures/mapping-rule.d.ts +17 -0
  610. package/dist/schemas/config-structures/mapping-rule.d.ts.map +1 -0
  611. package/dist/schemas/config-structures/mapping-rule.js +81 -0
  612. package/dist/schemas/config-structures/mapping-rule.js.map +1 -0
  613. package/dist/schemas/config-structures/types.d.ts +62 -0
  614. package/dist/schemas/config-structures/types.d.ts.map +1 -0
  615. package/dist/schemas/config-structures/types.js +2 -0
  616. package/dist/schemas/config-structures/types.js.map +1 -0
  617. package/dist/schemas/mapping-rule-schema.d.ts +25 -0
  618. package/dist/schemas/mapping-rule-schema.d.ts.map +1 -0
  619. package/dist/schemas/mapping-rule-schema.js +86 -0
  620. package/dist/schemas/mapping-rule-schema.js.map +1 -0
  621. package/dist/schemas/rule-properties-schema.d.ts +42 -0
  622. package/dist/schemas/rule-properties-schema.d.ts.map +1 -0
  623. package/dist/schemas/rule-properties-schema.js +79 -0
  624. package/dist/schemas/rule-properties-schema.js.map +1 -0
  625. package/dist/schemas/value-config-schema.d.ts +36 -0
  626. package/dist/schemas/value-config-schema.d.ts.map +1 -0
  627. package/dist/schemas/value-config-schema.js +227 -0
  628. package/dist/schemas/value-config-schema.js.map +1 -0
  629. package/dist/styles.css +317 -0
  630. package/dist/themes/index.d.ts +23 -0
  631. package/dist/themes/index.d.ts.map +1 -0
  632. package/dist/themes/index.js +29 -0
  633. package/dist/themes/index.js.map +1 -0
  634. package/dist/themes/lighthouse.d.ts +26 -0
  635. package/dist/themes/lighthouse.d.ts.map +1 -0
  636. package/dist/themes/lighthouse.js +229 -0
  637. package/dist/themes/lighthouse.js.map +1 -0
  638. package/dist/themes/palenight.d.ts +31 -0
  639. package/dist/themes/palenight.d.ts.map +1 -0
  640. package/dist/themes/palenight.js +235 -0
  641. package/dist/themes/palenight.js.map +1 -0
  642. package/dist/themes/types.d.ts +103 -0
  643. package/dist/themes/types.d.ts.map +1 -0
  644. package/dist/themes/types.js +8 -0
  645. package/dist/themes/types.js.map +1 -0
  646. package/dist/types/schemas.d.ts +29 -0
  647. package/dist/types/schemas.d.ts.map +1 -0
  648. package/dist/types/schemas.js +2 -0
  649. package/dist/types/schemas.js.map +1 -0
  650. package/dist/utils/clean-form-data.d.ts +26 -0
  651. package/dist/utils/clean-form-data.d.ts.map +1 -0
  652. package/dist/utils/clean-form-data.js +76 -0
  653. package/dist/utils/clean-form-data.js.map +1 -0
  654. package/dist/utils/code-normalizer.d.ts +11 -0
  655. package/dist/utils/code-normalizer.d.ts.map +1 -0
  656. package/dist/utils/code-normalizer.js +21 -0
  657. package/dist/utils/code-normalizer.js.map +1 -0
  658. package/dist/utils/config-validator.d.ts +12 -0
  659. package/dist/utils/config-validator.d.ts.map +1 -0
  660. package/dist/utils/config-validator.js +10 -0
  661. package/dist/utils/config-validator.js.map +1 -0
  662. package/dist/utils/consent-scanner.d.ts +19 -0
  663. package/dist/utils/consent-scanner.d.ts.map +1 -0
  664. package/dist/utils/consent-scanner.js +115 -0
  665. package/dist/utils/consent-scanner.js.map +1 -0
  666. package/dist/utils/format-code.d.ts +9 -0
  667. package/dist/utils/format-code.d.ts.map +1 -0
  668. package/dist/utils/format-code.js +68 -0
  669. package/dist/utils/format-code.js.map +1 -0
  670. package/dist/utils/generic-tree-builder.d.ts +37 -0
  671. package/dist/utils/generic-tree-builder.d.ts.map +1 -0
  672. package/dist/utils/generic-tree-builder.js +225 -0
  673. package/dist/utils/generic-tree-builder.js.map +1 -0
  674. package/dist/utils/mapping-path.d.ts +146 -0
  675. package/dist/utils/mapping-path.d.ts.map +1 -0
  676. package/dist/utils/mapping-path.js +271 -0
  677. package/dist/utils/mapping-path.js.map +1 -0
  678. package/dist/utils/monaco-context-types.d.ts +39 -0
  679. package/dist/utils/monaco-context-types.d.ts.map +1 -0
  680. package/dist/utils/monaco-context-types.js +426 -0
  681. package/dist/utils/monaco-context-types.js.map +1 -0
  682. package/dist/utils/monaco-decorators.d.ts +17 -0
  683. package/dist/utils/monaco-decorators.d.ts.map +1 -0
  684. package/dist/utils/monaco-decorators.js +79 -0
  685. package/dist/utils/monaco-decorators.js.map +1 -0
  686. package/dist/utils/monaco-formatters.d.ts +16 -0
  687. package/dist/utils/monaco-formatters.d.ts.map +1 -0
  688. package/dist/utils/monaco-formatters.js +139 -0
  689. package/dist/utils/monaco-formatters.js.map +1 -0
  690. package/dist/utils/monaco-types.d.ts +174 -0
  691. package/dist/utils/monaco-types.d.ts.map +1 -0
  692. package/dist/utils/monaco-types.js +378 -0
  693. package/dist/utils/monaco-types.js.map +1 -0
  694. package/dist/utils/path-analyzer.d.ts +88 -0
  695. package/dist/utils/path-analyzer.d.ts.map +1 -0
  696. package/dist/utils/path-analyzer.js +215 -0
  697. package/dist/utils/path-analyzer.js.map +1 -0
  698. package/dist/utils/schema-validation.d.ts +36 -0
  699. package/dist/utils/schema-validation.d.ts.map +1 -0
  700. package/dist/utils/schema-validation.js +136 -0
  701. package/dist/utils/schema-validation.js.map +1 -0
  702. package/dist/utils/type-detector.d.ts +35 -0
  703. package/dist/utils/type-detector.d.ts.map +1 -0
  704. package/dist/utils/type-detector.js +241 -0
  705. package/dist/utils/type-detector.js.map +1 -0
  706. package/dist/utils/value-display-formatter.d.ts +31 -0
  707. package/dist/utils/value-display-formatter.d.ts.map +1 -0
  708. package/dist/utils/value-display-formatter.js +110 -0
  709. package/dist/utils/value-display-formatter.js.map +1 -0
  710. package/package.json +44 -28
  711. package/dist/chunk-BEAIHYJ5.mjs +0 -587
  712. package/dist/chunk-BEAIHYJ5.mjs.map +0 -1
  713. /package/dist/{monaco-types-GBPMPIMU.mjs.map → monaco-types-4FIH5OVX.mjs.map} +0 -0
@@ -0,0 +1,1028 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React, { useEffect, useRef } from 'react';
3
+ import rough from 'roughjs';
4
+ import { Icon } from '@iconify/react';
5
+ /**
6
+ * RoughRect - Renders a hand-drawn rectangle using rough.js SVG mode
7
+ * Uses a rounded rectangle path for softer corners
8
+ */
9
+ function RoughRect({ x, y, width, height, fill, stroke, }) {
10
+ const ref = useRef(null);
11
+ useEffect(() => {
12
+ if (!ref.current)
13
+ return;
14
+ const svg = ref.current.ownerSVGElement;
15
+ if (!svg)
16
+ return;
17
+ // Clear previous content
18
+ ref.current.replaceChildren();
19
+ const rs = rough.svg(svg);
20
+ const r = 8; // corner radius
21
+ // Create rounded rectangle path
22
+ const path = `M ${x + r} ${y}
23
+ L ${x + width - r} ${y}
24
+ Q ${x + width} ${y} ${x + width} ${y + r}
25
+ L ${x + width} ${y + height - r}
26
+ Q ${x + width} ${y + height} ${x + width - r} ${y + height}
27
+ L ${x + r} ${y + height}
28
+ Q ${x} ${y + height} ${x} ${y + height - r}
29
+ L ${x} ${y + r}
30
+ Q ${x} ${y} ${x + r} ${y}
31
+ Z`;
32
+ // Draw main rectangle
33
+ const rectNode = rs.path(path, {
34
+ fill,
35
+ fillStyle: 'solid',
36
+ stroke,
37
+ strokeWidth: 1.5,
38
+ roughness: 1.2,
39
+ bowing: 1,
40
+ });
41
+ ref.current.appendChild(rectNode);
42
+ return () => {
43
+ ref.current?.replaceChildren();
44
+ };
45
+ }, [x, y, width, height, fill, stroke]);
46
+ return _jsx("g", { ref: ref });
47
+ }
48
+ /**
49
+ * RoughCircle - Renders a hand-drawn circle using rough.js SVG mode
50
+ */
51
+ function RoughCircle({ cx, cy, diameter, fill, stroke, }) {
52
+ const ref = useRef(null);
53
+ useEffect(() => {
54
+ if (!ref.current)
55
+ return;
56
+ const svg = ref.current.ownerSVGElement;
57
+ if (!svg)
58
+ return;
59
+ ref.current.replaceChildren();
60
+ const rs = rough.svg(svg);
61
+ const circleNode = rs.circle(cx, cy, diameter, {
62
+ fill,
63
+ fillStyle: 'solid',
64
+ stroke,
65
+ strokeWidth: 1.5,
66
+ roughness: 0.8,
67
+ });
68
+ ref.current.appendChild(circleNode);
69
+ return () => {
70
+ ref.current?.replaceChildren();
71
+ };
72
+ }, [cx, cy, diameter, fill, stroke]);
73
+ return _jsx("g", { ref: ref });
74
+ }
75
+ /**
76
+ * Marker - Red circle with number/text inside
77
+ */
78
+ function Marker({ x, y, text }) {
79
+ return (_jsxs("g", { children: [_jsx(RoughCircle, { cx: x, cy: y, diameter: MARKER_SIZE, fill: "var(--flow-marker-fill, #dc2626)", stroke: "var(--flow-marker-stroke, #991b1b)" }), _jsx("text", { x: x, y: y, textAnchor: "middle", dominantBaseline: "central", fill: "var(--flow-marker-text, #ffffff)", fontSize: 10, fontWeight: 600, fontFamily: "system-ui, -apple-system, sans-serif", children: text })] }));
80
+ }
81
+ /**
82
+ * RoughArrow - Renders a hand-drawn curved arrow using rough.js SVG mode
83
+ * Uses quadratic bezier curves for an organic feel.
84
+ * Includes arrowhead that follows the curve's final angle.
85
+ */
86
+ function RoughArrow({ fromX, fromY, toX, toY, stroke, arrowSize = 8, centerY, }) {
87
+ const ref = useRef(null);
88
+ useEffect(() => {
89
+ if (!ref.current)
90
+ return;
91
+ const svg = ref.current.ownerSVGElement;
92
+ if (!svg)
93
+ return;
94
+ // Clear previous content
95
+ ref.current.replaceChildren();
96
+ const rs = rough.svg(svg);
97
+ const strokeWidth = 1.5;
98
+ const color = stroke;
99
+ const dx = toX - fromX;
100
+ const dy = toY - fromY;
101
+ const length = Math.sqrt(dx * dx + dy * dy);
102
+ // Calculate control point for quadratic bezier curve
103
+ // For horizontal lines: slight upward curve
104
+ // For diagonal lines: curve that exits horizontally then bends to target
105
+ const midX = (fromX + toX) / 2;
106
+ const midY = (fromY + toY) / 2;
107
+ let controlX;
108
+ let controlY;
109
+ if (Math.abs(dy) < 2) {
110
+ // Nearly horizontal: subtle upward curve
111
+ controlX = midX;
112
+ controlY = midY - Math.min(length * 0.08, 12);
113
+ }
114
+ else if (centerY !== undefined) {
115
+ // Curve towards whichever endpoint is farther from center
116
+ // This creates natural spreading for fan-in and fan-out
117
+ const fromDistFromCenter = Math.abs(fromY - centerY);
118
+ const toDistFromCenter = Math.abs(toY - centerY);
119
+ controlX = fromX + dx * 0.5;
120
+ if (fromDistFromCenter >= toDistFromCenter) {
121
+ // Source is farther from center → curve towards source's side
122
+ controlY =
123
+ fromY < centerY
124
+ ? midY - Math.abs(dy) * 0.3 // Source above center → curve UP
125
+ : midY + Math.abs(dy) * 0.3; // Source below center → curve DOWN
126
+ }
127
+ else {
128
+ // Target is farther from center → curve towards target's side
129
+ controlY =
130
+ toY < centerY
131
+ ? midY - Math.abs(dy) * 0.3 // Target above center → curve UP
132
+ : midY + Math.abs(dy) * 0.3; // Target below center → curve DOWN
133
+ }
134
+ }
135
+ else {
136
+ // Fallback when centerY not provided: simple direction-based curve
137
+ controlX = fromX + dx * 0.5;
138
+ controlY =
139
+ dy > 0 ? fromY - Math.abs(dy) * 0.3 : fromY + Math.abs(dy) * 0.3;
140
+ }
141
+ // Calculate the angle at the end of the curve (tangent at t=1)
142
+ // For quadratic bezier: tangent = 2(1-t)(P1-P0) + 2t(P2-P1) at t=1 = 2(P2-P1)
143
+ const tangentX = toX - controlX;
144
+ const tangentY = toY - controlY;
145
+ const endAngle = Math.atan2(tangentY, tangentX);
146
+ // Calculate where the curve should stop (before the arrowhead)
147
+ const curveEndX = toX - Math.cos(endAngle) * arrowSize;
148
+ const curveEndY = toY - Math.sin(endAngle) * arrowSize;
149
+ // Draw curved line using SVG path with quadratic bezier
150
+ const curvePath = `M ${fromX} ${fromY} Q ${controlX} ${controlY} ${curveEndX} ${curveEndY}`;
151
+ const curveNode = rs.path(curvePath, {
152
+ stroke: color,
153
+ strokeWidth,
154
+ roughness: 0.8,
155
+ fill: 'none',
156
+ });
157
+ ref.current.appendChild(curveNode);
158
+ // Draw arrowhead (two lines at angles from curve's end tangent)
159
+ const arrowAngle = Math.PI / 6; // 30 degrees
160
+ const arrowLength = 8;
161
+ // Arrow head line 1 (upper)
162
+ const arrow1EndX = curveEndX - Math.cos(endAngle - arrowAngle) * arrowLength;
163
+ const arrow1EndY = curveEndY - Math.sin(endAngle - arrowAngle) * arrowLength;
164
+ const arrowHead1 = rs.line(curveEndX, curveEndY, arrow1EndX, arrow1EndY, {
165
+ stroke: color,
166
+ strokeWidth,
167
+ roughness: 0.5,
168
+ });
169
+ ref.current.appendChild(arrowHead1);
170
+ // Arrow head line 2 (lower)
171
+ const arrow2EndX = curveEndX - Math.cos(endAngle + arrowAngle) * arrowLength;
172
+ const arrow2EndY = curveEndY - Math.sin(endAngle + arrowAngle) * arrowLength;
173
+ const arrowHead2 = rs.line(curveEndX, curveEndY, arrow2EndX, arrow2EndY, {
174
+ stroke: color,
175
+ strokeWidth,
176
+ roughness: 0.5,
177
+ });
178
+ ref.current.appendChild(arrowHead2);
179
+ return () => {
180
+ ref.current?.replaceChildren();
181
+ };
182
+ }, [fromX, fromY, toX, toY, stroke, arrowSize, centerY]);
183
+ return _jsx("g", { ref: ref });
184
+ }
185
+ // Default layout configuration
186
+ export const defaultLayout = {
187
+ labelSize: 13,
188
+ labelWeight: '600',
189
+ textSize: 12,
190
+ textWeight: 'normal',
191
+ boxHeight: 50,
192
+ descriptionSize: 13,
193
+ };
194
+ // Layout constants
195
+ const STAGE_WIDTH = 120;
196
+ const STAGE_HEIGHT = 50;
197
+ const STAGE_GAP = 50; // Horizontal gap between stages
198
+ const VERTICAL_GAP = 12; // Vertical gap between stacked sources/destinations
199
+ const PADDING_X = 8;
200
+ const PADDING_Y = 8;
201
+ const EDGE_ARROW_LENGTH = 25; // Space for incoming/outgoing arrows
202
+ const TITLE_HEIGHT = 30;
203
+ const ARROW_SIZE = 8;
204
+ const ARROW_OFFSET = 6; // Vertical offset for parallel return arrows
205
+ /**
206
+ * Resolves a transformer chain by following `next` references.
207
+ * Returns an ordered array of transformers from the starting key to the end.
208
+ * Throws if a reference is invalid or circular.
209
+ */
210
+ function resolveTransformerChain(transformers, startKey) {
211
+ if (!transformers || !startKey)
212
+ return [];
213
+ const result = [];
214
+ const visited = new Set();
215
+ let currentKey = startKey;
216
+ while (currentKey) {
217
+ if (visited.has(currentKey)) {
218
+ throw new Error(`FlowMap: Circular reference detected in transformer chain at "${currentKey}"`);
219
+ }
220
+ const config = transformers[currentKey];
221
+ if (!config) {
222
+ throw new Error(`FlowMap: Invalid transformer reference "${currentKey}". Available transformers: ${Object.keys(transformers).join(', ') || 'none'}`);
223
+ }
224
+ visited.add(currentKey);
225
+ result.push({ name: currentKey, config });
226
+ currentKey = config.next;
227
+ }
228
+ return result;
229
+ }
230
+ /**
231
+ * Collects all unique transformers that are reachable from sources (pre) or destinations (post).
232
+ * Returns them in chain order based on `next` references.
233
+ * Finds the chain head (transformer not referenced by any other's `next`) and walks from there.
234
+ */
235
+ function collectReachableTransformers(transformers, entryPoints) {
236
+ if (!transformers)
237
+ return [];
238
+ // Find all unique transformer names referenced by walking each entry point's chain
239
+ const referencedNames = new Set();
240
+ for (const entry of entryPoints) {
241
+ if (!entry || !transformers[entry])
242
+ continue;
243
+ const chain = resolveTransformerChain(transformers, entry);
244
+ chain.forEach((p) => referencedNames.add(p.name));
245
+ }
246
+ if (referencedNames.size === 0)
247
+ return [];
248
+ // Find chain head: transformer in our set that's not anyone's `next`
249
+ const nextTargets = new Set();
250
+ for (const name of referencedNames) {
251
+ const next = transformers[name]?.next;
252
+ if (next && referencedNames.has(next)) {
253
+ nextTargets.add(next);
254
+ }
255
+ }
256
+ // Chain head = in referencedNames but not in nextTargets
257
+ let chainHead;
258
+ for (const name of referencedNames) {
259
+ if (!nextTargets.has(name)) {
260
+ chainHead = name;
261
+ break;
262
+ }
263
+ }
264
+ // Walk from chain head
265
+ if (!chainHead)
266
+ chainHead = [...referencedNames][0];
267
+ return resolveTransformerChain(transformers, chainHead);
268
+ }
269
+ /**
270
+ * Gets the index of a transformer in the transformer list.
271
+ * Returns transformerList.length if not found (= connects directly to collector).
272
+ */
273
+ function getTransformerIndex(transformerName, transformerList) {
274
+ if (!transformerName)
275
+ return transformerList.length;
276
+ const idx = transformerList.findIndex((p) => p.name === transformerName);
277
+ return idx >= 0 ? idx : transformerList.length;
278
+ }
279
+ // Dynamic width calculation function
280
+ function calculateTotalWidth(stageCount, hasStageBefore, hasStageAfter) {
281
+ const leftEdge = hasStageBefore ? 0 : EDGE_ARROW_LENGTH;
282
+ const rightEdge = hasStageAfter ? 0 : EDGE_ARROW_LENGTH;
283
+ return (leftEdge +
284
+ STAGE_WIDTH * stageCount +
285
+ STAGE_GAP * (stageCount - 1) +
286
+ rightEdge);
287
+ }
288
+ const MARKER_SIZE = 16;
289
+ const MARKER_OFFSET = 4; // Offset from box edge
290
+ function getMarkerPosition(position, stages, centerY, totalWidth) {
291
+ const sourcePos = stages.source;
292
+ const collectorPos = stages.collector;
293
+ const destPos = stages.destination;
294
+ const beforePos = stages.before;
295
+ const afterPos = stages.after;
296
+ // Helper to get box marker position (top corners)
297
+ const getBoxMarker = (pos, variant) => {
298
+ if (!pos)
299
+ return null;
300
+ if (variant === '-left') {
301
+ return { x: pos.x + MARKER_OFFSET, y: pos.y - MARKER_OFFSET };
302
+ }
303
+ // Default and -right: top-right corner
304
+ return {
305
+ x: pos.x + pos.width - MARKER_OFFSET,
306
+ y: pos.y - MARKER_OFFSET,
307
+ };
308
+ };
309
+ // Helper to get arrow marker position (between stages)
310
+ const getArrowMarker = (fromPos) => {
311
+ if (!fromPos)
312
+ return null;
313
+ const fromCenterY = fromPos.y + fromPos.height / 2;
314
+ return {
315
+ x: fromPos.x + fromPos.width + STAGE_GAP / 2 - 6,
316
+ y: fromCenterY + MARKER_SIZE / 2 + 4,
317
+ };
318
+ };
319
+ switch (position) {
320
+ // Stage-before (only right side, no left)
321
+ case 'stage-before':
322
+ case 'stage-before-right':
323
+ return getBoxMarker(beforePos);
324
+ // Source stage (above box, top corners) - first source
325
+ case 'source':
326
+ case 'source-right':
327
+ return getBoxMarker(sourcePos);
328
+ case 'source-left':
329
+ return getBoxMarker(sourcePos, '-left');
330
+ // Collector stage (above box, top corners)
331
+ case 'collector':
332
+ case 'collector-right':
333
+ return getBoxMarker(collectorPos);
334
+ case 'collector-left':
335
+ return getBoxMarker(collectorPos, '-left');
336
+ // Destination stage (above box, top corners) - first destination
337
+ case 'destination':
338
+ case 'destination-right':
339
+ return getBoxMarker(destPos);
340
+ case 'destination-left':
341
+ return getBoxMarker(destPos, '-left');
342
+ // Stage-after (only left side, no right)
343
+ case 'stage-after':
344
+ case 'stage-after-left':
345
+ return getBoxMarker(afterPos, '-left');
346
+ // Edge arrows (in/out)
347
+ case 'incoming':
348
+ return { x: EDGE_ARROW_LENGTH / 2, y: centerY + MARKER_SIZE / 2 + 8 };
349
+ case 'outgoing':
350
+ return {
351
+ x: totalWidth - EDGE_ARROW_LENGTH / 2,
352
+ y: centerY + MARKER_SIZE / 2 + 8,
353
+ };
354
+ // Arrow between before and source
355
+ case 'before-source':
356
+ return getArrowMarker(beforePos);
357
+ // Between-stage arrows (for simple flows without transformers)
358
+ case 'source-collector':
359
+ return getArrowMarker(sourcePos);
360
+ case 'collector-destination':
361
+ return getArrowMarker(collectorPos);
362
+ // Arrow between destination and after
363
+ case 'destination-after':
364
+ return getArrowMarker(destPos);
365
+ // Pre-transformer to collector arrow
366
+ case 'pre-collector':
367
+ // Find the last pre-transformer position
368
+ const preKeys = Object.keys(stages).filter((k) => k.startsWith('pre-'));
369
+ if (preKeys.length === 0)
370
+ return null;
371
+ const lastPrePos = stages[preKeys[preKeys.length - 1]];
372
+ return getArrowMarker(lastPrePos);
373
+ // Collector to post-transformer arrow
374
+ case 'collector-post':
375
+ return getArrowMarker(collectorPos);
376
+ default: {
377
+ // Handle named source markers: source-{name}, source-{name}-left, source-{name}-right
378
+ const sourceNameMatch = position.match(/^source-([^-]+)(-left|-right)?$/);
379
+ if (sourceNameMatch) {
380
+ const name = sourceNameMatch[1];
381
+ const variant = sourceNameMatch[2];
382
+ const pos = stages[`source-${name}`];
383
+ return getBoxMarker(pos, variant);
384
+ }
385
+ // Handle named destination markers: destination-{name}, destination-{name}-left, destination-{name}-right
386
+ const destNameMatch = position.match(/^destination-([^-]+)(-left|-right)?$/);
387
+ if (destNameMatch) {
388
+ const name = destNameMatch[1];
389
+ const variant = destNameMatch[2];
390
+ const pos = stages[`destination-${name}`];
391
+ return getBoxMarker(pos, variant);
392
+ }
393
+ // Handle pre-transformer markers: pre-{name}, pre-{name}-left, pre-{name}-right
394
+ const preMatch = position.match(/^pre-([^-]+)(-left|-right)?$/);
395
+ if (preMatch) {
396
+ const name = preMatch[1];
397
+ const variant = preMatch[2];
398
+ // Skip if this looks like a -next pattern
399
+ if (name === 'collector')
400
+ return null;
401
+ const pos = stages[`pre-${name}`];
402
+ return getBoxMarker(pos, variant);
403
+ }
404
+ // Handle post-transformer markers: post-{name}, post-{name}-left, post-{name}-right
405
+ const postMatch = position.match(/^post-([^-]+)(-left|-right)?$/);
406
+ if (postMatch) {
407
+ const name = postMatch[1];
408
+ const variant = postMatch[2];
409
+ const pos = stages[`post-${name}`];
410
+ return getBoxMarker(pos, variant);
411
+ }
412
+ // Handle source to pre-transformer arrow: source-{name}-pre
413
+ const sourcePreMatch = position.match(/^source-([^-]+)-pre$/);
414
+ if (sourcePreMatch) {
415
+ const name = sourcePreMatch[1];
416
+ const pos = stages[`source-${name}`];
417
+ return getArrowMarker(pos);
418
+ }
419
+ // Handle source to collector arrow: source-{name}-collector
420
+ const sourceCollectorMatch = position.match(/^source-([^-]+)-collector$/);
421
+ if (sourceCollectorMatch) {
422
+ const name = sourceCollectorMatch[1];
423
+ const pos = stages[`source-${name}`];
424
+ return getArrowMarker(pos);
425
+ }
426
+ // Handle pre-transformer chain arrow: pre-{name}-next
427
+ const preNextMatch = position.match(/^pre-([^-]+)-next$/);
428
+ if (preNextMatch) {
429
+ const name = preNextMatch[1];
430
+ const pos = stages[`pre-${name}`];
431
+ return getArrowMarker(pos);
432
+ }
433
+ // Handle post-transformer chain arrow: post-{name}-next
434
+ const postNextMatch = position.match(/^post-([^-]+)-next$/);
435
+ if (postNextMatch) {
436
+ const name = postNextMatch[1];
437
+ const pos = stages[`post-${name}`];
438
+ return getArrowMarker(pos);
439
+ }
440
+ // Handle post to destination arrow: post-destination-{name}
441
+ const postDestMatch = position.match(/^post-destination-([^-]+)$/);
442
+ if (postDestMatch) {
443
+ const name = postDestMatch[1];
444
+ // Find the last post-transformer position before this destination
445
+ const postKeys = Object.keys(stages).filter((k) => k.startsWith('post-'));
446
+ if (postKeys.length === 0)
447
+ return getArrowMarker(collectorPos);
448
+ const lastPostPos = stages[postKeys[postKeys.length - 1]];
449
+ return getArrowMarker(lastPostPos);
450
+ }
451
+ return null;
452
+ }
453
+ }
454
+ }
455
+ export function FlowMap({ stageBefore, sources, preTransformers, collector, postTransformers, destinations, stageAfter, title, layout = defaultLayout, boxHeight: boxHeightProp, descriptionHeight: descriptionHeightProp, markers, className, withReturn, }) {
456
+ // Convert Record-based sources/destinations to arrays with names
457
+ const sourceEntries = Object.entries(sources ?? { default: {} });
458
+ const destinationEntries = Object.entries(destinations ?? { default: {} });
459
+ // Collect pre-transformers reachable from sources
460
+ const sourceNextValues = sourceEntries.map(([, config]) => config.next);
461
+ const preTransformerList = collectReachableTransformers(preTransformers, sourceNextValues);
462
+ // Collect post-transformers reachable from destinations (via 'before')
463
+ const destBeforeValues = destinationEntries.map(([, config]) => config.before);
464
+ const postTransformerList = collectReachableTransformers(postTransformers, destBeforeValues);
465
+ // Sort sources by target transformer index to avoid edge crossings
466
+ // Sources connecting to earlier transformers go on top
467
+ const sortedSourceEntries = [...sourceEntries].sort(([, a], [, b]) => {
468
+ const aIdx = getTransformerIndex(a.next, preTransformerList);
469
+ const bIdx = getTransformerIndex(b.next, preTransformerList);
470
+ return aIdx - bIdx;
471
+ });
472
+ // Sort destinations by source transformer index - ASCENDING (earlier transformer = top)
473
+ // This mirrors source sorting behavior for symmetry
474
+ const sortedDestinationEntries = [...destinationEntries].sort(([, a], [, b]) => {
475
+ const aIdx = getTransformerIndex(a.before, postTransformerList);
476
+ const bIdx = getTransformerIndex(b.before, postTransformerList);
477
+ return aIdx - bIdx; // ASCENDING: earlier transformer at top (mirrors sources)
478
+ });
479
+ const containerRef = useRef(null);
480
+ // Check if any stage has a description or link
481
+ const hasDescription = stageBefore?.description ||
482
+ sourceEntries.some(([, s]) => s.description) ||
483
+ preTransformerList.some((p) => p.config.description) ||
484
+ collector?.description ||
485
+ postTransformerList.some((p) => p.config.description) ||
486
+ destinationEntries.some(([, d]) => d.description) ||
487
+ stageAfter?.description ||
488
+ destinationEntries.some(([, d]) => d.after?.description);
489
+ const hasLink = stageBefore?.link !== false ||
490
+ sourceEntries.some(([, s]) => s.link !== false) ||
491
+ preTransformerList.some((p) => p.config.link !== false) ||
492
+ collector?.link !== false ||
493
+ postTransformerList.some((p) => p.config.link !== false) ||
494
+ destinationEntries.some(([, d]) => d.link !== false) ||
495
+ stageAfter?.link !== false ||
496
+ destinationEntries.some(([, d]) => d.after?.link !== false);
497
+ // Check if markers need extra padding (top for stage markers, bottom for arrow markers)
498
+ const stageMarkerPositions = [
499
+ 'stage-before',
500
+ 'stage-before-right',
501
+ 'source',
502
+ 'source-left',
503
+ 'source-right',
504
+ 'collector',
505
+ 'collector-left',
506
+ 'collector-right',
507
+ 'destination',
508
+ 'destination-left',
509
+ 'destination-right',
510
+ 'stage-after',
511
+ 'stage-after-left',
512
+ ];
513
+ // Helper to check if a position is a stage marker (including named stages and transformers)
514
+ const isStageMarker = (pos) => {
515
+ if (stageMarkerPositions.includes(pos))
516
+ return true;
517
+ // Check patterns: source-{name}, destination-{name}, pre-{name}, post-{name}
518
+ return /^(source|destination|pre|post)-[^-]+(-left|-right)?$/.test(pos);
519
+ };
520
+ const hasTopMarkers = markers?.some((m) => isStageMarker(m.position)) ?? false;
521
+ const markerTopPadding = hasTopMarkers ? MARKER_SIZE / 2 + MARKER_OFFSET : 0;
522
+ // Filter markers that have legend text
523
+ const legendItems = markers?.filter((m) => m.text) ?? [];
524
+ // Estimate total text length to determine how many lines we need
525
+ const totalTextLength = legendItems.reduce((sum, item) => sum + (item.text?.length ?? 0), 0);
526
+ // Rough estimate: ~5.5 chars per pixel at 11px font, available width ~450px = ~82 chars per line
527
+ const LEGEND_LINE_HEIGHT = 18;
528
+ const estimatedLines = Math.max(1, Math.ceil(totalTextLength / 70));
529
+ const legendHeight = legendItems.length > 0 ? LEGEND_LINE_HEIGHT * estimatedLines + 8 : 0;
530
+ // Use prop values if provided, otherwise use layout defaults
531
+ const boxHeight = boxHeightProp ?? layout.boxHeight;
532
+ const descriptionHeight = descriptionHeightProp ?? 30;
533
+ const belowBoxHeight = hasDescription || hasLink ? descriptionHeight + 10 : 0; // Space for description/link content
534
+ // Calculate max rows for multi-source/destination layout
535
+ const maxRows = Math.max(sourceEntries.length, destinationEntries.length, 1);
536
+ const stackedHeight = boxHeight * maxRows + VERTICAL_GAP * (maxRows - 1);
537
+ // Check if any destination has an after stage or if shared stageAfter exists
538
+ const hasAnyAfterStage = stageAfter || destinationEntries.some(([, d]) => d.after);
539
+ // Calculate stage count and total width dynamically
540
+ // Stages: stageBefore? + sources(1) + preTransformers + collector(1) + postTransformers + destinations(1) + afterStages?
541
+ const stageCount = (stageBefore ? 1 : 0) +
542
+ 1 + // sources column
543
+ preTransformerList.length +
544
+ 1 + // collector
545
+ postTransformerList.length +
546
+ 1 + // destinations column
547
+ (hasAnyAfterStage ? 1 : 0);
548
+ const totalWidth = calculateTotalWidth(stageCount, !!stageBefore, !!hasAnyAfterStage);
549
+ const baseHeight = PADDING_Y * 2 +
550
+ stackedHeight +
551
+ belowBoxHeight +
552
+ markerTopPadding +
553
+ legendHeight;
554
+ const totalHeight = title ? baseHeight + TITLE_HEIGHT : baseHeight;
555
+ // Calculate positions (declarative, no useEffect)
556
+ const baseY = (title ? TITLE_HEIGHT : 0) + PADDING_Y + markerTopPadding;
557
+ // Calculate the vertical center of the stacked area (for collector positioning)
558
+ const stackedCenterY = baseY + stackedHeight / 2;
559
+ // Helper to calculate Y positions for stacked items centered around stackedCenterY
560
+ const getStackedY = (index, count) => {
561
+ const totalStackHeight = boxHeight * count + VERTICAL_GAP * (count - 1);
562
+ const startY = stackedCenterY - totalStackHeight / 2;
563
+ return startY + index * (boxHeight + VERTICAL_GAP);
564
+ };
565
+ // Build stage positions dynamically based on which stages are active
566
+ // Start at 0 if stageBefore exists (no left edge arrow), otherwise leave space for arrow
567
+ let currentX = stageBefore ? 0 : EDGE_ARROW_LENGTH;
568
+ const stages = {};
569
+ // Arrays to hold named source/destination positions
570
+ const sourcePositions = [];
571
+ const destinationPositions = [];
572
+ if (stageBefore) {
573
+ stages.before = {
574
+ x: currentX,
575
+ y: stackedCenterY - boxHeight / 2, // Center vertically
576
+ width: STAGE_WIDTH,
577
+ height: boxHeight,
578
+ };
579
+ currentX += STAGE_WIDTH + STAGE_GAP;
580
+ }
581
+ // Position ALL sources in the source column (stacked vertically)
582
+ const sourceX = currentX;
583
+ sortedSourceEntries.forEach(([name], index) => {
584
+ const pos = {
585
+ x: sourceX,
586
+ y: getStackedY(index, sortedSourceEntries.length),
587
+ width: STAGE_WIDTH,
588
+ height: boxHeight,
589
+ };
590
+ sourcePositions.push({ name, pos });
591
+ stages[`source-${name}`] = pos;
592
+ });
593
+ // Keep 'source' alias pointing to first source for backward compatibility
594
+ if (sourcePositions.length > 0) {
595
+ stages.source = sourcePositions[0].pos;
596
+ }
597
+ currentX += STAGE_WIDTH + STAGE_GAP;
598
+ // Pre-transformer positions
599
+ // Strategy: position at source Y if only ONE source connects, otherwise center
600
+ // This keeps transformers aligned with their sources when there's no branching
601
+ const preTransformerPositions = [];
602
+ // Build map: transformer name → list of sources that connect to it (directly or via chain)
603
+ const transformerIncomingSources = new Map();
604
+ sortedSourceEntries.forEach(([sourceName, config]) => {
605
+ const targetTransformer = config.next;
606
+ if (targetTransformer) {
607
+ const existing = transformerIncomingSources.get(targetTransformer) ?? [];
608
+ existing.push(sourceName);
609
+ transformerIncomingSources.set(targetTransformer, existing);
610
+ }
611
+ });
612
+ // Also track chain connections (transformer A → transformer B means B receives from A's sources too)
613
+ preTransformerList.forEach(({ name, config }) => {
614
+ if (config.next) {
615
+ // This transformer's output goes to config.next
616
+ // So config.next receives from all sources that this transformer receives from
617
+ const mySources = transformerIncomingSources.get(name) ?? [];
618
+ const nextSources = transformerIncomingSources.get(config.next) ?? [];
619
+ // Mark that the next transformer receives from chain (we'll use this for positioning)
620
+ transformerIncomingSources.set(config.next, [
621
+ ...new Set([...nextSources, `chain:${name}`]),
622
+ ]);
623
+ }
624
+ });
625
+ preTransformerList.forEach(({ name }) => {
626
+ const incomingSources = transformerIncomingSources.get(name) ?? [];
627
+ // Filter to only direct sources (not chain connections)
628
+ const directSources = incomingSources.filter((s) => !s.startsWith('chain:'));
629
+ const hasChainInput = incomingSources.some((s) => s.startsWith('chain:'));
630
+ let y;
631
+ if (directSources.length === 1 && !hasChainInput) {
632
+ // Only ONE direct source, no chain input → align with that source
633
+ const sourcePos = stages[`source-${directSources[0]}`];
634
+ y = sourcePos ? sourcePos.y : stackedCenterY - boxHeight / 2;
635
+ }
636
+ else {
637
+ // Multiple sources or has chain input → center
638
+ y = stackedCenterY - boxHeight / 2;
639
+ }
640
+ const pos = {
641
+ x: currentX,
642
+ y,
643
+ width: STAGE_WIDTH,
644
+ height: boxHeight,
645
+ };
646
+ preTransformerPositions.push({ name, pos });
647
+ stages[`pre-${name}`] = pos;
648
+ currentX += STAGE_WIDTH + STAGE_GAP;
649
+ });
650
+ // Collector position (single, centered)
651
+ stages.collector = {
652
+ x: currentX,
653
+ y: stackedCenterY - boxHeight / 2,
654
+ width: STAGE_WIDTH,
655
+ height: boxHeight,
656
+ };
657
+ currentX += STAGE_WIDTH + STAGE_GAP;
658
+ // Post-transformer positions
659
+ // Strategy: position at destination Y if only ONE destination connects, otherwise center
660
+ // This mirrors pre-transformer behavior for symmetry
661
+ const postTransformerPositions = [];
662
+ // Build map: transformer name → list of destinations that receive from it (directly or via chain)
663
+ const transformerOutgoingDests = new Map();
664
+ sortedDestinationEntries.forEach(([destName, config]) => {
665
+ const sourceTransformer = config.before;
666
+ if (sourceTransformer) {
667
+ const existing = transformerOutgoingDests.get(sourceTransformer) ?? [];
668
+ existing.push(destName);
669
+ transformerOutgoingDests.set(sourceTransformer, existing);
670
+ }
671
+ });
672
+ // Also track chain connections (transformer A → transformer B means A sends to all of B's destinations)
673
+ // Walk backwards through chain to propagate destination info
674
+ for (let i = postTransformerList.length - 1; i >= 0; i--) {
675
+ const { name, config } = postTransformerList[i];
676
+ if (config.next) {
677
+ // This transformer sends to config.next, so it indirectly sends to config.next's destinations
678
+ const nextDests = transformerOutgoingDests.get(config.next) ?? [];
679
+ const myDests = transformerOutgoingDests.get(name) ?? [];
680
+ // Mark chain connection
681
+ transformerOutgoingDests.set(name, [
682
+ ...new Set([...myDests, `chain:${config.next}`]),
683
+ ]);
684
+ }
685
+ }
686
+ // First position destinations (we need their positions for smart post-transformer positioning)
687
+ const destinationX = currentX + postTransformerList.length * (STAGE_WIDTH + STAGE_GAP);
688
+ sortedDestinationEntries.forEach(([name], index) => {
689
+ const pos = {
690
+ x: destinationX,
691
+ y: getStackedY(index, sortedDestinationEntries.length),
692
+ width: STAGE_WIDTH,
693
+ height: boxHeight,
694
+ };
695
+ destinationPositions.push({ name, pos });
696
+ stages[`destination-${name}`] = pos;
697
+ });
698
+ // Keep 'destination' alias pointing to first destination for backward compatibility
699
+ if (destinationPositions.length > 0) {
700
+ stages.destination = destinationPositions[0].pos;
701
+ }
702
+ // Now position post-transformers with smart Y-positioning (can now reference destination positions)
703
+ postTransformerList.forEach(({ name }) => {
704
+ const outgoingDests = transformerOutgoingDests.get(name) ?? [];
705
+ // Filter to only direct destinations (not chain connections)
706
+ const directDests = outgoingDests.filter((d) => !d.startsWith('chain:'));
707
+ const hasChainOutput = outgoingDests.some((d) => d.startsWith('chain:'));
708
+ let y;
709
+ if (directDests.length === 1 && !hasChainOutput) {
710
+ // Only ONE direct destination, no chain output → align with that destination
711
+ const destPos = stages[`destination-${directDests[0]}`];
712
+ y = destPos ? destPos.y : stackedCenterY - boxHeight / 2;
713
+ }
714
+ else {
715
+ // Multiple destinations or has chain output → center
716
+ y = stackedCenterY - boxHeight / 2;
717
+ }
718
+ const pos = {
719
+ x: currentX,
720
+ y,
721
+ width: STAGE_WIDTH,
722
+ height: boxHeight,
723
+ };
724
+ postTransformerPositions.push({ name, pos });
725
+ stages[`post-${name}`] = pos;
726
+ currentX += STAGE_WIDTH + STAGE_GAP;
727
+ });
728
+ // Position after stages (per-destination or shared)
729
+ // Each destination with `after` or falling back to shared `stageAfter` gets its own box
730
+ const afterPositions = [];
731
+ if (hasAnyAfterStage) {
732
+ const afterX = currentX + STAGE_WIDTH + STAGE_GAP;
733
+ sortedDestinationEntries.forEach(([destName, destConfig], index) => {
734
+ // Use destination's after config, or fall back to shared stageAfter
735
+ const afterConfig = destConfig.after ?? stageAfter;
736
+ if (afterConfig) {
737
+ const pos = {
738
+ x: afterX,
739
+ y: getStackedY(index, sortedDestinationEntries.length), // Same Y as destination
740
+ width: STAGE_WIDTH,
741
+ height: boxHeight,
742
+ };
743
+ afterPositions.push({ name: destName, pos, config: afterConfig });
744
+ stages[`after-${destName}`] = pos;
745
+ }
746
+ });
747
+ // Keep 'after' alias pointing to first after position for backward compatibility
748
+ if (afterPositions.length > 0) {
749
+ stages.after = afterPositions[0].pos;
750
+ }
751
+ }
752
+ // Calculate center Y for arrows (collector's center)
753
+ const centerY = stackedCenterY;
754
+ // Stage configurations with colors and default links
755
+ const stageConfigs = [
756
+ ...(stageBefore
757
+ ? [
758
+ {
759
+ key: 'before',
760
+ config: stageBefore,
761
+ fillVar: '--flow-before-fill',
762
+ strokeVar: '--flow-before-stroke',
763
+ defaultLabel: 'Before',
764
+ defaultLink: undefined,
765
+ },
766
+ ]
767
+ : []),
768
+ // Sources (named, sorted by target transformer)
769
+ ...sortedSourceEntries.map(([name, sourceConfig]) => ({
770
+ key: `source-${name}`,
771
+ config: sourceConfig,
772
+ fillVar: '--flow-source-fill',
773
+ strokeVar: '--flow-source-stroke',
774
+ defaultLabel: 'Source',
775
+ defaultLink: '/docs/sources',
776
+ })),
777
+ // Pre-transformers
778
+ ...preTransformerList.map(({ name, config }) => ({
779
+ key: `pre-${name}`,
780
+ config,
781
+ fillVar: '--flow-transformer-fill',
782
+ strokeVar: '--flow-transformer-stroke',
783
+ defaultLabel: name.charAt(0).toUpperCase() + name.slice(1),
784
+ defaultLink: '/docs/transformers',
785
+ })),
786
+ {
787
+ key: 'collector',
788
+ config: collector,
789
+ fillVar: '--flow-collector-fill',
790
+ strokeVar: '--flow-collector-stroke',
791
+ defaultLabel: 'Collector',
792
+ defaultLink: '/docs/collectors',
793
+ },
794
+ // Post-transformers
795
+ ...postTransformerList.map(({ name, config }) => ({
796
+ key: `post-${name}`,
797
+ config,
798
+ fillVar: '--flow-transformer-fill',
799
+ strokeVar: '--flow-transformer-stroke',
800
+ defaultLabel: name.charAt(0).toUpperCase() + name.slice(1),
801
+ defaultLink: '/docs/transformers',
802
+ })),
803
+ // Destinations (named, sorted by source transformer)
804
+ ...sortedDestinationEntries.map(([name, destConfig]) => ({
805
+ key: `destination-${name}`,
806
+ config: destConfig,
807
+ fillVar: '--flow-destination-fill',
808
+ strokeVar: '--flow-destination-stroke',
809
+ defaultLabel: 'Destination',
810
+ defaultLink: '/docs/destinations',
811
+ })),
812
+ // After stages (per-destination)
813
+ ...afterPositions.map(({ name: destName, config: afterConfig }) => ({
814
+ key: `after-${destName}`,
815
+ config: afterConfig,
816
+ fillVar: '--flow-after-fill',
817
+ strokeVar: '--flow-after-stroke',
818
+ defaultLabel: 'External',
819
+ defaultLink: undefined,
820
+ })),
821
+ ];
822
+ return (_jsx("div", { ref: containerRef, className: `elb-explorer elb-flow-map ${className || ''}`, style: {
823
+ width: '100%',
824
+ maxWidth: totalWidth,
825
+ }, children: _jsxs("svg", { viewBox: `0 0 ${totalWidth} ${totalHeight}`, style: {
826
+ width: '100%',
827
+ height: 'auto',
828
+ display: 'block',
829
+ }, children: [title && (_jsx("text", { x: totalWidth / 2, y: 18, textAnchor: "middle", dominantBaseline: "middle", fill: "var(--color-text, #f3f4f6)", fontSize: 14, fontWeight: 600, fontFamily: "system-ui, -apple-system, sans-serif", children: title })), (() => {
830
+ const collectorPos = stages.collector;
831
+ const collectorCenterY = collectorPos.y + boxHeight / 2;
832
+ // Helper to spread connection points vertically on an edge
833
+ const getSpreadY = (idx, count, baseY) => {
834
+ if (count <= 1)
835
+ return baseY;
836
+ const spread = Math.min(boxHeight * 0.6, (count - 1) * 12);
837
+ const step = spread / (count - 1);
838
+ return baseY - spread / 2 + idx * step;
839
+ };
840
+ // Find target position for a source (either pre-transformer or collector)
841
+ const getSourceTarget = (sourceName, sourceConfig) => {
842
+ if (sourceConfig.next && preTransformers?.[sourceConfig.next]) {
843
+ return stages[`pre-${sourceConfig.next}`];
844
+ }
845
+ // No pre-transformer, connect to first pre-transformer or collector
846
+ if (preTransformerList.length > 0) {
847
+ return stages[`pre-${preTransformerList[0].name}`];
848
+ }
849
+ return collectorPos;
850
+ };
851
+ // Find source position for a destination (either post-transformer or collector)
852
+ const getDestinationSource = (destName, destConfig) => {
853
+ if (destConfig.before && postTransformers?.[destConfig.before]) {
854
+ return stages[`post-${destConfig.before}`];
855
+ }
856
+ // No post-transformer, connect from last post-transformer or collector
857
+ if (postTransformerList.length > 0) {
858
+ return stages[`post-${postTransformerList[postTransformerList.length - 1].name}`];
859
+ }
860
+ return collectorPos;
861
+ };
862
+ return (_jsxs(_Fragment, { children: [!stageBefore && sourceEntries.length === 1 && (_jsx(RoughArrow, { fromX: 0, fromY: centerY, toX: stages.source.x, toY: centerY, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY })), stageBefore && (_jsx(RoughArrow, { fromX: stages.before.x + STAGE_WIDTH, fromY: centerY, toX: stages.source.x, toY: stages.source.y + boxHeight / 2, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY })), (() => {
863
+ // Build map: targetKey -> list of sources connecting to it
864
+ const sourcesByTarget = new Map();
865
+ sourcePositions.forEach(({ name, pos }, sortIndex) => {
866
+ const sourceConfig = sources?.[name] ?? {};
867
+ const targetKey = sourceConfig.next
868
+ ? `pre-${sourceConfig.next}`
869
+ : preTransformerList.length > 0
870
+ ? `pre-${preTransformerList[0].name}`
871
+ : 'collector';
872
+ const existing = sourcesByTarget.get(targetKey) ?? [];
873
+ existing.push({ name, pos, sortIndex });
874
+ sourcesByTarget.set(targetKey, existing);
875
+ });
876
+ return sourcePositions.map(({ name, pos: sourcePos }) => {
877
+ const sourceConfig = sources?.[name] ?? {};
878
+ const targetPos = getSourceTarget(name, sourceConfig);
879
+ const sourceCenterY = sourcePos.y + boxHeight / 2;
880
+ const targetCenterY = targetPos.y + boxHeight / 2;
881
+ // Find sources connecting to the same target
882
+ const targetKey = sourceConfig.next
883
+ ? `pre-${sourceConfig.next}`
884
+ : preTransformerList.length > 0
885
+ ? `pre-${preTransformerList[0].name}`
886
+ : 'collector';
887
+ const sourcesToSameTarget = sourcesByTarget.get(targetKey) ?? [];
888
+ const indexWithinTarget = sourcesToSameTarget.findIndex((s) => s.name === name);
889
+ // Only spread if multiple sources connect to same target
890
+ const spreadY = getSpreadY(indexWithinTarget, sourcesToSameTarget.length, targetCenterY);
891
+ const offset = withReturn ? ARROW_OFFSET : 0;
892
+ return (_jsxs(React.Fragment, { children: [_jsx(RoughArrow, { fromX: sourcePos.x + STAGE_WIDTH, fromY: sourceCenterY - offset, toX: targetPos.x, toY: spreadY - offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }), withReturn && (_jsx(RoughArrow, { fromX: targetPos.x, fromY: spreadY + offset, toX: sourcePos.x + STAGE_WIDTH, toY: sourceCenterY + offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }, `source-${name}-arrows`));
893
+ });
894
+ })(), preTransformerPositions.map(({ name, pos }, index) => {
895
+ const procConfig = preTransformers?.[name] ?? {};
896
+ // Find next target: next transformer in chain, or collector
897
+ let targetPos;
898
+ if (procConfig.next && preTransformers?.[procConfig.next]) {
899
+ targetPos = stages[`pre-${procConfig.next}`];
900
+ }
901
+ else {
902
+ targetPos = collectorPos;
903
+ }
904
+ const fromY = pos.y + boxHeight / 2;
905
+ const toY = targetPos.y + boxHeight / 2;
906
+ const offset = withReturn ? ARROW_OFFSET : 0;
907
+ return (_jsxs(React.Fragment, { children: [_jsx(RoughArrow, { fromX: pos.x + STAGE_WIDTH, fromY: fromY - offset, toX: targetPos.x, toY: toY - offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }), withReturn && (_jsx(RoughArrow, { fromX: targetPos.x, fromY: toY + offset, toX: pos.x + STAGE_WIDTH, toY: fromY + offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }, `pre-${name}-chain`));
908
+ }), destinationPositions.map(({ name, pos: destPos }) => {
909
+ const destConfig = destinations?.[name] ?? {};
910
+ const sourcePos = getDestinationSource(name, destConfig);
911
+ const destCenterY = destPos.y + boxHeight / 2;
912
+ const sourceCenterY = sourcePos.y + boxHeight / 2;
913
+ // Draw straight horizontal arrow (post-transformers are already at destination Y)
914
+ const offset = withReturn ? ARROW_OFFSET : 0;
915
+ return (_jsxs(React.Fragment, { children: [_jsx(RoughArrow, { fromX: sourcePos.x + STAGE_WIDTH, fromY: sourceCenterY - offset, toX: destPos.x, toY: destCenterY - offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }), withReturn && (_jsx(RoughArrow, { fromX: destPos.x, fromY: destCenterY + offset, toX: sourcePos.x + STAGE_WIDTH, toY: sourceCenterY + offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }, `destination-${name}-arrows`));
916
+ }), postTransformerPositions
917
+ .slice(0, -1)
918
+ .map(({ name, pos }, index) => {
919
+ const procConfig = postTransformers?.[name] ?? {};
920
+ // Find next target: next transformer in chain
921
+ const nextProc = postTransformerPositions[index + 1];
922
+ if (!nextProc)
923
+ return null;
924
+ const targetPos = nextProc.pos;
925
+ const fromY = pos.y + boxHeight / 2;
926
+ const toY = targetPos.y + boxHeight / 2;
927
+ const offset = withReturn ? ARROW_OFFSET : 0;
928
+ return (_jsxs(React.Fragment, { children: [_jsx(RoughArrow, { fromX: pos.x + STAGE_WIDTH, fromY: fromY - offset, toX: targetPos.x, toY: toY - offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }), withReturn && (_jsx(RoughArrow, { fromX: targetPos.x, fromY: toY + offset, toX: pos.x + STAGE_WIDTH, toY: fromY + offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }, `post-${name}-chain`));
929
+ }), postTransformerList.length > 0 &&
930
+ (() => {
931
+ const firstPostPos = stages[`post-${postTransformerList[0].name}`];
932
+ const fromY = collectorCenterY;
933
+ const toY = firstPostPos.y + boxHeight / 2;
934
+ const offset = withReturn ? ARROW_OFFSET : 0;
935
+ return (_jsxs(_Fragment, { children: [_jsx(RoughArrow, { fromX: collectorPos.x + STAGE_WIDTH, fromY: fromY - offset, toX: firstPostPos.x, toY: toY - offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }), withReturn && (_jsx(RoughArrow, { fromX: firstPostPos.x, fromY: toY + offset, toX: collectorPos.x + STAGE_WIDTH, toY: fromY + offset, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }));
936
+ })(), afterPositions.map(({ name: destName, pos: afterPos }) => {
937
+ const destPos = stages[`destination-${destName}`];
938
+ if (!destPos)
939
+ return null;
940
+ const destCenterY = destPos.y + boxHeight / 2;
941
+ const afterCenterY = afterPos.y + boxHeight / 2;
942
+ return (_jsx(RoughArrow, { fromX: destPos.x + STAGE_WIDTH, fromY: destCenterY, toX: afterPos.x, toY: afterCenterY, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }, `dest-${destName}-after`));
943
+ }), !hasAnyAfterStage && destinationEntries.length === 1 && (_jsx(RoughArrow, { fromX: stages.destination.x + STAGE_WIDTH, fromY: centerY, toX: totalWidth, toY: centerY, stroke: "var(--flow-edge-stroke, #9ca3af)", centerY: centerY }))] }));
944
+ })(), stageConfigs.map(({ key, config, fillVar, strokeVar, defaultLabel, defaultLink }) => {
945
+ const pos = stages[key];
946
+ const icon = config?.icon;
947
+ const label = config?.label || defaultLabel;
948
+ const text = config?.text;
949
+ const description = config?.description;
950
+ const link = config?.link;
951
+ const stageHighlight = config?.highlight !== false;
952
+ // Calculate label Y position
953
+ // When text exists: label at ~25% from top, text fills remaining space centered
954
+ const labelY = text
955
+ ? pos.y + pos.height * 0.28
956
+ : pos.y + pos.height / 2;
957
+ // Resolve link URL: undefined = default, false = none, string = custom
958
+ const linkUrl = link === false
959
+ ? null
960
+ : typeof link === 'string'
961
+ ? link
962
+ : defaultLink;
963
+ // Content to render (box, label, text, description)
964
+ const stageContent = (_jsxs(_Fragment, { children: [_jsx(RoughRect, { x: pos.x, y: pos.y, width: pos.width, height: pos.height, fill: `var(${fillVar}, #6b7280)`, stroke: stageHighlight
965
+ ? `var(${strokeVar}, #6b7280)`
966
+ : 'var(--flow-edge-stroke, #9ca3af)' }), _jsx("foreignObject", { x: pos.x + 4, y: labelY - layout.labelSize / 2 - 2, width: pos.width - 8, height: layout.labelSize + 4, children: _jsxs("div", { style: {
967
+ display: 'flex',
968
+ alignItems: 'center',
969
+ justifyContent: 'center',
970
+ gap: '6px',
971
+ height: '100%',
972
+ fontSize: layout.labelSize,
973
+ fontWeight: layout.labelWeight,
974
+ fontFamily: 'system-ui, -apple-system, sans-serif',
975
+ color: 'var(--color-text)',
976
+ }, children: [icon && _jsx(Icon, { icon: icon, width: 14, height: 14 }), _jsx("span", { children: label })] }) }), text && (_jsx("foreignObject", { x: pos.x + 4, y: pos.y + pos.height * 0.34, width: pos.width - 8, height: pos.height * 0.62, children: _jsx("div", { style: {
977
+ fontSize: layout.textSize,
978
+ fontWeight: layout.textWeight,
979
+ color: 'var(--color-text)',
980
+ textAlign: 'center',
981
+ fontFamily: 'system-ui, -apple-system, sans-serif',
982
+ lineHeight: 1.3,
983
+ height: '100%',
984
+ display: 'flex',
985
+ alignItems: 'center',
986
+ justifyContent: 'center',
987
+ }, children: text }) })), description && (_jsx("foreignObject", { x: pos.x, y: pos.y + pos.height + 8, width: STAGE_WIDTH, height: descriptionHeight, children: _jsx("div", { style: {
988
+ fontSize: layout.descriptionSize,
989
+ color: 'var(--color-text-muted)',
990
+ textAlign: 'center',
991
+ fontFamily: 'system-ui, -apple-system, sans-serif',
992
+ lineHeight: 1.3,
993
+ }, children: description }) }))] }));
994
+ // Wrap in link if URL is set
995
+ return linkUrl ? (_jsx("a", { href: linkUrl, style: { cursor: 'pointer', textDecoration: 'none' }, children: stageContent }, key)) : (_jsx("g", { children: stageContent }, key));
996
+ }), markers?.map((marker, index) => {
997
+ const pos = getMarkerPosition(marker.position, stages, centerY, totalWidth);
998
+ // Skip markers for stages that don't exist
999
+ if (!pos)
1000
+ return null;
1001
+ const id = marker.id ?? String(index + 1);
1002
+ return (_jsx(Marker, { x: pos.x, y: pos.y, text: id }, `marker-${index}`));
1003
+ }), legendItems.length > 0 && (_jsx("foreignObject", { x: PADDING_X, y: baseY + stackedHeight + belowBoxHeight + 4, width: totalWidth - PADDING_X * 2, height: LEGEND_LINE_HEIGHT * estimatedLines, children: _jsx("div", { style: {
1004
+ fontSize: 11,
1005
+ fontFamily: 'system-ui, -apple-system, sans-serif',
1006
+ color: 'var(--color-text-muted)',
1007
+ lineHeight: 1.6,
1008
+ }, children: legendItems.map((item, index) => {
1009
+ const id = item.id ?? String((markers?.indexOf(item) ?? index) + 1);
1010
+ return (_jsxs("span", { children: [_jsx("span", { style: {
1011
+ width: 12,
1012
+ height: 12,
1013
+ borderRadius: '50%',
1014
+ background: 'var(--flow-marker-fill, #dc2626)',
1015
+ display: 'inline-flex',
1016
+ alignItems: 'center',
1017
+ justifyContent: 'center',
1018
+ fontSize: 8,
1019
+ fontWeight: 600,
1020
+ color: 'var(--flow-marker-text, #ffffff)',
1021
+ verticalAlign: 'middle',
1022
+ marginRight: 4,
1023
+ position: 'relative',
1024
+ top: -1,
1025
+ }, children: id }), _jsx("span", { style: { marginRight: 10 }, children: item.text })] }, `legend-${index}`));
1026
+ }) }) }))] }) }));
1027
+ }
1028
+ //# sourceMappingURL=FlowMap.js.map