@principal-ai/principal-view-react 0.7.15 → 0.7.17

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 (138) hide show
  1. package/README.md +9 -24
  2. package/dist/components/ConfigurationSelector.d.ts +1 -1
  3. package/dist/components/ConfigurationSelector.d.ts.map +1 -1
  4. package/dist/components/ConfigurationSelector.js +6 -10
  5. package/dist/components/ConfigurationSelector.js.map +1 -1
  6. package/dist/components/EdgeInfoPanel.d.ts +1 -1
  7. package/dist/components/EdgeInfoPanel.d.ts.map +1 -1
  8. package/dist/components/EdgeInfoPanel.js +14 -18
  9. package/dist/components/EdgeInfoPanel.js.map +1 -1
  10. package/dist/components/GraphRenderer.d.ts +1 -1
  11. package/dist/components/GraphRenderer.d.ts.map +1 -1
  12. package/dist/components/GraphRenderer.js +89 -92
  13. package/dist/components/GraphRenderer.js.map +1 -1
  14. package/dist/components/NarrativeRenderer.d.ts +19 -0
  15. package/dist/components/NarrativeRenderer.d.ts.map +1 -0
  16. package/dist/components/NarrativeRenderer.js +103 -0
  17. package/dist/components/NarrativeRenderer.js.map +1 -0
  18. package/dist/components/NodeInfoPanel.d.ts +1 -1
  19. package/dist/components/NodeInfoPanel.d.ts.map +1 -1
  20. package/dist/components/NodeInfoPanel.js +33 -37
  21. package/dist/components/NodeInfoPanel.js.map +1 -1
  22. package/dist/components/NodeTooltip.js +15 -19
  23. package/dist/components/NodeTooltip.js.map +1 -1
  24. package/dist/components/SelectionSidebar.d.ts +1 -1
  25. package/dist/components/SelectionSidebar.d.ts.map +1 -1
  26. package/dist/components/SelectionSidebar.js +26 -30
  27. package/dist/components/SelectionSidebar.js.map +1 -1
  28. package/dist/components/TestEventPanel.d.ts +6 -0
  29. package/dist/components/TestEventPanel.d.ts.map +1 -1
  30. package/dist/components/TestEventPanel.js +157 -161
  31. package/dist/components/TestEventPanel.js.map +1 -1
  32. package/dist/edges/CustomEdge.d.ts +1 -1
  33. package/dist/edges/CustomEdge.d.ts.map +1 -1
  34. package/dist/edges/CustomEdge.js +18 -22
  35. package/dist/edges/CustomEdge.js.map +1 -1
  36. package/dist/edges/GenericEdge.d.ts +1 -1
  37. package/dist/edges/GenericEdge.d.ts.map +1 -1
  38. package/dist/edges/GenericEdge.js +3 -7
  39. package/dist/edges/GenericEdge.js.map +1 -1
  40. package/dist/hooks/usePathBasedEvents.d.ts +1 -1
  41. package/dist/hooks/usePathBasedEvents.d.ts.map +1 -1
  42. package/dist/hooks/usePathBasedEvents.js +14 -18
  43. package/dist/hooks/usePathBasedEvents.js.map +1 -1
  44. package/dist/index.d.ts +1 -5
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +12 -33
  47. package/dist/index.js.map +1 -1
  48. package/dist/nodes/CustomNode.d.ts +1 -1
  49. package/dist/nodes/CustomNode.d.ts.map +1 -1
  50. package/dist/nodes/CustomNode.js +22 -26
  51. package/dist/nodes/CustomNode.js.map +1 -1
  52. package/dist/nodes/GenericNode.d.ts +1 -1
  53. package/dist/nodes/GenericNode.d.ts.map +1 -1
  54. package/dist/nodes/GenericNode.js +4 -8
  55. package/dist/nodes/GenericNode.js.map +1 -1
  56. package/dist/utils/animationMapping.d.ts +1 -1
  57. package/dist/utils/animationMapping.d.ts.map +1 -1
  58. package/dist/utils/animationMapping.js +6 -13
  59. package/dist/utils/animationMapping.js.map +1 -1
  60. package/dist/utils/graphConverter.d.ts +1 -1
  61. package/dist/utils/graphConverter.d.ts.map +1 -1
  62. package/dist/utils/graphConverter.js +4 -8
  63. package/dist/utils/graphConverter.js.map +1 -1
  64. package/dist/utils/iconResolver.js +7 -45
  65. package/dist/utils/iconResolver.js.map +1 -1
  66. package/dist/utils/narrative-converter.d.ts +45 -0
  67. package/dist/utils/narrative-converter.d.ts.map +1 -0
  68. package/dist/utils/narrative-converter.js +113 -0
  69. package/dist/utils/narrative-converter.js.map +1 -0
  70. package/dist/utils/narrative-loader.d.ts +53 -0
  71. package/dist/utils/narrative-loader.d.ts.map +1 -0
  72. package/dist/utils/narrative-loader.js +163 -0
  73. package/dist/utils/narrative-loader.js.map +1 -0
  74. package/package.json +22 -25
  75. package/src/components/ConfigurationSelector.tsx +1 -1
  76. package/src/components/EdgeInfoPanel.tsx +1 -1
  77. package/src/components/GraphRenderer.test.tsx +1 -1
  78. package/src/components/GraphRenderer.tsx +2 -2
  79. package/src/components/NarrativeRenderer.tsx +171 -0
  80. package/src/components/NodeInfoPanel.tsx +1 -1
  81. package/src/components/NodeTooltip.tsx +3 -3
  82. package/src/components/PendingChanges.test.tsx +1 -1
  83. package/src/components/SelectionSidebar.tsx +1 -1
  84. package/src/components/TestEventPanel.tsx +140 -117
  85. package/src/edges/CustomEdge.tsx +1 -1
  86. package/src/edges/GenericEdge.tsx +1 -1
  87. package/src/hooks/usePathBasedEvents.ts +1 -1
  88. package/src/index.ts +1 -7
  89. package/src/nodes/CustomNode.tsx +1 -1
  90. package/src/nodes/GenericNode.tsx +1 -1
  91. package/src/stories/AnimationWorkshop.stories.tsx +1 -1
  92. package/src/stories/CanvasEdgeTypes.stories.tsx +1 -1
  93. package/src/stories/CanvasNodeTypes.stories.tsx +1 -1
  94. package/src/stories/ColorPriority.stories.tsx +1 -1
  95. package/src/stories/EventDrivenAnimations.stories.tsx +1 -1
  96. package/src/stories/GraphRenderer.stories.tsx +1 -1
  97. package/src/stories/Introduction.mdx +4 -21
  98. package/src/stories/MultiConfig.stories.tsx +1 -1
  99. package/src/stories/MultiDirectionalConnections.stories.tsx +1 -1
  100. package/src/stories/NodeFieldsAudit.stories.tsx +1 -1
  101. package/src/stories/NodeShapes.stories.tsx +1 -1
  102. package/src/stories/OtelComponents.stories.tsx +1 -1
  103. package/src/stories/RealTestExecution.stories.tsx +111 -1
  104. package/src/stories/TraceViewer.stories.tsx +1 -1
  105. package/src/stories/ValidatedExecution.stories.tsx +1 -1
  106. package/src/stories/data/graph-converter-test-execution.json +204 -326
  107. package/src/stories/data/graph-converter-test.narrative.json +106 -0
  108. package/src/stories/data/graph-converter-validated-execution.json +6 -6
  109. package/src/utils/animationMapping.ts +1 -1
  110. package/src/utils/graphConverter.ts +1 -1
  111. package/src/utils/narrative-converter.ts +147 -0
  112. package/src/utils/narrative-loader.ts +172 -0
  113. package/dist/components/EventLog.d.ts +0 -20
  114. package/dist/components/EventLog.d.ts.map +0 -1
  115. package/dist/components/EventLog.js +0 -13
  116. package/dist/components/EventLog.js.map +0 -1
  117. package/dist/components/EventLog.test.d.ts +0 -2
  118. package/dist/components/EventLog.test.d.ts.map +0 -1
  119. package/dist/components/EventLog.test.js +0 -73
  120. package/dist/components/EventLog.test.js.map +0 -1
  121. package/dist/components/GraphRenderer.test.d.ts +0 -2
  122. package/dist/components/GraphRenderer.test.d.ts.map +0 -1
  123. package/dist/components/GraphRenderer.test.js +0 -88
  124. package/dist/components/GraphRenderer.test.js.map +0 -1
  125. package/dist/components/LayerPanel.d.ts +0 -31
  126. package/dist/components/LayerPanel.d.ts.map +0 -1
  127. package/dist/components/LayerPanel.js +0 -207
  128. package/dist/components/LayerPanel.js.map +0 -1
  129. package/dist/components/MetricsDashboard.d.ts +0 -14
  130. package/dist/components/MetricsDashboard.d.ts.map +0 -1
  131. package/dist/components/MetricsDashboard.js +0 -13
  132. package/dist/components/MetricsDashboard.js.map +0 -1
  133. package/src/components/EventLog.test.tsx +0 -85
  134. package/src/components/EventLog.tsx +0 -51
  135. package/src/components/MetricsDashboard.tsx +0 -40
  136. package/src/stories/EventLog.stories.tsx +0 -161
  137. package/src/stories/IndustryThemes.stories.tsx +0 -483
  138. package/src/stories/MetricsDashboard.stories.tsx +0 -227
