@mindlogic-ai/logician-ui 3.1.0-alpha.9 → 3.2.0-alpha.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 (396) hide show
  1. package/dist/components/Icon/_constants/iconList.d.ts +1 -1
  2. package/dist/components/Icon/_constants/iconList.d.ts.map +1 -1
  3. package/dist/components/Icon/_constants/iconList.js +18 -0
  4. package/dist/components/Icon/_constants/iconList.js.map +1 -1
  5. package/dist/components/Icon/_constants/iconList.mjs +20 -2
  6. package/dist/components/Icon/_constants/iconList.mjs.map +1 -1
  7. package/dist/components/Icon/index.d.ts +2 -1
  8. package/dist/components/Icon/index.d.ts.map +1 -1
  9. package/dist/components/Icon/index.js +20 -1
  10. package/dist/components/Icon/index.js.map +1 -1
  11. package/dist/components/Icon/index.mjs +4 -2
  12. package/dist/components/Icon/index.mjs.map +1 -1
  13. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  14. package/dist/components/SegmentedControl/SegmentedControl.js +20 -4
  15. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  16. package/dist/components/SegmentedControl/SegmentedControl.mjs +20 -4
  17. package/dist/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  18. package/dist/components/Workflow/Workflow.d.ts +3 -0
  19. package/dist/components/Workflow/Workflow.d.ts.map +1 -0
  20. package/dist/components/Workflow/Workflow.js +109 -0
  21. package/dist/components/Workflow/Workflow.js.map +1 -0
  22. package/dist/components/Workflow/Workflow.mjs +107 -0
  23. package/dist/components/Workflow/Workflow.mjs.map +1 -0
  24. package/dist/components/Workflow/Workflow.translations.json.js +164 -0
  25. package/dist/components/Workflow/Workflow.translations.json.js.map +1 -0
  26. package/dist/components/Workflow/Workflow.translations.json.mjs +138 -0
  27. package/dist/components/Workflow/Workflow.translations.json.mjs.map +1 -0
  28. package/dist/components/Workflow/Workflow.types.d.ts +435 -0
  29. package/dist/components/Workflow/Workflow.types.d.ts.map +1 -0
  30. package/dist/components/Workflow/Workflow.types.js +19 -0
  31. package/dist/components/Workflow/Workflow.types.js.map +1 -0
  32. package/dist/components/Workflow/Workflow.types.mjs +16 -0
  33. package/dist/components/Workflow/Workflow.types.mjs.map +1 -0
  34. package/dist/components/Workflow/WorkflowContext/WorkflowContext.d.ts +10 -0
  35. package/dist/components/Workflow/WorkflowContext/WorkflowContext.d.ts.map +1 -0
  36. package/dist/components/Workflow/WorkflowContext/WorkflowContext.js +163 -0
  37. package/dist/components/Workflow/WorkflowContext/WorkflowContext.js.map +1 -0
  38. package/dist/components/Workflow/WorkflowContext/WorkflowContext.mjs +159 -0
  39. package/dist/components/Workflow/WorkflowContext/WorkflowContext.mjs.map +1 -0
  40. package/dist/components/Workflow/WorkflowContext/WorkflowContext.types.d.ts +117 -0
  41. package/dist/components/Workflow/WorkflowContext/WorkflowContext.types.d.ts.map +1 -0
  42. package/dist/components/Workflow/WorkflowContext/index.d.ts +3 -0
  43. package/dist/components/Workflow/WorkflowContext/index.d.ts.map +1 -0
  44. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.d.ts +19 -0
  45. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.d.ts.map +1 -0
  46. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.js +44 -0
  47. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.js.map +1 -0
  48. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.mjs +42 -0
  49. package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.mjs.map +1 -0
  50. package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts +10 -0
  51. package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts.map +1 -0
  52. package/dist/components/Workflow/canvas/Canvas/Canvas.js +531 -0
  53. package/dist/components/Workflow/canvas/Canvas/Canvas.js.map +1 -0
  54. package/dist/components/Workflow/canvas/Canvas/Canvas.mjs +529 -0
  55. package/dist/components/Workflow/canvas/Canvas/Canvas.mjs.map +1 -0
  56. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.d.ts +53 -0
  57. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.d.ts.map +1 -0
  58. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.js +96 -0
  59. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.js.map +1 -0
  60. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.mjs +93 -0
  61. package/dist/components/Workflow/canvas/Canvas/Canvas.styles.mjs.map +1 -0
  62. package/dist/components/Workflow/canvas/Canvas/CanvasControls.d.ts +27 -0
  63. package/dist/components/Workflow/canvas/Canvas/CanvasControls.d.ts.map +1 -0
  64. package/dist/components/Workflow/canvas/Canvas/CanvasControls.js +70 -0
  65. package/dist/components/Workflow/canvas/Canvas/CanvasControls.js.map +1 -0
  66. package/dist/components/Workflow/canvas/Canvas/CanvasControls.mjs +68 -0
  67. package/dist/components/Workflow/canvas/Canvas/CanvasControls.mjs.map +1 -0
  68. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.d.ts +10 -0
  69. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.d.ts.map +1 -0
  70. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.js +106 -0
  71. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.js.map +1 -0
  72. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.mjs +104 -0
  73. package/dist/components/Workflow/canvas/Canvas/LabeledEdge.mjs.map +1 -0
  74. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.d.ts +13 -0
  75. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.d.ts.map +1 -0
  76. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.js +18 -0
  77. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.js.map +1 -0
  78. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.mjs +16 -0
  79. package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.mjs.map +1 -0
  80. package/dist/components/Workflow/canvas/Canvas/index.d.ts +2 -0
  81. package/dist/components/Workflow/canvas/Canvas/index.d.ts.map +1 -0
  82. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.d.ts +30 -0
  83. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.d.ts.map +1 -0
  84. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.js +34 -0
  85. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.js.map +1 -0
  86. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.mjs +32 -0
  87. package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.mjs.map +1 -0
  88. package/dist/components/Workflow/canvas/CollapsibleSection/index.d.ts +2 -0
  89. package/dist/components/Workflow/canvas/CollapsibleSection/index.d.ts.map +1 -0
  90. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.d.ts +37 -0
  91. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.d.ts.map +1 -0
  92. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.js +33 -0
  93. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.js.map +1 -0
  94. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.mjs +31 -0
  95. package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.mjs.map +1 -0
  96. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.d.ts +16 -0
  97. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.d.ts.map +1 -0
  98. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.js +54 -0
  99. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.js.map +1 -0
  100. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.mjs +52 -0
  101. package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.mjs.map +1 -0
  102. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.d.ts +27 -0
  103. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.d.ts.map +1 -0
  104. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.js +178 -0
  105. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.js.map +1 -0
  106. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.mjs +176 -0
  107. package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.mjs.map +1 -0
  108. package/dist/components/Workflow/canvas/DrawerShell/index.d.ts +3 -0
  109. package/dist/components/Workflow/canvas/DrawerShell/index.d.ts.map +1 -0
  110. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.d.ts +12 -0
  111. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.d.ts.map +1 -0
  112. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.js +68 -0
  113. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.js.map +1 -0
  114. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.mjs +66 -0
  115. package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.mjs.map +1 -0
  116. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.d.ts +19 -0
  117. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.d.ts.map +1 -0
  118. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.js +35 -0
  119. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.js.map +1 -0
  120. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.mjs +32 -0
  121. package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.mjs.map +1 -0
  122. package/dist/components/Workflow/canvas/EdgeInspector/index.d.ts +3 -0
  123. package/dist/components/Workflow/canvas/EdgeInspector/index.d.ts.map +1 -0
  124. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.d.ts +54 -0
  125. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.d.ts.map +1 -0
  126. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.js +56 -0
  127. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.js.map +1 -0
  128. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.mjs +54 -0
  129. package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.mjs.map +1 -0
  130. package/dist/components/Workflow/canvas/FieldWrapper/index.d.ts +3 -0
  131. package/dist/components/Workflow/canvas/FieldWrapper/index.d.ts.map +1 -0
  132. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.d.ts +16 -0
  133. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.d.ts.map +1 -0
  134. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.js +25 -0
  135. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.js.map +1 -0
  136. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.mjs +22 -0
  137. package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.mjs.map +1 -0
  138. package/dist/components/Workflow/canvas/FloatingCard/index.d.ts +2 -0
  139. package/dist/components/Workflow/canvas/FloatingCard/index.d.ts.map +1 -0
  140. package/dist/components/Workflow/canvas/GenericNode/GenericNode.d.ts +14 -0
  141. package/dist/components/Workflow/canvas/GenericNode/GenericNode.d.ts.map +1 -0
  142. package/dist/components/Workflow/canvas/GenericNode/GenericNode.js +61 -0
  143. package/dist/components/Workflow/canvas/GenericNode/GenericNode.js.map +1 -0
  144. package/dist/components/Workflow/canvas/GenericNode/GenericNode.mjs +59 -0
  145. package/dist/components/Workflow/canvas/GenericNode/GenericNode.mjs.map +1 -0
  146. package/dist/components/Workflow/canvas/GenericNode/GenericNode.types.d.ts +11 -0
  147. package/dist/components/Workflow/canvas/GenericNode/GenericNode.types.d.ts.map +1 -0
  148. package/dist/components/Workflow/canvas/GenericNode/index.d.ts +3 -0
  149. package/dist/components/Workflow/canvas/GenericNode/index.d.ts.map +1 -0
  150. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.d.ts +15 -0
  151. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.d.ts.map +1 -0
  152. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.js +145 -0
  153. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.js.map +1 -0
  154. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.mjs +143 -0
  155. package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.mjs.map +1 -0
  156. package/dist/components/Workflow/canvas/GraphErrorBanner/index.d.ts +2 -0
  157. package/dist/components/Workflow/canvas/GraphErrorBanner/index.d.ts.map +1 -0
  158. package/dist/components/Workflow/canvas/IconTile/IconTile.d.ts +10 -0
  159. package/dist/components/Workflow/canvas/IconTile/IconTile.d.ts.map +1 -0
  160. package/dist/components/Workflow/canvas/IconTile/IconTile.js +21 -0
  161. package/dist/components/Workflow/canvas/IconTile/IconTile.js.map +1 -0
  162. package/dist/components/Workflow/canvas/IconTile/IconTile.mjs +19 -0
  163. package/dist/components/Workflow/canvas/IconTile/IconTile.mjs.map +1 -0
  164. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.d.ts +18 -0
  165. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.d.ts.map +1 -0
  166. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.js +40 -0
  167. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.js.map +1 -0
  168. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.mjs +37 -0
  169. package/dist/components/Workflow/canvas/IconTile/IconTile.styles.mjs.map +1 -0
  170. package/dist/components/Workflow/canvas/IconTile/IconTile.types.d.ts +15 -0
  171. package/dist/components/Workflow/canvas/IconTile/IconTile.types.d.ts.map +1 -0
  172. package/dist/components/Workflow/canvas/IconTile/index.d.ts +4 -0
  173. package/dist/components/Workflow/canvas/IconTile/index.d.ts.map +1 -0
  174. package/dist/components/Workflow/canvas/IssueList/IssueList.d.ts +24 -0
  175. package/dist/components/Workflow/canvas/IssueList/IssueList.d.ts.map +1 -0
  176. package/dist/components/Workflow/canvas/IssueList/IssueList.js +34 -0
  177. package/dist/components/Workflow/canvas/IssueList/IssueList.js.map +1 -0
  178. package/dist/components/Workflow/canvas/IssueList/IssueList.mjs +32 -0
  179. package/dist/components/Workflow/canvas/IssueList/IssueList.mjs.map +1 -0
  180. package/dist/components/Workflow/canvas/IssueList/index.d.ts +2 -0
  181. package/dist/components/Workflow/canvas/IssueList/index.d.ts.map +1 -0
  182. package/dist/components/Workflow/canvas/NodePalette/NodePalette.d.ts +9 -0
  183. package/dist/components/Workflow/canvas/NodePalette/NodePalette.d.ts.map +1 -0
  184. package/dist/components/Workflow/canvas/NodePalette/NodePalette.js +94 -0
  185. package/dist/components/Workflow/canvas/NodePalette/NodePalette.js.map +1 -0
  186. package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs +92 -0
  187. package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs.map +1 -0
  188. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.d.ts +7 -0
  189. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.d.ts.map +1 -0
  190. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.js +13 -0
  191. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.js.map +1 -0
  192. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.mjs +10 -0
  193. package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.mjs.map +1 -0
  194. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.d.ts +10 -0
  195. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.d.ts.map +1 -0
  196. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.js +28 -0
  197. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.js.map +1 -0
  198. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.mjs +26 -0
  199. package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.mjs.map +1 -0
  200. package/dist/components/Workflow/canvas/NodePalette/index.d.ts +4 -0
  201. package/dist/components/Workflow/canvas/NodePalette/index.d.ts.map +1 -0
  202. package/dist/components/Workflow/canvas/NodeShell/NodeShell.d.ts +3 -0
  203. package/dist/components/Workflow/canvas/NodeShell/NodeShell.d.ts.map +1 -0
  204. package/dist/components/Workflow/canvas/NodeShell/NodeShell.js +137 -0
  205. package/dist/components/Workflow/canvas/NodeShell/NodeShell.js.map +1 -0
  206. package/dist/components/Workflow/canvas/NodeShell/NodeShell.mjs +135 -0
  207. package/dist/components/Workflow/canvas/NodeShell/NodeShell.mjs.map +1 -0
  208. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.d.ts +66 -0
  209. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.d.ts.map +1 -0
  210. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.js +87 -0
  211. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.js.map +1 -0
  212. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.mjs +77 -0
  213. package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.mjs.map +1 -0
  214. package/dist/components/Workflow/canvas/NodeShell/NodeShell.types.d.ts +35 -0
  215. package/dist/components/Workflow/canvas/NodeShell/NodeShell.types.d.ts.map +1 -0
  216. package/dist/components/Workflow/canvas/NodeShell/index.d.ts +4 -0
  217. package/dist/components/Workflow/canvas/NodeShell/index.d.ts.map +1 -0
  218. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.d.ts +15 -0
  219. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.d.ts.map +1 -0
  220. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.js +14 -0
  221. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.js.map +1 -0
  222. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.mjs +12 -0
  223. package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.mjs.map +1 -0
  224. package/dist/components/Workflow/canvas/SeverityDot/index.d.ts +2 -0
  225. package/dist/components/Workflow/canvas/SeverityDot/index.d.ts.map +1 -0
  226. package/dist/components/Workflow/canvas/issueSeverity.d.ts +23 -0
  227. package/dist/components/Workflow/canvas/issueSeverity.d.ts.map +1 -0
  228. package/dist/components/Workflow/canvas/issueSeverity.js +51 -0
  229. package/dist/components/Workflow/canvas/issueSeverity.js.map +1 -0
  230. package/dist/components/Workflow/canvas/issueSeverity.mjs +47 -0
  231. package/dist/components/Workflow/canvas/issueSeverity.mjs.map +1 -0
  232. package/dist/components/Workflow/canvas/useFieldFocusRequest.d.ts +14 -0
  233. package/dist/components/Workflow/canvas/useFieldFocusRequest.d.ts.map +1 -0
  234. package/dist/components/Workflow/canvas/useFieldFocusRequest.js +48 -0
  235. package/dist/components/Workflow/canvas/useFieldFocusRequest.js.map +1 -0
  236. package/dist/components/Workflow/canvas/useFieldFocusRequest.mjs +46 -0
  237. package/dist/components/Workflow/canvas/useFieldFocusRequest.mjs.map +1 -0
  238. package/dist/components/Workflow/canvas/workflowLabelProps.d.ts +12 -0
  239. package/dist/components/Workflow/canvas/workflowLabelProps.d.ts.map +1 -0
  240. package/dist/components/Workflow/canvas/workflowLabelProps.js +17 -0
  241. package/dist/components/Workflow/canvas/workflowLabelProps.js.map +1 -0
  242. package/dist/components/Workflow/canvas/workflowLabelProps.mjs +15 -0
  243. package/dist/components/Workflow/canvas/workflowLabelProps.mjs.map +1 -0
  244. package/dist/components/Workflow/connectionRules.d.ts +59 -0
  245. package/dist/components/Workflow/connectionRules.d.ts.map +1 -0
  246. package/dist/components/Workflow/connectionRules.js +150 -0
  247. package/dist/components/Workflow/connectionRules.js.map +1 -0
  248. package/dist/components/Workflow/connectionRules.mjs +145 -0
  249. package/dist/components/Workflow/connectionRules.mjs.map +1 -0
  250. package/dist/components/Workflow/createNode.d.ts +27 -0
  251. package/dist/components/Workflow/createNode.d.ts.map +1 -0
  252. package/dist/components/Workflow/createNode.js +66 -0
  253. package/dist/components/Workflow/createNode.js.map +1 -0
  254. package/dist/components/Workflow/createNode.mjs +62 -0
  255. package/dist/components/Workflow/createNode.mjs.map +1 -0
  256. package/dist/components/Workflow/graphHistory.d.ts +23 -0
  257. package/dist/components/Workflow/graphHistory.d.ts.map +1 -0
  258. package/dist/components/Workflow/graphHistory.js +73 -0
  259. package/dist/components/Workflow/graphHistory.js.map +1 -0
  260. package/dist/components/Workflow/graphHistory.mjs +70 -0
  261. package/dist/components/Workflow/graphHistory.mjs.map +1 -0
  262. package/dist/components/Workflow/graphObserver.d.ts +13 -0
  263. package/dist/components/Workflow/graphObserver.d.ts.map +1 -0
  264. package/dist/components/Workflow/graphObserver.js +11 -0
  265. package/dist/components/Workflow/graphObserver.js.map +1 -0
  266. package/dist/components/Workflow/graphObserver.mjs +8 -0
  267. package/dist/components/Workflow/graphObserver.mjs.map +1 -0
  268. package/dist/components/Workflow/graphReducer.d.ts +75 -0
  269. package/dist/components/Workflow/graphReducer.d.ts.map +1 -0
  270. package/dist/components/Workflow/graphReducer.js +122 -0
  271. package/dist/components/Workflow/graphReducer.js.map +1 -0
  272. package/dist/components/Workflow/graphReducer.mjs +119 -0
  273. package/dist/components/Workflow/graphReducer.mjs.map +1 -0
  274. package/dist/components/Workflow/index.d.ts +22 -0
  275. package/dist/components/Workflow/index.d.ts.map +1 -0
  276. package/dist/components/Workflow/layout/autoLayout.d.ts +49 -0
  277. package/dist/components/Workflow/layout/autoLayout.d.ts.map +1 -0
  278. package/dist/components/Workflow/layout/autoLayout.js +149 -0
  279. package/dist/components/Workflow/layout/autoLayout.js.map +1 -0
  280. package/dist/components/Workflow/layout/autoLayout.mjs +146 -0
  281. package/dist/components/Workflow/layout/autoLayout.mjs.map +1 -0
  282. package/dist/components/Workflow/stories/toyNodeTypes.d.ts +40 -0
  283. package/dist/components/Workflow/stories/toyNodeTypes.d.ts.map +1 -0
  284. package/dist/components/Workflow/useWorkflowIssueMessage.d.ts +15 -0
  285. package/dist/components/Workflow/useWorkflowIssueMessage.d.ts.map +1 -0
  286. package/dist/components/Workflow/useWorkflowIssueMessage.js +45 -0
  287. package/dist/components/Workflow/useWorkflowIssueMessage.js.map +1 -0
  288. package/dist/components/Workflow/useWorkflowIssueMessage.mjs +43 -0
  289. package/dist/components/Workflow/useWorkflowIssueMessage.mjs.map +1 -0
  290. package/dist/components/Workflow/useWorkflowKeyboard.d.ts +10 -0
  291. package/dist/components/Workflow/useWorkflowKeyboard.d.ts.map +1 -0
  292. package/dist/components/Workflow/useWorkflowKeyboard.js +116 -0
  293. package/dist/components/Workflow/useWorkflowKeyboard.js.map +1 -0
  294. package/dist/components/Workflow/useWorkflowKeyboard.mjs +114 -0
  295. package/dist/components/Workflow/useWorkflowKeyboard.mjs.map +1 -0
  296. package/dist/icons.js +17 -0
  297. package/dist/icons.js.map +1 -1
  298. package/dist/icons.mjs +1 -1
  299. package/dist/index.d.ts +1 -0
  300. package/dist/index.d.ts.map +1 -1
  301. package/dist/index.js +38 -0
  302. package/dist/index.js.map +1 -1
  303. package/dist/index.mjs +14 -0
  304. package/dist/index.mjs.map +1 -1
  305. package/dist/test-support/setup.d.ts +5 -0
  306. package/dist/test-support/setup.d.ts.map +1 -0
  307. package/dist/theme/colors.d.ts +196 -44
  308. package/dist/theme/colors.d.ts.map +1 -1
  309. package/dist/theme/colors.js +184 -22
  310. package/dist/theme/colors.js.map +1 -1
  311. package/dist/theme/colors.mjs +184 -22
  312. package/dist/theme/colors.mjs.map +1 -1
  313. package/dist/theme/global.d.ts.map +1 -1
  314. package/dist/theme/global.js +30 -2
  315. package/dist/theme/global.js.map +1 -1
  316. package/dist/theme/global.mjs +30 -2
  317. package/dist/theme/global.mjs.map +1 -1
  318. package/package.json +10 -2
  319. package/src/components/Icon/_constants/iconList.ts +35 -0
  320. package/src/components/Icon/index.tsx +20 -0
  321. package/src/components/SegmentedControl/SegmentedControl.tsx +21 -4
  322. package/src/components/Workflow/README.md +362 -0
  323. package/src/components/Workflow/Workflow.translations.json +112 -0
  324. package/src/components/Workflow/Workflow.tsx +189 -0
  325. package/src/components/Workflow/Workflow.types.ts +496 -0
  326. package/src/components/Workflow/WorkflowContext/WorkflowContext.tsx +215 -0
  327. package/src/components/Workflow/WorkflowContext/WorkflowContext.types.ts +122 -0
  328. package/src/components/Workflow/WorkflowContext/index.ts +10 -0
  329. package/src/components/Workflow/WorkflowContext/workflowSelection.test.tsx +93 -0
  330. package/src/components/Workflow/canvas/Canvas/BranchLabelBadge.tsx +69 -0
  331. package/src/components/Workflow/canvas/Canvas/Canvas.styles.ts +91 -0
  332. package/src/components/Workflow/canvas/Canvas/Canvas.tsx +773 -0
  333. package/src/components/Workflow/canvas/Canvas/CanvasControls.tsx +178 -0
  334. package/src/components/Workflow/canvas/Canvas/LabeledEdge.tsx +198 -0
  335. package/src/components/Workflow/canvas/Canvas/edgeLabelVariant.test.ts +26 -0
  336. package/src/components/Workflow/canvas/Canvas/edgeLabelVariant.ts +23 -0
  337. package/src/components/Workflow/canvas/Canvas/index.ts +1 -0
  338. package/src/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.tsx +96 -0
  339. package/src/components/Workflow/canvas/CollapsibleSection/index.ts +4 -0
  340. package/src/components/Workflow/canvas/DrawerShell/DrawerHeader.tsx +104 -0
  341. package/src/components/Workflow/canvas/DrawerShell/DrawerIssues.tsx +115 -0
  342. package/src/components/Workflow/canvas/DrawerShell/DrawerShell.tsx +408 -0
  343. package/src/components/Workflow/canvas/DrawerShell/index.ts +2 -0
  344. package/src/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.tsx +135 -0
  345. package/src/components/Workflow/canvas/EdgeInspector/endpointTitle.ts +38 -0
  346. package/src/components/Workflow/canvas/EdgeInspector/index.ts +2 -0
  347. package/src/components/Workflow/canvas/FieldWrapper/FieldWrapper.tsx +118 -0
  348. package/src/components/Workflow/canvas/FieldWrapper/index.ts +6 -0
  349. package/src/components/Workflow/canvas/FloatingCard/FloatingCard.tsx +37 -0
  350. package/src/components/Workflow/canvas/FloatingCard/index.ts +1 -0
  351. package/src/components/Workflow/canvas/GenericNode/GenericNode.tsx +114 -0
  352. package/src/components/Workflow/canvas/GenericNode/GenericNode.types.ts +10 -0
  353. package/src/components/Workflow/canvas/GenericNode/index.ts +5 -0
  354. package/src/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.tsx +284 -0
  355. package/src/components/Workflow/canvas/GraphErrorBanner/index.ts +1 -0
  356. package/src/components/Workflow/canvas/IconTile/IconTile.styles.ts +40 -0
  357. package/src/components/Workflow/canvas/IconTile/IconTile.tsx +36 -0
  358. package/src/components/Workflow/canvas/IconTile/IconTile.types.ts +13 -0
  359. package/src/components/Workflow/canvas/IconTile/index.ts +7 -0
  360. package/src/components/Workflow/canvas/IssueList/IssueList.tsx +84 -0
  361. package/src/components/Workflow/canvas/IssueList/index.ts +1 -0
  362. package/src/components/Workflow/canvas/NodePalette/NodePalette.styles.ts +7 -0
  363. package/src/components/Workflow/canvas/NodePalette/NodePalette.tsx +180 -0
  364. package/src/components/Workflow/canvas/NodePalette/NodePaletteToggle.tsx +39 -0
  365. package/src/components/Workflow/canvas/NodePalette/index.ts +3 -0
  366. package/src/components/Workflow/canvas/NodeShell/NodeShell.styles.ts +84 -0
  367. package/src/components/Workflow/canvas/NodeShell/NodeShell.tsx +321 -0
  368. package/src/components/Workflow/canvas/NodeShell/NodeShell.types.ts +45 -0
  369. package/src/components/Workflow/canvas/NodeShell/index.ts +8 -0
  370. package/src/components/Workflow/canvas/SeverityDot/SeverityDot.tsx +33 -0
  371. package/src/components/Workflow/canvas/SeverityDot/index.ts +1 -0
  372. package/src/components/Workflow/canvas/issueSeverity.ts +48 -0
  373. package/src/components/Workflow/canvas/useFieldFocusRequest.ts +54 -0
  374. package/src/components/Workflow/canvas/workflowLabelProps.ts +11 -0
  375. package/src/components/Workflow/connectionRules.test.ts +326 -0
  376. package/src/components/Workflow/connectionRules.ts +190 -0
  377. package/src/components/Workflow/createNode.test.ts +61 -0
  378. package/src/components/Workflow/createNode.ts +67 -0
  379. package/src/components/Workflow/graphHistory.test.ts +178 -0
  380. package/src/components/Workflow/graphHistory.ts +91 -0
  381. package/src/components/Workflow/graphObserver.ts +21 -0
  382. package/src/components/Workflow/graphReducer.test.ts +314 -0
  383. package/src/components/Workflow/graphReducer.ts +196 -0
  384. package/src/components/Workflow/index.ts +74 -0
  385. package/src/components/Workflow/layout/autoLayout.test.ts +170 -0
  386. package/src/components/Workflow/layout/autoLayout.ts +200 -0
  387. package/src/components/Workflow/stories/Workflow.stories.tsx +111 -0
  388. package/src/components/Workflow/stories/toyNodeTypes.tsx +146 -0
  389. package/src/components/Workflow/useWorkflowIssueMessage.test.ts +101 -0
  390. package/src/components/Workflow/useWorkflowIssueMessage.ts +49 -0
  391. package/src/components/Workflow/useWorkflowKeyboard.ts +126 -0
  392. package/src/index.ts +1 -0
  393. package/src/test-support/setup.ts +11 -0
  394. package/src/theme/SemanticTokens.mdx +61 -7
  395. package/src/theme/colors.ts +216 -26
  396. package/src/theme/global.ts +31 -2
