@principal-ai/principal-view-react 0.6.6

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 (96) hide show
  1. package/README.md +111 -0
  2. package/dist/components/ConfigurationSelector.d.ts +37 -0
  3. package/dist/components/ConfigurationSelector.d.ts.map +1 -0
  4. package/dist/components/ConfigurationSelector.js +67 -0
  5. package/dist/components/ConfigurationSelector.js.map +1 -0
  6. package/dist/components/EdgeInfoPanel.d.ts +16 -0
  7. package/dist/components/EdgeInfoPanel.d.ts.map +1 -0
  8. package/dist/components/EdgeInfoPanel.js +85 -0
  9. package/dist/components/EdgeInfoPanel.js.map +1 -0
  10. package/dist/components/EventLog.d.ts +20 -0
  11. package/dist/components/EventLog.d.ts.map +1 -0
  12. package/dist/components/EventLog.js +13 -0
  13. package/dist/components/EventLog.js.map +1 -0
  14. package/dist/components/EventLog.test.d.ts +2 -0
  15. package/dist/components/EventLog.test.d.ts.map +1 -0
  16. package/dist/components/EventLog.test.js +73 -0
  17. package/dist/components/EventLog.test.js.map +1 -0
  18. package/dist/components/GraphRenderer.d.ts +121 -0
  19. package/dist/components/GraphRenderer.d.ts.map +1 -0
  20. package/dist/components/GraphRenderer.js +809 -0
  21. package/dist/components/GraphRenderer.js.map +1 -0
  22. package/dist/components/GraphRenderer.test.d.ts +2 -0
  23. package/dist/components/GraphRenderer.test.d.ts.map +1 -0
  24. package/dist/components/GraphRenderer.test.js +88 -0
  25. package/dist/components/GraphRenderer.test.js.map +1 -0
  26. package/dist/components/MetricsDashboard.d.ts +14 -0
  27. package/dist/components/MetricsDashboard.d.ts.map +1 -0
  28. package/dist/components/MetricsDashboard.js +13 -0
  29. package/dist/components/MetricsDashboard.js.map +1 -0
  30. package/dist/components/NodeInfoPanel.d.ts +21 -0
  31. package/dist/components/NodeInfoPanel.d.ts.map +1 -0
  32. package/dist/components/NodeInfoPanel.js +217 -0
  33. package/dist/components/NodeInfoPanel.js.map +1 -0
  34. package/dist/edges/CustomEdge.d.ts +16 -0
  35. package/dist/edges/CustomEdge.d.ts.map +1 -0
  36. package/dist/edges/CustomEdge.js +200 -0
  37. package/dist/edges/CustomEdge.js.map +1 -0
  38. package/dist/edges/GenericEdge.d.ts +18 -0
  39. package/dist/edges/GenericEdge.d.ts.map +1 -0
  40. package/dist/edges/GenericEdge.js +14 -0
  41. package/dist/edges/GenericEdge.js.map +1 -0
  42. package/dist/hooks/usePathBasedEvents.d.ts +42 -0
  43. package/dist/hooks/usePathBasedEvents.d.ts.map +1 -0
  44. package/dist/hooks/usePathBasedEvents.js +122 -0
  45. package/dist/hooks/usePathBasedEvents.js.map +1 -0
  46. package/dist/index.d.ts +33 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +41 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/nodes/CustomNode.d.ts +18 -0
  51. package/dist/nodes/CustomNode.d.ts.map +1 -0
  52. package/dist/nodes/CustomNode.js +298 -0
  53. package/dist/nodes/CustomNode.js.map +1 -0
  54. package/dist/nodes/GenericNode.d.ts +20 -0
  55. package/dist/nodes/GenericNode.d.ts.map +1 -0
  56. package/dist/nodes/GenericNode.js +24 -0
  57. package/dist/nodes/GenericNode.js.map +1 -0
  58. package/dist/utils/animationMapping.d.ts +53 -0
  59. package/dist/utils/animationMapping.d.ts.map +1 -0
  60. package/dist/utils/animationMapping.js +133 -0
  61. package/dist/utils/animationMapping.js.map +1 -0
  62. package/dist/utils/graphConverter.d.ts +22 -0
  63. package/dist/utils/graphConverter.d.ts.map +1 -0
  64. package/dist/utils/graphConverter.js +176 -0
  65. package/dist/utils/graphConverter.js.map +1 -0
  66. package/dist/utils/iconResolver.d.ts +29 -0
  67. package/dist/utils/iconResolver.d.ts.map +1 -0
  68. package/dist/utils/iconResolver.js +68 -0
  69. package/dist/utils/iconResolver.js.map +1 -0
  70. package/package.json +61 -0
  71. package/src/components/ConfigurationSelector.tsx +147 -0
  72. package/src/components/EdgeInfoPanel.tsx +198 -0
  73. package/src/components/EventLog.test.tsx +85 -0
  74. package/src/components/EventLog.tsx +51 -0
  75. package/src/components/GraphRenderer.test.tsx +118 -0
  76. package/src/components/GraphRenderer.tsx +1222 -0
  77. package/src/components/MetricsDashboard.tsx +40 -0
  78. package/src/components/NodeInfoPanel.tsx +425 -0
  79. package/src/edges/CustomEdge.tsx +344 -0
  80. package/src/edges/GenericEdge.tsx +40 -0
  81. package/src/hooks/usePathBasedEvents.ts +182 -0
  82. package/src/index.ts +67 -0
  83. package/src/nodes/CustomNode.tsx +432 -0
  84. package/src/nodes/GenericNode.tsx +54 -0
  85. package/src/stories/AnimationWorkshop.stories.tsx +608 -0
  86. package/src/stories/EventDrivenAnimations.stories.tsx +499 -0
  87. package/src/stories/EventLog.stories.tsx +161 -0
  88. package/src/stories/GraphRenderer.stories.tsx +628 -0
  89. package/src/stories/Introduction.mdx +51 -0
  90. package/src/stories/MetricsDashboard.stories.tsx +227 -0
  91. package/src/stories/MultiConfig.stories.tsx +531 -0
  92. package/src/stories/MultiDirectionalConnections.stories.tsx +345 -0
  93. package/src/stories/NodeShapes.stories.tsx +769 -0
  94. package/src/utils/animationMapping.ts +170 -0
  95. package/src/utils/graphConverter.ts +218 -0
  96. package/src/utils/iconResolver.tsx +49 -0
