Skip to content

stagas/x-workspace

Repository files navigation

x-workspace

Workspace Web Component.

npm i x-workspace pnpm add x-workspace yarn add x-workspace

Examples

# web
    # view source example/web.tsx

    /** @jsxImportSource sigl */
    import $ from 'sigl'
    
    import { Rect } from 'sigl'
    import { ContextMenuOption, WorkspaceElement, WorkspaceWindowElement } from 'x-workspace'
    
    interface WindowItemElement extends $.Element<WindowItemElement> {}
    
    @$.element()
    class WindowItemElement extends $(WorkspaceWindowElement) {
      mounted($: WindowItemElement['$']) {
        $.Controls = $.part(() => <div></div>)
        $.ContextMenu = $.part(() => (
          <>
            <ContextMenuOption keyboard={['Ctrl', 'N']}>New</ContextMenuOption>
            <ContextMenuOption keyboard={['Alt', 'R']}>Remove the thing</ContextMenuOption>
            <ContextMenuOption>and another</ContextMenuOption>
            <hr />
            <ContextMenuOption disabled>and another</ContextMenuOption>
            <ContextMenuOption>and another</ContextMenuOption>
          </>
        ))
        $.Item = $.part(() => <div>hello this is a window</div>)
      }
    }
    
    interface SceneElement extends $.Element<SceneElement> {}
    
    @$.element()
    class SceneElement extends HTMLElement {
      Workspace = $.element(WorkspaceElement)
      WindowItem = $.element(WindowItemElement)
    
      items = new $.RefSet<WindowItemElement>([
        { rect: new Rect(0, 0, 200, 200), label: 'one' },
        { rect: new Rect(300, 0, 200, 200), label: 'two' },
      ])
    
      mounted($: SceneElement['$']) {
        $.render(({ Workspace, WindowItem, items }) => (
          <>
            <style>
              {/*css*/ `
              ${Workspace} {
                position: absolute;
                display: flex;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                overflow: hidden;
              }
    
              ${WindowItem} {
                border: 5px solid pink;
              }
            `}
            </style>
            <Workspace>
              {items.map(item => <WindowItem {x-workspace.item} />)}
            </Workspace>
          </>
        ))
      }
    }
    
    const Scene = $.element(SceneElement)
    
    $.render(<Scene />, document.body)

API

# ImmMap

    # constructor(entries)
    # clear()
    # delete(key)
    # mutateDelete(key)

      # key

      mutateDelete(key)  =>

        boolean

    # mutateSet(key, value)
    # set(key, value)
    # toJSON()

      toJSON()  =>

        [ K, V ] []

# ImmSet

    # constructor(values)
    # add(value)
    # clear()
    # delete(value)
    # mutateAdd(value)
    # mutateDelete(value)

      # value

      mutateDelete(value)  =>

        boolean

    # toJSON()

      toJSON()  =>

# PopupElement

    # constructor() node_modules/typescript/lib/lib.dom.d.ts#L6370
    # $

      Context<PopupElement & JsxContext<PopupElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # center

      boolean

    # contents

      HTMLDivElement

    # contentsRect

      Rect

    # context

      ContextClass<PopupElement & JsxContext<PopupElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # dest
    # destRect

      Rect

    # dispatch

      Dispatch<

      # (name, detail, init)

        # name

          Event | Narrow<K, string>

        # detail
        # init

          CustomEventInit<any>

        <K, E>(name, detail, init)  =>

          any

      >

    # host
    # hostMatrixString

      string

    # onmounted
    # onunmounted
    # placed

      boolean

    # placement

      Placement

    # popup

      Popup

    # pos

      Point

    # rect

      Rect

    # rigid

      boolean

    # scene
    # setHostStyleTransform

      # (matrixString)

        # matrixString

          string

        (matrixString)  =>

          void

    # surface
    # transition

      ValuesOf<{

      # CenteringItem

        "surfacecenteringitem"

      # CenteringView

        "surfacecenteringview"

      # Connecting

        "surfaceconnecting"

      # FullSize

        "surfacefullsize"

      # Idle

        "surfaceidle"

      # MinimapPanning

        "surfaceminimappanning"

      # Overlay

        "surfaceoverlay"

      # Panning

        "surfacepanning"

      # Pinching

        "surfacepinching"

      # Selecting

        "surfaceselecting"

      # Wheeling

        "surfacewheeling"

      }>

    # viewMatrix

      Matrix

    # viewportRect

      Rect

    # created(ctx)

      # ctx

        Context<PopupElement & JsxContext<PopupElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      created(ctx)  =>

        void

    # mounted($)

      # $

        Context<PopupElement & JsxContext<PopupElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      mounted($)  =>

        void

    # on(name)

      # name

      on<K>(name)  =>

        On<Fn<[ EventHandler<PopupElement, LifecycleEvents & object [K]> ], Off>>

    # toJSON()

