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

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 (106) hide show
  1. package/README.md +1 -1
  2. package/dist/components/error-boundary.js.map +1 -1
  3. package/dist/components/event-list-view.d.ts +3 -1
  4. package/dist/components/event-list-view.d.ts.map +1 -1
  5. package/dist/components/event-list-view.js +76 -70
  6. package/dist/components/event-list-view.js.map +1 -1
  7. package/dist/components/hook-actions.js.map +1 -1
  8. package/dist/components/index.d.ts +1 -1
  9. package/dist/components/index.d.ts.map +1 -1
  10. package/dist/components/index.js +1 -1
  11. package/dist/components/index.js.map +1 -1
  12. package/dist/components/run-trace-view.d.ts +2 -1
  13. package/dist/components/run-trace-view.d.ts.map +1 -1
  14. package/dist/components/run-trace-view.js +2 -2
  15. package/dist/components/run-trace-view.js.map +1 -1
  16. package/dist/components/sidebar/attribute-panel.d.ts +7 -1
  17. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  18. package/dist/components/sidebar/attribute-panel.js +36 -26
  19. package/dist/components/sidebar/attribute-panel.js.map +1 -1
  20. package/dist/components/sidebar/conversation-view.js.map +1 -1
  21. package/dist/components/sidebar/copyable-data-block.js.map +1 -1
  22. package/dist/components/sidebar/detail-card.js.map +1 -1
  23. package/dist/components/sidebar/entity-detail-panel.d.ts +5 -1
  24. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  25. package/dist/components/sidebar/entity-detail-panel.js +18 -16
  26. package/dist/components/sidebar/entity-detail-panel.js.map +1 -1
  27. package/dist/components/sidebar/events-list.d.ts +1 -1
  28. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  29. package/dist/components/sidebar/events-list.js +26 -18
  30. package/dist/components/sidebar/events-list.js.map +1 -1
  31. package/dist/components/sidebar/resolve-hook-modal.js.map +1 -1
  32. package/dist/components/stream-viewer.js.map +1 -1
  33. package/dist/components/trace-viewer/components/map.js.map +1 -1
  34. package/dist/components/trace-viewer/components/markers.js.map +1 -1
  35. package/dist/components/trace-viewer/components/node.js.map +1 -1
  36. package/dist/components/trace-viewer/components/search-input.js.map +1 -1
  37. package/dist/components/trace-viewer/components/search.js.map +1 -1
  38. package/dist/components/trace-viewer/components/span-content.js.map +1 -1
  39. package/dist/components/trace-viewer/components/span-detail-panel.js.map +1 -1
  40. package/dist/components/trace-viewer/components/span-segments.js.map +1 -1
  41. package/dist/components/trace-viewer/components/span-strategies.js.map +1 -1
  42. package/dist/components/trace-viewer/components/ui.js.map +1 -1
  43. package/dist/components/trace-viewer/components/zoom-button.js.map +1 -1
  44. package/dist/components/trace-viewer/components/zoom-icons.js.map +1 -1
  45. package/dist/components/trace-viewer/context.js.map +1 -1
  46. package/dist/components/trace-viewer/index.js.map +1 -1
  47. package/dist/components/trace-viewer/trace-viewer.js.map +1 -1
  48. package/dist/components/trace-viewer/types.js.map +1 -1
  49. package/dist/components/trace-viewer/util/constants.js.map +1 -1
  50. package/dist/components/trace-viewer/util/scrollbar-width.js.map +1 -1
  51. package/dist/components/trace-viewer/util/timing.js.map +1 -1
  52. package/dist/components/trace-viewer/util/tree.js.map +1 -1
  53. package/dist/components/trace-viewer/util/use-immediate-style.js.map +1 -1
  54. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +1 -1
  55. package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +1 -1
  56. package/dist/components/trace-viewer/worker.js.map +1 -1
  57. package/dist/components/ui/alert.js.map +1 -1
  58. package/dist/components/ui/card.js.map +1 -1
  59. package/dist/components/ui/data-inspector.d.ts +17 -1
  60. package/dist/components/ui/data-inspector.d.ts.map +1 -1
  61. package/dist/components/ui/data-inspector.js +116 -21
  62. package/dist/components/ui/data-inspector.js.map +1 -1
  63. package/dist/components/ui/decrypt-button.js.map +1 -1
  64. package/dist/components/ui/error-card.js.map +1 -1
  65. package/dist/components/ui/error-stack-block.js.map +1 -1
  66. package/dist/components/ui/inspector-theme.js.map +1 -1
  67. package/dist/components/ui/load-more-button.js.map +1 -1
  68. package/dist/components/ui/menu-dropdown.js.map +1 -1
  69. package/dist/components/ui/skeleton.js.map +1 -1
  70. package/dist/components/ui/spinner.js.map +1 -1
  71. package/dist/components/ui/timestamp-tooltip.js.map +1 -1
  72. package/dist/components/workflow-trace-view.d.ts +5 -1
  73. package/dist/components/workflow-trace-view.d.ts.map +1 -1
  74. package/dist/components/workflow-trace-view.js +7 -2
  75. package/dist/components/workflow-trace-view.js.map +1 -1
  76. package/dist/components/workflow-traces/event-colors.js.map +1 -1
  77. package/dist/components/workflow-traces/trace-colors.js.map +1 -1
  78. package/dist/components/workflow-traces/trace-span-construction.js +1 -1
  79. package/dist/components/workflow-traces/trace-span-construction.js.map +1 -1
  80. package/dist/components/workflow-traces/trace-time-utils.js.map +1 -1
  81. package/dist/hooks/use-dark-mode.js.map +1 -1
  82. package/dist/index.d.ts +1 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +1 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/lib/event-analysis.js.map +1 -1
  87. package/dist/lib/event-materialization.js.map +1 -1
  88. package/dist/lib/hydration.d.ts +9 -2
  89. package/dist/lib/hydration.d.ts.map +1 -1
  90. package/dist/lib/hydration.js +43 -14
  91. package/dist/lib/hydration.js.map +1 -1
  92. package/dist/lib/toast.js.map +1 -1
  93. package/dist/lib/trace-builder.js.map +1 -1
  94. package/dist/lib/utils.js.map +1 -1
  95. package/package.json +4 -4
  96. package/src/components/event-list-view.tsx +207 -193
  97. package/src/components/index.ts +6 -1
  98. package/src/components/run-trace-view.tsx +3 -0
  99. package/src/components/sidebar/attribute-panel.tsx +160 -109
  100. package/src/components/sidebar/entity-detail-panel.tsx +111 -96
  101. package/src/components/sidebar/events-list.tsx +42 -32
  102. package/src/components/ui/data-inspector.tsx +205 -31
  103. package/src/components/workflow-trace-view.tsx +14 -0
  104. package/src/components/workflow-traces/trace-span-construction.ts +1 -1
  105. package/src/index.ts +1 -0
  106. package/src/lib/hydration.ts +50 -13
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/ui.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/ui.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport type { AnchorHTMLAttributes, ReactNode } from 'react';\nimport styles from '../trace-viewer.module.css';\n\n// Color token mapping helper\nconst colorTokenMap: Record<string, string> = {\n 'gray-700': 'var(--ds-gray-700)',\n 'gray-900': 'var(--ds-gray-900)',\n};\n\nexport function IconCross({\n size = 16,\n color = 'gray-700',\n}: {\n size?: number;\n color?: string;\n}): ReactNode {\n const style = { color: colorTokenMap[color] || color } as const;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n style={style}\n aria-hidden\n >\n <title>Cross</title>\n <path\n d=\"M6 6l12 12M18 6L6 18\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nexport function IconChevronDown({ size = 16 }: { size?: number }): ReactNode {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden\n className={styles.detailHeadingIcon}\n >\n <title>Chevron Down</title>\n <path\n d=\"M6 9l6 6 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function IconExternalSmall({\n size = 16,\n color = 'gray-900',\n}: {\n size?: number;\n color?: string;\n}): ReactNode {\n const style = { color: colorTokenMap[color] || color } as const;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n style={style}\n aria-hidden\n >\n <title>External Small</title>\n <path\n d=\"M14 4h6m0 0v6m0-6L10 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nexport function Link(\n props: AnchorHTMLAttributes<HTMLAnchorElement> & { as?: 'a' | 'span' }\n): ReactNode {\n const { as: asProp, className, href, children, ...rest } = props;\n const Element: any = asProp || 'a';\n if (Element === 'span' || !href) {\n return (\n <span className={className} {...rest}>\n {children}\n </span>\n );\n }\n return (\n <a className={className} href={href} {...rest}>\n {children}\n </a>\n );\n}\n\nexport function ButtonLink(\n props: AnchorHTMLAttributes<HTMLAnchorElement> & {\n size?: 'small' | 'medium' | 'large';\n }\n): ReactNode {\n const { className, children, size: _size, ...rest } = props;\n return (\n <a {...rest} className={clsx(styles.buttonLink, className)}>\n {children}\n </a>\n );\n}\n\nexport function Note({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}): ReactNode {\n return <div className={clsx(styles.note, className)}>{children}</div>;\n}\n\nexport function Skeleton({\n width,\n height,\n rounded,\n}: {\n width: number;\n height: number;\n rounded?: boolean;\n}): ReactNode {\n return (\n <span\n className={clsx(styles.skeleton, rounded && styles.skeletonRounded)}\n style={{ width, height }}\n aria-hidden\n />\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"zoom-button.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/zoom-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAS,EAAE;QACtC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,SAAS,GAAG,WAAW,CAAC,GAAS,EAAE;QACvC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC,CAAC;SACd,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,CAAC,GAAS,EAAE;QACzC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,eAAK,SAAS,EAAE,MAAM,CAAC,eAAe,aACpC,+BACa,UAAU,EACrB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,SAAS,EAClB,IAAI,EAAC,QAAQ,YAEb,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACT,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EAClC,+BACa,YAAY,EACvB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAC,QAAQ,YAEb,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACT,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EAClC,+BACa,SAAS,EACpB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,QAAQ,YAEb,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,IACL,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"zoom-button.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/zoom-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAS,EAAE;QACtC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,SAAS,GAAG,WAAW,CAAC,GAAS,EAAE;QACvC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC,CAAC;SACd,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,CAAC,GAAS,EAAE;QACzC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,eAAK,SAAS,EAAE,MAAM,CAAC,eAAe,aACpC,+BACa,UAAU,EACrB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,SAAS,EAClB,IAAI,EAAC,QAAQ,YAEb,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACT,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EAClC,+BACa,YAAY,EACvB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAC,QAAQ,YAEb,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACT,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,GAAI,EAClC,+BACa,SAAS,EACpB,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,QAAQ,YAEb,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,IACL,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\nimport { type ReactNode, useCallback } from 'react';\nimport { useTraceViewer } from '../context';\nimport styles from '../trace-viewer.module.css';\nimport { IconMinus, IconZoomIn, IconZoomOut } from './zoom-icons';\n\nexport function ZoomButton(): ReactNode {\n const { dispatch } = useTraceViewer();\n\n const onZoomIn = useCallback((): void => {\n dispatch({\n type: 'adjustScaleRatio',\n direction: 1,\n });\n }, [dispatch]);\n\n const onZoomOut = useCallback((): void => {\n dispatch({\n type: 'adjustScaleRatio',\n direction: -1,\n });\n }, [dispatch]);\n\n const onResetZoom = useCallback((): void => {\n dispatch({\n type: 'adjustScaleRatio',\n direction: 0,\n });\n }, [dispatch]);\n\n return (\n <div className={styles.zoomButtonGroup}>\n <button\n aria-label=\"Zoom Out\"\n className={styles.zoomButton}\n onClick={onZoomOut}\n type=\"button\"\n >\n <IconZoomOut size={18} />\n </button>\n <div className={styles.divider} />\n <button\n aria-label=\"Reset Zoom\"\n className={styles.zoomButton}\n onClick={onResetZoom}\n type=\"button\"\n >\n <IconMinus size={18} />\n </button>\n <div className={styles.divider} />\n <button\n aria-label=\"Zoom In\"\n className={styles.zoomButton}\n onClick={onZoomIn}\n type=\"button\"\n >\n <IconZoomIn size={18} />\n </button>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"zoom-icons.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/zoom-icons.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IACzD,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,sCAAsB,EACtB,eACE,CAAC,EAAC,uCAAuC,EACzC,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,GACf,EACF,eACE,CAAC,EAAC,gBAAgB,EAClB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,EACF,eACE,CAAC,EAAC,iBAAiB,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IAC1D,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,uCAAuB,EACvB,eACE,CAAC,EAAC,uCAAuC,EACzC,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,GACf,EACF,eACE,CAAC,EAAC,SAAS,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,EACF,eACE,CAAC,EAAC,iBAAiB,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IACxD,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,oCAAoB,EACpB,eACE,CAAC,EAAC,UAAU,EACZ,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"zoom-icons.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/zoom-icons.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IACzD,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,sCAAsB,EACtB,eACE,CAAC,EAAC,uCAAuC,EACzC,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,GACf,EACF,eACE,CAAC,EAAC,gBAAgB,EAClB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,EACF,eACE,CAAC,EAAC,iBAAiB,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IAC1D,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,uCAAuB,EACvB,eACE,CAAC,EAAC,uCAAuC,EACzC,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,GACf,EACF,eACE,CAAC,EAAC,SAAS,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,EACF,eACE,CAAC,EAAC,iBAAiB,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,GAAG,EAAE,EAAqB;IACxD,OAAO,CACL,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,kCAC7D,oCAAoB,EACpB,eACE,CAAC,EAAC,UAAU,EACZ,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type { ReactNode } from 'react';\n\nexport function IconZoomIn({ size = 16 }: { size?: number }): ReactNode {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden>\n <title>Zoom In</title>\n <path\n d=\"M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n <path\n d=\"M11 8v6M8 11h6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M20 20l-3.5-3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nexport function IconZoomOut({ size = 16 }: { size?: number }): ReactNode {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden>\n <title>Zoom Out</title>\n <path\n d=\"M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n <path\n d=\"M8 11h6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M20 20l-3.5-3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nexport function IconMinus({ size = 16 }: { size?: number }): ReactNode {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden>\n <title>Minus</title>\n <path\n d=\"M6 12h12\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,OAAO,EACP,UAAU,EACV,MAAM,GACP,MAAM,OAAO,CAAC;AAYf,OAAO,EACL,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAmM9D,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;KACb;IACD,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC9B,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IACzC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE;IACpC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE;IACvB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAU,EAAE;IACtD,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAA0B;IACvE,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO;IACT,CAAC;CACF,CAAC,CAAC;AACH,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEtD,MAAM,OAAO,GAAiD,CAC5D,KAAK,EACL,MAAM,EACN,EAAE;IACF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,KAAK,CAAC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;YAC5C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACnE;aACF,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;QACJ,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,CAAC;YAE9D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;YAExD,IAAI,QAAQ,GAAG;gBACb,GAAG,KAAK;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EACX,MAAM,CAAC,KAAK;oBACZ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7D,KAAK,CAAC,UAAU;gBACpB,cAAc,EAAE,WAAW;gBAC3B,WAAW,EAAE,WAAW;gBACxB,QAAQ;aACT,CAAC;YAEF,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;oBAC3B,IAAI,EAAE,iBAAiB;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAC1C,CAAC;YACF,MAAM,aAAa,GACjB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAClD,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU;gBAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAClB,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,aAAa;gBACb,UAAU;aACX,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;QACJ,CAAC;QACD,KAAK,WAAW;YACd,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,KAAK,CAAC,KAAK;aAC3B,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;QACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,QAAQ,EAAE,IAAI;gBACd,aAAa,EACX,KAAK,CAAC,KAAK;oBACX,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9D,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;QACJ,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,KAAK,EAAE;oBACpB,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;oBAC3B,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC9C,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,OAAO,CAAC,QAAQ,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,MAAM,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GACb,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAErE,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,SAAS;gBACT,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,UAAU;aACpC,EACD;gBACE,IAAI,EAAE,UAAU;aACjB,CACF,CAAC;QACJ,CAAC;QACD,KAAK,UAAU;YACb,OAAO;gBACL,GAAG,KAAK;gBACR,UAAU,EAAE,MAAM,CAAC,KAAK;gBACxB,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK;aACtC,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBACxB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,OAAO,CACZ,OAAO,CAAC,KAAK,EAAE;gBACb,IAAI,EAAE,UAAU;gBAChB,KAAK,EACH,CAAC,KAAK,CAAC,KAAK;oBACV,KAAK,CAAC,cAAc;oBACpB,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,QAAQ;oBACb,KAAK,CAAC,SAAS;aAClB,CAAC,EACF;gBACE,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC9C,OAAO,EAAE,CAAC;aACX,CACF,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAEjD,OAAO,OAAO,CACZ,OAAO,CAAC,KAAK,EAAE;gBACb,IAAI,EAAE,UAAU;gBAChB,KAAK,EACH,CAAC,KAAK,CAAC,KAAK;oBACV,KAAK,CAAC,cAAc;oBACpB,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7D,QAAQ;oBACR,KAAK,CAAC,SAAS;aAClB,CAAC,EACF;gBACE,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC9D,OAAO,EAAE,CAAC;aACX,CACF,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;YAC3B,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,CAAC;oBACL,UAAU,IAAI,GAAG,CAAC;oBAClB,MAAM;gBACR,KAAK,CAAC;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACR;oBACE,UAAU,GAAG,CAAC,CAAC;oBACf,MAAM;YACV,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;YAE9C,OAAO,OAAO,CACZ,OAAO,CACL;gBACE,GAAG,KAAK;gBACR,UAAU;gBACV,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU;aACpC,EACD;gBACE,IAAI,EAAE,UAAU;aACjB,CACF,EACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK;gBACvD,OAAO,EAAE,WAAW,GAAG,GAAG;aAC3B,CACF,CAAC;QACJ,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,aAAa,EACb,KAAK,CAAC,UAAU;gBACd,CAAC,CAAC;oBACA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACvE,CAAC;YAEF,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,UAAU;gBACV,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU;aACpC,EACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CACF,CAAC;QACJ,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC1C,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,QAAQ,GAAG,KAAK,CAAC,SAAS;aACvC,CAAC;QACJ,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAEpC,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;YACnD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;YAChC,MAAM,QAAQ,GACZ,CAAC,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;gBAC9C,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;YAC7B,MAAM,MAAM,GACV,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;YAE1E,KAAK,CAAC,iBAAiB,CAAC,OAAO,GAAG;gBAChC,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,KAAK;gBAC1D,OAAO,EACL,KAAK,CAAC,IAAI,CAAC,SAAS;oBACpB,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK;gBAClD,QAAQ;gBACR,MAAM;gBACN,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,aAAa,GACjB,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACnD,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU;gBAChC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAClB,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,aAAa;aACd,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;QACJ,CAAC;QACD,KAAK,aAAa;YAChB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO;gBACL,GAAG,KAAK;aACT,CAAC;QACJ,KAAK,YAAY;YACf,mEAAmE;YACnE,mDAAmD;YACnD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,OAAO,CACZ;gBACE,GAAG,KAAK;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACnE;aACF,EACD;gBACE,IAAI,EAAE,iBAAiB;aACxB,CACF,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,EACzC,aAAa,EACb,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,GAAG,IAAI,GAQ5B;IACC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,CAAiB,SAAS,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,EAAwB,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,EAAuB,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACtE,OAAO;YACL,GAAG,OAAO;YACV,cAAc,EAAE,oBAAoB,EAAE;YACtC,WAAW;YACX,iBAAiB;YACjB,uBAAuB;YACvB,4BAA4B;YAC5B,YAAY;YACZ,SAAS;YACT,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvD,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBAE9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrD,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CACP,GAAG,EAAE,CACH,QAAQ,CAAC;QACP,IAAI,EAAE,cAAc;QACpB,SAAS;KACV,CAAC,EACJ,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,KAAK,GAA4B,OAAO,CAC5C,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,oBAAoB,YACtD,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACtC,QAAQ,GACmB,GACF,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAA4B,EAAE,CAC1D,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,aAAa,CAAmB,IAAI,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAqB,EAAE,CAC5D,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/context.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { Dispatch, MutableRefObject, ReactNode, Reducer } from 'react';\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\nimport type {\n GetQuickLinks,\n MemoCache,\n MemoCacheKey,\n QuickLink,\n Resource,\n RootNode,\n ScrollSnapshot,\n SpanNode,\n VisibleSpanEvent,\n} from './types';\nimport {\n MAP_HEIGHT,\n MARKER_HEIGHT,\n ROW_HEIGHT,\n ROW_PADDING,\n SEARCH_GAP,\n SEARCH_HEIGHT,\n TIMELINE_PADDING,\n} from './util/constants';\nimport { detectScrollbarWidth } from './util/scrollbar-width';\n\nexport interface TraceViewerState {\n /**\n * The root node for the tree\n */\n root: RootNode;\n /**\n * A map of spanId to span nodes\n */\n spanMap: Record<string, SpanNode>;\n /**\n * A map of resource name to resource\n */\n resourceMap: Record<string, Resource['attributes']>;\n /**\n * The current (debounced) search input value\n */\n filter: string;\n /**\n * The span that is currently focused and visible in the panel\n */\n selected: SpanNode | null;\n /**\n * The initial scale of the trace. At this scale the entire trace is visible\n */\n baseScale: number;\n /**\n * The multiplier of the base scale to get the current scale\n */\n scaleRatio: number;\n /**\n * The scale of 1ms in pixels\n */\n scale: number;\n /**\n * The width of the entire trace viewer in pixels\n */\n width: number;\n /**\n * The height of the entire trace viewer in pixels\n */\n height: number;\n /**\n * The width of the timeline view in pixels\n */\n timelineWidth: number;\n /**\n * The height of the timeline view in pixels\n */\n timelineHeight: number;\n /**\n * The width of the side panel in pixels\n */\n panelWidth: number;\n /**\n * The height of the side panel in pixels\n */\n panelHeight: number;\n /**\n * The width of scrollbars on this device\n */\n scrollbarWidth: number;\n /**\n * A ref for the timeline element\n */\n timelineRef: MutableRefObject<HTMLDivElement | null>;\n /**\n * A ref for updating timeline scroll position immediately after a scale operation\n */\n scrollSnapshotRef: MutableRefObject<ScrollSnapshot | undefined>;\n /**\n * A reference for the last time each node was mutated. Used for more efficent control\n * of what React re-renders and when.\n */\n memoCacheRef: MutableRefObject<MemoCache>;\n /**\n * A constant, wrapped version of the getQuickLinks property with caching\n */\n getQuickLinks: GetQuickLinks;\n /**\n * Whether the panel is being rendered attached to the timeline\n */\n withPanel: boolean;\n /**\n * Whether the trace viewer is small enough that it should be in mobile mode\n */\n isMobile: boolean;\n /**\n * A function to provide custom class names for spans.\n */\n customSpanClassNameFunc?: (span: SpanNode) => string;\n /**\n * A function to provide custom class names for span events.\n */\n customSpanEventClassNameFunc?: (event: VisibleSpanEvent) => string;\n}\n\nexport type TraceViewerAction =\n | {\n type: 'setRoot';\n root: RootNode;\n spanMap: Record<string, SpanNode>;\n resources: Resource[];\n }\n | {\n type: 'setSize';\n width: number;\n height: number;\n }\n | {\n type: 'setPanelWidth';\n width: number;\n }\n | {\n type: 'setFilter';\n filter: string;\n }\n | {\n type: 'deselect';\n }\n | {\n type: 'select';\n id: string;\n }\n | {\n type: 'escape';\n }\n | {\n type: 'toggleSelection';\n id: string;\n }\n | {\n type: 'detectBaseScale';\n }\n | {\n type: 'setScale';\n scale: number;\n }\n | {\n type: 'resetScale';\n }\n | {\n type: 'scaleToNode';\n id: string;\n }\n | {\n type: 'scaleToRange';\n t1: number;\n t2: number;\n }\n | {\n type: 'adjustScaleRatio';\n direction: -1 | 0 | 1;\n }\n | {\n type: 'trackpadScale';\n delta: number;\n anchorT: number;\n anchorX: number;\n }\n | {\n type: 'minScale';\n }\n | {\n type: 'setScrollSnapshot';\n /**\n * The time that will remain the same location after scaling\n */\n anchorT: number;\n /**\n * The anchor point relative to the timeline's left position\n */\n anchorX: number;\n }\n | {\n type: 'setWithPanel';\n withPanel: boolean;\n }\n | {\n type: 'forceRender';\n }\n | {\n /** Like setRoot but preserves scroll position and memo cache (for incremental data updates) */\n type: 'updateRoot';\n root: RootNode;\n spanMap: Record<string, SpanNode>;\n resources: Resource[];\n };\n\nexport interface TraceViewerContextProps {\n state: TraceViewerState;\n dispatch: Dispatch<TraceViewerAction>;\n}\n\nexport const initialState: TraceViewerState = {\n root: {\n startTime: 0,\n endTime: 1,\n duration: 1,\n depth: 0,\n children: [],\n },\n spanMap: {},\n resourceMap: {},\n filter: '',\n selected: null,\n baseScale: 1,\n scaleRatio: 1,\n scale: 1,\n width: 640,\n height: 480,\n timelineWidth: 640,\n timelineHeight: 480,\n panelWidth: 380,\n panelHeight: 480,\n scrollbarWidth: 0,\n timelineRef: { current: null },\n scrollSnapshotRef: { current: undefined },\n memoCacheRef: { current: new Map() },\n getQuickLinks: () => [],\n withPanel: false,\n isMobile: false,\n};\n\nconst getMinScale = (state: TraceViewerState): number => {\n return (state.timelineWidth - state.scrollbarWidth) / state.root.duration;\n};\n\nexport const TraceViewerContext = createContext<TraceViewerContextProps>({\n state: initialState,\n dispatch: () => {\n // noop\n },\n});\nTraceViewerContext.displayName = 'TraceViewerContext';\n\nconst reducer: Reducer<TraceViewerState, TraceViewerAction> = (\n state,\n action\n) => {\n switch (action.type) {\n case 'setRoot':\n state.scrollSnapshotRef.current = undefined;\n state.memoCacheRef.current.clear();\n return reducer(\n {\n ...state,\n root: action.root,\n spanMap: action.spanMap,\n resourceMap: Object.fromEntries(\n action.resources.map(({ name, attributes }) => [name, attributes])\n ),\n },\n {\n type: 'detectBaseScale',\n }\n );\n case 'setSize': {\n const lowerHeight =\n action.height - MAP_HEIGHT - SEARCH_HEIGHT - 3 * SEARCH_GAP;\n\n const isMobile = state.withPanel && action.width <= 768;\n\n let newState = {\n ...state,\n width: action.width,\n height: action.height,\n timelineWidth:\n action.width -\n Number(Boolean(state.selected && state.withPanel && !isMobile)) *\n state.panelWidth,\n timelineHeight: lowerHeight,\n panelHeight: lowerHeight,\n isMobile,\n };\n\n if (newState.width !== state.width) {\n newState = reducer(newState, {\n type: 'detectBaseScale',\n });\n }\n\n return newState;\n }\n case 'setPanelWidth': {\n const panelWidth = Math.max(\n 240,\n Math.min(action.width, state.width - 240)\n );\n const timelineWidth =\n state.withPanel && state.selected && !state.isMobile\n ? state.width - panelWidth\n : state.width;\n return reducer(\n {\n ...state,\n timelineWidth,\n panelWidth,\n },\n {\n type: 'detectBaseScale',\n }\n );\n }\n case 'setFilter':\n return {\n ...state,\n filter: action.filter,\n };\n case 'deselect':\n return reducer(\n {\n ...state,\n selected: null,\n timelineWidth: state.width,\n },\n {\n type: 'detectBaseScale',\n }\n );\n case 'select': {\n const node = state.spanMap[action.id];\n if (!node) {\n return state;\n }\n\n return reducer(\n {\n ...state,\n selected: node,\n timelineWidth:\n state.width -\n (state.withPanel && !state.isMobile ? state.panelWidth : 0),\n },\n {\n type: 'detectBaseScale',\n }\n );\n }\n case 'escape': {\n if (state.selected) {\n return reducer(state, {\n type: 'deselect',\n });\n }\n return reducer(state, {\n type: 'resetScale',\n });\n }\n case 'toggleSelection': {\n let newState = state;\n if (state.selected) {\n newState = reducer(newState, {\n type: 'deselect',\n });\n }\n if (state.selected?.span.spanId === action.id) {\n return newState;\n }\n return reducer(newState, {\n type: 'select',\n id: action.id,\n });\n }\n case 'detectBaseScale': {\n const baseScale =\n (state.timelineWidth - state.scrollbarWidth) / state.root.duration;\n\n return reducer(\n {\n ...state,\n baseScale,\n scale: baseScale * state.scaleRatio,\n },\n {\n type: 'minScale',\n }\n );\n }\n case 'setScale':\n return {\n ...state,\n scaleRatio: action.scale,\n scale: state.baseScale * action.scale,\n };\n case 'resetScale':\n return reducer(state, {\n type: 'scaleToRange',\n t1: state.root.startTime,\n t2: state.root.endTime,\n });\n case 'scaleToNode': {\n const node = state.spanMap[action.id];\n if (!node) {\n return state;\n }\n return reducer(\n reducer(state, {\n type: 'setScale',\n scale:\n (state.width -\n state.scrollbarWidth -\n (state.withPanel && !state.isMobile ? state.panelWidth : 0)) /\n node.duration /\n state.baseScale,\n }),\n {\n type: 'setScrollSnapshot',\n anchorT: node.startTime - state.root.startTime,\n anchorX: 0,\n }\n );\n }\n case 'scaleToRange': {\n const duration = Math.abs(action.t1 - action.t2);\n\n return reducer(\n reducer(state, {\n type: 'setScale',\n scale:\n (state.width -\n state.scrollbarWidth -\n (state.selected && state.withPanel ? state.panelWidth : 0)) /\n duration /\n state.baseScale,\n }),\n {\n type: 'setScrollSnapshot',\n anchorT: Math.min(action.t1, action.t2) - state.root.startTime,\n anchorX: 0,\n }\n );\n }\n case 'adjustScaleRatio': {\n let { scaleRatio } = state;\n switch (action.direction) {\n case -1:\n scaleRatio *= 0.8;\n break;\n case 1:\n scaleRatio *= 1.25;\n break;\n default:\n scaleRatio = 1;\n break;\n }\n\n const $timeline = state.timelineRef.current;\n if (!$timeline) {\n console.warn('timelineRef is null');\n return state;\n }\n\n const { clientWidth, scrollLeft } = $timeline;\n\n return reducer(\n reducer(\n {\n ...state,\n scaleRatio,\n scale: state.baseScale * scaleRatio,\n },\n {\n type: 'minScale',\n }\n ),\n {\n type: 'setScrollSnapshot',\n anchorT: (scrollLeft + clientWidth * 0.5) / state.scale,\n anchorX: clientWidth * 0.5,\n }\n );\n }\n case 'trackpadScale': {\n const minScaleRatio = getMinScale(state) / state.baseScale;\n const scaleRatio = Math.max(\n minScaleRatio,\n state.scaleRatio *\n (1 +\n 0.2 * Math.sign(action.delta) * Math.sqrt(Math.abs(action.delta)))\n );\n\n return reducer(\n {\n ...state,\n scaleRatio,\n scale: state.baseScale * scaleRatio,\n },\n {\n type: 'setScrollSnapshot',\n anchorT: action.anchorT,\n anchorX: action.anchorX,\n }\n );\n }\n case 'minScale': {\n const minScale = getMinScale(state);\n if (state.scale >= minScale) return state;\n return {\n ...state,\n scale: minScale,\n scaleRatio: minScale / state.baseScale,\n };\n }\n case 'setScrollSnapshot': {\n const $timeline = state.timelineRef.current;\n if (!$timeline) return state;\n\n const { anchorT, anchorX } = action;\n\n const scrollLeft = anchorT * state.scale - anchorX;\n const { scrollTop } = $timeline;\n const startRow =\n (scrollTop - MARKER_HEIGHT - TIMELINE_PADDING) /\n (ROW_HEIGHT + ROW_PADDING);\n const endRow =\n startRow + Math.ceil(state.timelineHeight / (ROW_HEIGHT + ROW_PADDING));\n\n state.scrollSnapshotRef.current = {\n anchorT,\n anchorX,\n scrollLeft,\n scrollTop,\n startTime: state.root.startTime + scrollLeft / state.scale,\n endTime:\n state.root.startTime +\n (scrollLeft + state.timelineWidth) / state.scale,\n startRow,\n endRow,\n scale: state.scale,\n };\n\n return state;\n }\n case 'setWithPanel': {\n if (state.withPanel === action.withPanel) return state;\n const timelineWidth =\n action.withPanel && state.selected && !state.isMobile\n ? state.width - state.panelWidth\n : state.width;\n return reducer(\n {\n ...state,\n withPanel: action.withPanel,\n timelineWidth,\n },\n {\n type: 'detectBaseScale',\n }\n );\n }\n case 'forceRender':\n state.memoCacheRef.current.set('', {});\n return {\n ...state,\n };\n case 'updateRoot':\n // Incremental update: preserve scroll snapshot and only invalidate\n // memo cache for spans whose data may have changed\n state.memoCacheRef.current.set('', {});\n return reducer(\n {\n ...state,\n root: action.root,\n spanMap: action.spanMap,\n resourceMap: Object.fromEntries(\n action.resources.map(({ name, attributes }) => [name, attributes])\n ),\n },\n {\n type: 'detectBaseScale',\n }\n );\n }\n};\n\nexport function TraceViewerContextProvider({\n getQuickLinks,\n withPanel = false,\n children,\n customSpanClassNameFunc,\n customSpanEventClassNameFunc,\n customPanelComponent = null,\n}: {\n getQuickLinks?: GetQuickLinks;\n withPanel?: boolean;\n children: ReactNode;\n customSpanClassNameFunc?: (span: SpanNode) => string;\n customSpanEventClassNameFunc?: (event: VisibleSpanEvent) => string;\n customPanelComponent?: ReactNode;\n}): ReactNode {\n const timelineRef = useRef<HTMLDivElement>(null);\n const scrollSnapshotRef = useRef<ScrollSnapshot>(undefined);\n const getQuickLinksRef = useRef(getQuickLinks);\n getQuickLinksRef.current = getQuickLinks;\n const memoCacheRef = useRef(new Map<string, MemoCacheKey>());\n const quickLinksCache = useRef(new Map<string, QuickLink[]>());\n const [state, dispatch] = useReducer(reducer, initialState, (initial) => {\n return {\n ...initial,\n scrollbarWidth: detectScrollbarWidth(),\n timelineRef,\n scrollSnapshotRef,\n customSpanClassNameFunc,\n customSpanEventClassNameFunc,\n memoCacheRef,\n withPanel,\n getQuickLinks: (span) => {\n const cacheKey = span.spanId;\n const existing = quickLinksCache.current.get(cacheKey);\n if (existing) return existing;\n\n const value = getQuickLinksRef.current?.(span) || [];\n quickLinksCache.current.set(cacheKey, value);\n return value;\n },\n };\n });\n\n useEffect(\n () =>\n dispatch({\n type: 'setWithPanel',\n withPanel,\n }),\n [withPanel]\n );\n\n const value: TraceViewerContextProps = useMemo(\n () => ({ state, dispatch }),\n [state, dispatch]\n );\n\n return (\n <CustomPanelContext.Provider value={customPanelComponent}>\n <TraceViewerContext.Provider value={value}>\n {children}\n </TraceViewerContext.Provider>\n </CustomPanelContext.Provider>\n );\n}\n\nexport const useTraceViewer = (): TraceViewerContextProps =>\n useContext(TraceViewerContext);\n\n/**\n * Separate context for the custom panel component. This is intentionally\n * outside the useReducer state so that the panel re-renders reactively\n * when props like spanDetailData change.\n */\nconst CustomPanelContext = createContext<ReactNode | null>(null);\n\nexport const useCustomPanelComponent = (): ReactNode | null =>\n useContext(CustomPanelContext);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,cAAc,gBAAgB,CAAC","sourcesContent":["export { PanelResizer } from './components/span-detail-panel';\nexport { TraceViewerContextProvider, useTraceViewer } from './context';\nexport * from './trace-viewer';\nexport type { Trace } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-viewer.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/trace-viewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-viewer.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/trace-viewer.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport type { CSSProperties, MouseEventHandler, ReactNode } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\nimport { MiniMap } from './components/map';\nimport { CursorMarker, EventMarkers, Markers } from './components/markers';\nimport { SpanNodes } from './components/node';\nimport { SearchBar } from './components/search';\nimport { SpanDetailPanel } from './components/span-detail-panel';\nimport { ZoomButton } from './components/zoom-button';\nimport { TraceViewerContextProvider, useTraceViewer } from './context';\nimport styles from './trace-viewer.module.css';\nimport type { GetQuickLinks, Trace } from './types';\nimport {\n MAP_HEIGHT,\n MARKER_HEIGHT,\n MARKER_NOTCH_HEIGHT,\n ROW_HEIGHT,\n ROW_PADDING,\n SEARCH_GAP,\n SEARCH_HEIGHT,\n TIMELINE_PADDING,\n} from './util/constants';\nimport { parseTrace } from './util/tree';\nimport { useStreamingSpans } from './util/use-streaming-spans';\n\ninterface TraceViewerProps {\n trace?: Trace;\n className?: string;\n scrollLock?: boolean;\n height?: string | number;\n withPanel?: boolean;\n getQuickLinks?: GetQuickLinks;\n highlightedSpans?: string[];\n /** Render all spans immediately (no progressive streaming). */\n eagerRender?: boolean;\n /** Whether the trace is live (for continuous tick updates). */\n isLive?: boolean;\n}\n\nexport function TraceViewerProvider({\n getQuickLinks,\n children,\n}: Pick<TraceViewerProps, 'getQuickLinks'> & {\n children: ReactNode;\n}): ReactNode {\n return (\n <TraceViewerContextProvider getQuickLinks={getQuickLinks}>\n {children}\n </TraceViewerContextProvider>\n );\n}\n\ninterface LastClickRef {\n x: number;\n y: number;\n t: number;\n spanId: string;\n}\n\nconst skeletonTrace: Trace = {\n traceId: 'skeleton',\n spans: [\n {\n parentSpanId: '',\n spanId: 'root',\n name: 'root span',\n kind: 1,\n resource: 'vercel.runtime',\n startTime: [5000, 0],\n endTime: [6000, 0],\n duration: [1000, 0],\n library: {\n name: 'vercel-site',\n },\n status: {\n code: 1,\n },\n attributes: {\n 'vercel.ownerId': 'team_abc',\n },\n traceFlags: 1,\n events: [],\n links: [],\n },\n ],\n resources: [\n {\n name: 'vercel.runtime',\n attributes: {},\n },\n ],\n rootSpanId: 'root',\n};\n\nexport function TraceViewerTimeline({\n trace = skeletonTrace,\n className = '',\n scrollLock = false,\n height,\n withPanel = false,\n highlightedSpans,\n eagerRender = false,\n isLive = false,\n footer,\n knownDurationMs,\n hasMoreData = false,\n}: Omit<TraceViewerProps, 'getQuickLinks'> & {\n footer?: ReactNode;\n /** Duration in ms from trace start to the latest known event. Used to render the unknown-time overlay. */\n knownDurationMs?: number;\n /** Whether more data pages are expected. Controls the unknown-data overlay visibility. */\n hasMoreData?: boolean;\n}): ReactNode {\n const isSkeleton = trace === skeletonTrace;\n const { state, dispatch } = useTraceViewer();\n const { timelineRef, scrollSnapshotRef } = state;\n const memoCache = state.memoCacheRef.current;\n const hideSearchBar = (highlightedSpans?.length ?? 0) > 0;\n\n const hasInitializedRef = useRef(false);\n const prevSpanKeyRef = useRef('');\n const prevRootRef = useRef<ReturnType<typeof parseTrace>['root'] | null>(\n null\n );\n const prevSpanMapRef = useRef<ReturnType<typeof parseTrace>['map']>({});\n const prevSizeRef = useRef<{ width: number; height: number } | null>(null);\n\n useEffect(() => {\n const { root: newRoot, map: newSpanMap } = parseTrace(trace);\n const isInitial = !hasInitializedRef.current;\n hasInitializedRef.current = true;\n\n // Build a structural key from span IDs + lightweight event signatures.\n // When only timing changes (same spans and boundary events), we can skip the\n // worker restart. When events change (step completed, etc.) we need a\n // full update because the VisibleSpan objects rendered by React hold\n // copies of the events from the worker — in-place mutation won't reach them.\n const spanKey = Object.keys(newSpanMap)\n .sort()\n .map((id) => {\n const events = newSpanMap[id].events;\n const count = events?.length ?? 0;\n const first = count ? events?.[0] : undefined;\n const last = count ? events?.[count - 1] : undefined;\n const eventSignature = `${first?.event.name ?? 'none'}@${first?.timestamp ?? 0}|${last?.event.name ?? 'none'}@${last?.timestamp ?? 0}`;\n return `${id}:${count}:${eventSignature}`;\n })\n .join(',');\n\n if (\n !isInitial &&\n spanKey === prevSpanKeyRef.current &&\n prevRootRef.current\n ) {\n // Same span set, same event counts — only timing changed.\n // Mutate in-place so the worker effect (which depends on root/spanMap\n // references) does NOT restart.\n const oldRoot = prevRootRef.current;\n const oldSpanMap = prevSpanMapRef.current;\n let didChange = false;\n\n if (\n oldRoot.endTime !== newRoot.endTime ||\n oldRoot.duration !== newRoot.duration\n ) {\n oldRoot.endTime = newRoot.endTime;\n oldRoot.duration = newRoot.duration;\n didChange = true;\n }\n\n for (const [id, newNode] of Object.entries(newSpanMap)) {\n const oldNode = oldSpanMap[id];\n if (oldNode) {\n if (\n oldNode.endTime !== newNode.endTime ||\n oldNode.duration !== newNode.duration\n ) {\n oldNode.endTime = newNode.endTime;\n oldNode.duration = newNode.duration;\n didChange = true;\n }\n Object.assign(oldNode.span, newNode.span);\n }\n }\n\n if (!didChange) {\n return;\n }\n\n // Trigger re-render (scale/markers) without restarting the worker.\n // useLiveTick handles continuous scale recalculation for live runs.\n dispatch({ type: 'forceRender' });\n return;\n }\n\n // Structure changed or initial load — full dispatch (worker computes new rows)\n prevSpanKeyRef.current = spanKey;\n prevRootRef.current = newRoot;\n prevSpanMapRef.current = newSpanMap;\n dispatch({\n type: isInitial ? 'setRoot' : 'updateRoot',\n root: newRoot,\n spanMap: newSpanMap,\n resources: trace.resources || [],\n });\n }, [dispatch, trace]);\n\n const { rows, spans, events, scale } = useStreamingSpans(\n highlightedSpans,\n eagerRender\n );\n\n const ref = useRef<HTMLDivElement>(null);\n useLayoutEffect(() => {\n const $el = ref.current;\n if (!$el) return;\n\n const onResize = (): void => {\n const padding = 2 * TIMELINE_PADDING;\n const rect = $el.getBoundingClientRect();\n const nextWidth = rect.width - padding;\n const nextHeight = rect.height;\n const prevSize = prevSizeRef.current;\n\n if (\n prevSize &&\n prevSize.width === nextWidth &&\n prevSize.height === nextHeight\n ) {\n return;\n }\n prevSizeRef.current = { width: nextWidth, height: nextHeight };\n\n dispatch({\n type: 'setSize',\n width: nextWidth,\n height: nextHeight,\n });\n };\n\n onResize();\n\n const observer = new ResizeObserver(onResize);\n observer.observe($el);\n window.addEventListener('resize', onResize);\n\n return () => {\n observer.disconnect();\n window.removeEventListener('resize', onResize);\n };\n }, [dispatch]);\n\n const lastClickRef = useRef<LastClickRef>({\n t: 0,\n x: -1,\n y: -1,\n spanId: '',\n });\n const onClick: MouseEventHandler = useCallback(\n (event) => {\n // NOTE(wits): We manually implement double-click logic here so that we can support double\n // clicking a span even if the first click moves the span that the user is clicking on due\n // to the panel opening. If we used a regular double click listener we would need to delay\n // the opening of the panel artificially. This implementation allows us to always be\n // FAST while also avoiding a FRUSTRATING situation.\n const prev = lastClickRef.current;\n const t = Date.now();\n const { clientX: x, clientY: y } = event;\n const d = Math.sqrt((x - prev.x) ** 2 + (y - prev.y) ** 2);\n // double click\n if (t - prev.t <= 500 && d <= 8) {\n event.stopPropagation();\n event.preventDefault();\n if (!prev.spanId) {\n dispatch({\n type: 'resetScale',\n });\n return;\n }\n dispatch({\n type: 'select',\n id: prev.spanId,\n });\n dispatch({\n type: 'scaleToNode',\n id: prev.spanId,\n });\n return;\n }\n const target = event.target as HTMLElement;\n if (!target.closest(`.${String(styles.timeline)}`)) return;\n const $button = target.closest<HTMLButtonElement>('[data-span-id]');\n const spanId = $button?.dataset.spanId || '';\n lastClickRef.current = {\n x,\n y,\n t,\n spanId,\n };\n if (!spanId) return;\n dispatch({\n type: 'toggleSelection',\n id: spanId,\n });\n event.stopPropagation();\n },\n [dispatch]\n );\n\n // Zoom helper — apply the scroll snapshot once after a zoom operation so\n // the anchor point stays at the same screen position, then clear it.\n // Without clearing, live runs (where scale changes every frame via\n // detectBaseScale) would continuously reset scrollLeft and prevent the\n // user from scrolling horizontally.\n useLayoutEffect(() => {\n const $timeline = timelineRef.current;\n if (!$timeline) return;\n\n const snapshot = scrollSnapshotRef.current;\n if (snapshot) {\n $timeline.scrollLeft = snapshot.anchorT * scale - snapshot.anchorX;\n scrollSnapshotRef.current = undefined;\n }\n }, [scrollSnapshotRef, timelineRef, scale]);\n\n // Selection helper\n useEffect(() => {\n const spanId = state.selected?.span.spanId;\n if (!spanId) return;\n\n const timeout = setTimeout(() => {\n const $timeline = state.timelineRef.current;\n const $span = $timeline?.querySelector(`[data-span-id=\"${spanId}\"]`);\n if (!$timeline || !$span) return;\n\n const viewRect = $timeline.getBoundingClientRect();\n const spanRect = $span.getBoundingClientRect();\n\n // If the selected span is narrower than the timeline, scroll it into view\n if (\n spanRect.width < viewRect.width &&\n (spanRect.left < viewRect.left ||\n spanRect.right > viewRect.right ||\n spanRect.top < viewRect.top ||\n spanRect.bottom > viewRect.bottom)\n ) {\n $span.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }, [state.selected, state.timelineRef]);\n\n // Global keyboard shortcuts\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape') {\n dispatch({\n type: 'escape',\n });\n }\n };\n window.addEventListener('keydown', onKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [dispatch]);\n\n // Scroll locking\n useEffect(() => {\n if (!scrollLock) return;\n\n const $html = document.documentElement;\n const $body = document.body;\n\n $html.style.overflow = 'clip';\n $body.style.overflow = 'clip';\n\n const onScroll = (event?: Event): void => {\n if (event?.cancelable) {\n event.preventDefault();\n } else {\n window.scrollTo({\n left: 0,\n top: 0,\n behavior: 'instant',\n });\n }\n };\n onScroll();\n window.addEventListener('scroll', onScroll, {\n passive: false,\n });\n\n return () => {\n $html.style.overflow = '';\n $body.style.overflow = '';\n window.removeEventListener('scroll', onScroll);\n };\n }, [scrollLock]);\n\n const timelineHeight = Math.max(\n state.timelineHeight - state.scrollbarWidth,\n MARKER_HEIGHT +\n ROW_PADDING +\n rows.length * (ROW_HEIGHT + ROW_PADDING) -\n ROW_PADDING +\n // When there are enough spans to be near the bottom edge, add some extra padding\n // to avoid overlapping with the zoom buttons, etc.\n 84\n );\n\n const inert = Boolean(state.isMobile && state.selected);\n\n return (\n <div\n className={clsx(\n styles.traceViewer,\n isSkeleton && styles.skeleton,\n className\n )}\n onClickCapture={onClick}\n ref={ref}\n style={\n {\n height,\n '--timeline-padding': `${TIMELINE_PADDING}px`,\n '--row-height': `${ROW_HEIGHT}px`,\n '--row-padding': `${ROW_PADDING}px`,\n '--search-height': `${!hideSearchBar ? SEARCH_HEIGHT : 0}px`,\n '--search-gap': `${!hideSearchBar ? SEARCH_GAP : 2}px`,\n '--map-height': `${MAP_HEIGHT}px`,\n '--timeline-width': `${state.timelineWidth}px`,\n '--timeline-height': `${state.timelineHeight}px`,\n '--timeline-scroll-width': `${Math.round(state.root.duration * state.scale)}px`,\n '--panel-width': `${state.panelWidth}px`,\n '--panel-height': `${state.panelHeight}px`,\n '--height': `${state.height}px`,\n '--scrollbar-width': `${state.scrollbarWidth}px`,\n '--marker-height': `${MARKER_HEIGHT}px`,\n '--marker-notch-height': `${MARKER_NOTCH_HEIGHT}px`,\n } as CSSProperties\n }\n >\n {!hideSearchBar ? <SearchBar /> : null}\n <MiniMap rows={rows} scale={scale} timelineRef={timelineRef} />\n <div className={clsx(styles.traceViewerContent, inert && styles.inert)}>\n <div className={styles.timeline} ref={timelineRef}>\n <div\n style={{\n position: 'relative',\n width: state.timelineWidth,\n minHeight: state.timelineHeight - TIMELINE_PADDING * 2,\n padding: TIMELINE_PADDING,\n paddingBottom: 0,\n }}\n >\n <div\n className={styles.traceNode}\n style={{\n width: state.root.duration * scale || undefined,\n height: timelineHeight - TIMELINE_PADDING * 2,\n }}\n >\n <Markers scale={scale} isLive={isLive} />\n <EventMarkers events={events} root={state.root} scale={scale} />\n <CursorMarker\n dispatch={dispatch}\n events={events}\n memoCacheRef={state.memoCacheRef}\n root={state.root}\n scale={scale}\n scrollSnapshotRef={scrollSnapshotRef}\n spans={spans}\n timelineRef={timelineRef}\n />\n <SpanNodes\n cacheKey={memoCache.get('')}\n cache={memoCache}\n customSpanClassNameFunc={state.customSpanClassNameFunc}\n customSpanEventClassNameFunc={\n state.customSpanEventClassNameFunc\n }\n isLive={isLive}\n root={state.root}\n scale={scale}\n scrollSnapshotRef={scrollSnapshotRef}\n spans={spans}\n />\n {/* Horizontal \"unknown time\" overlay — covers the region to the\n right of the latest known event, indicating data beyond this\n point hasn't been loaded yet. */}\n {knownDurationMs != null &&\n knownDurationMs > 0 &&\n (hasMoreData || isLive) &&\n state.root.duration > 0 &&\n (() => {\n const knownPx = knownDurationMs * scale;\n const totalPx = state.root.duration * scale;\n const unknownWidth = totalPx - knownPx;\n // Only show if the unknown region is meaningfully wide\n if (unknownWidth < 4) return null;\n // Offset ~5% into the unknown region so it doesn't touch spans\n const insetPx = Math.min(unknownWidth * 0.05, 20);\n return (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: knownPx + insetPx,\n width: unknownWidth - insetPx,\n height: '100%',\n pointerEvents: 'none',\n zIndex: 1,\n maskImage:\n 'linear-gradient(to right, transparent 1%, black 3%)',\n WebkitMaskImage:\n 'linear-gradient(to right, transparent 1%, black 3%)',\n background:\n 'repeating-linear-gradient(-45deg, var(--ds-background-200) 0, var(--ds-background-200) 11px, var(--ds-gray-200) 11px, var(--ds-gray-200) 12px)',\n }}\n />\n );\n })()}\n </div>\n </div>\n {footer}\n </div>\n <div className={styles.zoomButtonTraceViewer}>\n <ZoomButton />\n </div>\n </div>\n {withPanel ? (\n <div\n className={clsx(\n styles.spanDetailPanelTraceViewer,\n !state.selected && styles.hidden,\n state.isMobile && styles.mobile\n )}\n >\n <SpanDetailPanel attached />\n </div>\n ) : null}\n </div>\n );\n}\n\nexport function TraceViewerPanel({\n className = '',\n children = null,\n}: {\n className?: string;\n children?: ReactNode;\n}): ReactNode {\n const { state } = useTraceViewer();\n\n if (!state.selected) {\n return children;\n }\n\n return (\n <div\n className={clsx(styles.spanDetailPanelTraceViewer, className)}\n style={\n {\n position: 'relative',\n '--search-height': '0',\n '--search-gap': '0',\n '--map-height': '0',\n '--panel-width': `100%`,\n '--panel-height': `100%`,\n '--height': `100%`,\n '--scrollbar-width': `${state.scrollbarWidth}px`,\n } as CSSProperties\n }\n >\n <SpanDetailPanel />\n </div>\n );\n}\n\nexport function TraceViewer(props: TraceViewerProps): ReactNode {\n return (\n <TraceViewerContextProvider getQuickLinks={props.getQuickLinks} withPanel>\n <TraceViewerTimeline withPanel {...props} />\n </TraceViewerContextProvider>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MutableRefObject, ReactNode } from 'react';\n\nexport type MemoCacheKey = Record<string, never>;\nexport type MemoCache = Map<string, MemoCacheKey>;\n\nexport interface Span {\n name: string;\n kind: number;\n resource: string;\n library: {\n name: string;\n version?: string;\n };\n spanId: string;\n parentSpanId?: string;\n status: {\n code: number;\n };\n traceFlags: number;\n attributes: Record<string, unknown>;\n links: Record<string, unknown>[];\n events: SpanEvent[];\n startTime: [number, number];\n endTime: [number, number];\n duration: [number, number];\n /**\n * The time when the span became active/started executing (optional).\n * If provided and different from startTime, the portion between startTime\n * and activeStartTime will be rendered as a \"queued\" period with different styling.\n */\n activeStartTime?: [number, number];\n}\n\nexport interface SpanEvent {\n name: string;\n timestamp: [number, number];\n attributes: Record<string, unknown>;\n /**\n * Optional custom color for this event marker (workflow-specific feature).\n * If provided, this color will be used for the event marker line/diamond.\n */\n color?: string;\n /**\n * Whether to show a vertical line for this event in the timeline (workflow-specific feature).\n * If false, only the diamond marker on the span will be shown.\n * Defaults to true if not specified.\n */\n showVerticalLine?: boolean;\n}\n\nexport interface Resource {\n name: string;\n attributes: Record<string, string>;\n}\n\nexport interface Trace {\n traceId: string;\n resources?: Resource[];\n spans: Span[];\n rootSpanId?: string;\n}\n\ninterface EveryNode {\n startTime: number;\n endTime: number;\n duration: number;\n /**\n * How deep is this node within the tree\n */\n depth: number;\n /**\n * All direct child nodes of this node\n */\n children: SpanNode[];\n}\n\nexport interface RootNode extends EveryNode {\n /**\n * The depth is always 0 for the root node\n */\n depth: 0;\n}\n\nexport interface SpanNode extends EveryNode {\n /**\n * This original Span that this node is based on\n */\n span: Span;\n /**\n * The immediate parent of this node\n */\n parent: RootNode | SpanNode;\n /**\n * A generated label to use (overrides the span.name) if present\n */\n label?: string;\n /**\n * OTEL events that are present on this span (e.g. TTFB)\n */\n events?: SpanNodeEvent[];\n /**\n * Whether this span originated in Vercel's infrastructure.\n */\n isVercel: boolean;\n /**\n * Whether this span matches the current search filter\n */\n isHighlighted?: boolean;\n /**\n * Whether this span is a placeholder to hint at where user spans\n * would appear if proper instrumentation were available\n */\n isInstrumentationHint?: boolean;\n /**\n * The index of the resource that this node belongs to (used for color)\n */\n resourceIndex: number;\n /**\n * The time when execution actually started (in milliseconds).\n * If present and greater than startTime, represents a \"queued\" period.\n */\n activeStartTime?: number;\n}\n\nexport interface SpanNodeEvent {\n /** A unique key for this event to help with rendering in React */\n key: string;\n /** The timestamp of this event in milliseconds */\n timestamp: number;\n /** The original event model */\n event: SpanEvent;\n}\n\nexport type TraceNode = RootNode | SpanNode;\n\nexport interface VisibleSpan extends SpanNode {\n /**\n * The ref for this span's element in the DOM\n */\n ref?: MutableRefObject<HTMLButtonElement | null>;\n /**\n * The y position of this span (in # of rows)\n */\n row: number;\n /**\n * Whether the CursorMarker is intersecting this span\n */\n isHovered: boolean;\n /**\n * Whether this is the selected span\n */\n isSelected: boolean;\n /**\n * Whether this node is visible (based on its size on screen)\n */\n isVisible: boolean;\n /**\n * Events also need to be able to hold a ref to their element in the DOM\n */\n events?: VisibleSpanEvent[];\n}\n\nexport interface VisibleSpanEvent extends SpanNodeEvent {\n /**\n * The ref for this span's element in the DOM\n */\n ref?: MutableRefObject<HTMLDivElement | null>;\n /**\n * Whether the CursorMarker is intersecting this span\n */\n isHovered: boolean;\n}\n\nexport interface ScrollSnapshot {\n anchorT: number;\n anchorX: number;\n scrollLeft: number;\n scrollTop: number;\n startTime: number;\n endTime: number;\n startRow: number;\n endRow: number;\n scale: number;\n}\n\nexport type WorkerRequest = {\n requestId: number;\n} & (\n | {\n type: 'calculateSpanPositions';\n root: RootNode;\n }\n | {\n type: 'filterSpans';\n root: RootNode;\n filter: string;\n }\n);\n\nexport type WorkerResponse = {\n requestId: number;\n} & (\n | {\n type: 'setRowsResult';\n rows: VisibleSpan[][];\n isEnd: boolean;\n }\n | {\n type: 'updateHighlight';\n matches: Set<string>;\n }\n);\n\n/**\n * Represents one link to a page related to the selected\n * span in the detail panel.\n */\nexport interface QuickLink {\n /** Used as a React key and the user-facing name for the link */\n key: string;\n /** Until this Promise is fulfilled, the row will render with a skeleton for the value. */\n value: Promise<QuickLinkValue>;\n}\n\nexport interface QuickLinkValue {\n /** The visible components for the right side of this link */\n label: ReactNode;\n /** A special suffix to show for this link, defaults to the ExternalLink icon */\n icon?: ReactNode;\n /** The href that this link will open when clicked */\n href: string;\n}\n\nexport type GetQuickLinks = (node: Span) => QuickLink[];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC","sourcesContent":["export const SEARCH_HEIGHT = 40;\nexport const SEARCH_GAP = 8;\nexport const MAP_HEIGHT = 56;\nexport const TIMELINE_PADDING = 8;\nexport const ROW_PADDING = 2;\nexport const ROW_HEIGHT = 24;\nexport const MARKER_HEIGHT = 24;\nexport const MARKER_NOTCH_HEIGHT = 8;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar-width.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/scrollbar-width.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE;IAC/C,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC;IACpC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;IACrC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;IACpD,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"scrollbar-width.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/scrollbar-width.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE;IAC/C,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC;IACpC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;IACrC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;IACpD,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC","sourcesContent":["export const detectScrollbarWidth = (): number => {\n if (!('document' in globalThis)) return 0;\n const size = 400;\n const container = document.createElement('div');\n container.style.width = `${size}px`;\n container.style.height = `${size}px`;\n container.style.overflow = 'scroll';\n document.body.appendChild(container);\n const scrollbarWidth = size - container.scrollWidth;\n container.remove();\n\n return scrollbarWidth;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/timing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,CAGnD;IACC,OAAO,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAU,EAAU,EAAE,CAC9D,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAE3B,MAAM,sBAAsB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;IAC9D,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/timing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,CAGnD;IACC,OAAO,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAU,EAAU,EAAE,CAC9D,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAE3B,MAAM,sBAAsB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;IAC9D,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC","sourcesContent":["import { formatDuration } from '../../../lib/utils';\n\nexport { formatDuration };\n\nexport function getHighResInMs([seconds, nanoseconds]: [\n number,\n number,\n]): number {\n return seconds * 1000 + nanoseconds / 1e6;\n}\n\nexport function getMsInHighRes(ms: number): [number, number] {\n return [Math.floor(ms / 1000), (ms % 1000) * 1000];\n}\n\n/**\n * Formats a duration for timeline display (compact single-unit format).\n * @deprecated Use formatDuration(ms, true) instead.\n */\nexport const formatDurationForTimeline = (ms: number): string =>\n formatDuration(ms, true);\n\nconst timeSelectionFormatter = new Intl.NumberFormat(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n});\n\nexport function formatTimeSelection(ms: number): string {\n if (ms >= 1000) {\n return `${timeSelectionFormatter.format(ms / 1000)}s`;\n }\n return `${timeSelectionFormatter.format(ms)}ms`;\n}\n\n/**\n * Format an epoch-millisecond timestamp as a local wall-clock time.\n * Returns a compact HH:MM:SS.mmm string (24-hour format).\n */\nexport function formatWallClockTime(epochMs: number): string {\n const d = new Date(epochMs);\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n const s = String(d.getSeconds()).padStart(2, '0');\n return `${h}:${m}:${s}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/tree.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n RootNode,\n Span,\n SpanNode,\n SpanNodeEvent,\n Trace,\n TraceNode,\n VisibleSpan,\n} from '../types';\nimport { getHighResInMs, getMsInHighRes } from './timing';\n\nexport const parseTrace = (\n trace: Trace\n): { root: RootNode; map: Record<string, SpanNode> } => {\n const { spans } = trace;\n const root: RootNode = {\n startTime: 0,\n endTime: 0,\n duration: 0,\n depth: 0,\n children: [],\n };\n const map: Record<string, SpanNode> = {};\n\n const resourceIndices = new Map<string, number>();\n const getResourceIndex = (resource: string): number => {\n const existing = resourceIndices.get(resource);\n if (existing) return existing;\n\n const index = resourceIndices.size + 1;\n resourceIndices.set(resource, index);\n return index;\n };\n\n let hasUserSpans = false;\n for (const span of spans) {\n const startTime = getHighResInMs(span.startTime);\n const endTime = getHighResInMs(span.endTime);\n const duration = getHighResInMs(span.duration);\n if (endTime > root.endTime) {\n root.endTime = endTime;\n root.duration = endTime - root.startTime;\n }\n if (root.startTime === 0 || startTime < root.startTime) {\n root.startTime = startTime;\n root.duration = root.endTime - startTime;\n }\n const isVercelResource = span.resource.startsWith('vercel.');\n if (!isVercelResource) {\n hasUserSpans = true;\n }\n\n const isVercel =\n isVercelResource &&\n (span.resource !== 'vercel.serverless-runtime' ||\n !('http.method' in span.attributes));\n\n const resourceIndex = isVercel ? 0 : getResourceIndex(span.resource);\n\n let label: string | undefined;\n if (isVercel) {\n label = `▲ ${span.name}`;\n }\n map[span.spanId] = {\n parent: null as unknown as SpanNode,\n startTime,\n endTime,\n duration,\n span,\n depth: 0,\n label,\n events: parseEvents(span),\n isVercel,\n children: [],\n resourceIndex,\n // Pass through activeStartTime if present (for showing queued period)\n activeStartTime: span.activeStartTime\n ? getHighResInMs(span.activeStartTime)\n : undefined,\n };\n }\n\n const addTo = (node: SpanNode, parentId?: string): void => {\n let parent: TraceNode | undefined;\n if (parentId) {\n parent = map[parentId];\n if (!parent) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Could not find parent span with spanId: %s', parentId);\n }\n parent = root;\n }\n } else {\n parent = root;\n }\n node.parent = parent;\n parent.children.push(node);\n };\n\n const updateDepth = (node: TraceNode): void => {\n if ('parent' in node) {\n node.depth = node.parent.depth + 1;\n }\n for (const child of node.children) {\n updateDepth(child);\n }\n };\n\n let hintIdCounter = 1;\n const addInstrumentationHint = (node: TraceNode, name: string): boolean => {\n if ('parent' in node) {\n if (node.span.name === name) {\n let waitUntilStart = node.endTime;\n // Detect the parent that's most likely to be at the bottom of the UI\n const findParent = (span: SpanNode): SpanNode => {\n if (!span.children.length) {\n if (span.span.name === 'waitUntil') {\n waitUntilStart = span.startTime;\n return span.parent as SpanNode;\n }\n return span;\n }\n\n return (\n span.children\n .map(findParent)\n .sort((a, b) => a.duration - b.duration)[0] || span\n );\n };\n const parent = findParent(node);\n\n const spanId = `instrumentation-hint-${hintIdCounter++}`;\n const offset = node.duration * 0.05;\n const startTime = node.startTime + offset;\n const endTime = Math.max(\n startTime + offset,\n Math.min(waitUntilStart - node.duration * 0.01, node.endTime - offset)\n );\n const duration = endTime - startTime;\n const hint: SpanNode = {\n parent,\n startTime,\n endTime,\n duration,\n span: {\n spanId,\n name: 'Add your spans here',\n resource: '',\n kind: 0,\n library: {\n name: '',\n },\n status: {\n code: 200,\n },\n traceFlags: 0,\n attributes: {},\n links: [],\n events: [],\n startTime: getMsInHighRes(startTime),\n endTime: getMsInHighRes(endTime),\n duration: getMsInHighRes(duration),\n },\n depth: node.depth + 1,\n isVercel: false,\n isInstrumentationHint: true,\n children: [],\n resourceIndex: 1,\n };\n parent.children.push(hint);\n map[spanId] = hint;\n return true;\n }\n }\n for (const child of node.children) {\n if (addInstrumentationHint(child, name)) return true;\n }\n return false;\n };\n\n // Create tree by matching nodes to their parents\n for (const node of Object.values(map)) {\n addTo(node, node.span.parentSpanId);\n }\n\n // Adjust depth of each node now that the tree is fully constructed\n updateDepth(root);\n\n // Add hints in the places where user spans would appear\n if (!hasUserSpans) {\n for (const name of [\n 'Invoke Function',\n 'Invoke Middleware',\n 'Vercel Runtime',\n ]) {\n if (addInstrumentationHint(root, name)) break;\n }\n }\n\n return { root, map };\n};\n\nconst parseEvents = (span: Span): SpanNodeEvent[] | undefined => {\n if (!span.events.length) return;\n\n const keyPrefix = `${span.spanId}:ev`;\n\n return span.events\n .map<SpanNodeEvent>((event, index) => ({\n key: `${keyPrefix}${index}`,\n timestamp: getHighResInMs(event.timestamp),\n event,\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n};\n\n/**\n * Adds a node to a row and attempts to find the ideal placement\n * within an existing row, creating a new one if necessary\n */\nexport const addToRow = (\n placed: VisibleSpan[][],\n node: VisibleSpan,\n precision: number\n): void => {\n const parent = node.parent as VisibleSpan | undefined;\n for (let y = (parent?.row || -1) + 1; ; ++y) {\n let row = placed[y];\n if (!row) {\n row = [];\n placed.push(row);\n } else if (\n !row.every(\n ({ startTime, endTime }) =>\n startTime + precision > node.endTime ||\n endTime - precision < node.startTime\n )\n ) {\n continue;\n }\n node.row = y;\n row.push(node);\n break;\n }\n};\n\nexport const spanVisiblityHelper = (\n node: TraceNode,\n scale: number,\n visible: VisibleSpan[]\n): void => {\n if ('parent' in node) {\n const n = node as VisibleSpan;\n n.row = -1;\n // Always make spans visible regardless of width\n n.isVisible = true;\n n.isHovered = false;\n if (!n.isVisible) return;\n\n visible.push(n);\n }\n\n for (const child of node.children) {\n spanVisiblityHelper(child, scale, visible);\n }\n};\n\nexport const adjustSpanVisibility = (\n span: VisibleSpan,\n _scale: number\n): boolean => {\n // Always make spans visible regardless of width\n span.isVisible = true;\n span.isHovered = false;\n\n return span.isVisible;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-immediate-style.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-immediate-style.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAU5C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAgB,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QACtB,oEAAoE;QACpE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"use-immediate-style.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-immediate-style.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAU5C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAgB,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QACtB,oEAAoE;QACpE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,CAAC","sourcesContent":["'use client';\n\nimport type { CSSProperties, MutableRefObject } from 'react';\nimport { useCallback, useRef } from 'react';\n\ntype SetStyle = (propertyName: string, value: string | undefined) => void;\n\ninterface ImmediateStyle {\n setStyle: SetStyle;\n styleRef: MutableRefObject<CSSProperties>;\n style: CSSProperties;\n}\n\n/**\n * Update an element's style without forcing renders, but in a way that is still\n * safe if the element re-renders for another reason.\n * @returns The current style & a method to update the style\n */\nexport function useImmediateStyle(\n ref: MutableRefObject<HTMLElement | null>\n): ImmediateStyle {\n const styleRef = useRef<CSSProperties>({});\n const setStyle = useCallback<SetStyle>(\n (propertyName, value) => {\n // @ts-expect-error typeof keyof CSSProperties is too big of a union\n styleRef.current[propertyName] = value;\n if (!ref.current) return;\n if (!value) {\n ref.current.style.removeProperty(propertyName);\n return;\n }\n ref.current.style.setProperty(propertyName, value);\n },\n [ref]\n );\n\n return { setStyle, styleRef, style: { ...styleRef.current } };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-streaming-spans.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-streaming-spans.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO5C,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAW9C,SAAS,cAAc;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,gBAA2B,EAC3B,WAAW,GAAG,KAAK,EAMnB,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IAC7C,MAAM,EACJ,IAAI,EACJ,MAAM,EAAE,SAAS,EACjB,KAAK,EACL,WAAW,EACX,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,YAAY,GACb,GAAG,KAAK,CAAC;IACV,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkB,cAAc,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GACnC,QAAQ,CAAgB,cAAc,CAAC,CAAC;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACrC,QAAQ,CAAqB,cAAc,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,MAAM,CAAe,SAAS,CAAC,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,gBAAgB,EAAE,MAAM;YAAE,OAAO;QAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa;oBAAE,SAAS;gBACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACnC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,QAAQ,CAAC;YACP,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC/D,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;QACrC,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAQ,EAAE;YAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAsB,CAAC;YAE1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS;wBAAE,OAAO;oBAC1C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gCACvB,sEAAsE;gCACtE,8BAA8B;gCAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;4BAC3D,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,MAAM;gBACR,CAAC;gBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS;wBAAE,OAAO;oBAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;oBACzB,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACnB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;4BAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gCACvB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACpD,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa;oCAAE,SAAS;gCACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gCACnC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACjD,CAAC;wBACH,CAAC;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC;wBACP,IAAI,EAAE,aAAa;qBACpB,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD;oBACE,MAAM;YACV,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAkB;YAC7B,SAAS;YACT,IAAI,EAAE,wBAAwB;YAC9B,IAAI;SACL,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE5B,eAAe,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,OAAO;wBACL,GAAG,IAAI;qBACR,CAAC;gBACJ,CAAC,CAAC,CACH,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,SAAS,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;YACjC,MAAM,aAAa,GAAkB;gBACnC,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,IAAI;gBACJ,MAAM;aACP,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAkB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC;wBAAE,SAAS;oBACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC;QACtC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC;QACzC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAsB,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,MAAM,GAAG,IAAI,CAAC;YAEd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,EACtE,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,GAAI,CAAC;gBAC5B,IAAI,KAAK,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAC;oBAClC,MAAM,GAAG,KAAK,CAAC;oBACf,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACjB,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAiB,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG;oBAAE,SAAS;gBAEnB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAEjD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAEzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,CAAC;wBACD,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF;;WAEG;QACH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;YAC1C,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAExB,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACjC,CAAC;iBAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAU,EAAE;YAChD,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAExB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACtC,SAAS,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAChD,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;YAChD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAElD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC;YAEvC,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CACvE,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,GAAS,EAAE;YAChC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;YAC5C,MAAM,OAAO,GAAG,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;YACnC,MAAM,QAAQ,GACZ,CAAC,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;gBAC9C,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;YAC7B,MAAM,MAAM,GACV,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;YAEpE,QAAQ,GAAG;gBACT,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,SAAS;gBACT,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK;gBAC9C,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG,KAAK;gBAC9D,QAAQ;gBACR,MAAM;gBACN,KAAK;aACN,CAAC;YACF,iBAAiB,CAAC,OAAO,GAAG,QAAQ,CAAC;YAErC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,GAAI,CAAC;gBACjC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,WAAW,GAAG,KAAK,CAAC;gBACpB,cAAc,EAAE,CAAC;YACnB,CAAC;YACD,UAAU,EAAE,CAAC;YACb,MAAM,OAAO,GAAkB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG;oBAAE,SAAS;gBAEnB,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,QAAQ;wBAAE,SAAS;oBAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;gBACxD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;gBAC9C,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAED,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QAEV,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QACF,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE;gBAAE,OAAO;YAEvC,WAAW,GAAG,IAAI,CAAC;YACnB,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,iBAAiB;QACjB,WAAW;QACX,aAAa;QACb,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,IAA6B,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3C,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,WAAW;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,SAAS,cAAc,CAAI,KAAQ;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO;QAE7B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpB,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"use-streaming-spans.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-streaming-spans.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { useTraceViewer } from '../context';\nimport type {\n VisibleSpan,\n VisibleSpanEvent,\n WorkerRequest,\n WorkerResponse,\n} from '../types';\nimport {\n MARKER_HEIGHT,\n ROW_HEIGHT,\n ROW_PADDING,\n TIMELINE_PADDING,\n} from './constants';\nimport { adjustSpanVisibility } from './tree';\n\ntype UpdateFilter = (filter: string) => void;\n\ninterface QueuedSpan {\n /** The distance from this span to the viewport */\n d: number;\n /** The span that's waiting to be rendered */\n span: VisibleSpan;\n}\n\nfunction emptyArrayInit<T>(): T[] {\n return [];\n}\n\nexport const useStreamingSpans = (\n highlightedSpans?: string[],\n eagerRender = false\n): {\n rows: VisibleSpan[][];\n spans: VisibleSpan[];\n events: VisibleSpanEvent[];\n scale: number;\n} => {\n const { state, dispatch } = useTraceViewer();\n const {\n root,\n filter: ctxFilter,\n scale,\n timelineRef,\n timelineWidth,\n spanMap,\n scrollSnapshotRef,\n selected,\n memoCacheRef,\n } = state;\n const timelineHeight = useStableValue(state.timelineHeight);\n const counterRef = useRef(0);\n const [rows, setRows] = useState<VisibleSpan[][]>(emptyArrayInit);\n const [visibleSpans, setVisibleSpans] =\n useState<VisibleSpan[]>(emptyArrayInit);\n const [visibleEvents, setVisibleEvents] =\n useState<VisibleSpanEvent[]>(emptyArrayInit);\n const [resultScale, setResultScale] = useState(-1);\n\n const updateFilterRef = useRef<UpdateFilter>(undefined);\n useEffect(() => updateFilterRef.current?.(ctxFilter), [ctxFilter]);\n\n useEffect(() => {\n if (!highlightedSpans?.length) return;\n\n for (const row of rows) {\n for (const node of row) {\n const isHighlighted = highlightedSpans.includes(node.span.spanId);\n if (node.isHighlighted === isHighlighted) continue;\n node.isHighlighted = isHighlighted;\n memoCacheRef.current.set(node.span.spanId, {});\n }\n }\n dispatch({\n type: 'forceRender',\n });\n }, [rows, highlightedSpans, dispatch, memoCacheRef]);\n\n useEffect(() => {\n if (!root.startTime) return;\n\n const worker = new Worker(new URL('../worker', import.meta.url), {\n type: 'module',\n });\n let requestId = ++counterRef.current;\n const onMessage = (event: MessageEvent): void => {\n const data = event.data as WorkerResponse;\n\n switch (data.type) {\n case 'setRowsResult': {\n if (data?.requestId !== requestId) return;\n if (data.isEnd) {\n for (const row of data.rows) {\n for (const node of row) {\n // Ensure that we remap to the original span to reduce memory overhead\n // and confusion down the line\n node.span = spanMap[node.span.spanId]?.span ?? node.span;\n }\n }\n }\n setRows(data.rows);\n break;\n }\n case 'updateHighlight': {\n if (data?.requestId !== requestId) return;\n const { matches } = data;\n setRows((previous) => {\n for (const row of previous) {\n for (const node of row) {\n const isHighlighted = matches.has(node.span.spanId);\n if (node.isHighlighted === isHighlighted) continue;\n node.isHighlighted = isHighlighted;\n memoCacheRef.current.set(node.span.spanId, {});\n }\n }\n return previous;\n });\n dispatch({\n type: 'forceRender',\n });\n break;\n }\n default:\n break;\n }\n };\n worker.addEventListener('message', onMessage);\n\n const message: WorkerRequest = {\n requestId,\n type: 'calculateSpanPositions',\n root,\n };\n worker.postMessage(message);\n\n updateFilterRef.current = (_filter) => {\n const filter = _filter.trim().toLocaleLowerCase();\n if (!filter) {\n setRows((previous) =>\n previous.map((row) =>\n row.map((node) => {\n node.isHighlighted = undefined;\n return {\n ...node,\n };\n })\n )\n );\n return;\n }\n\n requestId = ++counterRef.current;\n const filterMessage: WorkerRequest = {\n type: 'filterSpans',\n requestId,\n root,\n filter,\n };\n worker.postMessage(filterMessage);\n };\n\n return () => {\n worker.terminate();\n };\n }, [root, spanMap, dispatch, memoCacheRef]);\n\n useEffect(() => {\n if (!rows.length) return;\n\n if (eagerRender) {\n const visible: VisibleSpan[] = [];\n const events: VisibleSpanEvent[] = [];\n for (const row of rows) {\n for (const span of row) {\n if (!adjustSpanVisibility(span, scale)) continue;\n visible.push(span);\n if (span.events) {\n events.push(...span.events);\n }\n }\n }\n setVisibleSpans(visible);\n setVisibleEvents(events);\n setResultScale(scale);\n return;\n }\n\n const $timeline = timelineRef.current;\n let snapshot = scrollSnapshotRef.current;\n let hasScrolled = false;\n let isDone = false;\n let maxD = 0;\n let currentD = 0;\n const overscan = Math.max(500, timelineWidth * 0.5);\n const queue = new Array<QueuedSpan[] | null>(rows.length).fill(null);\n\n const buildQueue = (): void => {\n isDone = true;\n\n const lastRow = Math.min(\n 1 + currentD + Math.ceil(snapshot?.endRow ?? Number.POSITIVE_INFINITY),\n rows.length\n );\n for (let i = lastRow; i--; ) {\n if (queue[i]) continue;\n const rowDelta = getRowDelta(i);\n if (Math.abs(rowDelta) > currentD) {\n isDone = false;\n if (rowDelta > 0) {\n continue;\n } else {\n break;\n }\n }\n\n const queueRow: QueuedSpan[] = [];\n const row = rows[i];\n if (!row) continue;\n\n for (const span of row) {\n if (!adjustSpanVisibility(span, scale)) continue;\n\n const d = getDistance(span);\n maxD = Math.max(d, maxD);\n\n queueRow.push({\n d,\n span,\n });\n }\n\n queue[i] = queueRow;\n }\n };\n\n /**\n * This returns the signed distance between the row and the targeted rows\n */\n const getRowDelta = (row: number): number => {\n if (!snapshot) return 0;\n\n if (row < snapshot.startRow) {\n return row - snapshot.startRow;\n } else if (row > snapshot.endRow) {\n return row - snapshot.endRow;\n }\n\n return 0;\n };\n\n const getDistance = (span: VisibleSpan): number => {\n if (!snapshot) return 0;\n\n let xDistance = 0;\n if (span.endTime < snapshot.startTime) {\n xDistance = snapshot.startTime - span.endTime;\n } else if (span.startTime > snapshot.endTime) {\n xDistance = span.startTime - snapshot.endTime;\n }\n\n const yDistance = Math.abs(getRowDelta(span.row));\n\n if (!xDistance && !yDistance) return 0;\n\n return Math.sqrt(\n (xDistance / scale) ** 2 + (yDistance * ROW_HEIGHT + ROW_PADDING) ** 2\n );\n };\n\n const updateSnapshot = (): void => {\n if (!$timeline) return;\n\n const { scrollLeft, scrollTop } = $timeline;\n const anchorX = 0;\n const anchorT = scrollLeft / scale;\n const startRow =\n (scrollTop - MARKER_HEIGHT - TIMELINE_PADDING) /\n (ROW_HEIGHT + ROW_PADDING);\n const endRow =\n startRow + Math.ceil(timelineHeight / (ROW_HEIGHT + ROW_PADDING));\n\n snapshot = {\n anchorT,\n anchorX,\n scrollLeft,\n scrollTop,\n startTime: root.startTime + scrollLeft / scale,\n endTime: root.startTime + (scrollLeft + timelineWidth) / scale,\n startRow,\n endRow,\n scale,\n };\n scrollSnapshotRef.current = snapshot;\n\n for (let i = queue.length; i--; ) {\n queue[i] = null;\n }\n };\n\n let nextFrame = 0;\n const onFrame = (): void => {\n if (hasScrolled || !snapshot) {\n hasScrolled = false;\n updateSnapshot();\n }\n buildQueue();\n const visible: VisibleSpan[] = [];\n const events: VisibleSpanEvent[] = [];\n for (const row of queue) {\n if (!row) continue;\n\n for (const { d, span } of row) {\n if (d > currentD) continue;\n visible.push(span);\n if (span.events) {\n events.push(...span.events);\n }\n }\n }\n\n if (currentD < overscan && (!isDone || currentD < maxD)) {\n currentD = Math.min(overscan, currentD + 100);\n nextFrame = requestAnimationFrame(onFrame);\n }\n\n setVisibleSpans(visible);\n setVisibleEvents(events);\n setResultScale(scale);\n };\n onFrame();\n\n let ignoreT = Date.now();\n const onWheel = (event: WheelEvent): void => {\n if (event.ctrlKey || event.metaKey) {\n ignoreT = Date.now();\n }\n };\n $timeline?.addEventListener('wheel', onWheel);\n\n const onScroll = (): void => {\n if (Date.now() - ignoreT <= 50) return;\n\n hasScrolled = true;\n cancelAnimationFrame(nextFrame);\n nextFrame = requestAnimationFrame(onFrame);\n };\n $timeline?.addEventListener('scroll', onScroll);\n\n return () => {\n cancelAnimationFrame(nextFrame);\n $timeline?.removeEventListener('wheel', onWheel);\n $timeline?.removeEventListener('scroll', onScroll);\n };\n }, [\n rows,\n root,\n scale,\n scrollSnapshotRef,\n timelineRef,\n timelineWidth,\n timelineHeight,\n eagerRender,\n ]);\n\n useEffect(() => {\n if (!selected) return;\n\n let span: VisibleSpan | undefined;\n for (const x of visibleSpans) {\n if (x.span.spanId === selected.span.spanId) {\n span = x;\n break;\n }\n }\n\n const $span = span?.ref?.current;\n if (!span || !$span) return;\n\n span.isSelected = true;\n $span.setAttribute('data-selected', '');\n\n return () => {\n span.isSelected = false;\n $span.removeAttribute('data-selected');\n };\n }, [visibleSpans, selected]);\n\n return {\n rows,\n spans: visibleSpans,\n events: visibleEvents,\n scale: resultScale,\n };\n};\n\n/**\n * This hook keeps returning the same value until the current value\n * has been stable for a few frames in a row\n */\nfunction useStableValue<T>(value: T): T {\n const [cached, setCached] = useState(value);\n\n useEffect(() => {\n if (cached === value) return;\n\n let frameCount = 0;\n let nextFrame = 0;\n const onFrame = (): void => {\n if (++frameCount <= 3) {\n nextFrame = requestAnimationFrame(onFrame);\n return;\n }\n\n setCached(value);\n };\n onFrame();\n\n return () => {\n cancelAnimationFrame(nextFrame);\n };\n }, [cached, value]);\n\n return cached;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-trackpad-zoom.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-trackpad-zoom.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAO1C,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACjC,YAAY,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO;YAE7C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAE1B,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxB,KAAK,UAAU,CAAC,cAAc;oBAC5B,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC;oBAC5B,MAAM;gBACR,KAAK,UAAU,CAAC,cAAc;oBAC5B,KAAK,IAAI,EAAE,CAAC;oBACZ,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;YAED,YAAY,IAAI,KAAK,CAAC;YACtB,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"use-trackpad-zoom.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/util/use-trackpad-zoom.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAO1C,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACjC,YAAY,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO;YAE7C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAE1B,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxB,KAAK,UAAU,CAAC,cAAc;oBAC5B,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC;oBAC5B,MAAM;gBACR,KAAK,UAAU,CAAC,cAAc;oBAC5B,KAAK,IAAI,EAAE,CAAC;oBACZ,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;YAED,YAAY,IAAI,KAAK,CAAC;YACtB,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC","sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\n/**\n * The delta is positive while zooming in, negative while zooming out\n */\nexport type TrackpadZoomHandler = (delta: number) => void;\n\nexport function useTrackpadZoom(handler: TrackpadZoomHandler): void {\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n useEffect(() => {\n let pendingDelta = 0;\n let nextFrame = 0;\n const onFrame = (): void => {\n handlerRef.current(pendingDelta);\n pendingDelta = 0;\n };\n\n const onWheel = (event: WheelEvent): void => {\n if (!event.ctrlKey && !event.metaKey) return;\n\n event.preventDefault();\n let delta = -event.deltaY;\n\n switch (event.deltaMode) {\n case WheelEvent.DOM_DELTA_PAGE:\n delta *= window.innerHeight;\n break;\n case WheelEvent.DOM_DELTA_LINE:\n delta *= 20;\n break;\n default:\n break;\n }\n\n pendingDelta += delta;\n cancelAnimationFrame(nextFrame);\n nextFrame = requestAnimationFrame(onFrame);\n };\n\n window.addEventListener('wheel', onWheel, { passive: false });\n\n return () => {\n window.removeEventListener('wheel', onWheel);\n cancelAnimationFrame(nextFrame);\n };\n }, []);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/components/trace-viewer/worker.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n RootNode,\n Span,\n TraceNode,\n VisibleSpan,\n WorkerRequest,\n WorkerResponse,\n} from './types';\nimport { addToRow } from './util/tree';\n\n// The most recent requestId\nlet requestId = 0;\n\nself.addEventListener('message', (event) => {\n const data = event.data as WorkerRequest;\n requestId = Math.max(requestId, data?.requestId || 0);\n\n switch (data.type) {\n case 'calculateSpanPositions':\n calculateSpanPositions(data.root);\n break;\n case 'filterSpans':\n filterSpans(data.root, data.filter);\n break;\n default:\n break;\n }\n});\n\nconst positionHelper = (node: TraceNode, pending: VisibleSpan[]): void => {\n if ('parent' in node) {\n const n = node as VisibleSpan;\n n.row = -1;\n n.isVisible = true;\n pending.push(n);\n }\n\n const sortedChildren = node.children\n .slice()\n .sort((a, b) => a.startTime - b.startTime || b.duration - a.duration);\n for (const child of sortedChildren) {\n positionHelper(child, pending);\n }\n};\n\nconst calculateSpanPositions = (root: RootNode): void => {\n const responseId = requestId;\n const placed: VisibleSpan[][] = [];\n const pending: VisibleSpan[] = [];\n\n positionHelper(root, pending);\n\n let lastFlushT = Date.now() - 10;\n let lastFlushC = -64;\n let count = 0;\n const flush = (): void => {\n for (const row of placed) {\n row.sort((a, b) => a.startTime - b.startTime);\n }\n const message: WorkerResponse = {\n requestId: responseId,\n type: 'setRowsResult',\n rows: placed,\n isEnd: !pending.length,\n };\n postMessage(message);\n lastFlushT = Date.now();\n lastFlushC = count;\n };\n\n while (true) {\n const node = pending.shift();\n if (!node) {\n flush();\n return;\n }\n addToRow(placed, node, 0.001);\n ++count;\n if (Date.now() - lastFlushT >= 15 || count - lastFlushC >= 256) {\n flush();\n }\n }\n};\n\nconst ATTR_FILTER_REGEX = /(?<=^|\\s)(?<pair>(?<key>[\\w.]+):(?<value>\\S*))/g;\n\nconst filterSpans = (root: RootNode, filter: string): void => {\n const responseId = requestId;\n\n const matches = new Set<string>();\n\n const name = filter\n .replace(ATTR_FILTER_REGEX, '')\n .replace(/\\s{2,}/g, ' ')\n .trim();\n const attrs: [string, string][] = [];\n for (const m of filter.matchAll(ATTR_FILTER_REGEX)) {\n const { key = '', value = '' } = m.groups || {};\n attrs.push([key, value.toLocaleLowerCase()]);\n }\n\n const match = (span: Span): boolean => {\n const nameMatch =\n span.name.toLocaleLowerCase().includes(name) ||\n span.spanId.toLocaleLowerCase().includes(name);\n if (!nameMatch) return false;\n // TODO: support resource attribute filtering\n return attrs.every(([key, value]) => {\n const v = span.attributes[key];\n if (!v) return false;\n return String(v).toLocaleLowerCase().includes(value);\n });\n };\n\n const helper = (node: TraceNode): void => {\n for (const child of node.children) {\n if (match(child.span)) {\n matches.add(child.span.spanId);\n }\n helper(child);\n }\n };\n helper(root);\n\n const message: WorkerResponse = {\n requestId: responseId,\n type: 'updateHighlight',\n matches,\n };\n postMessage(message);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/components/ui/alert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,aAAa,GAAG,GAAG,CACvB,mIAAmI,EACnI;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,WAAW,EACT,sEAAsE;SACzE;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3C,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAC,CAAC;AACH,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,KACpE,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/components/ui/alert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,aAAa,GAAG,GAAG,CACvB,mIAAmI,EACnI;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,WAAW,EACT,sEAAsE;SACzE;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3C,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAC,CAAC;AACH,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,KACpE,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4',\n {\n variants: {\n variant: {\n default: '',\n destructive:\n 'border-red-400 text-red-900 dark:border-red-700 [&>svg]:text-red-900',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 font-medium leading-none tracking-tight', className)}\n {...props}\n />\n));\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAG3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,GACT,CACH,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAClC,KAAK,GACT,CACH,CAAC,CAAC;AACH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACnE,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAG3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,GACT,CACH,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAClC,KAAK,GACT,CACH,CAAC,CAAC;AACH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACnE,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,GACZ,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border shadow-sm', className)}\n {...props}\n />\n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n));\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'text-2xl font-semibold leading-none tracking-tight',\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm', className)}\n style={{ color: 'var(--ds-gray-900)' }}\n {...props}\n />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n));\nCardFooter.displayName = 'CardFooter';\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n"]}
@@ -3,6 +3,16 @@
3
3
  * Exported so that parent components (e.g., AttributePanel) can provide the handler.
