@workflow/web-shared 4.1.0-beta.52 → 4.1.0-beta.53

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 (145) hide show
  1. package/dist/components/error-boundary.d.ts +15 -20
  2. package/dist/components/error-boundary.d.ts.map +1 -1
  3. package/dist/components/error-boundary.js +17 -31
  4. package/dist/components/error-boundary.js.map +1 -1
  5. package/dist/components/event-list-view.d.ts +7 -6
  6. package/dist/components/event-list-view.d.ts.map +1 -1
  7. package/dist/components/event-list-view.js +492 -109
  8. package/dist/components/event-list-view.js.map +1 -1
  9. package/dist/components/index.d.ts +1 -0
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.js +1 -0
  12. package/dist/components/index.js.map +1 -1
  13. package/dist/components/run-trace-view.d.ts +2 -1
  14. package/dist/components/run-trace-view.d.ts.map +1 -1
  15. package/dist/components/run-trace-view.js +2 -2
  16. package/dist/components/run-trace-view.js.map +1 -1
  17. package/dist/components/sidebar/attribute-panel.d.ts +2 -1
  18. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  19. package/dist/components/sidebar/attribute-panel.js +53 -142
  20. package/dist/components/sidebar/attribute-panel.js.map +1 -1
  21. package/dist/components/sidebar/conversation-view.d.ts.map +1 -1
  22. package/dist/components/sidebar/conversation-view.js +3 -17
  23. package/dist/components/sidebar/conversation-view.js.map +1 -1
  24. package/dist/components/sidebar/entity-detail-panel.d.ts +3 -1
  25. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  26. package/dist/components/sidebar/entity-detail-panel.js +63 -10
  27. package/dist/components/sidebar/entity-detail-panel.js.map +1 -1
  28. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  29. package/dist/components/sidebar/events-list.js +4 -8
  30. package/dist/components/sidebar/events-list.js.map +1 -1
  31. package/dist/components/sidebar/resolve-hook-modal.d.ts +3 -0
  32. package/dist/components/sidebar/resolve-hook-modal.d.ts.map +1 -1
  33. package/dist/components/sidebar/resolve-hook-modal.js +152 -3
  34. package/dist/components/sidebar/resolve-hook-modal.js.map +1 -1
  35. package/dist/components/stream-viewer.d.ts +7 -5
  36. package/dist/components/stream-viewer.d.ts.map +1 -1
  37. package/dist/components/stream-viewer.js +54 -22
  38. package/dist/components/stream-viewer.js.map +1 -1
  39. package/dist/components/trace-viewer/components/markers.d.ts +2 -1
  40. package/dist/components/trace-viewer/components/markers.d.ts.map +1 -1
  41. package/dist/components/trace-viewer/components/markers.js +59 -20
  42. package/dist/components/trace-viewer/components/markers.js.map +1 -1
  43. package/dist/components/trace-viewer/components/node.d.ts +5 -1
  44. package/dist/components/trace-viewer/components/node.d.ts.map +1 -1
  45. package/dist/components/trace-viewer/components/node.js +250 -68
  46. package/dist/components/trace-viewer/components/node.js.map +1 -1
  47. package/dist/components/trace-viewer/components/span-content.d.ts +19 -0
  48. package/dist/components/trace-viewer/components/span-content.d.ts.map +1 -0
  49. package/dist/components/trace-viewer/components/span-content.js +137 -0
  50. package/dist/components/trace-viewer/components/span-content.js.map +1 -0
  51. package/dist/components/trace-viewer/components/span-detail-panel.d.ts.map +1 -1
  52. package/dist/components/trace-viewer/components/span-detail-panel.js +3 -2
  53. package/dist/components/trace-viewer/components/span-detail-panel.js.map +1 -1
  54. package/dist/components/trace-viewer/components/span-segments.d.ts +50 -0
  55. package/dist/components/trace-viewer/components/span-segments.d.ts.map +1 -0
  56. package/dist/components/trace-viewer/components/span-segments.js +392 -0
  57. package/dist/components/trace-viewer/components/span-segments.js.map +1 -0
  58. package/dist/components/trace-viewer/components/span-strategies.d.ts +46 -0
  59. package/dist/components/trace-viewer/components/span-strategies.d.ts.map +1 -0
  60. package/dist/components/trace-viewer/components/span-strategies.js +108 -0
  61. package/dist/components/trace-viewer/components/span-strategies.js.map +1 -0
  62. package/dist/components/trace-viewer/context.d.ts +7 -6
  63. package/dist/components/trace-viewer/context.d.ts.map +1 -1
  64. package/dist/components/trace-viewer/context.js +47 -18
  65. package/dist/components/trace-viewer/context.js.map +1 -1
  66. package/dist/components/trace-viewer/trace-viewer.d.ts +5 -1
  67. package/dist/components/trace-viewer/trace-viewer.d.ts.map +1 -1
  68. package/dist/components/trace-viewer/trace-viewer.js +87 -11
  69. package/dist/components/trace-viewer/trace-viewer.js.map +1 -1
  70. package/dist/components/trace-viewer/trace-viewer.module.css +179 -6
  71. package/dist/components/trace-viewer/util/timing.d.ts +5 -0
  72. package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
  73. package/dist/components/trace-viewer/util/timing.js +12 -0
  74. package/dist/components/trace-viewer/util/timing.js.map +1 -1
  75. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts +1 -1
  76. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts.map +1 -1
  77. package/dist/components/trace-viewer/util/use-streaming-spans.js +29 -17
  78. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +1 -1
  79. package/dist/components/trace-viewer/worker.js +3 -1
  80. package/dist/components/trace-viewer/worker.js.map +1 -1
  81. package/dist/components/ui/alert.js +3 -3
  82. package/dist/components/ui/alert.js.map +1 -1
  83. package/dist/components/ui/card.d.ts.map +1 -1
  84. package/dist/components/ui/card.js +2 -2
  85. package/dist/components/ui/card.js.map +1 -1
  86. package/dist/components/ui/data-inspector.d.ts +17 -0
  87. package/dist/components/ui/data-inspector.d.ts.map +1 -0
  88. package/dist/components/ui/data-inspector.js +184 -0
  89. package/dist/components/ui/data-inspector.js.map +1 -0
  90. package/dist/components/ui/error-card.d.ts.map +1 -1
  91. package/dist/components/ui/error-card.js +4 -1
  92. package/dist/components/ui/error-card.js.map +1 -1
  93. package/dist/components/ui/inspector-theme.d.ts +39 -24
  94. package/dist/components/ui/inspector-theme.d.ts.map +1 -1
  95. package/dist/components/ui/inspector-theme.js +90 -38
  96. package/dist/components/ui/inspector-theme.js.map +1 -1
  97. package/dist/components/ui/skeleton.d.ts +1 -1
  98. package/dist/components/ui/skeleton.d.ts.map +1 -1
  99. package/dist/components/ui/skeleton.js +2 -2
  100. package/dist/components/ui/skeleton.js.map +1 -1
  101. package/dist/components/workflow-trace-view.d.ts +3 -1
  102. package/dist/components/workflow-trace-view.d.ts.map +1 -1
  103. package/dist/components/workflow-trace-view.js +435 -21
  104. package/dist/components/workflow-trace-view.js.map +1 -1
  105. package/dist/components/workflow-traces/trace-span-construction.d.ts +1 -1
  106. package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
  107. package/dist/components/workflow-traces/trace-span-construction.js +2 -2
  108. package/dist/components/workflow-traces/trace-span-construction.js.map +1 -1
  109. package/dist/lib/hydration.d.ts.map +1 -1
  110. package/dist/lib/hydration.js +17 -3
  111. package/dist/lib/hydration.js.map +1 -1
  112. package/dist/styles.css +186 -0
  113. package/package.json +8 -7
  114. package/src/components/error-boundary.tsx +29 -40
  115. package/src/components/event-list-view.tsx +1000 -287
  116. package/src/components/index.ts +1 -0
  117. package/src/components/run-trace-view.tsx +3 -0
  118. package/src/components/sidebar/attribute-panel.tsx +58 -258
  119. package/src/components/sidebar/conversation-view.tsx +30 -27
  120. package/src/components/sidebar/entity-detail-panel.tsx +86 -20
  121. package/src/components/sidebar/events-list.tsx +4 -11
  122. package/src/components/sidebar/resolve-hook-modal.tsx +206 -47
  123. package/src/components/stream-viewer.tsx +138 -61
  124. package/src/components/trace-viewer/components/markers.tsx +69 -21
  125. package/src/components/trace-viewer/components/node.tsx +346 -100
  126. package/src/components/trace-viewer/components/span-content.tsx +247 -0
  127. package/src/components/trace-viewer/components/span-detail-panel.tsx +7 -2
  128. package/src/components/trace-viewer/components/span-segments.ts +516 -0
  129. package/src/components/trace-viewer/components/span-strategies.ts +205 -0
  130. package/src/components/trace-viewer/context.tsx +92 -40
  131. package/src/components/trace-viewer/trace-viewer.module.css +179 -6
  132. package/src/components/trace-viewer/trace-viewer.tsx +115 -11
  133. package/src/components/trace-viewer/util/timing.ts +13 -0
  134. package/src/components/trace-viewer/util/use-streaming-spans.ts +28 -17
  135. package/src/components/trace-viewer/worker.ts +4 -1
  136. package/src/components/ui/alert.tsx +3 -3
  137. package/src/components/ui/card.tsx +3 -5
  138. package/src/components/ui/data-inspector.tsx +318 -0
  139. package/src/components/ui/error-card.tsx +17 -6
  140. package/src/components/ui/inspector-theme.ts +127 -39
  141. package/src/components/ui/skeleton.tsx +3 -1
  142. package/src/components/workflow-trace-view.tsx +625 -26
  143. package/src/components/workflow-traces/trace-span-construction.ts +3 -2
  144. package/src/lib/hydration.ts +17 -8
  145. package/src/styles.css +186 -0