@@ -0,0 +1,227 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { MetricsDashboard } from '../components/MetricsDashboard';
3
+ import type { GraphMetrics } from '@principal-ai/principal-view-core';
4
+
5
+ const meta = {
6
+ title: 'Components/MetricsDashboard',
7
+ component: MetricsDashboard,
8
+ parameters: {
9
+ layout: 'centered',
10
+ },
11
+ tags: ['autodocs'],
12
+ } satisfies Meta<typeof MetricsDashboard>;
13
+
14
+ export default meta;
15
+ type Story = StoryObj<typeof meta>;
16
+
17
+ // Sample metrics
18
+ const sampleMetrics: GraphMetrics = {
19
+ nodes: {
20
+ total: 25,
21
+ byType: {
22
+ process: 10,
23
+ data: 8,
24
+ external: 7,
25
+ },
26
+ byStatus: {
27
+ active: 20,
28
+ inactive: 3,
29
+ error: 2,
30
+ },
31
+ },
32
+ edges: {
33
+ total: 42,
34
+ byType: {
35
+ dataflow: 30,
36
+ control: 8,
37
+ dependency: 4,
38
+ },
39
+ byStatus: {
40
+ active: 38,
41
+ inactive: 2,
42
+ error: 2,
43
+ },
44
+ },
45
+ events: {
46
+ total: 156,
47
+ byCategory: {
48
+ node: 85,
49
+ edge: 45,
50
+ validation: 15,
51
+ system: 11,
52
+ },
53
+ byType: {
54
+ node_added: 25,
55
+ node_updated: 35,
56
+ node_removed: 10,
57
+ edge_added: 30,
58
+ edge_updated: 10,
59
+ edge_removed: 5,
60
+ validation_run: 15,
61
+ system_start: 5,
62
+ system_stop: 5,
63
+ custom: 16,
64
+ },
65
+ rate: {
66
+ perSecond: 2.5,
67
+ perMinute: 150,
68
+ perHour: 9000,
69
+ },
70
+ },
71
+ validation: {
72
+ violations: 3,
73
+ warnings: 7,
74
+ healthScore: 0.92,
75
+ lastRun: Date.now() - 30000,
76
+ },
77
+ performance: {
78
+ avgEventProcessingTime: 15,
79
+ avgValidationTime: 120,
80
+ memoryUsage: 45.2,
81
+ },
82
+ };
83
+
84
+ const healthyMetrics: GraphMetrics = {
85
+ nodes: {
86
+ total: 10,
87
+ byType: { process: 5, data: 5 },
88
+ byStatus: { active: 10, inactive: 0, error: 0 },
89
+ },
90
+ edges: {
91
+ total: 12,
92
+ byType: { dataflow: 12 },
93
+ byStatus: { active: 12, inactive: 0, error: 0 },
94
+ },
95
+ events: {
96
+ total: 50,
97
+ byCategory: { node: 30, edge: 15, validation: 5, system: 0 },
98
+ byType: {
99
+ node_added: 10,
100
+ node_updated: 15,
101
+ node_removed: 5,
102
+ edge_added: 12,
103
+ edge_updated: 3,
104
+ edge_removed: 0,
105
+ validation_run: 5,
106
+ system_start: 0,
107
+ system_stop: 0,
108
+ custom: 0,
109
+ },
110
+ rate: { perSecond: 1.0, perMinute: 60, perHour: 3600 },
111
+ },
112
+ validation: {
113
+ violations: 0,
114
+ warnings: 0,
115
+ healthScore: 1.0,
116
+ lastRun: Date.now() - 5000,
117
+ },
118
+ performance: {
119
+ avgEventProcessingTime: 8,
120
+ avgValidationTime: 50,
121
+ memoryUsage: 25.5,
122
+ },
123
+ };
124
+
125
+ const criticalMetrics: GraphMetrics = {
126
+ nodes: {
127
+ total: 50,
128
+ byType: { process: 20, data: 15, external: 15 },
129
+ byStatus: { active: 30, inactive: 10, error: 10 },
130
+ },
131
+ edges: {
132
+ total: 80,
133
+ byType: { dataflow: 50, control: 20, dependency: 10 },
134
+ byStatus: { active: 50, inactive: 15, error: 15 },
135
+ },
136
+ events: {
137
+ total: 500,
138
+ byCategory: { node: 200, edge: 180, validation: 100, system: 20 },
139
+ byType: {
140
+ node_added: 50,
141
+ node_updated: 100,
142
+ node_removed: 30,
143
+ edge_added: 80,
144
+ edge_updated: 70,
145
+ edge_removed: 30,
146
+ validation_run: 100,
147
+ system_start: 10,
148
+ system_stop: 10,
149
+ custom: 20,
150
+ },
151
+ rate: { perSecond: 5.2, perMinute: 312, perHour: 18720 },
152
+ },
153
+ validation: {
154
+ violations: 25,
155
+ warnings: 40,
156
+ healthScore: 0.35,
157
+ lastRun: Date.now() - 60000,
158
+ },
159
+ performance: {
160
+ avgEventProcessingTime: 45,
161
+ avgValidationTime: 350,
162
+ memoryUsage: 85.8,
163
+ },
164
+ };
165
+
166
+ export const Default: Story = {
167
+ args: {
168
+ metrics: sampleMetrics,
169
+ },
170
+ };
171
+
172
+ export const HealthySystem: Story = {
173
+ args: {
174
+ metrics: healthyMetrics,
175
+ },
176
+ };
177
+
178
+ export const CriticalSystem: Story = {
179
+ args: {
180
+ metrics: criticalMetrics,
181
+ },
182
+ };
183
+
184
+ export const MinimalGraph: Story = {
185
+ args: {
186
+ metrics: {
187
+ nodes: {
188
+ total: 2,
189
+ byType: { process: 1, data: 1 },
190
+ byStatus: { active: 2, inactive: 0, error: 0 },
191
+ },
192
+ edges: {
193
+ total: 1,
194
+ byType: { dataflow: 1 },
195
+ byStatus: { active: 1, inactive: 0, error: 0 },
196
+ },
197
+ events: {
198
+ total: 5,
199
+ byCategory: { node: 2, edge: 1, validation: 1, system: 1 },
200
+ byType: {
201
+ node_added: 2,
202
+ node_updated: 0,
203
+ node_removed: 0,
204
+ edge_added: 1,
205
+ edge_updated: 0,
206
+ edge_removed: 0,
207
+ validation_run: 1,
208
+ system_start: 1,
209
+ system_stop: 0,
210
+ custom: 0,
211
+ },
212
+ rate: { perSecond: 0.1, perMinute: 6, perHour: 360 },
213
+ },
214
+ validation: {
215
+ violations: 0,
216
+ warnings: 1,
217
+ healthScore: 0.95,
218
+ lastRun: Date.now() - 10000,
219
+ },
220
+ performance: {
221
+ avgEventProcessingTime: 5,
222
+ avgValidationTime: 30,
223
+ memoryUsage: 12.3,
224
+ },
225
+ },
226
+ },
227
+ };