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
  */
@@ -33,7 +33,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
33
33
  }
34
34
  }
35
35
 
36
- 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}";
36
+ 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}";
37
37
  styleInject(css_248z);
38
38
 
39
39
  class TransferObject {
@@ -561,6 +561,26 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
561
561
  function addTestId(element, id) {
562
562
  element.setAttribute('data-testid', id);
563
563
  }
564
+ function disableIframePointEvents() {
565
+ const iframes = [
566
+ ...getElementsByTagName('iframe'),
567
+ ...getElementsByTagName('webview'),
568
+ ];
569
+ const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
570
+ for (const iframe of iframes) {
571
+ original.set(iframe, iframe.style.pointerEvents);
572
+ iframe.style.pointerEvents = 'none';
573
+ }
574
+ return {
575
+ release: () => {
576
+ var _a;
577
+ for (const iframe of iframes) {
578
+ iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
579
+ }
580
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
581
+ },
582
+ };
583
+ }
564
584
 
565
585
  function tail(arr) {
566
586
  if (arr.length === 0) {
@@ -1083,13 +1103,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1083
1103
  for (const item of this.viewItems) {
1084
1104
  item.enabled = false;
1085
1105
  }
1086
- const iframes = [
1087
- ...getElementsByTagName('iframe'),
1088
- ...getElementsByTagName('webview'),
1089
- ];
1090
- for (const iframe of iframes) {
1091
- iframe.style.pointerEvents = 'none';
1092
- }
1106
+ const iframes = disableIframePointEvents();
1093
1107
  const start = this._orientation === exports.Orientation.HORIZONTAL
1094
1108
  ? event.clientX
1095
1109
  : event.clientY;
@@ -1151,9 +1165,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1151
1165
  for (const item of this.viewItems) {
1152
1166
  item.enabled = true;
1153
1167
  }
1154
- for (const iframe of iframes) {
1155
- iframe.style.pointerEvents = 'auto';
1156
- }
1168
+ iframes.release();
1157
1169
  this.saveProportions();
1158
1170
  document.removeEventListener('pointermove', onPointerMove);
1159
1171
  document.removeEventListener('pointerup', end);
@@ -1320,29 +1332,47 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1320
1332
  if (this.viewItems.length === 0) {
1321
1333
  return;
1322
1334
  }
1323
- const sashCount = this.viewItems.length - 1;
1324
- const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
1335
+ const visibleViewItems = this.viewItems.filter((i) => i.visible);
1336
+ const sashCount = Math.max(0, visibleViewItems.length - 1);
1337
+ const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
1325
1338
  let totalLeftOffset = 0;
1326
1339
  const viewLeftOffsets = [];
1327
- for (let i = 0; i < this.viewItems.length - 1; i++) {
1328
- totalLeftOffset += this.viewItems[i].size;
1329
- viewLeftOffsets.push(totalLeftOffset);
1330
- const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
1331
- if (this._orientation === exports.Orientation.HORIZONTAL) {
1332
- this.sashes[i].container.style.left = `${offset}px`;
1333
- this.sashes[i].container.style.top = `0px`;
1340
+ const sashWidth = 4; // hardcoded in css
1341
+ const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
1342
+ const flag = viewItem.visible ? 1 : 0;
1343
+ if (i === 0) {
1344
+ arr.push(flag);
1334
1345
  }
1335
- if (this._orientation === exports.Orientation.VERTICAL) {
1336
- this.sashes[i].container.style.left = `0px`;
1337
- this.sashes[i].container.style.top = `${offset}px`;
1346
+ else {
1347
+ arr.push(arr[i - 1] + flag);
1338
1348
  }
1339
- }
1349
+ return arr;
1350
+ }, []);
1351
+ // calculate both view and cash positions
1340
1352
  this.viewItems.forEach((view, i) => {
1341
- const size = view.size - marginReducedSize;
1342
- const offset = i === 0
1353
+ totalLeftOffset += this.viewItems[i].size;
1354
+ viewLeftOffsets.push(totalLeftOffset);
1355
+ const size = view.visible ? view.size - marginReducedSize : 0;
1356
+ const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
1357
+ const offset = i === 0 || visiblePanelsBeforeThisView === 0
1343
1358
  ? 0
1344
1359
  : viewLeftOffsets[i - 1] +
1345
- (i / sashCount) * marginReducedSize;
1360
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1361
+ if (i < this.viewItems.length - 1) {
1362
+ // calculate sash position
1363
+ const newSize = view.visible
1364
+ ? offset + size - sashWidth / 2 + this.margin / 2
1365
+ : offset;
1366
+ if (this._orientation === exports.Orientation.HORIZONTAL) {
1367
+ this.sashes[i].container.style.left = `${newSize}px`;
1368
+ this.sashes[i].container.style.top = `0px`;
1369
+ }
1370
+ if (this._orientation === exports.Orientation.VERTICAL) {
1371
+ this.sashes[i].container.style.left = `0px`;
1372
+ this.sashes[i].container.style.top = `${newSize}px`;
1373
+ }
1374
+ }
1375
+ // calculate view position
1346
1376
  if (this._orientation === exports.Orientation.HORIZONTAL) {
1347
1377
  view.container.style.width = `${size}px`;
1348
1378
  view.container.style.left = `${offset}px`;
@@ -2686,6 +2716,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2686
2716
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2687
2717
  this.element.style.height = '100%';
2688
2718
  this.element.style.width = '100%';
2719
+ if (typeof options.className === 'string') {
2720
+ this.element.classList.add(options.className);
2721
+ }
2689
2722
  options.parentElement.appendChild(this.element);
2690
2723
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2691
2724
  this.gridview.locked = !!options.locked;
@@ -2889,12 +2922,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2889
2922
  constructor(component) {
2890
2923
  this.component = component;
2891
2924
  }
2892
- /**
2893
- * Update configuratable options.
2894
- */
2895
- updateOptions(options) {
2896
- this.component.updateOptions(options);
2897
- }
2898
2925
  /**
2899
2926
  * Removes an existing panel and optionally provide a `Sizing` method
2900
2927
  * for the subsequent resize.
@@ -2948,6 +2975,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2948
2975
  clear() {
2949
2976
  this.component.clear();
2950
2977
  }
2978
+ /**
2979
+ * Update configuratable options.
2980
+ */
2981
+ updateOptions(options) {
2982
+ this.component.updateOptions(options);
2983
+ }
2984
+ /**
2985
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
2986
+ */
2987
+ dispose() {
2988
+ this.component.dispose();
2989
+ }
2951
2990
  }
2952
2991
  class PaneviewApi {
2953
2992
  /**
@@ -3075,6 +3114,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3075
3114
  clear() {
3076
3115
  this.component.clear();
3077
3116
  }
3117
+ /**
3118
+ * Update configuratable options.
3119
+ */
3120
+ updateOptions(options) {
3121
+ this.component.updateOptions(options);
3122
+ }
3123
+ /**
3124
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3125
+ */
3126
+ dispose() {
3127
+ this.component.dispose();
3128
+ }
3078
3129
  }
3079
3130
  class GridviewApi {
3080
3131
  /**
@@ -3215,6 +3266,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3215
3266
  clear() {
3216
3267
  this.component.clear();
3217
3268
  }
3269
+ updateOptions(options) {
3270
+ this.component.updateOptions(options);
3271
+ }
3272
+ /**
3273
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3274
+ */
3275
+ dispose() {
3276
+ this.component.dispose();
3277
+ }
3218
3278
  }
3219
3279
  class DockviewApi {
3220
3280
  /**
@@ -3507,6 +3567,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3507
3567
  setGap(gap) {
3508
3568
  this.component.updateOptions({ gap });
3509
3569
  }
3570
+ updateOptions(options) {
3571
+ this.component.updateOptions(options);
3572
+ }
3573
+ /**
3574
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3575
+ */
3576
+ dispose() {
3577
+ this.component.dispose();
3578
+ }
3510
3579
  }
3511
3580
 
3512
3581
  class DragHandler extends CompositeDisposable {
@@ -3529,20 +3598,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3529
3598
  event.preventDefault();
3530
3599
  return;
3531
3600
  }
3532
- const iframes = [
3533
- ...getElementsByTagName('iframe'),
3534
- ...getElementsByTagName('webview'),
3535
- ];
3601
+ const iframes = disableIframePointEvents();
3536
3602
  this.pointerEventsDisposable.value = {
3537
3603
  dispose: () => {
3538
- for (const iframe of iframes) {
3539
- iframe.style.pointerEvents = 'auto';
3540
- }
3604
+ iframes.release();
3541
3605
  },
3542
3606
  };
3543
- for (const iframe of iframes) {
3544
- iframe.style.pointerEvents = 'none';
3545
- }
3546
3607
  this.el.classList.add('dv-dragged');
3547
3608
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3548
3609
  this.dataDisposable.value = this.getData(event);
@@ -4706,7 +4767,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4706
4767
  this._element.className = 'void-container';
4707
4768
  this._element.tabIndex = 0;
4708
4769
  this._element.draggable = true;
4709
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4770
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4710
4771
  this.accessor.doSetGroupActive(this.group);
4711
4772
  }));
4712
4773
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5021,6 +5082,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5021
5082
  locked: undefined,
5022
5083
  disableDnd: undefined,
5023
5084
  gap: undefined,
5085
+ className: undefined,
5024
5086
  };
5025
5087
  return Object.keys(properties);
5026
5088
  })();