# PopupScene

    # constructor(surface)
    # $

      PopupScene & ContextClass<PopupScene> & {

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }

    # context
    # popups

      Set<Popup>

    # runCollisions

      # ()

        ()  =>

          void

    # surface
    # viewMatrix

      Matrix

    # viewportRect

      Rect

    # create(this)
    # destroy()

      destroy()  =>

        void

# SurfaceElement

    # constructor(args)
    # $

      Context<SurfaceElement & JsxContext<SurfaceElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # Grid
    # Minimap
    # __#2@#offsetHeight

      number

    # __#2@#offsetLeft

      number

    # __#2@#offsetTop

      number

    # __#2@#offsetWidth

      number

    # centerItem
    # centerOtherItem

      # (diff)

        # diff

          number

        (diff)  =>

          void

    # centerRect

      # (rect)

        # rect

          Rect

        (rect)  =>

          void

    # centerView

      # (state, paddingPct)

        # state

          ValuesOf<{

          # CenteringItem

            "surfacecenteringitem"

          # CenteringView

            "surfacecenteringview"

          # Connecting

            "surfaceconnecting"

          # FullSize

            "surfacefullsize"

          # Idle

            "surfaceidle"

          # MinimapPanning

            "surfaceminimappanning"

          # Overlay

            "surfaceoverlay"

          # Panning

            "surfacepanning"

          # Pinching

            "surfacepinching"

          # Selecting

            "surfaceselecting"

          # Wheeling

            "surfacewheeling"

          }>

        # paddingPct

          number

        (state, paddingPct)  =>

          void

    # centeredItem

      HTMLElement

    # context

      ContextClass<SurfaceElement & JsxContext<SurfaceElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # cursorState

      State<SurfaceElement, {

      # Copy

        "copy"

      # EWResize

        "ew-resize"

      # Grabbing

        "grabbing"

      # Idle

        "default"

      # NSResize

        "ns-resize"

      # NWSEResize

        "nwse-resize"

      }, "copy" | "default" | "grabbing" | "ew-resize" | "ns-resize" | "nwse-resize"> & EventMethods<SurfaceElement, {

      # copycancel

        CustomEvent<any>

      # copyend

        CustomEvent<any>

      # copypause

        CustomEvent<any>

      # copyresume

        CustomEvent<any>

      # copystart

        CustomEvent<any>

      # defaultcancel

        CustomEvent<any>

      # defaultend

        CustomEvent<any>

      # defaultpause

        CustomEvent<any>

      # defaultresume

        CustomEvent<any>

      # defaultstart

        CustomEvent<any>

      # ew-resizecancel

        CustomEvent<any>

      # ew-resizeend

        CustomEvent<any>

      # ew-resizepause

        CustomEvent<any>

      # ew-resizeresume

        CustomEvent<any>

      # ew-resizestart

        CustomEvent<any>

      # grabbingcancel

        CustomEvent<any>

      # grabbingend

        CustomEvent<any>

      # grabbingpause

        CustomEvent<any>

      # grabbingresume

        CustomEvent<any>

      # grabbingstart

        CustomEvent<any>

      # ns-resizecancel

        CustomEvent<any>

      # ns-resizeend

        CustomEvent<any>

      # ns-resizepause

        CustomEvent<any>

      # ns-resizeresume

        CustomEvent<any>

      # ns-resizestart

        CustomEvent<any>

      # nwse-resizecancel

        CustomEvent<any>

      # nwse-resizeend

        CustomEvent<any>

      # nwse-resizepause

        CustomEvent<any>

      # nwse-resizeresume

        CustomEvent<any>

      # nwse-resizestart

        CustomEvent<any>

      }> & InlineEventMap<SurfaceElement, {

      # copycancel

        CustomEvent<any>

      # copyend

        CustomEvent<any>

      # copypause

        CustomEvent<any>

      # copyresume

        CustomEvent<any>

      # copystart

        CustomEvent<any>

      # defaultcancel

        CustomEvent<any>

      # defaultend

        CustomEvent<any>

      # defaultpause

        CustomEvent<any>

      # defaultresume

        CustomEvent<any>

      # defaultstart

        CustomEvent<any>

      # ew-resizecancel

        CustomEvent<any>

      # ew-resizeend

        CustomEvent<any>

      # ew-resizepause

        CustomEvent<any>

      # ew-resizeresume

        CustomEvent<any>

      # ew-resizestart

        CustomEvent<any>

      # grabbingcancel

        CustomEvent<any>

      # grabbingend

        CustomEvent<any>

      # grabbingpause

        CustomEvent<any>

      # grabbingresume

        CustomEvent<any>

      # grabbingstart

        CustomEvent<any>

      # ns-resizecancel

        CustomEvent<any>

      # ns-resizeend

        CustomEvent<any>

      # ns-resizepause

        CustomEvent<any>

      # ns-resizeresume

        CustomEvent<any>

      # ns-resizestart

        CustomEvent<any>

      # nwse-resizecancel

        CustomEvent<any>

      # nwse-resizeend

        CustomEvent<any>

      # nwse-resizepause

        CustomEvent<any>

      # nwse-resizeresume

        CustomEvent<any>

      # nwse-resizestart

        CustomEvent<any>

      }>

    # didCenterLast

      "view" | "item"

    # dispatch

      Dispatch<

      # (name, detail, init)

        # name

          Event | Narrow<K, string>

        # detail
        # init

          CustomEventInit<any>

        <K, E>(name, detail, init)  =>

          any

      >

    # exitFullSize

      null |

      # ()

        ()  =>

          void

    # fullSize

      HTMLElement

    # getCenterMatrix

      # (rect, paddingPct)

        # rect

          Rect

        # paddingPct

          number

        (rect, paddingPct)  =>

          DOMMatrix

    # getPointerPos

      # (event)

        # event

          PointerEvent | WheelEvent

        (event)  =>

          Point

    # gridCellSize

      number

    # host
    # hoveringItem
    # items
    # makeFullSize
    # maxZoom

      number

    # minZoom

      number

    # minimap
    # minimapRatio

      number

    # minimapScale

      number

    # onconnectend
    # onconnectstart
    # onmounted
    # onstatechange
    # onsurfacemoveitemmove
    # onsurfacemoveitemmoveend
    # onsurfacemoveitemmovestart
    # onsurfaceresizeitemresize
    # onsurfaceresizeitemresizeend
    # onsurfaceresizeitemresizestart
    # onsurfaceselecting
    # onunmounted
    # ownRect

      Rect

    # pinchStartDistance

      number

    # pinchStartMatrix

      null | DOMMatrix

    # pixelRatio

      number

    # pointer

      {

      # id

        number

      # pos

        Point

      }

    # pointers

      Map<number, Point>

    # pos

      Point

    # rect

      Rect

    # root

      ShadowRoot

    # selectingRect

      null | Rect

    # selectingStartPos

      null | Point

    # selection

      HTMLDivElement

    # setViewStyleTransform

      # (matrixString)

        # matrixString

          string

        (matrixString)  =>

          void

    # size

      Point

    # snapThreshold

      number

    # state

      State<SurfaceElement, {

      # CenteringItem

        "surfacecenteringitem"

      # CenteringView

        "surfacecenteringview"

      # Connecting

        "surfaceconnecting"

      # FullSize

        "surfacefullsize"

      # Idle

        "surfaceidle"

      # MinimapPanning

        "surfaceminimappanning"

      # Overlay

        "surfaceoverlay"

      # Panning

        "surfacepanning"

      # Pinching

        "surfacepinching"

      # Selecting

        "surfaceselecting"

      # Wheeling

        "surfacewheeling"

      }, "surfaceselecting" | "surfaceidle" | "surfaceoverlay" | "surfacecenteringitem" | "surfacecenteringview" | "surfaceconnecting" | "surfacefullsize" | "surfaceminimappanning" | "surfacepanning" | "surfacepinching" | "surfacewheeling"> & EventMethods<SurfaceElement, {

      # surfacecenteringitemcancel

        CustomEvent<any>

      # surfacecenteringitemend

        CustomEvent<any>

      # surfacecenteringitempause

        CustomEvent<any>

      # surfacecenteringitemresume

        CustomEvent<any>

      # surfacecenteringitemstart

        CustomEvent<any>

      # surfacecenteringviewcancel

        CustomEvent<any>

      # surfacecenteringviewend

        CustomEvent<any>

      # surfacecenteringviewpause

        CustomEvent<any>

      # surfacecenteringviewresume

        CustomEvent<any>

      # surfacecenteringviewstart

        CustomEvent<any>

      # surfaceconnectingcancel

        CustomEvent<any>

      # surfaceconnectingend

        CustomEvent<any>

      # surfaceconnectingpause

        CustomEvent<any>

      # surfaceconnectingresume

        CustomEvent<any>

      # surfaceconnectingstart

        CustomEvent<any>

      # surfacefullsizecancel

        CustomEvent<any>

      # surfacefullsizeend

        CustomEvent<any>

      # surfacefullsizepause

        CustomEvent<any>

      # surfacefullsizeresume

        CustomEvent<any>

      # surfacefullsizestart

        CustomEvent<any>

      # surfaceidlecancel

        CustomEvent<any>

      # surfaceidleend

        CustomEvent<any>

      # surfaceidlepause

        CustomEvent<any>

      # surfaceidleresume

        CustomEvent<any>

      # surfaceidlestart

        CustomEvent<any>

      # surfaceminimappanningcancel

        CustomEvent<any>

      # surfaceminimappanningend

        CustomEvent<any>

      # surfaceminimappanningpause

        CustomEvent<any>

      # surfaceminimappanningresume

        CustomEvent<any>

      # surfaceminimappanningstart

        CustomEvent<any>

      # surfaceoverlaycancel

        CustomEvent<any>

      # surfaceoverlayend

        CustomEvent<any>

      # surfaceoverlaypause

        CustomEvent<any>

      # surfaceoverlayresume

        CustomEvent<any>

      # surfaceoverlaystart

        CustomEvent<any>

      # surfacepanningcancel

        CustomEvent<any>

      # surfacepanningend

        CustomEvent<any>

      # surfacepanningpause

        CustomEvent<any>

      # surfacepanningresume

        CustomEvent<any>

      # surfacepanningstart

        CustomEvent<any>

      # surfacepinchingcancel

        CustomEvent<any>

      # surfacepinchingend

        CustomEvent<any>

      # surfacepinchingpause

        CustomEvent<any>

      # surfacepinchingresume

        CustomEvent<any>

      # surfacepinchingstart

        CustomEvent<any>

      # surfaceselectingcancel

        CustomEvent<any>

      # surfaceselectingend

        CustomEvent<any>

      # surfaceselectingpause

        CustomEvent<any>

      # surfaceselectingresume

        CustomEvent<any>

      # surfaceselectingstart

        CustomEvent<any>

      # surfacewheelingcancel

        CustomEvent<any>

      # surfacewheelingend

        CustomEvent<any>

      # surfacewheelingpause

        CustomEvent<any>

      # surfacewheelingresume

        CustomEvent<any>

      # surfacewheelingstart

        CustomEvent<any>

      }> & InlineEventMap<SurfaceElement, {

      # surfacecenteringitemcancel

        CustomEvent<any>

      # surfacecenteringitemend

        CustomEvent<any>

      # surfacecenteringitempause

        CustomEvent<any>

      # surfacecenteringitemresume

        CustomEvent<any>

      # surfacecenteringitemstart

        CustomEvent<any>

      # surfacecenteringviewcancel

        CustomEvent<any>

      # surfacecenteringviewend

        CustomEvent<any>

      # surfacecenteringviewpause

        CustomEvent<any>

      # surfacecenteringviewresume

        CustomEvent<any>

      # surfacecenteringviewstart

        CustomEvent<any>

      # surfaceconnectingcancel

        CustomEvent<any>

      # surfaceconnectingend

        CustomEvent<any>

      # surfaceconnectingpause

        CustomEvent<any>

      # surfaceconnectingresume

        CustomEvent<any>

      # surfaceconnectingstart

        CustomEvent<any>

      # surfacefullsizecancel

        CustomEvent<any>

      # surfacefullsizeend

        CustomEvent<any>

      # surfacefullsizepause

        CustomEvent<any>

      # surfacefullsizeresume

        CustomEvent<any>

      # surfacefullsizestart

        CustomEvent<any>

      # surfaceidlecancel

        CustomEvent<any>

      # surfaceidleend

        CustomEvent<any>

      # surfaceidlepause

        CustomEvent<any>

      # surfaceidleresume

        CustomEvent<any>

      # surfaceidlestart

        CustomEvent<any>

      # surfaceminimappanningcancel

        CustomEvent<any>

      # surfaceminimappanningend

        CustomEvent<any>

      # surfaceminimappanningpause

        CustomEvent<any>

      # surfaceminimappanningresume

        CustomEvent<any>

      # surfaceminimappanningstart

        CustomEvent<any>

      # surfaceoverlaycancel

        CustomEvent<any>

      # surfaceoverlayend

        CustomEvent<any>

      # surfaceoverlaypause

        CustomEvent<any>

      # surfaceoverlayresume

        CustomEvent<any>

      # surfaceoverlaystart

        CustomEvent<any>

      # surfacepanningcancel

        CustomEvent<any>

      # surfacepanningend

        CustomEvent<any>

      # surfacepanningpause

        CustomEvent<any>

      # surfacepanningresume

        CustomEvent<any>

      # surfacepanningstart

        CustomEvent<any>

      # surfacepinchingcancel

        CustomEvent<any>

      # surfacepinchingend

        CustomEvent<any>

      # surfacepinchingpause

        CustomEvent<any>

      # surfacepinchingresume

        CustomEvent<any>

      # surfacepinchingstart

        CustomEvent<any>

      # surfaceselectingcancel

        CustomEvent<any>

      # surfaceselectingend

        CustomEvent<any>

      # surfaceselectingpause

        CustomEvent<any>

      # surfaceselectingresume

        CustomEvent<any>

      # surfaceselectingstart

        CustomEvent<any>

      # surfacewheelingcancel

        CustomEvent<any>

      # surfacewheelingend

        CustomEvent<any>

      # surfacewheelingpause

        CustomEvent<any>

      # surfacewheelingresume

        CustomEvent<any>

      # surfacewheelingstart

        CustomEvent<any>

      }>

    # transition

      Transition<States, "surfaceselecting" | "surfaceidle" | "surfaceoverlay" | "surfacecenteringitem" | "surfacecenteringview" | "surfaceconnecting" | "surfacefullsize" | "surfaceminimappanning" | "surfacepanning" | "surfacepinching" | "surfacewheeling">

    # view

      HTMLSlotElement

    # viewFrame

      HTMLDivElement

    # viewFrameNormalRect

      Rect

    # viewFrameRect

      Rect

    # viewMatrix

      DOMMatrix

    # viewMatrixString

      string

    # viewRect

      Rect

    # viewStyleTransform

      string

    # xPattern

      string

    # yPattern

      string

    # zIndex

      number

    # matrix
    # __#2@#updateOffsets()

      __#2@#updateOffsets()  =>

        void

    # created(ctx)

      # ctx

        Context<SurfaceElement & JsxContext<SurfaceElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      created(ctx)  =>

        void

    # mounted($)

      # $

        Context<SurfaceElement & JsxContext<SurfaceElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      mounted($)  =>

        void

    # on(name)
    # toJSON()

