dockview-react 1.15.2 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-react
3
- * @version 1.15.2
3
+ * @version 1.16.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -36,7 +36,7 @@ function styleInject(css, ref) {
36
36
  }
37
37
  }
38
38
 
39
- var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
39
+ var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 998;\n}\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
40
40
  styleInject(css_248z);
41
41
 
42
42
  class TransferObject {
@@ -564,6 +564,26 @@ function isInDocument(element) {
564
564
  function addTestId(element, id) {
565
565
  element.setAttribute('data-testid', id);
566
566
  }
567
+ function disableIframePointEvents() {
568
+ const iframes = [
569
+ ...getElementsByTagName('iframe'),
570
+ ...getElementsByTagName('webview'),
571
+ ];
572
+ const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
573
+ for (const iframe of iframes) {
574
+ original.set(iframe, iframe.style.pointerEvents);
575
+ iframe.style.pointerEvents = 'none';
576
+ }
577
+ return {
578
+ release: () => {
579
+ var _a;
580
+ for (const iframe of iframes) {
581
+ iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
582
+ }
583
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
584
+ },
585
+ };
586
+ }
567
587
 
568
588
  function tail(arr) {
569
589
  if (arr.length === 0) {
@@ -1086,13 +1106,7 @@ class Splitview {
1086
1106
  for (const item of this.viewItems) {
1087
1107
  item.enabled = false;
1088
1108
  }
1089
- const iframes = [
1090
- ...getElementsByTagName('iframe'),
1091
- ...getElementsByTagName('webview'),
1092
- ];
1093
- for (const iframe of iframes) {
1094
- iframe.style.pointerEvents = 'none';
1095
- }
1109
+ const iframes = disableIframePointEvents();
1096
1110
  const start = this._orientation === exports.Orientation.HORIZONTAL
1097
1111
  ? event.clientX
1098
1112
  : event.clientY;
@@ -1154,9 +1168,7 @@ class Splitview {
1154
1168
  for (const item of this.viewItems) {
1155
1169
  item.enabled = true;
1156
1170
  }
1157
- for (const iframe of iframes) {
1158
- iframe.style.pointerEvents = 'auto';
1159
- }
1171
+ iframes.release();
1160
1172
  this.saveProportions();
1161
1173
  document.removeEventListener('pointermove', onPointerMove);
1162
1174
  document.removeEventListener('pointerup', end);
@@ -1323,29 +1335,47 @@ class Splitview {
1323
1335
  if (this.viewItems.length === 0) {
1324
1336
  return;
1325
1337
  }
1326
- const sashCount = this.viewItems.length - 1;
1327
- const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
1338
+ const visibleViewItems = this.viewItems.filter((i) => i.visible);
1339
+ const sashCount = Math.max(0, visibleViewItems.length - 1);
1340
+ const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
1328
1341
  let totalLeftOffset = 0;
1329
1342
  const viewLeftOffsets = [];
1330
- for (let i = 0; i < this.viewItems.length - 1; i++) {
1331
- totalLeftOffset += this.viewItems[i].size;
1332
- viewLeftOffsets.push(totalLeftOffset);
1333
- const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
1334
- if (this._orientation === exports.Orientation.HORIZONTAL) {
1335
- this.sashes[i].container.style.left = `${offset}px`;
1336
- this.sashes[i].container.style.top = `0px`;
1343
+ const sashWidth = 4; // hardcoded in css
1344
+ const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
1345
+ const flag = viewItem.visible ? 1 : 0;
1346
+ if (i === 0) {
1347
+ arr.push(flag);
1337
1348
  }
1338
- if (this._orientation === exports.Orientation.VERTICAL) {
1339
- this.sashes[i].container.style.left = `0px`;
1340
- this.sashes[i].container.style.top = `${offset}px`;
1349
+ else {
1350
+ arr.push(arr[i - 1] + flag);
1341
1351
  }
1342
- }
1352
+ return arr;
1353
+ }, []);
1354
+ // calculate both view and cash positions
1343
1355
  this.viewItems.forEach((view, i) => {
1344
- const size = view.size - marginReducedSize;
1345
- const offset = i === 0
1356
+ totalLeftOffset += this.viewItems[i].size;
1357
+ viewLeftOffsets.push(totalLeftOffset);
1358
+ const size = view.visible ? view.size - marginReducedSize : 0;
1359
+ const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
1360
+ const offset = i === 0 || visiblePanelsBeforeThisView === 0
1346
1361
  ? 0
1347
1362
  : viewLeftOffsets[i - 1] +
1348
- (i / sashCount) * marginReducedSize;
1363
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1364
+ if (i < this.viewItems.length - 1) {
1365
+ // calculate sash position
1366
+ const newSize = view.visible
1367
+ ? offset + size - sashWidth / 2 + this.margin / 2
1368
+ : offset;
1369
+ if (this._orientation === exports.Orientation.HORIZONTAL) {
1370
+ this.sashes[i].container.style.left = `${newSize}px`;
1371
+ this.sashes[i].container.style.top = `0px`;
1372
+ }
1373
+ if (this._orientation === exports.Orientation.VERTICAL) {
1374
+ this.sashes[i].container.style.left = `0px`;
1375
+ this.sashes[i].container.style.top = `${newSize}px`;
1376
+ }
1377
+ }
1378
+ // calculate view position
1349
1379
  if (this._orientation === exports.Orientation.HORIZONTAL) {
1350
1380
  view.container.style.width = `${size}px`;
1351
1381
  view.container.style.left = `${offset}px`;
@@ -2689,6 +2719,9 @@ class BaseGrid extends Resizable {
2689
2719
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2690
2720
  this.element.style.height = '100%';
2691
2721
  this.element.style.width = '100%';
2722
+ if (typeof options.className === 'string') {
2723
+ this.element.classList.add(options.className);
2724
+ }
2692
2725
  options.parentElement.appendChild(this.element);
2693
2726
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2694
2727
  this.gridview.locked = !!options.locked;
@@ -2892,12 +2925,6 @@ class SplitviewApi {
2892
2925
  constructor(component) {
2893
2926
  this.component = component;
2894
2927
  }
2895
- /**
2896
- * Update configuratable options.
2897
- */
2898
- updateOptions(options) {
2899
- this.component.updateOptions(options);
2900
- }
2901
2928
  /**
2902
2929
  * Removes an existing panel and optionally provide a `Sizing` method
2903
2930
  * for the subsequent resize.
@@ -2951,6 +2978,18 @@ class SplitviewApi {
2951
2978
  clear() {
2952
2979
  this.component.clear();
2953
2980
  }
2981
+ /**
2982
+ * Update configuratable options.
2983
+ */
2984
+ updateOptions(options) {
2985
+ this.component.updateOptions(options);
2986
+ }
2987
+ /**
2988
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
2989
+ */
2990
+ dispose() {
2991
+ this.component.dispose();
2992
+ }
2954
2993
  }
2955
2994
  class PaneviewApi {
2956
2995
  /**
@@ -3078,6 +3117,18 @@ class PaneviewApi {
3078
3117
  clear() {
3079
3118
  this.component.clear();
3080
3119
  }
3120
+ /**
3121
+ * Update configuratable options.
3122
+ */
3123
+ updateOptions(options) {
3124
+ this.component.updateOptions(options);
3125
+ }
3126
+ /**
3127
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3128
+ */
3129
+ dispose() {
3130
+ this.component.dispose();
3131
+ }
3081
3132
  }
3082
3133
  class GridviewApi {
3083
3134
  /**
@@ -3218,6 +3269,15 @@ class GridviewApi {
3218
3269
  clear() {
3219
3270
  this.component.clear();
3220
3271
  }
3272
+ updateOptions(options) {
3273
+ this.component.updateOptions(options);
3274
+ }
3275
+ /**
3276
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3277
+ */
3278
+ dispose() {
3279
+ this.component.dispose();
3280
+ }
3221
3281
  }
3222
3282
  class DockviewApi {
3223
3283
  /**
@@ -3510,6 +3570,15 @@ class DockviewApi {
3510
3570
  setGap(gap) {
3511
3571
  this.component.updateOptions({ gap });
3512
3572
  }
3573
+ updateOptions(options) {
3574
+ this.component.updateOptions(options);
3575
+ }
3576
+ /**
3577
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3578
+ */
3579
+ dispose() {
3580
+ this.component.dispose();
3581
+ }
3513
3582
  }
3514
3583
 
3515
3584
  class DragHandler extends CompositeDisposable {
@@ -3532,20 +3601,12 @@ class DragHandler extends CompositeDisposable {
3532
3601
  event.preventDefault();
3533
3602
  return;
3534
3603
  }
3535
- const iframes = [
3536
- ...getElementsByTagName('iframe'),
3537
- ...getElementsByTagName('webview'),
3538
- ];
3604
+ const iframes = disableIframePointEvents();
3539
3605
  this.pointerEventsDisposable.value = {
3540
3606
  dispose: () => {
3541
- for (const iframe of iframes) {
3542
- iframe.style.pointerEvents = 'auto';
3543
- }
3607
+ iframes.release();
3544
3608
  },
3545
3609
  };
3546
- for (const iframe of iframes) {
3547
- iframe.style.pointerEvents = 'none';
3548
- }
3549
3610
  this.el.classList.add('dv-dragged');
3550
3611
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3551
3612
  this.dataDisposable.value = this.getData(event);
@@ -4709,7 +4770,7 @@ class VoidContainer extends CompositeDisposable {
4709
4770
  this._element.className = 'void-container';
4710
4771
  this._element.tabIndex = 0;
4711
4772
  this._element.draggable = true;
4712
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4773
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4713
4774
  this.accessor.doSetGroupActive(this.group);
4714
4775
  }));
4715
4776
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5024,6 +5085,7 @@ const PROPERTY_KEYS = (() => {
5024
5085
  locked: undefined,
5025
5086
  disableDnd: undefined,
5026
5087
  gap: undefined,
5088
+ className: undefined,
5027
5089
  };
5028
5090
  return Object.keys(properties);
5029
5091
  })();
@@ -5579,7 +5641,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5579
5641
  group: this.groupPanel,
5580
5642
  });
5581
5643
  this.watermark = watermark;
5582
- addDisposableListener(this.watermark.element, 'click', () => {
5644
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5583
5645
  if (!this.isActive) {
5584
5646
  this.accessor.doSetGroupActive(this.groupPanel);
5585
5647
  }
@@ -6144,7 +6206,7 @@ class DockviewPanel extends CompositeDisposable {
6144
6206
  // forward the resize event to the group since if you want to resize a panel
6145
6207
  // you are actually just resizing the panels parent which is the group
6146
6208
  this.group.api.setSize(event);
6147
- }), this.api.onDidRendererChange((event) => {
6209
+ }), this.api.onDidRendererChange(() => {
6148
6210
  this.group.model.rerender(this);
6149
6211
  }));
6150
6212
  }
@@ -6480,17 +6542,30 @@ class Watermark extends CompositeDisposable {
6480
6542
  }
6481
6543
  }
6482
6544
 
6483
- const bringElementToFront = (() => {
6484
- let previous = null;
6485
- function pushToTop(element) {
6486
- if (previous !== element && previous !== null) {
6487
- toggleClass(previous, 'dv-bring-to-front', false);
6545
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6546
+ class AriaLevelTracker {
6547
+ constructor() {
6548
+ this._orderedList = [];
6549
+ }
6550
+ push(element) {
6551
+ this._orderedList = [
6552
+ ...this._orderedList.filter((item) => item !== element),
6553
+ element,
6554
+ ];
6555
+ this.update();
6556
+ }
6557
+ destroy(element) {
6558
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6559
+ this.update();
6560
+ }
6561
+ update() {
6562
+ for (let i = 0; i < this._orderedList.length; i++) {
6563
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6564
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6488
6565
  }
6489
- toggleClass(element, 'dv-bring-to-front', true);
6490
- previous = element;
6491
6566
  }
6492
- return pushToTop;
6493
- })();
6567
+ }
6568
+ const arialLevelTracker = new AriaLevelTracker();
6494
6569
  class Overlay extends CompositeDisposable {
6495
6570
  set minimumInViewportWidth(value) {
6496
6571
  this.options.minimumInViewportWidth = value;
@@ -6498,6 +6573,9 @@ class Overlay extends CompositeDisposable {
6498
6573
  set minimumInViewportHeight(value) {
6499
6574
  this.options.minimumInViewportHeight = value;
6500
6575
  }
6576
+ get element() {
6577
+ return this._element;
6578
+ }
6501
6579
  constructor(options) {
6502
6580
  super();
6503
6581
  this.options = options;
@@ -6520,6 +6598,10 @@ class Overlay extends CompositeDisposable {
6520
6598
  this.options.container.appendChild(this._element);
6521
6599
  // if input bad resize within acceptable boundaries
6522
6600
  this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
6601
+ arialLevelTracker.push(this._element);
6602
+ }
6603
+ bringToFront() {
6604
+ arialLevelTracker.push(this._element);
6523
6605
  }
6524
6606
  setBounds(bounds = {}) {
6525
6607
  if (typeof bounds.height === 'number') {
@@ -6607,18 +6689,10 @@ class Overlay extends CompositeDisposable {
6607
6689
  const move = new MutableDisposable();
6608
6690
  const track = () => {
6609
6691
  let offset = null;
6610
- const iframes = [
6611
- ...getElementsByTagName('iframe'),
6612
- ...getElementsByTagName('webview'),
6613
- ];
6614
- for (const iframe of iframes) {
6615
- iframe.style.pointerEvents = 'none';
6616
- }
6692
+ const iframes = disableIframePointEvents();
6617
6693
  move.value = new CompositeDisposable({
6618
6694
  dispose: () => {
6619
- for (const iframe of iframes) {
6620
- iframe.style.pointerEvents = 'auto';
6621
- }
6695
+ iframes.release();
6622
6696
  },
6623
6697
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6624
6698
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6687,9 +6761,8 @@ class Overlay extends CompositeDisposable {
6687
6761
  track();
6688
6762
  }
6689
6763
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6690
- bringElementToFront(this._element);
6764
+ arialLevelTracker.push(this._element);
6691
6765
  }, true));
6692
- bringElementToFront(this._element);
6693
6766
  if (options.inDragMode) {
6694
6767
  track();
6695
6768
  }
@@ -6702,13 +6775,7 @@ class Overlay extends CompositeDisposable {
6702
6775
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6703
6776
  e.preventDefault();
6704
6777
  let startPosition = null;
6705
- const iframes = [
6706
- ...getElementsByTagName('iframe'),
6707
- ...getElementsByTagName('webview'),
6708
- ];
6709
- for (const iframe of iframes) {
6710
- iframe.style.pointerEvents = 'none';
6711
- }
6778
+ const iframes = disableIframePointEvents();
6712
6779
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6713
6780
  const containerRect = this.options.container.getBoundingClientRect();
6714
6781
  const overlayRect = this._element.getBoundingClientRect();
@@ -6831,9 +6898,7 @@ class Overlay extends CompositeDisposable {
6831
6898
  this.setBounds(bounds);
6832
6899
  }), {
6833
6900
  dispose: () => {
6834
- for (const iframe of iframes) {
6835
- iframe.style.pointerEvents = 'auto';
6836
- }
6901
+ iframes.release();
6837
6902
  },
6838
6903
  }, addDisposableWindowListener(window, 'mouseup', () => {
6839
6904
  move.dispose();
@@ -6854,6 +6919,7 @@ class Overlay extends CompositeDisposable {
6854
6919
  return 0;
6855
6920
  }
6856
6921
  dispose() {
6922
+ arialLevelTracker.destroy(this._element);
6857
6923
  this._element.remove();
6858
6924
  super.dispose();
6859
6925
  }
@@ -6882,9 +6948,10 @@ function createFocusableElement() {
6882
6948
  return element;
6883
6949
  }
6884
6950
  class OverlayRenderContainer extends CompositeDisposable {
6885
- constructor(element) {
6951
+ constructor(element, accessor) {
6886
6952
  super();
6887
6953
  this.element = element;
6954
+ this.accessor = accessor;
6888
6955
  this.map = {};
6889
6956
  this._disposed = false;
6890
6957
  this.addDisposables(exports.DockviewDisposable.from(() => {
@@ -6940,7 +7007,35 @@ class OverlayRenderContainer extends CompositeDisposable {
6940
7007
  }
6941
7008
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6942
7009
  };
6943
- const disposable = new CompositeDisposable(
7010
+ const observerDisposable = new MutableDisposable();
7011
+ const correctLayerPosition = () => {
7012
+ if (panel.api.location.type === 'floating') {
7013
+ queueMicrotask(() => {
7014
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7015
+ if (!floatingGroup) {
7016
+ return;
7017
+ }
7018
+ const element = floatingGroup.overlay.element;
7019
+ const update = () => {
7020
+ const level = Number(element.getAttribute('aria-level'));
7021
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7022
+ };
7023
+ const observer = new MutationObserver(() => {
7024
+ update();
7025
+ });
7026
+ observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
7027
+ observer.observe(element, {
7028
+ attributeFilter: ['aria-level'],
7029
+ attributes: true,
7030
+ });
7031
+ update();
7032
+ });
7033
+ }
7034
+ else {
7035
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7036
+ }
7037
+ };
7038
+ const disposable = new CompositeDisposable(observerDisposable,
6944
7039
  /**
6945
7040
  * since container is positioned absoutely we must explicitly forward
6946
7041
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6964,7 +7059,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6964
7059
  onDragOver: (e) => {
6965
7060
  referenceContainer.dropTarget.dnd.onDragOver(e);
6966
7061
  },
6967
- }), panel.api.onDidVisibilityChange((event) => {
7062
+ }), panel.api.onDidVisibilityChange(() => {
6968
7063
  /**
6969
7064
  * Control the visibility of the content, however even when not visible (display: none)
6970
7065
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6976,6 +7071,8 @@ class OverlayRenderContainer extends CompositeDisposable {
6976
7071
  return;
6977
7072
  }
6978
7073
  resize();
7074
+ }), panel.api.onDidLocationChange(() => {
7075
+ correctLayerPosition();
6979
7076
  }));
6980
7077
  this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6981
7078
  var _a;
@@ -6984,6 +7081,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6984
7081
  }
6985
7082
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6986
7083
  });
7084
+ correctLayerPosition();
6987
7085
  queueMicrotask(() => {
6988
7086
  if (this.isDisposed) {
6989
7087
  return;
@@ -7209,7 +7307,10 @@ class DockviewComponent extends BaseGrid {
7209
7307
  get gap() {
7210
7308
  return this.gridview.margin;
7211
7309
  }
7212
- constructor(options) {
7310
+ get floatingGroups() {
7311
+ return this._floatingGroups;
7312
+ }
7313
+ constructor(parentElement, options) {
7213
7314
  var _a;
7214
7315
  super({
7215
7316
  proportionalLayout: true,
@@ -7217,10 +7318,11 @@ class DockviewComponent extends BaseGrid {
7217
7318
  styles: options.hideBorders
7218
7319
  ? { separatorBorder: 'transparent' }
7219
7320
  : undefined,
7220
- parentElement: options.parentElement,
7321
+ parentElement: parentElement,
7221
7322
  disableAutoResizing: options.disableAutoResizing,
7222
7323
  locked: options.locked,
7223
7324
  margin: options.gap,
7325
+ className: options.className,
7224
7326
  });
7225
7327
  this.nextGroupId = sequentialNumberGenerator();
7226
7328
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7256,10 +7358,10 @@ class DockviewComponent extends BaseGrid {
7256
7358
  this._onDidActiveGroupChange = new Emitter();
7257
7359
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7258
7360
  this._moving = false;
7259
- const gready = document.createElement('div');
7260
- gready.className = 'dv-overlay-render-container';
7261
- this.gridview.element.appendChild(gready);
7262
- this.overlayRenderContainer = new OverlayRenderContainer(gready);
7361
+ // const gready = document.createElement('div');
7362
+ // gready.className = 'dv-overlay-render-container';
7363
+ // this.gridview.element.appendChild(gready);
7364
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7263
7365
  toggleClass(this.gridview.element, 'dv-dockview', true);
7264
7366
  toggleClass(this.element, 'dv-debug', !!options.debug);
7265
7367
  this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
@@ -7425,7 +7527,7 @@ class DockviewComponent extends BaseGrid {
7425
7527
  }
7426
7528
  const gready = document.createElement('div');
7427
7529
  gready.className = 'dv-overlay-render-container';
7428
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7530
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7429
7531
  const referenceGroup = itemToPopout instanceof DockviewPanel
7430
7532
  ? itemToPopout.group
7431
7533
  : itemToPopout;
@@ -7574,7 +7676,6 @@ class DockviewComponent extends BaseGrid {
7574
7676
  }
7575
7677
  }
7576
7678
  }
7577
- group.model.location = { type: 'floating' };
7578
7679
  function getAnchoredBox() {
7579
7680
  if (options === null || options === void 0 ? void 0 : options.position) {
7580
7681
  const result = {};
@@ -7641,10 +7742,14 @@ class DockviewComponent extends BaseGrid {
7641
7742
  : false,
7642
7743
  });
7643
7744
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7644
- const disposable = watchElementResize(group.element, (entry) => {
7745
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7746
+ if (event.isActive) {
7747
+ overlay.bringToFront();
7748
+ }
7749
+ }), watchElementResize(group.element, (entry) => {
7645
7750
  const { width, height } = entry.contentRect;
7646
7751
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7647
- });
7752
+ }));
7648
7753
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7649
7754
  // this is either a resize or a move
7650
7755
  // to inform the panels .layout(...) the group with it's current size
@@ -7660,12 +7765,13 @@ class DockviewComponent extends BaseGrid {
7660
7765
  }), {
7661
7766
  dispose: () => {
7662
7767
  disposable.dispose();
7663
- group.model.location = { type: 'grid' };
7664
7768
  remove(this._floatingGroups, floatingGroupPanel);
7769
+ group.model.location = { type: 'grid' };
7665
7770
  this.updateWatermark();
7666
7771
  },
7667
7772
  });
7668
7773
  this._floatingGroups.push(floatingGroupPanel);
7774
+ group.model.location = { type: 'floating' };
7669
7775
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7670
7776
  this.doSetGroupAndPanelActive(group);
7671
7777
  }
@@ -7905,6 +8011,8 @@ class DockviewComponent extends BaseGrid {
7905
8011
  const group = createGroupFromSerializedState(data);
7906
8012
  this.addFloatingGroup(group, {
7907
8013
  position: position,
8014
+ width: position.width,
8015
+ height: position.height,
7908
8016
  skipRemoveGroup: true,
7909
8017
  inDragMode: false,
7910
8018
  });
@@ -8245,6 +8353,7 @@ class DockviewComponent extends BaseGrid {
8245
8353
  this._groups.delete(group.id);
8246
8354
  this._onDidRemoveGroup.fire(group);
8247
8355
  }
8356
+ remove(this._popoutGroups, selectedGroup);
8248
8357
  const removedGroup = selectedGroup.disposable.dispose();
8249
8358
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8250
8359
  this.doAddGroup(removedGroup, [0]);
@@ -8356,6 +8465,31 @@ class DockviewComponent extends BaseGrid {
8356
8465
  return;
8357
8466
  }
8358
8467
  }
8468
+ if (sourceGroup.api.location.type === 'popout') {
8469
+ /**
8470
+ * the source group is a popout group with a single panel
8471
+ *
8472
+ * 1. remove the panel from the group without triggering any events
8473
+ * 2. remove the popout group
8474
+ * 3. create a new group at the requested location and add that panel
8475
+ */
8476
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8477
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8478
+ skipSetActive: true,
8479
+ skipSetActiveGroup: true,
8480
+ }));
8481
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8482
+ const newGroup = this.createGroupAtLocation(targetLocation);
8483
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8484
+ skipSetActive: true,
8485
+ }));
8486
+ this.doSetGroupAndPanelActive(newGroup);
8487
+ this._onDidMovePanel.fire({
8488
+ panel: this.getGroupPanel(sourceItemId),
8489
+ from: sourceGroup,
8490
+ });
8491
+ return;
8492
+ }
8359
8493
  // source group will become empty so delete the group
8360
8494
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8361
8495
  skipActive: true,
@@ -8587,13 +8721,14 @@ class GridviewComponent extends BaseGrid {
8587
8721
  set deserializer(value) {
8588
8722
  this._deserializer = value;
8589
8723
  }
8590
- constructor(options) {
8724
+ constructor(parentElement, options) {
8591
8725
  super({
8592
- parentElement: options.parentElement,
8726
+ parentElement: parentElement,
8593
8727
  proportionalLayout: options.proportionalLayout,
8594
8728
  orientation: options.orientation,
8595
8729
  styles: options.styles,
8596
8730
  disableAutoResizing: options.disableAutoResizing,
8731
+ className: options.className,
8597
8732
  });
8598
8733
  this._onDidLayoutfromJSON = new Emitter();
8599
8734
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8885,8 +9020,8 @@ class SplitviewComponent extends Resizable {
8885
9020
  ? this.splitview.size
8886
9021
  : this.splitview.orthogonalSize;
8887
9022
  }
8888
- constructor(options) {
8889
- super(options.parentElement, options.disableAutoResizing);
9023
+ constructor(parentElement, options) {
9024
+ super(parentElement, options.disableAutoResizing);
8890
9025
  this._splitviewChangeDisposable = new MutableDisposable();
8891
9026
  this._panels = new Map();
8892
9027
  this._onDidLayoutfromJSON = new Emitter();
@@ -8897,6 +9032,9 @@ class SplitviewComponent extends Resizable {
8897
9032
  this.onDidRemoveView = this._onDidRemoveView.event;
8898
9033
  this._onDidLayoutChange = new Emitter();
8899
9034
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9035
+ if (typeof options.className === 'string') {
9036
+ this.element.classList.add(options.className);
9037
+ }
8900
9038
  this._options = options;
8901
9039
  if (!options.components) {
8902
9040
  options.components = {};
@@ -9209,8 +9347,8 @@ class PaneviewComponent extends Resizable {
9209
9347
  get options() {
9210
9348
  return this._options;
9211
9349
  }
9212
- constructor(options) {
9213
- super(options.parentElement, options.disableAutoResizing);
9350
+ constructor(parentElement, options) {
9351
+ super(parentElement, options.disableAutoResizing);
9214
9352
  this._id = nextLayoutId.next();
9215
9353
  this._disposable = new MutableDisposable();
9216
9354
  this._viewDisposables = new Map();
@@ -9224,6 +9362,9 @@ class PaneviewComponent extends Resizable {
9224
9362
  this.onDidAddView = this._onDidAddView.event;
9225
9363
  this._onDidRemoveView = new Emitter();
9226
9364
  this.onDidRemoveView = this._onDidRemoveView.event;
9365
+ if (typeof options.className === 'string') {
9366
+ this.element.classList.add(options.className);
9367
+ }
9227
9368
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9228
9369
  this._options = options;
9229
9370
  if (!options.components) {
@@ -9539,6 +9680,23 @@ class SplitviewPanel extends BasePanelView {
9539
9680
  }
9540
9681
  }
9541
9682
 
9683
+ function createDockview(element, options) {
9684
+ const component = new DockviewComponent(element, options);
9685
+ return component.api;
9686
+ }
9687
+ function createSplitview(element, options) {
9688
+ const component = new SplitviewComponent(element, options);
9689
+ return new SplitviewApi(component);
9690
+ }
9691
+ function createGridview(element, options) {
9692
+ const component = new GridviewComponent(element, options);
9693
+ return new GridviewApi(component);
9694
+ }
9695
+ function createPaneview(element, options) {
9696
+ const component = new PaneviewComponent(element, options);
9697
+ return new PaneviewApi(component);
9698
+ }
9699
+
9542
9700
  /**
9543
9701
  * This component is intended to interface between vanilla-js and React hence we need to be
9544
9702
  * creative in how we update props.
@@ -9918,20 +10076,19 @@ const DockviewReact = React.forwardRef((props, ref) => {
9918
10076
  });
9919
10077
  }
9920
10078
  : undefined,
9921
- parentElement: domRef.current,
9922
10079
  defaultTabComponent: props.defaultTabComponent
9923
10080
  ? DEFAULT_REACT_TAB
9924
10081
  : undefined,
9925
10082
  };
9926
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10083
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9927
10084
  const { clientWidth, clientHeight } = domRef.current;
9928
- dockview.layout(clientWidth, clientHeight);
10085
+ api.layout(clientWidth, clientHeight);
9929
10086
  if (props.onReady) {
9930
- props.onReady({ api: new DockviewApi(dockview) });
10087
+ props.onReady({ api });
9931
10088
  }
9932
- dockviewRef.current = dockview;
10089
+ dockviewRef.current = api;
9933
10090
  return () => {
9934
- dockview.dispose();
10091
+ api.dispose();
9935
10092
  };
9936
10093
  }, []);
9937
10094
  React.useEffect(() => {
@@ -10134,8 +10291,7 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10134
10291
  React.useImperativeHandle(ref, () => domRef.current, []);
10135
10292
  React.useEffect(() => {
10136
10293
  var _a;
10137
- const splitview = new SplitviewComponent({
10138
- parentElement: domRef.current,
10294
+ const api = createSplitview(domRef.current, {
10139
10295
  disableAutoResizing: props.disableAutoResizing,
10140
10296
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10141
10297
  frameworkComponents: props.components,
@@ -10154,13 +10310,13 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10154
10310
  : undefined,
10155
10311
  });
10156
10312
  const { clientWidth, clientHeight } = domRef.current;
10157
- splitview.layout(clientWidth, clientHeight);
10313
+ api.layout(clientWidth, clientHeight);
10158
10314
  if (props.onReady) {
10159
- props.onReady({ api: new SplitviewApi(splitview) });
10315
+ props.onReady({ api });
10160
10316
  }
10161
- splitviewRef.current = splitview;
10317
+ splitviewRef.current = api;
10162
10318
  return () => {
10163
- splitview.dispose();
10319
+ api.dispose();
10164
10320
  };
10165
10321
  }, []);
10166
10322
  React.useEffect(() => {
@@ -10205,8 +10361,7 @@ const GridviewReact = React.forwardRef((props, ref) => {
10205
10361
  // noop
10206
10362
  };
10207
10363
  }
10208
- const gridview = new GridviewComponent({
10209
- parentElement: domRef.current,
10364
+ const api = createGridview(domRef.current, {
10210
10365
  disableAutoResizing: props.disableAutoResizing,
10211
10366
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10212
10367
  ? props.proportionalLayout
@@ -10225,13 +10380,13 @@ const GridviewReact = React.forwardRef((props, ref) => {
10225
10380
  : undefined,
10226
10381
  });
10227
10382
  const { clientWidth, clientHeight } = domRef.current;
10228
- gridview.layout(clientWidth, clientHeight);
10383
+ api.layout(clientWidth, clientHeight);
10229
10384
  if (props.onReady) {
10230
- props.onReady({ api: new GridviewApi(gridview) });
10385
+ props.onReady({ api });
10231
10386
  }
10232
- gridviewRef.current = gridview;
10387
+ gridviewRef.current = api;
10233
10388
  return () => {
10234
- gridview.dispose();
10389
+ api.dispose();
10235
10390
  };
10236
10391
  }, []);
10237
10392
  React.useEffect(() => {
@@ -10290,8 +10445,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10290
10445
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10291
10446
  addPortal,
10292
10447
  });
10293
- const paneview = new PaneviewComponent({
10294
- parentElement: domRef.current,
10448
+ const api = createPaneview(domRef.current, {
10295
10449
  disableAutoResizing: props.disableAutoResizing,
10296
10450
  frameworkComponents: props.components,
10297
10451
  components: {},
@@ -10308,15 +10462,14 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10308
10462
  },
10309
10463
  showDndOverlay: props.showDndOverlay,
10310
10464
  });
10311
- const api = new PaneviewApi(paneview);
10312
10465
  const { clientWidth, clientHeight } = domRef.current;
10313
- paneview.layout(clientWidth, clientHeight);
10466
+ api.layout(clientWidth, clientHeight);
10314
10467
  if (props.onReady) {
10315
10468
  props.onReady({ api });
10316
10469
  }
10317
- paneviewRef.current = paneview;
10470
+ paneviewRef.current = api;
10318
10471
  return () => {
10319
- paneview.dispose();
10472
+ api.dispose();
10320
10473
  };
10321
10474
  }, []);
10322
10475
  React.useEffect(() => {
@@ -10341,10 +10494,10 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10341
10494
  //
10342
10495
  };
10343
10496
  }
10344
- const paneview = paneviewRef.current;
10345
- const disposable = paneview.onDidDrop((event) => {
10497
+ const api = paneviewRef.current;
10498
+ const disposable = api.onDidDrop((event) => {
10346
10499
  if (props.onDidDrop) {
10347
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10500
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10348
10501
  }
10349
10502
  });
10350
10503
  return () => {
@@ -10406,6 +10559,10 @@ exports.SplitviewReact = SplitviewReact;
10406
10559
  exports.Tab = Tab;
10407
10560
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10408
10561
  exports.createComponent = createComponent;
10562
+ exports.createDockview = createDockview;
10563
+ exports.createGridview = createGridview;
10564
+ exports.createPaneview = createPaneview;
10565
+ exports.createSplitview = createSplitview;
10409
10566
  exports.directionToPosition = directionToPosition;
10410
10567
  exports.getDirectionOrientation = getDirectionOrientation;
10411
10568
  exports.getGridLocation = getGridLocation;