diff --git a/packages/web-shared/src/components/index.ts b/packages/web-shared/src/components/index.ts index ee49551d80..dcf77a8842 100644 --- a/packages/web-shared/src/components/index.ts +++ b/packages/web-shared/src/components/index.ts @@ -15,6 +15,10 @@ export { } from './hook-actions'; export { RunTraceView } from './run-trace-view'; export { ConversationView } from './sidebar/conversation-view'; +export { + SidebarDataProvider, + type SidebarDataContextValue, +} from './sidebar/sidebar-data-context'; export type { SelectedSpanInfo, SpanSelectionInfo, diff --git a/packages/web-shared/src/components/new-trace-viewer/components/split-pane.tsx b/packages/web-shared/src/components/new-trace-viewer/components/split-pane.tsx index 545f87fc3f..ce5741450a 100644 --- a/packages/web-shared/src/components/new-trace-viewer/components/split-pane.tsx +++ b/packages/web-shared/src/components/new-trace-viewer/components/split-pane.tsx @@ -2,12 +2,9 @@ import { Children, - type Dispatch, - type KeyboardEvent, type ReactNode, type PointerEvent as ReactPointerEvent, - type RefObject, - type SetStateAction, + useCallback, useEffect, useRef, useState, @@ -16,6 +13,8 @@ import { cn } from '../../../lib/utils'; /** Wide enough for comfortable dragging; visual line stays 1px centered. */ const GUTTER_PX = 9; +const MIN_PX = 50; +const DEFAULT_START_PX = 340; export function Divider() { return
; @@ -24,70 +23,18 @@ export function Divider() { export interface SplitPaneProps { children: ReactNode; className?: string; - /** Initial width fraction for the first pane (0.15–0.85). */ - defaultRatio?: number; + /** Fixed pixel width for the start (left) pane. Default 220. */ + defaultStartWidth?: number; /** Fixed (non-scrolling) header rendered above the start pane. */ startHeader?: ReactNode; /** Fixed (non-scrolling) header rendered above the end pane. */ endHeader?: ReactNode; } -function clampRatio(v: number) { - return Math.min(0.85, Math.max(0.15, v)); -} - -function markUndoBaseline( - initialRatioRef: RefObject- {resourceId} -
-