# SurfaceGridElement

    # constructor() node_modules/typescript/lib/lib.dom.d.ts#L6370
    # $

      Context<SurfaceGridElement & JsxContext<SurfaceGridElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # anim

      StepAnimation<{

      # offset

        Point

      # zoom

        number

      }>

    # animValues

      {

      # offset

        Point

      # zoom

        number

      }

    # canvas

      HTMLCanvasElement

    # cellSize

      number

    # context

      ContextClass<SurfaceGridElement & JsxContext<SurfaceGridElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # ctx

      CanvasRenderingContext2D

    # dispatch

      Dispatch<

      # (name, detail, init)

        # name

          Event | Narrow<K, string>

        # detail
        # init

          CustomEventInit<any>

        <K, E>(name, detail, init)  =>

          any

      >

    # host
    # matrix

      DOMMatrix

    # offsetX

      number

    # offsetY

      number

    # onmounted
    # onunmounted
    # pixelRatio

      number

    # pointers

      Map<number, Point>

    # rect

      Rect

    # root

      ShadowRoot

    # slotted

      HTMLElement []

    # transition

      Transition<States, unknown>

    # xPattern

      string

    # yPattern

      string

    # zoom

      number

    # created(ctx)

      # ctx

        Context<SurfaceGridElement & JsxContext<SurfaceGridElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      created(ctx)  =>

        void

    # mounted($)

      # $

        Context<SurfaceGridElement & JsxContext<SurfaceGridElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      mounted($)  =>

        void

    # on(name)

      # name

      on<K>(name)  =>

    # toJSON()