@@ -5576,7 +5638,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5576
5638
  group: this.groupPanel,
5577
5639
  });
5578
5640
  this.watermark = watermark;
5579
- addDisposableListener(this.watermark.element, 'click', () => {
5641
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5580
5642
  if (!this.isActive) {
5581
5643
  this.accessor.doSetGroupActive(this.groupPanel);
5582
5644
  }
@@ -6141,7 +6203,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6141
6203
  // forward the resize event to the group since if you want to resize a panel
6142
6204
  // you are actually just resizing the panels parent which is the group
6143
6205
  this.group.api.setSize(event);
6144
- }), this.api.onDidRendererChange((event) => {
6206
+ }), this.api.onDidRendererChange(() => {
6145
6207
  this.group.model.rerender(this);
6146
6208
  }));
6147
6209
  }
@@ -6477,17 +6539,30 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6477
6539
  }
6478
6540
  }
6479
6541
 
6480
- const bringElementToFront = (() => {
6481
- let previous = null;
6482
- function pushToTop(element) {
6483
- if (previous !== element && previous !== null) {
6484
- toggleClass(previous, 'dv-bring-to-front', false);
6542
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6543
+ class AriaLevelTracker {
6544
+ constructor() {
6545
+ this._orderedList = [];
6546
+ }
6547
+ push(element) {
6548
+ this._orderedList = [
6549
+ ...this._orderedList.filter((item) => item !== element),
6550
+ element,
6551
+ ];
6552
+ this.update();
6553
+ }
6554
+ destroy(element) {
6555
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6556
+ this.update();
6557
+ }
6558
+ update() {
6559
+ for (let i = 0; i < this._orderedList.length; i++) {
6560
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6561
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6485
6562
  }
6486
- toggleClass(element, 'dv-bring-to-front', true);
6487
- previous = element;
6488
6563
  }
6489
- return pushToTop;
6490
- })();
6564
+ }
6565
+ const arialLevelTracker = new AriaLevelTracker();
6491
6566
  class Overlay extends CompositeDisposable {
6492
6567
  set minimumInViewportWidth(value) {
6493
6568
  this.options.minimumInViewportWidth = value;
@@ -6495,6 +6570,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6495
6570
  set minimumInViewportHeight(value) {
6496
6571
  this.options.minimumInViewportHeight = value;
6497
6572
  }
6573
+ get element() {
6574
+ return this._element;
6575
+ }
6498
6576
  constructor(options) {
6499
6577
  super();
6500
6578
  this.options = options;
@@ -6517,6 +6595,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6517
6595
  this.options.container.appendChild(this._element);
6518
6596
  // if input bad resize within acceptable boundaries
6519
6597
  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 })));
6598
+ arialLevelTracker.push(this._element);
6599
+ }
6600
+ bringToFront() {
6601
+ arialLevelTracker.push(this._element);
6520
6602
  }
