@principal-ai/subsystems-react 0.17.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 (496) hide show
  1. package/README.md +93 -0
  2. package/dist/components/ConfigurationSelector.d.ts +35 -0
  3. package/dist/components/ConfigurationSelector.d.ts.map +1 -0
  4. package/dist/components/ConfigurationSelector.js +63 -0
  5. package/dist/components/ConfigurationSelector.js.map +1 -0
  6. package/dist/components/GraphRenderer.d.ts +295 -0
  7. package/dist/components/GraphRenderer.d.ts.map +1 -0
  8. package/dist/components/GraphRenderer.js +2008 -0
  9. package/dist/components/GraphRenderer.js.map +1 -0
  10. package/dist/components/MultiCanvasRenderer.d.ts +75 -0
  11. package/dist/components/MultiCanvasRenderer.d.ts.map +1 -0
  12. package/dist/components/MultiCanvasRenderer.js +203 -0
  13. package/dist/components/MultiCanvasRenderer.js.map +1 -0
  14. package/dist/components/NodeTooltip.d.ts +24 -0
  15. package/dist/components/NodeTooltip.d.ts.map +1 -0
  16. package/dist/components/NodeTooltip.js +160 -0
  17. package/dist/components/NodeTooltip.js.map +1 -0
  18. package/dist/components/SelectionSidebar.d.ts +18 -0
  19. package/dist/components/SelectionSidebar.d.ts.map +1 -0
  20. package/dist/components/SelectionSidebar.js +190 -0
  21. package/dist/components/SelectionSidebar.js.map +1 -0
  22. package/dist/components/SequenceDiagramRenderer.d.ts +77 -0
  23. package/dist/components/SequenceDiagramRenderer.d.ts.map +1 -0
  24. package/dist/components/SequenceDiagramRenderer.js +604 -0
  25. package/dist/components/SequenceDiagramRenderer.js.map +1 -0
  26. package/dist/components/WorkflowSequenceDiagram.d.ts +63 -0
  27. package/dist/components/WorkflowSequenceDiagram.d.ts.map +1 -0
  28. package/dist/components/WorkflowSequenceDiagram.js +147 -0
  29. package/dist/components/WorkflowSequenceDiagram.js.map +1 -0
  30. package/dist/components/dashboard/DashboardRenderer.d.ts +10 -0
  31. package/dist/components/dashboard/DashboardRenderer.d.ts.map +1 -0
  32. package/dist/components/dashboard/DashboardRenderer.js +179 -0
  33. package/dist/components/dashboard/DashboardRenderer.js.map +1 -0
  34. package/dist/components/dashboard/MetricPanel.d.ts +10 -0
  35. package/dist/components/dashboard/MetricPanel.d.ts.map +1 -0
  36. package/dist/components/dashboard/MetricPanel.js +103 -0
  37. package/dist/components/dashboard/MetricPanel.js.map +1 -0
  38. package/dist/components/dashboard/MockDataProvider.d.ts +30 -0
  39. package/dist/components/dashboard/MockDataProvider.d.ts.map +1 -0
  40. package/dist/components/dashboard/MockDataProvider.js +270 -0
  41. package/dist/components/dashboard/MockDataProvider.js.map +1 -0
  42. package/dist/components/dashboard/components/BarChart.d.ts +10 -0
  43. package/dist/components/dashboard/components/BarChart.d.ts.map +1 -0
  44. package/dist/components/dashboard/components/BarChart.js +167 -0
  45. package/dist/components/dashboard/components/BarChart.js.map +1 -0
  46. package/dist/components/dashboard/components/LineChart.d.ts +10 -0
  47. package/dist/components/dashboard/components/LineChart.d.ts.map +1 -0
  48. package/dist/components/dashboard/components/LineChart.js +141 -0
  49. package/dist/components/dashboard/components/LineChart.js.map +1 -0
  50. package/dist/components/dashboard/components/MetricCard.d.ts +9 -0
  51. package/dist/components/dashboard/components/MetricCard.d.ts.map +1 -0
  52. package/dist/components/dashboard/components/MetricCard.js +163 -0
  53. package/dist/components/dashboard/components/MetricCard.js.map +1 -0
  54. package/dist/components/dashboard/components/SourceLink.d.ts +9 -0
  55. package/dist/components/dashboard/components/SourceLink.d.ts.map +1 -0
  56. package/dist/components/dashboard/components/SourceLink.js +39 -0
  57. package/dist/components/dashboard/components/SourceLink.js.map +1 -0
  58. package/dist/components/dashboard/components/TimeRangeSelector.d.ts +9 -0
  59. package/dist/components/dashboard/components/TimeRangeSelector.d.ts.map +1 -0
  60. package/dist/components/dashboard/components/TimeRangeSelector.js +167 -0
  61. package/dist/components/dashboard/components/TimeRangeSelector.js.map +1 -0
  62. package/dist/components/dashboard/components/index.d.ts +6 -0
  63. package/dist/components/dashboard/components/index.d.ts.map +1 -0
  64. package/dist/components/dashboard/components/index.js +6 -0
  65. package/dist/components/dashboard/components/index.js.map +1 -0
  66. package/dist/components/dashboard/index.d.ts +6 -0
  67. package/dist/components/dashboard/index.d.ts.map +1 -0
  68. package/dist/components/dashboard/index.js +8 -0
  69. package/dist/components/dashboard/index.js.map +1 -0
  70. package/dist/components/dashboard/types.d.ts +74 -0
  71. package/dist/components/dashboard/types.d.ts.map +1 -0
  72. package/dist/components/dashboard/types.js +8 -0
  73. package/dist/components/dashboard/types.js.map +1 -0
  74. package/dist/components/session-events/SessionEventFeed.d.ts +34 -0
  75. package/dist/components/session-events/SessionEventFeed.d.ts.map +1 -0
  76. package/dist/components/session-events/SessionEventFeed.js +1196 -0
  77. package/dist/components/session-events/SessionEventFeed.js.map +1 -0
  78. package/dist/components/session-events/index.d.ts +7 -0
  79. package/dist/components/session-events/index.d.ts.map +1 -0
  80. package/dist/components/session-events/index.js +6 -0
  81. package/dist/components/session-events/index.js.map +1 -0
  82. package/dist/components/state-view/PipelineView.d.ts +14 -0
  83. package/dist/components/state-view/PipelineView.d.ts.map +1 -0
  84. package/dist/components/state-view/PipelineView.js +195 -0
  85. package/dist/components/state-view/PipelineView.js.map +1 -0
  86. package/dist/components/state-view/index.d.ts +14 -0
  87. package/dist/components/state-view/index.d.ts.map +1 -0
  88. package/dist/components/state-view/index.js +12 -0
  89. package/dist/components/state-view/index.js.map +1 -0
  90. package/dist/components/state-view/types.d.ts +188 -0
  91. package/dist/components/state-view/types.d.ts.map +1 -0
  92. package/dist/components/state-view/types.js +10 -0
  93. package/dist/components/state-view/types.js.map +1 -0
  94. package/dist/components/state-view/useStateView.d.ts +32 -0
  95. package/dist/components/state-view/useStateView.d.ts.map +1 -0
  96. package/dist/components/state-view/useStateView.js +129 -0
  97. package/dist/components/state-view/useStateView.js.map +1 -0
  98. package/dist/contexts/GraphEditContext.d.ts +20 -0
  99. package/dist/contexts/GraphEditContext.d.ts.map +1 -0
  100. package/dist/contexts/GraphEditContext.js +8 -0
  101. package/dist/contexts/GraphEditContext.js.map +1 -0
  102. package/dist/contexts/TooltipPortalContext.d.ts +8 -0
  103. package/dist/contexts/TooltipPortalContext.d.ts.map +1 -0
  104. package/dist/contexts/TooltipPortalContext.js +8 -0
  105. package/dist/contexts/TooltipPortalContext.js.map +1 -0
  106. package/dist/edges/CustomEdge.d.ts +24 -0
  107. package/dist/edges/CustomEdge.d.ts.map +1 -0
  108. package/dist/edges/CustomEdge.js +222 -0
  109. package/dist/edges/CustomEdge.js.map +1 -0
  110. package/dist/edges/GenericEdge.d.ts +18 -0
  111. package/dist/edges/GenericEdge.d.ts.map +1 -0
  112. package/dist/edges/GenericEdge.js +10 -0
  113. package/dist/edges/GenericEdge.js.map +1 -0
  114. package/dist/graphify/anchor.d.ts +28 -0
  115. package/dist/graphify/anchor.d.ts.map +1 -0
  116. package/dist/graphify/anchor.js +132 -0
  117. package/dist/graphify/anchor.js.map +1 -0
  118. package/dist/graphify/consolidated.d.ts +210 -0
  119. package/dist/graphify/consolidated.d.ts.map +1 -0
  120. package/dist/graphify/consolidated.js +11 -0
  121. package/dist/graphify/consolidated.js.map +1 -0
  122. package/dist/graphify/ids.d.ts +19 -0
  123. package/dist/graphify/ids.d.ts.map +1 -0
  124. package/dist/graphify/ids.js +46 -0
  125. package/dist/graphify/ids.js.map +1 -0
  126. package/dist/graphify/index.d.ts +18 -0
  127. package/dist/graphify/index.d.ts.map +1 -0
  128. package/dist/graphify/index.js +12 -0
  129. package/dist/graphify/index.js.map +1 -0
  130. package/dist/graphify/kind.d.ts +23 -0
  131. package/dist/graphify/kind.d.ts.map +1 -0
  132. package/dist/graphify/kind.js +77 -0
  133. package/dist/graphify/kind.js.map +1 -0
  134. package/dist/graphify/resolve.d.ts +48 -0
  135. package/dist/graphify/resolve.d.ts.map +1 -0
  136. package/dist/graphify/resolve.js +83 -0
  137. package/dist/graphify/resolve.js.map +1 -0
  138. package/dist/graphify/signature.d.ts +87 -0
  139. package/dist/graphify/signature.d.ts.map +1 -0
  140. package/dist/graphify/signature.js +276 -0
  141. package/dist/graphify/signature.js.map +1 -0
  142. package/dist/graphify/types.d.ts +141 -0
  143. package/dist/graphify/types.d.ts.map +1 -0
  144. package/dist/graphify/types.js +8 -0
  145. package/dist/graphify/types.js.map +1 -0
  146. package/dist/hooks/useElkLayout.d.ts +66 -0
  147. package/dist/hooks/useElkLayout.d.ts.map +1 -0
  148. package/dist/hooks/useElkLayout.js +136 -0
  149. package/dist/hooks/useElkLayout.js.map +1 -0
  150. package/dist/hooks/usePathBasedEvents.d.ts +42 -0
  151. package/dist/hooks/usePathBasedEvents.d.ts.map +1 -0
  152. package/dist/hooks/usePathBasedEvents.js +119 -0
  153. package/dist/hooks/usePathBasedEvents.js.map +1 -0
  154. package/dist/hooks/useSequenceLayout.d.ts +186 -0
  155. package/dist/hooks/useSequenceLayout.d.ts.map +1 -0
  156. package/dist/hooks/useSequenceLayout.js +327 -0
  157. package/dist/hooks/useSequenceLayout.js.map +1 -0
  158. package/dist/hooks/useUndoRedo.d.ts +80 -0
  159. package/dist/hooks/useUndoRedo.d.ts.map +1 -0
  160. package/dist/hooks/useUndoRedo.js +70 -0
  161. package/dist/hooks/useUndoRedo.js.map +1 -0
  162. package/dist/index.d.ts +73 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +51 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/nodes/CustomNode.d.ts +28 -0
  167. package/dist/nodes/CustomNode.d.ts.map +1 -0
  168. package/dist/nodes/CustomNode.js +820 -0
  169. package/dist/nodes/CustomNode.js.map +1 -0
  170. package/dist/nodes/GenericNode.d.ts +20 -0
  171. package/dist/nodes/GenericNode.d.ts.map +1 -0
  172. package/dist/nodes/GenericNode.js +20 -0
  173. package/dist/nodes/GenericNode.js.map +1 -0
  174. package/dist/nodes/otel/OtelBoundaryNode.d.ts +55 -0
  175. package/dist/nodes/otel/OtelBoundaryNode.d.ts.map +1 -0
  176. package/dist/nodes/otel/OtelBoundaryNode.js +81 -0
  177. package/dist/nodes/otel/OtelBoundaryNode.js.map +1 -0
  178. package/dist/nodes/otel/OtelEventNode.d.ts +59 -0
  179. package/dist/nodes/otel/OtelEventNode.d.ts.map +1 -0
  180. package/dist/nodes/otel/OtelEventNode.js +82 -0
  181. package/dist/nodes/otel/OtelEventNode.js.map +1 -0
  182. package/dist/nodes/otel/OtelResourceNode.d.ts +53 -0
  183. package/dist/nodes/otel/OtelResourceNode.d.ts.map +1 -0
  184. package/dist/nodes/otel/OtelResourceNode.js +105 -0
  185. package/dist/nodes/otel/OtelResourceNode.js.map +1 -0
  186. package/dist/nodes/otel/OtelScopeNode.d.ts +53 -0
  187. package/dist/nodes/otel/OtelScopeNode.d.ts.map +1 -0
  188. package/dist/nodes/otel/OtelScopeNode.js +81 -0
  189. package/dist/nodes/otel/OtelScopeNode.js.map +1 -0
  190. package/dist/nodes/otel/OtelSpanConventionNode.d.ts +61 -0
  191. package/dist/nodes/otel/OtelSpanConventionNode.d.ts.map +1 -0
  192. package/dist/nodes/otel/OtelSpanConventionNode.js +131 -0
  193. package/dist/nodes/otel/OtelSpanConventionNode.js.map +1 -0
  194. package/dist/nodes/otel/index.d.ts +17 -0
  195. package/dist/nodes/otel/index.d.ts.map +1 -0
  196. package/dist/nodes/otel/index.js +13 -0
  197. package/dist/nodes/otel/index.js.map +1 -0
  198. package/dist/nodes/otel/shared/NodeBadges.d.ts +10 -0
  199. package/dist/nodes/otel/shared/NodeBadges.d.ts.map +1 -0
  200. package/dist/nodes/otel/shared/NodeBadges.js +178 -0
  201. package/dist/nodes/otel/shared/NodeBadges.js.map +1 -0
  202. package/dist/nodes/otel/shared/NodeContent.d.ts +10 -0
  203. package/dist/nodes/otel/shared/NodeContent.d.ts.map +1 -0
  204. package/dist/nodes/otel/shared/NodeContent.js +96 -0
  205. package/dist/nodes/otel/shared/NodeContent.js.map +1 -0
  206. package/dist/nodes/otel/shared/index.d.ts +8 -0
  207. package/dist/nodes/otel/shared/index.d.ts.map +1 -0
  208. package/dist/nodes/otel/shared/index.js +8 -0
  209. package/dist/nodes/otel/shared/index.js.map +1 -0
  210. package/dist/nodes/otel/shared/types.d.ts +129 -0
  211. package/dist/nodes/otel/shared/types.d.ts.map +1 -0
  212. package/dist/nodes/otel/shared/types.js +5 -0
  213. package/dist/nodes/otel/shared/types.js.map +1 -0
  214. package/dist/nodes/otel/shared/useNodeBehavior.d.ts +42 -0
  215. package/dist/nodes/otel/shared/useNodeBehavior.d.ts.map +1 -0
  216. package/dist/nodes/otel/shared/useNodeBehavior.js +61 -0
  217. package/dist/nodes/otel/shared/useNodeBehavior.js.map +1 -0
  218. package/dist/pierre/PierreFileView.d.ts +17 -0
  219. package/dist/pierre/PierreFileView.d.ts.map +1 -0
  220. package/dist/pierre/PierreFileView.js +46 -0
  221. package/dist/pierre/PierreFileView.js.map +1 -0
  222. package/dist/pierre/PierreSnippetView.d.ts +28 -0
  223. package/dist/pierre/PierreSnippetView.d.ts.map +1 -0
  224. package/dist/pierre/PierreSnippetView.js +105 -0
  225. package/dist/pierre/PierreSnippetView.js.map +1 -0
  226. package/dist/pierre/PierreThroughlineCodeView.d.ts +22 -0
  227. package/dist/pierre/PierreThroughlineCodeView.d.ts.map +1 -0
  228. package/dist/pierre/PierreThroughlineCodeView.js +206 -0
  229. package/dist/pierre/PierreThroughlineCodeView.js.map +1 -0
  230. package/dist/pierre/constructColors.d.ts +24 -0
  231. package/dist/pierre/constructColors.d.ts.map +1 -0
  232. package/dist/pierre/constructColors.js +91 -0
  233. package/dist/pierre/constructColors.js.map +1 -0
  234. package/dist/pierre/index.d.ts +12 -0
  235. package/dist/pierre/index.d.ts.map +1 -0
  236. package/dist/pierre/index.js +7 -0
  237. package/dist/pierre/index.js.map +1 -0
  238. package/dist/pierre/pierreBackground.d.ts +15 -0
  239. package/dist/pierre/pierreBackground.d.ts.map +1 -0
  240. package/dist/pierre/pierreBackground.js +31 -0
  241. package/dist/pierre/pierreBackground.js.map +1 -0
  242. package/dist/pierre/pierreFileLang.d.ts +27 -0
  243. package/dist/pierre/pierreFileLang.d.ts.map +1 -0
  244. package/dist/pierre/pierreFileLang.js +52 -0
  245. package/dist/pierre/pierreFileLang.js.map +1 -0
  246. package/dist/pierre/pierreSyntaxTheme.d.ts +11 -0
  247. package/dist/pierre/pierreSyntaxTheme.d.ts.map +1 -0
  248. package/dist/pierre/pierreSyntaxTheme.js +20 -0
  249. package/dist/pierre/pierreSyntaxTheme.js.map +1 -0
  250. package/dist/pierre/scrollAnchor.d.ts +5 -0
  251. package/dist/pierre/scrollAnchor.d.ts.map +1 -0
  252. package/dist/pierre/scrollAnchor.js +9 -0
  253. package/dist/pierre/scrollAnchor.js.map +1 -0
  254. package/dist/pierre/sliceSnippet.d.ts +10 -0
  255. package/dist/pierre/sliceSnippet.d.ts.map +1 -0
  256. package/dist/pierre/sliceSnippet.js +16 -0
  257. package/dist/pierre/sliceSnippet.js.map +1 -0
  258. package/dist/pierre/syntaxTokens.d.ts +11 -0
  259. package/dist/pierre/syntaxTokens.d.ts.map +1 -0
  260. package/dist/pierre/syntaxTokens.js +51 -0
  261. package/dist/pierre/syntaxTokens.js.map +1 -0
  262. package/dist/stories/Subsystem/ComponentGraph/fixtures.d.ts +8 -0
  263. package/dist/stories/Subsystem/ComponentGraph/fixtures.d.ts.map +1 -0
  264. package/dist/stories/Subsystem/ComponentGraph/fixtures.js +116 -0
  265. package/dist/stories/Subsystem/ComponentGraph/fixtures.js.map +1 -0
  266. package/dist/subsystem/ComponentDeclaration.d.ts +87 -0
  267. package/dist/subsystem/ComponentDeclaration.d.ts.map +1 -0
  268. package/dist/subsystem/ComponentDeclaration.js +374 -0
  269. package/dist/subsystem/ComponentDeclaration.js.map +1 -0
  270. package/dist/subsystem/FileDrawer.d.ts +17 -0
  271. package/dist/subsystem/FileDrawer.d.ts.map +1 -0
  272. package/dist/subsystem/FileDrawer.js +72 -0
  273. package/dist/subsystem/FileDrawer.js.map +1 -0
  274. package/dist/subsystem/GraphLayoutCover.d.ts +20 -0
  275. package/dist/subsystem/GraphLayoutCover.d.ts.map +1 -0
  276. package/dist/subsystem/GraphLayoutCover.js +42 -0
  277. package/dist/subsystem/GraphLayoutCover.js.map +1 -0
  278. package/dist/subsystem/SubsystemComponentGraph.d.ts +96 -0
  279. package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -0
  280. package/dist/subsystem/SubsystemComponentGraph.js +1059 -0
  281. package/dist/subsystem/SubsystemComponentGraph.js.map +1 -0
  282. package/dist/subsystem/SubsystemFileTree.d.ts +24 -0
  283. package/dist/subsystem/SubsystemFileTree.d.ts.map +1 -0
  284. package/dist/subsystem/SubsystemFileTree.js +150 -0
  285. package/dist/subsystem/SubsystemFileTree.js.map +1 -0
  286. package/dist/subsystem/declarationRef.d.ts +39 -0
  287. package/dist/subsystem/declarationRef.d.ts.map +1 -0
  288. package/dist/subsystem/declarationRef.js +32 -0
  289. package/dist/subsystem/declarationRef.js.map +1 -0
  290. package/dist/subsystem/formatDeclaration.d.ts +11 -0
  291. package/dist/subsystem/formatDeclaration.d.ts.map +1 -0
  292. package/dist/subsystem/formatDeclaration.js +146 -0
  293. package/dist/subsystem/formatDeclaration.js.map +1 -0
  294. package/dist/subsystem/model.d.ts +353 -0
  295. package/dist/subsystem/model.d.ts.map +1 -0
  296. package/dist/subsystem/model.js +503 -0
  297. package/dist/subsystem/model.js.map +1 -0
  298. package/dist/subsystem/nodes.d.ts +69 -0
  299. package/dist/subsystem/nodes.d.ts.map +1 -0
  300. package/dist/subsystem/nodes.js +289 -0
  301. package/dist/subsystem/nodes.js.map +1 -0
  302. package/dist/subsystem/paths.d.ts +63 -0
  303. package/dist/subsystem/paths.d.ts.map +1 -0
  304. package/dist/subsystem/paths.js +86 -0
  305. package/dist/subsystem/paths.js.map +1 -0
  306. package/dist/subsystem/tokenizeComponent.d.ts +20 -0
  307. package/dist/subsystem/tokenizeComponent.d.ts.map +1 -0
  308. package/dist/subsystem/tokenizeComponent.js +56 -0
  309. package/dist/subsystem/tokenizeComponent.js.map +1 -0
  310. package/dist/subsystem/tokenizeFormatted.d.ts +12 -0
  311. package/dist/subsystem/tokenizeFormatted.d.ts.map +1 -0
  312. package/dist/subsystem/tokenizeFormatted.js +13 -0
  313. package/dist/subsystem/tokenizeFormatted.js.map +1 -0
  314. package/dist/utils/animationMapping.d.ts +53 -0
  315. package/dist/utils/animationMapping.d.ts.map +1 -0
  316. package/dist/utils/animationMapping.js +126 -0
  317. package/dist/utils/animationMapping.js.map +1 -0
  318. package/dist/utils/canvasBounds.d.ts +50 -0
  319. package/dist/utils/canvasBounds.d.ts.map +1 -0
  320. package/dist/utils/canvasBounds.js +88 -0
  321. package/dist/utils/canvasBounds.js.map +1 -0
  322. package/dist/utils/elkLayout.d.ts +137 -0
  323. package/dist/utils/elkLayout.d.ts.map +1 -0
  324. package/dist/utils/elkLayout.js +596 -0
  325. package/dist/utils/elkLayout.js.map +1 -0
  326. package/dist/utils/graphConverter.d.ts +18 -0
  327. package/dist/utils/graphConverter.d.ts.map +1 -0
  328. package/dist/utils/graphConverter.js +114 -0
  329. package/dist/utils/graphConverter.js.map +1 -0
  330. package/dist/utils/iconResolver.d.ts +29 -0
  331. package/dist/utils/iconResolver.d.ts.map +1 -0
  332. package/dist/utils/iconResolver.js +30 -0
  333. package/dist/utils/iconResolver.js.map +1 -0
  334. package/dist/utils/orientationUtils.d.ts +19 -0
  335. package/dist/utils/orientationUtils.d.ts.map +1 -0
  336. package/dist/utils/orientationUtils.js +62 -0
  337. package/dist/utils/orientationUtils.js.map +1 -0
  338. package/package.json +80 -0
  339. package/src/components/ConfigurationSelector.tsx +133 -0
  340. package/src/components/GraphRenderer.tsx +3195 -0
  341. package/src/components/MultiCanvasRenderer.tsx +295 -0
  342. package/src/components/NodeTooltip.tsx +279 -0
  343. package/src/components/PendingChanges.test.tsx +375 -0
  344. package/src/components/SelectionSidebar.tsx +352 -0
  345. package/src/components/SequenceDiagramRenderer.tsx +1156 -0
  346. package/src/components/WorkflowSequenceDiagram.tsx +270 -0
  347. package/src/components/dashboard/DashboardRenderer.tsx +317 -0
  348. package/src/components/dashboard/MetricPanel.tsx +254 -0
  349. package/src/components/dashboard/MockDataProvider.ts +330 -0
  350. package/src/components/dashboard/components/BarChart.tsx +299 -0
  351. package/src/components/dashboard/components/LineChart.tsx +279 -0
  352. package/src/components/dashboard/components/MetricCard.tsx +270 -0
  353. package/src/components/dashboard/components/SourceLink.tsx +63 -0
  354. package/src/components/dashboard/components/TimeRangeSelector.tsx +280 -0
  355. package/src/components/dashboard/components/index.ts +5 -0
  356. package/src/components/dashboard/index.ts +47 -0
  357. package/src/components/dashboard/types.ts +126 -0
  358. package/src/components/session-events/SessionEventFeed.tsx +1797 -0
  359. package/src/components/session-events/index.ts +13 -0
  360. package/src/components/state-view/PipelineView.tsx +347 -0
  361. package/src/components/state-view/index.ts +14 -0
  362. package/src/components/state-view/types.ts +261 -0
  363. package/src/components/state-view/useStateView.ts +205 -0
  364. package/src/contexts/GraphEditContext.tsx +27 -0
  365. package/src/contexts/TooltipPortalContext.ts +8 -0
  366. package/src/edges/CustomEdge.tsx +402 -0
  367. package/src/edges/GenericEdge.tsx +36 -0
  368. package/src/graphify/anchor.test.ts +124 -0
  369. package/src/graphify/anchor.ts +160 -0
  370. package/src/graphify/consolidated.ts +246 -0
  371. package/src/graphify/ids.ts +48 -0
  372. package/src/graphify/index.ts +72 -0
  373. package/src/graphify/kind.test.ts +108 -0
  374. package/src/graphify/kind.ts +120 -0
  375. package/src/graphify/resolve.test.ts +89 -0
  376. package/src/graphify/resolve.ts +115 -0
  377. package/src/graphify/signature.test.ts +278 -0
  378. package/src/graphify/signature.ts +354 -0
  379. package/src/graphify/types.ts +164 -0
  380. package/src/hooks/useElkLayout.test.ts +134 -0
  381. package/src/hooks/useElkLayout.ts +191 -0
  382. package/src/hooks/usePathBasedEvents.ts +192 -0
  383. package/src/hooks/useSequenceLayout.ts +543 -0
  384. package/src/hooks/useUndoRedo.ts +144 -0
  385. package/src/index.ts +341 -0
  386. package/src/nodes/CustomNode.tsx +1231 -0
  387. package/src/nodes/GenericNode.tsx +55 -0
  388. package/src/nodes/otel/OtelBoundaryNode.tsx +224 -0
  389. package/src/nodes/otel/OtelEventNode.tsx +225 -0
  390. package/src/nodes/otel/OtelResourceNode.tsx +251 -0
  391. package/src/nodes/otel/OtelScopeNode.tsx +221 -0
  392. package/src/nodes/otel/OtelSpanConventionNode.tsx +295 -0
  393. package/src/nodes/otel/index.ts +23 -0
  394. package/src/nodes/otel/shared/NodeBadges.tsx +295 -0
  395. package/src/nodes/otel/shared/NodeContent.tsx +204 -0
  396. package/src/nodes/otel/shared/index.ts +8 -0
  397. package/src/nodes/otel/shared/types.ts +138 -0
  398. package/src/nodes/otel/shared/useNodeBehavior.ts +114 -0
  399. package/src/pierre/PierreFileView.tsx +81 -0
  400. package/src/pierre/PierreSnippetView.tsx +184 -0
  401. package/src/pierre/PierreThroughlineCodeView.tsx +304 -0
  402. package/src/pierre/constructColors.test.ts +52 -0
  403. package/src/pierre/constructColors.ts +112 -0
  404. package/src/pierre/index.ts +18 -0
  405. package/src/pierre/pierreBackground.ts +33 -0
  406. package/src/pierre/pierreFileLang.test.ts +26 -0
  407. package/src/pierre/pierreFileLang.ts +55 -0
  408. package/src/pierre/pierreSyntaxTheme.ts +23 -0
  409. package/src/pierre/scrollAnchor.test.ts +13 -0
  410. package/src/pierre/scrollAnchor.ts +11 -0
  411. package/src/pierre/sliceSnippet.test.ts +21 -0
  412. package/src/pierre/sliceSnippet.ts +31 -0
  413. package/src/pierre/syntaxTokens.test.ts +35 -0
  414. package/src/pierre/syntaxTokens.ts +60 -0
  415. package/src/stories/Audit/BoundaryNodes.stories.tsx +385 -0
  416. package/src/stories/Audit/CanvasEdgeTypes.stories.tsx +1448 -0
  417. package/src/stories/Audit/CanvasNodeTypes.stories.tsx +1049 -0
  418. package/src/stories/Audit/ColorPriority.stories.tsx +895 -0
  419. package/src/stories/Audit/DiamondBadges.stories.tsx +629 -0
  420. package/src/stories/Audit/NodeDimensionsTesting.stories.tsx +724 -0
  421. package/src/stories/Audit/NodeFieldsAudit.stories.tsx +996 -0
  422. package/src/stories/Audit/NodeFontSizeTesting.stories.tsx +715 -0
  423. package/src/stories/Audit/NodeShapes.stories.tsx +1208 -0
  424. package/src/stories/Audit/WideNodesTesting.stories.tsx +1045 -0
  425. package/src/stories/Components/DashboardRenderer.stories.tsx +263 -0
  426. package/src/stories/Components/GraphRenderer.stories.tsx +3236 -0
  427. package/src/stories/Components/MultiCanvasRenderer.stories.tsx +370 -0
  428. package/src/stories/Components/SequenceDiagram.stories.tsx +255 -0
  429. package/src/stories/Components/StateView.stories.tsx +417 -0
  430. package/src/stories/Components/TraceViewer.stories.tsx +442 -0
  431. package/src/stories/Components/WorkflowSequenceDiagram.stories.tsx +802 -0
  432. package/src/stories/Features/AnimationWorkshop.stories.tsx +727 -0
  433. package/src/stories/Features/ChangeTypeVisual.stories.tsx +67 -0
  434. package/src/stories/Features/EventDrivenAnimations.stories.tsx +513 -0
  435. package/src/stories/Features/MultiConfig.stories.tsx +539 -0
  436. package/src/stories/Introduction.mdx +34 -0
  437. package/src/stories/Layout/ElkEdgeRouting.stories.tsx +539 -0
  438. package/src/stories/Layout/GraphOrientation.stories.tsx +500 -0
  439. package/src/stories/Layout/MultiDirectionalConnections.stories.tsx +352 -0
  440. package/src/stories/Nodes/NodeDefinitionComparison.stories.tsx +560 -0
  441. package/src/stories/Nodes/NodeNameFallbacks.stories.tsx +491 -0
  442. package/src/stories/Nodes/NumericColors.stories.tsx +440 -0
  443. package/src/stories/OTEL/EventNameDisplay.stories.tsx +694 -0
  444. package/src/stories/OTEL/EventNameFallback.stories.tsx +578 -0
  445. package/src/stories/OTEL/OtelComponents.stories.tsx +422 -0
  446. package/src/stories/OTEL/OtelNodeTypesPrototype.stories.tsx +806 -0
  447. package/src/stories/OTEL/RawEventCards.stories.tsx +57 -0
  448. package/src/stories/OTEL/SpanBadges.stories.tsx +840 -0
  449. package/src/stories/OTEL/ValidationEventsCanvas.stories.tsx +209 -0
  450. package/src/stories/Pierre/CodeView.stories.tsx +219 -0
  451. package/src/stories/RealWorld/BacklogMdCanvases.stories.tsx +721 -0
  452. package/src/stories/RealWorld/FileCitySequence.stories.tsx +516 -0
  453. package/src/stories/RealWorld/RealCanvasFiles.stories.tsx +336 -0
  454. package/src/stories/Subsystem/ComponentDeclarationAudit.stories.tsx +321 -0
  455. package/src/stories/Subsystem/ComponentGraph/Appearance.stories.tsx +365 -0
  456. package/src/stories/Subsystem/ComponentGraph/Basics.stories.tsx +137 -0
  457. package/src/stories/Subsystem/ComponentGraph/Captures.stories.tsx +238 -0
  458. package/src/stories/Subsystem/ComponentGraph/DetailPanel.stories.tsx +315 -0
  459. package/src/stories/Subsystem/ComponentGraph/Flows.stories.tsx +239 -0
  460. package/src/stories/Subsystem/ComponentGraph/FrameworkStereotype.stories.tsx +216 -0
  461. package/src/stories/Subsystem/ComponentGraph/GraphTitle.stories.tsx +70 -0
  462. package/src/stories/Subsystem/ComponentGraph/Processes.stories.tsx +68 -0
  463. package/src/stories/Subsystem/ComponentGraph/Scenarios.stories.tsx +959 -0
  464. package/src/stories/Subsystem/ComponentGraph/Spotlights.stories.tsx +681 -0
  465. package/src/stories/Subsystem/ComponentGraph/fixtures.ts +129 -0
  466. package/src/stories/__traces__/test-run.canvas.json +241 -0
  467. package/src/stories/data/activity-feed-analytics.dashboard.json +300 -0
  468. package/src/stories/data/file-city-images-transformed.otel.canvas.json +295 -0
  469. package/src/stories/data/file-city-workflows.json +269 -0
  470. package/src/stories/data/graph-converter-test-execution.json +443 -0
  471. package/src/stories/data/graph-converter-test.workflow.json +105 -0
  472. package/src/stories/data/graph-converter-validated-execution.json +58 -0
  473. package/src/stories/data/opencode-session-raw-events.json +273396 -0
  474. package/src/subsystem/ComponentDeclaration.tsx +643 -0
  475. package/src/subsystem/FileDrawer.tsx +106 -0
  476. package/src/subsystem/GraphLayoutCover.tsx +69 -0
  477. package/src/subsystem/SubsystemComponentGraph.tsx +1644 -0
  478. package/src/subsystem/SubsystemFileTree.tsx +190 -0
  479. package/src/subsystem/declarationRef.test.ts +33 -0
  480. package/src/subsystem/declarationRef.ts +63 -0
  481. package/src/subsystem/formatDeclaration.ts +174 -0
  482. package/src/subsystem/model.test.ts +244 -0
  483. package/src/subsystem/model.ts +850 -0
  484. package/src/subsystem/nodes.test.ts +56 -0
  485. package/src/subsystem/nodes.tsx +443 -0
  486. package/src/subsystem/paths.test.ts +123 -0
  487. package/src/subsystem/paths.ts +127 -0
  488. package/src/subsystem/tokenizeComponent.ts +70 -0
  489. package/src/subsystem/tokenizeFormatted.ts +19 -0
  490. package/src/utils/animationMapping.ts +166 -0
  491. package/src/utils/canvasBounds.ts +146 -0
  492. package/src/utils/elkLayout.test.ts +240 -0
  493. package/src/utils/elkLayout.ts +779 -0
  494. package/src/utils/graphConverter.ts +148 -0
  495. package/src/utils/iconResolver.tsx +53 -0
  496. package/src/utils/orientationUtils.ts +73 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * useStateView Hook
