linXiv frontend (TS/JS)
    Preparing search index...
    interface GraphPanelsProps {
        columnRef?: Ref<HTMLDivElement>;
        filter: GraphFilterState;
        forces: ForceSettings;
        hiddenSelectedCount: number;
        onClearFilters: () => void;
        onClearSelection: () => void;
        onFilterChange: (next: GraphFilterState) => void;
        onForcesChange: (next: ForceSettings) => void;
        onRelayout: () => void;
        onSelectAllVisible: () => void;
        selectedCount: number;
        view: GraphView;
    }
    Index
    columnRef?: Ref<HTMLDivElement>

    The column's own element, so the page can measure what it covers and let the canvas frame into the strip that is left.

    hiddenSelectedCount: number

    Selected papers the current filter state does not DRAW at all. Painting the highlight covers an ordinary 8% ghost, but these are genuinely off the canvas, so the count itself is the only honest place left to report them.

    onClearFilters: () => void
    onClearSelection: () => void
    onFilterChange: (next: GraphFilterState) => void
    onForcesChange: (next: ForceSettings) => void
    onRelayout: () => void
    onSelectAllVisible: () => void
    selectedCount: number
    view: GraphView