@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
56 lines • 1.43 kB
text/typescript
import { Axis, Placement } from "./axes.mjs";
import { MotionValue } from "motion/react";
//#region src/base-ui/DraggablePanel/core/controller.d.ts
interface PanelControllerOptions {
collapseThreshold?: number;
defaultSize: number;
expand: boolean;
max?: number;
min: number;
onExpandChange?: (expand: boolean) => void;
onSizeChange?: (size: number, delta: number) => void;
onSizeDragging?: (size: number, delta: number) => void;
placement: Placement;
size: number;
}
interface PanelState {
collapsing: boolean;
dragging: boolean;
folding: boolean;
}
interface PanelKeyEvent {
key: string;
preventDefault: () => void;
shiftKey: boolean;
}
interface PanelController {
attach: (element: HTMLElement) => () => void;
axis: Axis;
bounds: () => {
max: number;
min: number;
};
drag: {
cancel: () => void;
end: () => void;
move: (offset: {
x: number;
y: number;
}) => void;
start: () => void;
};
motion: {
content: MotionValue<number>;
size: MotionValue<number>;
};
options: PanelControllerOptions;
reset: () => void;
resizeByKey: (event: PanelKeyEvent) => void;
state: PanelState;
subscribe: (listener: () => void) => () => void;
sync: (options: PanelControllerOptions) => void;
target: number;
}
//#endregion
export { PanelController, PanelControllerOptions, PanelKeyEvent, PanelState };
//# sourceMappingURL=controller.d.mts.map