@workflow/web-shared 5.0.0-beta.0 → 5.0.0-beta.10

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 (275) hide show
  1. package/README.md +1 -1
  2. package/dist/components/error-boundary.js +1 -1
  3. package/dist/components/event-list-view.d.ts +18 -1
  4. package/dist/components/event-list-view.d.ts.map +1 -1
  5. package/dist/components/event-list-view.js +242 -142
  6. package/dist/components/hook-actions.js +1 -1
  7. package/dist/components/index.d.ts +4 -1
  8. package/dist/components/index.d.ts.map +1 -1
  9. package/dist/components/index.js +5 -2
  10. package/dist/components/new-trace-viewer/components/copy-button.d.ts +9 -0
  11. package/dist/components/new-trace-viewer/components/copy-button.d.ts.map +1 -0
  12. package/dist/components/new-trace-viewer/components/copy-button.js +27 -0
  13. package/dist/components/new-trace-viewer/components/event-list.d.ts +10 -0
  14. package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -0
  15. package/dist/components/new-trace-viewer/components/event-list.js +39 -0
  16. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts +18 -0
  17. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts.map +1 -0
  18. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +54 -0
  19. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts +20 -0
  20. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -0
  21. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +81 -0
  22. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts +25 -0
  23. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -0
  24. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +101 -0
  25. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts +20 -0
  26. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -0
  27. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +114 -0
  28. package/dist/components/new-trace-viewer/components/split-pane.d.ts +14 -0
  29. package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +1 -0
  30. package/dist/components/new-trace-viewer/components/split-pane.js +99 -0
  31. package/dist/components/new-trace-viewer/components/timeline.d.ts +34 -0
  32. package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -0
  33. package/dist/components/new-trace-viewer/components/timeline.js +223 -0
  34. package/dist/components/new-trace-viewer/context.d.ts +15 -0
  35. package/dist/components/new-trace-viewer/context.d.ts.map +1 -0
  36. package/dist/components/new-trace-viewer/context.js +47 -0
  37. package/dist/components/new-trace-viewer/detail-panel.d.ts +10 -0
  38. package/dist/components/new-trace-viewer/detail-panel.d.ts.map +1 -0
  39. package/dist/components/new-trace-viewer/detail-panel.js +13 -0
  40. package/dist/components/new-trace-viewer/icons.d.ts +6 -0
  41. package/dist/components/new-trace-viewer/icons.d.ts.map +1 -0
  42. package/dist/components/new-trace-viewer/icons.js +15 -0
  43. package/dist/components/new-trace-viewer/search.d.ts +19 -0
  44. package/dist/components/new-trace-viewer/search.d.ts.map +1 -0
  45. package/dist/components/new-trace-viewer/search.js +134 -0
  46. package/dist/components/new-trace-viewer/trace-viewer.d.ts +8 -0
  47. package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -0
  48. package/dist/components/new-trace-viewer/trace-viewer.js +387 -0
  49. package/dist/components/new-trace-viewer/types.d.ts +1 -0
  50. package/dist/components/new-trace-viewer/types.d.ts.map +1 -0
  51. package/dist/components/new-trace-viewer/types.js +2 -0
  52. package/dist/components/new-trace-viewer/util/constants.d.ts +1 -0
  53. package/dist/components/new-trace-viewer/util/constants.d.ts.map +1 -0
  54. package/dist/components/new-trace-viewer/util/constants.js +2 -0
  55. package/dist/components/new-trace-viewer/utils.d.ts +46 -0
  56. package/dist/components/new-trace-viewer/utils.d.ts.map +1 -0
  57. package/dist/components/new-trace-viewer/utils.js +330 -0
  58. package/dist/components/run-trace-view.d.ts +2 -1
  59. package/dist/components/run-trace-view.d.ts.map +1 -1
  60. package/dist/components/run-trace-view.js +3 -3
  61. package/dist/components/sidebar/attribute-panel.d.ts +7 -1
  62. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  63. package/dist/components/sidebar/attribute-panel.js +131 -70
  64. package/dist/components/sidebar/conversation-view.js +1 -1
  65. package/dist/components/sidebar/copyable-data-block.d.ts +1 -0
  66. package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
  67. package/dist/components/sidebar/copyable-data-block.js +16 -15
  68. package/dist/components/sidebar/detail-card.d.ts +5 -6
  69. package/dist/components/sidebar/detail-card.d.ts.map +1 -1
  70. package/dist/components/sidebar/detail-card.js +32 -16
  71. package/dist/components/sidebar/entity-detail-panel.d.ts +3 -1
  72. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  73. package/dist/components/sidebar/entity-detail-panel.js +20 -37
  74. package/dist/components/sidebar/events-list.d.ts +1 -1
  75. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  76. package/dist/components/sidebar/events-list.js +46 -32
  77. package/dist/components/sidebar/resolve-hook-modal.js +1 -1
  78. package/dist/components/sidebar/sidebar-data-context.d.ts +29 -0
  79. package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -0
  80. package/dist/components/sidebar/sidebar-data-context.js +19 -0
  81. package/dist/components/stream-viewer.d.ts +1 -1
  82. package/dist/components/stream-viewer.d.ts.map +1 -1
  83. package/dist/components/stream-viewer.js +3 -27
  84. package/dist/components/trace-viewer/components/map.js +1 -1
  85. package/dist/components/trace-viewer/components/markers.js +1 -1
  86. package/dist/components/trace-viewer/components/node.js +1 -1
  87. package/dist/components/trace-viewer/components/search-input.js +1 -1
  88. package/dist/components/trace-viewer/components/search.js +1 -1
  89. package/dist/components/trace-viewer/components/span-content.js +1 -1
  90. package/dist/components/trace-viewer/components/span-detail-panel.js +1 -1
  91. package/dist/components/trace-viewer/components/span-segments.js +1 -1
  92. package/dist/components/trace-viewer/components/span-strategies.js +1 -1
  93. package/dist/components/trace-viewer/components/ui.js +1 -1
  94. package/dist/components/trace-viewer/components/zoom-button.js +1 -1
  95. package/dist/components/trace-viewer/components/zoom-icons.js +1 -1
  96. package/dist/components/trace-viewer/context.js +1 -1
  97. package/dist/components/trace-viewer/index.js +1 -1
  98. package/dist/components/trace-viewer/trace-viewer.js +1 -1
  99. package/dist/components/trace-viewer/types.js +1 -1
  100. package/dist/components/trace-viewer/util/constants.js +1 -1
  101. package/dist/components/trace-viewer/util/scrollbar-width.js +1 -1
  102. package/dist/components/trace-viewer/util/timing.d.ts +1 -1
  103. package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
  104. package/dist/components/trace-viewer/util/timing.js +6 -9
  105. package/dist/components/trace-viewer/util/tree.js +1 -1
  106. package/dist/components/trace-viewer/util/use-immediate-style.js +1 -1
  107. package/dist/components/trace-viewer/util/use-streaming-spans.js +1 -1
  108. package/dist/components/trace-viewer/util/use-trackpad-zoom.js +1 -1
  109. package/dist/components/trace-viewer/worker.js +1 -1
  110. package/dist/components/trace-viewer-new.d.ts +10 -0
  111. package/dist/components/trace-viewer-new.d.ts.map +1 -0
  112. package/dist/components/trace-viewer-new.js +23 -0
  113. package/dist/components/ui/alert.js +1 -1
  114. package/dist/components/ui/button.d.ts +10 -0
  115. package/dist/components/ui/button.d.ts.map +1 -0
  116. package/dist/components/ui/button.js +46 -0
  117. package/dist/components/ui/card.js +1 -1
  118. package/dist/components/ui/data-inspector.d.ts +39 -1
  119. package/dist/components/ui/data-inspector.d.ts.map +1 -1
  120. package/dist/components/ui/data-inspector.js +207 -22
  121. package/dist/components/ui/decrypt-button.js +1 -1
  122. package/dist/components/ui/error-card.js +1 -1
  123. package/dist/components/ui/error-stack-block.d.ts.map +1 -1
  124. package/dist/components/ui/error-stack-block.js +27 -19
  125. package/dist/components/ui/icon-button.d.ts +13 -0
  126. package/dist/components/ui/icon-button.d.ts.map +1 -0
  127. package/dist/components/ui/icon-button.js +29 -0
  128. package/dist/components/ui/inspector-theme.d.ts +9 -10
  129. package/dist/components/ui/inspector-theme.d.ts.map +1 -1
  130. package/dist/components/ui/inspector-theme.js +39 -72
  131. package/dist/components/ui/load-more-button.js +1 -1
  132. package/dist/components/ui/menu-dropdown.js +1 -1
  133. package/dist/components/ui/skeleton.js +1 -1
  134. package/dist/components/ui/spinner.js +1 -1
  135. package/dist/components/ui/timestamp-tooltip.js +1 -1
  136. package/dist/components/workflow-trace-view.d.ts +3 -1
  137. package/dist/components/workflow-trace-view.d.ts.map +1 -1
  138. package/dist/components/workflow-trace-view.js +10 -5
  139. package/dist/components/workflow-traces/event-colors.js +1 -1
  140. package/dist/components/workflow-traces/trace-colors.js +1 -1
  141. package/dist/components/workflow-traces/trace-span-construction.d.ts +2 -2
  142. package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
  143. package/dist/components/workflow-traces/trace-span-construction.js +19 -6
  144. package/dist/components/workflow-traces/trace-time-utils.js +1 -1
  145. package/dist/hooks/use-dark-mode.js +1 -1
  146. package/dist/hooks/use-reduced-motion.d.ts +10 -0
  147. package/dist/hooks/use-reduced-motion.d.ts.map +1 -0
  148. package/dist/hooks/use-reduced-motion.js +29 -0
  149. package/dist/index.d.ts +3 -1
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +3 -2
  152. package/dist/lib/event-analysis.js +1 -1
  153. package/dist/lib/event-materialization.js +1 -1
  154. package/dist/lib/exact-event-search-id.d.ts +25 -0
  155. package/dist/lib/exact-event-search-id.d.ts.map +1 -0
  156. package/dist/lib/exact-event-search-id.js +39 -0
  157. package/dist/lib/hydration.d.ts +15 -2
  158. package/dist/lib/hydration.d.ts.map +1 -1
  159. package/dist/lib/hydration.js +168 -16
  160. package/dist/lib/stream-display.d.ts +18 -0
  161. package/dist/lib/stream-display.d.ts.map +1 -0
  162. package/dist/lib/stream-display.js +30 -0
  163. package/dist/lib/toast.js +1 -1
  164. package/dist/lib/trace-builder.d.ts.map +1 -1
  165. package/dist/lib/trace-builder.js +3 -2
  166. package/dist/lib/utils.d.ts +9 -9
  167. package/dist/lib/utils.d.ts.map +1 -1
  168. package/dist/lib/utils.js +27 -32
  169. package/dist/styles.css +475 -1
  170. package/package.json +6 -4
  171. package/src/components/event-list-view.tsx +447 -282
  172. package/src/components/index.ts +12 -1
  173. package/src/components/new-trace-viewer/components/copy-button.tsx +68 -0
  174. package/src/components/new-trace-viewer/components/event-list.tsx +127 -0
  175. package/src/components/new-trace-viewer/components/middle-truncate/copy-selection.ts +114 -0
  176. package/src/components/new-trace-viewer/components/middle-truncate/middle-truncate.tsx +157 -0
  177. package/src/components/new-trace-viewer/components/middle-truncate/truncate.ts +132 -0
  178. package/src/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.ts +167 -0
  179. package/src/components/new-trace-viewer/components/split-pane.tsx +185 -0
  180. package/src/components/new-trace-viewer/components/timeline.tsx +552 -0
  181. package/src/components/new-trace-viewer/context.tsx +92 -0
  182. package/src/components/new-trace-viewer/detail-panel.tsx +55 -0
  183. package/src/components/new-trace-viewer/icons.tsx +79 -0
  184. package/src/components/new-trace-viewer/search.ts +178 -0
  185. package/src/components/new-trace-viewer/trace-viewer.tsx +694 -0
  186. package/src/components/new-trace-viewer/types.ts +0 -0
  187. package/src/components/new-trace-viewer/util/constants.ts +0 -0
  188. package/src/components/new-trace-viewer/utils.ts +482 -0
  189. package/src/components/run-trace-view.tsx +3 -0
  190. package/src/components/sidebar/attribute-panel.tsx +240 -196
  191. package/src/components/sidebar/copyable-data-block.tsx +49 -27
  192. package/src/components/sidebar/detail-card.tsx +119 -59
  193. package/src/components/sidebar/entity-detail-panel.tsx +92 -148
  194. package/src/components/sidebar/events-list.tsx +93 -108
  195. package/src/components/sidebar/sidebar-data-context.tsx +62 -0
  196. package/src/components/stream-viewer.tsx +18 -40
  197. package/src/components/trace-viewer/util/timing.ts +5 -9
  198. package/src/components/trace-viewer-new.tsx +49 -0
  199. package/src/components/ui/button.tsx +68 -0
  200. package/src/components/ui/data-inspector.tsx +427 -31
  201. package/src/components/ui/error-stack-block.tsx +39 -30
  202. package/src/components/ui/icon-button.tsx +57 -0
  203. package/src/components/ui/inspector-theme.ts +39 -81
  204. package/src/components/workflow-trace-view.tsx +12 -2
  205. package/src/components/workflow-traces/trace-span-construction.ts +24 -6
  206. package/src/hooks/use-reduced-motion.ts +34 -0
  207. package/src/index.ts +9 -0
  208. package/src/lib/exact-event-search-id.ts +67 -0
  209. package/src/lib/hydration.ts +182 -14
  210. package/src/lib/stream-display.ts +48 -0
  211. package/src/lib/trace-builder.ts +2 -1
  212. package/src/lib/utils.ts +27 -32
  213. package/src/styles.css +475 -1
  214. package/dist/components/error-boundary.js.map +0 -1
  215. package/dist/components/event-list-view.js.map +0 -1
  216. package/dist/components/hook-actions.js.map +0 -1
  217. package/dist/components/index.js.map +0 -1
  218. package/dist/components/run-trace-view.js.map +0 -1
  219. package/dist/components/sidebar/attribute-panel.js.map +0 -1
  220. package/dist/components/sidebar/conversation-view.js.map +0 -1
  221. package/dist/components/sidebar/copyable-data-block.js.map +0 -1
  222. package/dist/components/sidebar/detail-card.js.map +0 -1
  223. package/dist/components/sidebar/entity-detail-panel.js.map +0 -1
  224. package/dist/components/sidebar/events-list.js.map +0 -1
  225. package/dist/components/sidebar/resolve-hook-modal.js.map +0 -1
  226. package/dist/components/stream-viewer.js.map +0 -1
  227. package/dist/components/trace-viewer/components/map.js.map +0 -1
  228. package/dist/components/trace-viewer/components/markers.js.map +0 -1
  229. package/dist/components/trace-viewer/components/node.js.map +0 -1
  230. package/dist/components/trace-viewer/components/search-input.js.map +0 -1
  231. package/dist/components/trace-viewer/components/search.js.map +0 -1
  232. package/dist/components/trace-viewer/components/span-content.js.map +0 -1
  233. package/dist/components/trace-viewer/components/span-detail-panel.js.map +0 -1
  234. package/dist/components/trace-viewer/components/span-segments.js.map +0 -1
  235. package/dist/components/trace-viewer/components/span-strategies.js.map +0 -1
  236. package/dist/components/trace-viewer/components/ui.js.map +0 -1
  237. package/dist/components/trace-viewer/components/zoom-button.js.map +0 -1
  238. package/dist/components/trace-viewer/components/zoom-icons.js.map +0 -1
  239. package/dist/components/trace-viewer/context.js.map +0 -1
  240. package/dist/components/trace-viewer/index.js.map +0 -1
  241. package/dist/components/trace-viewer/trace-viewer.js.map +0 -1
  242. package/dist/components/trace-viewer/types.js.map +0 -1
  243. package/dist/components/trace-viewer/util/constants.js.map +0 -1
  244. package/dist/components/trace-viewer/util/scrollbar-width.js.map +0 -1
  245. package/dist/components/trace-viewer/util/timing.js.map +0 -1
  246. package/dist/components/trace-viewer/util/tree.js.map +0 -1
  247. package/dist/components/trace-viewer/util/use-immediate-style.js.map +0 -1
  248. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +0 -1
  249. package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
  250. package/dist/components/trace-viewer/worker.js.map +0 -1
  251. package/dist/components/ui/alert.js.map +0 -1
  252. package/dist/components/ui/card.js.map +0 -1
  253. package/dist/components/ui/data-inspector.js.map +0 -1
  254. package/dist/components/ui/decrypt-button.js.map +0 -1
  255. package/dist/components/ui/error-card.js.map +0 -1
  256. package/dist/components/ui/error-stack-block.js.map +0 -1
  257. package/dist/components/ui/inspector-theme.js.map +0 -1
  258. package/dist/components/ui/load-more-button.js.map +0 -1
  259. package/dist/components/ui/menu-dropdown.js.map +0 -1
  260. package/dist/components/ui/skeleton.js.map +0 -1
  261. package/dist/components/ui/spinner.js.map +0 -1
  262. package/dist/components/ui/timestamp-tooltip.js.map +0 -1
  263. package/dist/components/workflow-trace-view.js.map +0 -1
  264. package/dist/components/workflow-traces/event-colors.js.map +0 -1
  265. package/dist/components/workflow-traces/trace-colors.js.map +0 -1
  266. package/dist/components/workflow-traces/trace-span-construction.js.map +0 -1
  267. package/dist/components/workflow-traces/trace-time-utils.js.map +0 -1
  268. package/dist/hooks/use-dark-mode.js.map +0 -1
  269. package/dist/index.js.map +0 -1
  270. package/dist/lib/event-analysis.js.map +0 -1
  271. package/dist/lib/event-materialization.js.map +0 -1
  272. package/dist/lib/hydration.js.map +0 -1
  273. package/dist/lib/toast.js.map +0 -1
  274. package/dist/lib/trace-builder.js.map +0 -1
  275. package/dist/lib/utils.js.map +0 -1