6521
6603
  setBounds(bounds = {}) {
6522
6604
  if (typeof bounds.height === 'number') {
@@ -6604,18 +6686,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6604
6686
  const move = new MutableDisposable();
6605
6687
  const track = () => {
6606
6688
  let offset = null;
6607
- const iframes = [
6608
- ...getElementsByTagName('iframe'),
6609
- ...getElementsByTagName('webview'),
6610
- ];
6611
- for (const iframe of iframes) {
6612
- iframe.style.pointerEvents = 'none';
6613
- }
6689
+ const iframes = disableIframePointEvents();
6614
6690
  move.value = new CompositeDisposable({
6615
6691
  dispose: () => {
6616
- for (const iframe of iframes) {
6617
- iframe.style.pointerEvents = 'auto';
6618
- }
6692
+ iframes.release();
6619
6693
  },
6620
6694
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6621
6695
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6684,9 +6758,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6684
6758
  track();
6685
6759
  }
6686
6760
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6687
- bringElementToFront(this._element);
6761
+ arialLevelTracker.push(this._element);
6688
6762
  }, true));
6689
- bringElementToFront(this._element);
6690
6763
  if (options.inDragMode) {
6691
6764
  track();
6692
6765
  }
@@ -6699,13 +6772,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6699
6772
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6700
6773
  e.preventDefault();
6701
6774
  let startPosition = null;
6702
- const iframes = [
6703
- ...getElementsByTagName('iframe'),
6704
- ...getElementsByTagName('webview'),
6705
- ];
6706
- for (const iframe of iframes) {
6707
- iframe.style.pointerEvents = 'none';
6708
- }
6775
+ const iframes = disableIframePointEvents();
6709
6776
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6710
6777
  const containerRect = this.options.container.getBoundingClientRect();
6711
6778
  const overlayRect = this._element.getBoundingClientRect();
@@ -6828,9 +6895,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6828
6895
  this.setBounds(bounds);
6829
6896
  }), {
6830
6897
  dispose: () => {
6831
- for (const iframe of iframes) {
6832
- iframe.style.pointerEvents = 'auto';
6833
- }
6898
+ iframes.release();
6834
6899
  },
6835
6900
  }, addDisposableWindowListener(window, 'mouseup', () => {
6836
6901
  move.dispose();
@@ -6851,6 +6916,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6851
6916
  return 0;
6852
6917
  }
6853
6918
  dispose() {
6919
+ arialLevelTracker.destroy(this._element);
6854
6920
  this._element.remove();
6855
6921
  super.dispose();
6856
6922
  }
@@ -6879,9 +6945,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6879
6945
  return element;
6880
6946
  }
