@workflow/web-shared 4.1.2 → 4.1.4
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.
- package/dist/components/error-boundary.js.map +1 -1
- package/dist/components/event-list-view.js.map +1 -1
- package/dist/components/hook-actions.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/run-trace-view.js.map +1 -1
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +2 -4
- package/dist/components/sidebar/attribute-panel.js.map +1 -1
- package/dist/components/sidebar/conversation-view.js.map +1 -1
- package/dist/components/sidebar/copyable-data-block.js.map +1 -1
- package/dist/components/sidebar/detail-card.js.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
- package/dist/components/sidebar/entity-detail-panel.js +15 -14
- package/dist/components/sidebar/entity-detail-panel.js.map +1 -1
- package/dist/components/sidebar/events-list.js.map +1 -1
- package/dist/components/sidebar/resolve-hook-modal.js.map +1 -1
- package/dist/components/stream-viewer.js.map +1 -1
- package/dist/components/trace-viewer/components/map.js.map +1 -1
- package/dist/components/trace-viewer/components/markers.js.map +1 -1
- package/dist/components/trace-viewer/components/node.js.map +1 -1
- package/dist/components/trace-viewer/components/search-input.js.map +1 -1
- package/dist/components/trace-viewer/components/search.js.map +1 -1
- package/dist/components/trace-viewer/components/span-content.js.map +1 -1
- package/dist/components/trace-viewer/components/span-detail-panel.js.map +1 -1
- package/dist/components/trace-viewer/components/span-segments.js.map +1 -1
- package/dist/components/trace-viewer/components/span-strategies.js.map +1 -1
- package/dist/components/trace-viewer/components/ui.js.map +1 -1
- package/dist/components/trace-viewer/components/zoom-button.js.map +1 -1
- package/dist/components/trace-viewer/components/zoom-icons.js.map +1 -1
- package/dist/components/trace-viewer/context.js.map +1 -1
- package/dist/components/trace-viewer/index.js.map +1 -1
- package/dist/components/trace-viewer/trace-viewer.js.map +1 -1
- package/dist/components/trace-viewer/types.js.map +1 -1
- package/dist/components/trace-viewer/util/constants.js.map +1 -1
- package/dist/components/trace-viewer/util/scrollbar-width.js.map +1 -1
- package/dist/components/trace-viewer/util/timing.js.map +1 -1
- package/dist/components/trace-viewer/util/tree.js.map +1 -1
- package/dist/components/trace-viewer/util/use-immediate-style.js.map +1 -1
- package/dist/components/trace-viewer/util/use-streaming-spans.js.map +1 -1
- package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +1 -1
- package/dist/components/trace-viewer/worker.js.map +1 -1
- package/dist/components/ui/alert.js.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/data-inspector.d.ts.map +1 -1
- package/dist/components/ui/data-inspector.js +2 -6
- package/dist/components/ui/data-inspector.js.map +1 -1
- package/dist/components/ui/decrypt-button.js.map +1 -1
- package/dist/components/ui/error-card.js.map +1 -1
- package/dist/components/ui/error-stack-block.js.map +1 -1
- package/dist/components/ui/inspector-theme.js.map +1 -1
- package/dist/components/ui/load-more-button.js.map +1 -1
- package/dist/components/ui/menu-dropdown.js.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/spinner.js.map +1 -1
- package/dist/components/ui/timestamp-tooltip.js.map +1 -1
- package/dist/components/workflow-trace-view.js.map +1 -1
- package/dist/components/workflow-traces/event-colors.js.map +1 -1
- package/dist/components/workflow-traces/trace-colors.js.map +1 -1
- package/dist/components/workflow-traces/trace-span-construction.js.map +1 -1
- package/dist/components/workflow-traces/trace-time-utils.js.map +1 -1
- package/dist/hooks/use-dark-mode.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/event-analysis.js.map +1 -1
- package/dist/lib/event-materialization.js.map +1 -1
- package/dist/lib/hydration.js.map +1 -1
- package/dist/lib/toast.js.map +1 -1
- package/dist/lib/trace-builder.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/components/sidebar/attribute-panel.tsx +2 -7
- package/src/components/sidebar/entity-detail-panel.tsx +95 -90
- package/src/components/ui/data-inspector.tsx +2 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-inspector.js","sourceRoot":"","sources":["../../../src/components/ui/data-inspector.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-inspector.js","sourceRoot":"","sources":["../../../src/components/ui/data-inspector.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\n/**\n * Reusable data inspector component built on react-inspector.\n *\n * All data rendering in the o11y UI should use this component to ensure\n * consistent theming, custom type handling (StreamRef, ClassInstanceRef),\n * and expand behavior.\n */\n\nimport { Lock } from 'lucide-react';\nimport { createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { Spinner } from './spinner';\nimport {\n ObjectInspector,\n ObjectLabel,\n ObjectName,\n ObjectRootLabel,\n ObjectValue,\n} from 'react-inspector';\nimport { useDarkMode } from '../../hooks/use-dark-mode';\nimport { ENCRYPTED_DISPLAY_NAME } from '../../lib/hydration';\nimport {\n type InspectorThemeExtended,\n inspectorThemeDark,\n inspectorThemeExtendedDark,\n inspectorThemeExtendedLight,\n inspectorThemeLight,\n} from './inspector-theme';\n\n// ---------------------------------------------------------------------------\n// StreamRef / ClassInstanceRef type detection\n// (inline to avoid circular deps with hydration module)\n// ---------------------------------------------------------------------------\n\nconst STREAM_REF_TYPE = '__workflow_stream_ref__';\nconst CLASS_INSTANCE_REF_TYPE = '__workflow_class_instance_ref__';\n\ninterface StreamRef {\n __type: typeof STREAM_REF_TYPE;\n streamId: string;\n}\n\nfunction isStreamRef(value: unknown): value is StreamRef {\n return (\n value !== null &&\n typeof value === 'object' &&\n '__type' in value &&\n (value as Record<string, unknown>).__type === STREAM_REF_TYPE\n );\n}\n\nfunction isClassInstanceRef(value: unknown): value is {\n __type: string;\n className: string;\n classId: string;\n data: unknown;\n} {\n return (\n value !== null &&\n typeof value === 'object' &&\n '__type' in value &&\n (value as Record<string, unknown>).__type === CLASS_INSTANCE_REF_TYPE\n );\n}\n\n// ---------------------------------------------------------------------------\n// Stream click context (passed through from the panel)\n// ---------------------------------------------------------------------------\n\n/**\n * Context for passing stream click handlers down to DataInspector instances.\n * Exported so that parent components (e.g., AttributePanel) can provide the handler.\n */\nexport const StreamClickContext = createContext<\n ((streamId: string) => void) | undefined\n>(undefined);\n\n/**\n * Context for passing a decrypt handler down to DataInspector instances.\n * When provided, encrypted markers become clickable buttons that trigger decryption.\n */\nexport type DecryptClickContextValue = {\n onDecrypt: () => void;\n isDecrypting: boolean;\n};\n\nexport const DecryptClickContext = createContext<\n DecryptClickContextValue | undefined\n>(undefined);\n\nfunction EncryptedInlineLabel() {\n const ctx = useContext(DecryptClickContext);\n if (ctx) {\n return (\n <button\n type=\"button\"\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] cursor-pointer\"\n style={{\n backgroundColor: 'var(--ds-gray-100)',\n color: 'var(--ds-gray-700)',\n border: '1px solid var(--ds-gray-400)',\n fontStyle: 'italic',\n opacity: ctx.isDecrypting ? 0.6 : 1,\n }}\n disabled={ctx.isDecrypting}\n onClick={(e) => {\n e.stopPropagation();\n ctx.onDecrypt();\n }}\n title=\"Click to decrypt\"\n >\n {ctx.isDecrypting ? (\n <Spinner size={12} />\n ) : (\n <Lock\n className=\"h-3 w-3\"\n style={{ display: 'inline', flexShrink: 0 }}\n />\n )}\n <span>{ctx.isDecrypting ? 'Decrypting…' : 'Decrypt'}</span>\n </button>\n );\n }\n return (\n <span style={{ color: 'var(--ds-gray-600)', fontStyle: 'italic' }}>\n <Lock\n className=\"h-3 w-3\"\n style={{\n display: 'inline',\n verticalAlign: 'middle',\n marginRight: '3px',\n marginTop: '-1px',\n }}\n />\n Encrypted\n </span>\n );\n}\n\nfunction StreamRefInline({ streamRef }: { streamRef: StreamRef }) {\n const onStreamClick = useContext(StreamClickContext);\n return (\n <button\n type=\"button\"\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-mono cursor-pointer\"\n style={{\n backgroundColor: 'var(--ds-blue-100)',\n color: 'var(--ds-blue-800)',\n border: '1px solid var(--ds-blue-300)',\n }}\n onClick={() => onStreamClick?.(streamRef.streamId)}\n title={`View stream: ${streamRef.streamId}`}\n >\n <span>📡</span>\n <span>{streamRef.streamId}</span>\n </button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Extended theme context (for colors react-inspector doesn't support natively)\n// ---------------------------------------------------------------------------\n\nconst ExtendedThemeContext = createContext<InspectorThemeExtended>(\n inspectorThemeExtendedLight\n);\n\n// ---------------------------------------------------------------------------\n// Custom nodeRenderer\n// ---------------------------------------------------------------------------\n\n/**\n * Extends the default react-inspector nodeRenderer with special handling\n * for ClassInstanceRef, StreamRef, and Date types.\n *\n * react-inspector renders Date instances as unstyled plain text (no theme\n * key exists for them), so we intercept here and apply the magenta color\n * from our extended theme — matching Node.js util.inspect()'s date style.\n *\n * Default nodeRenderer reference:\n * https://github.com/storybookjs/react-inspector/blob/main/README.md#noderenderer\n */\nfunction NodeRenderer({\n depth,\n name,\n data,\n isNonenumerable,\n}: {\n depth: number;\n name?: string;\n data: unknown;\n isNonenumerable?: boolean;\n expanded?: boolean;\n}) {\n const extendedTheme = useContext(ExtendedThemeContext);\n\n // Encrypted marker → flat label with Lock icon, clickable when onDecrypt is available\n if (\n data !== null &&\n typeof data === 'object' &&\n data.constructor?.name === ENCRYPTED_DISPLAY_NAME\n ) {\n const label = <EncryptedInlineLabel />;\n if (depth === 0) {\n return label;\n }\n return (\n <span>\n {name != null && <ObjectName name={name} />}\n {name != null && <span>: </span>}\n {label}\n </span>\n );\n }\n\n // StreamRef → inline clickable badge\n if (isStreamRef(data)) {\n return (\n <span>\n {name != null && <ObjectName name={name} />}\n {name != null && <span>: </span>}\n <StreamRefInline streamRef={data} />\n </span>\n );\n }\n\n // ClassInstanceRef → show className as type, data as the inspectable value\n if (isClassInstanceRef(data)) {\n if (depth === 0) {\n return <ObjectRootLabel name={data.className} data={data.data} />;\n }\n return (\n <span>\n {name != null && <ObjectName name={name} />}\n {name != null && <span>: </span>}\n <span style={{ fontStyle: 'italic' }}>{data.className} </span>\n <ObjectValue object={data.data} />\n </span>\n );\n }\n\n // Date → magenta color (Node.js: 'date' → 'magenta')\n // react-inspector has no OBJECT_VALUE_DATE_COLOR theme key, so we handle it here.\n if (data instanceof Date) {\n const dateStr = data.toISOString();\n if (depth === 0) {\n return (\n <span style={{ color: extendedTheme.OBJECT_VALUE_DATE_COLOR }}>\n {dateStr}\n </span>\n );\n }\n return (\n <span>\n {name != null && <ObjectName name={name} />}\n {name != null && <span>: </span>}\n <span style={{ color: extendedTheme.OBJECT_VALUE_DATE_COLOR }}>\n {dateStr}\n </span>\n </span>\n );\n }\n\n // Default rendering (same as react-inspector's built-in)\n if (depth === 0) {\n return <ObjectRootLabel name={name} data={data} />;\n }\n return (\n <ObjectLabel name={name} data={data} isNonenumerable={isNonenumerable} />\n );\n}\n\n// ---------------------------------------------------------------------------\n// Public component\n// ---------------------------------------------------------------------------\n\nexport interface DataInspectorProps {\n /** The data to inspect */\n data: unknown;\n /** Initial expand depth (default: 2) */\n expandLevel?: number;\n /** Optional name for the root node */\n name?: string;\n /** Callback when a stream reference is clicked */\n onStreamClick?: (streamId: string) => void;\n /** Callback when an encrypted marker is clicked (triggers decryption) */\n onDecrypt?: () => void;\n /** Whether decryption is currently in progress */\n isDecrypting?: boolean;\n}\n\nexport function DataInspector({\n data,\n expandLevel = 2,\n name,\n onStreamClick,\n onDecrypt,\n isDecrypting = false,\n}: DataInspectorProps) {\n const stableData = useStableInspectorData(data);\n const [initialExpandLevel, setInitialExpandLevel] = useState(expandLevel);\n const isDark = useDarkMode();\n const extendedTheme = isDark\n ? inspectorThemeExtendedDark\n : inspectorThemeExtendedLight;\n\n useEffect(() => {\n // react-inspector reapplies expandLevel on every data change, which can\n // reopen paths the user manually collapsed. Apply it only on mount.\n setInitialExpandLevel(0);\n }, []);\n\n const content = (\n <ExtendedThemeContext.Provider value={extendedTheme}>\n <ObjectInspector\n data={stableData}\n name={name}\n // @ts-expect-error react-inspector accepts theme objects at runtime despite\n // types declaring string only — see https://github.com/storybookjs/react-inspector/blob/main/README.md#theme\n theme={isDark ? inspectorThemeDark : inspectorThemeLight}\n expandLevel={initialExpandLevel}\n nodeRenderer={NodeRenderer}\n />\n </ExtendedThemeContext.Provider>\n );\n\n let wrapped = content;\n\n if (onStreamClick) {\n wrapped = (\n <StreamClickContext.Provider value={onStreamClick}>\n {wrapped}\n </StreamClickContext.Provider>\n );\n }\n\n if (onDecrypt) {\n wrapped = (\n <DecryptClickContext.Provider value={{ onDecrypt, isDecrypting }}>\n {wrapped}\n </DecryptClickContext.Provider>\n );\n }\n\n return wrapped;\n}\n\nfunction useStableInspectorData<T>(next: T): T {\n const previousRef = useRef<T>(next);\n if (!isDeepEqual(previousRef.current, next)) {\n previousRef.current = next;\n }\n return previousRef.current;\n}\n\nfunction isObjectLike(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isDeepEqual(a: unknown, b: unknown, seen = new WeakMap()): boolean {\n if (Object.is(a, b)) return true;\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n\n if (a instanceof RegExp && b instanceof RegExp) {\n return a.source === b.source && a.flags === b.flags;\n }\n\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n for (const [key, value] of a.entries()) {\n if (!b.has(key) || !isDeepEqual(value, b.get(key), seen)) return false;\n }\n return true;\n }\n\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n for (const value of a.values()) {\n if (!b.has(value)) return false;\n }\n return true;\n }\n\n if (!isObjectLike(a) || !isObjectLike(b)) {\n return false;\n }\n\n if (seen.get(a) === b) return true;\n seen.set(a, b);\n\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray !== bIsArray) return false;\n\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i += 1) {\n if (!isDeepEqual(a[i], b[i], seen)) return false;\n }\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) return false;\n\n for (const key of aKeys) {\n if (!Object.hasOwn(b, key)) return false;\n if (!isDeepEqual(a[key], b[key], seen)) return false;\n }\n\n return true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decrypt-button.js","sourceRoot":"","sources":["../../../src/components/ui/decrypt-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,GAAG,2lBAA2lB,CAAC;AAW3mB;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,OAAO,GACY;IACnB,OAAO,CACL,8BACE,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACxC,QAAQ,EAAE,SAAS,IAAI,OAAO,EAC9B,SAAS,EAAE,kBAAkB,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,aAE/E,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,CACtB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,eACE,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC1D,eAAM,CAAC,EAAC,yBAAyB,GAAG,IAChC,CACP,CAAC,CAAC,CAAC,CACF,eACE,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC1D,eAAM,CAAC,EAAC,0BAA0B,GAAG,IACjC,CACP,EACA,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IACvD,IACR,CACJ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"decrypt-button.js","sourceRoot":"","sources":["../../../src/components/ui/decrypt-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,GAAG,2lBAA2lB,CAAC;AAW3mB;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,OAAO,GACY;IACnB,OAAO,CACL,8BACE,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACxC,QAAQ,EAAE,SAAS,IAAI,OAAO,EAC9B,SAAS,EAAE,kBAAkB,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,aAE/E,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,CACtB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,eACE,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC1D,eAAM,CAAC,EAAC,yBAAyB,GAAG,IAChC,CACP,CAAC,CAAC,CAAC,CACF,eACE,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC1D,eAAM,CAAC,EAAC,0BAA0B,GAAG,IACjC,CACP,EACA,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IACvD,IACR,CACJ,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { Spinner } from './spinner';\n\nconst STYLES = `.wf-decrypt-btn{appearance:none;-webkit-appearance:none;border:none;display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 12px;border-radius:6px;font-size:14px;font-weight:500;line-height:20px;cursor:pointer;white-space:nowrap;gap:6px;transition:background 150ms}.wf-decrypt-idle{color:var(--ds-gray-1000);background:var(--ds-background-100);box-shadow:0 0 0 1px var(--ds-gray-400)}.wf-decrypt-idle:hover{background:var(--ds-gray-alpha-200)}.wf-decrypt-done{color:var(--ds-green-900);background:var(--ds-green-100);box-shadow:0 0 0 1px var(--ds-green-400);cursor:default}`;\n\ninterface DecryptButtonProps {\n /** Whether an encryption key has been obtained (decryption is active). */\n decrypted?: boolean;\n /** Whether the key is currently being fetched. */\n loading?: boolean;\n /** Called when the user clicks to initiate decryption. */\n onClick?: () => void;\n}\n\n/**\n * Decrypt/Decrypted button using Geist secondary style.\n * Three states: idle (secondary gray), decrypting (spinner), decrypted (green success).\n */\nexport function DecryptButton({\n decrypted = false,\n loading = false,\n onClick,\n}: DecryptButtonProps) {\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <button\n type=\"button\"\n onClick={decrypted ? undefined : onClick}\n disabled={decrypted || loading}\n className={`wf-decrypt-btn ${decrypted ? 'wf-decrypt-done' : 'wf-decrypt-idle'}`}\n >\n {loading ? (\n <Spinner size={14} />\n ) : decrypted ? (\n <svg\n width={14}\n height={14}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 9.9-1\" />\n </svg>\n ) : (\n <svg\n width={14}\n height={14}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </svg>\n )}\n {loading ? 'Decrypting…' : decrypted ? 'Decrypted' : 'Decrypt'}\n </button>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-card.js","sourceRoot":"","sources":["../../../src/components/ui/error-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,OAAO,GAAG,eAAe,GACV;IACf,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,CACV,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAE1C,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,SAAS,EAAC,sFAAsF,EAChG,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,aAErC,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,GAAG,EAC5C,eAAM,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAQ,IAChD,EACN,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAM,SAAS,EAAC,SAAS,sCAA6B,EACtD,KAAC,WAAW,IACV,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,UAAU,IAAI,YAAY,CAC3B,GACD,IACE,IACC,EAER,UAAU,IAAI,OAAO,IAAI,CACxB,cACE,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,YAEnD,cACE,SAAS,EAAC,qFAAqF,EAC/F,KAAK,EAAE;4BACL,UAAU,EAAE,mBAAmB;4BAC/B,KAAK,EAAE,mBAAmB;yBAC3B,YAEA,OAAO,GACJ,GACF,CACP,IACG,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-card.js","sourceRoot":"","sources":["../../../src/components/ui/error-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,OAAO,GAAG,eAAe,GACV;IACf,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,CACV,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAE1C,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,SAAS,EAAC,sFAAsF,EAChG,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,aAErC,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,GAAG,EAC5C,eAAM,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAQ,IAChD,EACN,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAM,SAAS,EAAC,SAAS,sCAA6B,EACtD,KAAC,WAAW,IACV,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,UAAU,IAAI,YAAY,CAC3B,GACD,IACE,IACC,EAER,UAAU,IAAI,OAAO,IAAI,CACxB,cACE,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,YAEnD,cACE,SAAS,EAAC,qFAAqF,EAC/F,KAAK,EAAE;4BACL,UAAU,EAAE,mBAAmB;4BAC/B,KAAK,EAAE,mBAAmB;yBAC3B,YAEA,OAAO,GACJ,GACF,CACP,IACG,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { AlertCircle, ChevronDown } from 'lucide-react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\ninterface ErrorCardProps {\n /** Title shown in the header */\n title: string;\n /** Error message or details to show when expanded */\n details?: string;\n /** Additional class names */\n className?: string;\n}\n\n/**\n * A collapsible error card that shows a title with an error icon,\n * and expands to reveal details when clicked.\n */\nexport function ErrorCard({\n title,\n className,\n details = 'Unknown error',\n}: ErrorCardProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n\n return (\n <div className=\"flex justify-center w-full\">\n <div\n className={cn(\n 'rounded-lg border border-red-400 w-full max-w-[800px]',\n className\n )}\n style={{ background: 'var(--ds-red-100)' }}\n >\n <button\n type=\"button\"\n onClick={() => setIsExpanded(!isExpanded)}\n className=\"w-full px-4 py-3 flex items-center justify-between gap-2 text-left transition-colors\"\n style={{ color: 'var(--ds-red-900)' }}\n >\n <div className=\"flex items-center gap-2\">\n <AlertCircle className=\"h-4 w-4 shrink-0\" />\n <span className=\"font-medium text-sm\">{title}</span>\n </div>\n <div className=\"flex items-center gap-1.5 opacity-70\">\n <span className=\"text-xs\">Click to show details</span>\n <ChevronDown\n className={cn(\n 'h-4 w-4 transition-transform duration-200',\n isExpanded && 'rotate-180'\n )}\n />\n </div>\n </button>\n\n {isExpanded && details && (\n <div\n className=\"px-4 pb-3\"\n style={{ borderTop: '1px solid var(--ds-red-400)' }}\n >\n <pre\n className=\"mt-3 p-3 rounded-md text-xs font-mono whitespace-pre-wrap break-words overflow-auto\"\n style={{\n background: 'var(--ds-red-200)',\n color: 'var(--ds-red-900)',\n }}\n >\n {details}\n </pre>\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-stack-block.js","sourceRoot":"","sources":["../../../src/components/ui/error-stack-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,OAAO,CACL,KAAK,IAAI,IAAI;QACb,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,IAAI,KAAK;QAChB,OAAQ,KAAiC,CAAC,KAAK,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,GAGN;IACC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5D,OAAO,CACL,eACE,SAAS,EAAC,4CAA4C,EACtD,KAAK,EAAE;YACL,WAAW,EAAE,mBAAmB;YAChC,UAAU,EAAE,mBAAmB;SAChC,aAED,iBACE,IAAI,EAAC,QAAQ,gBACF,YAAY,EACvB,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,gMAAgM,EAC1M,KAAK,EAAE;oBACL,WAAW,EAAE,mBAAmB;oBAChC,UAAU,EAAE,mBAAmB;oBAC/B,KAAK,EAAE,mBAAmB;iBAC3B,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,SAAS,CAAC,SAAS;yBAChB,SAAS,CAAC,QAAQ,CAAC;yBACnB,IAAI,CAAC,GAAG,EAAE;wBACT,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;oBACvC,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE;wBACV,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACP,CAAC,YAED,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,EAER,OAAO,IAAI,CACV,eACE,SAAS,EAAC,0CAA0C,EACpD,KAAK,EAAE;oBACL,KAAK,EAAE,mBAAmB;oBAC1B,YAAY,EAAE,6BAA6B;iBAC5C,aAED,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,EACrE,YAAG,SAAS,EAAC,uCAAuC,YAAE,OAAO,GAAK,IAC9D,CACP,EACD,cACE,SAAS,EAAC,iFAAiF,EAC3F,KAAK,EAAE;oBACL,KAAK,EAAE,mBAAmB;oBAC1B,UAAU,EAAE,mBAAmB;iBAChC,YAEA,KAAK,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-stack-block.js","sourceRoot":"","sources":["../../../src/components/ui/error-stack-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,OAAO,CACL,KAAK,IAAI,IAAI;QACb,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,IAAI,KAAK;QAChB,OAAQ,KAAiC,CAAC,KAAK,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,GAGN;IACC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5D,OAAO,CACL,eACE,SAAS,EAAC,4CAA4C,EACtD,KAAK,EAAE;YACL,WAAW,EAAE,mBAAmB;YAChC,UAAU,EAAE,mBAAmB;SAChC,aAED,iBACE,IAAI,EAAC,QAAQ,gBACF,YAAY,EACvB,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,gMAAgM,EAC1M,KAAK,EAAE;oBACL,WAAW,EAAE,mBAAmB;oBAChC,UAAU,EAAE,mBAAmB;oBAC/B,KAAK,EAAE,mBAAmB;iBAC3B,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,SAAS,CAAC,SAAS;yBAChB,SAAS,CAAC,QAAQ,CAAC;yBACnB,IAAI,CAAC,GAAG,EAAE;wBACT,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;oBACvC,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE;wBACV,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACP,CAAC,YAED,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,EAER,OAAO,IAAI,CACV,eACE,SAAS,EAAC,0CAA0C,EACpD,KAAK,EAAE;oBACL,KAAK,EAAE,mBAAmB;oBAC1B,YAAY,EAAE,6BAA6B;iBAC5C,aAED,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,EACrE,YAAG,SAAS,EAAC,uCAAuC,YAAE,OAAO,GAAK,IAC9D,CACP,EACD,cACE,SAAS,EAAC,iFAAiF,EAC3F,KAAK,EAAE;oBACL,KAAK,EAAE,mBAAmB;oBAC1B,UAAU,EAAE,mBAAmB;iBAChC,YAEA,KAAK,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { AlertCircle, Copy } from 'lucide-react';\nimport { useToast } from '../../lib/toast';\n\n/**\n * Check whether `value` looks like a structured error object with a `stack`\n * field that we can render as pre-formatted text.\n */\nexport function isStructuredErrorWithStack(\n value: unknown\n): value is Record<string, unknown> & { stack: string } {\n return (\n value != null &&\n typeof value === 'object' &&\n 'stack' in value &&\n typeof (value as Record<string, unknown>).stack === 'string'\n );\n}\n\n/**\n * Renders an error with a `stack` field as a visually distinct error block.\n * Shows the error message with an alert icon at the top, separated from\n * the stack trace below.\n */\nexport function ErrorStackBlock({\n value,\n}: {\n value: Record<string, unknown> & { stack: string };\n}) {\n const toast = useToast();\n const stack = value.stack;\n const message = typeof value.message === 'string' ? value.message : undefined;\n const copyText = message ? `${message}\\n\\n${stack}` : stack;\n\n return (\n <div\n className=\"relative overflow-hidden rounded-md border\"\n style={{\n borderColor: 'var(--ds-red-400)',\n background: 'var(--ds-red-100)',\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Copy error\"\n title=\"Copy\"\n className=\"!absolute !right-2 !top-2 !flex !h-6 !w-6 !items-center !justify-center !rounded-md !border transition-transform transition-colors duration-100 hover:!bg-[var(--ds-red-200)] active:!scale-95\"\n style={{\n borderColor: 'var(--ds-red-400)',\n background: 'var(--ds-red-100)',\n color: 'var(--ds-red-900)',\n }}\n onClick={() => {\n navigator.clipboard\n .writeText(copyText)\n .then(() => {\n toast.success('Copied to clipboard');\n })\n .catch(() => {\n toast.error('Failed to copy');\n });\n }}\n >\n <Copy size={12} />\n </button>\n\n {message && (\n <div\n className=\"flex items-start gap-2 px-3 py-2.5 pr-10\"\n style={{\n color: 'var(--ds-red-900)',\n borderBottom: '1px solid var(--ds-red-400)',\n }}\n >\n <AlertCircle className=\"h-4 w-4 shrink-0\" style={{ marginTop: 1 }} />\n <p className=\"text-xs font-semibold m-0 break-words\">{message}</p>\n </div>\n )}\n <pre\n className=\"px-3 py-2.5 text-xs font-mono whitespace-pre-wrap break-words overflow-auto m-0\"\n style={{\n color: 'var(--ds-red-900)',\n background: 'var(--ds-red-200)',\n }}\n >\n {stack}\n </pre>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspector-theme.js","sourceRoot":"","sources":["../../../src/components/ui/inspector-theme.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inspector-theme.js","sourceRoot":"","sources":["../../../src/components/ui/inspector-theme.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared theme configuration for react-inspector's ObjectInspector.\n *\n * Color choices are inspired by Node.js `util.inspect()` ANSI stylizing:\n * - property names: unstyled (default foreground — dark text on light, light text on dark)\n * - strings / symbols: green\n * - numbers / booleans / bigint: yellow\n * - null: bold (foreground)\n * - undefined: grey\n * - regexp: red\n * - functions (special): cyan\n * - date: magenta\n *\n * See: https://github.com/nodejs/node/blob/main/lib/internal/util/inspect.js\n */\n\n// ---------------------------------------------------------------------------\n// Extended color tokens not supported by react-inspector's built-in theme\n// system, applied via our custom nodeRenderer in data-inspector.tsx.\n// ---------------------------------------------------------------------------\n\nexport interface InspectorThemeExtended {\n /** Color for Date values (Node: 'magenta') */\n OBJECT_VALUE_DATE_COLOR: string;\n}\n\nexport const inspectorThemeExtendedLight: InspectorThemeExtended = {\n OBJECT_VALUE_DATE_COLOR: '#a21caf', // fuchsia-700\n};\n\nexport const inspectorThemeExtendedDark: InspectorThemeExtended = {\n OBJECT_VALUE_DATE_COLOR: '#e879f9', // fuchsia-400\n};\n\n// ---------------------------------------------------------------------------\n// Shared structural values (same in both themes)\n// ---------------------------------------------------------------------------\n\nconst shared = {\n BASE_FONT_SIZE: '11px',\n BASE_LINE_HEIGHT: 1.4,\n BASE_BACKGROUND_COLOR: 'transparent',\n OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,\n OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,\n HTML_TAGNAME_TEXT_TRANSFORM: 'lowercase' as const,\n ARROW_MARGIN_RIGHT: 3,\n ARROW_FONT_SIZE: 12,\n TREENODE_FONT_FAMILY: 'var(--font-mono)',\n TREENODE_FONT_SIZE: '11px',\n TREENODE_LINE_HEIGHT: 1.4,\n TREENODE_PADDING_LEFT: 12,\n TABLE_DATA_BACKGROUND_IMAGE: 'none',\n TABLE_DATA_BACKGROUND_SIZE: '0',\n};\n\n// ---------------------------------------------------------------------------\n// Light theme\n// ---------------------------------------------------------------------------\n\nexport const inspectorThemeLight = {\n ...shared,\n\n // Base text\n BASE_COLOR: 'var(--ds-gray-1000)',\n\n // Property names — unstyled, same as base foreground (Node: no style)\n OBJECT_NAME_COLOR: 'var(--ds-gray-900)',\n\n // Strings & symbols — green (Node: 'green')\n OBJECT_VALUE_STRING_COLOR: '#16a34a', // green-600\n OBJECT_VALUE_SYMBOL_COLOR: '#16a34a',\n\n // Numbers & booleans — yellow/amber (Node: 'yellow')\n OBJECT_VALUE_NUMBER_COLOR: '#b45309', // amber-700 (readable on white)\n OBJECT_VALUE_BOOLEAN_COLOR: '#b45309',\n\n // null — bold foreground (Node: 'bold')\n OBJECT_VALUE_NULL_COLOR: 'var(--ds-gray-900)',\n\n // undefined — grey (Node: 'grey')\n OBJECT_VALUE_UNDEFINED_COLOR: 'var(--ds-gray-500)',\n\n // RegExp — red (Node regexp base uses green/red/yellow palette)\n OBJECT_VALUE_REGEXP_COLOR: '#dc2626', // red-600\n\n // Functions — cyan (Node: 'special' → 'cyan')\n OBJECT_VALUE_FUNCTION_PREFIX_COLOR: '#0891b2', // cyan-600\n\n // HTML (less relevant for data inspection, but reasonable defaults)\n HTML_TAG_COLOR: 'var(--ds-gray-500)',\n HTML_TAGNAME_COLOR: '#0891b2',\n HTML_ATTRIBUTE_NAME_COLOR: '#b45309',\n HTML_ATTRIBUTE_VALUE_COLOR: '#16a34a',\n HTML_COMMENT_COLOR: 'var(--ds-gray-400)',\n HTML_DOCTYPE_COLOR: 'var(--ds-gray-400)',\n\n // Structural\n ARROW_COLOR: 'var(--ds-gray-500)',\n TABLE_BORDER_COLOR: 'var(--ds-gray-300)',\n TABLE_TH_BACKGROUND_COLOR: 'var(--ds-gray-100)',\n TABLE_TH_HOVER_COLOR: 'var(--ds-gray-200)',\n TABLE_SORT_ICON_COLOR: 'var(--ds-gray-500)',\n};\n\n// ---------------------------------------------------------------------------\n// Dark theme\n// ---------------------------------------------------------------------------\n\nexport const inspectorThemeDark = {\n ...shared,\n\n // Base text\n BASE_COLOR: 'var(--ds-gray-1000)',\n\n // Property names — white/light foreground (Node: unstyled = white in dark terminal)\n OBJECT_NAME_COLOR: 'var(--ds-gray-900)',\n\n // Strings & symbols — green (Node: 'green')\n OBJECT_VALUE_STRING_COLOR: '#4ade80', // green-400\n OBJECT_VALUE_SYMBOL_COLOR: '#4ade80',\n\n // Numbers & booleans — yellow (Node: 'yellow')\n OBJECT_VALUE_NUMBER_COLOR: '#facc15', // yellow-400\n OBJECT_VALUE_BOOLEAN_COLOR: '#facc15',\n\n // null — bold foreground / white (Node: 'bold')\n OBJECT_VALUE_NULL_COLOR: 'var(--ds-gray-1000)',\n\n // undefined — grey (Node: 'grey')\n OBJECT_VALUE_UNDEFINED_COLOR: 'var(--ds-gray-500)',\n\n // RegExp — red (Node regexp palette)\n OBJECT_VALUE_REGEXP_COLOR: '#f87171', // red-400\n\n // Functions — cyan (Node: 'special' → 'cyan')\n OBJECT_VALUE_FUNCTION_PREFIX_COLOR: '#22d3ee', // cyan-400\n\n // HTML\n HTML_TAG_COLOR: 'var(--ds-gray-500)',\n HTML_TAGNAME_COLOR: '#22d3ee',\n HTML_ATTRIBUTE_NAME_COLOR: '#facc15',\n HTML_ATTRIBUTE_VALUE_COLOR: '#4ade80',\n HTML_COMMENT_COLOR: 'var(--ds-gray-500)',\n HTML_DOCTYPE_COLOR: 'var(--ds-gray-500)',\n\n // Structural\n ARROW_COLOR: 'var(--ds-gray-500)',\n TABLE_BORDER_COLOR: 'var(--ds-gray-300)',\n TABLE_TH_BACKGROUND_COLOR: 'var(--ds-gray-100)',\n TABLE_TH_HOVER_COLOR: 'var(--ds-gray-200)',\n TABLE_SORT_ICON_COLOR: 'var(--ds-gray-500)',\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-more-button.js","sourceRoot":"","sources":["../../../src/components/ui/load-more-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,GAAG,qjBAAqjB,CAAC;AASrkB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,GAAG,KAAK,EACf,OAAO,EACP,KAAK,GAAG,WAAW,EACnB,YAAY,GAAG,YAAY,GACP;IACpB,OAAO,CACL,8BACE,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAC,cAAc,aAEvB,OAAO,IAAI,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IACxB,IACR,CACJ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"load-more-button.js","sourceRoot":"","sources":["../../../src/components/ui/load-more-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,GAAG,qjBAAqjB,CAAC;AASrkB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,GAAG,KAAK,EACf,OAAO,EACP,KAAK,GAAG,WAAW,EACnB,YAAY,GAAG,YAAY,GACP;IACpB,OAAO,CACL,8BACE,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAC,cAAc,aAEvB,OAAO,IAAI,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IACxB,IACR,CACJ,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { Spinner } from './spinner';\n\nconst STYLES = `.wf-load-more{appearance:none;-webkit-appearance:none;border:none;display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:6px;font-size:13px;font-weight:500;line-height:20px;color:var(--ds-gray-1000);background:var(--ds-background-100);box-shadow:0 0 0 1px var(--ds-gray-400);cursor:pointer;white-space:nowrap;gap:6px;transition:background 150ms}.wf-load-more:hover{background:var(--ds-gray-alpha-200)}.wf-load-more:disabled{opacity:.6;cursor:default}.wf-load-more:disabled:hover{background:var(--ds-background-100)}`;\n\ninterface LoadMoreButtonProps {\n loading?: boolean;\n onClick?: () => void;\n label?: string;\n loadingLabel?: string;\n}\n\n/**\n * A \"Load more\" button matching Geist's Button type=\"secondary\" size=\"small\"\n * with a spinner prefix when loading.\n */\nexport function LoadMoreButton({\n loading = false,\n onClick,\n label = 'Load more',\n loadingLabel = 'Loading...',\n}: LoadMoreButtonProps) {\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <button\n type=\"button\"\n onClick={onClick}\n disabled={loading}\n className=\"wf-load-more\"\n >\n {loading && <Spinner size={14} />}\n {loading ? loadingLabel : label}\n </button>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-dropdown.js","sourceRoot":"","sources":["../../../src/components/ui/menu-dropdown.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-dropdown.js","sourceRoot":"","sources":["../../../src/components/ui/menu-dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nconst STYLES = `.wf-menu-btn{appearance:none;-webkit-appearance:none;border:none;display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 12px;border-radius:6px;font-size:14px;font-weight:500;line-height:20px;color:var(--ds-gray-1000);background:var(--ds-background-100);box-shadow:0 0 0 1px var(--ds-gray-400);cursor:pointer;white-space:nowrap;transition:background 150ms}.wf-menu-btn:hover{background:var(--ds-gray-alpha-200)}.wf-menu-item{appearance:none;-webkit-appearance:none;border:none;display:flex;align-items:center;width:100%;height:40px;padding:0 8px;border-radius:6px;font-size:14px;color:var(--ds-gray-1000);background:transparent;cursor:pointer;transition:background 150ms}.wf-menu-item:hover{background:var(--ds-gray-alpha-100)}`;\n\nexport interface MenuDropdownOption<T extends string = string> {\n value: T;\n label: string;\n}\n\ninterface MenuDropdownProps<T extends string = string> {\n options: MenuDropdownOption<T>[];\n value: T;\n onChange: (value: T) => void;\n}\n\n/**\n * A dropdown menu that matches Geist's MenuButton (secondary) + Menu styling.\n * Uses CSS classes with proper :hover specificity (no inline background).\n */\nexport function MenuDropdown<T extends string = string>({\n options,\n value,\n onChange,\n}: MenuDropdownProps<T>) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const label =\n options.find((o) => o.value === value)?.label ?? options[0]?.label ?? '';\n\n useEffect(() => {\n if (!open) return;\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open]);\n\n return (\n <div ref={ref} style={{ position: 'relative', flexShrink: 0 }}>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n\n <button\n type=\"button\"\n className=\"wf-menu-btn\"\n onClick={() => setOpen(!open)}\n >\n <span>{label}</span>\n <svg\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n style={{\n marginLeft: 16,\n marginRight: -4,\n color: 'var(--ds-gray-900)',\n }}\n >\n <path\n d=\"M4.5 6L8 9.5L11.5 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {open && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n top: '100%',\n marginTop: 4,\n minWidth: 140,\n padding: 4,\n borderRadius: 12,\n background: 'var(--ds-background-100)',\n boxShadow: 'var(--ds-shadow-menu, var(--ds-shadow-medium))',\n zIndex: 2001,\n }}\n role=\"menu\"\n >\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"menuitem\"\n className=\"wf-menu-item\"\n style={{\n fontWeight: option.value === value ? 500 : 400,\n }}\n onClick={() => {\n onChange(option.value);\n setOpen(false);\n }}\n >\n {option.label}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/components/ui/skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EAC6B;IACrC,OAAO,CACL,iBACM,KAAK,EACT,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,KAAK,EAAE,GAC1D,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/components/ui/skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EAC6B;IACrC,OAAO,CACL,iBACM,KAAK,EACT,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,KAAK,EAAE,GAC1D,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import { cn } from '../../lib/utils';\n\nfunction Skeleton({\n className,\n style,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...props}\n className={cn('rounded-md', className)}\n style={{ backgroundColor: 'var(--ds-gray-200)', ...style }}\n />\n );\n}\n\nexport { Skeleton };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/components/ui/spinner.tsx"],"names":[],"mappings":";AAAA,MAAM,SAAS,GAAG,4DAA4D,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,GAAG,EAAE,EACT,KAAK,GAIN;IACC,MAAM,MAAM,GACV,IAAI,IAAI,EAAE;QACR,CAAC,CAAC;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,GAAG;SACX;QACH,CAAC,CAAC,IAAI,IAAI,EAAE;YACV,CAAC,CAAC;gBACE,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjE,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,GAAG;aACX;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE;oBACN,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG;oBAC5D,CAAC,GAAG,EAAE,CAAC;iBACR;gBACD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,KAAK,EAAE,IAAI,GAAG,IAAI;aACnB,CAAC;IAEV,OAAO,CACL,gBACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACb,aAED,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAI,EACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,eAEE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,KAAK;oBACV,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,KAAK;oBACpB,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;oBAC7B,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;oBAC5B,YAAY,EAAE,CAAC;oBACf,eAAe,EAAE,KAAK,IAAI,oBAAoB;oBAC9C,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,kBAAkB,IAAI,GAAG,IAAI,KAAK;oBACvE,SAAS,EAAE,mBAAmB,MAAM,CAAC,QAAQ,oBAAoB;oBACjE,cAAc,EAAE,GAAG,KAAK,IAAI;iBAC7B,IAdI,KAAK,CAeV,CACH,CAAC,IACG,CACR,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/components/ui/spinner.tsx"],"names":[],"mappings":";AAAA,MAAM,SAAS,GAAG,4DAA4D,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,GAAG,EAAE,EACT,KAAK,GAIN;IACC,MAAM,MAAM,GACV,IAAI,IAAI,EAAE;QACR,CAAC,CAAC;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,GAAG;SACX;QACH,CAAC,CAAC,IAAI,IAAI,EAAE;YACV,CAAC,CAAC;gBACE,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjE,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,GAAG;aACX;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE;oBACN,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG;oBAC5D,CAAC,GAAG,EAAE,CAAC;iBACR;gBACD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,KAAK,EAAE,IAAI,GAAG,IAAI;aACnB,CAAC;IAEV,OAAO,CACL,gBACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACb,aAED,gBAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAI,EACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,eAEE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,KAAK;oBACV,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,KAAK;oBACpB,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;oBAC7B,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;oBAC5B,YAAY,EAAE,CAAC;oBACf,eAAe,EAAE,KAAK,IAAI,oBAAoB;oBAC9C,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,kBAAkB,IAAI,GAAG,IAAI,KAAK;oBACvE,SAAS,EAAE,mBAAmB,MAAM,CAAC,QAAQ,oBAAoB;oBACjE,cAAc,EAAE,GAAG,KAAK,IAAI;iBAC7B,IAdI,KAAK,CAeV,CACH,CAAC,IACG,CACR,CAAC;AACJ,CAAC","sourcesContent":["const KEYFRAMES = `@keyframes wf-spinner-fade{0%{opacity:1}100%{opacity:.15}}`;\n\n/**\n * Spinner matching Geist's multi-line fade spinner.\n * At size ≤12: 8 lines, ≤16: 10 lines, else: 12 lines.\n */\nexport function Spinner({\n size = 14,\n color,\n}: {\n size?: number;\n color?: string;\n}) {\n const config =\n size <= 12\n ? {\n count: 8,\n angle: 45,\n delays: [-875, -750, -625, -500, -375, -250, -125, 0],\n duration: 1000,\n lineW: 3,\n lineH: 1.5,\n }\n : size <= 16\n ? {\n count: 10,\n angle: 36,\n delays: [-900, -800, -700, -600, -500, -400, -300, -200, -100, 0],\n duration: 1000,\n lineW: 4,\n lineH: 1.5,\n }\n : {\n count: 12,\n angle: 30,\n delays: [\n -1100, -1000, -900, -800, -700, -600, -500, -400, -300, -200,\n -100, 0,\n ],\n duration: 1200,\n lineW: size * 0.24,\n lineH: size * 0.08,\n };\n\n return (\n <span\n style={{\n display: 'inline-flex',\n position: 'relative',\n width: size,\n height: size,\n }}\n >\n <style dangerouslySetInnerHTML={{ __html: KEYFRAMES }} />\n {config.delays.map((delay, i) => (\n <span\n key={delay}\n style={{\n position: 'absolute',\n left: '50%',\n top: '50%',\n width: config.lineW,\n height: config.lineH,\n marginLeft: -config.lineW / 2,\n marginTop: -config.lineH / 2,\n borderRadius: 1,\n backgroundColor: color ?? 'var(--ds-gray-700)',\n transform: `rotate(${i * config.angle}deg) translate(${size * 0.36}px)`,\n animation: `wf-spinner-fade ${config.duration}ms linear infinite`,\n animationDelay: `${delay}ms`,\n }}\n />\n ))}\n </span>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp-tooltip.js","sourceRoot":"","sources":["../../../src/components/ui/timestamp-tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAWzC,MAAM,UAAU,GAAe;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE;IACjC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE;IACjC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;CAC7B,CAAC;AAEF,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,SAAS,IAAI,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;IACjC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7C,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC;QACF,MAAM,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,eAAe,CAAC,EACvB,IAAI,EACJ,IAAI,GAIL;IACC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,aAAa,GACjB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAC/B,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,OAAO;KACtB,CAAC;SACC,aAAa,CAAC,OAAO,CAAC;SACtB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAEjE,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE;QACpD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,eAAe;YAC/B,GAAG,EAAE,EAAE;SACR,aAED,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC3D,cACE,KAAK,EAAE;4BACL,OAAO,EAAE,aAAa;4BACtB,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,QAAQ;4BACxB,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,OAAO;4BAChB,eAAe,EAAE,oBAAoB;4BACrC,YAAY,EAAE,CAAC;4BACf,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,6BAA6B;4BACzC,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,oBAAoB;4BAC3B,UAAU,EAAE,QAAQ;yBACrB,YAEA,aAAa,GACV,EACN,eACE,KAAK,EAAE;4BACL,QAAQ,EAAE,EAAE;4BACZ,KAAK,EAAE,qBAAqB;4BAC5B,UAAU,EAAE,QAAQ;yBACrB,YAEA,aAAa,GACT,IACH,EACN,eACE,KAAK,EAAE;oBACL,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,6BAA6B;oBACzC,kBAAkB,EAAE,cAAc;oBAClC,KAAK,EAAE,oBAAoB;oBAC3B,UAAU,EAAE,QAAQ;iBACrB,YAEA,aAAa,GACT,IACH,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,SAAS,uBAAuB,CAAC,EAAE,IAAI,EAAoB;IACzD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,WAAW;SACrB,aAED,eACE,KAAK,EAAE;oBACL,QAAQ,EAAE,EAAE;oBACZ,kBAAkB,EAAE,cAAc;oBAClC,KAAK,EAAE,oBAAoB;iBAC5B,YAEA,OAAO,GACH,EACP,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC9D,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,KAAK,GAAG,EAC1C,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,GAAI,IAChD,IACF,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,aAAa,CAAC,EACrB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,IAAI,GAML;IACC,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB;QACtD,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;QAEzD,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;QAErC,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CACb,YAAY,EACZ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,CACrD,CAAC;QAEF,IAAI,GAAW,CAAC;QAChB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;gBACvB,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC;gBAChD,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,QAAQ,CAAC;YACP,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,GAAG;YACH,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,oCAAoC;YAC5C,eAAe,EAAE,0BAA0B;YAC3C,SAAS,EAAE,yDAAyD;YACpE,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,YAAY;IACjB,yEAAyE;IACzE,cACE,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,YAEZ,KAAC,uBAAuB,IAAC,IAAI,EAAE,IAAI,GAAI,GACnC,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,GAIT;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,UAAU,CAAC,OAAO;gBAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,EAAE,GACN,IAAI,IAAI,IAAI;QACV,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAEjC,IAAI,EAAE,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IAE3D,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,WAAW,EAAE,CAAC;QACd,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,WAAW,EAAE,CAAC;QACd,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;IACL,sEAAsE;IACtE,gBACE,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,UAAU,EACxB,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,aAEhC,QAAQ,EACR,IAAI,IAAI,WAAW,IAAI,CACtB,KAAC,aAAa,IACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,aAAa,EAC3B,IAAI,EAAE,EAAE,GACR,CACH,IACI,CACR,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"timestamp-tooltip.js","sourceRoot":"","sources":["../../../src/components/ui/timestamp-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\n// ---------------------------------------------------------------------------\n// Time formatting helpers\n// ---------------------------------------------------------------------------\n\ninterface TimeUnit {\n unit: string;\n ms: number;\n}\n\nconst TIME_UNITS: TimeUnit[] = [\n { unit: 'year', ms: 31536000000 },\n { unit: 'month', ms: 2628000000 },\n { unit: 'day', ms: 86400000 },\n { unit: 'hour', ms: 3600000 },\n { unit: 'minute', ms: 60000 },\n { unit: 'second', ms: 1000 },\n];\n\nfunction formatTimeDifference(diff: number): string {\n let remaining = Math.abs(diff);\n const result: string[] = [];\n\n for (const { unit, ms } of TIME_UNITS) {\n const value = Math.floor(remaining / ms);\n if (value > 0 || result.length > 0) {\n result.push(`${value} ${unit}${value !== 1 ? 's' : ''}`);\n remaining %= ms;\n }\n if (result.length === 3) break;\n }\n\n return result.join(', ');\n}\n\nfunction useTimeAgo(date: number): string {\n const [timeAgo, setTimeAgo] = useState<string>('');\n\n useEffect(() => {\n const update = (): void => {\n const diff = Date.now() - date;\n const formatted = formatTimeDifference(diff);\n setTimeAgo(formatted ? `${formatted} ago` : 'Just now');\n };\n update();\n const timer = setInterval(update, 1000);\n return () => clearInterval(timer);\n }, [date]);\n\n return timeAgo;\n}\n\n// ---------------------------------------------------------------------------\n// Timezone row\n// ---------------------------------------------------------------------------\n\nfunction ZoneDateTimeRow({\n date,\n zone,\n}: {\n zone: string;\n date: number;\n}): ReactNode {\n const dateObj = new Date(date);\n\n const formattedZone =\n new Intl.DateTimeFormat('en-US', {\n timeZone: zone,\n timeZoneName: 'short',\n })\n .formatToParts(dateObj)\n .find((part) => part.type === 'timeZoneName')?.value || zone;\n\n const formattedDate = dateObj.toLocaleString('en-US', {\n timeZone: zone,\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n\n const formattedTime = dateObj.toLocaleTimeString('en-US', {\n timeZone: zone,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 12,\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 16,\n padding: '0 6px',\n backgroundColor: 'var(--ds-gray-200)',\n borderRadius: 3,\n fontSize: 11,\n fontFamily: 'var(--font-mono, monospace)',\n fontWeight: 500,\n color: 'var(--ds-gray-900)',\n whiteSpace: 'nowrap',\n }}\n >\n {formattedZone}\n </div>\n <span\n style={{\n fontSize: 13,\n color: 'var(--ds-gray-1000)',\n whiteSpace: 'nowrap',\n }}\n >\n {formattedDate}\n </span>\n </div>\n <span\n style={{\n fontSize: 11,\n fontFamily: 'var(--font-mono, monospace)',\n fontVariantNumeric: 'tabular-nums',\n color: 'var(--ds-gray-900)',\n whiteSpace: 'nowrap',\n }}\n >\n {formattedTime}\n </span>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Tooltip card content\n// ---------------------------------------------------------------------------\n\nfunction TimestampTooltipContent({ date }: { date: number }): ReactNode {\n const localTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const timeAgo = useTimeAgo(date);\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 12,\n minWidth: 300,\n padding: '12px 14px',\n }}\n >\n <span\n style={{\n fontSize: 13,\n fontVariantNumeric: 'tabular-nums',\n color: 'var(--ds-gray-900)',\n }}\n >\n {timeAgo}\n </span>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 8 }}>\n <ZoneDateTimeRow date={date} zone=\"UTC\" />\n <ZoneDateTimeRow date={date} zone={localTimezone} />\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Hover tooltip wrapper\n// ---------------------------------------------------------------------------\n\nconst TOOLTIP_WIDTH = 330;\nconst VIEWPORT_PAD = 8;\n\nfunction TooltipPortal({\n triggerRect,\n onMouseEnter,\n onMouseLeave,\n date,\n}: {\n triggerRect: DOMRect;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n date: number;\n}): ReactNode {\n const tooltipRef = useRef<HTMLDivElement>(null);\n const [style, setStyle] = useState<React.CSSProperties>({\n position: 'fixed',\n zIndex: 9999,\n visibility: 'hidden',\n });\n\n useEffect(() => {\n const placement = triggerRect.top > 240 ? 'above' : 'below';\n const centerX = triggerRect.left + triggerRect.width / 2;\n\n const el = tooltipRef.current;\n const w = el ? el.offsetWidth : TOOLTIP_WIDTH;\n const h = el ? el.offsetHeight : 100;\n\n let left = centerX - w / 2;\n left = Math.max(\n VIEWPORT_PAD,\n Math.min(left, window.innerWidth - w - VIEWPORT_PAD)\n );\n\n let top: number;\n if (placement === 'above') {\n top = triggerRect.top - h - 6;\n if (top < VIEWPORT_PAD) {\n top = triggerRect.bottom + 6;\n }\n } else {\n top = triggerRect.bottom + 6;\n if (top + h > window.innerHeight - VIEWPORT_PAD) {\n top = triggerRect.top - h - 6;\n }\n }\n\n setStyle({\n position: 'fixed',\n left,\n top,\n zIndex: 9999,\n borderRadius: 10,\n border: '1px solid var(--ds-gray-alpha-200)',\n backgroundColor: 'var(--ds-background-100)',\n boxShadow: '0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.06)',\n visibility: 'visible',\n });\n }, [triggerRect]);\n\n return createPortal(\n // biome-ignore lint/a11y/noStaticElementInteractions: tooltip hover zone\n <div\n ref={tooltipRef}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n >\n <TimestampTooltipContent date={date} />\n </div>,\n document.body\n );\n}\n\nexport function TimestampTooltip({\n date,\n children,\n}: {\n date: number | Date | string | null | undefined;\n children: ReactNode;\n}): ReactNode {\n const [open, setOpen] = useState(false);\n const [triggerRect, setTriggerRect] = useState<DOMRect | null>(null);\n const triggerRef = useRef<HTMLSpanElement>(null);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (closeTimer.current) clearTimeout(closeTimer.current);\n };\n }, []);\n\n const ts =\n date == null\n ? null\n : typeof date === 'number'\n ? date\n : new Date(date).getTime();\n\n if (ts == null || Number.isNaN(ts)) return <>{children}</>;\n\n const cancelClose = () => {\n if (closeTimer.current) {\n clearTimeout(closeTimer.current);\n closeTimer.current = null;\n }\n };\n\n const scheduleClose = () => {\n cancelClose();\n closeTimer.current = setTimeout(() => setOpen(false), 120);\n };\n\n const handleOpen = () => {\n cancelClose();\n if (triggerRef.current) {\n setTriggerRect(triggerRef.current.getBoundingClientRect());\n }\n setOpen(true);\n };\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: tooltip trigger\n <span\n ref={triggerRef}\n onMouseEnter={handleOpen}\n onMouseLeave={scheduleClose}\n style={{ display: 'inline-flex' }}\n >\n {children}\n {open && triggerRect && (\n <TooltipPortal\n triggerRect={triggerRect}\n onMouseEnter={cancelClose}\n onMouseLeave={scheduleClose}\n date={ts}\n />\n )}\n </span>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-trace-view.js","sourceRoot":"","sources":["../../src/components/workflow-trace-view.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-trace-view.js","sourceRoot":"","sources":["../../src/components/workflow-trace-view.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { parseStepName, parseWorkflowName } from '@workflow/utils/parse-name';\nimport type { Event, Hook, Step, WorkflowRun } from '@workflow/world';\nimport {\n ChevronDown,\n ChevronUp,\n Clock,\n Copy,\n Info,\n Send,\n Type,\n X,\n XCircle,\n} from 'lucide-react';\nimport type { MouseEvent as ReactMouseEvent, ReactNode } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useToast } from '../lib/toast';\nimport { ErrorBoundary } from './error-boundary';\nimport {\n EntityDetailPanel,\n type SelectedSpanInfo,\n type SpanSelectionInfo,\n} from './sidebar/entity-detail-panel';\nimport { ResolveHookModal } from './sidebar/resolve-hook-modal';\nimport {\n TraceViewerContextProvider,\n TraceViewerTimeline,\n useTraceViewer,\n} from './trace-viewer';\nimport type { Span } from './trace-viewer/types';\nimport { Skeleton } from './ui/skeleton';\nimport { Spinner } from './ui/spinner';\nimport {\n getCustomSpanClassName,\n getCustomSpanEventClassName,\n} from './workflow-traces/trace-colors';\nimport { buildTrace, type TraceWithMeta } from '../lib/trace-builder';\n\n/**\n * While a run is live, continuously grow root.duration and rescale so the\n * trace always fits within the viewport. Individual span widths are grown\n * by each SpanComponent's own useEffect (see node.tsx).\n */\nfunction useLiveTick(isLive: boolean): void {\n const { state, dispatch } = useTraceViewer();\n const stateRef = useRef(state);\n stateRef.current = state;\n\n useEffect(() => {\n if (!isLive) return;\n\n // Grow root.duration on every frame so span rAFs see the latest time\n let rafId = 0;\n const tick = (): void => {\n const { root } = stateRef.current;\n if (root.startTime) {\n const nowMs = Date.now();\n if (nowMs > root.endTime) {\n root.endTime = nowMs;\n root.duration = root.endTime - root.startTime;\n }\n }\n rafId = requestAnimationFrame(tick);\n };\n rafId = requestAnimationFrame(tick);\n\n // Re-scale smoothly so the trace fits the viewport as it grows.\n // We dispatch detectBaseScale only when the computed baseScale has\n // changed enough to matter visually (>0.1% shift), avoiding\n // unnecessary React re-renders while keeping things smooth.\n let scaleRafId = 0;\n let lastBaseScale = 0;\n const scaleTick = (): void => {\n const s = stateRef.current;\n if (s.root.duration > 0) {\n const newBaseScale = (s.width - s.scrollbarWidth) / s.root.duration;\n const delta = Math.abs(newBaseScale - lastBaseScale);\n if (delta > lastBaseScale * 0.001 || lastBaseScale === 0) {\n lastBaseScale = newBaseScale;\n dispatch({ type: 'detectBaseScale' });\n }\n }\n scaleRafId = requestAnimationFrame(scaleTick);\n };\n scaleRafId = requestAnimationFrame(scaleTick);\n\n return () => {\n cancelAnimationFrame(rafId);\n cancelAnimationFrame(scaleRafId);\n };\n }, [isLive, dispatch]);\n}\n\nconst DEFAULT_PANEL_WIDTH = 450;\nconst MIN_PANEL_WIDTH = 240;\n\n// ──────────────────────────────────────────────────────────────────────────\n// Right-click context menu for spans\n// ──────────────────────────────────────────────────────────────────────────\n\ntype ResourceType = 'sleep' | 'step' | 'hook' | 'run' | 'unknown';\n\ninterface ContextMenuState {\n x: number;\n y: number;\n spanId: string;\n spanName: string;\n resourceType: ResourceType;\n /** Whether the span represents an active/pending resource (not yet completed) */\n isActive: boolean;\n}\n\ninterface ContextMenuItem {\n label: string;\n icon?: ReactNode;\n action: () => void;\n destructive?: boolean;\n disabled?: boolean;\n}\n\nfunction SpanContextMenu({\n menu,\n items,\n onClose,\n}: {\n menu: ContextMenuState;\n items: ContextMenuItem[];\n onClose: () => void;\n}): ReactNode {\n const menuRef = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent): void => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n const handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape') {\n onClose();\n }\n };\n const handleScroll = (): void => {\n onClose();\n };\n // Use a timeout so we don't close immediately from the same event\n const timeout = setTimeout(() => {\n window.addEventListener('mousedown', handleClick);\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('scroll', handleScroll, true);\n }, 0);\n return () => {\n clearTimeout(timeout);\n window.removeEventListener('mousedown', handleClick);\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('scroll', handleScroll, true);\n };\n }, [onClose]);\n\n // Adjust position if menu would overflow viewport\n const [adjustedPos, setAdjustedPos] = useState({ x: menu.x, y: menu.y });\n useEffect(() => {\n const el = menuRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n let { x, y } = menu;\n if (rect.right > window.innerWidth) {\n x = window.innerWidth - rect.width - 8;\n }\n if (rect.bottom > window.innerHeight) {\n y = window.innerHeight - rect.height - 8;\n }\n if (x !== menu.x || y !== menu.y) {\n setAdjustedPos({ x, y });\n }\n }, [menu]);\n\n if (items.length === 0) return null;\n\n return createPortal(\n <div\n ref={menuRef}\n style={{\n position: 'fixed',\n left: adjustedPos.x,\n top: adjustedPos.y,\n zIndex: 99999,\n boxShadow: 'var(--ds-shadow-menu)',\n borderRadius: 12,\n background: 'var(--ds-background-100)',\n padding: 'var(--geist-space-gap-quarter, 4px)',\n fontSize: 14,\n minWidth: 180,\n overflowX: 'hidden',\n overflowY: 'auto',\n }}\n >\n <div\n style={{\n display: 'block',\n color: 'var(--ds-gray-900)',\n fontSize: '0.75rem',\n padding: 'var(--geist-gap-quarter, 4px) var(--geist-space-2x, 8px)',\n fontWeight: 500,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: 240,\n borderBottom: '1px solid var(--ds-gray-alpha-400)',\n marginBottom: 4,\n }}\n >\n {menu.spanName}\n </div>\n {items.map((item) => (\n <button\n key={item.label}\n type=\"button\"\n style={{\n outline: 'none',\n cursor: item.disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n padding: '0 var(--geist-space-2x, 8px)',\n height: 40,\n textDecoration: 'none',\n borderRadius: 6,\n color: item.destructive\n ? 'var(--ds-red-900)'\n : 'var(--ds-gray-1000)',\n width: '100%',\n background: 'transparent',\n border: 'none',\n fontSize: 14,\n textAlign: 'left',\n opacity: item.disabled ? 0.4 : 1,\n transition: 'background 0.15s',\n }}\n disabled={item.disabled}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLButtonElement).style.background =\n 'var(--ds-gray-alpha-100)';\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLButtonElement).style.background =\n 'transparent';\n }}\n onClick={() => {\n item.action();\n onClose();\n }}\n >\n {item.icon ?? null}\n {item.label}\n </button>\n ))}\n </div>,\n document.body\n );\n}\n\n/** Inner wrapper that has access to the TraceViewer context */\nfunction TraceViewerWithContextMenu({\n trace,\n run,\n isLive,\n onWakeUpSleep,\n onCancelRun,\n onResolveHook,\n onLoadMoreSpans,\n hasMoreSpans = false,\n isLoadingMoreSpans = false,\n children,\n}: {\n trace: { spans: Span[] };\n run: WorkflowRun;\n isLive: boolean;\n onWakeUpSleep?: (\n runId: string,\n correlationId: string\n ) => Promise<{ stoppedCount: number }>;\n onCancelRun?: (runId: string) => Promise<void>;\n onResolveHook?: (\n hookToken: string,\n payload: unknown,\n hook?: Hook\n ) => Promise<void>;\n onLoadMoreSpans?: () => void | Promise<void>;\n hasMoreSpans?: boolean;\n isLoadingMoreSpans?: boolean;\n children: ReactNode;\n}): ReactNode {\n const toast = useToast();\n const { state, dispatch } = useTraceViewer();\n\n // Drive active span widths at 60fps without React re-renders\n useLiveTick(isLive);\n const [contextMenu, setContextMenu] = useState<ContextMenuState | null>(null);\n const [resolveHookTarget, setResolveHookTarget] = useState<{\n hookId: string;\n token: string;\n } | null>(null);\n const [resolvingHook, setResolvingHook] = useState(false);\n // Track hooks resolved in this session so the context menu item hides immediately\n const [resolvedHookIds, setResolvedHookIds] = useState<Set<string>>(\n new Set()\n );\n\n // Build a lookup map: spanId -> span\n const spanLookup = useMemo(() => {\n const map = new Map<string, Span>();\n for (const span of trace.spans) {\n map.set(span.spanId, span);\n }\n return map;\n }, [trace.spans]);\n\n const handleResolveHook = useCallback(\n async (payload: unknown) => {\n if (resolvingHook || !resolveHookTarget || !onResolveHook) return;\n if (!resolveHookTarget.token) {\n toast.error('Unable to resolve hook', {\n description:\n 'Missing hook token. Try refreshing the run data and retry.',\n });\n return;\n }\n try {\n setResolvingHook(true);\n await onResolveHook(resolveHookTarget.token, payload);\n toast.success('Hook resolved', {\n description: 'The payload has been sent and the hook resolved.',\n });\n // Mark this hook as resolved locally so the menu item hides immediately\n setResolvedHookIds((prev) =>\n new Set(prev).add(resolveHookTarget.hookId)\n );\n setResolveHookTarget(null);\n } catch (err) {\n console.error('Failed to resolve hook:', err);\n toast.error('Failed to resolve hook', {\n description:\n err instanceof Error ? err.message : 'An unknown error occurred',\n });\n } finally {\n setResolvingHook(false);\n }\n },\n [onResolveHook, resolveHookTarget, resolvingHook]\n );\n\n const handleContextMenu = useCallback(\n (e: ReactMouseEvent | MouseEvent): void => {\n const target = e.target as HTMLElement;\n const $button = target.closest<HTMLButtonElement>('[data-span-id]');\n if (!$button) return;\n\n const spanId = $button.dataset.spanId;\n if (!spanId) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const span = spanLookup.get(spanId);\n if (!span) return;\n\n const resourceType =\n (span.attributes.resource as ResourceType) ?? 'unknown';\n const spanData = span.attributes.data as\n | Record<string, unknown>\n | undefined;\n const isActive = !spanData?.completedAt && !spanData?.disposedAt;\n\n setContextMenu({\n x: e.clientX,\n y: e.clientY,\n spanId,\n spanName: span.name,\n resourceType,\n isActive,\n });\n },\n [spanLookup]\n );\n\n const containerRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n const $container = containerRef.current;\n if (!$container) return;\n\n const onContextMenu = (event: MouseEvent): void => {\n handleContextMenu(event);\n };\n $container.addEventListener('contextmenu', onContextMenu);\n\n return () => {\n $container.removeEventListener('contextmenu', onContextMenu);\n };\n }, [handleContextMenu]);\n\n const loadingMoreRef = useRef(false);\n useEffect(() => {\n const timeline = state.timelineRef.current;\n if (!timeline || !onLoadMoreSpans || !hasMoreSpans) {\n return;\n }\n\n const thresholdPx = 200;\n const maybeLoadMore = () => {\n if (loadingMoreRef.current || isLoadingMoreSpans || !hasMoreSpans) {\n return;\n }\n const remaining =\n timeline.scrollHeight - timeline.scrollTop - timeline.clientHeight;\n if (remaining > thresholdPx) {\n return;\n }\n\n loadingMoreRef.current = true;\n Promise.resolve(onLoadMoreSpans()).finally(() => {\n loadingMoreRef.current = false;\n });\n };\n\n timeline.addEventListener('scroll', maybeLoadMore);\n maybeLoadMore();\n return () => {\n timeline.removeEventListener('scroll', maybeLoadMore);\n };\n }, [state.timelineRef, onLoadMoreSpans, hasMoreSpans, isLoadingMoreSpans]);\n\n const closeMenu = useCallback(() => {\n setContextMenu(null);\n }, []);\n\n const getMenuItems = useCallback(\n (menu: ContextMenuState): ContextMenuItem[] => {\n const items: ContextMenuItem[] = [];\n\n // Sleep-specific: Wake Up (only on active runs)\n const isRunActive = !run.completedAt;\n if (\n menu.resourceType === 'sleep' &&\n menu.isActive &&\n isRunActive &&\n onWakeUpSleep\n ) {\n items.push({\n label: 'Wake Up Sleep',\n icon: <Clock className=\"h-3.5 w-3.5\" />,\n action: () => {\n onWakeUpSleep(run.runId, menu.spanId)\n .then((result) => {\n if (result.stoppedCount > 0) {\n toast.success('Sleep woken up', {\n description: `Woke up ${String(result.stoppedCount)} sleep${result.stoppedCount > 1 ? 's' : ''}`,\n });\n } else {\n toast.info('No active sleeps found', {\n description: 'The sleep may have already completed.',\n });\n }\n })\n .catch((err: unknown) => {\n toast.error('Failed to wake up sleep', {\n description:\n err instanceof Error\n ? err.message\n : 'An unknown error occurred',\n });\n });\n },\n });\n }\n\n // Hook-specific: Resolve Hook (only on active, unresolved hooks)\n if (menu.resourceType === 'hook' && isRunActive && onResolveHook) {\n const span = spanLookup.get(menu.spanId);\n const hookData = span?.attributes?.data as\n | { token?: string; disposedAt?: unknown }\n | undefined;\n // Check data-level disposedAt, span events, AND local resolved state\n const isDisposed =\n Boolean(hookData?.disposedAt) ||\n Boolean(span?.events?.some((e) => e.name === 'hook_disposed')) ||\n resolvedHookIds.has(menu.spanId);\n if (hookData?.token && !isDisposed) {\n items.push({\n label: 'Resolve Hook',\n icon: <Send className=\"h-3.5 w-3.5\" />,\n action: () => {\n setResolveHookTarget({\n hookId: menu.spanId,\n token: hookData.token!,\n });\n },\n });\n }\n }\n\n // Run-specific: Cancel (only on active runs)\n if (menu.resourceType === 'run' && isRunActive && onCancelRun) {\n items.push({\n label: 'Cancel Run',\n icon: <XCircle className=\"h-3.5 w-3.5\" />,\n destructive: true,\n action: () => {\n onCancelRun(run.runId).catch((err: unknown) => {\n toast.error('Failed to cancel run', {\n description:\n err instanceof Error\n ? err.message\n : 'An unknown error occurred',\n });\n });\n },\n });\n }\n\n // Common actions\n items.push({\n label: 'View Details',\n icon: <Info className=\"h-3.5 w-3.5\" />,\n action: () => {\n dispatch({ type: 'select', id: menu.spanId });\n },\n });\n\n items.push({\n label: 'Copy Name',\n icon: <Type className=\"h-3.5 w-3.5\" />,\n action: () => {\n navigator.clipboard\n .writeText(menu.spanName)\n .then(() => {\n toast.success('Name copied to clipboard');\n })\n .catch(() => {\n toast.error('Failed to copy name');\n });\n },\n });\n\n items.push({\n label: 'Copy ID',\n icon: <Copy className=\"h-3.5 w-3.5\" />,\n action: () => {\n navigator.clipboard\n .writeText(menu.spanId)\n .then(() => {\n toast.success('ID copied to clipboard');\n })\n .catch(() => {\n toast.error('Failed to copy ID');\n });\n },\n });\n\n return items;\n },\n [\n dispatch,\n onWakeUpSleep,\n onCancelRun,\n onResolveHook,\n spanLookup,\n resolvedHookIds,\n run.runId,\n run.completedAt,\n ]\n );\n\n return (\n <div className=\"relative w-full h-full\" ref={containerRef}>\n {children}\n {contextMenu ? (\n <SpanContextMenu\n menu={contextMenu}\n items={getMenuItems(contextMenu)}\n onClose={closeMenu}\n />\n ) : null}\n <ResolveHookModal\n isOpen={resolveHookTarget !== null}\n onClose={() => setResolveHookTarget(null)}\n onSubmit={handleResolveHook}\n isSubmitting={resolvingHook}\n />\n </div>\n );\n}\n\n/** Re-export SpanSelectionInfo for consumers */\nexport type { SpanSelectionInfo };\n\n// ---------------------------------------------------------------------------\n// Bridge: reads selected span from trace viewer context and notifies parent\n// ---------------------------------------------------------------------------\n\n/**\n * Bridge component that lives INSIDE the TraceViewerContextProvider and\n * reads the selected span info, passing it up to the parent via callback.\n * This allows the parent to render the detail panel OUTSIDE the context.\n */\nfunction SelectionBridge({\n onSelectionChange,\n}: {\n onSelectionChange: (info: SelectedSpanInfo | null) => void;\n}) {\n const { state } = useTraceViewer();\n const { selected } = state;\n const onSelectionChangeRef = useRef(onSelectionChange);\n onSelectionChangeRef.current = onSelectionChange;\n const prevSpanIdRef = useRef<string | undefined>(undefined);\n\n useEffect(() => {\n const currentSpanId = selected?.span.spanId;\n if (currentSpanId === prevSpanIdRef.current) return;\n prevSpanIdRef.current = currentSpanId;\n\n if (selected) {\n onSelectionChangeRef.current({\n data: selected.span.attributes?.data,\n resource: selected.span.attributes?.resource as string | undefined,\n spanId: selected.span.spanId,\n });\n } else {\n onSelectionChangeRef.current(null);\n }\n }, [selected]);\n\n return null;\n}\n\n/**\n * Bridge component to deselect from outside the context.\n */\nfunction DeselectBridge({ triggerDeselect }: { triggerDeselect: number }) {\n const { dispatch } = useTraceViewer();\n\n useEffect(() => {\n if (triggerDeselect > 0) {\n dispatch({ type: 'deselect' });\n }\n }, [triggerDeselect, dispatch]);\n\n return null;\n}\n\n/**\n * Bridge component to select a span from outside the context.\n */\nfunction SelectBridge({\n selectRequest,\n}: {\n selectRequest: { id: string; token: number } | null;\n}) {\n const { dispatch } = useTraceViewer();\n\n useEffect(() => {\n if (selectRequest?.id) {\n dispatch({ type: 'select', id: selectRequest.id });\n }\n }, [dispatch, selectRequest]);\n\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Panel chrome (header with name/duration, close button)\n// ---------------------------------------------------------------------------\n\nfunction PanelResizeHandle({\n onResize,\n}: {\n onResize: (deltaX: number) => void;\n}) {\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault();\n let lastX = e.clientX;\n const onPointerMove = (moveEvent: PointerEvent) => {\n const deltaX = lastX - moveEvent.clientX;\n lastX = moveEvent.clientX;\n onResize(deltaX);\n };\n const onPointerUp = () => {\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', onPointerUp);\n };\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', onPointerUp);\n },\n [onResize]\n );\n\n return (\n <div\n className=\"absolute left-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-blue-400/50 z-10\"\n onPointerDown={handlePointerDown}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// Trace viewer footer — loading / waiting indicator\n// ---------------------------------------------------------------------------\n\nfunction TraceViewerFooter({\n hasMore,\n isLive,\n isInitialLoading,\n}: {\n hasMore: boolean;\n isLive: boolean;\n isInitialLoading: boolean;\n}): ReactNode {\n const style = { color: 'var(--ds-gray-900)' };\n if (hasMore || isInitialLoading) {\n return (\n <div\n className=\"flex items-center justify-center gap-2 py-3 text-xs\"\n style={style}\n >\n <Spinner size={14} />\n Loading more events…\n </div>\n );\n }\n if (isLive) {\n return (\n <div\n className=\"flex items-center justify-center py-3 text-xs\"\n style={style}\n >\n Waiting for more events…\n </div>\n );\n }\n return (\n <div\n className=\"flex items-center justify-center py-3 text-xs\"\n style={style}\n >\n End of run\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Main component\n// ---------------------------------------------------------------------------\n\nexport const WorkflowTraceViewer = ({\n run,\n events,\n isLoading,\n error,\n spanDetailData,\n spanDetailLoading,\n spanDetailError,\n onWakeUpSleep,\n onResolveHook,\n onCancelRun,\n onStreamClick,\n onSpanSelect,\n onLoadEventData,\n onLoadMoreSpans,\n hasMoreSpans = false,\n isLoadingMoreSpans = false,\n encryptionKey,\n onDecrypt,\n isDecrypting = false,\n hasEncryptedData = false,\n}: {\n run: WorkflowRun;\n events: Event[];\n isLoading?: boolean;\n error?: Error | null;\n spanDetailData?: WorkflowRun | Step | Hook | Event | null;\n spanDetailLoading?: boolean;\n spanDetailError?: Error | null;\n onWakeUpSleep?: (\n runId: string,\n correlationId: string\n ) => Promise<{ stoppedCount: number }>;\n onResolveHook?: (\n hookToken: string,\n payload: unknown,\n hook?: Hook\n ) => Promise<void>;\n /** Callback to cancel the current run */\n onCancelRun?: (runId: string) => Promise<void>;\n /** Callback when a stream reference is clicked in the detail panel */\n onStreamClick?: (streamId: string) => void;\n /** Callback when a span is selected. */\n onSpanSelect?: (info: SpanSelectionInfo) => void;\n /** Callback to load event data for a specific event (lazy loading in sidebar) */\n onLoadEventData?: (\n correlationId: string,\n eventId: string\n ) => Promise<unknown | null>;\n /** Load next trace page when vertical scroll reaches bottom. */\n onLoadMoreSpans?: () => void | Promise<void>;\n /** Whether trace pagination has more data to load. */\n hasMoreSpans?: boolean;\n /** Whether trace pagination is currently fetching another page. */\n isLoadingMoreSpans?: boolean;\n /** Encryption key (available after Decrypt), threaded to event list for re-loading */\n encryptionKey?: Uint8Array;\n /** Callback to initiate decryption of encrypted run data */\n onDecrypt?: () => void;\n /** Whether the encryption key is currently being fetched */\n isDecrypting?: boolean;\n /** Run-level hint: the run contains encrypted data (from probe). */\n hasEncryptedData?: boolean;\n}) => {\n const toast = useToast();\n const [selectedSpan, setSelectedSpan] = useState<SelectedSpanInfo | null>(\n null\n );\n const [panelWidth, setPanelWidth] = useState(DEFAULT_PANEL_WIDTH);\n const [deselectTrigger, setDeselectTrigger] = useState(0);\n const [selectRequest, setSelectRequest] = useState<{\n id: string;\n token: number;\n } | null>(null);\n\n const isLive = Boolean(run && !run.completedAt);\n\n // Build trace only when actual data changes — no timer-driven rebuilds.\n // Active span widths are animated imperatively by useLiveTick at 60fps.\n const traceWithMeta: TraceWithMeta | undefined = useMemo(() => {\n if (!run?.runId) {\n return undefined;\n }\n return buildTrace(run, events, new Date());\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `new Date()` is intentionally not a dep; useLiveTick handles live growth\n }, [run, events]);\n const trace = traceWithMeta;\n\n useEffect(() => {\n if (error && !isLoading) {\n console.error(error);\n toast.error('Error loading workflow trace data', {\n description: error.message,\n });\n }\n }, [error, isLoading]);\n\n const handleSpanSelect = useCallback(\n (info: SpanSelectionInfo) => {\n onSpanSelect?.(info);\n },\n [onSpanSelect]\n );\n\n const handleSelectionChange = useCallback(\n (info: SelectedSpanInfo | null) => {\n if (info) {\n // Filter raw events by the selected span's correlationId (stepId/hookId)\n // This bypasses the trace worker pipeline entirely.\n const correlationId = info.spanId;\n const rawEvents = correlationId\n ? events.filter((e) => e.correlationId === correlationId)\n : [];\n setSelectedSpan({ ...info, rawEvents });\n } else {\n setSelectedSpan(null);\n }\n },\n [events]\n );\n\n // Keep selected span raw events live as polling updates arrive.\n useEffect(() => {\n const correlationId = selectedSpan?.spanId;\n if (!correlationId) return;\n\n const nextRawEvents = events.filter(\n (e) => e.correlationId === correlationId\n );\n setSelectedSpan((prev) => {\n if (!prev || prev.spanId !== correlationId) {\n return prev;\n }\n\n const prevRawEvents = prev.rawEvents ?? [];\n const isSame =\n prevRawEvents.length === nextRawEvents.length &&\n prevRawEvents.every(\n (event, index) => event.eventId === nextRawEvents[index]?.eventId\n );\n if (isSame) {\n return prev;\n }\n\n return {\n ...prev,\n rawEvents: nextRawEvents,\n };\n });\n }, [events, selectedSpan?.spanId]);\n\n const handleClose = useCallback(() => {\n setSelectedSpan(null);\n setDeselectTrigger((n) => n + 1);\n }, []);\n\n const handleResize = useCallback((deltaX: number) => {\n setPanelWidth((w) => Math.max(MIN_PANEL_WIDTH, w + deltaX));\n }, []);\n const selectedSpanIndex = useMemo(() => {\n if (!selectedSpan?.spanId || !trace) return -1;\n return trace.spans.findIndex((span) => span.spanId === selectedSpan.spanId);\n }, [selectedSpan?.spanId, trace]);\n const canSelectPrevSpan = selectedSpanIndex > 0;\n const canSelectNextSpan =\n selectedSpanIndex >= 0 &&\n trace != null &&\n selectedSpanIndex < trace.spans.length - 1;\n const handleSelectPrevSpan = useCallback(() => {\n if (!trace || selectedSpanIndex <= 0) return;\n const targetId = trace.spans[selectedSpanIndex - 1]?.spanId;\n if (!targetId) return;\n setSelectRequest({ id: targetId, token: Date.now() });\n }, [selectedSpanIndex, trace]);\n const handleSelectNextSpan = useCallback(() => {\n if (!trace || selectedSpanIndex < 0) return;\n const targetId = trace.spans[selectedSpanIndex + 1]?.spanId;\n if (!targetId) return;\n setSelectRequest({ id: targetId, token: Date.now() });\n }, [selectedSpanIndex, trace]);\n\n // Get the selected span name for the panel header\n const selectedSpanName = useMemo(() => {\n if (!selectedSpan?.data) return undefined;\n const data = selectedSpan.data as Record<string, unknown>;\n const stepName = data.stepName as string | undefined;\n const workflowName = data.workflowName as string | undefined;\n return (\n (stepName ? parseStepName(stepName)?.shortName : undefined) ??\n (workflowName ? parseWorkflowName(workflowName)?.shortName : undefined) ??\n stepName ??\n workflowName ??\n (data.hookId as string) ??\n 'Details'\n );\n }, [selectedSpan?.data]);\n\n if (!trace) {\n return (\n <div className=\"relative w-full h-full\">\n <div className=\"border-b border-gray-alpha-400 w-full\" />\n <Skeleton className=\"w-full ml-2 mt-1 mb-1 h-[56px]\" />\n <div className=\"p-2 relative w-full\">\n <Skeleton className=\"w-full mt-6 h-[20px]\" />\n <Skeleton className=\"w-[10%] mt-2 ml-6 h-[20px]\" />\n <Skeleton className=\"w-[10%] mt-2 ml-12 h-[20px]\" />\n <Skeleton className=\"w-[20%] mt-2 ml-16 h-[20px]\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"relative w-full h-full flex\">\n {/* Timeline (takes remaining space) */}\n <div className=\"flex-1 min-w-0 relative\">\n <TraceViewerContextProvider\n customSpanClassNameFunc={getCustomSpanClassName}\n customSpanEventClassNameFunc={getCustomSpanEventClassName}\n >\n <SelectionBridge onSelectionChange={handleSelectionChange} />\n <DeselectBridge triggerDeselect={deselectTrigger} />\n <SelectBridge selectRequest={selectRequest} />\n <TraceViewerWithContextMenu\n trace={trace}\n run={run}\n isLive={isLive}\n onWakeUpSleep={onWakeUpSleep}\n onCancelRun={onCancelRun}\n onResolveHook={onResolveHook}\n onLoadMoreSpans={onLoadMoreSpans}\n hasMoreSpans={hasMoreSpans}\n isLoadingMoreSpans={isLoadingMoreSpans}\n >\n <TraceViewerTimeline\n eagerRender\n height=\"100%\"\n isLive={isLive}\n trace={trace}\n knownDurationMs={traceWithMeta?.knownDurationMs}\n hasMoreData={hasMoreSpans || Boolean(isLoading)}\n footer={\n <TraceViewerFooter\n hasMore={hasMoreSpans}\n isLive={isLive}\n isInitialLoading={Boolean(isLoading)}\n />\n }\n />\n </TraceViewerWithContextMenu>\n </TraceViewerContextProvider>\n </div>\n\n {/* Detail panel (rendered outside the context, as a sibling) */}\n {selectedSpan && (\n <div\n className=\"relative border-l flex-shrink-0 flex flex-col\"\n style={{\n width: panelWidth,\n borderColor: 'var(--ds-gray-200)',\n backgroundColor: 'var(--ds-background-100)',\n }}\n >\n <PanelResizeHandle onResize={handleResize} />\n {/* Panel header */}\n <div\n className=\"flex items-center justify-between px-3 py-2 border-y flex-shrink-0\"\n style={{ borderColor: 'var(--ds-gray-200)' }}\n >\n <div className=\"min-w-0 flex-1\">\n <div\n className=\"text-sm font-medium truncate\"\n style={{ color: 'var(--ds-gray-1000)' }}\n title={selectedSpanName}\n >\n {selectedSpanName}\n </div>\n </div>\n <div className=\"flex items-center\">\n <button\n type=\"button\"\n aria-label=\"Previous span\"\n onClick={handleSelectPrevSpan}\n disabled={!canSelectPrevSpan}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 6,\n width: 24,\n height: 24,\n padding: 0,\n borderRadius: 6,\n border: 'none',\n background: 'transparent',\n color: 'var(--ds-gray-700)',\n cursor: canSelectPrevSpan ? 'pointer' : 'not-allowed',\n opacity: canSelectPrevSpan ? 1 : 0.45,\n flexShrink: 0,\n transition: 'background 0.15s',\n }}\n onMouseEnter={(e) => {\n if (!canSelectPrevSpan) return;\n e.currentTarget.style.background = 'var(--ds-gray-alpha-100)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = 'transparent';\n }}\n >\n <ChevronUp size={16} />\n </button>\n <button\n type=\"button\"\n aria-label=\"Next span\"\n onClick={handleSelectNextSpan}\n disabled={!canSelectNextSpan}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 2,\n width: 24,\n height: 24,\n padding: 0,\n borderRadius: 6,\n border: 'none',\n background: 'transparent',\n color: 'var(--ds-gray-700)',\n cursor: canSelectNextSpan ? 'pointer' : 'not-allowed',\n opacity: canSelectNextSpan ? 1 : 0.45,\n flexShrink: 0,\n transition: 'background 0.15s',\n }}\n onMouseEnter={(e) => {\n if (!canSelectNextSpan) return;\n e.currentTarget.style.background = 'var(--ds-gray-alpha-100)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = 'transparent';\n }}\n >\n <ChevronDown size={16} />\n </button>\n </div>\n <div\n className=\"flex items-center\"\n style={{\n borderLeft: '1px solid var(--ds-gray-300)',\n marginLeft: 6,\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Close panel\"\n onClick={handleClose}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 6,\n width: 24,\n height: 24,\n padding: 0,\n borderRadius: 6,\n border: 'none',\n background: 'transparent',\n color: 'var(--ds-gray-700)',\n cursor: 'pointer',\n flexShrink: 0,\n transition: 'background 0.15s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = 'var(--ds-gray-alpha-100)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = 'transparent';\n }}\n >\n <X size={16} />\n </button>\n </div>\n </div>\n {/* Panel body */}\n <div className=\"flex-1 overflow-y-auto\">\n <ErrorBoundary title=\"Failed to load entity details\">\n <EntityDetailPanel\n run={run}\n onStreamClick={onStreamClick}\n spanDetailData={spanDetailData ?? null}\n spanDetailError={spanDetailError}\n spanDetailLoading={spanDetailLoading}\n onSpanSelect={handleSpanSelect}\n onWakeUpSleep={onWakeUpSleep}\n onLoadEventData={onLoadEventData}\n onResolveHook={onResolveHook}\n encryptionKey={encryptionKey}\n onDecrypt={onDecrypt}\n isDecrypting={isDecrypting}\n selectedSpan={selectedSpan}\n hasEncryptedData={hasEncryptedData}\n />\n </ErrorBoundary>\n </div>\n </div>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-colors.js","sourceRoot":"","sources":["../../../src/components/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,SAA6B;IAE7B,iBAAiB;IACjB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE,mBAAmB;YAC/B,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,mBAAmB;SAC/B,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,qBAAqB;YACjC,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,qBAAqB;SACjC,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO;YACL,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,sBAAsB;SAClC,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,oBAAoB;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA6B;IAClE,8CAA8C;IAC9C,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"event-colors.js","sourceRoot":"","sources":["../../../src/components/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,SAA6B;IAE7B,iBAAiB;IACjB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE,mBAAmB;YAC/B,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,mBAAmB;SAC/B,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,qBAAqB;YACjC,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,qBAAqB;SACjC,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO;YACL,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,sBAAsB;SAClC,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,oBAAoB;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA6B;IAClE,8CAA8C;IAC9C,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Color utilities for workflow event markers\n */\n\nimport type { Event } from '@workflow/world';\n\nexport interface EventColorPalette {\n /** Color of the diamond/marker itself */\n color: string;\n /** Background color for hover info popup */\n background: string;\n /** Border color for hover info popup */\n border: string;\n /** Text color for event name in hover popup */\n text: string;\n /** Secondary text color for timestamp in hover popup */\n secondary: string;\n}\n\n/**\n * Get the color palette for an event based on its type\n * - Red for failures (step_failed, run_failed)\n * - Orange/yellow for retries (step_retrying)\n * - Purple for webhook-related events\n * - Blue otherwise (default)\n */\nexport function getEventColor(\n eventType: Event['eventType']\n): EventColorPalette {\n // Failures - Red\n if (eventType === 'step_failed' || eventType === 'run_failed') {\n return {\n color: 'var(--ds-red-600)',\n background: 'var(--ds-red-100)',\n border: 'var(--ds-red-500)',\n text: 'var(--ds-red-900)',\n secondary: 'var(--ds-red-700)',\n };\n }\n\n // Retries - Orange/Yellow\n if (eventType === 'step_retrying') {\n return {\n color: 'var(--ds-amber-600)',\n background: 'var(--ds-amber-100)',\n border: 'var(--ds-amber-500)',\n text: 'var(--ds-amber-900)',\n secondary: 'var(--ds-amber-700)',\n };\n }\n\n // Webhook-related - Purple\n if (\n eventType === 'hook_created' ||\n eventType === 'hook_received' ||\n eventType === 'hook_disposed'\n ) {\n return {\n color: 'var(--ds-purple-600)',\n background: 'var(--ds-purple-100)',\n border: 'var(--ds-purple-500)',\n text: 'var(--ds-purple-900)',\n secondary: 'var(--ds-purple-700)',\n };\n }\n\n // Default - Blue\n return {\n color: 'var(--ds-blue-600)',\n background: 'var(--ds-blue-100)',\n border: 'var(--ds-blue-500)',\n text: 'var(--ds-blue-900)',\n secondary: 'var(--ds-blue-700)',\n };\n}\n\n/**\n * Determine whether to show a vertical line for an event\n * - Show vertical lines for hook-related events\n * - Hide vertical lines for all other workflow events by default\n */\nexport function shouldShowVerticalLine(eventType: Event['eventType']): boolean {\n // Show vertical lines for hook-related events\n if (\n eventType === 'hook_created' ||\n eventType === 'hook_received' ||\n eventType === 'hook_disposed'\n ) {\n return true;\n }\n\n // Hide vertical lines for all other workflow events\n return false;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-colors.js","sourceRoot":"","sources":["../../../src/components/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA8C,EAC9C,UAAU,GAAG,KAAK;IAElB,IAAI,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAc,EAAU,EAAE;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IAEtC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAY,CAAC;QACzC,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAEpC,yCAAyC;QACzC,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;QAClD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAmB,CAAC;QAC/C,OAAO,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAwB,EAChB,EAAE;IACV,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAEvC,uBAAuB;IACvB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,iBAAiB;IACjB,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"trace-colors.js","sourceRoot":"","sources":["../../../src/components/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA8C,EAC9C,UAAU,GAAG,KAAK;IAElB,IAAI,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAc,EAAU,EAAE;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IAEtC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAY,CAAC;QACzC,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAEpC,yCAAyC;QACzC,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;QAClD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAmB,CAAC;QAC/C,OAAO,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAwB,EAChB,EAAE;IACV,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAEvC,uBAAuB;IACvB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,iBAAiB;IACjB,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["/**\n * Color utilities for workflow traces\n */\n\nimport type { Step, WorkflowRun } from '@workflow/world';\nimport styles from '../trace-viewer/trace-viewer.module.css';\nimport type { SpanNode, SpanNodeEvent } from '../trace-viewer/types';\n\n/**\n * Get the CSS class name for a workflow entity based on its status\n */\nfunction getStatusClassName(\n status: Step['status'] | WorkflowRun['status'],\n isStripped = false\n): string {\n if (isStripped && status === 'pending') {\n return styles.spanPendingStriped;\n }\n\n switch (status) {\n case 'running':\n return styles.spanRunning;\n case 'pending':\n return styles.spanPending;\n case 'completed':\n return styles.spanCompleted;\n case 'cancelled':\n return styles.spanCancelled;\n case 'failed':\n return styles.spanFailed;\n default:\n return '';\n }\n}\n\n/**\n * Check if a step name indicates it's a sleep step\n */\nfunction isSleepStep(stepName: string): boolean {\n return String(stepName).toLowerCase().endsWith('sleep');\n}\n\n/**\n * Get custom CSS class name for a span based on its attributes\n * This is called dynamically by the trace viewer to style spans\n */\nexport const getCustomSpanClassName = (span: SpanNode): string => {\n const attributes = span.span.attributes;\n const resource = attributes?.resource;\n\n if (resource === 'step') {\n const stepData = attributes.data as Step;\n const stepName = stepData?.stepName;\n\n // DEPRECATED: Check if it's a sleep step\n if (stepName && isSleepStep(stepName)) {\n return styles.spanSleep;\n }\n\n // Regular step - use status colors\n const isStripped = stepData?.status === 'pending';\n return getStatusClassName(stepData?.status, isStripped);\n }\n\n if (resource === 'run') {\n const runData = attributes.data as WorkflowRun;\n return getStatusClassName(runData?.status, false);\n }\n\n if (resource === 'hook') {\n return styles.spanHook;\n }\n\n if (resource === 'sleep') {\n return styles.spanSleep;\n }\n\n // Default: no custom class\n return '';\n};\n\n/**\n * Get custom CSS class name for a span event based on its type\n * This is called dynamically by the trace viewer to style event markers\n */\nexport const getCustomSpanEventClassName = (\n spanEvent: SpanNodeEvent\n): string => {\n const eventName = spanEvent.event.name;\n\n // Failure events - Red\n if (eventName === 'step_failed' || eventName === 'run_failed') {\n return styles.eventFailed;\n }\n\n // Retry events - Orange/Yellow\n if (eventName === 'step_retrying') {\n return styles.eventRetrying;\n }\n\n // Webhook-related events - Purple\n if (\n eventName === 'hook_created' ||\n eventName === 'hook_received' ||\n eventName === 'hook_disposed'\n ) {\n return styles.eventHook;\n }\n\n // Default - Blue\n return styles.eventDefault;\n};\n"]}
|