@witchcraft/layout
    Preparing search index...

    Type Alias MoveState

    type MoveState = {
        eventContext?: Record<string, unknown>;
        frames: Record<string, LayoutFrame>;
        intersections: IntersectionEntry[];
        isMoving: boolean | "frame" | "edge" | "other";
        isMovingFromWindowEdge: boolean;
        moveDirections: Record<Orientation, Direction | undefined>;
        moveDistance: number;
        moveHoveredFrame: LayoutFrame | undefined;
        movePoint?: Point;
        movingEdges: Edge[];
        movingFrameId?: FrameId;
        movingIntersection?: IntersectionEntry;
        showMoving: boolean;
        touchingFrames: Record<string, LayoutFrame>[];
        touchingFramesArrays: LayoutFrame[][];
        visualEdges: Edge[];
        win: LayoutWindow;
    }
    Index

    Properties

    eventContext?: Record<string, unknown>

    Custom context passed to moveStart, available to action handlers via state.eventContext.

    frames: Record<string, LayoutFrame>

    All the frames, with/without the currently dragged frames depending on if showMoving is true.

    intersections: IntersectionEntry[]

    A list of corner intersections. Frames can also be dragged by these.

    isMoving: boolean | "frame" | "edge" | "other"

    Whether the user is currently moving and what type of move. Is truthy string during all move events. The actions decide what they need to set it to as "frame" and "edge" have custom behavior.

    Other is for actions that do things other than drag frames/edges which include built in behavior (e.g. frames get a frame dragging indicator at the cursor)

    isMovingFromWindowEdge: boolean

    Whether the move was initiated from a point along the window edge.

    moveDirections: Record<Orientation, Direction | undefined>

    The current directions in the corresponding orientations that the user is dragging in.

    moveDistance: number

    Cumulative pixel distance the user has dragged from the initial click point. 0 on start, increases on each move.

    moveHoveredFrame: LayoutFrame | undefined

    The frame that is currently being hovered over (according to whether movePoint in in the frame or not).

    movePoint?: Point

    The curren point (in scaled window coordinates) the user is dragging at.

    movingEdges: Edge[]

    The edges that are currently being dragged. There are multiple edges if they drag an intersection since what's actually happening is we're just dragging the closest horizontal and vertical edges.

    movingFrameId?: FrameId

    The frame being dragged during a frame drag. Only set when isMoving is "frame".

    movingIntersection?: IntersectionEntry

    The intersection that is currently being dragged.

    showMoving: boolean

    Whether to show the moved frames while dragging.

    touchingFrames: Record<string, LayoutFrame>[]

    The frames touching the currently dragged edges. Each entry corresponds to the frames touching the corresponding dragging edge.

    So you can use the index in movingEdges to get the corresponding frames.

    touchingFramesArrays: LayoutFrame[][]

    Same as touchingFrames, but with the frames in an array.

    visualEdges: Edge[]

    The "visual" edges that can be displayed for dragging. See getVisualEdges