import type React from "react"; import type { ViewProps } from "../../components/View"; import type { UseDragCallbackArgs } from "../../hooks/_internal/useDrag"; export type Props = { /** Component render variant */ variant?: "bordered" | "borderless"; /** Component content direction with the resize handle rendered in between the chidlren */ direction?: Extract; } & Pick; export type ItemProps = { /** Node for inserting content */ children: React.ReactNode; /** Minimum size of the resizable pane */ minSize?: `${number}px`; /** Maximum size of the resizable pane */ maxSize?: `${number}px`; /** Default size of the resizable pane */ defaultSize?: `${number}px`; }; export type HandleProps = { /** Render function for custom resize handles with attributes and props passed as arguments */ children?: (attributes: { ref: React.RefObject; }, props: Pick & { status: "idle" | "dragging"; }) => React.ReactNode; }; export type Context = { containerRef: React.RefObject; registerItem: (el: HTMLDivElement, getProps: Pick) => () => void; onDrag: (args: UseDragCallbackArgs & { handleEl: HTMLElement; }) => void; } & Pick;