@witchcraft/layout
    Preparing search index...
    • Returns the "visual" edges that can be dragged.

      Visual edges are a combination of all edges shared by frames that must be moved together.

      For example, if we have two frames A and B, they share the center edge, and the function would return this single edge (unless includeWindowEdges is true).

      ┌──┰──┐
      ABreturns
      └──┸──┘

      Or in this example, we would get two edges:

      • The one shared by A, B, and C, because no frame edge sharing this edge can without also moving the other frames touching the edge.
      • The one shared by A and B.
      ┌──┰──┐
      AC │ ┃
      ┝━━┫ │ returns ━━ ┃
      B ┃ │ ┃
      └──┸──┘

      And here, we get four edges, because all four can be moved on their own (moving the edge would only affect the two frames sharing that edge).

      ┌──┰──┐
      AC │ ┃
      ┝━━╋━━┥ returns ━━ ━━
      BD │ ┃
      └──┸──┘

      Type Parameters

      • T extends boolean = false

      Parameters

      • frames: LayoutFrame[]
      • __namedParameters: { includeWindowEdges?: boolean; separateByDir?: T } = {}
        • OptionalincludeWindowEdges?: boolean

          Whether to include edges along the window edges.

          false
          
        • OptionalseparateByDir?: T

          Whether the result is separated into horizontal/vertical edges or not.

          false
          

      Returns T extends true
          ? Record<
              "horizontal"
              | "vertical",
              { endX: number; endY: number; startX: number; startY: number }[],
          >
          : { endX: number; endY: number; startX: number; startY: number }[]