@witchcraft/layout
    Preparing search index...

    Interface UseFramesContext

    interface UseFramesContext {
        actionHandler: IActionHandler;
        cancel: () => void;
        forceRecalculateEdges: () => void;
        frames: ComputedRef<Record<string, LayoutFrame>>;
        intersections: ComputedRef<IntersectionEntry[]>;
        isMoving: Ref<false | "edge" | "frame" | "other">;
        isMovingFromWindowEdge: Ref<boolean>;
        moveDirections: Ref<
            Record<
                "horizontal"
                | "vertical",
                "up" | "down" | "left" | "right" | undefined,
            >,
        >;
        moveEnd: (e?: PointerEvent, options?: { apply?: boolean }) => void;
        moveHoveredFrame: ComputedRef<LayoutFrame | undefined>;
        movePoint: Ref<{ x: number; y: number } | undefined>;
        movingEdges: Ref<
            {
                endX: number;
                endY: number;
                error?: | KnownError<
                    LayoutError,
                    | {}
                    | { id: string
                    | undefined }
                    | { id: string | undefined }
                    | { size: { height: number; width: number } }
                    | Record<string, never>
                    | { frame: LayoutFrame }
                    | {
                        frame: LayoutFrame;
                        minSize: { height: number; width: number };
                        nearbyFrames: LayoutFrame[];
                    }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame; minSize: number; newSize: number }
                    | { frame: LayoutFrame; framesRequiredToBeDeleted: LayoutFrame[] }
                    | { frame: LayoutFrame }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left" | "right" | "top" | "bottom" | "center";
                    }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left"
                        | "right"
                        | "top"
                        | "bottom"
                        | "center";
                    }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left"
                        | "right"
                        | "top"
                        | "bottom"
                        | "center";
                    }
                    | { frame: LayoutFrame }
                    | { frameSizeNeeded: number; minFrameSize: number }
                    | { max: number; min: number; wanted: number }
                    | { problemEdgeCoordinates: number[] }
                    | { id: string; side: "left" | "right" | "top" | "bottom" }
                    | { frame: string }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame },
                >
                | { code: string; message: string };
                startX: number;
                startY: number;
            }[],
        >;
        movingFrameId: Ref<string | undefined>;
        movingIntersection: Ref<IntersectionEntry | undefined>;
        onMove: (e: PointerEvent) => void;
        showMoving: Ref<boolean>;
        state: ComputedRef<MoveState>;
        touchingFrames: Ref<Record<string, LayoutFrame>[]>;
        touchingFramesArrays: Ref<LayoutFrame[][]>;
        visualEdges: Ref<
            {
                endX: number;
                endY: number;
                error?: | KnownError<
                    LayoutError,
                    | {}
                    | { id: string
                    | undefined }
                    | { id: string | undefined }
                    | { size: { height: number; width: number } }
                    | Record<string, never>
                    | { frame: LayoutFrame }
                    | {
                        frame: LayoutFrame;
                        minSize: { height: number; width: number };
                        nearbyFrames: LayoutFrame[];
                    }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame; minSize: number; newSize: number }
                    | { frame: LayoutFrame; framesRequiredToBeDeleted: LayoutFrame[] }
                    | { frame: LayoutFrame }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left" | "right" | "top" | "bottom" | "center";
                    }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left"
                        | "right"
                        | "top"
                        | "bottom"
                        | "center";
                    }
                    | {
                        hoveredFrameId: string;
                        movingFrameId: string;
                        zoneSide: "left"
                        | "right"
                        | "top"
                        | "bottom"
                        | "center";
                    }
                    | { frame: LayoutFrame }
                    | { frameSizeNeeded: number; minFrameSize: number }
                    | { max: number; min: number; wanted: number }
                    | { problemEdgeCoordinates: number[] }
                    | { id: string; side: "left" | "right" | "top" | "bottom" }
                    | { frame: string }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame }
                    | { frame: LayoutFrame },
                >
                | { code: string; message: string };
                startX: number;
                startY: number;
            }[],
        >;
        moveStart<
            T extends "edge"
            | "frame"
            | "other",
            TContextType extends never,
            TContext extends unknown,
            TContextReturn extends unknown,
            TContextMoveType extends unknown,
            TContextContext extends unknown,
            TType extends unknown,
        >(
            e: PointerEvent | undefined,
            type: TType,
            data: T extends "edge"
                ? EdgeMoveStartData
                : T extends "frame" ? FrameMoveStartData : undefined,
            opts?: {
                context?: { type: TContextType } & TContextContext;
                endEvent?: string;
                moveEvent?: string;
            },
        ): TContext extends never ? Promise<void> : Promise<TContextReturn>;
    }
    Index

    Properties

    actionHandler: IActionHandler
    cancel: () => void
    forceRecalculateEdges: () => void
    frames: ComputedRef<Record<string, LayoutFrame>>
    intersections: ComputedRef<IntersectionEntry[]>
    isMoving: Ref<false | "edge" | "frame" | "other">
    isMovingFromWindowEdge: Ref<boolean>
    moveDirections: Ref<
        Record<
            "horizontal"
            | "vertical",
            "up" | "down" | "left" | "right" | undefined,
        >,
    >
    moveEnd: (e?: PointerEvent, options?: { apply?: boolean }) => void
    moveHoveredFrame: ComputedRef<LayoutFrame | undefined>
    movePoint: Ref<{ x: number; y: number } | undefined>
    movingEdges: Ref<
        {
            endX: number;
            endY: number;
            error?: | KnownError<
                LayoutError,
                | {}
                | { id: string
                | undefined }
                | { id: string | undefined }
                | { size: { height: number; width: number } }
                | Record<string, never>
                | { frame: LayoutFrame }
                | {
                    frame: LayoutFrame;
                    minSize: { height: number; width: number };
                    nearbyFrames: LayoutFrame[];
                }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame; minSize: number; newSize: number }
                | { frame: LayoutFrame; framesRequiredToBeDeleted: LayoutFrame[] }
                | { frame: LayoutFrame }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left" | "right" | "top" | "bottom" | "center";
                }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left"
                    | "right"
                    | "top"
                    | "bottom"
                    | "center";
                }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left"
                    | "right"
                    | "top"
                    | "bottom"
                    | "center";
                }
                | { frame: LayoutFrame }
                | { frameSizeNeeded: number; minFrameSize: number }
                | { max: number; min: number; wanted: number }
                | { problemEdgeCoordinates: number[] }
                | { id: string; side: "left" | "right" | "top" | "bottom" }
                | { frame: string }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame },
            >
            | { code: string; message: string };
            startX: number;
            startY: number;
        }[],
    >
    movingFrameId: Ref<string | undefined>
    movingIntersection: Ref<IntersectionEntry | undefined>
    onMove: (e: PointerEvent) => void
    showMoving: Ref<boolean>
    state: ComputedRef<MoveState>
    touchingFrames: Ref<Record<string, LayoutFrame>[]>
    touchingFramesArrays: Ref<LayoutFrame[][]>
    visualEdges: Ref<
        {
            endX: number;
            endY: number;
            error?: | KnownError<
                LayoutError,
                | {}
                | { id: string
                | undefined }
                | { id: string | undefined }
                | { size: { height: number; width: number } }
                | Record<string, never>
                | { frame: LayoutFrame }
                | {
                    frame: LayoutFrame;
                    minSize: { height: number; width: number };
                    nearbyFrames: LayoutFrame[];
                }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame; minSize: number; newSize: number }
                | { frame: LayoutFrame; framesRequiredToBeDeleted: LayoutFrame[] }
                | { frame: LayoutFrame }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left" | "right" | "top" | "bottom" | "center";
                }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left"
                    | "right"
                    | "top"
                    | "bottom"
                    | "center";
                }
                | {
                    hoveredFrameId: string;
                    movingFrameId: string;
                    zoneSide: "left"
                    | "right"
                    | "top"
                    | "bottom"
                    | "center";
                }
                | { frame: LayoutFrame }
                | { frameSizeNeeded: number; minFrameSize: number }
                | { max: number; min: number; wanted: number }
                | { problemEdgeCoordinates: number[] }
                | { id: string; side: "left" | "right" | "top" | "bottom" }
                | { frame: string }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame }
                | { frame: LayoutFrame },
            >
            | { code: string; message: string };
            startX: number;
            startY: number;
        }[],
    >

    Methods