package/dist/lib/utils.js CHANGED
@@ -3,9 +3,6 @@ import { twMerge } from 'tailwind-merge';
3
3
  export function cn(...inputs) {
4
4
  return twMerge(clsx(inputs));
5
5
  }
6
- const durationFormatter = new Intl.NumberFormat(undefined, {
7
- maximumFractionDigits: 2,
8
- });
9
6
  const MS_IN_SECOND = 1000;
10
7
  const MS_IN_MINUTE = 60 * MS_IN_SECOND;
11
8
  const MS_IN_HOUR = 60 * MS_IN_MINUTE;
@@ -14,48 +11,48 @@ const MS_IN_DAY = 24 * MS_IN_HOUR;
14
11
  * Formats a duration in milliseconds to a human-readable string.
15
12
  *
16
13
  * @param ms - Duration in milliseconds
17
- * @param compact - If true, returns a single-unit format (e.g., "45s", "2.5m").
18
- * If false (default), returns multi-part format (e.g., "1h 30m", "2d 5h").
14
+ * @param compact - If true, returns a compact format (e.g., "380ms", "2m 30s").
15
+ * If false (default), returns multi-part format (e.g., "1m 13s", "2d 5h 3m 12s").
19
16
  *
20
- * Compact format:
21
- * - < 1s: shows milliseconds (e.g., "500ms")
17
+ * Compact format (timeline markers):
18
+ * - < 1s: shows milliseconds (e.g., "380ms")
22
19
  * - < 1m: shows seconds (e.g., "45s")