@@ -1,14 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TestEventPanel = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
9
- const industry_theme_1 = require("@principal-ade/industry-theme");
10
- const lucide_react_1 = require("lucide-react");
11
- const js_yaml_1 = __importDefault(require("js-yaml"));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import { useTheme } from '@principal-ade/industry-theme';
4
+ import { HelpCircle } from 'lucide-react';
5
+ import yaml from 'js-yaml';
6
+ import { NarrativeRenderer } from './NarrativeRenderer';
7
+ import { convertToOtelEvents } from '../utils/narrative-converter';
12
8
  // Helper functions for log severity
13
9
  function getSeverityColor(severity) {
14
10
  const colors = {
@@ -32,11 +28,16 @@ function getSeverityIcon(severity) {
32
28
  };
33
29
  return icons[severity] || '•';
34
30
  }
35
- const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex, highlightedPhase, onSpanIndexChange, }) => {
36
- const { theme } = (0, industry_theme_1.useTheme)();
37
- const [showHelp, setShowHelp] = (0, react_1.useState)(false);
38
- const [viewMode, setViewMode] = (0, react_1.useState)('all');
31
+ export const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex, highlightedPhase, onSpanIndexChange, viewMode = 'raw', narrativeTemplate, onViewModeChange, showNarrativeMetadata = false, }) => {
32
+ const { theme } = useTheme();
33
+ const [showHelp, setShowHelp] = useState(false);
39
34
  const currentSpan = spans[currentSpanIndex];
35
+ // Convert current span to OtelEvents for narrative rendering
36
+ const otelEvents = useMemo(() => {
37
+ if (!currentSpan || viewMode !== 'narrative')
38
+ return [];
39
+ return convertToOtelEvents(currentSpan, logs);
40
+ }, [currentSpan, logs, viewMode]);
40
41
  const handlePrevTest = () => {
41
42
  if (currentSpanIndex > 0 && onSpanIndexChange) {
42
43
  onSpanIndexChange(currentSpanIndex - 1);
@@ -48,7 +49,7 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
48
49
  }
49
50
  };
50
51
  // Build interleaved timeline
51
- const timeline = (0, react_1.useMemo)(() => {
52
+ const timeline = useMemo(() => {
52
53
  if (!currentSpan)
53
54
  return [];
54
55
  const items = [
@@ -73,15 +74,7 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
73
74
  ].sort((a, b) => a.time - b.time);
74
75
  return items;
75
76
  }, [currentSpan, currentEventIndex, logs]);
76
- // Filter timeline based on view mode
77
- const filteredTimeline = (0, react_1.useMemo)(() => {
78
- if (viewMode === 'all')
79
- return timeline;
80
- return timeline.filter((item) => item.type === viewMode.slice(0, -1)); // 'events' -> 'event', 'logs' -> 'log'
81
- }, [timeline, viewMode]);
82
- const eventCount = timeline.filter((i) => i.type === 'event').length;
83
- const logCount = timeline.filter((i) => i.type === 'log').length;
84
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
77
+ return (_jsxs("div", { style: {
85
78
  width: '100%',
86
79
  height: '100%',
87
80
  backgroundColor: theme.colors.background,
@@ -91,12 +84,30 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
91
84
  boxSizing: 'border-box',
92
85
  display: 'flex',
93
86
  flexDirection: 'column',
94
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
87
+ }, children: [_jsxs("div", { style: {
95
88
  padding: '20px 20px 0 20px',
96
89
  backgroundColor: theme.colors.background,
97
90
  borderBottom: `1px solid ${theme.colors.border}`,
98
91
  flexShrink: 0,
99
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '12px' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { fontWeight: 'bold', fontSize: '18px' }, children: "Execution Timeline" }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { fontSize: '13px', color: theme.colors.textMuted }, children: (0, jsx_runtime_1.jsx)("span", { style: { color: '#4ade80' }, children: "All Passed \u2713" }) }), (0, jsx_runtime_1.jsx)("button", { onClick: () => setShowHelp(true), style: {
92
+ }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '12px' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: [_jsx("button", { onClick: handlePrevTest, disabled: currentSpanIndex === 0, style: {
93
+ padding: '4px 12px',
94
+ background: theme.colors.surface,
95
+ border: `1px solid ${theme.colors.border}`,
96
+ borderRadius: '4px',
97
+ color: currentSpanIndex === 0 ? theme.colors.textMuted : theme.colors.text,
98
+ cursor: currentSpanIndex === 0 ? 'not-allowed' : 'pointer',
99
+ fontSize: '14px',
100
+ opacity: currentSpanIndex === 0 ? 0.5 : 1,
101
+ }, children: "\u2190 Prev" }), _jsxs("div", { style: { fontSize: '14px', fontWeight: 'bold' }, children: ["Test ", currentSpanIndex + 1, " of ", spans.length] }), _jsx("button", { onClick: handleNextTest, disabled: currentSpanIndex === spans.length - 1, style: {
102
+ padding: '4px 12px',
103
+ background: theme.colors.surface,
104
+ border: `1px solid ${theme.colors.border}`,
105
+ borderRadius: '4px',
106
+ color: currentSpanIndex === spans.length - 1 ? theme.colors.textMuted : theme.colors.text,
107
+ cursor: currentSpanIndex === spans.length - 1 ? 'not-allowed' : 'pointer',
108
+ fontSize: '14px',
109
+ opacity: currentSpanIndex === spans.length - 1 ? 0.5 : 1,
110
+ }, children: "Next \u2192" })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '12px' }, children: [_jsx("div", { style: { fontSize: '13px', color: theme.colors.textMuted }, children: _jsx("span", { style: { color: '#4ade80' }, children: "All Passed \u2713" }) }), _jsx("button", { onClick: () => setShowHelp(true), style: {
100
111
  background: 'transparent',
101
112
  border: 'none',
102
113
  cursor: 'pointer',
@@ -108,52 +119,25 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
108
119
  e.currentTarget.style.color = theme.colors.text;
109
120
  }, onMouseLeave: (e) => {
110
121
  e.currentTarget.style.color = theme.colors.textMuted;
111
- }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.HelpCircle, { size: 20 }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }, children: [(0, jsx_runtime_1.jsx)("button", { onClick: handlePrevTest, disabled: currentSpanIndex === 0, style: {
112
- padding: '4px 12px',
113
- background: theme.colors.surface,
114
- border: `1px solid ${theme.colors.border}`,
115
- borderRadius: '4px',
116
- color: currentSpanIndex === 0 ? theme.colors.textMuted : theme.colors.text,
117
- cursor: currentSpanIndex === 0 ? 'not-allowed' : 'pointer',
118
- fontSize: '14px',
119
- opacity: currentSpanIndex === 0 ? 0.5 : 1,
120
- }, children: "\u2190 Prev" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontSize: '13px', color: theme.colors.textMuted }, children: ["Test ", currentSpanIndex + 1, " of ", spans.length] }), (0, jsx_runtime_1.jsx)("button", { onClick: handleNextTest, disabled: currentSpanIndex === spans.length - 1, style: {
121
- padding: '4px 12px',
122
- background: theme.colors.surface,
123
- border: `1px solid ${theme.colors.border}`,
124
- borderRadius: '4px',
125
- color: currentSpanIndex === spans.length - 1 ? theme.colors.textMuted : theme.colors.text,
126
- cursor: currentSpanIndex === spans.length - 1 ? 'not-allowed' : 'pointer',
127
- fontSize: '14px',
128
- opacity: currentSpanIndex === spans.length - 1 ? 0.5 : 1,
129
- }, children: "Next \u2192" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontSize: '12px', color: theme.colors.textMuted, marginLeft: 'auto' }, children: [eventCount, " events, ", logCount, " logs"] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '8px', marginBottom: '12px' }, children: [(0, jsx_runtime_1.jsxs)("button", { onClick: () => setViewMode('all'), style: {
130
- padding: '6px 12px',
131
- background: viewMode === 'all' ? theme.colors.primary : 'transparent',
132
- border: `1px solid ${theme.colors.border}`,
133
- borderRadius: '4px',
134
- color: viewMode === 'all' ? '#ffffff' : theme.colors.text,
135
- cursor: 'pointer',
136
- fontSize: '12px',
137
- fontWeight: 500,
138
- }, children: ["All (", timeline.length, ")"] }), (0, jsx_runtime_1.jsxs)("button", { onClick: () => setViewMode('events'), style: {
122
+ }, children: _jsx(HelpCircle, { size: 20 }) })] })] }), narrativeTemplate && onViewModeChange && (_jsxs("div", { style: { display: 'flex', gap: '8px', marginBottom: '12px' }, children: [_jsx("button", { onClick: () => onViewModeChange('raw'), style: {
139
123
  padding: '6px 12px',
140
- background: viewMode === 'events' ? theme.colors.primary : 'transparent',
124
+ background: viewMode === 'raw' ? theme.colors.primary : theme.colors.surface,
141
125
  border: `1px solid ${theme.colors.border}`,
142
126
  borderRadius: '4px',
143
- color: viewMode === 'events' ? '#ffffff' : theme.colors.text,
127
+ color: viewMode === 'raw' ? '#ffffff' : theme.colors.text,
144
128
  cursor: 'pointer',
145
- fontSize: '12px',
146
- fontWeight: 500,
147
- }, children: ["Events (", eventCount, ")"] }), (0, jsx_runtime_1.jsxs)("button", { onClick: () => setViewMode('logs'), style: {
129
+ fontSize: '13px',
130
+ fontWeight: viewMode === 'raw' ? 'bold' : 'normal',
131
+ }, children: "Raw Events" }), _jsx("button", { onClick: () => onViewModeChange('narrative'), style: {
148
132
  padding: '6px 12px',
149
- background: viewMode === 'logs' ? theme.colors.primary : 'transparent',
133
+ background: viewMode === 'narrative' ? theme.colors.primary : theme.colors.surface,
150
134
  border: `1px solid ${theme.colors.border}`,
151
135
  borderRadius: '4px',
152
- color: viewMode === 'logs' ? '#ffffff' : theme.colors.text,
136
+ color: viewMode === 'narrative' ? '#ffffff' : theme.colors.text,
153
137
  cursor: 'pointer',
154
- fontSize: '12px',
155
- fontWeight: 500,
156
- }, children: ["Logs (", logCount, ")"] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { fontSize: '13px', color: theme.colors.textMuted, marginBottom: '15px' }, children: ["Test: ", currentSpan?.name || 'Loading...'] })] }), showHelp && ((0, jsx_runtime_1.jsx)("div", { style: {
138
+ fontSize: '13px',
139
+ fontWeight: viewMode === 'narrative' ? 'bold' : 'normal',
140
+ }, children: "Narrative" })] })), _jsxs("div", { style: { fontSize: '13px', color: theme.colors.textMuted, marginBottom: '15px' }, children: ["Test: ", currentSpan?.name || 'Loading...'] })] }), showHelp && (_jsx("div", { style: {
157
141
  position: 'fixed',
158
142
  top: 0,
159
143
  left: 0,
@@ -164,14 +148,14 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
164
148
  alignItems: 'center',
165
149
  justifyContent: 'center',
166
150
  zIndex: 9999,
167
- }, onClick: () => setShowHelp(false), children: (0, jsx_runtime_1.jsxs)("div", { style: {
151
+ }, onClick: () => setShowHelp(false), children: _jsxs("div", { style: {
168
152
  backgroundColor: theme.colors.background,
169
153
  color: theme.colors.text,
170
154
  padding: '24px',
171
155
  borderRadius: '8px',
172
156
  maxWidth: '600px',
173
157
  border: `1px solid ${theme.colors.border}`,
174
- }, onClick: (e) => e.stopPropagation(), children: [(0, jsx_runtime_1.jsx)("div", { style: { fontWeight: 'bold', fontSize: '18px', marginBottom: '16px' }, children: "How to Read This Panel" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontSize: '14px', marginBottom: '16px', lineHeight: '1.6' }, children: [(0, jsx_runtime_1.jsx)("p", { style: { marginBottom: '12px' }, children: (0, jsx_runtime_1.jsx)("strong", { children: "Timeline shows both events and logs:" }) }), (0, jsx_runtime_1.jsxs)("ul", { style: { marginLeft: '20px', marginBottom: '16px' }, children: [(0, jsx_runtime_1.jsxs)("li", { style: { marginBottom: '8px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { color: '#f59e0b' }, children: "\uD83D\uDFE7 Events" }), " - Structured lifecycle points"] }), (0, jsx_runtime_1.jsxs)("li", { style: { marginBottom: '8px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { color: '#4ade80' }, children: "\u25CF Logs" }), " - Standalone log records (color = severity)"] }), (0, jsx_runtime_1.jsx)("li", { style: { marginBottom: '8px' }, children: (0, jsx_runtime_1.jsx)("span", { style: { color: '#60a5fa' }, children: "Blue = Test file" }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("span", { style: { color: '#4ade80' }, children: "Green \u2192 Code under test" }) })] }), (0, jsx_runtime_1.jsx)("p", { style: { marginBottom: '12px' }, children: (0, jsx_runtime_1.jsx)("strong", { children: "Use filter tabs to focus:" }) }), (0, jsx_runtime_1.jsxs)("ul", { style: { marginLeft: '20px' }, children: [(0, jsx_runtime_1.jsx)("li", { children: "All - Interleaved timeline" }), (0, jsx_runtime_1.jsx)("li", { children: "Events - Span events only" }), (0, jsx_runtime_1.jsx)("li", { children: "Logs - OTEL logs only" })] })] }), (0, jsx_runtime_1.jsx)("button", { onClick: () => setShowHelp(false), style: {
158
+ }, onClick: (e) => e.stopPropagation(), children: [_jsx("div", { style: { fontWeight: 'bold', fontSize: '18px', marginBottom: '16px' }, children: "How to Read This Panel" }), _jsxs("div", { style: { fontSize: '14px', marginBottom: '16px', lineHeight: '1.6' }, children: [_jsx("p", { style: { marginBottom: '12px' }, children: _jsx("strong", { children: "Timeline shows both events and logs:" }) }), _jsxs("ul", { style: { marginLeft: '20px', marginBottom: '16px' }, children: [_jsxs("li", { style: { marginBottom: '8px' }, children: [_jsx("span", { style: { color: '#f59e0b' }, children: "\uD83D\uDFE7 Events" }), " - Structured lifecycle points"] }), _jsxs("li", { style: { marginBottom: '8px' }, children: [_jsx("span", { style: { color: '#4ade80' }, children: "\u25CF Logs" }), " - Standalone log records (color = severity)"] }), _jsx("li", { style: { marginBottom: '8px' }, children: _jsx("span", { style: { color: '#60a5fa' }, children: "Blue = Test file" }) }), _jsx("li", { children: _jsx("span", { style: { color: '#4ade80' }, children: "Green \u2192 Code under test" }) })] })] }), _jsx("button", { onClick: () => setShowHelp(false), style: {
175
159
  padding: '8px 16px',
176
160
  backgroundColor: theme.colors.primary,
177
161
  color: '#ffffff',
@@ -180,102 +164,114 @@ const TestEventPanel = ({ spans, logs = [], currentSpanIndex, currentEventIndex,
180
164
  cursor: 'pointer',
181
165
  fontSize: '14px',
182
166
  fontWeight: 500,
183
- }, children: "Got it" })] }) })), (0, jsx_runtime_1.jsx)("div", { style: {
167
+ }, children: "Got it" })] }) })), _jsxs("div", { style: {
184
168
  flex: 1,
185
169
  overflow: 'auto',
186
- padding: '20px',
187
- }, children: currentSpan && ((0, jsx_runtime_1.jsx)("div", { children: filteredTimeline.map((item, idx) => {
188
- if (item.type === 'event') {
189
- // SPAN EVENT RENDERING
190
- const filepath = item.attributes?.['code.filepath'];
191
- const lineno = item.attributes?.['code.lineno'];
192
- const isCodeUnderTest = filepath && filepath !== 'GraphConverter.test.ts';
193
- // Determine which phase this event belongs to
194
- const eventPhase = item.name?.split('.')[0]; // 'setup', 'execution', 'assertion'
195
- const isHighlighted = highlightedPhase === eventPhase;
196
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
197
- marginBottom: '12px',
198
- paddingBottom: '12px',
199
- paddingLeft: '12px',
200
- borderBottom: idx < filteredTimeline.length - 1 ? `1px solid ${theme.colors.border}` : 'none',
201
- borderLeft: '3px solid #f59e0b',
202
- opacity: highlightedPhase && !isHighlighted ? 0.4 : 1,
203
- transition: 'opacity 0.2s ease',
204
- transform: isHighlighted ? 'scale(1.02)' : 'scale(1)',
205
- backgroundColor: isHighlighted ? theme.colors.surface : 'transparent',
206
- padding: isHighlighted ? '8px 8px 8px 12px' : '0 0 12px 12px',
170
+ padding: viewMode === 'narrative' ? '0' : '20px',
171
+ }, children: [viewMode === 'narrative' && narrativeTemplate && currentSpan ? (_jsx(NarrativeRenderer, { template: narrativeTemplate, events: otelEvents, showMetadata: showNarrativeMetadata })) : viewMode === 'narrative' && !narrativeTemplate ? (_jsxs("div", { style: {
172
+ padding: '40px 20px',
173
+ textAlign: 'center',
174
+ color: theme.colors.textMuted,
175
+ }, children: [_jsx("div", { style: { fontSize: '16px', marginBottom: '12px' }, children: "\u24D8 No narrative template available" }), _jsxs("div", { style: { fontSize: '14px', lineHeight: '1.6' }, children: ["Create a narrative template to see a human-readable", _jsx("br", {}), "summary of this test execution."] }), _jsx("button", { onClick: () => onViewModeChange?.('raw'), style: {
176
+ marginTop: '20px',
177
+ padding: '8px 16px',
178
+ background: theme.colors.primary,
179
+ color: '#ffffff',
180
+ border: 'none',
207
181
  borderRadius: '4px',
208
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
209
- display: 'flex',
210
- justifyContent: 'space-between',
211
- alignItems: 'center',
212
- marginBottom: '4px',
213
- gap: '8px',
214
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { color: '#f59e0b', fontSize: '13px', fontWeight: 'bold', flexShrink: 0 }, children: ["EVENT: ", item.name] }), filepath && ((0, jsx_runtime_1.jsxs)("div", { style: {
215
- fontSize: '12px',
216
- color: isCodeUnderTest ? '#4ade80' : '#60a5fa',
217
- fontFamily: 'monospace',
218
- background: isCodeUnderTest ? '#064e3b' : '#1e3a8a',
219
- padding: '2px 6px',
220
- borderRadius: '3px',
221
- flexShrink: 1,
222
- minWidth: 0,
223
- overflow: 'hidden',
224
- textOverflow: 'ellipsis',
225
- whiteSpace: 'nowrap',
226
- }, children: [isCodeUnderTest && ' ', filepath, ":", lineno] }))] }), (0, jsx_runtime_1.jsx)("pre", { style: {
227
- background: theme.colors.surface,
228
- padding: '8px',
229
- borderRadius: '4px',
230
- margin: 0,
231
- fontSize: '13px',
232
- lineHeight: '1.5',
233
- overflow: 'auto',
234
- maxWidth: '100%',
235
- }, children: js_yaml_1.default.dump(Object.fromEntries(Object.entries(item.attributes || {}).filter(([key]) => key !== 'code.filepath' && key !== 'code.lineno')), { indent: 2, lineWidth: -1 }) })] }, idx));
236
- }
237
- else {
238
- // OTEL LOG RENDERING
239
- const serviceName = item.resource?.['service.name'];
240
- const severityColor = getSeverityColor(item.severity);
241
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
242
- marginBottom: '12px',
243
- paddingBottom: '12px',
244
- paddingLeft: '12px',
245
- borderBottom: idx < filteredTimeline.length - 1 ? `1px solid ${theme.colors.border}` : 'none',
246
- borderLeft: `3px solid ${severityColor}`,
247
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
248
- display: 'flex',
249
- justifyContent: 'space-between',
250
- alignItems: 'center',
251
- marginBottom: '4px',
252
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '8px', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontSize: '16px' }, children: getSeverityIcon(item.severity) }), (0, jsx_runtime_1.jsxs)("span", { style: {
253
- color: severityColor,
254
- fontSize: '13px',
255
- fontWeight: 'bold',
256
- }, children: ["LOG: ", item.severity] })] }), serviceName && ((0, jsx_runtime_1.jsx)("div", { style: {
257
- fontSize: '12px',
258
- color: '#9ca3af',
259
- background: '#1e293b',
260
- padding: '2px 6px',
261
- borderRadius: '3px',
262
- }, children: serviceName }))] }), (0, jsx_runtime_1.jsx)("div", { style: {
263
- background: theme.colors.surface,
264
- padding: '8px',
265
- borderRadius: '4px',
266
- marginBottom: item.attributes && Object.keys(item.attributes).length > 0 ? '8px' : '0',
267
- fontSize: '13px',
268
- }, children: typeof item.body === 'string' ? (item.body) : ((0, jsx_runtime_1.jsx)("pre", { style: { margin: 0, fontSize: '13px', lineHeight: '1.5' }, children: js_yaml_1.default.dump(item.body, { indent: 2, lineWidth: -1 }) })) }), item.attributes && Object.keys(item.attributes).length > 0 && ((0, jsx_runtime_1.jsx)("pre", { style: {
269
- background: theme.colors.surface,
270
- padding: '8px',
271
- borderRadius: '4px',
272
- margin: 0,
273
- fontSize: '12px',
274
- lineHeight: '1.5',
275
- opacity: 0.8,
276
- }, children: js_yaml_1.default.dump(item.attributes, { indent: 2, lineWidth: -1 }) }))] }, idx));
277
- }
278
- }) })) })] }));
182
+ cursor: 'pointer',
183
+ fontSize: '14px',
184
+ }, children: "View Raw Events" })] })) : null, viewMode === 'raw' && currentSpan && (_jsx("div", { children: timeline.map((item, idx) => {
185
+ if (item.type === 'event') {
186
+ // SPAN EVENT RENDERING
187
+ const filepath = item.attributes?.['code.filepath'];
188
+ const lineno = item.attributes?.['code.lineno'];
189
+ const isCodeUnderTest = filepath && filepath !== 'GraphConverter.test.ts';
190
+ // Determine which phase this event belongs to
191
+ const eventPhase = item.name?.split('.')[0]; // 'setup', 'execution', 'assertion'
192
+ const isHighlighted = highlightedPhase === eventPhase;
193
+ return (_jsxs("div", { style: {
194
+ marginBottom: '12px',
195
+ paddingBottom: '12px',
196
+ paddingLeft: '12px',
197
+ borderBottom: idx < timeline.length - 1 ? `1px solid ${theme.colors.border}` : 'none',
198
+ borderLeft: '3px solid #f59e0b',
199
+ opacity: highlightedPhase && !isHighlighted ? 0.4 : 1,
200
+ transition: 'opacity 0.2s ease',
201
+ transform: isHighlighted ? 'scale(1.02)' : 'scale(1)',
202
+ backgroundColor: isHighlighted ? theme.colors.surface : 'transparent',
203
+ padding: isHighlighted ? '8px 8px 8px 12px' : '0 0 12px 12px',
204
+ borderRadius: '4px',
205
+ }, children: [_jsxs("div", { style: {
206
+ display: 'flex',
207
+ justifyContent: 'space-between',
208
+ alignItems: 'center',
209
+ marginBottom: '4px',
210
+ gap: '8px',
211
+ }, children: [_jsxs("div", { style: { color: '#f59e0b', fontSize: '13px', fontWeight: 'bold', flexShrink: 0 }, children: ["EVENT: ", item.name] }), filepath && (_jsxs("div", { style: {
212
+ fontSize: '12px',
213
+ color: isCodeUnderTest ? '#4ade80' : '#60a5fa',
214
+ fontFamily: 'monospace',
215
+ background: isCodeUnderTest ? '#064e3b' : '#1e3a8a',
216
+ padding: '2px 6px',
217
+ borderRadius: '3px',
218
+ flexShrink: 1,
219
+ minWidth: 0,
220
+ overflow: 'hidden',
221
+ textOverflow: 'ellipsis',
222
+ whiteSpace: 'nowrap',
223
+ }, children: [isCodeUnderTest && '', filepath, ":", lineno] }))] }), _jsx("pre", { style: {
224
+ background: theme.colors.surface,
225
+ padding: '8px',
226
+ borderRadius: '4px',
227
+ margin: 0,
228
+ fontSize: '13px',
229
+ lineHeight: '1.5',
230
+ overflow: 'auto',
231
+ maxWidth: '100%',
232
+ }, children: yaml.dump(Object.fromEntries(Object.entries(item.attributes || {}).filter(([key]) => key !== 'code.filepath' && key !== 'code.lineno')), { indent: 2, lineWidth: -1 }) })] }, idx));
233
+ }
234
+ else {
235
+ // OTEL LOG RENDERING
236
+ const serviceName = item.resource?.['service.name'];
237
+ const severityColor = getSeverityColor(item.severity);
238
+ return (_jsxs("div", { style: {
239
+ marginBottom: '12px',
240
+ paddingBottom: '12px',
241
+ paddingLeft: '12px',
242
+ borderBottom: idx < timeline.length - 1 ? `1px solid ${theme.colors.border}` : 'none',
243
+ borderLeft: `3px solid ${severityColor}`,
244
+ }, children: [_jsxs("div", { style: {
245
+ display: 'flex',
246
+ justifyContent: 'space-between',
247
+ alignItems: 'center',
248
+ marginBottom: '4px',
249
+ }, children: [_jsxs("div", { style: { display: 'flex', gap: '8px', alignItems: 'center' }, children: [_jsx("span", { style: { fontSize: '16px' }, children: getSeverityIcon(item.severity) }), _jsxs("span", { style: {
250
+ color: severityColor,
251
+ fontSize: '13px',
252
+ fontWeight: 'bold',
253
+ }, children: ["LOG: ", item.severity] })] }), serviceName && (_jsx("div", { style: {
254
+ fontSize: '12px',
255
+ color: '#9ca3af',
256
+ background: '#1e293b',
257
+ padding: '2px 6px',
258
+ borderRadius: '3px',
259
+ }, children: serviceName }))] }), _jsx("div", { style: {
260
+ background: theme.colors.surface,
261
+ padding: '8px',
262
+ borderRadius: '4px',
263
+ marginBottom: item.attributes && Object.keys(item.attributes).length > 0 ? '8px' : '0',
264
+ fontSize: '13px',
265
+ }, children: typeof item.body === 'string' ? (item.body) : (_jsx("pre", { style: { margin: 0, fontSize: '13px', lineHeight: '1.5' }, children: yaml.dump(item.body, { indent: 2, lineWidth: -1 }) })) }), item.attributes && Object.keys(item.attributes).length > 0 && (_jsx("pre", { style: {
266
+ background: theme.colors.surface,
267
+ padding: '8px',
268
+ borderRadius: '4px',
269
+ margin: 0,
270
+ fontSize: '12px',
271
+ lineHeight: '1.5',
272
+ opacity: 0.8,
273
+ }, children: yaml.dump(item.attributes, { indent: 2, lineWidth: -1 }) }))] }, idx));
274
+ }
275
+ }) }))] })] }));
279
276
  };