@@ -0,0 +1,145 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var react$1 = require('@chakra-ui/react');
7
+ var react = require('@xyflow/react');
8
+ var index = require('../../../Icon/index.js');
9
+ var Spinner = require('../../../Spinner/Spinner.js');
10
+ require('../../../Typography/H1.js');
11
+ require('../../../Typography/H2.js');
12
+ require('../../../Typography/H3.js');
13
+ require('../../../Typography/H4.js');
14
+ require('../../../Typography/H5.js');
15
+ require('../../../Typography/Link.js');
16
+ var Subtext = require('../../../Typography/Subtext.js');
17
+ require('../../../Typography/Subtitle.js');
18
+ var Text = require('../../../Typography/Text.js');
19
+ var useWorkflowIssueMessage = require('../../useWorkflowIssueMessage.js');
20
+ var WorkflowContext = require('../../WorkflowContext/WorkflowContext.js');
21
+ require('../../../Input/Input.js');
22
+ require('../../../Toast/Toaster.js');
23
+ var endpointTitle = require('../EdgeInspector/endpointTitle.js');
24
+ var IssueList = require('../IssueList/IssueList.js');
25
+
26
+ const NODELESS_GROUP = '__graph__';
27
+ // Same fallback chain as everywhere else (instance title → kind label → id),
28
+ // so an unnamed node groups under "End", not its raw `end_1` id.
29
+ const getNodeTitle = (node, def) => endpointTitle.endpointTitle(node, def ?? undefined, node.id);
30
+ /**
31
+ * Floating banner listing the current graph's validation issues — both the
32
+ * live validator output and backend `INVALID_GRAPH` errors fed in via
33
+ * `externalIssues`. Issues group by node (then severity); clicking an issue
34
+ * selects and pans to its node. Hidden in read-only mode (the Behavior-tab
35
+ * preview).
36
+ *
37
+ * `paletteToggleVisible` shifts the banner clear of the floating `+` palette
38
+ * toggle, which docks in the same top-left corner once the palette is
39
+ * collapsed — otherwise the two overlays would overlap.
40
+ */
41
+ function GraphErrorBanner({ paletteToggleVisible = false, }) {
42
+ const { issues, graph, readOnly, validating, getNodeType, setSelectedNodeId, revealInspector, requestFieldFocus, } = WorkflowContext.useWorkflow();
43
+ const { fitView } = react.useReactFlow();
44
+ const translate = WorkflowContext.useWorkflowTranslate();
45
+ const resolveIssueMessage = useWorkflowIssueMessage.useWorkflowIssueMessage();
46
+ const [open, setOpen] = React.useState(false);
47
+ // Stringify counts before interpolation — see `useWorkflowIssueMessage`
48
+ // for the underlying `useTranslate` quirk this guards against.
49
+ const summarize = (errorCount, warningCount) => {
50
+ const parts = [];
51
+ if (errorCount > 0) {
52
+ parts.push(translate('workflow_issues_summary_errors', {
53
+ count: String(errorCount),
54
+ }));
55
+ }
56
+ if (warningCount > 0) {
57
+ parts.push(translate('workflow_issues_summary_warnings', {
58
+ count: String(warningCount),
59
+ }));
60
+ }
61
+ return parts.join(', ');
62
+ };
63
+ const { errorCount, warningCount, groups } = React.useMemo(() => {
64
+ let errors = 0;
65
+ let warnings = 0;
66
+ // Preserve insertion order from `graph.nodes` so the dropdown matches
67
+ // canvas left-to-right reading order; graph-wide issues are appended last.
68
+ const byKey = new Map();
69
+ const nodeById = new Map(graph.nodes.map((n) => [n.id, n]));
70
+ const getOrCreate = (key) => {
71
+ let g = byKey.get(key);
72
+ if (!g) {
73
+ const node = nodeById.get(key) ?? null;
74
+ g = {
75
+ key,
76
+ node,
77
+ def: node ? (getNodeType(node.kind) ?? null) : null,
78
+ errors: [],
79
+ warnings: [],
80
+ };
81
+ byKey.set(key, g);
82
+ }
83
+ return g;
84
+ };
85
+ for (const issue of issues) {
86
+ if (issue.severity === 'error')
87
+ errors += 1;
88
+ else
89
+ warnings += 1;
90
+ const key = issue.nodeId ?? NODELESS_GROUP;
91
+ const g = getOrCreate(key);
92
+ if (issue.severity === 'error')
93
+ g.errors.push(issue);
94
+ else
95
+ g.warnings.push(issue);
96
+ }
97
+ // Order: graph-wide bucket first (cycle / unreachable / etc. block the
98
+ // whole canvas and deserve top billing), then per-node buckets in
99
+ // canvas order.
100
+ const ordered = [];
101
+ const graphWide = byKey.get(NODELESS_GROUP);
102
+ if (graphWide)
103
+ ordered.push(graphWide);
104
+ for (const node of graph.nodes) {
105
+ const g = byKey.get(node.id);
106
+ if (g)
107
+ ordered.push(g);
108
+ }
109
+ return { errorCount: errors, warningCount: warnings, groups: ordered };
110
+ }, [issues, graph.nodes, getNodeType]);
111
+ // Noise guard: only surface the "validating" affordance when we're
112
+ // re-checking a graph that ALREADY shows issues (the retained `displayIssues`
113
+ // the host passes in during a save). A clean graph (no issues) stays hidden
114
+ // mid-save — the header save-status spinner already covers that case — so
115
+ // editing a valid graph never flashes a banner on every keystroke.
116
+ if (readOnly || issues.length === 0)
117
+ return null;
118
+ const showValidating = validating;
119
+ const jumpToNode = (nodeId) => {
120
+ if (!nodeId || !graph.nodes.some((n) => n.id === nodeId))
121
+ return;
122
+ setSelectedNodeId(nodeId);
123
+ // revealInspector so jumping to a node from the banner also restores the
124
+ // inspector when it's parked (test mode), not just sets the drawer target.
125
+ revealInspector({ type: 'node', id: nodeId });
126
+ void fitView({ nodes: [{ id: nodeId }], duration: 400, maxZoom: 1.2 });
127
+ };
128
+ const jumpToIssue = (issue) => {
129
+ if (!issue.nodeId)
130
+ return;
131
+ jumpToNode(issue.nodeId);
132
+ if (issue.fieldKey) {
133
+ requestFieldFocus(issue.nodeId, issue.fieldKey);
134
+ }
135
+ };
136
+ return (jsxRuntime.jsxs(react$1.Box, { position: "absolute", top: 3,
137
+ // Clear the floating `+` palette toggle (md IconButton at left={4}) when
138
+ // it's showing, so the banner sits beside it rather than under it.
139
+ left: paletteToggleVisible ? 16 : 3, zIndex: 5, maxW: "md", bg: "bg.surface", borderWidth: "1px", borderColor: errorCount > 0 ? 'danger.main' : 'warning.main', borderRadius: "md", boxShadow: "sm", overflow: "hidden", children: [showValidating ? (jsxRuntime.jsxs(react$1.Flex, { align: "center", gap: 2, px: 3, py: 2, bg: "slate.50", borderBottomWidth: "1px", borderColor: "slate.200", children: [jsxRuntime.jsx(Spinner.Spinner, { size: "xs" }), jsxRuntime.jsx(Subtext.Subtext, { fontWeight: "semibold", color: "slate.1100", children: translate('workflow_issues_validating') })] })) : null, jsxRuntime.jsxs(react$1.Box, { as: "button", w: "100%", display: "flex", alignItems: "center", justifyContent: "space-between", gap: 3, px: 3, py: 2, bg: "transparent", border: "none", cursor: "pointer", opacity: showValidating ? 0.6 : 1, transition: "opacity 0.15s", onClick: () => setOpen((o) => !o), children: [jsxRuntime.jsx(Text.Text, { fontSize: "sm", fontWeight: "semibold", color: "slate.1300", children: summarize(errorCount, warningCount) }), jsxRuntime.jsx(index.TbChevronDown, { boxSize: "xs", color: "slate.900", transform: open ? 'rotate(180deg)' : 'none', transition: "transform 0.15s" })] }), open ? (jsxRuntime.jsx(react$1.VStack, { align: "stretch", gap: 0, maxH: "80", overflowY: "auto", opacity: showValidating ? 0.6 : 1, transition: "opacity 0.15s", borderTopWidth: "1px", borderColor: "slate.200", children: groups.map((group, gi) => (jsxRuntime.jsxs(react$1.Box, { borderTopWidth: gi === 0 ? 0 : '1px', borderColor: "slate.200", children: [jsxRuntime.jsxs(react$1.Flex, { align: "center", gap: 2, px: 3, py: 1.5, bg: "slate.50", cursor: group.node ? 'pointer' : 'default', _hover: group.node ? { bg: 'slate.100' } : undefined, onClick: group.node ? () => jumpToNode(group.key) : undefined, children: [group.def?.icon ? (jsxRuntime.jsx(react$1.Box, { color: "slate.1100", display: "flex", alignItems: "center", flexShrink: 0, children: jsxRuntime.jsx(group.def.icon, { boxSize: "xs" }) })) : null, jsxRuntime.jsx(Subtext.Subtext, { fontWeight: "semibold", color: "slate.1300", truncate: true, children: group.node
140
+ ? getNodeTitle(group.node, group.def)
141
+ : translate('workflow_drawer_graph_group_title') })] }), group.errors.length > 0 ? (jsxRuntime.jsx(IssueList.IssueList, { label: translate('workflow_issues_errors_label'), tone: "error", issues: group.errors, onIssueClick: group.node ? jumpToIssue : undefined, resolveMessage: resolveIssueMessage })) : null, group.warnings.length > 0 ? (jsxRuntime.jsx(IssueList.IssueList, { label: translate('workflow_issues_warnings_label'), tone: "warning", issues: group.warnings, onIssueClick: group.node ? jumpToIssue : undefined, resolveMessage: resolveIssueMessage })) : null] }, group.key))) })) : null] }));
142
+ }
143
+
144
+ exports.GraphErrorBanner = GraphErrorBanner;
145
+ //# sourceMappingURL=GraphErrorBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphErrorBanner.js","sources":["../../../../../src/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.tsx"],"sourcesContent":[null],"names":["endpointTitle","useWorkflow","useReactFlow","useWorkflowTranslate","useWorkflowIssueMessage","useState","useMemo","_jsxs","Box","Flex","_jsx","Spinner","Subtext","Text","TbChevronDown","VStack","IssueList"],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ "use client";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState, useMemo } from 'react';
4
+ import { Box, Flex, VStack } from '@chakra-ui/react';
5
+ import { useReactFlow } from '@xyflow/react';
6
+ import { TbChevronDown } from '../../../Icon/index.mjs';
7
+ import { Spinner } from '../../../Spinner/Spinner.mjs';
8
+ import '../../../Typography/H1.mjs';
9
+ import '../../../Typography/H2.mjs';
10
+ import '../../../Typography/H3.mjs';
11
+ import '../../../Typography/H4.mjs';
12
+ import '../../../Typography/H5.mjs';
13
+ import '../../../Typography/Link.mjs';
14
+ import { Subtext } from '../../../Typography/Subtext.mjs';
15
+ import '../../../Typography/Subtitle.mjs';
16
+ import { Text } from '../../../Typography/Text.mjs';
17
+ import { useWorkflowIssueMessage } from '../../useWorkflowIssueMessage.mjs';
18
+ import { useWorkflow, useWorkflowTranslate } from '../../WorkflowContext/WorkflowContext.mjs';
19
+ import '../../../Input/Input.mjs';
20
+ import '../../../Toast/Toaster.mjs';
21
+ import { endpointTitle } from '../EdgeInspector/endpointTitle.mjs';
22
+ import { IssueList } from '../IssueList/IssueList.mjs';
23
+
24
+ const NODELESS_GROUP = '__graph__';
25
+ // Same fallback chain as everywhere else (instance title → kind label → id),
26
+ // so an unnamed node groups under "End", not its raw `end_1` id.
27
+ const getNodeTitle = (node, def) => endpointTitle(node, def ?? undefined, node.id);
28
+ /**
29
+ * Floating banner listing the current graph's validation issues — both the
30
+ * live validator output and backend `INVALID_GRAPH` errors fed in via
31
+ * `externalIssues`. Issues group by node (then severity); clicking an issue
32
+ * selects and pans to its node. Hidden in read-only mode (the Behavior-tab
33
+ * preview).
34
+ *
35
+ * `paletteToggleVisible` shifts the banner clear of the floating `+` palette
36
+ * toggle, which docks in the same top-left corner once the palette is
37
+ * collapsed — otherwise the two overlays would overlap.
38
+ */
39
+ function GraphErrorBanner({ paletteToggleVisible = false, }) {
40
+ const { issues, graph, readOnly, validating, getNodeType, setSelectedNodeId, revealInspector, requestFieldFocus, } = useWorkflow();
41
+ const { fitView } = useReactFlow();
42
+ const translate = useWorkflowTranslate();
43
+ const resolveIssueMessage = useWorkflowIssueMessage();
44
+ const [open, setOpen] = useState(false);
45
+ // Stringify counts before interpolation — see `useWorkflowIssueMessage`
46
+ // for the underlying `useTranslate` quirk this guards against.
47
+ const summarize = (errorCount, warningCount) => {
48
+ const parts = [];
49
+ if (errorCount > 0) {
50
+ parts.push(translate('workflow_issues_summary_errors', {
51
+ count: String(errorCount),
52
+ }));
53
+ }
54
+ if (warningCount > 0) {
55
+ parts.push(translate('workflow_issues_summary_warnings', {
56
+ count: String(warningCount),
57
+ }));
58
+ }
59
+ return parts.join(', ');
60
+ };
61
+ const { errorCount, warningCount, groups } = useMemo(() => {
62
+ let errors = 0;
63
+ let warnings = 0;
64
+ // Preserve insertion order from `graph.nodes` so the dropdown matches
65
+ // canvas left-to-right reading order; graph-wide issues are appended last.
66
+ const byKey = new Map();
67
+ const nodeById = new Map(graph.nodes.map((n) => [n.id, n]));
68
+ const getOrCreate = (key) => {
69
+ let g = byKey.get(key);
70
+ if (!g) {
71
+ const node = nodeById.get(key) ?? null;
72
+ g = {
73
+ key,
74
+ node,
75
+ def: node ? (getNodeType(node.kind) ?? null) : null,
76
+ errors: [],
77
+ warnings: [],
78
+ };
79
+ byKey.set(key, g);
80
+ }
81
+ return g;
82
+ };
83
+ for (const issue of issues) {
84
+ if (issue.severity === 'error')
85
+ errors += 1;
86
+ else
87
+ warnings += 1;
88
+ const key = issue.nodeId ?? NODELESS_GROUP;
89
+ const g = getOrCreate(key);
90
+ if (issue.severity === 'error')
91
+ g.errors.push(issue);
92
+ else
93
+ g.warnings.push(issue);
94
+ }
95
+ // Order: graph-wide bucket first (cycle / unreachable / etc. block the
96
+ // whole canvas and deserve top billing), then per-node buckets in
97
+ // canvas order.
98
+ const ordered = [];
99
+ const graphWide = byKey.get(NODELESS_GROUP);
100
+ if (graphWide)
101
+ ordered.push(graphWide);
102
+ for (const node of graph.nodes) {
103
+ const g = byKey.get(node.id);
104
+ if (g)
105
+ ordered.push(g);
106
+ }
107
+ return { errorCount: errors, warningCount: warnings, groups: ordered };
108
+ }, [issues, graph.nodes, getNodeType]);
109
+ // Noise guard: only surface the "validating" affordance when we're
110
+ // re-checking a graph that ALREADY shows issues (the retained `displayIssues`
111
+ // the host passes in during a save). A clean graph (no issues) stays hidden
112
+ // mid-save — the header save-status spinner already covers that case — so
113
+ // editing a valid graph never flashes a banner on every keystroke.
114
+ if (readOnly || issues.length === 0)
115
+ return null;
116
+ const showValidating = validating;
117
+ const jumpToNode = (nodeId) => {
118
+ if (!nodeId || !graph.nodes.some((n) => n.id === nodeId))
119
+ return;
120
+ setSelectedNodeId(nodeId);
121
+ // revealInspector so jumping to a node from the banner also restores the
122
+ // inspector when it's parked (test mode), not just sets the drawer target.
123
+ revealInspector({ type: 'node', id: nodeId });
124
+ void fitView({ nodes: [{ id: nodeId }], duration: 400, maxZoom: 1.2 });
125
+ };
126
+ const jumpToIssue = (issue) => {
127
+ if (!issue.nodeId)
128
+ return;
129
+ jumpToNode(issue.nodeId);
130
+ if (issue.fieldKey) {
131
+ requestFieldFocus(issue.nodeId, issue.fieldKey);
132
+ }
133
+ };
134
+ return (jsxs(Box, { position: "absolute", top: 3,
135
+ // Clear the floating `+` palette toggle (md IconButton at left={4}) when
136
+ // it's showing, so the banner sits beside it rather than under it.
137
+ left: paletteToggleVisible ? 16 : 3, zIndex: 5, maxW: "md", bg: "bg.surface", borderWidth: "1px", borderColor: errorCount > 0 ? 'danger.main' : 'warning.main', borderRadius: "md", boxShadow: "sm", overflow: "hidden", children: [showValidating ? (jsxs(Flex, { align: "center", gap: 2, px: 3, py: 2, bg: "slate.50", borderBottomWidth: "1px", borderColor: "slate.200", children: [jsx(Spinner, { size: "xs" }), jsx(Subtext, { fontWeight: "semibold", color: "slate.1100", children: translate('workflow_issues_validating') })] })) : null, jsxs(Box, { as: "button", w: "100%", display: "flex", alignItems: "center", justifyContent: "space-between", gap: 3, px: 3, py: 2, bg: "transparent", border: "none", cursor: "pointer", opacity: showValidating ? 0.6 : 1, transition: "opacity 0.15s", onClick: () => setOpen((o) => !o), children: [jsx(Text, { fontSize: "sm", fontWeight: "semibold", color: "slate.1300", children: summarize(errorCount, warningCount) }), jsx(TbChevronDown, { boxSize: "xs", color: "slate.900", transform: open ? 'rotate(180deg)' : 'none', transition: "transform 0.15s" })] }), open ? (jsx(VStack, { align: "stretch", gap: 0, maxH: "80", overflowY: "auto", opacity: showValidating ? 0.6 : 1, transition: "opacity 0.15s", borderTopWidth: "1px", borderColor: "slate.200", children: groups.map((group, gi) => (jsxs(Box, { borderTopWidth: gi === 0 ? 0 : '1px', borderColor: "slate.200", children: [jsxs(Flex, { align: "center", gap: 2, px: 3, py: 1.5, bg: "slate.50", cursor: group.node ? 'pointer' : 'default', _hover: group.node ? { bg: 'slate.100' } : undefined, onClick: group.node ? () => jumpToNode(group.key) : undefined, children: [group.def?.icon ? (jsx(Box, { color: "slate.1100", display: "flex", alignItems: "center", flexShrink: 0, children: jsx(group.def.icon, { boxSize: "xs" }) })) : null, jsx(Subtext, { fontWeight: "semibold", color: "slate.1300", truncate: true, children: group.node
138
+ ? getNodeTitle(group.node, group.def)
139
+ : translate('workflow_drawer_graph_group_title') })] }), group.errors.length > 0 ? (jsx(IssueList, { label: translate('workflow_issues_errors_label'), tone: "error", issues: group.errors, onIssueClick: group.node ? jumpToIssue : undefined, resolveMessage: resolveIssueMessage })) : null, group.warnings.length > 0 ? (jsx(IssueList, { label: translate('workflow_issues_warnings_label'), tone: "warning", issues: group.warnings, onIssueClick: group.node ? jumpToIssue : undefined, resolveMessage: resolveIssueMessage })) : null] }, group.key))) })) : null] }));
140
+ }
141
+
142
+ export { GraphErrorBanner };
143
+ //# sourceMappingURL=GraphErrorBanner.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphErrorBanner.mjs","sources":["../../../../../src/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { GraphErrorBanner } from './GraphErrorBanner';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/GraphErrorBanner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { IconTileProps } from './IconTile.types';
2
+ /**
3
+ * The 24×24 tile that carries the only category-derived color in a node.
4
+ * Background uses the category's `bg` token; icon uses the `fg` token.
5
+ *
6
+ * `size` is the tile's outer side in px; the icon renders at the `xs`
7
+ * t-shirt token (16px) to match logician-ui's Icon sizing scale.
8
+ */
9
+ export declare function IconTile({ category, icon: Icon, size, tokens, }: IconTileProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=IconTile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,IAAI,EAAE,IAAI,EACV,IAAS,EACT,MAAM,GACP,EAAE,aAAa,2CAgBf"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('@chakra-ui/react');
6
+ var IconTile_styles = require('./IconTile.styles.js');
7
+
8
+ /**
9
+ * The 24×24 tile that carries the only category-derived color in a node.
10
+ * Background uses the category's `bg` token; icon uses the `fg` token.
11
+ *
12
+ * `size` is the tile's outer side in px; the icon renders at the `xs`
13
+ * t-shirt token (16px) to match logician-ui's Icon sizing scale.
14
+ */
15
+ function IconTile({ category, icon: Icon, size = 24, tokens, }) {
16
+ const c = IconTile_styles.getCategoryTokens(category, tokens);
17
+ return (jsxRuntime.jsx(react.Box, { width: `${size}px`, height: `${size}px`, borderRadius: "sm", bg: c.bg, color: c.fg, display: "grid", placeItems: "center", flexShrink: 0, children: jsxRuntime.jsx(Icon, { boxSize: "xs" }) }));
18
+ }
19
+
20
+ exports.IconTile = IconTile;
21
+ //# sourceMappingURL=IconTile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.js","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.tsx"],"sourcesContent":[null],"names":["getCategoryTokens","_jsx","Box"],"mappings":";;;;;;;AAOA;;;;;;AAMG;AACG,SAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,IAAI,EAAE,IAAI,EACV,IAAI,GAAG,EAAE,EACT,MAAM,GACQ,EAAA;IACd,MAAM,CAAC,GAAGA,iCAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC7C,QACEC,cAAA,CAACC,SAAG,EAAA,EACF,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,EAClB,MAAM,EAAE,GAAG,IAAI,CAAA,EAAA,CAAI,EACnB,YAAY,EAAC,IAAI,EACjB,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,CAAC,CAAC,EAAE,EACX,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,UAAU,EAAE,CAAC,EAAA,QAAA,EAEbD,cAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,IAAI,EAAA,CAAG,EAAA,CACjB;AAEV;;;;"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Box } from '@chakra-ui/react';
4
+ import { getCategoryTokens } from './IconTile.styles.mjs';
5
+
6
+ /**
7
+ * The 24×24 tile that carries the only category-derived color in a node.
8
+ * Background uses the category's `bg` token; icon uses the `fg` token.
9
+ *
10
+ * `size` is the tile's outer side in px; the icon renders at the `xs`
11
+ * t-shirt token (16px) to match logician-ui's Icon sizing scale.
12
+ */
13
+ function IconTile({ category, icon: Icon, size = 24, tokens, }) {
14
+ const c = getCategoryTokens(category, tokens);
15
+ return (jsx(Box, { width: `${size}px`, height: `${size}px`, borderRadius: "sm", bg: c.bg, color: c.fg, display: "grid", placeItems: "center", flexShrink: 0, children: jsx(Icon, { boxSize: "xs" }) }));
16
+ }
17
+
18
+ export { IconTile };
19
+ //# sourceMappingURL=IconTile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.mjs","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAOA;;;;;;AAMG;AACG,SAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,IAAI,EAAE,IAAI,EACV,IAAI,GAAG,EAAE,EACT,MAAM,GACQ,EAAA;IACd,MAAM,CAAC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC7C,QACEA,GAAA,CAAC,GAAG,EAAA,EACF,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,EAClB,MAAM,EAAE,GAAG,IAAI,CAAA,EAAA,CAAI,EACnB,YAAY,EAAC,IAAI,EACjB,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,CAAC,CAAC,EAAE,EACX,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,UAAU,EAAE,CAAC,EAAA,QAAA,EAEbA,GAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,IAAI,EAAA,CAAG,EAAA,CACjB;AAEV;;;;"}
@@ -0,0 +1,18 @@
1
+ import type { NodeCategory } from '../../Workflow.types';
2
+ import type { CategoryTokenMap, CategoryTokens } from './IconTile.types';
3
+ /**
4
+ * Default mapping from the six categories to logician-ui semantic color
5
+ * tokens. "fg" tints the icon, "bg" fills the tile background. Output and
6
+ * Note don't map cleanly to a `colorPalette` so they're spelled out with
7
+ * raw token pairs.
8
+ *
9
+ * Host apps that want to retheme can override the map via the
10
+ * `categoryTokens` prop on `<Workflow>` — see WorkflowContext.
11
+ */
12
+ export declare const DEFAULT_CATEGORY_TOKENS: CategoryTokenMap;
13
+ /**
14
+ * Returns tokens for a category, falling back to `output` if a host passes
15
+ * an unknown category (e.g. from a JSON graph payload).
16
+ */
17
+ export declare function getCategoryTokens(category: NodeCategory, map?: CategoryTokenMap): CategoryTokens;
18
+ //# sourceMappingURL=IconTile.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAgBrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,GAAG,GAAE,gBAA0C,GAC9C,cAAc,CAEhB"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ /**
5
+ * Default mapping from the six categories to logician-ui semantic color
6
+ * tokens. "fg" tints the icon, "bg" fills the tile background. Output and
7
+ * Note don't map cleanly to a `colorPalette` so they're spelled out with
8
+ * raw token pairs.
9
+ *
10
+ * Host apps that want to retheme can override the map via the
11
+ * `categoryTokens` prop on `<Workflow>` — see WorkflowContext.
12
+ */
13
+ const DEFAULT_CATEGORY_TOKENS = {
14
+ trigger: {
15
+ bg: 'success.lightest',
16
+ fg: 'success.main',
17
+ border: 'slate.300',
18
+ },
19
+ ai: { bg: 'primary.lightest', fg: 'primary.main', border: 'slate.300' },
20
+ logic: {
21
+ bg: 'secondary.lightest',
22
+ fg: 'secondary.main',
23
+ border: 'slate.300',
24
+ },
25
+ safety: { bg: 'danger.lightest', fg: 'danger.main', border: 'slate.300' },
26
+ output: { bg: 'slate.50', fg: 'slate.1200', border: 'slate.300' },
27
+ // Note's `border` doubles as the body border so it reads as warm, not gray.
28
+ note: { bg: 'warning.lightest', fg: 'warning.dark', border: 'warning.light' },
29
+ };
30
+ /**
31
+ * Returns tokens for a category, falling back to `output` if a host passes
32
+ * an unknown category (e.g. from a JSON graph payload).
33
+ */
34
+ function getCategoryTokens(category, map = DEFAULT_CATEGORY_TOKENS) {
35
+ return map[category] ?? DEFAULT_CATEGORY_TOKENS.output;
36
+ }
37
+
38
+ exports.DEFAULT_CATEGORY_TOKENS = DEFAULT_CATEGORY_TOKENS;
39
+ exports.getCategoryTokens = getCategoryTokens;
40
+ //# sourceMappingURL=IconTile.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.styles.js","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.styles.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;AAQG;AACI,MAAM,uBAAuB,GAAqB;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,kBAAkB;AACtB,QAAA,EAAE,EAAE,cAAc;AAClB,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;AACD,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE;AACvE,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE,oBAAoB;AACxB,QAAA,EAAE,EAAE,gBAAgB;AACpB,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;AACD,IAAA,MAAM,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;AACzE,IAAA,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE;;AAEjE,IAAA,IAAI,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;;AAG/E;;;AAGG;SACa,iBAAiB,CAC/B,QAAsB,EACtB,MAAwB,uBAAuB,EAAA;IAE/C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,MAAM;AACxD;;;;;"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ /**
3
+ * Default mapping from the six categories to logician-ui semantic color
4
+ * tokens. "fg" tints the icon, "bg" fills the tile background. Output and
5
+ * Note don't map cleanly to a `colorPalette` so they're spelled out with
6
+ * raw token pairs.
7
+ *
8
+ * Host apps that want to retheme can override the map via the
9
+ * `categoryTokens` prop on `<Workflow>` — see WorkflowContext.
10
+ */
11
+ const DEFAULT_CATEGORY_TOKENS = {
12
+ trigger: {
13
+ bg: 'success.lightest',
14
+ fg: 'success.main',
15
+ border: 'slate.300',
16
+ },
17
+ ai: { bg: 'primary.lightest', fg: 'primary.main', border: 'slate.300' },
18
+ logic: {
19
+ bg: 'secondary.lightest',
20
+ fg: 'secondary.main',
21
+ border: 'slate.300',
22
+ },
23
+ safety: { bg: 'danger.lightest', fg: 'danger.main', border: 'slate.300' },
24
+ output: { bg: 'slate.50', fg: 'slate.1200', border: 'slate.300' },
25
+ // Note's `border` doubles as the body border so it reads as warm, not gray.
26
+ note: { bg: 'warning.lightest', fg: 'warning.dark', border: 'warning.light' },
27
+ };
28
+ /**
29
+ * Returns tokens for a category, falling back to `output` if a host passes
30
+ * an unknown category (e.g. from a JSON graph payload).
31
+ */
32
+ function getCategoryTokens(category, map = DEFAULT_CATEGORY_TOKENS) {
33
+ return map[category] ?? DEFAULT_CATEGORY_TOKENS.output;
34
+ }
35
+
36
+ export { DEFAULT_CATEGORY_TOKENS, getCategoryTokens };
37
+ //# sourceMappingURL=IconTile.styles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.styles.mjs","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.styles.ts"],"sourcesContent":[null],"names":[],"mappings":";AAGA;;;;;;;;AAQG;AACI,MAAM,uBAAuB,GAAqB;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,kBAAkB;AACtB,QAAA,EAAE,EAAE,cAAc;AAClB,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;AACD,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE;AACvE,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE,oBAAoB;AACxB,QAAA,EAAE,EAAE,gBAAgB;AACpB,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;AACD,IAAA,MAAM,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;AACzE,IAAA,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE;;AAEjE,IAAA,IAAI,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;;AAG/E;;;AAGG;SACa,iBAAiB,CAC/B,QAAsB,EACtB,MAAwB,uBAAuB,EAAA;IAE/C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,MAAM;AACxD;;;;"}
@@ -0,0 +1,15 @@
1
+ import { type CreatedIcon } from '@/components/Icon';
2
+ import type { NodeCategory } from '../../Workflow.types';
3
+ export type CategoryTokens = {
4
+ bg: string;
5
+ fg: string;
6
+ border: string;
7
+ };
8
+ export type CategoryTokenMap = Record<NodeCategory, CategoryTokens>;
9
+ export type IconTileProps = {
10
+ category: NodeCategory;
11
+ icon: CreatedIcon;
12
+ size?: number;
13
+ tokens?: CategoryTokenMap;
14
+ };
15
+ //# sourceMappingURL=IconTile.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconTile.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/IconTile/IconTile.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { IconTile } from './IconTile';
2
+ export { DEFAULT_CATEGORY_TOKENS, getCategoryTokens } from './IconTile.styles';
3
+ export type { CategoryTokenMap, CategoryTokens, IconTileProps, } from './IconTile.types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/IconTile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Issue } from '../../Workflow.types';
2
+ /**
3
+ * Severity-bucketed list of node issues rendered inside the floating canvas
4
+ * banner's dropdown. Row-style — each issue is an inline row with a thin
5
+ * severity bar, sized for dense scanning rather than block-level reading.
6
+ */
7
+ export declare function IssueList({ label, tone, issues, onIssueClick, resolveMessage, }: {
8
+ label: string;
9
+ tone: 'error' | 'warning';
10
+ issues: Issue[];
11
+ /**
12
+ * Optional row click handler — when present, each row becomes a button
13
+ * that jumps the inspector to the offending field. Stops propagation so
14
+ * the parent bucket's own click (jump to node) doesn't also fire.
15
+ */
16
+ onIssueClick?: (issue: Issue) => void;
17
+ /**
18
+ * Map an issue to its display message. Defaults to `issue.message`
19
+ * (English). Callers wire in `useWorkflowIssueMessage` to get the
20
+ * localized form.
21
+ */
22
+ resolveMessage?: (issue: Issue) => string;
23
+ }): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=IssueList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueList.d.ts","sourceRoot":"","sources":["../../../../../src/components/Workflow/canvas/IssueList/IssueList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,cAAc,GACf,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;CAC3C,2CA8CA"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('@chakra-ui/react');
6
+ require('../../../Typography/H1.js');
7
+ require('../../../Typography/H2.js');
8
+ require('../../../Typography/H3.js');
9
+ require('../../../Typography/H4.js');
10
+ require('../../../Typography/H5.js');
11
+ require('../../../Typography/Link.js');
12
+ var Subtext = require('../../../Typography/Subtext.js');
13
+ require('../../../Typography/Subtitle.js');
14
+ var Text = require('../../../Typography/Text.js');
15
+ var issueSeverity = require('../issueSeverity.js');
16
+ var SeverityDot = require('../SeverityDot/SeverityDot.js');
17
+
18
+ /**
19
+ * Severity-bucketed list of node issues rendered inside the floating canvas
20
+ * banner's dropdown. Row-style — each issue is an inline row with a thin
21
+ * severity bar, sized for dense scanning rather than block-level reading.
22
+ */
23
+ function IssueList({ label, tone, issues, onIssueClick, resolveMessage, }) {
24
+ const color = issueSeverity.severityColorToken(tone);
25
+ return (jsxRuntime.jsxs(react.Box, { children: [jsxRuntime.jsxs(react.HStack, { gap: 1, px: 3, pt: 1.5, pb: 0.5, children: [jsxRuntime.jsx(SeverityDot.SeverityDot, { severity: tone }), jsxRuntime.jsxs(Subtext.Subtext, { fontWeight: "medium", color: color, textTransform: "uppercase", letterSpacing: "wider", children: [label, " \u00B7 ", issues.length] })] }), issues.map((issue, i) => (jsxRuntime.jsxs(react.Flex, { gap: 2, px: 3, py: 1.5, align: "center", cursor: onIssueClick ? 'pointer' : undefined, _hover: onIssueClick ? { bg: 'slate.50' } : undefined, onClick: onIssueClick
26
+ ? (e) => {
27
+ e.stopPropagation();
28
+ onIssueClick(issue);
29
+ }
30
+ : undefined, children: [jsxRuntime.jsx(react.Box, { w: "3px", flexShrink: 0, borderRadius: "full", bg: issueSeverity.severityColorToken(issue.severity) }), jsxRuntime.jsx(Text.Text, { fontSize: "sm", color: "slate.1200", children: resolveMessage ? resolveMessage(issue) : issue.message })] }, `${issue.code}_${i}`)))] }));
31
+ }
32
+
33
+ exports.IssueList = IssueList;
34
+ //# sourceMappingURL=IssueList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueList.js","sources":["../../../../../src/components/Workflow/canvas/IssueList/IssueList.tsx"],"sourcesContent":[null],"names":["severityColorToken","_jsxs","Box","HStack","_jsx","SeverityDot","Subtext","Flex","Text"],"mappings":";;;;;;;;;;;;;;;;;AAUA;;;;AAIG;AACG,SAAU,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,cAAc,GAiBf,EAAA;AACC,IAAA,MAAM,KAAK,GAAGA,gCAAkB,CAAC,IAAI,CAAC;IACtC,QACEC,eAAA,CAACC,SAAG,EAAA,EAAA,QAAA,EAAA,CACFD,eAAA,CAACE,YAAM,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAA,QAAA,EAAA,CACrCC,cAAA,CAACC,uBAAW,EAAA,EAAC,QAAQ,EAAE,IAAI,EAAA,CAAI,EAC/BJ,eAAA,CAACK,eAAO,EAAA,EACN,UAAU,EAAC,QAAQ,EACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAC,WAAW,EACzB,aAAa,EAAC,OAAO,EAAA,QAAA,EAAA,CAEpB,KAAK,EAAA,UAAA,EAAK,MAAM,CAAC,MAAM,CAAA,EAAA,CAChB,CAAA,EAAA,CACH,EACR,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MACnBL,eAAA,CAACM,UAAI,EAAA,EAEH,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,GAAG,EACP,KAAK,EAAC,QAAQ,EACd,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5C,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,SAAS,EACrD,OAAO,EACL;AACE,sBAAE,CAAC,CAAC,KAAI;wBACJ,CAAC,CAAC,eAAe,EAAE;wBACnB,YAAY,CAAC,KAAK,CAAC;oBACrB;AACF,sBAAE,SAAS,EAAA,QAAA,EAAA,CAGfH,cAAA,CAACF,SAAG,EAAA,EACF,CAAC,EAAC,KAAK,EACP,UAAU,EAAE,CAAC,EACb,YAAY,EAAC,MAAM,EACnB,EAAE,EAAEF,gCAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAA,CACtC,EACFI,cAAA,CAACI,SAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,EAAC,YAAY,EAAA,QAAA,EACnC,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,EAAA,CAClD,CAAA,EAAA,EAxBF,CAAA,EAAG,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAyBpB,CACR,CAAC,CAAA,EAAA,CACE;AAEV;;;;"}