23
- * - < 1h: shows minutes (e.g., "45m")
24
- * - >= 1h: shows hours (e.g., "2.5h")
20
+ * - < 1h: shows minutes and seconds (e.g., "2m 30s")
21
+ * - >= 1h: shows hours and minutes (e.g., "2h 30m")
25
22
  *
26
23
  * Full format:
27
- * - < 1s: shows milliseconds (e.g., "500ms")
28
- * - < 1m: shows seconds (e.g., "45.5s")
29
- * - >= 1m: shows human-readable format (e.g., "1h 30m", "2d 5h")
24
+ * - < 1s: shows milliseconds (e.g., "380ms")
25
+ * - < 1m: shows seconds (e.g., "45s")
26
+ * - >= 1m: shows decomposed format with whole seconds (e.g., "1m 13s", "2m 13s")
30
27
  */
31
28
  export function formatDuration(ms, compact = false) {
32
29
  if (ms === 0) {
33
- return '0';
30
+ return '0s';
34
31
  }
35
- // For durations less than 1 second, show milliseconds
36
32
  if (ms < MS_IN_SECOND) {
37
- return `${durationFormatter.format(ms)}ms`;
33
+ const roundedMs = Math.round(ms);
34
+ return roundedMs < MS_IN_SECOND ? `${roundedMs}ms` : '1s';
38
35
  }
39
- // For durations less than 1 minute, show seconds
40
- if (ms < MS_IN_MINUTE) {
41
- return `${durationFormatter.format(ms / MS_IN_SECOND)}s`;
36
+ const roundedMs = Math.round(ms / MS_IN_SECOND) * MS_IN_SECOND;
37
+ if (roundedMs < MS_IN_MINUTE) {
38
+ return `${Math.floor(roundedMs / MS_IN_SECOND)}s`;
42
39
  }
43
40
  // Compact format: multi-unit without decimals (e.g. "8m 20s", "2h 30m")
44
41
  if (compact) {
45
- if (ms < MS_IN_HOUR) {
46
- const m = Math.floor(ms / MS_IN_MINUTE);
47
- const s = Math.floor((ms % MS_IN_MINUTE) / MS_IN_SECOND);
42
+ if (roundedMs < MS_IN_HOUR) {
43
+ const m = Math.floor(roundedMs / MS_IN_MINUTE);
44
+ const s = Math.floor((roundedMs % MS_IN_MINUTE) / MS_IN_SECOND);
48
45
  return s > 0 ? `${m}m ${s}s` : `${m}m`;
49
46
  }
50
- const h = Math.floor(ms / MS_IN_HOUR);
51
- const m = Math.floor((ms % MS_IN_HOUR) / MS_IN_MINUTE);
47
+ const h = Math.floor(roundedMs / MS_IN_HOUR);
48
+ const m = Math.floor((roundedMs % MS_IN_HOUR) / MS_IN_MINUTE);
52
49
  return m > 0 ? `${h}h ${m}m` : `${h}h`;
53
50
  }
54
- // Full format: human-readable multi-part
55
- const days = Math.floor(ms / MS_IN_DAY);
56
- const hours = Math.floor((ms % MS_IN_DAY) / MS_IN_HOUR);
57
- const minutes = Math.floor((ms % MS_IN_HOUR) / MS_IN_MINUTE);
58
- const seconds = Math.floor((ms % MS_IN_MINUTE) / MS_IN_SECOND);
51
+ // Full format: decompose into larger units + whole seconds.
52
+ const days = Math.floor(roundedMs / MS_IN_DAY);
53
+ const hours = Math.floor((roundedMs % MS_IN_DAY) / MS_IN_HOUR);
54
+ const minutes = Math.floor((roundedMs % MS_IN_HOUR) / MS_IN_MINUTE);
55
+ const seconds = Math.floor((roundedMs % MS_IN_MINUTE) / MS_IN_SECOND);
59
56
  const parts = [];
60
57
  if (days > 0) {
61
58
  parts.push(`${days}d`);
@@ -66,9 +63,7 @@ export function formatDuration(ms, compact = false) {
66
63
  if (minutes > 0) {
67
64
  parts.push(`${minutes}m`);
68
65
  }
69
- if (hours <= 1 && (seconds > 0 || parts.length === 0)) {
70
- parts.push(`${seconds}s`);
71
- }
66
+ parts.push(`${seconds}s`);
72
67
  return parts.join(' ');
73
68
  }
74
69
  /**
@@ -129,4 +124,4 @@ export function identifyStreamSteps(steps) {
129
124
  };
130
125
  });
131
126
  }
132
- //# sourceMappingURL=utils.js.map
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBbUIsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLFVBQVUsRUFBRSxDQUFDLEdBQUcsTUFBb0I7SUFDeEMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDO0FBQ3ZDLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQUM7QUFDckMsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQztBQUVsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQVUsRUFBRSxPQUFPLEdBQUcsS0FBSztJQUN4RCxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakMsT0FBTyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQztJQUUvRCxJQUFJLFNBQVMsR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsSUFB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O0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGVwIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB0eXBlIHsgTW9kZWxNZXNzYWdlIH0gZnJvbSAnYWknO1xuaW1wb3J0IHsgdHlwZSBDbGFzc1ZhbHVlLCBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gY24oLi4uaW5wdXRzOiBDbGFzc1ZhbHVlW10pIHtcbiAgcmV0dXJuIHR3TWVyZ2UoY2xzeChpbnB1dHMpKTtcbn1cblxuY29uc3QgTVNfSU5fU0VDT05EID0gMTAwMDtcbmNvbnN0IE1TX0lOX01JTlVURSA9IDYwICogTVNfSU5fU0VDT05EO1xuY29uc3QgTVNfSU5fSE9VUiA9IDYwICogTVNfSU5fTUlOVVRFO1xuY29uc3QgTVNfSU5fREFZID0gMjQgKiBNU19JTl9IT1VSO1xuXG4vKipcbiAqIEZvcm1hdHMgYSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgdG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIG1zIC0gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzXG4gKiBAcGFyYW0gY29tcGFjdCAtIElmIHRydWUsIHJldHVybnMgYSBjb21wYWN0IGZvcm1hdCAoZS5nLiwgXCIzODBtc1wiLCBcIjJtIDMwc1wiKS5cbiAqICAgICAgICAgICAgICAgICAgSWYgZmFsc2UgKGRlZmF1bHQpLCByZXR1cm5zIG11bHRpLXBhcnQgZm9ybWF0IChlLmcuLCBcIjFtIDEzc1wiLCBcIjJkIDVoIDNtIDEyc1wiKS5cbiAqXG4gKiBDb21wYWN0IGZvcm1hdCAodGltZWxpbmUgbWFya2Vycyk6XG4gKiAtIDwgMXM6IHNob3dzIG1pbGxpc2Vjb25kcyAoZS5nLiwgXCIzODBtc1wiKVxuICogLSA8IDFtOiBzaG93cyBzZWNvbmRzIChlLmcuLCBcIjQ1c1wiKVxuICogLSA8IDFoOiBzaG93cyBtaW51dGVzIGFuZCBzZWNvbmRzIChlLmcuLCBcIjJtIDMwc1wiKVxuICogLSA+PSAxaDogc2hvd3MgaG91cnMgYW5kIG1pbnV0ZXMgKGUuZy4sIFwiMmggMzBtXCIpXG4gKlxuICogRnVsbCBmb3JtYXQ6XG4gKiAtIDwgMXM6IHNob3dzIG1pbGxpc2Vjb25kcyAoZS5nLiwgXCIzODBtc1wiKVxuICogLSA8IDFtOiBzaG93cyBzZWNvbmRzIChlLmcuLCBcIjQ1c1wiKVxuICogLSA+PSAxbTogc2hvd3MgZGVjb21wb3NlZCBmb3JtYXQgd2l0aCB3aG9sZSBzZWNvbmRzIChlLmcuLCBcIjFtIDEzc1wiLCBcIjJtIDEzc1wiKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obXM6IG51bWJlciwgY29tcGFjdCA9IGZhbHNlKTogc3RyaW5nIHtcbiAgaWYgKG1zID09PSAwKSB7XG4gICAgcmV0dXJuICcwcyc7XG4gIH1cblxuICBpZiAobXMgPCBNU19JTl9TRUNPTkQpIHtcbiAgICBjb25zdCByb3VuZGVkTXMgPSBNYXRoLnJvdW5kKG1zKTtcbiAgICByZXR1cm4gcm91bmRlZE1zIDwgTVNfSU5fU0VDT05EID8gYCR7cm91bmRlZE1zfW1zYCA6ICcxcyc7XG4gIH1cblxuICBjb25zdCByb3VuZGVkTXMgPSBNYXRoLnJvdW5kKG1zIC8gTVNfSU5fU0VDT05EKSAqIE1TX0lOX1NFQ09ORDtcblxuICBpZiAocm91bmRlZE1zIDwgTVNfSU5fTUlOVVRFKSB7XG4gICAgcmV0dXJuIGAke01hdGguZmxvb3Iocm91bmRlZE1zIC8gTVNfSU5fU0VDT05EKX1zYDtcbiAgfVxuXG4gIC8vIENvbXBhY3QgZm9ybWF0OiBtdWx0aS11bml0IHdpdGhvdXQgZGVjaW1hbHMgKGUuZy4gXCI4bSAyMHNcIiwgXCIyaCAzMG1cIilcbiAgaWYgKGNvbXBhY3QpIHtcbiAgICBpZiAocm91bmRlZE1zIDwgTVNfSU5fSE9VUikge1xuICAgICAgY29uc3QgbSA9IE1hdGguZmxvb3Iocm91bmRlZE1zIC8gTVNfSU5fTUlOVVRFKTtcbiAgICAgIGNvbnN0IHMgPSBNYXRoLmZsb29yKChyb3VuZGVkTXMgJSBNU19JTl9NSU5VVEUpIC8gTVNfSU5fU0VDT05EKTtcbiAgICAgIHJldHVybiBzID4gMCA/IGAke219bSAke3N9c2AgOiBgJHttfW1gO1xuICAgIH1cbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihyb3VuZGVkTXMgLyBNU19JTl9IT1VSKTtcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcigocm91bmRlZE1zICUgTVNfSU5fSE9VUikgLyBNU19JTl9NSU5VVEUpO1xuICAgIHJldHVybiBtID4gMCA/IGAke2h9aCAke219bWAgOiBgJHtofWhgO1xuICB9XG5cbiAgLy8gRnVsbCBmb3JtYXQ6IGRlY29tcG9zZSBpbnRvIGxhcmdlciB1bml0cyArIHdob2xlIHNlY29uZHMuXG4gIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKHJvdW5kZWRNcyAvIE1TX0lOX0RBWSk7XG4gIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcigocm91bmRlZE1zICUgTVNfSU5fREFZKSAvIE1TX0lOX0hPVVIpO1xuICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigocm91bmRlZE1zICUgTVNfSU5fSE9VUikgLyBNU19JTl9NSU5VVEUpO1xuICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcigocm91bmRlZE1zICUgTVNfSU5fTUlOVVRFKSAvIE1TX0lOX1NFQ09ORCk7XG5cbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYgKGRheXMgPiAwKSB7XG4gICAgcGFydHMucHVzaChgJHtkYXlzfWRgKTtcbiAgfVxuICBpZiAoaG91cnMgPiAwKSB7XG4gICAgcGFydHMucHVzaChgJHtob3Vyc31oYCk7XG4gIH1cbiAgaWYgKG1pbnV0ZXMgPiAwKSB7XG4gICAgcGFydHMucHVzaChgJHttaW51dGVzfW1gKTtcbiAgfVxuICBwYXJ0cy5wdXNoKGAke3NlY29uZHN9c2ApO1xuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZvcm1hdHRlZCBwYWdpbmF0aW9uIGRpc3BsYXkgc3RyaW5nXG4gKiBAcGFyYW0gY3VycmVudFBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG51bWJlclxuICogQHBhcmFtIHRvdGFsUGFnZXMgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIHZpc2l0ZWQgc28gZmFyXG4gKiBAcGFyYW0gaGFzTW9yZSAtIFdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgcGFnZXMgYXZhaWxhYmxlXG4gKiBAcmV0dXJucyBGb3JtYXR0ZWQgc3RyaW5nIGxpa2UgXCJQYWdlIDEgb2YgMytcIiBvciBcIlBhZ2UgMiBvZiAyXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2luYXRpb25EaXNwbGF5KFxuICBjdXJyZW50UGFnZTogbnVtYmVyLFxuICB0b3RhbFBhZ2VzOiBudW1iZXIsXG4gIGhhc01vcmU6IGJvb2xlYW5cbik6IHN0cmluZyB7XG4gIGlmIChoYXNNb3JlKSB7XG4gICAgcmV0dXJuIGBQYWdlICR7Y3VycmVudFBhZ2V9IG9mICR7dG90YWxQYWdlc30rYDtcbiAgfVxuICByZXR1cm4gYFBhZ2UgJHtjdXJyZW50UGFnZX0gb2YgJHt0b3RhbFBhZ2VzfWA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIER1cmFibGUgQWdlbnQgVXRpbGl0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzdGVwIGlzIGEgZG9TdHJlYW1TdGVwIChMTE0gY2FsbCB3aXRoIGNvbnZlcnNhdGlvbiBpbnB1dClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRG9TdHJlYW1TdGVwKHN0ZXBOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHN0ZXBOYW1lLmVuZHNXaXRoKCcvL2RvU3RyZWFtU3RlcCcpO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgdGhlIGNvbnZlcnNhdGlvbiBmcm9tIGEgaHlkcmF0ZWQgZG9TdHJlYW1TdGVwIGlucHV0LlxuICogZG9TdHJlYW1TdGVwIHNpZ25hdHVyZTogKGNvbnZlcnNhdGlvblByb21wdCwgbW9kZWwsIHdyaXRhYmxlLCB0b29scywgb3B0aW9ucylcbiAqIFNvIGlucHV0WzBdIGlzIHRoZSBjb252ZXJzYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29udmVyc2F0aW9uKHN0ZXBJbnB1dDogdW5rbm93bik6IE1vZGVsTWVzc2FnZVtdIHwgbnVsbCB7XG4gIGlmICghQXJyYXkuaXNBcnJheShzdGVwSW5wdXQpIHx8IHN0ZXBJbnB1dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGZpcnN0QXJnID0gc3RlcElucHV0WzBdO1xuXG4gIGlmICghQXJyYXkuaXNBcnJheShmaXJzdEFyZykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGl0IGxvb2tzIGxpa2UgTW9kZWxNZXNzYWdlW11cbiAgaWYgKFxuICAgICFmaXJzdEFyZy5ldmVyeSgobXNnKSA9PiBtc2cgJiYgdHlwZW9mIG1zZyA9PT0gJ29iamVjdCcgJiYgJ3JvbGUnIGluIG1zZylcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gZmlyc3RBcmcgYXMgTW9kZWxNZXNzYWdlW107XG59XG5cbi8qKlxuICogQSBkb1N0cmVhbVN0ZXAgd2l0aCBpdHMgY29udmVyc2F0aW9uIGlucHV0IGV4dHJhY3RlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbVN0ZXAge1xuICBzdGVwSWQ6IHN0cmluZztcbiAgc3RlcE5hbWU6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgY29udmVyc2F0aW9uOiBNb2RlbE1lc3NhZ2VbXTtcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGFsbCBzdHJlYW0gc3RlcHMgKGRvU3RyZWFtU3RlcCkgaW4gYSBydW4gYW5kIGV4dHJhY3RzIHRoZWlyIGNvbnZlcnNhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmeVN0cmVhbVN0ZXBzKHN0ZXBzOiBTdGVwW10pOiBTdHJlYW1TdGVwW10ge1xuICByZXR1cm4gc3RlcHNcbiAgICAuZmlsdGVyKChzdGVwKSA9PiBpc0RvU3RyZWFtU3RlcChzdGVwLnN0ZXBOYW1lKSlcbiAgICAubWFwKChzdGVwKSA9PiB7XG4gICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBzdGVwLnN0ZXBOYW1lLnNwbGl0KCcvLycpLnBvcCgpID8/ICd1bmtub3duJztcbiAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGV4dHJhY3RDb252ZXJzYXRpb24oc3RlcC5pbnB1dCkgPz8gW107XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0ZXBJZDogc3RlcC5zdGVwSWQsXG4gICAgICAgIHN0ZXBOYW1lOiBzdGVwLnN0ZXBOYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICBjb252ZXJzYXRpb24sXG4gICAgICB9O1xuICAgIH0pO1xufVxuIl19
package/dist/styles.css CHANGED
@@ -36,6 +36,9 @@
36
36
  --ds-gray-alpha-700: hsla(0, 0%, 0%, 0.44);
37
37
  --ds-gray-alpha-1000: hsla(0, 0%, 0%, 0.91);
38
38
 
39
+ /* Focus */
40
+ --ds-focus-color: var(--ds-blue-700);
41
+
39
42
  /* Blue */
40
43
  --ds-blue-100: hsl(212, 100%, 97%);
41
44
  --ds-blue-200: hsl(210, 100%, 96%);
@@ -105,7 +108,7 @@
105
108
  /* Dark theme defaults */
106
109
  .dark-theme,
107
110
  .dark,
108
- [data-theme='dark'] {
111
+ [data-theme="dark"] {
109
112
  --ds-background-100: hsl(0, 0%, 7%);
110
113
  --ds-background-200: hsl(0, 0%, 10%);
111
114
 
@@ -126,6 +129,8 @@
126
129
  --ds-gray-alpha-700: rgba(255, 255, 255, 0.45);
127
130
  --ds-gray-alpha-1000: rgba(255, 255, 255, 0.92);
128
131
 
132
+ --ds-focus-color: var(--ds-blue-900);
133
+
129
134
  --ds-blue-100: hsl(216, 50%, 12%);
130
135
  --ds-blue-200: hsl(214, 59%, 15%);
131
136
  --ds-blue-300: hsl(213, 71%, 20%);
@@ -184,3 +189,472 @@
184
189
  --ds-shadow-small: 0px 1px 2px rgba(0, 0, 0, 0.3);
185
190
  }
186
191
 
192
+ @theme inline {
193
+ /* Deactivating namespaces. When you do this, all of the default utilities that use that namespace (like bg-red-500) will be removed, and only your custom values (like bg-custom) will be available. https://tailwindcss.com/docs/theme#overriding-the-default-theme */
194
+ /* --color-*: initial; @sev:revert */
195
+ --breakpoint-*: initial;
196
+
197
+ --spacing: 0.25rem;
198
+
199
+ /* Pixel Fonts */
200
+ --font-pixel-square: var(--font-geist-pixel-square);
201
+ --font-pixel-circle: var(--font-geist-pixel-circle);
202
+ --font-pixel-line: var(--font-geist-pixel-line);
203
+ --font-pixel-grid: var(--font-geist-pixel-grid);
204
+ --font-pixel-triangle: var(--font-geist-pixel-triangle);
205
+
206
+ --radius-xs: 0.125rem; /* Previously xs: 2px */
207
+ --radius-sm: 0.25rem; /* Previously sm: 4px */
208
+ --radius-md: 0.375rem; /* Previously DEFAULT: 6px */
209
+ --radius-lg: 0.5rem; /* Previously md: 8px */
210
+ --radius-xl: 0.75rem; /* Previously lg: 12px */
211
+ --radius-2xl: 1rem;
212
+
213
+ /* Override Tailwind default shadows with Geist's DS shadows */
214
+ --shadow-border: var(--ds-shadow-border);
215
+
216
+ --shadow-2xs: var(--ds-shadow-2xs);
217
+ --shadow-xs: var(--ds-shadow-xs);
218
+ --shadow-sm: var(--ds-shadow-small);
219
+ --shadow-md: var(--ds-shadow-medium);
220
+ --shadow-lg: var(--ds-shadow-large);
221
+ --shadow-xl: var(--ds-shadow-xl);
222
+ --shadow-2xl: var(--ds-shadow-2xl);
223
+
224
+ /* Geist Breakpoints */
225
+ --breakpoint-sm: 401px;
226
+ --breakpoint-md: 601px;
227
+ --breakpoint-lg: 961px;
228
+ --breakpoint-xl: 1200px;
229
+ --breakpoint-2xl: 1400px;
230
+
231
+ --color-geist-cyan: var(--geist-cyan);
232
+ --color-geist-warning: var(--geist-warning);
233
+ --color-geist-error: var(--geist-error);
234
+
235
+ --color-black: var(--ds-black);
236
+ --color-white: var(--ds-white);
237
+
238
+ --color-background-100: var(--ds-background-100);
239
+ --color-background-200: var(--ds-background-200);
240
+
241
+ --color-gray-100: var(--ds-gray-100);
242
+ --color-gray-200: var(--ds-gray-200);
243
+ --color-gray-300: var(--ds-gray-300);
244
+ --color-gray-400: var(--ds-gray-400);
245
+ --color-gray-500: var(--ds-gray-500);
246
+ --color-gray-600: var(--ds-gray-600);
247
+ --color-gray-700: var(--ds-gray-700);
248
+ --color-gray-800: var(--ds-gray-800);
249
+ --color-gray-900: var(--ds-gray-900);
250
+ --color-gray-1000: var(--ds-gray-1000);
251
+
252
+ --color-gray-alpha-100: var(--ds-gray-alpha-100);
253
+ --color-gray-alpha-200: var(--ds-gray-alpha-200);
254
+ --color-gray-alpha-300: var(--ds-gray-alpha-300);
255
+ --color-gray-alpha-400: var(--ds-gray-alpha-400);
256
+ --color-gray-alpha-500: var(--ds-gray-alpha-500);
257
+ --color-gray-alpha-600: var(--ds-gray-alpha-600);
258
+ --color-gray-alpha-700: var(--ds-gray-alpha-700);
259
+ --color-gray-alpha-800: var(--ds-gray-alpha-800);
260
+ --color-gray-alpha-900: var(--ds-gray-alpha-900);
261
+ --color-gray-alpha-1000: var(--ds-gray-alpha-1000);
262
+
263
+ --color-blue-100: var(--ds-blue-100);
264
+ --color-blue-200: var(--ds-blue-200);
265
+ --color-blue-300: var(--ds-blue-300);
266
+ --color-blue-400: var(--ds-blue-400);
267
+ --color-blue-500: var(--ds-blue-500);
268
+ --color-blue-600: var(--ds-blue-600);
269
+ --color-blue-700: var(--ds-blue-700);
270
+ --color-blue-800: var(--ds-blue-800);
271
+ --color-blue-900: var(--ds-blue-900);
272
+ --color-blue-1000: var(--ds-blue-1000);
273
+
274
+ --color-red-100: var(--ds-red-100);
275
+ --color-red-200: var(--ds-red-200);
276
+ --color-red-300: var(--ds-red-300);
277
+ --color-red-400: var(--ds-red-400);
278
+ --color-red-500: var(--ds-red-500);
279
+ --color-red-600: var(--ds-red-600);
280
+ --color-red-700: var(--ds-red-700);
281
+ --color-red-800: var(--ds-red-800);
282
+ --color-red-900: var(--ds-red-900);
283
+ --color-red-1000: var(--ds-red-1000);
284
+
285
+ --color-amber-100: var(--ds-amber-100);
286
+ --color-amber-200: var(--ds-amber-200);
287
+ --color-amber-300: var(--ds-amber-300);
288
+ --color-amber-400: var(--ds-amber-400);
289
+ --color-amber-500: var(--ds-amber-500);
290
+ --color-amber-600: var(--ds-amber-600);
291
+ --color-amber-700: var(--ds-amber-700);
292
+ --color-amber-800: var(--ds-amber-800);
293
+ --color-amber-900: var(--ds-amber-900);
294
+ --color-amber-1000: var(--ds-amber-1000);
295
+
296
+ --color-green-100: var(--ds-green-100);
297
+ --color-green-200: var(--ds-green-200);
298
+ --color-green-300: var(--ds-green-300);
299
+ --color-green-400: var(--ds-green-400);
300
+ --color-green-500: var(--ds-green-500);
301
+ --color-green-600: var(--ds-green-600);
302
+ --color-green-700: var(--ds-green-700);
303
+ --color-green-800: var(--ds-green-800);
304
+ --color-green-900: var(--ds-green-900);
305
+ --color-green-1000: var(--ds-green-1000);
306
+
307
+ --color-teal-100: var(--ds-teal-100);
308
+ --color-teal-200: var(--ds-teal-200);
309
+ --color-teal-300: var(--ds-teal-300);
310
+ --color-teal-400: var(--ds-teal-400);
311
+ --color-teal-500: var(--ds-teal-500);
312
+ --color-teal-600: var(--ds-teal-600);
313
+ --color-teal-700: var(--ds-teal-700);
314
+ --color-teal-800: var(--ds-teal-800);
315
+ --color-teal-900: var(--ds-teal-900);
316
+ --color-teal-1000: var(--ds-teal-1000);
317
+
318
+ --color-purple-100: var(--ds-purple-100);
319
+ --color-purple-200: var(--ds-purple-200);
320
+ --color-purple-300: var(--ds-purple-300);
321
+ --color-purple-400: var(--ds-purple-400);
322
+ --color-purple-500: var(--ds-purple-500);
323
+ --color-purple-600: var(--ds-purple-600);
324
+ --color-purple-700: var(--ds-purple-700);
325
+ --color-purple-800: var(--ds-purple-800);
326
+ --color-purple-900: var(--ds-purple-900);
327
+ --color-purple-1000: var(--ds-purple-1000);
328
+
329
+ --color-pink-100: var(--ds-pink-100);
330
+ --color-pink-200: var(--ds-pink-200);
331
+ --color-pink-300: var(--ds-pink-300);
332
+ --color-pink-400: var(--ds-pink-400);
333
+ --color-pink-500: var(--ds-pink-500);
334
+ --color-pink-600: var(--ds-pink-600);
335
+ --color-pink-700: var(--ds-pink-700);
336
+ --color-pink-800: var(--ds-pink-800);
337
+ --color-pink-900: var(--ds-pink-900);
338
+ --color-pink-1000: var(--ds-pink-1000);
339
+ }
340
+
341
+ /* tempory utility remove once front is fully migrated to geistcn */
342
+ @utility geist-sr-only {
343
+ @apply sr-only;
344
+ }
345
+
346
+ @utility clearable-input {
347
+ --duration: 561.04ms;
348
+ --timing: linear(
349
+ 0 0%,
350
+ 0.00484 1%,
351
+ 0.018323 2%,
352
+ 0.039014 3%,
353
+ 0.065627 4%,
354
+ 0.097013 5%,
355
+ 0.132156 6%,
356
+ 0.170155 7.000000000000001%,
357
+ 0.210219 8%,
358
+ 0.251659 9%,
359
+ 0.293875 10%,
360
+ 0.336353 11%,
361
+ 0.378653 12%,
362
+ 0.420402 13%,
363
+ 0.461292 14.000000000000002%,
364
+ 0.501066 15%,
365
+ 0.53952 16%,
366
+ 0.57649 17%,
367
+ 0.611853 18%,
368
+ 0.645519 19%,
369
+ 0.677428 20%,
370
+ 0.707546 21%,
371
+ 0.735859 22%,
372
+ 0.762374 23%,
373
+ 0.787113 24%,
374
+ 0.810113 25%,
375
+ 0.83142 26%,
376
+ 0.851089 27%,
377
+ 0.869183 28.000000000000004%,
378
+ 0.88577 28.999999999999996%,
379
+ 0.900923 30%,
380
+ 0.914714 31%,
381
+ 0.927222 32%,
382
+ 0.938521 33%,
383
+ 0.948689 34%,
384
+ 0.957801 35%,
385
+ 0.965931 36%,
386
+ 0.973151 37%,
387
+ 0.979531 38%,
388
+ 0.985137 39%,
389
+ 0.990035 40%,
390
+ 0.994286 41%,
391
+ 0.997947 42%,
392
+ 1.001072 43%,
393
+ 1.003715 44%,
394
+ 1.005922 45%,
395
+ 1.00774 46%,
396
+ 1.009209 47%,
397
+ 1.010369 48%,
398
+ 1.011256 49%,
399
+ 1.011902 50%,
400
+ 1.012339 51%,
401
+ 1.012593 52%,
402
+ 1.01269 53%,
403
+ 1.012653 54%,
404
+ 1.012502 55.00000000000001%,
405
+ 1.012256 56.00000000000001%,
406
+ 1.011932 56.99999999999999%,
407
+ 1.011545 57.99999999999999%,
408
+ 1.011107 59%,
409
+ 1.010631 60%,
410
+ 1.010127 61%,
411
+ 1.009604 62%,
412
+ 1.00907 63%,
413
+ 1.008531 64%,
414
+ 1.007993 65%,
415
+ 1.007461 66%,
416
+ 1.00694 67%,
417
+ 1.006432 68%,
418
+ 1.00594 69%,
419
+ 1.005467 70%,
420
+ 1.005014 71%,
421
+ 1.004582 72%,
422
+ 1.004173 73%,
423
+ 1.003786 74%,
424
+ 1.003422 75%,
425
+ 1.003081 76%,
426
+ 1.002763 77%,
427
+ 1.002466 78%,
428
+ 1.002192 79%,
429
+ 1.001938 80%,
430
+ 1.001705 81%,
431
+ 1.00149 82%,
432
+ 1.001294 83%,
433
+ 1.001116 84%,
434
+ 1.000954 85%,
435
+ 1.000808 86%,
436
+ 1.000676 87%,
437
+ 1.000558 88%,
438
+ 1.000452 89%,
439
+ 1.000358 90%,
440
+ 1.000275 91%,
441
+ 1.000202 92%,
442
+ 1.000138 93%,
443
+ 1.000083 94%
444
+ );
445
+ }
446
+
447
+ @utility webkit-search-reset {
448
+ &::-webkit-search-decoration,
449
+ &::-webkit-search-cancel-button,
450
+ &::-webkit-search-results-button,
451
+ &::-webkit-search-results-decoration {
452
+ -webkit-appearance: none;
453
+ }
454
+ }
455
+
456
+ @utility animation-delay-* {
457
+ animation-delay: --value(--animation-delay-*);
458
+ animation-delay: calc(--value(integer) * 1ms);
459
+ animation-delay: --value([*]);
460
+ }
461
+
462
+ @utility -animation-delay-* {
463
+ animation-delay: calc(--value(--animation-delay-*) * -1);
464
+ animation-delay: calc(--value(integer) * -1ms);
465
+ animation-delay: calc(--value([*]) * -1);
466
+ }
467
+
468
+ @utility no-scrollbar {
469
+ scrollbar-width: none;
470
+ -webkit-overflow-scrolling: touch;
471
+ &::-webkit-scrollbar {
472
+ display: none;
473
+ }
474
+ }
475
+
476
+ /* Material */
477
+
478
+ @utility material-base {
479
+ @apply bg-background-100 rounded-[6px];
480
+ box-shadow: var(--ds-shadow-border);
481
+ }
482
+
483
+ @utility material-small {
484
+ @apply bg-background-100 rounded-[6px];
485
+ box-shadow: var(--ds-shadow-border-small);
486
+ }
487
+
488
+ @utility material-medium {
489
+ @apply bg-background-100 rounded-[12px];
490
+ box-shadow: var(--ds-shadow-border-medium);
491
+ }
492
+
493
+ @utility material-large {
494
+ @apply bg-background-100 rounded-[12px];
495
+ box-shadow: var(--ds-shadow-border-large);
496
+ }
497
+
498
+ @utility material-tooltip {
499
+ @apply bg-background-100 rounded-[6px];
500
+ box-shadow: var(--ds-shadow-tooltip);
501
+ }
502
+
503
+ @utility material-menu {
504
+ @apply bg-background-100 rounded-[12px];
505
+ box-shadow: var(--ds-shadow-menu);
506
+ }
507
+
508
+ @utility material-modal {
509
+ @apply bg-background-100 rounded-[12px];
510
+ box-shadow: var(--ds-shadow-modal);
511
+ }
512
+
513
+ @utility material-fullscreen {
514
+ @apply bg-background-100 rounded-[16px];
515
+ box-shadow: var(--ds-shadow-fullscreen);
516
+ }
517
+
518
+ /* Typography Heading */
519
+
520
+ @utility text-heading-72 {
521
+ @apply font-sans font-semibold text-[72px] leading-[72px] tracking-[-4.32px];
522
+ }
523
+
524
+ @utility text-heading-64 {
525
+ @apply font-sans font-semibold text-[64px] leading-[64px] tracking-[-3.84px];
526
+ }
527
+
528
+ @utility text-heading-56 {
529
+ @apply font-sans font-semibold text-[56px] leading-[56px] tracking-[-3.36px];
530
+ }
531
+
532
+ @utility text-heading-48 {
533
+ @apply font-sans font-semibold text-[48px] leading-[56px] tracking-[-2.88px];
534
+ }
535
+
536
+ @utility text-heading-40 {
537
+ @apply font-sans font-semibold text-[40px] leading-[48px] tracking-[-2.4px];
538
+ }
539
+
540
+ @utility text-heading-32 {
541
+ @apply font-sans font-semibold [&>strong]:font-medium [&>strong]:text-gray-900 text-[32px] leading-[40px] tracking-[-1.28px];
542
+ }
543
+
544
+ @utility text-heading-24 {
545
+ @apply font-sans font-semibold [&>strong]:font-medium [&>strong]:text-gray-900 text-[24px] leading-[32px] tracking-[-0.96px];
546
+ }
547
+
548
+ @utility text-heading-20 {
549
+ @apply font-sans font-semibold [&>strong]:font-medium [&>strong]:text-gray-900 text-[20px] leading-[26px] tracking-[-0.4px];
550
+ }
551
+
552
+ @utility text-heading-16 {
553
+ @apply font-sans font-semibold [&>strong]:font-medium [&>strong]:text-gray-900 text-[16px] leading-[24px] tracking-[-0.32px];
554
+ }
555
+
556
+ @utility text-heading-14 {
557
+ @apply font-sans font-semibold text-[14px] leading-[20px] tracking-[-0.28px];
558
+ }
559
+
560
+ /* Typography Button */
561
+
562
+ @utility text-button-16 {
563
+ @apply font-sans font-medium text-[16px] leading-[20px];
564
+ }
565
+
566
+ @utility text-button-14 {
567
+ @apply font-sans font-medium text-[14px] leading-[20px];
568
+ }
569
+
570
+ @utility text-button-12 {
571
+ @apply font-sans font-medium text-[12px] leading-[16px];
572
+ }
573
+
574
+ /* Typography Label */
575
+
576
+ @utility text-label-20 {
577
+ @apply font-sans font-normal text-[20px] leading-[32px];
578
+ }
579
+
580
+ @utility text-label-18 {
581
+ @apply font-sans font-normal text-[18px] leading-[20px];
582
+ }
583
+
584
+ @utility text-label-16 {
585
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[16px] leading-[20px];
586
+ }
587
+
588
+ @utility text-label-14 {
589
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[14px] leading-[20px];
590
+ }
591
+
592
+ @utility text-label-14-mono {
593
+ @apply font-mono font-normal text-[14px] leading-[20px];
594
+ }
595
+
596
+ @utility text-label-13 {
597
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[13px] leading-[16px];
598
+ }
599
+
600
+ @utility text-label-13-mono {
601
+ @apply font-mono font-normal text-[13px] leading-[20px];
602
+ }
603
+
604
+ @utility text-label-12 {
605
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[12px] leading-[16px];
606
+ }
607
+
608
+ @utility text-label-12-mono {
609
+ @apply font-mono font-normal text-[12px] leading-[16px];
610
+ }
611
+
612
+ /* Typography Copy */
613
+
614
+ @utility text-copy-24 {
615
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[24px] leading-[36px];
616
+ }
617
+
618
+ @utility text-copy-20 {
619
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[20px] leading-[36px];
620
+ }
621
+
622
+ @utility text-copy-18 {
623
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[18px] leading-[28px];
624
+ }
625
+
626
+ @utility text-copy-16 {
627
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[16px] leading-[24px];
628
+ }
629
+
630
+ @utility text-copy-14 {
631
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[14px] leading-[20px];
632
+ }
633
+
634
+ @utility text-copy-14-mono {
635
+ @apply font-mono font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[14px] leading-[20px];
636
+ }
637
+
638
+ @utility text-copy-13 {
639
+ @apply font-sans font-normal [&>strong]:font-medium [&>strong]:text-gray-1000 text-[13px] leading-[18px];
640
+ }
641
+
642
+ @utility text-copy-13-mono {
643
+ @apply font-mono font-normal text-[13px] leading-[18px];
644
+ }
645
+
646
+ @utility container {
647
+ @apply px-6 mx-auto w-full;
648
+ max-width: calc(1200px + 48px);
649
+ }
650
+
651
+ @keyframes tooltip-enter {
652
+ from {
653
+ opacity: 0;
654
+ transform: scale(0.96);
655
+ }
656
+ to {
657
+ opacity: 1;
658
+ transform: scale(1);
659
+ }
660
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workflow/web-shared",
3
3
  "description": "Shared components for Workflow Observability UI",
4
- "version": "5.0.0-beta.0",
4
+ "version": "5.0.0-beta.10",
5
5
  "private": false,
6
6
  "files": [
7
7
  "dist",
@@ -38,6 +38,7 @@
38
38
  "directory": "packages/web-shared"
39
39
  },
40
40
  "dependencies": {
41
+ "@radix-ui/react-tooltip": "1.2.8",
41
42
  "@tailwindcss/postcss": "4",
42
43
  "class-variance-authority": "0.7.1",
43
44
  "clsx": "2.1.1",
@@ -52,9 +53,9 @@
52
53
  "streamdown": "2.3.0",
53
54
  "tailwind-merge": "3.5.0",
54
55
  "tailwindcss": "4",
55
- "@workflow/core": "5.0.0-beta.0",
56
- "@workflow/utils": "5.0.0-beta.0",
57
- "@workflow/world": "5.0.0-beta.0"
56
+ "@workflow/core": "5.0.0-beta.10",
57
+ "@workflow/utils": "5.0.0-beta.3",
58
+ "@workflow/world": "5.0.0-beta.5"
58
59
  },
59
60
  "devDependencies": {
60
61
  "@biomejs/biome": "^2.4.4",
@@ -64,6 +65,7 @@
64
65
  "ai": "6.0.116",
65
66
  "typescript": "^5.9.3",
66
67
  "vitest": "^4.0.18",
68
+ "@workflow/errors": "5.0.0-beta.6",
67
69
  "@workflow/tsconfig": "5.0.0-beta.0"
68
70
  },
69
71
  "scripts": {