280
- exports.TestEventPanel = TestEventPanel;
281
277
  //# sourceMappingURL=TestEventPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestEventPanel.js","sourceRoot":"","sources":["../../src/components/TestEventPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestEventPanel.js","sourceRoot":"","sources":["../../src/components/TestEventPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { EdgeProps } from '@xyflow/react';
3
- import type { EdgeTypeDefinition } from '@principal-ai/principal-view-core';
3
+ import type { EdgeTypeDefinition } from '@principal-ai/principal-view-core/browser';
4
4
  export interface CustomEdgeData extends Record<string, unknown> {
5
5
  typeDefinition: EdgeTypeDefinition;
6
6
  hasViolations?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomEdge.d.ts","sourceRoot":"","sources":["../../src/edges/CustomEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,cAAc,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;IAE9D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AAEH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAuW/C,CAAC"}
1
+ {"version":3,"file":"CustomEdge.d.ts","sourceRoot":"","sources":["../../src/edges/CustomEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,cAAc,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;IAE9D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AAEH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAuW/C,CAAC"}
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomEdge = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const react_2 = require("@xyflow/react");
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from 'react';
3
+ import { BaseEdge, EdgeLabelRenderer, getBezierPath } from '@xyflow/react';
7
4
  /**
8
5
  * Custom edge component for xyflow that renders based on EdgeTypeDefinition
9
6
  */
10
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, data, markerEnd, selected, }) => {
8
+ export const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, data, markerEnd, selected, }) => {
12
9
  const edgeProps = data;
13
10
  const { typeDefinition, hasViolations, data: edgeData, edgeType, animationType, animationDuration = 1000, animationDirection = 'forward', tooltipsEnabled = true, } = edgeProps || {};
14
- const [particlePosition, setParticlePosition] = (0, react_1.useState)(0);
15
- const [isHovered, setIsHovered] = (0, react_1.useState)(false);
16
- const pathRef = (0, react_1.useRef)(null);
11
+ const [particlePosition, setParticlePosition] = useState(0);
12
+ const [isHovered, setIsHovered] = useState(false);
13
+ const pathRef = useRef(null);
17
14
  // Particle animation effect
18
- (0, react_1.useEffect)(() => {
15
+ useEffect(() => {
19
16
  if (animationType !== 'particle')
20
17
  return;
21
18
  const animate = () => {
@@ -36,7 +33,7 @@ const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, ta
36
33
  const color = hasViolations ? '#D0021B' : edgeColor || typeDefinition.color || '#888';
37
34
  const width = typeDefinition.width || 2;
38
35
  // Get Bezier path
39
- const [edgePath, labelX, labelY] = (0, react_2.getBezierPath)({
36
+ const [edgePath, labelX, labelY] = getBezierPath({
40
37
  sourceX,
41
38
  sourceY,
42
39
  sourcePosition,
@@ -103,25 +100,25 @@ const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, ta
103
100
  return { x: point.x, y: point.y };
104
101
  };
105
102
  const particlePos = animationType === 'particle' ? getParticleTransform() : null;
106
- return ((0, jsx_runtime_1.jsxs)("g", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), style: { cursor: 'pointer' }, children: [(0, jsx_runtime_1.jsx)("path", { ref: pathRef, d: edgePath, fill: "none", stroke: "transparent", strokeWidth: 0, style: { pointerEvents: 'none' } }), (0, jsx_runtime_1.jsx)("path", { d: edgePath, fill: "none", stroke: "transparent", strokeWidth: Math.max(width + 10, 20), style: { pointerEvents: 'stroke' } }), (0, jsx_runtime_1.jsx)(react_2.BaseEdge, { id: id, path: edgePath, markerEnd: markerEnd, style: {
103
+ return (_jsxs("g", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), style: { cursor: 'pointer' }, children: [_jsx("path", { ref: pathRef, d: edgePath, fill: "none", stroke: "transparent", strokeWidth: 0, style: { pointerEvents: 'none' } }), _jsx("path", { d: edgePath, fill: "none", stroke: "transparent", strokeWidth: Math.max(width + 10, 20), style: { pointerEvents: 'stroke' } }), _jsx(BaseEdge, { id: id, path: edgePath, markerEnd: markerEnd, style: {
107
104
  stroke: color,
108
105
  strokeWidth: selected ? width + 2 : width,
109
106
  strokeDasharray: getStrokeStyle(),
110
107
  opacity: animationType ? 0.7 : 1,
111
108
  cursor: 'pointer',
112
- } }), animationType === 'flow' && ((0, jsx_runtime_1.jsx)("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "10 5", className: getAnimationClass(), style: {
109
+ } }), animationType === 'flow' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "10 5", className: getAnimationClass(), style: {
113
110
  ...getAnimationDurationStyle(),
114
111
  opacity: 0.8,
115
- } })), animationType === 'pulse' && ((0, jsx_runtime_1.jsx)("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 2, className: getAnimationClass(), style: {
112
+ } })), animationType === 'pulse' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 2, className: getAnimationClass(), style: {
116
113
  ...getAnimationDurationStyle(),
117
- } })), animationType === 'glow' && ((0, jsx_runtime_1.jsx)("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 4, className: getAnimationClass(), style: {
114
+ } })), animationType === 'glow' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width + 4, className: getAnimationClass(), style: {
118
115
  ...getAnimationDurationStyle(),
119
116
  filter: 'blur(3px)',
120
- } })), animationType === 'particle' && particlePos && ((0, jsx_runtime_1.jsx)("circle", { cx: particlePos.x, cy: particlePos.y, r: width * 1.5, fill: typeDefinition.animation?.color || color, style: {
117
+ } })), animationType === 'particle' && particlePos && (_jsx("circle", { cx: particlePos.x, cy: particlePos.y, r: width * 1.5, fill: typeDefinition.animation?.color || color, style: {
121
118
  filter: 'drop-shadow(0 0 3px rgba(0,0,0,0.3))',
122
- } })), !animationType && typeDefinition.style === 'animated' && ((0, jsx_runtime_1.jsx)("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "5 5", className: "edge-flow-forward", style: {
119
+ } })), !animationType && typeDefinition.style === 'animated' && (_jsx("path", { d: edgePath, fill: "none", stroke: typeDefinition.animation?.color || color, strokeWidth: width, strokeDasharray: "5 5", className: "edge-flow-forward", style: {
123
120
  animationDuration: '500ms',
124
- } })), labelText && ((0, jsx_runtime_1.jsx)(react_2.EdgeLabelRenderer, { children: (0, jsx_runtime_1.jsx)("div", { style: {
121
+ } })), labelText && (_jsx(EdgeLabelRenderer, { children: _jsx("div", { style: {
125
122
  position: 'absolute',
126
123
  transform: `translate(-50%, -50%) translate(${labelX}px,${labelY}px)`,
127
124
  backgroundColor: 'white',
@@ -131,7 +128,7 @@ const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, ta
131
128
  fontWeight: 500,
132
129
  border: `1px solid ${color}`,
133
130
  pointerEvents: 'all',
134
- }, className: "nodrag nopan", children: labelText }) })), tooltipsEnabled && isHovered && ((0, jsx_runtime_1.jsx)(react_2.EdgeLabelRenderer, { children: (0, jsx_runtime_1.jsx)("div", { style: {
131
+ }, className: "nodrag nopan", children: labelText }) })), tooltipsEnabled && isHovered && (_jsx(EdgeLabelRenderer, { children: _jsx("div", { style: {
135
132
  position: 'absolute',
136
133
  transform: `translate(-50%, -100%) translate(${labelX}px,${labelY - 12}px)`,
137
134
  backgroundColor: 'rgba(0, 0, 0, 0.85)',
@@ -144,7 +141,7 @@ const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, ta
144
141
  pointerEvents: 'none',
145
142
  zIndex: 1000,
146
143
  boxShadow: '0 2px 8px rgba(0,0,0,0.2)',
147
- }, children: edgeType || 'edge' }) })), (0, jsx_runtime_1.jsx)("style", { children: `
144
+ }, children: edgeType || 'edge' }) })), _jsx("style", { children: `
148
145
  /* Flow animation - forward direction */
149
146
  .edge-flow-forward {
150
147
  animation: flow-forward linear infinite;
@@ -212,5 +209,4 @@ const CustomEdge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, ta
212
209
  }
213
210
  ` })] }));
214
211
  };
215
- exports.CustomEdge = CustomEdge;
216
212
  //# sourceMappingURL=CustomEdge.js.map