@zag-js/splitter
Version:
Core logic for the splitter widget implemented as a state machine
37 lines (33 loc) • 1.56 kB
TypeScript
import { Style } from '@zag-js/types';
import { PanelData, PanelSize, DragState } from '../splitter.types.js';
import '@zag-js/core';
import './registry.js';
/**
* This code was modified from react-resizable-panels by Brian Vaughn
* @see https://github.com/bvaughn/react-resizable-panels
*/
declare function getPanelById<T extends PanelData>(panels: T[], id: string): T;
declare function findPanelDataIndex(panels: PanelData[], panel: PanelData): number;
declare function findPanelIndex(panels: PanelData[], id: string): number;
declare function panelDataHelper<T extends PanelData>(panels: T[], panel: T, sizes: number[]): T & {
panelSize: number;
pivotIndices: number[];
};
declare function sortPanels(panels: PanelData[]): PanelData[];
declare function getPanelLayout(panels: PanelData[]): string;
declare function serializePanels(panels: PanelData[]): string;
declare function getPanelFlexBoxStyle({ size, defaultSize, dragState, resolvedSizes, panels, panelIndex, horizontal, precision, }: {
size: PanelSize | undefined;
defaultSize: PanelSize | undefined;
resolvedSizes: number[];
dragState: DragState | null;
panels: PanelData[];
panelIndex: number;
horizontal: boolean;
precision?: number | undefined;
}): Style;
declare function getUnsafeDefaultSize({ panels, size: sizes }: {
panels: PanelData[];
size: number[];
}): number[];
export { findPanelDataIndex, findPanelIndex, getPanelById, getPanelFlexBoxStyle, getPanelLayout, getUnsafeDefaultSize, panelDataHelper, serializePanels, sortPanels };