@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,327 @@
1
+ /**
2
+ * React hook for sequence diagram layout
3
+ *
4
+ * Computes swimlane-based positioning for events. Lanes default to the first
5
+ * dotted segment of each event name. Callers can drill deeper by passing
6
+ * `openedNamespaces`: any prefix listed there has its events pushed one level
7
+ * deeper, so its children appear as their own lanes instead of being grouped
8
+ * under the parent.
9
+ */
10
+ import { useMemo } from 'react';
11
+ /**
12
+ * Resolve the lane (namespace prefix) for a given event name, given the set
13
+ * of opened namespaces. Walks segments from depth 1 outward, descending while
14
+ * the current prefix is opened, and stopping at the first prefix that isn't.
15
+ */
16
+ function resolveLane(name, opened) {
17
+ const segs = name.split('.');
18
+ let depth = 1;
19
+ while (depth < segs.length) {
20
+ const prefix = segs.slice(0, depth).join('.');
21
+ if (opened.has(prefix)) {
22
+ depth++;
23
+ }
24
+ else {
25
+ break;
26
+ }
27
+ }
28
+ return segs.slice(0, depth).join('.');
29
+ }
30
+ /**
31
+ * useSequenceLayout
32
+ *
33
+ * @param events - Events to lay out
34
+ * @param sequenceEdges - Edges connecting events
35
+ * @param options - Layout options (lane sizing, openedNamespaces)
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * const { nodes, edges, swimlanes } = useSequenceLayout(
40
+ * [
41
+ * { id: '1', name: 'auth.validation.started' },
42
+ * { id: '2', name: 'auth.validation.completed' },
43
+ * { id: '3', name: 'database.query.executed' },
44
+ * ],
45
+ * [
46
+ * { id: 'e1', fromEvent: '1', toEvent: '2' },
47
+ * { id: 'e2', fromEvent: '2', toEvent: '3' },
48
+ * ],
49
+ * { openedNamespaces: ['auth'] }, // drill `auth` to show validation/token as separate lanes
50
+ * );
51
+ * ```
52
+ */
53
+ export function useSequenceLayout(events, sequenceEdges, options = {}) {
54
+ const { openedNamespaces, laneOrder, laneWidth = 250, laneGap = 0, eventSpacing = 80, headerHeight = 60, nodeWidth = 14, nodeHeight = 14, } = options;
55
+ const laneOrderKey = useMemo(() => (laneOrder ? laneOrder.join('|') : ''), [laneOrder]);
56
+ // Normalize openedNamespaces into a stable string for memo dependency
57
+ const openedKey = useMemo(() => {
58
+ if (!openedNamespaces)
59
+ return '';
60
+ const arr = Array.from(openedNamespaces);
61
+ arr.sort();
62
+ return arr.join('|');
63
+ }, [openedNamespaces]);
64
+ return useMemo(() => {
65
+ if (events.length === 0) {
66
+ return {
67
+ nodes: [],
68
+ edges: [],
69
+ swimlanes: [],
70
+ parentHeaders: [],
71
+ headerRows: 1,
72
+ totalWidth: 0,
73
+ totalHeight: 0,
74
+ };
75
+ }
76
+ const opened = new Set(openedKey ? openedKey.split('|') : []);
77
+ // Step 1: Resolve each event to a lane prefix
78
+ const eventLane = new Map();
79
+ const laneEvents = new Map();
80
+ for (const event of events) {
81
+ const lane = resolveLane(event.name, opened);
82
+ eventLane.set(event.id, lane);
83
+ if (!laneEvents.has(lane)) {
84
+ laneEvents.set(lane, []);
85
+ }
86
+ laneEvents.get(lane).push(event.id);
87
+ }
88
+ // Step 2: Order lanes by first-event appearance (Map preserves insertion
89
+ // order from Step 1). If `laneOrder` is provided, listed namespaces are
90
+ // placed first in the given order; unlisted lanes follow in first-event
91
+ // order. Unknown entries in `laneOrder` are ignored.
92
+ const firstEventOrder = Array.from(laneEvents.keys());
93
+ let laneNames;
94
+ if (laneOrder && laneOrder.length > 0) {
95
+ const seen = new Set();
96
+ const ordered = [];
97
+ for (const ns of laneOrder) {
98
+ if (laneEvents.has(ns) && !seen.has(ns)) {
99
+ ordered.push(ns);
100
+ seen.add(ns);
101
+ }
102
+ }
103
+ for (const ns of firstEventOrder) {
104
+ if (!seen.has(ns))
105
+ ordered.push(ns);
106
+ }
107
+ laneNames = ordered;
108
+ }
109
+ else {
110
+ laneNames = firstEventOrder;
111
+ }
112
+ // canExpand is meaningful only when opening would actually fork the lane
113
+ // into multiple child lanes. If every event in the lane would drill into
114
+ // the same child, drilling is a relabel — hide the chevron.
115
+ const eventsById = new Map();
116
+ for (const event of events)
117
+ eventsById.set(event.id, event);
118
+ const canExpandLane = (laneNs, eventIds) => {
119
+ const augmented = new Set(opened);
120
+ augmented.add(laneNs);
121
+ const seen = new Set();
122
+ for (const eid of eventIds) {
123
+ const event = eventsById.get(eid);
124
+ if (!event)
125
+ continue;
126
+ seen.add(resolveLane(event.name, augmented));
127
+ if (seen.size > 1)
128
+ return true;
129
+ }
130
+ return false;
131
+ };
132
+ // Step 3: Build Swimlane records
133
+ const swimlanes = laneNames.map((namespace, index) => {
134
+ const x = index * (laneWidth + laneGap) + laneWidth / 2;
135
+ const segs = namespace.split('.');
136
+ const parentNamespace = segs.length > 1 ? segs.slice(0, -1).join('.') : undefined;
137
+ const eventIds = laneEvents.get(namespace);
138
+ return {
139
+ namespace,
140
+ label: segs[segs.length - 1] || namespace,
141
+ x,
142
+ parentNamespace,
143
+ isOpened: opened.has(namespace),
144
+ isParentOpened: parentNamespace ? opened.has(parentNamespace) : false,
145
+ canExpand: canExpandLane(namespace, eventIds),
146
+ eventIds,
147
+ };
148
+ });
149
+ const laneByNamespace = new Map();
150
+ for (const lane of swimlanes) {
151
+ laneByNamespace.set(lane.namespace, lane);
152
+ }
153
+ // Step 3b: Build parent header cells for opened ancestors. For every leaf
154
+ // lane at depth > 1, walk depths 1..d-1 and aggregate the leaf x-extent
155
+ // under each ancestor.
156
+ const ancestorBounds = new Map();
157
+ for (const lane of swimlanes) {
158
+ const segs = lane.namespace.split('.');
159
+ const left = lane.x - laneWidth / 2;
160
+ const right = lane.x + laneWidth / 2;
161
+ for (let d = 1; d < segs.length; d++) {
162
+ const ancestorNs = segs.slice(0, d).join('.');
163
+ const existing = ancestorBounds.get(ancestorNs);
164
+ if (existing) {
165
+ existing.xMin = Math.min(existing.xMin, left);
166
+ existing.xMax = Math.max(existing.xMax, right);
167
+ }
168
+ else {
169
+ ancestorBounds.set(ancestorNs, { xMin: left, xMax: right, depth: d });
170
+ }
171
+ }
172
+ }
173
+ const parentHeaders = Array.from(ancestorBounds.entries())
174
+ .map(([namespace, { xMin, xMax, depth }]) => {
175
+ const segs = namespace.split('.');
176
+ return {
177
+ namespace,
178
+ label: segs[segs.length - 1] || namespace,
179
+ x: (xMin + xMax) / 2,
180
+ width: xMax - xMin,
181
+ depth,
182
+ };
183
+ })
184
+ .sort((a, b) => a.depth - b.depth || a.x - b.x);
185
+ const headerRows = swimlanes.reduce((max, lane) => Math.max(max, lane.namespace.split('.').length), 1);
186
+ const totalHeaderHeight = headerHeight * headerRows;
187
+ // Step 4: Position events on global time layers, below the full header strip
188
+ const nodes = [];
189
+ for (let i = 0; i < events.length; i++) {
190
+ const event = events[i];
191
+ const laneNs = eventLane.get(event.id);
192
+ const lane = laneByNamespace.get(laneNs);
193
+ const y = totalHeaderHeight + 40 + i * eventSpacing;
194
+ nodes.push({
195
+ id: event.id,
196
+ type: 'sequenceMarker',
197
+ position: {
198
+ x: lane.x - nodeWidth / 2,
199
+ y: y - nodeHeight / 2,
200
+ },
201
+ data: {
202
+ label: event.label || event.name.split('.').pop() || event.name,
203
+ fullName: event.name,
204
+ namespace: laneNs,
205
+ timeLayer: i,
206
+ isMoveEvent: event.moveEvent === true,
207
+ sourcePath: event.sourcePath,
208
+ ...event.data,
209
+ },
210
+ style: {
211
+ width: nodeWidth,
212
+ height: nodeHeight,
213
+ },
214
+ });
215
+ }
216
+ // Step 5: Edges — one per event, looking ahead to the next
217
+ const edges = [];
218
+ for (let i = 0; i < events.length; i++) {
219
+ const currentEvent = events[i];
220
+ const currentLaneNs = eventLane.get(currentEvent.id);
221
+ const currentLane = laneByNamespace.get(currentLaneNs);
222
+ if (i < events.length - 1) {
223
+ const nextEvent = events[i + 1];
224
+ const nextLaneNs = eventLane.get(nextEvent.id);
225
+ const nextLane = laneByNamespace.get(nextLaneNs);
226
+ const nextIsMoveEvent = nextEvent.moveEvent === true;
227
+ const crossesLanes = currentLaneNs !== nextLaneNs;
228
+ const edgeLabel = currentEvent.label ||
229
+ currentEvent.name.split('.').pop() ||
230
+ currentEvent.name;
231
+ edges.push({
232
+ id: `edge-${currentEvent.id}-to-${nextEvent.id}`,
233
+ source: currentEvent.id,
234
+ target: nextEvent.id,
235
+ type: 'sequenceArrowParticipant',
236
+ label: edgeLabel,
237
+ labelStyle: { fontSize: 12, fontWeight: 500 },
238
+ labelBgStyle: { fill: 'white', fillOpacity: 0.8 },
239
+ data: {
240
+ crossesLanes,
241
+ sourceNamespace: currentLaneNs,
242
+ targetNamespace: nextLaneNs,
243
+ isMoveEvent: nextIsMoveEvent,
244
+ sourceEvent: currentEvent,
245
+ targetEvent: nextEvent,
246
+ sourceParticipantX: currentLane.x,
247
+ targetParticipantX: nextLane.x,
248
+ },
249
+ });
250
+ }
251
+ else {
252
+ const currentIsMoveEvent = currentEvent.moveEvent === true;
253
+ const edgeLabel = currentEvent.label ||
254
+ currentEvent.name.split('.').pop() ||
255
+ currentEvent.name;
256
+ edges.push({
257
+ id: `edge-${currentEvent.id}-end`,
258
+ source: currentEvent.id,
259
+ target: currentEvent.id,
260
+ type: 'sequenceArrowParticipant',
261
+ label: edgeLabel,
262
+ labelStyle: { fontSize: 12, fontWeight: 500 },
263
+ labelBgStyle: { fill: 'white', fillOpacity: 0.8 },
264
+ data: {
265
+ crossesLanes: false,
266
+ sourceNamespace: currentLaneNs,
267
+ targetNamespace: currentLaneNs,
268
+ isMoveEvent: currentIsMoveEvent,
269
+ sourceEvent: currentEvent,
270
+ targetEvent: currentEvent,
271
+ sourceParticipantX: currentLane.x,
272
+ targetParticipantX: currentLane.x,
273
+ isLastEvent: true,
274
+ eventSpacing,
275
+ },
276
+ });
277
+ }
278
+ }
279
+ // Step 6: Compute total dimensions
280
+ const totalWidth = swimlanes.length * laneWidth + (swimlanes.length - 1) * laneGap;
281
+ const totalHeight = totalHeaderHeight + 40 + events.length * eventSpacing;
282
+ // Step 7: Boundary nodes so React Flow's fitView covers full width
283
+ if (swimlanes.length > 0) {
284
+ const leftmostLane = swimlanes[0];
285
+ const rightmostLane = swimlanes[swimlanes.length - 1];
286
+ nodes.push({
287
+ id: '__boundary_left__',
288
+ type: 'default',
289
+ position: { x: leftmostLane.x - laneWidth / 2, y: 0 },
290
+ data: {},
291
+ style: { width: 1, height: 1, opacity: 0 },
292
+ draggable: false,
293
+ selectable: false,
294
+ }, {
295
+ id: '__boundary_right__',
296
+ type: 'default',
297
+ position: { x: rightmostLane.x + laneWidth / 2, y: totalHeight },
298
+ data: {},
299
+ style: { width: 1, height: 1, opacity: 0 },
300
+ draggable: false,
301
+ selectable: false,
302
+ });
303
+ }
304
+ return {
305
+ nodes,
306
+ edges,
307
+ swimlanes,
308
+ parentHeaders,
309
+ headerRows,
310
+ totalWidth,
311
+ totalHeight,
312
+ };
313
+ }, [
314
+ events,
315
+ sequenceEdges,
316
+ openedKey,
317
+ laneOrderKey,
318
+ laneOrder,
319
+ laneWidth,
320
+ laneGap,
321
+ eventSpacing,
322
+ headerHeight,
323
+ nodeWidth,
324
+ nodeHeight,
325
+ ]);
326
+ }
327
+ //# sourceMappingURL=useSequenceLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSequenceLayout.js","sourceRoot":"","sources":["../../src/hooks/useSequenceLayout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Hook for managing undo/redo history in the graph editor
3
+ *
4
+ * Tracks position changes, dimension changes, edge operations, and node deletions
5
+ * Supports batch operations (e.g., moving multiple selected nodes = single undo)
6
+ */
7
+ import type { NodeState, EdgeState } from '@principal-ai/subsystems-core';
8
+ /**
9
+ * Individual history entry types
10
+ */
11
+ export type HistoryEntry = {
12
+ type: 'position';
13
+ nodeId: string;
14
+ before: {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ after: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ } | {
23
+ type: 'dimension';
24
+ nodeId: string;
25
+ before: {
26
+ width: number;
27
+ height: number;
28
+ };
29
+ after: {
30
+ width: number;
31
+ height: number;
32
+ };
33
+ } | {
34
+ type: 'text';
35
+ nodeId: string;
36
+ before: string;
37
+ after: string;
38
+ } | {
39
+ type: 'nodeDelete';
40
+ nodeId: string;
41
+ nodeData: NodeState;
42
+ } | {
43
+ type: 'edgeCreate';
44
+ edge: EdgeState & {
45
+ sourceHandle?: string;
46
+ targetHandle?: string;
47
+ };
48
+ } | {
49
+ type: 'edgeDelete';
50
+ edge: EdgeState & {
51
+ sourceHandle?: string;
52
+ targetHandle?: string;
53
+ };
54
+ };
55
+ /**
56
+ * A batch of history entries that should be undone/redone together
57
+ */
58
+ export type HistoryBatch = HistoryEntry[];
59
+ export interface UseUndoRedoReturn {
60
+ /** Whether there are entries to undo */
61
+ canUndo: boolean;
62
+ /** Whether there are entries to redo */
63
+ canRedo: boolean;
64
+ /** Undo the last batch of changes, returns the entries to reverse */
65
+ undo: () => HistoryBatch | null;
66
+ /** Redo the last undone batch, returns the entries to re-apply */
67
+ redo: () => HistoryBatch | null;
68
+ /** Push a new batch of entries to the undo stack (clears redo stack) */
69
+ pushHistory: (entries: HistoryBatch) => void;
70
+ /** Clear all history (both undo and redo stacks) */
71
+ clearHistory: () => void;
72
+ }
73
+ /**
74
+ * Hook for managing undo/redo history
75
+ *
76
+ * Uses refs for stacks to avoid re-renders on every push,
77
+ * with state for canUndo/canRedo to trigger UI updates
78
+ */
79
+ export declare function useUndoRedo(): UseUndoRedoReturn;
80
+ //# sourceMappingURL=useUndoRedo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUndoRedo.d.ts","sourceRoot":"","sources":["../../src/hooks/useUndoRedo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI1E;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,IAAI,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAChC,kEAAkE;IAClE,IAAI,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAChC,wEAAwE;IACxE,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAqE/C"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Hook for managing undo/redo history in the graph editor
3
+ *
4
+ * Tracks position changes, dimension changes, edge operations, and node deletions
5
+ * Supports batch operations (e.g., moving multiple selected nodes = single undo)
6
+ */
7
+ import { useRef, useState, useCallback } from 'react';
8
+ const MAX_HISTORY_SIZE = 50;
9
+ /**
10
+ * Hook for managing undo/redo history
11
+ *
12
+ * Uses refs for stacks to avoid re-renders on every push,
13
+ * with state for canUndo/canRedo to trigger UI updates
14
+ */
15
+ export function useUndoRedo() {
16
+ // Use refs for stacks to avoid re-renders on every push
17
+ const undoStackRef = useRef([]);
18
+ const redoStackRef = useRef([]);
19
+ // State for UI updates (canUndo/canRedo)
20
+ const [canUndo, setCanUndo] = useState(false);
21
+ const [canRedo, setCanRedo] = useState(false);
22
+ const updateCanStates = useCallback(() => {
23
+ setCanUndo(undoStackRef.current.length > 0);
24
+ setCanRedo(redoStackRef.current.length > 0);
25
+ }, []);
26
+ const pushHistory = useCallback((entries) => {
27
+ if (entries.length === 0)
28
+ return;
29
+ undoStackRef.current.push(entries);
30
+ // Limit stack size
31
+ if (undoStackRef.current.length > MAX_HISTORY_SIZE) {
32
+ undoStackRef.current.shift();
33
+ }
34
+ // Clear redo stack when new changes are made
35
+ redoStackRef.current = [];
36
+ updateCanStates();
37
+ }, [updateCanStates]);
38
+ const undo = useCallback(() => {
39
+ const batch = undoStackRef.current.pop();
40
+ if (!batch)
41
+ return null;
42
+ // Push to redo stack
43
+ redoStackRef.current.push(batch);
44
+ updateCanStates();
45
+ return batch;
46
+ }, [updateCanStates]);
47
+ const redo = useCallback(() => {
48
+ const batch = redoStackRef.current.pop();
49
+ if (!batch)
50
+ return null;
51
+ // Push back to undo stack
52
+ undoStackRef.current.push(batch);
53
+ updateCanStates();
54
+ return batch;
55
+ }, [updateCanStates]);
56
+ const clearHistory = useCallback(() => {
57
+ undoStackRef.current = [];
58
+ redoStackRef.current = [];
59
+ updateCanStates();
60
+ }, [updateCanStates]);
61
+ return {
62
+ canUndo,
63
+ canRedo,
64
+ undo,
65
+ redo,
66
+ pushHistory,
67
+ clearHistory,
68
+ };
69
+ }
70
+ //# sourceMappingURL=useUndoRedo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUndoRedo.js","sourceRoot":"","sources":["../../src/hooks/useUndoRedo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGtD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AA0D5B;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IACzB,wDAAwD;IACxD,MAAM,YAAY,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;IAEhD,yCAAyC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,OAAqB,EAAE,EAAE;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,mBAAmB;QACnB,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,gBAAgB,EAAE;YAClD,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC9B;QAED,6CAA6C;QAC7C,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QAE1B,eAAe,EAAE,CAAC;IACpB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAwB,EAAE;QACjD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,qBAAqB;QACrB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjC,eAAe,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAwB,EAAE;QACjD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,0BAA0B;QAC1B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjC,eAAe,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @principal-ai/visual-validation-react
3
+ * React components for graph-based visual validation framework
4
+ *
5
+ * This library provides UI building blocks for creating graph visualization panels.
6
+ * The actual "panel" application should be built separately using these components.
7
+ */
8
+ export type { GraphConfiguration, GraphEvent, GraphMetrics, Violation, Warning, ValidationResult, EventStream, NodeTypeDefinition, EdgeTypeDefinition, ConnectionRule, NodeState, EdgeState, ConfigurationFile, ConfigurationLoadResult, ComponentLibrary, } from '@principal-ai/subsystems-core';
9
+ export { GraphRenderer } from './components/GraphRenderer';
10
+ export type { GraphRendererProps, GraphRendererHandle, NodePositionChange, PendingChanges, } from './components/GraphRenderer';
11
+ export { SequenceDiagramRenderer } from './components/SequenceDiagramRenderer';
12
+ export type { SequenceDiagramRendererProps } from './components/SequenceDiagramRenderer';
13
+ export { WorkflowSequenceDiagram } from './components/WorkflowSequenceDiagram';
14
+ export type { WorkflowSequenceDiagramProps } from './components/WorkflowSequenceDiagram';
15
+ export { useSequenceLayout } from './hooks/useSequenceLayout';
16
+ export type { SequenceEvent, SequenceEdge, Swimlane, UseSequenceLayoutOptions, UseSequenceLayoutResult, } from './hooks/useSequenceLayout';
17
+ export { MultiCanvasRenderer, mergeCanvases, parseNodeId } from './components/MultiCanvasRenderer';
18
+ export type { MultiCanvasRendererProps, MultiCanvasLayout, CanvasPlacement, } from './components/MultiCanvasRenderer';
19
+ export { ConfigurationSelector } from './components/ConfigurationSelector';
20
+ export type { ConfigurationSelectorProps } from './components/ConfigurationSelector';
21
+ export { GenericNode } from './nodes/GenericNode';
22
+ export type { GenericNodeProps } from './nodes/GenericNode';
23
+ export { CustomNode } from './nodes/CustomNode';
24
+ export type { CustomNodeData } from './nodes/CustomNode';
25
+ export { OtelSpanConventionNode, OtelEventNode, OtelScopeNode, OtelResourceNode, OtelBoundaryNode, } from './nodes/otel';
26
+ export type { OtelSpanConventionNodeData, OtelEventNodeData, OtelScopeNodeData, OtelResourceNodeData, OtelBoundaryNodeData, WorkflowChip, } from './nodes/otel';
27
+ export { GenericEdge } from './edges/GenericEdge';
28
+ export type { GenericEdgeProps } from './edges/GenericEdge';
29
+ export { CustomEdge } from './edges/CustomEdge';
30
+ export type { CustomEdgeData } from './edges/CustomEdge';
31
+ export { NodeTooltip } from './components/NodeTooltip';
32
+ export type { NodeTooltipProps, OtelInfo } from './components/NodeTooltip';
33
+ export { convertToXYFlowNodes, convertToXYFlowEdges, } from './utils/graphConverter';
34
+ export type { EdgeStateWithHandles } from './utils/graphConverter';
35
+ export { Icon, resolveIcon } from './utils/iconResolver';
36
+ export type { IconProps } from './utils/iconResolver';
37
+ export { swapGraphOrientation, swapNodePositions, swapEdgeSides, } from './utils/orientationUtils';
38
+ export { getCanvasBounds, getCanvasDisplaySize, calculateInitialViewport } from './utils/canvasBounds';
39
+ export type { CanvasBounds, Viewport } from './utils/canvasBounds';
40
+ export { computeElkLayout, createElkLayouter } from './utils/elkLayout';
41
+ export type { ElkLayoutOptions, ElkLayoutResult, ElkRoutingStyle } from './utils/elkLayout';
42
+ export { useElkLayout, applyElkPathsToEdges } from './hooks/useElkLayout';
43
+ export type { UseElkLayoutOptions, UseElkLayoutResult } from './hooks/useElkLayout';
44
+ export { DashboardRenderer, MetricPanel, MetricCard, LineChart, BarChart, SourceLink, TimeRangeSelector, MockDataProvider, createMockDataProvider, } from './components/dashboard';
45
+ export type { DashboardDefinition, MetricDefinition, MetricType, MetricSource, MetricQuery, Derivation, TimeGroup, AlertDefinition, MetricDisplay, DisplayComponent, DashboardLayout, DashboardRow, PanelPlacement, TimeRangePreset, TimeRange, RefreshInterval, TimeRangeConfig, MockMetricData, TimeSeriesPoint, HistogramData, MetricData, DataProvider, DashboardRendererProps, MetricPanelProps, MetricCardProps, LineChartProps, BarChartProps, SourceLinkProps, TimeRangeSelectorProps, } from './components/dashboard';
46
+ export { PipelineView, useStateView } from './components/state-view';
47
+ export type { StateEvent, EventSource, StateReducer, StateDiff, TransitionDefinition, ActiveAnimation, AnimationType, ReplayControls, StateViewDefinition, PipelineState, PipelineStage, PipelineRepoState, PipelineEvent, PipelineEventType, ActivityState, RoomState, ActivityEvent, ActivityEventType, QuotaDistributionState, UserQuotaState, QuotaEvent, QuotaEventType, UseStateViewOptions, UseStateViewResult, PipelineViewProps, } from './components/state-view';
48
+ export { SessionEventFeed, SessionEventFeedGrouped, } from './components/session-events';
49
+ export type { SessionEventFeedProps, SessionEventFeedGroupedProps, SessionEventFeedRow, } from './components/session-events';
50
+ export type { JsonValue, GraphifyFileType, GraphifyConfidence, GraphifyNodeType, GraphifyRelation, GraphifyNode, GraphifyEdge, GraphifyHyperedge, GraphifyGraphMetadata, GraphifyGraph, } from './graphify';
51
+ export type { GraphifyAnchorResolution, SubsystemGraphifyAnchor, GraphifyMethodInfo, GraphifyPropertyInfo, GraphifyParamInfo, GraphifyCallInfo, GraphifyReferenceInfo, GraphifyImportInfo, GraphifyClassDetail, GraphifyFunctionDetail, GraphifyTypeDetail, GraphifyModuleDetail, GraphifyExternalDetail, GraphifyComponentDetail, GraphifyEdgeRef, } from './graphify';
52
+ export type { GraphifyTypeRefStatus, GraphifyTypeRefResolution, } from './graphify';
53
+ export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, normalizeGraphifyId, makeGraphifyId, graphifyFileStem, normalizeSourcePath, resolveComponentAnchor, symbolLabelVariants, inferGraphifyKind, kindsMatch, extractNamedTypes, extractGraphifySignature, compareSignatures, } from './graphify';
54
+ export type { ComponentAnchorInput, ComponentAnchorResult, InferredGraphifyKind, InferGraphifyKindResult, GraphifyInferredSignature, ClaimedSignature, SignatureCompareResult, } from './graphify';
55
+ export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
56
+ export type { SubsystemComponentGraphProps, ThroughlineViewerContext } from './subsystem/SubsystemComponentGraph';
57
+ export type { ComponentVerificationState, ComponentVerificationPhase, ComponentDeclarationProps, } from './subsystem/ComponentDeclaration';
58
+ export { ComponentDeclaration } from './subsystem/ComponentDeclaration';
59
+ export { MECHANISM_COLOR, MECHANISM_STYLE } from './subsystem/model';
60
+ export { CONSTRUCT_COLOR, constructColorsFromPierreTheme } from './pierre/constructColors';
61
+ export { purlRepoKey, purlOwnerName, buildTreePathMapping, buildRepoGroups, repoAvatarUrl, } from './subsystem/paths';
62
+ export type { TreeEntry, TreePathMapping, RepoGroup, } from './subsystem/paths';
63
+ export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
64
+ export type { SubsystemFileTreeProps } from './subsystem/SubsystemFileTree';
65
+ export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
66
+ export type { GraphLayoutCoverProps } from './subsystem/GraphLayoutCover';
67
+ export type { SubsystemComponent, SubsystemComponentEdge, SubsystemThroughline, SubsystemThroughlineStep, SubsystemModelDocument, SubsystemComponentConstruct, SubsystemComponentRole, SubsystemFramework, SubsystemStereotype, SubsystemEdgeMechanism, } from './subsystem/model';
68
+ export { constructBadgeLabel, deriveNameFromSymbol, nodeMinWidthForBadges, ROLE_COLOR, ROLE_LABEL, } from './subsystem/model';
69
+ export type { SubsystemDeclarationRef, SubsystemOpenFileOptions, DeclarationFreshness, } from './subsystem/declarationRef';
70
+ export { parseSourceLocation, normalizeDeclarationLine, extractDeclarationLine, DECLARATION_HASH_ALGO, } from './subsystem/declarationRef';
71
+ export { PierreFileView, PierreSnippetView, PierreThroughlineCodeView, sliceSnippetWindow, resolvePierreSyntaxThemeName } from './pierre';
72
+ export type { PierreFileViewProps, PierreSnippetViewProps, PierreThroughlineCodeViewProps, SnippetSlice, PierreSyntaxThemeName, } from './pierre';
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EAEvB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,YAAY,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,YAAY,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACnG,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvG,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,EAEd,eAAe,EACf,SAAS,EACT,eAAe,EACf,eAAe,EAEf,cAAc,EACd,eAAe,EACf,aAAa,EAEb,UAAU,EACV,YAAY,EAEZ,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAEV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EAEnB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EAEjB,aAAa,EACb,SAAS,EACT,aAAa,EACb,iBAAiB,EAEjB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,cAAc,EAEd,mBAAmB,EACnB,kBAAkB,EAElB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAClH,YAAY,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,SAAS,EACT,eAAe,EACf,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAC1I,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @principal-ai/visual-validation-react
3
+ * React components for graph-based visual validation framework
4
+ *
5
+ * This library provides UI building blocks for creating graph visualization panels.
6
+ * The actual "panel" application should be built separately using these components.
7
+ */
8
+ // Export components
9
+ export { GraphRenderer } from './components/GraphRenderer';
10
+ export { SequenceDiagramRenderer } from './components/SequenceDiagramRenderer';
11
+ export { WorkflowSequenceDiagram } from './components/WorkflowSequenceDiagram';
12
+ export { useSequenceLayout } from './hooks/useSequenceLayout';
13
+ export { MultiCanvasRenderer, mergeCanvases, parseNodeId } from './components/MultiCanvasRenderer';
14
+ export { ConfigurationSelector } from './components/ConfigurationSelector';
15
+ // Export node/edge renderers
16
+ export { GenericNode } from './nodes/GenericNode';
17
+ export { CustomNode } from './nodes/CustomNode';
18
+ // Export OTEL node components
19
+ export { OtelSpanConventionNode, OtelEventNode, OtelScopeNode, OtelResourceNode, OtelBoundaryNode, } from './nodes/otel';
20
+ export { GenericEdge } from './edges/GenericEdge';
21
+ export { CustomEdge } from './edges/CustomEdge';
22
+ // Export tooltip component
23
+ export { NodeTooltip } from './components/NodeTooltip';
24
+ // Export utilities
25
+ export { convertToXYFlowNodes, convertToXYFlowEdges, } from './utils/graphConverter';
26
+ export { Icon, resolveIcon } from './utils/iconResolver';
27
+ export { swapGraphOrientation, swapNodePositions, swapEdgeSides, } from './utils/orientationUtils';
28
+ export { getCanvasBounds, getCanvasDisplaySize, calculateInitialViewport } from './utils/canvasBounds';
29
+ // ELK layout utilities for circuit-board style edge routing
30
+ export { computeElkLayout, createElkLayouter } from './utils/elkLayout';
31
+ export { useElkLayout, applyElkPathsToEdges } from './hooks/useElkLayout';
32
+ // Dashboard components for rendering metrics from dashboard definition files
33
+ export { DashboardRenderer, MetricPanel, MetricCard, LineChart, BarChart, SourceLink, TimeRangeSelector, MockDataProvider, createMockDataProvider, } from './components/dashboard';
34
+ // State View components for event-driven state visualization
35
+ export { PipelineView, useStateView } from './components/state-view';
36
+ // Session event diagnostic feed (raw → repo-normalized → accumulated)
37
+ export { SessionEventFeed, SessionEventFeedGrouped, } from './components/session-events';
38
+ export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, normalizeGraphifyId, makeGraphifyId, graphifyFileStem, normalizeSourcePath, resolveComponentAnchor, symbolLabelVariants, inferGraphifyKind, kindsMatch, extractNamedTypes, extractGraphifySignature, compareSignatures, } from './graphify';
39
+ // Subsystem component graph
40
+ export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
41
+ export { ComponentDeclaration } from './subsystem/ComponentDeclaration';
42
+ export { MECHANISM_COLOR, MECHANISM_STYLE } from './subsystem/model';
43
+ export { CONSTRUCT_COLOR, constructColorsFromPierreTheme } from './pierre/constructColors';
44
+ export { purlRepoKey, purlOwnerName, buildTreePathMapping, buildRepoGroups, repoAvatarUrl, } from './subsystem/paths';
45
+ export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
46
+ export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
47
+ export { constructBadgeLabel, deriveNameFromSymbol, nodeMinWidthForBadges, ROLE_COLOR, ROLE_LABEL, } from './subsystem/model';
48
+ export { parseSourceLocation, normalizeDeclarationLine, extractDeclarationLine, DECLARATION_HASH_ALGO, } from './subsystem/declarationRef';
49
+ // Pierre code views (@pierre/diffs wrappers)
50
+ export { PierreFileView, PierreSnippetView, PierreThroughlineCodeView, sliceSnippetWindow, resolvePierreSyntaxThemeName } from './pierre';
51
+ //# sourceMappingURL=index.js.map