6881
6947
  class OverlayRenderContainer extends CompositeDisposable {
6882
- constructor(element) {
6948
+ constructor(element, accessor) {
6883
6949
  super();
6884
6950
  this.element = element;
6951
+ this.accessor = accessor;
6885
6952
  this.map = {};
6886
6953
  this._disposed = false;
6887
6954
  this.addDisposables(exports.DockviewDisposable.from(() => {
@@ -6937,7 +7004,35 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6937
7004
  }
6938
7005
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6939
7006
  };
6940
- const disposable = new CompositeDisposable(
7007
+ const observerDisposable = new MutableDisposable();
7008
+ const correctLayerPosition = () => {
7009
+ if (panel.api.location.type === 'floating') {
7010
+ queueMicrotask(() => {
7011
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7012
+ if (!floatingGroup) {
7013
+ return;
7014
+ }
7015
+ const element = floatingGroup.overlay.element;
7016
+ const update = () => {
7017
+ const level = Number(element.getAttribute('aria-level'));
7018
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7019
+ };
7020
+ const observer = new MutationObserver(() => {
7021
+ update();
7022
+ });
7023
+ observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
7024
+ observer.observe(element, {
7025
+ attributeFilter: ['aria-level'],
7026
+ attributes: true,
7027
+ });
7028
+ update();
7029
+ });
7030
+ }
7031
+ else {
7032
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7033
+ }
7034
+ };
7035
+ const disposable = new CompositeDisposable(observerDisposable,
6941
7036
  /**
6942
7037
  * since container is positioned absoutely we must explicitly forward
6943
7038
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6961,7 +7056,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6961
7056
  onDragOver: (e) => {
6962
7057
  referenceContainer.dropTarget.dnd.onDragOver(e);
6963
7058
  },
6964
- }), panel.api.onDidVisibilityChange((event) => {
7059
+ }), panel.api.onDidVisibilityChange(() => {
6965
7060
  /**
6966
7061
  * Control the visibility of the content, however even when not visible (display: none)
6967
7062
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6973,6 +7068,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6973
7068
  return;
6974
7069
  }
6975
7070
  resize();
7071
+ }), panel.api.onDidLocationChange(() => {
7072
+ correctLayerPosition();
6976
7073
  }));
6977
7074
  this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6978
7075
  var _a;
@@ -6981,6 +7078,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6981
7078
  }
6982
7079
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6983
7080
  });
7081
+ correctLayerPosition();
6984
7082
  queueMicrotask(() => {
6985
7083
  if (this.isDisposed) {
6986
7084
  return;
@@ -7206,7 +7304,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7206
7304
  get gap() {
7207
7305
  return this.gridview.margin;
7208
7306
  }
7209
- constructor(options) {
7307
+ get floatingGroups() {
7308
+ return this._floatingGroups;
7309
+ }
7310
+ constructor(parentElement, options) {
7210
7311
  var _a;
7211
7312
  super({
7212
7313
  proportionalLayout: true,
@@ -7214,10 +7315,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7214
7315
  styles: options.hideBorders
7215
7316
  ? { separatorBorder: 'transparent' }
7216
7317
  : undefined,
7217
- parentElement: options.parentElement,
7318
+ parentElement: parentElement,
7218
7319
  disableAutoResizing: options.disableAutoResizing,
7219
7320
  locked: options.locked,
7220
7321
  margin: options.gap,
7322
+ className: options.className,
7221
7323
  });
7222
7324
  this.nextGroupId = sequentialNumberGenerator();
7223
7325
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7253,10 +7355,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7253
7355
  this._onDidActiveGroupChange = new Emitter();
7254
7356
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7255
7357
  this._moving = false;
7256
- const gready = document.createElement('div');
7257
- gready.className = 'dv-overlay-render-container';
7258
- this.gridview.element.appendChild(gready);
7259
- this.overlayRenderContainer = new OverlayRenderContainer(gready);
7358
+ // const gready = document.createElement('div');
7359
+ // gready.className = 'dv-overlay-render-container';
7360
+ // this.gridview.element.appendChild(gready);
7361
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7260
7362
  toggleClass(this.gridview.element, 'dv-dockview', true);
7261
7363
  toggleClass(this.element, 'dv-debug', !!options.debug);
7262
7364
  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(() => {
@@ -7422,7 +7524,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7422
7524
  }
7423
7525
  const gready = document.createElement('div');
7424
7526
  gready.className = 'dv-overlay-render-container';
7425
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7527
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7426
7528
  const referenceGroup = itemToPopout instanceof DockviewPanel
7427
7529
  ? itemToPopout.group
7428
7530
  : itemToPopout;
@@ -7571,7 +7673,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7571
7673
  }
7572
7674
  }
7573
7675
  }
7574
- group.model.location = { type: 'floating' };
7575
7676
  function getAnchoredBox() {
7576
7677
  if (options === null || options === void 0 ? void 0 : options.position) {
7577
7678
  const result = {};
@@ -7638,10 +7739,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7638
7739
  : false,
7639
7740
  });
7640
7741
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7641
- const disposable = watchElementResize(group.element, (entry) => {
7742
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7743
+ if (event.isActive) {
7744
+ overlay.bringToFront();
7745
+ }
7746
+ }), watchElementResize(group.element, (entry) => {
7642
7747
  const { width, height } = entry.contentRect;
7643
7748
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7644
- });
7749
+ }));
7645
7750
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7646
7751
  // this is either a resize or a move
7647
7752
  // to inform the panels .layout(...) the group with it's current size
@@ -7657,12 +7762,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7657
7762
  }), {
7658
7763
  dispose: () => {
7659
7764
  disposable.dispose();
7660
- group.model.location = { type: 'grid' };
7661
7765
  remove(this._floatingGroups, floatingGroupPanel);
7766
+ group.model.location = { type: 'grid' };
7662
7767
  this.updateWatermark();
7663
7768
  },
7664
7769
  });
7665
7770
  this._floatingGroups.push(floatingGroupPanel);
7771
+ group.model.location = { type: 'floating' };
7666
7772
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7667
7773
  this.doSetGroupAndPanelActive(group);
7668
7774
  }
@@ -7902,6 +8008,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7902
8008
  const group = createGroupFromSerializedState(data);
7903
8009
  this.addFloatingGroup(group, {
7904
8010
  position: position,
8011
+ width: position.width,
8012
+ height: position.height,
7905
8013
  skipRemoveGroup: true,
7906
8014
  inDragMode: false,
7907
8015
  });
@@ -8242,6 +8350,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8242
8350
  this._groups.delete(group.id);
8243
8351
  this._onDidRemoveGroup.fire(group);
8244
8352
  }
8353
+ remove(this._popoutGroups, selectedGroup);
8245
8354
  const removedGroup = selectedGroup.disposable.dispose();
8246
8355
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8247
8356
  this.doAddGroup(removedGroup, [0]);
@@ -8353,6 +8462,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8353
8462
  return;
8354
8463
  }
8355
8464
  }
8465
+ if (sourceGroup.api.location.type === 'popout') {
8466
+ /**
8467
+ * the source group is a popout group with a single panel
8468
+ *
8469
+ * 1. remove the panel from the group without triggering any events
8470
+ * 2. remove the popout group
8471
+ * 3. create a new group at the requested location and add that panel
8472
+ */
8473
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8474
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8475
+ skipSetActive: true,
8476
+ skipSetActiveGroup: true,
8477
+ }));
8478
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8479
+ const newGroup = this.createGroupAtLocation(targetLocation);
8480
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8481
+ skipSetActive: true,
8482
+ }));
8483
+ this.doSetGroupAndPanelActive(newGroup);
8484
+ this._onDidMovePanel.fire({
8485
+ panel: this.getGroupPanel(sourceItemId),
8486
+ from: sourceGroup,
8487
+ });
8488
+ return;
8489
+ }
8356
8490
  // source group will become empty so delete the group