@@ -123,7 +123,8 @@ export function waitToSpan(
123
123
  export function stepToSpan(
124
124
  step: Step,
125
125
  stepEvents: Event[],
126
- nowTime?: Date
126
+ nowTime?: Date,
127
+ maxEndTime?: Date
127
128
  ): Span {
128
129
  const now = nowTime ?? new Date();
129
130
  const parsedName = parseStepName(String(step.stepName));
@@ -138,7 +139,7 @@ export function stepToSpan(
138
139
  };
139
140
 
140
141
  const resource = 'step';
141
- const endTime = new Date(step.completedAt ?? now);
142
+ const endTime = new Date(step.completedAt ?? maxEndTime ?? now);
142
143
 
143
144
  // Include ALL correlated events on the span so the sidebar detail view
144
145
  // can display them. The timeline uses the `showVerticalLine` flag to
@@ -7,7 +7,6 @@
7
7
  */
8
8
 
9
9
  import {
10
- ClassInstanceRef,
11
10
  extractClassName,
12
11
  hydrateResourceIO as hydrateResourceIOGeneric,
13
12
  observabilityRevivers,
@@ -97,14 +96,24 @@ export function getWebRevivers(): Revivers {
97
96
  URL: (value) => new URL(value),
98
97
  URLSearchParams: (value) => new URLSearchParams(value === '.' ? '' : value),
99
98
 
100
- // Web-specific overrides for class instances
99
+ // Web-specific overrides for class instances.
100
+ // Create objects with a dynamically-named constructor so that
101
+ // react-inspector shows the class name (it reads constructor.name).
101
102
  Class: (value) => `<class:${extractClassName(value.classId)}>`,
102
- Instance: (value) =>
103
- new ClassInstanceRef(
104
- extractClassName(value.classId),
105
- value.classId,
106
- value.data
107
- ),
103
+ Instance: (value) => {
104
+ const className = extractClassName(value.classId);
105
+ const data = value.data;
106
+ const props =
107
+ data && typeof data === 'object' ? { ...data } : { value: data };
108
+ // Create a constructor with the right name using computed property
109
+ // so react-inspector's `object.constructor.name` shows the class name.
110
+ // Must use `function` (not arrow) because arrow functions have no .prototype.
111
+ // biome-ignore lint/complexity/useArrowFunction: arrow functions have no .prototype
112
+ const ctor = { [className]: function () {} }[className]!;
113
+ const obj = Object.create(ctor.prototype);
114
+ Object.assign(obj, props);
115
+ return obj;
116
+ },
108
117
  };
109
118
  }
110
119
 
package/src/styles.css ADDED
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @workflow/web-shared default theme
3
+ *
4
+ * This file provides default values for the Geist design system CSS variables
5
+ * used by @workflow/web-shared components. Import this file if your application
6
+ * does not already provide Geist styles (e.g., via the `geist` package).
7
+ *
8
+ * If you are using this inside a Vercel dashboard app that already imports
9
+ * Geist styles, you do NOT need to import this file.
10
+ *
11
+ * Usage:
12
+ * import '@workflow/web-shared/styles.css';
13
+ */
14
+
15
+ :root {
16
+ /* Background */
17
+ --ds-background-100: hsl(0, 0%, 100%);
18
+ --ds-background-200: hsl(0, 0%, 98%);
19
+
20
+ /* Gray */
21
+ --ds-gray-100: hsl(0, 0%, 95%);
22
+ --ds-gray-200: hsl(0, 0%, 92%);
23
+ --ds-gray-300: hsl(0, 0%, 90%);
24
+ --ds-gray-400: hsl(0, 0%, 92%);
25
+ --ds-gray-500: hsl(0, 0%, 79%);
26
+ --ds-gray-600: hsl(0, 0%, 66%);
27
+ --ds-gray-700: hsl(0, 0%, 56%);
28
+ --ds-gray-800: hsl(0, 0%, 49%);
29
+ --ds-gray-900: hsl(0, 0%, 40%);
30
+ --ds-gray-1000: hsl(0, 0%, 9%);
31
+
32
+ /* Gray Alpha */
33
+ --ds-gray-alpha-100: rgba(0, 0, 0, 0.05);
34
+ --ds-gray-alpha-200: hsla(0, 0%, 0%, 0.081);
35
+ --ds-gray-alpha-400: hsla(0, 0%, 0%, 0.08);
36
+ --ds-gray-alpha-700: hsla(0, 0%, 0%, 0.44);
37
+ --ds-gray-alpha-1000: hsla(0, 0%, 0%, 0.91);
38
+
39
+ /* Blue */
40
+ --ds-blue-100: hsl(212, 100%, 97%);
41
+ --ds-blue-200: hsl(210, 100%, 96%);
42
+ --ds-blue-300: hsl(210, 100%, 94%);
43
+ --ds-blue-400: hsl(209, 100%, 90%);
44
+ --ds-blue-500: hsl(209, 100%, 80%);
45
+ --ds-blue-600: hsl(208, 100%, 66%);
46
+ --ds-blue-700: hsl(212, 100%, 48%);
47
+ --ds-blue-900: hsl(211, 100%, 42%);
48
+
49
+ /* Red */
50
+ --ds-red-100: hsl(0, 100%, 97%);
51
+ --ds-red-200: hsl(0, 100%, 96%);
52
+ --ds-red-300: hsl(0, 100%, 95%);
53
+ --ds-red-400: hsl(0, 90%, 92%);
54
+ --ds-red-500: hsl(0, 82%, 85%);
55
+ --ds-red-600: hsl(359, 90%, 71%);
56
+ --ds-red-700: hsl(358, 75%, 59%);
57
+ --ds-red-900: hsl(358, 66%, 48%);
58
+
59
+ /* Amber */
60
+ --ds-amber-100: hsl(39, 100%, 95%);
61
+ --ds-amber-200: hsl(44, 100%, 92%);
62
+ --ds-amber-300: hsl(43, 96%, 90%);
63
+ --ds-amber-400: hsl(42, 100%, 78%);
64
+ --ds-amber-500: hsl(38, 100%, 71%);
65
+ --ds-amber-600: hsl(36, 90%, 62%);
66
+ --ds-amber-700: hsl(39, 100%, 57%);
67
+ --ds-amber-900: hsl(30, 100%, 32%);
68
+
69
+ /* Green */
70
+ --ds-green-100: hsl(120, 60%, 96%);
71
+ --ds-green-200: hsl(120, 60%, 95%);
72
+ --ds-green-300: hsl(120, 60%, 91%);
73
+ --ds-green-400: hsl(122, 60%, 86%);
74
+ --ds-green-500: hsl(124, 60%, 75%);
75
+ --ds-green-600: hsl(125, 60%, 64%);
76
+ --ds-green-700: hsl(131, 41%, 46%);
77
+ --ds-green-900: hsl(133, 50%, 32%);
78
+
79
+ /* Teal */
80
+ --ds-teal-200: hsl(167, 70%, 94%);
81
+ --ds-teal-400: hsl(170, 70%, 85%);
82
+ --ds-teal-500: hsl(170, 70%, 72%);
83
+ --ds-teal-900: hsl(174, 91%, 25%);
84
+
85
+ /* Purple */
86
+ --ds-purple-100: hsl(276, 100%, 97%);
87
+ --ds-purple-200: hsl(277, 87%, 97%);
88
+ --ds-purple-300: hsl(274, 78%, 95%);
89
+ --ds-purple-400: hsl(276, 71%, 92%);
90
+ --ds-purple-500: hsl(274, 70%, 82%);
91
+ --ds-purple-600: hsl(273, 72%, 73%);
92
+ --ds-purple-700: hsl(272, 51%, 54%);
93
+ --ds-purple-900: hsl(274, 71%, 43%);
94
+
95
+ /* Pink */
96
+ --ds-pink-200: hsl(340, 90%, 96%);
97
+ --ds-pink-400: hsl(341, 76%, 91%);
98
+ --ds-pink-500: hsl(340, 75%, 84%);
99
+ --ds-pink-900: hsl(336, 65%, 45%);
100
+
101
+ /* Shadows */
102
+ --ds-shadow-small: 0px 1px 2px rgba(0, 0, 0, 0.04);
103
+ }
104
+
105
+ /* Dark theme defaults */
106
+ .dark-theme,
107
+ .dark,
108
+ [data-theme='dark'] {
109
+ --ds-background-100: hsl(0, 0%, 7%);
110
+ --ds-background-200: hsl(0, 0%, 10%);
111
+
112
+ --ds-gray-100: hsl(0, 0%, 11%);
113
+ --ds-gray-200: hsl(0, 0%, 14%);
114
+ --ds-gray-300: hsl(0, 0%, 17%);
115
+ --ds-gray-400: hsl(0, 0%, 14%);
116
+ --ds-gray-500: hsl(0, 0%, 23%);
117
+ --ds-gray-600: hsl(0, 0%, 34%);
118
+ --ds-gray-700: hsl(0, 0%, 44%);
119
+ --ds-gray-800: hsl(0, 0%, 51%);
120
+ --ds-gray-900: hsl(0, 0%, 63%);
121
+ --ds-gray-1000: hsl(0, 0%, 93%);
122
+
123
+ --ds-gray-alpha-100: rgba(255, 255, 255, 0.06);
124
+ --ds-gray-alpha-200: rgba(255, 255, 255, 0.09);
125
+ --ds-gray-alpha-400: rgba(255, 255, 255, 0.14);
126
+ --ds-gray-alpha-700: rgba(255, 255, 255, 0.45);
127
+ --ds-gray-alpha-1000: rgba(255, 255, 255, 0.92);
128
+
129
+ --ds-blue-100: hsl(216, 50%, 12%);
130
+ --ds-blue-200: hsl(214, 59%, 15%);
131
+ --ds-blue-300: hsl(213, 71%, 20%);
132
+ --ds-blue-400: hsl(212, 78%, 23%);
133
+ --ds-blue-500: hsl(211, 86%, 27%);
134
+ --ds-blue-600: hsl(210, 92%, 36%);
135
+ --ds-blue-700: hsl(210, 100%, 45%);
136
+ --ds-blue-900: hsl(210, 100%, 72%);
137
+
138
+ --ds-red-100: hsl(357, 37%, 12%);
139
+ --ds-red-200: hsl(357, 46%, 16%);
140
+ --ds-red-300: hsl(356, 54%, 22%);
141
+ --ds-red-400: hsl(357, 55%, 26%);
142
+ --ds-red-500: hsl(357, 60%, 32%);
143
+ --ds-red-600: hsl(358, 75%, 44%);
144
+ --ds-red-700: hsl(358, 75%, 59%);
145
+ --ds-red-900: hsl(358, 100%, 76%);
146
+
147
+ --ds-amber-100: hsl(35, 100%, 8%);
148
+ --ds-amber-200: hsl(33, 100%, 11%);
149
+ --ds-amber-300: hsl(33, 100%, 15%);
150
+ --ds-amber-400: hsl(35, 100%, 17%);
151
+ --ds-amber-500: hsl(35, 100%, 22%);
152
+ --ds-amber-600: hsl(36, 100%, 30%);
153
+ --ds-amber-700: hsl(39, 100%, 57%);
154
+ --ds-amber-900: hsl(39, 100%, 77%);
155
+
156
+ --ds-green-100: hsl(136, 50%, 9%);
157
+ --ds-green-200: hsl(137, 50%, 12%);
158
+ --ds-green-300: hsl(136, 50%, 14%);
159
+ --ds-green-400: hsl(135, 70%, 16%);
160
+ --ds-green-500: hsl(135, 70%, 23%);
161
+ --ds-green-600: hsl(135, 70%, 34%);
162
+ --ds-green-700: hsl(131, 41%, 46%);
163
+ --ds-green-900: hsl(120, 46%, 72%);
164
+
165
+ --ds-teal-200: hsl(169, 78%, 10%);
166
+ --ds-teal-400: hsl(170, 70%, 17%);
167
+ --ds-teal-500: hsl(170, 70%, 22%);
168
+ --ds-teal-900: hsl(168, 80%, 60%);
169
+
170
+ --ds-purple-100: hsl(283, 30%, 12%);
171
+ --ds-purple-200: hsl(281, 38%, 16%);
172
+ --ds-purple-300: hsl(279, 44%, 23%);
173
+ --ds-purple-400: hsl(277, 46%, 28%);
174
+ --ds-purple-500: hsl(274, 49%, 35%);
175
+ --ds-purple-600: hsl(272, 51%, 54%);
176
+ --ds-purple-700: hsl(272, 51%, 54%);
177
+ --ds-purple-900: hsl(275, 80%, 71%);
178
+
179
+ --ds-pink-200: hsl(335, 32%, 14%);
180
+ --ds-pink-400: hsl(336, 44%, 25%);
181
+ --ds-pink-500: hsl(336, 50%, 32%);
182
+ --ds-pink-900: hsl(336, 80%, 70%);
183
+
184
+ --ds-shadow-small: 0px 1px 2px rgba(0, 0, 0, 0.3);
185
+ }
186
+