# SurfaceItemElement
# SurfaceMinimapElement
# SurfaceMoveElement

    # constructor() node_modules/typescript/lib/lib.dom.d.ts#L6370
    # $

      Context<SurfaceMoveElement & JsxContext<SurfaceMoveElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # context

      ContextClass<SurfaceMoveElement & JsxContext<SurfaceMoveElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # dest
    # dispatch

      Dispatch<

      # (name, detail, init)

        # name

          Event | Narrow<K, string>

        # detail
        # init

          CustomEventInit<any>

        <K, E>(name, detail, init)  =>

          any

      >

    # grabPos

      null | Point

    # host
    # onmounted
    # onsurfacemoveitemmove
    # onsurfacemoveitemmoveend
    # onsurfacemoveitemmovestart
    # onunmounted
    # pointerId

      number

    # root

      ShadowRoot

    # state

      State<SurfaceMoveElement, {

      # Idle

        "surfacemoveidle"

      # ItemMove

        "surfacemoveitemmove"

      }, "surfacemoveitemmove" | "surfacemoveidle"> & EventMethods<SurfaceMoveElement, {

      # surfacemoveidlecancel

        CustomEvent<any>

      # surfacemoveidleend

        CustomEvent<any>

      # surfacemoveidlepause

        CustomEvent<any>

      # surfacemoveidleresume

        CustomEvent<any>

      # surfacemoveidlestart

        CustomEvent<any>

      # surfacemoveitemmovecancel

        CustomEvent<any>

      # surfacemoveitemmoveend

        CustomEvent<any>

      # surfacemoveitemmovepause

        CustomEvent<any>

      # surfacemoveitemmoveresume

        CustomEvent<any>

      # surfacemoveitemmovestart

        CustomEvent<any>

      }> & InlineEventMap<SurfaceMoveElement, {

      # surfacemoveidlecancel

        CustomEvent<any>

      # surfacemoveidleend

        CustomEvent<any>

      # surfacemoveidlepause

        CustomEvent<any>

      # surfacemoveidleresume

        CustomEvent<any>

      # surfacemoveidlestart

        CustomEvent<any>

      # surfacemoveitemmovecancel

        CustomEvent<any>

      # surfacemoveitemmoveend

        CustomEvent<any>

      # surfacemoveitemmovepause

        CustomEvent<any>

      # surfacemoveitemmoveresume

        CustomEvent<any>

      # surfacemoveitemmovestart

        CustomEvent<any>

      }>

    # surface
    # created(ctx)

      # ctx

        Context<SurfaceMoveElement & JsxContext<SurfaceMoveElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      created(ctx)  =>

        void

    # mounted($)

      # $

        Context<SurfaceMoveElement & JsxContext<SurfaceMoveElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      mounted($)  =>

        void

    # on(name)
    # toJSON()