8357
8491
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8358
8492
  skipActive: true,
@@ -8584,13 +8718,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8584
8718
  set deserializer(value) {
8585
8719
  this._deserializer = value;
8586
8720
  }
8587
- constructor(options) {
8721
+ constructor(parentElement, options) {
8588
8722
  super({
8589
- parentElement: options.parentElement,
8723
+ parentElement: parentElement,
8590
8724
  proportionalLayout: options.proportionalLayout,
8591
8725
  orientation: options.orientation,
8592
8726
  styles: options.styles,
8593
8727
  disableAutoResizing: options.disableAutoResizing,
8728
+ className: options.className,
8594
8729
  });
8595
8730
  this._onDidLayoutfromJSON = new Emitter();
8596
8731
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8882,8 +9017,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8882
9017
  ? this.splitview.size
8883
9018
  : this.splitview.orthogonalSize;
8884
9019
  }
8885
- constructor(options) {
8886
- super(options.parentElement, options.disableAutoResizing);
9020
+ constructor(parentElement, options) {
9021
+ super(parentElement, options.disableAutoResizing);
8887
9022
  this._splitviewChangeDisposable = new MutableDisposable();
8888
9023
  this._panels = new Map();
8889
9024
  this._onDidLayoutfromJSON = new Emitter();
@@ -8894,6 +9029,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8894
9029
  this.onDidRemoveView = this._onDidRemoveView.event;
8895
9030
  this._onDidLayoutChange = new Emitter();
8896
9031
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9032
+ if (typeof options.className === 'string') {
9033
+ this.element.classList.add(options.className);
9034
+ }
8897
9035
  this._options = options;
8898
9036
  if (!options.components) {
8899
9037
  options.components = {};
@@ -9206,8 +9344,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9206
9344
  get options() {
9207
9345
  return this._options;
9208
9346
  }
9209
- constructor(options) {
9210
- super(options.parentElement, options.disableAutoResizing);
9347
+ constructor(parentElement, options) {
9348
+ super(parentElement, options.disableAutoResizing);
9211
9349
  this._id = nextLayoutId.next();
9212
9350
  this._disposable = new MutableDisposable();
9213
9351
  this._viewDisposables = new Map();
@@ -9221,6 +9359,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9221
9359
  this.onDidAddView = this._onDidAddView.event;
9222
9360
  this._onDidRemoveView = new Emitter();
9223
9361
  this.onDidRemoveView = this._onDidRemoveView.event;
9362
+ if (typeof options.className === 'string') {
9363
+ this.element.classList.add(options.className);
9364
+ }
9224
9365
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9225
9366
  this._options = options;
9226
9367
  if (!options.components) {
@@ -9536,6 +9677,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9536
9677
  }
9537
9678
  }
9538
9679
 
9680
+ function createDockview(element, options) {
9681
+ const component = new DockviewComponent(element, options);
9682
+ return component.api;
9683
+ }
9684
+ function createSplitview(element, options) {
9685
+ const component = new SplitviewComponent(element, options);
9686
+ return new SplitviewApi(component);
9687
+ }
9688
+ function createGridview(element, options) {
9689
+ const component = new GridviewComponent(element, options);
9690
+ return new GridviewApi(component);
9691
+ }
9692
+ function createPaneview(element, options) {
9693
+ const component = new PaneviewComponent(element, options);
9694
+ return new PaneviewApi(component);
9695
+ }
9696
+
9539
9697
  /**
9540
9698
  * This component is intended to interface between vanilla-js and React hence we need to be
9541
9699
  * creative in how we update props.
@@ -9915,20 +10073,19 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9915
10073
  });
9916
10074
  }
9917
10075
  : undefined,
9918
- parentElement: domRef.current,
9919
10076
  defaultTabComponent: props.defaultTabComponent
9920
10077
  ? DEFAULT_REACT_TAB
9921
10078
  : undefined,
9922
10079
  };
9923
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10080
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9924
10081
  const { clientWidth, clientHeight } = domRef.current;
9925
- dockview.layout(clientWidth, clientHeight);
10082
+ api.layout(clientWidth, clientHeight);
9926
10083
  if (props.onReady) {
9927
- props.onReady({ api: new DockviewApi(dockview) });
10084
+ props.onReady({ api });
9928
10085
  }
9929
- dockviewRef.current = dockview;
10086
+ dockviewRef.current = api;
9930
10087
  return () => {
9931
- dockview.dispose();
10088
+ api.dispose();
9932
10089
  };
9933
10090
  }, []);
9934
10091
  React.useEffect(() => {
@@ -10131,8 +10288,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10131
10288
  React.useImperativeHandle(ref, () => domRef.current, []);
10132
10289
  React.useEffect(() => {
10133
10290
  var _a;
10134
- const splitview = new SplitviewComponent({
10135
- parentElement: domRef.current,
10291
+ const api = createSplitview(domRef.current, {
10136
10292
  disableAutoResizing: props.disableAutoResizing,
10137
10293
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10138
10294
  frameworkComponents: props.components,
@@ -10151,13 +10307,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10151
10307
  : undefined,
10152
10308
  });
10153
10309
  const { clientWidth, clientHeight } = domRef.current;
10154
- splitview.layout(clientWidth, clientHeight);
10310
+ api.layout(clientWidth, clientHeight);
10155
10311
  if (props.onReady) {
10156
- props.onReady({ api: new SplitviewApi(splitview) });
10312
+ props.onReady({ api });
10157
10313
  }
10158
- splitviewRef.current = splitview;
10314
+ splitviewRef.current = api;
10159
10315
  return () => {
10160
- splitview.dispose();
10316
+ api.dispose();
10161
10317
  };
10162
10318
  }, []);
10163
10319
  React.useEffect(() => {
@@ -10202,8 +10358,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10202
10358
  // noop
10203
10359
  };
10204
10360
  }
10205
- const gridview = new GridviewComponent({
10206
- parentElement: domRef.current,
10361
+ const api = createGridview(domRef.current, {
10207
10362
  disableAutoResizing: props.disableAutoResizing,
10208
10363
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10209
10364
  ? props.proportionalLayout
@@ -10222,13 +10377,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10222
10377
  : undefined,
10223
10378
  });
10224
10379
  const { clientWidth, clientHeight } = domRef.current;
10225
- gridview.layout(clientWidth, clientHeight);
10380
+ api.layout(clientWidth, clientHeight);
10226
10381
  if (props.onReady) {
10227
- props.onReady({ api: new GridviewApi(gridview) });
10382
+ props.onReady({ api });
10228
10383
  }
10229
- gridviewRef.current = gridview;
10384
+ gridviewRef.current = api;
10230
10385
  return () => {
10231
- gridview.dispose();
10386
+ api.dispose();
10232
10387
  };
10233
10388
  }, []);
10234
10389
  React.useEffect(() => {
@@ -10287,8 +10442,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10287
10442
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10288
10443
  addPortal,
10289
10444
  });
10290
- const paneview = new PaneviewComponent({
10291
- parentElement: domRef.current,
10445
+ const api = createPaneview(domRef.current, {
10292
10446
  disableAutoResizing: props.disableAutoResizing,
10293
10447
  frameworkComponents: props.components,
10294
10448
  components: {},
@@ -10305,15 +10459,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10305
10459
  },
10306
10460
  showDndOverlay: props.showDndOverlay,
10307
10461
  });
10308
- const api = new PaneviewApi(paneview);
10309
10462
  const { clientWidth, clientHeight } = domRef.current;
10310
- paneview.layout(clientWidth, clientHeight);
10463
+ api.layout(clientWidth, clientHeight);
10311
10464
  if (props.onReady) {
10312
10465
  props.onReady({ api });
10313
10466
  }
10314
- paneviewRef.current = paneview;
10467
+ paneviewRef.current = api;
10315
10468
  return () => {
10316
- paneview.dispose();
10469
+ api.dispose();
10317
10470
  };
10318
10471
  }, []);
10319
10472
  React.useEffect(() => {
@@ -10338,10 +10491,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10338
10491
  //
10339
10492
  };
10340
10493
  }
10341
- const paneview = paneviewRef.current;
10342
- const disposable = paneview.onDidDrop((event) => {
10494
+ const api = paneviewRef.current;
10495
+ const disposable = api.onDidDrop((event) => {
10343
10496
  if (props.onDidDrop) {
10344
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10497
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10345
10498
  }
10346
10499
  });
10347
10500
  return () => {
@@ -10403,6 +10556,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10403
10556
  exports.Tab = Tab;
10404
10557
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10405
10558
  exports.createComponent = createComponent;
10559
+ exports.createDockview = createDockview;
10560
+ exports.createGridview = createGridview;
10561
+ exports.createPaneview = createPaneview;
10562
+ exports.createSplitview = createSplitview;
10406
10563
  exports.directionToPosition = directionToPosition;
10407
10564
  exports.getDirectionOrientation = getDirectionOrientation;
10408
10565
  exports.getGridLocation = getGridLocation;