4
4
  */
5
5
  export declare const StreamClickContext: import("react").Context<((streamId: string) => void) | undefined>;
6
+ /**
7
+ * Context for passing a decrypt handler down to DataInspector instances.
8
+ * When provided, encrypted markers become clickable buttons that trigger decryption.
9
+ */
10
+ export type DecryptClickContextValue = {
11
+ onDecrypt: () => void;
12
+ isDecrypting: boolean;
13
+ };
14
+ export declare const DecryptClickContext: import("react").Context<DecryptClickContextValue | undefined>;
15
+ export declare const RunClickContext: import("react").Context<((runId: string) => void) | undefined>;
6
16
  export interface DataInspectorProps {
7
17
  /** The data to inspect */
8
18
  data: unknown;
@@ -12,6 +22,12 @@ export interface DataInspectorProps {
12
22
  name?: string;
13
23
  /** Callback when a stream reference is clicked */
14
24
  onStreamClick?: (streamId: string) => void;
25
+ /** Callback when a run reference is clicked */
26
+ onRunClick?: (runId: string) => void;
27
+ /** Callback when an encrypted marker is clicked (triggers decryption) */
28
+ onDecrypt?: () => void;
29
+ /** Whether decryption is currently in progress */
30
+ isDecrypting?: boolean;
15
31
  }
16
- export declare function DataInspector({ data, expandLevel, name, onStreamClick, }: DataInspectorProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function DataInspector({ data, expandLevel, name, onStreamClick, onRunClick, onDecrypt, isDecrypting, }: DataInspectorProps): import("react/jsx-runtime").JSX.Element;
17
33
  //# sourceMappingURL=data-inspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-inspector.d.ts","sourceRoot":"","sources":["../../../src/components/ui/data-inspector.tsx"],"names":[],"mappings":"AAqEA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sCACjB,MAAM,KAAK,IAAI,cACjB,CAAC;AAwJb,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,WAAe,EACf,IAAI,EACJ,aAAa,GACd,EAAE,kBAAkB,2CAsCpB"}
1
+ {"version":3,"file":"data-inspector.d.ts","sourceRoot":"","sources":["../../../src/components/ui/data-inspector.tsx"],"names":[],"mappings":"AAuFA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sCACjB,MAAM,KAAK,IAAI,cACjB,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,+DAEpB,CAAC;AAEb,eAAO,MAAM,eAAe,mCACjB,MAAM,KAAK,IAAI,cACd,CAAC;AA0Qb,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,WAAe,EACf,IAAI,EACJ,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAoB,GACrB,EAAE,kBAAkB,2CAsDpB"}