# SurfaceResizeElement

    # constructor() node_modules/typescript/lib/lib.dom.d.ts#L6370
    # $

      Context<SurfaceResizeElement & JsxContext<SurfaceResizeElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # context

      ContextClass<SurfaceResizeElement & JsxContext<SurfaceResizeElement> & Omit<{

      # ctor

        Class<T>

      <T>(ctor)  =>

        CleanClass<T>

      # ctx

        T | Class<T>

      <T>(ctx)  =>

        Wrapper<T>

      } & __module & {

      # Boolean

        undefined | boolean

      # Number

        undefined | number

      # String

        undefined | string

      }, "transition">>

    # dest
    # dispatch

      Dispatch<

      # (name, detail, init)

        # name

          Event | Narrow<K, string>

        # detail
        # init

          CustomEventInit<any>

        <K, E>(name, detail, init)  =>

          any

      >

    # grabPos

      null | Point

    # host
    # onmounted
    # onsurfaceresizeitemresize
    # onsurfaceresizeitemresizeend
    # onsurfaceresizeitemresizestart
    # onunmounted
    # orig

      null | Rect

    # pointerId

      number

    # root

      ShadowRoot

    # state

      State<SurfaceResizeElement, {

      # Idle

        "surfaceresizeidle"

      # ItemResize

        "surfaceresizeitemresize"

      }, "surfaceresizeitemresize" | "surfaceresizeidle"> & EventMethods<SurfaceResizeElement, {

      # surfaceresizeidlecancel

        CustomEvent<any>

      # surfaceresizeidleend

        CustomEvent<any>

      # surfaceresizeidlepause

        CustomEvent<any>

      # surfaceresizeidleresume

        CustomEvent<any>

      # surfaceresizeidlestart

        CustomEvent<any>

      # surfaceresizeitemresizecancel

        CustomEvent<any>

      # surfaceresizeitemresizeend

        CustomEvent<any>

      # surfaceresizeitemresizepause

        CustomEvent<any>

      # surfaceresizeitemresizeresume

        CustomEvent<any>

      # surfaceresizeitemresizestart

        CustomEvent<any>

      }> & InlineEventMap<SurfaceResizeElement, {

      # surfaceresizeidlecancel

        CustomEvent<any>

      # surfaceresizeidleend

        CustomEvent<any>

      # surfaceresizeidlepause

        CustomEvent<any>

      # surfaceresizeidleresume

        CustomEvent<any>

      # surfaceresizeidlestart

        CustomEvent<any>

      # surfaceresizeitemresizecancel

        CustomEvent<any>

      # surfaceresizeitemresizeend

        CustomEvent<any>

      # surfaceresizeitemresizepause

        CustomEvent<any>

      # surfaceresizeitemresizeresume

        CustomEvent<any>

      # surfaceresizeitemresizestart

        CustomEvent<any>

      }>

    # surface
    # created(ctx)

      # ctx

        Context<SurfaceResizeElement & JsxContext<SurfaceResizeElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      created(ctx)  =>

        void

    # mounted($)

      # $

        Context<SurfaceResizeElement & JsxContext<SurfaceResizeElement> & Omit<{

        # ctor

          Class<T>

        <T>(ctor)  =>

          CleanClass<T>

        # ctx

          T | Class<T>

        <T>(ctx)  =>

          Wrapper<T>

        } & __module & {

        # Boolean

          undefined | boolean

        # Number

          undefined | number

        # String

          undefined | string

        }, "transition">>

      mounted($)  =>

        void

    # on(name)
    # toJSON()

