@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.
- package/README.md +93 -0
- package/dist/components/ConfigurationSelector.d.ts +35 -0
- package/dist/components/ConfigurationSelector.d.ts.map +1 -0
- package/dist/components/ConfigurationSelector.js +63 -0
- package/dist/components/ConfigurationSelector.js.map +1 -0
- package/dist/components/GraphRenderer.d.ts +295 -0
- package/dist/components/GraphRenderer.d.ts.map +1 -0
- package/dist/components/GraphRenderer.js +2008 -0
- package/dist/components/GraphRenderer.js.map +1 -0
- package/dist/components/MultiCanvasRenderer.d.ts +75 -0
- package/dist/components/MultiCanvasRenderer.d.ts.map +1 -0
- package/dist/components/MultiCanvasRenderer.js +203 -0
- package/dist/components/MultiCanvasRenderer.js.map +1 -0
- package/dist/components/NodeTooltip.d.ts +24 -0
- package/dist/components/NodeTooltip.d.ts.map +1 -0
- package/dist/components/NodeTooltip.js +160 -0
- package/dist/components/NodeTooltip.js.map +1 -0
- package/dist/components/SelectionSidebar.d.ts +18 -0
- package/dist/components/SelectionSidebar.d.ts.map +1 -0
- package/dist/components/SelectionSidebar.js +190 -0
- package/dist/components/SelectionSidebar.js.map +1 -0
- package/dist/components/SequenceDiagramRenderer.d.ts +77 -0
- package/dist/components/SequenceDiagramRenderer.d.ts.map +1 -0
- package/dist/components/SequenceDiagramRenderer.js +604 -0
- package/dist/components/SequenceDiagramRenderer.js.map +1 -0
- package/dist/components/WorkflowSequenceDiagram.d.ts +63 -0
- package/dist/components/WorkflowSequenceDiagram.d.ts.map +1 -0
- package/dist/components/WorkflowSequenceDiagram.js +147 -0
- package/dist/components/WorkflowSequenceDiagram.js.map +1 -0
- package/dist/components/dashboard/DashboardRenderer.d.ts +10 -0
- package/dist/components/dashboard/DashboardRenderer.d.ts.map +1 -0
- package/dist/components/dashboard/DashboardRenderer.js +179 -0
- package/dist/components/dashboard/DashboardRenderer.js.map +1 -0
- package/dist/components/dashboard/MetricPanel.d.ts +10 -0
- package/dist/components/dashboard/MetricPanel.d.ts.map +1 -0
- package/dist/components/dashboard/MetricPanel.js +103 -0
- package/dist/components/dashboard/MetricPanel.js.map +1 -0
- package/dist/components/dashboard/MockDataProvider.d.ts +30 -0
- package/dist/components/dashboard/MockDataProvider.d.ts.map +1 -0
- package/dist/components/dashboard/MockDataProvider.js +270 -0
- package/dist/components/dashboard/MockDataProvider.js.map +1 -0
- package/dist/components/dashboard/components/BarChart.d.ts +10 -0
- package/dist/components/dashboard/components/BarChart.d.ts.map +1 -0
- package/dist/components/dashboard/components/BarChart.js +167 -0
- package/dist/components/dashboard/components/BarChart.js.map +1 -0
- package/dist/components/dashboard/components/LineChart.d.ts +10 -0
- package/dist/components/dashboard/components/LineChart.d.ts.map +1 -0
- package/dist/components/dashboard/components/LineChart.js +141 -0
- package/dist/components/dashboard/components/LineChart.js.map +1 -0
- package/dist/components/dashboard/components/MetricCard.d.ts +9 -0
- package/dist/components/dashboard/components/MetricCard.d.ts.map +1 -0
- package/dist/components/dashboard/components/MetricCard.js +163 -0
- package/dist/components/dashboard/components/MetricCard.js.map +1 -0
- package/dist/components/dashboard/components/SourceLink.d.ts +9 -0
- package/dist/components/dashboard/components/SourceLink.d.ts.map +1 -0
- package/dist/components/dashboard/components/SourceLink.js +39 -0
- package/dist/components/dashboard/components/SourceLink.js.map +1 -0
- package/dist/components/dashboard/components/TimeRangeSelector.d.ts +9 -0
- package/dist/components/dashboard/components/TimeRangeSelector.d.ts.map +1 -0
- package/dist/components/dashboard/components/TimeRangeSelector.js +167 -0
- package/dist/components/dashboard/components/TimeRangeSelector.js.map +1 -0
- package/dist/components/dashboard/components/index.d.ts +6 -0
- package/dist/components/dashboard/components/index.d.ts.map +1 -0
- package/dist/components/dashboard/components/index.js +6 -0
- package/dist/components/dashboard/components/index.js.map +1 -0
- package/dist/components/dashboard/index.d.ts +6 -0
- package/dist/components/dashboard/index.d.ts.map +1 -0
- package/dist/components/dashboard/index.js +8 -0
- package/dist/components/dashboard/index.js.map +1 -0
- package/dist/components/dashboard/types.d.ts +74 -0
- package/dist/components/dashboard/types.d.ts.map +1 -0
- package/dist/components/dashboard/types.js +8 -0
- package/dist/components/dashboard/types.js.map +1 -0
- package/dist/components/session-events/SessionEventFeed.d.ts +34 -0
- package/dist/components/session-events/SessionEventFeed.d.ts.map +1 -0
- package/dist/components/session-events/SessionEventFeed.js +1196 -0
- package/dist/components/session-events/SessionEventFeed.js.map +1 -0
- package/dist/components/session-events/index.d.ts +7 -0
- package/dist/components/session-events/index.d.ts.map +1 -0
- package/dist/components/session-events/index.js +6 -0
- package/dist/components/session-events/index.js.map +1 -0
- package/dist/components/state-view/PipelineView.d.ts +14 -0
- package/dist/components/state-view/PipelineView.d.ts.map +1 -0
- package/dist/components/state-view/PipelineView.js +195 -0
- package/dist/components/state-view/PipelineView.js.map +1 -0
- package/dist/components/state-view/index.d.ts +14 -0
- package/dist/components/state-view/index.d.ts.map +1 -0
- package/dist/components/state-view/index.js +12 -0
- package/dist/components/state-view/index.js.map +1 -0
- package/dist/components/state-view/types.d.ts +188 -0
- package/dist/components/state-view/types.d.ts.map +1 -0
- package/dist/components/state-view/types.js +10 -0
- package/dist/components/state-view/types.js.map +1 -0
- package/dist/components/state-view/useStateView.d.ts +32 -0
- package/dist/components/state-view/useStateView.d.ts.map +1 -0
- package/dist/components/state-view/useStateView.js +129 -0
- package/dist/components/state-view/useStateView.js.map +1 -0
- package/dist/contexts/GraphEditContext.d.ts +20 -0
- package/dist/contexts/GraphEditContext.d.ts.map +1 -0
- package/dist/contexts/GraphEditContext.js +8 -0
- package/dist/contexts/GraphEditContext.js.map +1 -0
- package/dist/contexts/TooltipPortalContext.d.ts +8 -0
- package/dist/contexts/TooltipPortalContext.d.ts.map +1 -0
- package/dist/contexts/TooltipPortalContext.js +8 -0
- package/dist/contexts/TooltipPortalContext.js.map +1 -0
- package/dist/edges/CustomEdge.d.ts +24 -0
- package/dist/edges/CustomEdge.d.ts.map +1 -0
- package/dist/edges/CustomEdge.js +222 -0
- package/dist/edges/CustomEdge.js.map +1 -0
- package/dist/edges/GenericEdge.d.ts +18 -0
- package/dist/edges/GenericEdge.d.ts.map +1 -0
- package/dist/edges/GenericEdge.js +10 -0
- package/dist/edges/GenericEdge.js.map +1 -0
- package/dist/graphify/anchor.d.ts +28 -0
- package/dist/graphify/anchor.d.ts.map +1 -0
- package/dist/graphify/anchor.js +132 -0
- package/dist/graphify/anchor.js.map +1 -0
- package/dist/graphify/consolidated.d.ts +210 -0
- package/dist/graphify/consolidated.d.ts.map +1 -0
- package/dist/graphify/consolidated.js +11 -0
- package/dist/graphify/consolidated.js.map +1 -0
- package/dist/graphify/ids.d.ts +19 -0
- package/dist/graphify/ids.d.ts.map +1 -0
- package/dist/graphify/ids.js +46 -0
- package/dist/graphify/ids.js.map +1 -0
- package/dist/graphify/index.d.ts +18 -0
- package/dist/graphify/index.d.ts.map +1 -0
- package/dist/graphify/index.js +12 -0
- package/dist/graphify/index.js.map +1 -0
- package/dist/graphify/kind.d.ts +23 -0
- package/dist/graphify/kind.d.ts.map +1 -0
- package/dist/graphify/kind.js +77 -0
- package/dist/graphify/kind.js.map +1 -0
- package/dist/graphify/resolve.d.ts +48 -0
- package/dist/graphify/resolve.d.ts.map +1 -0
- package/dist/graphify/resolve.js +83 -0
- package/dist/graphify/resolve.js.map +1 -0
- package/dist/graphify/signature.d.ts +87 -0
- package/dist/graphify/signature.d.ts.map +1 -0
- package/dist/graphify/signature.js +276 -0
- package/dist/graphify/signature.js.map +1 -0
- package/dist/graphify/types.d.ts +141 -0
- package/dist/graphify/types.d.ts.map +1 -0
- package/dist/graphify/types.js +8 -0
- package/dist/graphify/types.js.map +1 -0
- package/dist/hooks/useElkLayout.d.ts +66 -0
- package/dist/hooks/useElkLayout.d.ts.map +1 -0
- package/dist/hooks/useElkLayout.js +136 -0
- package/dist/hooks/useElkLayout.js.map +1 -0
- package/dist/hooks/usePathBasedEvents.d.ts +42 -0
- package/dist/hooks/usePathBasedEvents.d.ts.map +1 -0
- package/dist/hooks/usePathBasedEvents.js +119 -0
- package/dist/hooks/usePathBasedEvents.js.map +1 -0
- package/dist/hooks/useSequenceLayout.d.ts +186 -0
- package/dist/hooks/useSequenceLayout.d.ts.map +1 -0
- package/dist/hooks/useSequenceLayout.js +327 -0
- package/dist/hooks/useSequenceLayout.js.map +1 -0
- package/dist/hooks/useUndoRedo.d.ts +80 -0
- package/dist/hooks/useUndoRedo.d.ts.map +1 -0
- package/dist/hooks/useUndoRedo.js +70 -0
- package/dist/hooks/useUndoRedo.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/CustomNode.d.ts +28 -0
- package/dist/nodes/CustomNode.d.ts.map +1 -0
- package/dist/nodes/CustomNode.js +820 -0
- package/dist/nodes/CustomNode.js.map +1 -0
- package/dist/nodes/GenericNode.d.ts +20 -0
- package/dist/nodes/GenericNode.d.ts.map +1 -0
- package/dist/nodes/GenericNode.js +20 -0
- package/dist/nodes/GenericNode.js.map +1 -0
- package/dist/nodes/otel/OtelBoundaryNode.d.ts +55 -0
- package/dist/nodes/otel/OtelBoundaryNode.d.ts.map +1 -0
- package/dist/nodes/otel/OtelBoundaryNode.js +81 -0
- package/dist/nodes/otel/OtelBoundaryNode.js.map +1 -0
- package/dist/nodes/otel/OtelEventNode.d.ts +59 -0
- package/dist/nodes/otel/OtelEventNode.d.ts.map +1 -0
- package/dist/nodes/otel/OtelEventNode.js +82 -0
- package/dist/nodes/otel/OtelEventNode.js.map +1 -0
- package/dist/nodes/otel/OtelResourceNode.d.ts +53 -0
- package/dist/nodes/otel/OtelResourceNode.d.ts.map +1 -0
- package/dist/nodes/otel/OtelResourceNode.js +105 -0
- package/dist/nodes/otel/OtelResourceNode.js.map +1 -0
- package/dist/nodes/otel/OtelScopeNode.d.ts +53 -0
- package/dist/nodes/otel/OtelScopeNode.d.ts.map +1 -0
- package/dist/nodes/otel/OtelScopeNode.js +81 -0
- package/dist/nodes/otel/OtelScopeNode.js.map +1 -0
- package/dist/nodes/otel/OtelSpanConventionNode.d.ts +61 -0
- package/dist/nodes/otel/OtelSpanConventionNode.d.ts.map +1 -0
- package/dist/nodes/otel/OtelSpanConventionNode.js +131 -0
- package/dist/nodes/otel/OtelSpanConventionNode.js.map +1 -0
- package/dist/nodes/otel/index.d.ts +17 -0
- package/dist/nodes/otel/index.d.ts.map +1 -0
- package/dist/nodes/otel/index.js +13 -0
- package/dist/nodes/otel/index.js.map +1 -0
- package/dist/nodes/otel/shared/NodeBadges.d.ts +10 -0
- package/dist/nodes/otel/shared/NodeBadges.d.ts.map +1 -0
- package/dist/nodes/otel/shared/NodeBadges.js +178 -0
- package/dist/nodes/otel/shared/NodeBadges.js.map +1 -0
- package/dist/nodes/otel/shared/NodeContent.d.ts +10 -0
- package/dist/nodes/otel/shared/NodeContent.d.ts.map +1 -0
- package/dist/nodes/otel/shared/NodeContent.js +96 -0
- package/dist/nodes/otel/shared/NodeContent.js.map +1 -0
- package/dist/nodes/otel/shared/index.d.ts +8 -0
- package/dist/nodes/otel/shared/index.d.ts.map +1 -0
- package/dist/nodes/otel/shared/index.js +8 -0
- package/dist/nodes/otel/shared/index.js.map +1 -0
- package/dist/nodes/otel/shared/types.d.ts +129 -0
- package/dist/nodes/otel/shared/types.d.ts.map +1 -0
- package/dist/nodes/otel/shared/types.js +5 -0
- package/dist/nodes/otel/shared/types.js.map +1 -0
- package/dist/nodes/otel/shared/useNodeBehavior.d.ts +42 -0
- package/dist/nodes/otel/shared/useNodeBehavior.d.ts.map +1 -0
- package/dist/nodes/otel/shared/useNodeBehavior.js +61 -0
- package/dist/nodes/otel/shared/useNodeBehavior.js.map +1 -0
- package/dist/pierre/PierreFileView.d.ts +17 -0
- package/dist/pierre/PierreFileView.d.ts.map +1 -0
- package/dist/pierre/PierreFileView.js +46 -0
- package/dist/pierre/PierreFileView.js.map +1 -0
- package/dist/pierre/PierreSnippetView.d.ts +28 -0
- package/dist/pierre/PierreSnippetView.d.ts.map +1 -0
- package/dist/pierre/PierreSnippetView.js +105 -0
- package/dist/pierre/PierreSnippetView.js.map +1 -0
- package/dist/pierre/PierreThroughlineCodeView.d.ts +22 -0
- package/dist/pierre/PierreThroughlineCodeView.d.ts.map +1 -0
- package/dist/pierre/PierreThroughlineCodeView.js +206 -0
- package/dist/pierre/PierreThroughlineCodeView.js.map +1 -0
- package/dist/pierre/constructColors.d.ts +24 -0
- package/dist/pierre/constructColors.d.ts.map +1 -0
- package/dist/pierre/constructColors.js +91 -0
- package/dist/pierre/constructColors.js.map +1 -0
- package/dist/pierre/index.d.ts +12 -0
- package/dist/pierre/index.d.ts.map +1 -0
- package/dist/pierre/index.js +7 -0
- package/dist/pierre/index.js.map +1 -0
- package/dist/pierre/pierreBackground.d.ts +15 -0
- package/dist/pierre/pierreBackground.d.ts.map +1 -0
- package/dist/pierre/pierreBackground.js +31 -0
- package/dist/pierre/pierreBackground.js.map +1 -0
- package/dist/pierre/pierreFileLang.d.ts +27 -0
- package/dist/pierre/pierreFileLang.d.ts.map +1 -0
- package/dist/pierre/pierreFileLang.js +52 -0
- package/dist/pierre/pierreFileLang.js.map +1 -0
- package/dist/pierre/pierreSyntaxTheme.d.ts +11 -0
- package/dist/pierre/pierreSyntaxTheme.d.ts.map +1 -0
- package/dist/pierre/pierreSyntaxTheme.js +20 -0
- package/dist/pierre/pierreSyntaxTheme.js.map +1 -0
- package/dist/pierre/scrollAnchor.d.ts +5 -0
- package/dist/pierre/scrollAnchor.d.ts.map +1 -0
- package/dist/pierre/scrollAnchor.js +9 -0
- package/dist/pierre/scrollAnchor.js.map +1 -0
- package/dist/pierre/sliceSnippet.d.ts +10 -0
- package/dist/pierre/sliceSnippet.d.ts.map +1 -0
- package/dist/pierre/sliceSnippet.js +16 -0
- package/dist/pierre/sliceSnippet.js.map +1 -0
- package/dist/pierre/syntaxTokens.d.ts +11 -0
- package/dist/pierre/syntaxTokens.d.ts.map +1 -0
- package/dist/pierre/syntaxTokens.js +51 -0
- package/dist/pierre/syntaxTokens.js.map +1 -0
- package/dist/stories/Subsystem/ComponentGraph/fixtures.d.ts +8 -0
- package/dist/stories/Subsystem/ComponentGraph/fixtures.d.ts.map +1 -0
- package/dist/stories/Subsystem/ComponentGraph/fixtures.js +116 -0
- package/dist/stories/Subsystem/ComponentGraph/fixtures.js.map +1 -0
- package/dist/subsystem/ComponentDeclaration.d.ts +87 -0
- package/dist/subsystem/ComponentDeclaration.d.ts.map +1 -0
- package/dist/subsystem/ComponentDeclaration.js +374 -0
- package/dist/subsystem/ComponentDeclaration.js.map +1 -0
- package/dist/subsystem/FileDrawer.d.ts +17 -0
- package/dist/subsystem/FileDrawer.d.ts.map +1 -0
- package/dist/subsystem/FileDrawer.js +72 -0
- package/dist/subsystem/FileDrawer.js.map +1 -0
- package/dist/subsystem/GraphLayoutCover.d.ts +20 -0
- package/dist/subsystem/GraphLayoutCover.d.ts.map +1 -0
- package/dist/subsystem/GraphLayoutCover.js +42 -0
- package/dist/subsystem/GraphLayoutCover.js.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts +96 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.js +1059 -0
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -0
- package/dist/subsystem/SubsystemFileTree.d.ts +24 -0
- package/dist/subsystem/SubsystemFileTree.d.ts.map +1 -0
- package/dist/subsystem/SubsystemFileTree.js +150 -0
- package/dist/subsystem/SubsystemFileTree.js.map +1 -0
- package/dist/subsystem/declarationRef.d.ts +39 -0
- package/dist/subsystem/declarationRef.d.ts.map +1 -0
- package/dist/subsystem/declarationRef.js +32 -0
- package/dist/subsystem/declarationRef.js.map +1 -0
- package/dist/subsystem/formatDeclaration.d.ts +11 -0
- package/dist/subsystem/formatDeclaration.d.ts.map +1 -0
- package/dist/subsystem/formatDeclaration.js +146 -0
- package/dist/subsystem/formatDeclaration.js.map +1 -0
- package/dist/subsystem/model.d.ts +353 -0
- package/dist/subsystem/model.d.ts.map +1 -0
- package/dist/subsystem/model.js +503 -0
- package/dist/subsystem/model.js.map +1 -0
- package/dist/subsystem/nodes.d.ts +69 -0
- package/dist/subsystem/nodes.d.ts.map +1 -0
- package/dist/subsystem/nodes.js +289 -0
- package/dist/subsystem/nodes.js.map +1 -0
- package/dist/subsystem/paths.d.ts +63 -0
- package/dist/subsystem/paths.d.ts.map +1 -0
- package/dist/subsystem/paths.js +86 -0
- package/dist/subsystem/paths.js.map +1 -0
- package/dist/subsystem/tokenizeComponent.d.ts +20 -0
- package/dist/subsystem/tokenizeComponent.d.ts.map +1 -0
- package/dist/subsystem/tokenizeComponent.js +56 -0
- package/dist/subsystem/tokenizeComponent.js.map +1 -0
- package/dist/subsystem/tokenizeFormatted.d.ts +12 -0
- package/dist/subsystem/tokenizeFormatted.d.ts.map +1 -0
- package/dist/subsystem/tokenizeFormatted.js +13 -0
- package/dist/subsystem/tokenizeFormatted.js.map +1 -0
- package/dist/utils/animationMapping.d.ts +53 -0
- package/dist/utils/animationMapping.d.ts.map +1 -0
- package/dist/utils/animationMapping.js +126 -0
- package/dist/utils/animationMapping.js.map +1 -0
- package/dist/utils/canvasBounds.d.ts +50 -0
- package/dist/utils/canvasBounds.d.ts.map +1 -0
- package/dist/utils/canvasBounds.js +88 -0
- package/dist/utils/canvasBounds.js.map +1 -0
- package/dist/utils/elkLayout.d.ts +137 -0
- package/dist/utils/elkLayout.d.ts.map +1 -0
- package/dist/utils/elkLayout.js +596 -0
- package/dist/utils/elkLayout.js.map +1 -0
- package/dist/utils/graphConverter.d.ts +18 -0
- package/dist/utils/graphConverter.d.ts.map +1 -0
- package/dist/utils/graphConverter.js +114 -0
- package/dist/utils/graphConverter.js.map +1 -0
- package/dist/utils/iconResolver.d.ts +29 -0
- package/dist/utils/iconResolver.d.ts.map +1 -0
- package/dist/utils/iconResolver.js +30 -0
- package/dist/utils/iconResolver.js.map +1 -0
- package/dist/utils/orientationUtils.d.ts +19 -0
- package/dist/utils/orientationUtils.d.ts.map +1 -0
- package/dist/utils/orientationUtils.js +62 -0
- package/dist/utils/orientationUtils.js.map +1 -0
- package/package.json +80 -0
- package/src/components/ConfigurationSelector.tsx +133 -0
- package/src/components/GraphRenderer.tsx +3195 -0
- package/src/components/MultiCanvasRenderer.tsx +295 -0
- package/src/components/NodeTooltip.tsx +279 -0
- package/src/components/PendingChanges.test.tsx +375 -0
- package/src/components/SelectionSidebar.tsx +352 -0
- package/src/components/SequenceDiagramRenderer.tsx +1156 -0
- package/src/components/WorkflowSequenceDiagram.tsx +270 -0
- package/src/components/dashboard/DashboardRenderer.tsx +317 -0
- package/src/components/dashboard/MetricPanel.tsx +254 -0
- package/src/components/dashboard/MockDataProvider.ts +330 -0
- package/src/components/dashboard/components/BarChart.tsx +299 -0
- package/src/components/dashboard/components/LineChart.tsx +279 -0
- package/src/components/dashboard/components/MetricCard.tsx +270 -0
- package/src/components/dashboard/components/SourceLink.tsx +63 -0
- package/src/components/dashboard/components/TimeRangeSelector.tsx +280 -0
- package/src/components/dashboard/components/index.ts +5 -0
- package/src/components/dashboard/index.ts +47 -0
- package/src/components/dashboard/types.ts +126 -0
- package/src/components/session-events/SessionEventFeed.tsx +1797 -0
- package/src/components/session-events/index.ts +13 -0
- package/src/components/state-view/PipelineView.tsx +347 -0
- package/src/components/state-view/index.ts +14 -0
- package/src/components/state-view/types.ts +261 -0
- package/src/components/state-view/useStateView.ts +205 -0
- package/src/contexts/GraphEditContext.tsx +27 -0
- package/src/contexts/TooltipPortalContext.ts +8 -0
- package/src/edges/CustomEdge.tsx +402 -0
- package/src/edges/GenericEdge.tsx +36 -0
- package/src/graphify/anchor.test.ts +124 -0
- package/src/graphify/anchor.ts +160 -0
- package/src/graphify/consolidated.ts +246 -0
- package/src/graphify/ids.ts +48 -0
- package/src/graphify/index.ts +72 -0
- package/src/graphify/kind.test.ts +108 -0
- package/src/graphify/kind.ts +120 -0
- package/src/graphify/resolve.test.ts +89 -0
- package/src/graphify/resolve.ts +115 -0
- package/src/graphify/signature.test.ts +278 -0
- package/src/graphify/signature.ts +354 -0
- package/src/graphify/types.ts +164 -0
- package/src/hooks/useElkLayout.test.ts +134 -0
- package/src/hooks/useElkLayout.ts +191 -0
- package/src/hooks/usePathBasedEvents.ts +192 -0
- package/src/hooks/useSequenceLayout.ts +543 -0
- package/src/hooks/useUndoRedo.ts +144 -0
- package/src/index.ts +341 -0
- package/src/nodes/CustomNode.tsx +1231 -0
- package/src/nodes/GenericNode.tsx +55 -0
- package/src/nodes/otel/OtelBoundaryNode.tsx +224 -0
- package/src/nodes/otel/OtelEventNode.tsx +225 -0
- package/src/nodes/otel/OtelResourceNode.tsx +251 -0
- package/src/nodes/otel/OtelScopeNode.tsx +221 -0
- package/src/nodes/otel/OtelSpanConventionNode.tsx +295 -0
- package/src/nodes/otel/index.ts +23 -0
- package/src/nodes/otel/shared/NodeBadges.tsx +295 -0
- package/src/nodes/otel/shared/NodeContent.tsx +204 -0
- package/src/nodes/otel/shared/index.ts +8 -0
- package/src/nodes/otel/shared/types.ts +138 -0
- package/src/nodes/otel/shared/useNodeBehavior.ts +114 -0
- package/src/pierre/PierreFileView.tsx +81 -0
- package/src/pierre/PierreSnippetView.tsx +184 -0
- package/src/pierre/PierreThroughlineCodeView.tsx +304 -0
- package/src/pierre/constructColors.test.ts +52 -0
- package/src/pierre/constructColors.ts +112 -0
- package/src/pierre/index.ts +18 -0
- package/src/pierre/pierreBackground.ts +33 -0
- package/src/pierre/pierreFileLang.test.ts +26 -0
- package/src/pierre/pierreFileLang.ts +55 -0
- package/src/pierre/pierreSyntaxTheme.ts +23 -0
- package/src/pierre/scrollAnchor.test.ts +13 -0
- package/src/pierre/scrollAnchor.ts +11 -0
- package/src/pierre/sliceSnippet.test.ts +21 -0
- package/src/pierre/sliceSnippet.ts +31 -0
- package/src/pierre/syntaxTokens.test.ts +35 -0
- package/src/pierre/syntaxTokens.ts +60 -0
- package/src/stories/Audit/BoundaryNodes.stories.tsx +385 -0
- package/src/stories/Audit/CanvasEdgeTypes.stories.tsx +1448 -0
- package/src/stories/Audit/CanvasNodeTypes.stories.tsx +1049 -0
- package/src/stories/Audit/ColorPriority.stories.tsx +895 -0
- package/src/stories/Audit/DiamondBadges.stories.tsx +629 -0
- package/src/stories/Audit/NodeDimensionsTesting.stories.tsx +724 -0
- package/src/stories/Audit/NodeFieldsAudit.stories.tsx +996 -0
- package/src/stories/Audit/NodeFontSizeTesting.stories.tsx +715 -0
- package/src/stories/Audit/NodeShapes.stories.tsx +1208 -0
- package/src/stories/Audit/WideNodesTesting.stories.tsx +1045 -0
- package/src/stories/Components/DashboardRenderer.stories.tsx +263 -0
- package/src/stories/Components/GraphRenderer.stories.tsx +3236 -0
- package/src/stories/Components/MultiCanvasRenderer.stories.tsx +370 -0
- package/src/stories/Components/SequenceDiagram.stories.tsx +255 -0
- package/src/stories/Components/StateView.stories.tsx +417 -0
- package/src/stories/Components/TraceViewer.stories.tsx +442 -0
- package/src/stories/Components/WorkflowSequenceDiagram.stories.tsx +802 -0
- package/src/stories/Features/AnimationWorkshop.stories.tsx +727 -0
- package/src/stories/Features/ChangeTypeVisual.stories.tsx +67 -0
- package/src/stories/Features/EventDrivenAnimations.stories.tsx +513 -0
- package/src/stories/Features/MultiConfig.stories.tsx +539 -0
- package/src/stories/Introduction.mdx +34 -0
- package/src/stories/Layout/ElkEdgeRouting.stories.tsx +539 -0
- package/src/stories/Layout/GraphOrientation.stories.tsx +500 -0
- package/src/stories/Layout/MultiDirectionalConnections.stories.tsx +352 -0
- package/src/stories/Nodes/NodeDefinitionComparison.stories.tsx +560 -0
- package/src/stories/Nodes/NodeNameFallbacks.stories.tsx +491 -0
- package/src/stories/Nodes/NumericColors.stories.tsx +440 -0
- package/src/stories/OTEL/EventNameDisplay.stories.tsx +694 -0
- package/src/stories/OTEL/EventNameFallback.stories.tsx +578 -0
- package/src/stories/OTEL/OtelComponents.stories.tsx +422 -0
- package/src/stories/OTEL/OtelNodeTypesPrototype.stories.tsx +806 -0
- package/src/stories/OTEL/RawEventCards.stories.tsx +57 -0
- package/src/stories/OTEL/SpanBadges.stories.tsx +840 -0
- package/src/stories/OTEL/ValidationEventsCanvas.stories.tsx +209 -0
- package/src/stories/Pierre/CodeView.stories.tsx +219 -0
- package/src/stories/RealWorld/BacklogMdCanvases.stories.tsx +721 -0
- package/src/stories/RealWorld/FileCitySequence.stories.tsx +516 -0
- package/src/stories/RealWorld/RealCanvasFiles.stories.tsx +336 -0
- package/src/stories/Subsystem/ComponentDeclarationAudit.stories.tsx +321 -0
- package/src/stories/Subsystem/ComponentGraph/Appearance.stories.tsx +365 -0
- package/src/stories/Subsystem/ComponentGraph/Basics.stories.tsx +137 -0
- package/src/stories/Subsystem/ComponentGraph/Captures.stories.tsx +238 -0
- package/src/stories/Subsystem/ComponentGraph/DetailPanel.stories.tsx +315 -0
- package/src/stories/Subsystem/ComponentGraph/Flows.stories.tsx +239 -0
- package/src/stories/Subsystem/ComponentGraph/FrameworkStereotype.stories.tsx +216 -0
- package/src/stories/Subsystem/ComponentGraph/GraphTitle.stories.tsx +70 -0
- package/src/stories/Subsystem/ComponentGraph/Processes.stories.tsx +68 -0
- package/src/stories/Subsystem/ComponentGraph/Scenarios.stories.tsx +959 -0
- package/src/stories/Subsystem/ComponentGraph/Spotlights.stories.tsx +681 -0
- package/src/stories/Subsystem/ComponentGraph/fixtures.ts +129 -0
- package/src/stories/__traces__/test-run.canvas.json +241 -0
- package/src/stories/data/activity-feed-analytics.dashboard.json +300 -0
- package/src/stories/data/file-city-images-transformed.otel.canvas.json +295 -0
- package/src/stories/data/file-city-workflows.json +269 -0
- package/src/stories/data/graph-converter-test-execution.json +443 -0
- package/src/stories/data/graph-converter-test.workflow.json +105 -0
- package/src/stories/data/graph-converter-validated-execution.json +58 -0
- package/src/stories/data/opencode-session-raw-events.json +273396 -0
- package/src/subsystem/ComponentDeclaration.tsx +643 -0
- package/src/subsystem/FileDrawer.tsx +106 -0
- package/src/subsystem/GraphLayoutCover.tsx +69 -0
- package/src/subsystem/SubsystemComponentGraph.tsx +1644 -0
- package/src/subsystem/SubsystemFileTree.tsx +190 -0
- package/src/subsystem/declarationRef.test.ts +33 -0
- package/src/subsystem/declarationRef.ts +63 -0
- package/src/subsystem/formatDeclaration.ts +174 -0
- package/src/subsystem/model.test.ts +244 -0
- package/src/subsystem/model.ts +850 -0
- package/src/subsystem/nodes.test.ts +56 -0
- package/src/subsystem/nodes.tsx +443 -0
- package/src/subsystem/paths.test.ts +123 -0
- package/src/subsystem/paths.ts +127 -0
- package/src/subsystem/tokenizeComponent.ts +70 -0
- package/src/subsystem/tokenizeFormatted.ts +19 -0
- package/src/utils/animationMapping.ts +166 -0
- package/src/utils/canvasBounds.ts +146 -0
- package/src/utils/elkLayout.test.ts +240 -0
- package/src/utils/elkLayout.ts +779 -0
- package/src/utils/graphConverter.ts +148 -0
- package/src/utils/iconResolver.tsx +53 -0
- 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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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":"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"}
|
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
|