3
+ *
4
+ * Manages state accumulation from events and provides replay controls.
5
+ */
6
+ import type { StateEvent, EventSource, StateReducer, StateDiff, ReplayControls, ActiveAnimation, TransitionDefinition } from './types';
7
+ export interface UseStateViewOptions<TState, TEvent extends StateEvent> {
8
+ /** Initial state */
9
+ initialState: TState;
10
+ /** Reducer to apply events */
11
+ reducer: StateReducer<TState, TEvent>;
12
+ /** Event source (live or replay) */
13
+ eventSource: EventSource<TEvent>;
14
+ /** Transition definitions for animations */
15
+ transitions?: TransitionDefinition[];
16
+ /** Callback when state changes */
17
+ onStateChange?: (diff: StateDiff<TState>) => void;
18
+ }
19
+ export interface UseStateViewResult<TState> {
20
+ /** Current state */
21
+ state: TState;
22
+ /** Active animations */
23
+ animations: ActiveAnimation[];
24
+ /** Whether we're in replay mode */
25
+ isReplay: boolean;
26
+ /** Replay controls (if in replay mode) */
27
+ replayControls?: ReplayControls;
28
+ /** Reset state to initial */
29
+ reset: () => void;
30
+ }
31
+ export declare function useStateView<TState, TEvent extends StateEvent>({ initialState, reducer, eventSource, transitions, onStateChange, }: UseStateViewOptions<TState, TEvent>): UseStateViewResult<TState>;
32
+ //# sourceMappingURL=useStateView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStateView.d.ts","sourceRoot":"","sources":["../../../src/components/state-view/useStateView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,mBAAmB,CAAC,MAAM,EAAE,MAAM,SAAS,UAAU;IACpE,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,oCAAoC;IACpC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM;IACxC,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AA6ED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,SAAS,UAAU,EAAE,EAC9D,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAgB,EAChB,aAAa,GACd,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAgFlE"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * useStateView Hook
3
+ *
4
+ * Manages state accumulation from events and provides replay controls.
5
+ */
6
+ import { useState, useEffect, useRef, useCallback } from 'react';
7
+ /**
8
+ * Get changed paths between two objects (shallow comparison)
9
+ */
10
+ function getChangedPaths(prev, next, prefix = '') {
11
+ const paths = [];
12
+ if (prev === next)
13
+ return paths;
14
+ if (typeof prev !== 'object' ||
15
+ typeof next !== 'object' ||
16
+ prev === null ||
17
+ next === null) {
18
+ return prefix ? [prefix] : [];
19
+ }
20
+ const prevObj = prev;
21
+ const nextObj = next;
22
+ const allKeys = new Set([...Object.keys(prevObj), ...Object.keys(nextObj)]);
23
+ for (const key of allKeys) {
24
+ const path = prefix ? `${prefix}.${key}` : key;
25
+ if (prevObj[key] !== nextObj[key]) {
26
+ paths.push(path);
27
+ }
28
+ }
29
+ return paths;
30
+ }
31
+ /**
32
+ * Check if a transition should fire based on state change
33
+ */
34
+ function shouldTriggerTransition(transition, prev, next, changedPaths) {
35
+ // Check if the watched path changed
36
+ if (!changedPaths.some((p) => p.startsWith(transition.watch))) {
37
+ return false;
38
+ }
39
+ const prevValue = getValueAtPath(prev, transition.watch);
40
+ const nextValue = getValueAtPath(next, transition.watch);
41
+ switch (transition.condition) {
42
+ case 'changed':
43
+ return prevValue !== nextValue;
44
+ case 'increased':
45
+ return typeof nextValue === 'number' && typeof prevValue === 'number' && nextValue > prevValue;
46
+ case 'decreased':
47
+ return typeof nextValue === 'number' && typeof prevValue === 'number' && nextValue < prevValue;
48
+ case 'added':
49
+ return prevValue === undefined && nextValue !== undefined;
50
+ case 'removed':
51
+ return prevValue !== undefined && nextValue === undefined;
52
+ default:
53
+ return false;
54
+ }
55
+ }
56
+ function getValueAtPath(obj, path) {
57
+ const parts = path.split('.');
58
+ let current = obj;
59
+ for (const part of parts) {
60
+ if (current === null || current === undefined)
61
+ return undefined;
62
+ current = current[part];
63
+ }
64
+ return current;
65
+ }
66
+ export function useStateView({ initialState, reducer, eventSource, transitions = [], onStateChange, }) {
67
+ const [state, setState] = useState(initialState);
68
+ const [animations, setAnimations] = useState([]);
69
+ const prevStateRef = useRef(initialState);
70
+ const animationIdRef = useRef(0);
71
+ const triggerAnimation = useCallback((transition, _event) => {
72
+ const id = `anim-${++animationIdRef.current}`;
73
+ const duration = transition.duration ?? 500;
74
+ const animation = {
75
+ id,
76
+ type: transition.animate,
77
+ target: transition.target ?? transition.watch,
78
+ startTime: Date.now(),
79
+ duration,
80
+ params: transition.params,
81
+ };
82
+ setAnimations((prev) => [...prev, animation]);
83
+ // Auto-remove after duration
84
+ setTimeout(() => {
85
+ setAnimations((prev) => prev.filter((a) => a.id !== id));
86
+ }, duration);
87
+ }, []);
88
+ const handleEvent = useCallback((event) => {
89
+ setState((prevState) => {
90
+ const nextState = reducer(prevState, event);
91
+ const changedPaths = getChangedPaths(prevState, nextState);
92
+ // Trigger animations based on transitions
93
+ for (const transition of transitions) {
94
+ if (shouldTriggerTransition(transition, prevState, nextState, changedPaths)) {
95
+ triggerAnimation(transition, event);
96
+ }
97
+ }
98
+ // Notify listener
99
+ if (onStateChange && changedPaths.length > 0) {
100
+ onStateChange({
101
+ prev: prevState,
102
+ next: nextState,
103
+ changedPaths,
104
+ event,
105
+ });
106
+ }
107
+ prevStateRef.current = nextState;
108
+ return nextState;
109
+ });
110
+ }, [reducer, transitions, onStateChange, triggerAnimation]);
111
+ // Subscribe to event source
112
+ useEffect(() => {
113
+ const unsubscribe = eventSource.subscribe(handleEvent);
114
+ return unsubscribe;
115
+ }, [eventSource, handleEvent]);
116
+ const reset = useCallback(() => {
117
+ setState(initialState);
118
+ setAnimations([]);
119
+ prevStateRef.current = initialState;
120
+ }, [initialState]);
121
+ const isReplay = eventSource.mode === 'replay';
122
+ return {
123
+ state,
124
+ animations,
125
+ isReplay,
126
+ reset,
127
+ };
128
+ }
129
+ //# sourceMappingURL=useStateView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStateView.js","sourceRoot":"","sources":["../../../src/components/state-view/useStateView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export interface GraphEditContextValue {
3
+ /** Called when a node resize operation completes */
4
+ onNodeResizeEnd?: (nodeId: string, dimensions: {
5
+ width: number;
6
+ height: number;
7
+ }) => void;
8
+ /** Called when node text is edited (for text and group nodes) */
9
+ onNodeTextChange?: (nodeId: string, text: string) => void;
10
+ /** Called to toggle node hidden state (Cmd/Ctrl+click) */
11
+ onToggleNodeHidden?: (nodeId: string) => void;
12
+ /** Called to hide all nodes not directly connected to the given node (Cmd/Ctrl+Shift+click) */
13
+ onHideUnconnectedNodes?: (nodeId: string) => void;
14
+ }
15
+ export declare const GraphEditProvider: React.FC<{
16
+ children: React.ReactNode;
17
+ value: GraphEditContextValue;
18
+ }>;
19
+ export declare const useGraphEdit: () => GraphEditContextValue;
20
+ //# sourceMappingURL=GraphEditContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphEditContext.d.ts","sourceRoot":"","sources":["../../src/contexts/GraphEditContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,+FAA+F;IAC/F,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAID,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAMA,CAAC;AAEF,eAAO,MAAM,YAAY,6BAAqC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ const GraphEditContext = createContext({});
4
+ export const GraphEditProvider = ({ children, value }) => {
5
+ return (_jsx(GraphEditContext.Provider, { value: value, children: children }));
6
+ };
7
+ export const useGraphEdit = () => useContext(GraphEditContext);
8
+ //# sourceMappingURL=GraphEditContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphEditContext.js","sourceRoot":"","sources":["../../src/contexts/GraphEditContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAazD,MAAM,gBAAgB,GAAG,aAAa,CAAwB,EAAE,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,iBAAiB,GAGzB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3B,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpC,QAAQ,GACiB,CAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Context for providing a portal target for tooltips.
4
+ * This allows tooltips to be rendered within the graph container
5
+ * instead of document.body, so they hide properly when tabs switch.
6
+ */
7
+ export declare const TooltipPortalContext: import("react").Context<HTMLElement | null>;
8
+ //# sourceMappingURL=TooltipPortalContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipPortalContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TooltipPortalContext.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,6CAA0C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+ /**
3
+ * Context for providing a portal target for tooltips.
4
+ * This allows tooltips to be rendered within the graph container
5
+ * instead of document.body, so they hide properly when tabs switch.
6
+ */
7
+ export const TooltipPortalContext = createContext(null);
8
+ //# sourceMappingURL=TooltipPortalContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipPortalContext.js","sourceRoot":"","sources":["../../src/contexts/TooltipPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { EdgeProps, Edge } from '@xyflow/react';
3
+ import type { EdgeTypeDefinition } from '@principal-ai/subsystems-core';
4
+ export interface CustomEdgeData extends Record<string, unknown> {
5
+ typeDefinition: EdgeTypeDefinition;
6
+ hasViolations?: boolean;
7
+ data?: Record<string, unknown>;
8
+ edgeType?: string;
9
+ animationType?: 'flow' | 'particle' | 'pulse' | 'glow' | null;
10
+ animationDuration?: number;
11
+ animationDirection?: 'forward' | 'backward' | 'bidirectional';
12
+ tooltipsEnabled?: boolean;
13
+ shiftKeyPressed?: boolean;
14
+ elkPath?: string;
15
+ elkLabelPosition?: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ }
20
+ /**
21
+ * Custom edge component for xyflow that renders based on EdgeTypeDefinition
22
+ */
23
+ export declare const CustomEdge: React.FC<EdgeProps<Edge<CustomEdgeData>>>;
24
+ //# sourceMappingURL=CustomEdge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomEdge.d.ts","sourceRoot":"","sources":["../../src/edges/CustomEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,cAAc,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;IAE9D,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAqXhE,CAAC"}
@@ -0,0 +1,222 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import { BaseEdge, EdgeLabelRenderer, getSmoothStepPath } from '@xyflow/react';
4
+ import { useTheme } from '@principal-ade/industry-theme';
5
+ /**
6
+ * Custom edge component for xyflow that renders based on EdgeTypeDefinition
7
+ */
8
+ export const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, data, markerEnd, selected, }) => {
9
+ const { theme } = useTheme();
10
+ const edgeProps = data;
11
+ const { typeDefinition, hasViolations, data: edgeData, edgeType, animationType, animationDuration = 1000, animationDirection = 'forward', tooltipsEnabled = true, shiftKeyPressed = false, elkPath, elkLabelPosition, } = edgeProps || {};
12
+ const [particlePosition, setParticlePosition] = useState(0);
13
+ const [isHovered, setIsHovered] = useState(false);
14
+ const pathRef = useRef(null);
15
+ // Particle animation effect
16
+ useEffect(() => {
17
+ if (animationType !== 'particle')
18
+ return;
19
+ const animate = () => {
20
+ setParticlePosition((prev) => {
21
+ const next = prev + (100 / animationDuration) * 16; // ~60fps
22
+ return next >= 100 ? 0 : next;
23
+ });
24
+ };
25
+ const intervalId = setInterval(animate, 16);
26
+ return () => clearInterval(intervalId);
27
+ }, [animationType, animationDuration]);
28
+ // Early return after hooks
29
+ if (!typeDefinition) {
30
+ return null;
31
+ }
32
+ // Color priority: violations > edge data color > type definition color > default
33
+ const edgeColor = edgeData?.color;
34
+ const color = hasViolations ? '#D0021B' : edgeColor || typeDefinition.color || '#888';
35
+ const width = typeDefinition.width || 2;
36
+ // Get edge path - use ELK path if available, otherwise fall back to SmoothStep
37
+ const [defaultPath, defaultLabelX, defaultLabelY] = getSmoothStepPath({
38
+ sourceX,
39
+ sourceY,
40
+ sourcePosition,
41
+ targetX,
42
+ targetY,
43
+ targetPosition,
44
+ borderRadius: 0,
45
+ offset: 20,
46
+ });
47
+ // Use ELK-computed path for circuit-board style routing when available
48
+ const edgePath = elkPath || defaultPath;
49
+ const labelX = elkLabelPosition?.x ?? defaultLabelX;
50
+ const labelY = elkLabelPosition?.y ?? defaultLabelY;
51
+ // Style based on edge type
52
+ const getStrokeStyle = () => {
53
+ switch (typeDefinition.style) {
54
+ case 'dashed':
55
+ return '5 5';
56
+ case 'dotted':
57
+ return '2 2';
58
+ default:
59
+ return 'none';
60
+ }
61
+ };
62
+ // Label configuration
63
+ const labelConfig = typeDefinition.label;
64
+ const labelField = labelConfig?.field;
65
+ const labelText = labelField && edgeData?.[labelField] ? String(edgeData[labelField]) : '';
66
+ // Animation-specific rendering helpers
67
+ const getAnimationClass = () => {
68
+ if (!animationType) {
69
+ return typeDefinition.style === 'animated' ? 'edge-flow-forward' : '';
70
+ }
71
+ switch (animationType) {
72
+ case 'flow':
73
+ return animationDirection === 'backward'
74
+ ? 'edge-flow-backward'
75
+ : animationDirection === 'bidirectional'
76
+ ? 'edge-flow-bidirectional'
77
+ : 'edge-flow-forward';
78
+ case 'pulse':
79
+ return 'edge-pulse';
80
+ case 'glow':
81
+ return 'edge-glow';
82
+ default:
83
+ return '';
84
+ }
85
+ };
86
+ const getAnimationDurationStyle = () => {
87
+ if (!animationType)
88
+ return {};
89
+ return {
90
+ animationDuration: `${animationDuration}ms`,
91
+ };
92
+ };
93
+ // Calculate particle position along path using SVG path methods
94
+ const getParticleTransform = () => {
95
+ if (!pathRef.current) {
96
+ // Fallback to linear interpolation if path ref not available yet
97
+ const progress = animationDirection === 'backward' ? 1 - particlePosition / 100 : particlePosition / 100;
98
+ const x = sourceX + (targetX - sourceX) * progress;
99
+ const y = sourceY + (targetY - sourceY) * progress;
100
+ return { x, y };
101
+ }
102
+ // Use actual path to get point along the curve
103
+ const pathLength = pathRef.current.getTotalLength();
104
+ const progress = animationDirection === 'backward' ? 1 - particlePosition / 100 : particlePosition / 100;
105
+ const distance = pathLength * progress;
106
+ const point = pathRef.current.getPointAtLength(distance);
107
+ return { x: point.x, y: point.y };
108
+ };
109
+ const particlePos = animationType === 'particle' ? getParticleTransform() : null;
110
+ return (_jsxs("g", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), style: { cursor: 'pointer' }, children: [_jsx("path", { ref: pathRef, d: edgePath, fill: "none", stroke: "transparent", strokeWidth: 0, style: { pointerEvents: 'none' } }), _jsx("path", { d: edgePath, fill: "none", stroke: "transparent", strokeWidth: Math.max(width + 10, 20), style: { pointerEvents: 'stroke' } }), _jsx(BaseEdge, { id: id, path: edgePath, markerEnd: markerEnd, style: {
111
+ stroke: color,
112
+ strokeWidth: selected ? width + 2 : width,
113
+ strokeDasharray: getStrokeStyle(),
114
+ opacity: animationType ? 0.7 : 1,
115
+ cursor: 'pointer',
116
+ } }), animationType === 'flow' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "10 5", className: getAnimationClass(), style: {
117
+ ...getAnimationDurationStyle(),
118
+ opacity: 0.8,
119
+ } })), animationType === 'pulse' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 2, className: getAnimationClass(), style: {
120
+ ...getAnimationDurationStyle(),
121
+ } })), animationType === 'glow' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 4, className: getAnimationClass(), style: {
122
+ ...getAnimationDurationStyle(),
123
+ filter: 'blur(3px)',
124
+ } })), animationType === 'particle' && particlePos && (_jsx("circle", { cx: particlePos.x, cy: particlePos.y, r: width * 1.5, fill: typeDefinition.animation?.color || color, style: {
125
+ filter: 'drop-shadow(0 0 3px rgba(0,0,0,0.3))',
126
+ } })), !animationType && typeDefinition.style === 'animated' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "5 5", className: "edge-flow-forward", style: {
127
+ animationDuration: '500ms',
128
+ } })), labelText && (_jsx(EdgeLabelRenderer, { children: _jsx("div", { style: {
129
+ position: 'absolute',
130
+ transform: `translate(-50%, -50%) translate(${labelX}px,${labelY}px)`,
131
+ backgroundColor: 'white',
132
+ padding: '2px 6px',
133
+ borderRadius: '4px',
134
+ fontSize: theme.fontSizes[0],
135
+ fontWeight: theme.fontWeights.medium,
136
+ fontFamily: theme.fonts.body,
137
+ border: `1px solid ${color}`,
138
+ pointerEvents: 'all',
139
+ zIndex: 1000,
140
+ }, className: "nodrag nopan", children: labelText }) })), tooltipsEnabled && isHovered && shiftKeyPressed && (_jsx(EdgeLabelRenderer, { children: _jsx("div", { style: {
141
+ position: 'absolute',
142
+ transform: `translate(-50%, -100%) translate(${labelX}px,${labelY - 12}px)`,
143
+ backgroundColor: 'rgba(0, 0, 0, 0.85)',
144
+ color: 'white',
145
+ padding: '4px 8px',
146
+ borderRadius: '4px',
147
+ fontSize: theme.fontSizes[0],
148
+ fontWeight: theme.fontWeights.medium,
149
+ fontFamily: theme.fonts.body,
150
+ whiteSpace: 'nowrap',
151
+ pointerEvents: 'none',
152
+ zIndex: 1000,
153
+ boxShadow: '0 2px 8px rgba(0,0,0,0.2)',
154
+ }, children: edgeType || 'edge' }) })), _jsx("style", { children: `
155
+ /* Flow animation - forward direction */
156
+ .edge-flow-forward {
157
+ animation: flow-forward linear infinite;
158
+ }
159
+
160
+ @keyframes flow-forward {
161
+ to {
162
+ stroke-dashoffset: -15;
163
+ }
164
+ }
165
+
166
+ /* Flow animation - backward direction */
167
+ .edge-flow-backward {
168
+ animation: flow-backward linear infinite;
169
+ }
170
+
171
+ @keyframes flow-backward {
172
+ to {
173
+ stroke-dashoffset: 15;
174
+ }
175
+ }
176
+
177
+ /* Flow animation - bidirectional (alternating) */
178
+ .edge-flow-bidirectional {
179
+ animation: flow-bidirectional linear infinite alternate;
180
+ }
181
+
182
+ @keyframes flow-bidirectional {
183
+ 0% {
184
+ stroke-dashoffset: -15;
185
+ }
186
+ 100% {
187
+ stroke-dashoffset: 15;
188
+ }
189
+ }
190
+
191
+ /* Pulse animation - wave effect */
192
+ .edge-pulse {
193
+ animation: pulse ease-in-out infinite;
194
+ }
195
+
196
+ @keyframes pulse {
197
+ 0%, 100% {
198
+ opacity: 0.3;
199
+ stroke-width: inherit;
200
+ }
201
+ 50% {
202
+ opacity: 1;
203
+ stroke-width: calc(inherit + 2);
204
+ }
205
+ }
206
+
207
+ /* Glow animation - brief highlight */
208
+ .edge-glow {
209
+ animation: glow ease-out forwards;
210
+ }
211
+
212
+ @keyframes glow {
213
+ 0% {
214
+ opacity: 1;
215
+ }
216
+ 100% {
217
+ opacity: 0;
218
+ }
219
+ }
220
+ ` })] }));
221
+ };
222
+ //# sourceMappingURL=CustomEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomEdge.js","sourceRoot":"","sources":["../../src/edges/CustomEdge.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG/E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAqBzD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA8C,CAAC,EACpE,EAAE,EACF,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,IAAI,EACJ,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,EACJ,cAAc,EACd,aAAa,EACb,IAAI,EAAE,QAAQ,EACd,QAAQ,EACR,aAAa,EACb,iBAAiB,GAAG,IAAI,EACxB,kBAAkB,GAAG,SAAS,EAC9B,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,OAAO,EACP,gBAAgB,GACjB,GAAG,SAAS,IAAK,EAAqB,CAAC;IAExC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE7C,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,KAAK,UAAU;YAAE,OAAO;QAEzC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;gBAC7D,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,iFAAiF;IACjF,MAAM,SAAS,GAAG,QAAQ,EAAE,KAA2B,CAAC;IACxD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC;IACtF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC;IAExC,+EAA+E;IAC/E,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,iBAAiB,CAAC;QACpE,OAAO;QACP,OAAO;QACP,cAAc;QACd,OAAO;QACP,OAAO;QACP,cAAc;QACd,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;IAEH,uEAAuE;IACvE,MAAM,QAAQ,GAAG,OAAO,IAAI,WAAW,CAAC;IACxC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,aAAa,CAAC;IACpD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,aAAa,CAAC;IAEpD,2BAA2B;IAC3B,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,QAAQ,cAAc,CAAC,KAAK,EAAE;YAC5B,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,MAAM,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,sBAAsB;IACtB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,WAAW,EAAE,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3F,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,cAAc,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE;QAED,QAAQ,aAAa,EAAE;YACrB,KAAK,MAAM;gBACT,OAAO,kBAAkB,KAAK,UAAU;oBACtC,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,kBAAkB,KAAK,eAAe;wBACxC,CAAC,CAAC,yBAAyB;wBAC3B,CAAC,CAAC,mBAAmB,CAAC;YAC1B,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,WAAW,CAAC;YACrB;gBACE,OAAO,EAAE,CAAC;SACb;IACH,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,GAAG,EAAE;QACrC,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAC9B,OAAO;YACL,iBAAiB,EAAE,GAAG,iBAAiB,IAAI;SAC5C,CAAC;IACJ,CAAC,CAAC;IAEF,gEAAgE;IAChE,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,iEAAiE;YACjE,MAAM,QAAQ,GACZ,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC1F,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC;YACnD,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC;YACnD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;SACjB;QAED,+CAA+C;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACpD,MAAM,QAAQ,GACZ,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC1F,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEzD,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,OAAO,CACL,aACE,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACtC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACvC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAG5B,eACE,GAAG,EAAE,OAAO,EACZ,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,aAAa,EACpB,WAAW,EAAE,CAAC,EACd,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAChC,EAGF,eACE,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,aAAa,EACpB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EACrC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAClC,EAEF,KAAC,QAAQ,IACP,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,SAAmB,EAC9B,KAAK,EAAE;oBACL,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;oBACzC,eAAe,EAAE,cAAc,EAAE;oBACjC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,EAAE,SAAS;iBAClB,GACD,EAGD,aAAa,KAAK,MAAM,IAAI,CAC3B,eACE,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,EAChD,WAAW,EAAE,KAAK,EAClB,eAAe,EAAC,MAAM,EACtB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,KAAK,EAAE;oBACL,GAAG,yBAAyB,EAAE;oBAC9B,OAAO,EAAE,GAAG;iBACb,GACD,CACH,EAGA,aAAa,KAAK,OAAO,IAAI,CAC5B,eACE,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,EAChD,WAAW,EAAE,KAAK,GAAG,CAAC,EACtB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,KAAK,EAAE;oBACL,GAAG,yBAAyB,EAAE;iBAC/B,GACD,CACH,EAGA,aAAa,KAAK,MAAM,IAAI,CAC3B,eACE,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,EAChD,WAAW,EAAE,KAAK,GAAG,CAAC,EACtB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,KAAK,EAAE;oBACL,GAAG,yBAAyB,EAAE;oBAC9B,MAAM,EAAE,WAAW;iBACpB,GACD,CACH,EAGA,aAAa,KAAK,UAAU,IAAI,WAAW,IAAI,CAC9C,iBACE,EAAE,EAAE,WAAW,CAAC,CAAC,EACjB,EAAE,EAAE,WAAW,CAAC,CAAC,EACjB,CAAC,EAAE,KAAK,GAAG,GAAG,EACd,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,EAC9C,KAAK,EAAE;oBACL,MAAM,EAAE,sCAAsC;iBAC/C,GACD,CACH,EAGA,CAAC,aAAa,IAAI,cAAc,CAAC,KAAK,KAAK,UAAU,IAAI,CACxD,eACE,CAAC,EAAE,QAAQ,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,EAChD,WAAW,EAAE,KAAK,EAClB,eAAe,EAAC,KAAK,EACrB,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE;oBACL,iBAAiB,EAAE,OAAO;iBAC3B,GACD,CACH,EAGA,SAAS,IAAI,CACZ,KAAC,iBAAiB,cAChB,cACE,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU;wBACpB,SAAS,EAAE,mCAAmC,MAAM,MAAM,MAAM,KAAK;wBACrE,eAAe,EAAE,OAAO;wBACxB,OAAO,EAAE,SAAS;wBAClB,YAAY,EAAE,KAAK;wBACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5B,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;wBACpC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;wBAC5B,MAAM,EAAE,aAAa,KAAK,EAAE;wBAC5B,aAAa,EAAE,KAAK;wBACpB,MAAM,EAAE,IAAI;qBACb,EACD,SAAS,EAAC,cAAc,YAEvB,SAAS,GACN,GACY,CACrB,EAGA,eAAe,IAAI,SAAS,IAAI,eAAe,IAAI,CAClD,KAAC,iBAAiB,cAChB,cACE,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU;wBACpB,SAAS,EAAE,oCAAoC,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK;wBAC3E,eAAe,EAAE,qBAAqB;wBACtC,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,SAAS;wBAClB,YAAY,EAAE,KAAK;wBACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5B,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;wBACpC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;wBAC5B,UAAU,EAAE,QAAQ;wBACpB,aAAa,EAAE,MAAM;wBACrB,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE,2BAA2B;qBACvC,YAEA,QAAQ,IAAI,MAAM,GACf,GACY,CACrB,EAGD,0BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEP,GAAS,IACR,CACL,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { EdgeTypeDefinition } from '@principal-ai/subsystems-core';
3
+ export interface GenericEdgeProps {
4
+ /** Edge ID */
5
+ id: string;
6
+ /** Edge type definition from configuration */
7
+ typeDefinition: EdgeTypeDefinition;
8
+ /** Edge data */
9
+ data?: Record<string, unknown>;
10
+ /** Whether this edge has violations */
11
+ hasViolations?: boolean;
12
+ }
13
+ /**
14
+ * Generic edge renderer that adapts based on EdgeTypeDefinition
15
+ * TODO: Implement different styles, animations, and labels
16
+ */
17
+ export declare const GenericEdge: React.FC<GenericEdgeProps>;
18
+ //# sourceMappingURL=GenericEdge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericEdge.d.ts","sourceRoot":"","sources":["../../src/edges/GenericEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,8CAA8C;IAC9C,cAAc,EAAE,kBAAkB,CAAC;IAEnC,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAclD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Generic edge renderer that adapts based on EdgeTypeDefinition
4
+ * TODO: Implement different styles, animations, and labels
5
+ */
6
+ export const GenericEdge = ({ id, typeDefinition, hasViolations }) => {
7
+ const color = hasViolations ? 'red' : typeDefinition.color || '#888';
8
+ return (_jsxs("div", { children: [_jsxs("div", { style: { fontSize: '10px', color }, children: ["Edge: ", id, " (", typeDefinition.style, ")"] }), _jsxs("div", { style: { fontSize: '8px' }, children: [_jsx("strong", { children: "TODO:" }), " Render in xyflow with proper styling"] })] }));
9
+ };
10
+ //# sourceMappingURL=GenericEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericEdge.js","sourceRoot":"","sources":["../../src/edges/GenericEdge.tsx"],"names":[],"mappings":";AAiBA;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE;IAC/F,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC;IAErE,OAAO,CACL,0BAEE,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,uBAC9B,EAAE,QAAI,cAAc,CAAC,KAAK,SAC7B,EACN,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAC7B,qCAAsB,6CAClB,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Resolve a subsystem component (file + symbol) to a graphify definition node.
3
+ *
4
+ * This is component *anchoring*, not type-ref stub rewiring (`resolve.ts`).
5
+ * Conservative: never bind via corpus-wide same-name alone.
6
+ */
7
+ import type { GraphifyNode } from './types';
8
+ import type { GraphifyAnchorResolution } from './consolidated';
9
+ export interface ComponentAnchorInput {
10
+ file?: string;
11
+ symbol?: string;
12
+ kind?: string;
13
+ purl?: string;
14
+ }
15
+ export interface ComponentAnchorResult {
16
+ resolution: GraphifyAnchorResolution;
17
+ node: GraphifyNode | null;
18
+ candidates: GraphifyNode[];
19
+ /** make_id strings attempted on the fast path. */
20
+ triedIds: string[];
21
+ }
22
+ /** Label forms that might match a subsystem symbol on a graphify node. */
23
+ export declare function symbolLabelVariants(symbol: string): string[];
24
+ /**
25
+ * Anchor a subsystem component onto a graphify definition node.
26
+ */
27
+ export declare function resolveComponentAnchor(nodes: readonly GraphifyNode[], input: ComponentAnchorInput): ComponentAnchorResult;
28
+ //# sourceMappingURL=anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/graphify/anchor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAQ/D,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,wBAAwB,CAAC;IACrC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAaD,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAa5D;AAwBD;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,KAAK,EAAE,oBAAoB,GACzB,qBAAqB,CAyEvB"}