# WorkspaceElement src/x-workspace.tsx#L35
# WorkspaceWindowElement src/x-workspace-window.tsx#L11
# ContextMenuProps

    # Options

      # ({ event })

        # props

          {

          # event

            MouseEvent

          }

        ({ event })  =>

          VKid

    # anchorDestination

      HTMLElement

    # popupDestination

      HTMLElement

    # scene
    # sticky

      boolean

    # surface

# SurfaceEvents
# SurfaceMoveDetail
# SurfaceMoveEvents
# SurfaceResizeDetail
# SurfaceResizeEvents
# SurfaceAnimSettings

    {

    # surfacecenteringitem

      AnimSettings

    # surfacecenteringview

      AnimSettings

    # surfacefullsize

      AnimSettings

    # surfaceidle

      AnimSettings

    # surfaceminimappanning

      AnimSettings

    # surfaceoverlay

      AnimSettings

    # surfacepanning

      AnimSettings

    # surfacepinching

      AnimSettings

    # surfaceselecting

      AnimSettings

    # surfacewheeling

      AnimSettings

    }

# SurfaceCursorState

    {

    # Copy

      "copy"

    # EWResize

      "ew-resize"

    # Grabbing

      "grabbing"

    # Idle

      "default"

    # NSResize

      "ns-resize"

    # NWSEResize

      "nwse-resize"

    }

# SurfaceMoveState

    {

    # Idle

      "surfacemoveidle"

    # ItemMove

      "surfacemoveitemmove"

    }

# SurfaceResizeState

    {

    # Idle

      "surfaceresizeidle"

    # ItemResize

      "surfaceresizeitemresize"

    }

# SurfaceState

    {

    # CenteringItem

      "surfacecenteringitem"

    # CenteringView

      "surfacecenteringview"

    # Connecting

      "surfaceconnecting"

    # FullSize

      "surfacefullsize"

    # Idle

      "surfaceidle"

    # MinimapPanning

      "surfaceminimappanning"

    # Overlay

      "surfaceoverlay"

    # Panning

      "surfacepanning"

    # Pinching

      "surfacepinching"

    # Selecting

      "surfaceselecting"

    # Wheeling

      "surfacewheeling"

    }

# ContextMenuOption({ action, children, disabled, keyboard })

    {

    # action

      # (e)

        # e

          MouseEvent

        (e)  =>

          void

    # children

      VKid

    # disabled

      boolean

    # keyboard

      string []

    }

    ContextMenuOption({ action, children, disabled, keyboard })  =>

      VKid

# WorkspaceWindowControl({ action, children, title }) src/x-workspace.tsx#L20
# onContextMenu(ContextMenuProps)

Credits

Contributing

Fork or edit and submit a PR.

All contributions are welcome!

License

MIT © 2022 stagas