dockview-react 1.15.3 → 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.3
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: 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}";
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
  }
@@ -8244,6 +8350,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8244
8350
  this._groups.delete(group.id);
8245
8351
  this._onDidRemoveGroup.fire(group);
8246
8352
  }
8353
+ remove(this._popoutGroups, selectedGroup);
8247
8354
  const removedGroup = selectedGroup.disposable.dispose();
8248
8355
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8249
8356
  this.doAddGroup(removedGroup, [0]);
@@ -8355,6 +8462,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8355
8462
  return;
8356
8463
  }
8357
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
+ }
8358
8490
  // source group will become empty so delete the group
8359
8491
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8360
8492
  skipActive: true,
@@ -8586,13 +8718,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8586
8718
  set deserializer(value) {
8587
8719
  this._deserializer = value;
8588
8720
  }
8589
- constructor(options) {
8721
+ constructor(parentElement, options) {
8590
8722
  super({
8591
- parentElement: options.parentElement,
8723
+ parentElement: parentElement,
8592
8724
  proportionalLayout: options.proportionalLayout,
8593
8725
  orientation: options.orientation,
8594
8726
  styles: options.styles,
8595
8727
  disableAutoResizing: options.disableAutoResizing,
8728
+ className: options.className,
8596
8729
  });
8597
8730
  this._onDidLayoutfromJSON = new Emitter();
8598
8731
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8884,8 +9017,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8884
9017
  ? this.splitview.size
8885
9018
  : this.splitview.orthogonalSize;
8886
9019
  }
8887
- constructor(options) {
8888
- super(options.parentElement, options.disableAutoResizing);
9020
+ constructor(parentElement, options) {
9021
+ super(parentElement, options.disableAutoResizing);
8889
9022
  this._splitviewChangeDisposable = new MutableDisposable();
8890
9023
  this._panels = new Map();
8891
9024
  this._onDidLayoutfromJSON = new Emitter();
@@ -8896,6 +9029,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8896
9029
  this.onDidRemoveView = this._onDidRemoveView.event;
8897
9030
  this._onDidLayoutChange = new Emitter();
8898
9031
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9032
+ if (typeof options.className === 'string') {
9033
+ this.element.classList.add(options.className);
9034
+ }
8899
9035
  this._options = options;
8900
9036
  if (!options.components) {
8901
9037
  options.components = {};
@@ -9208,8 +9344,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9208
9344
  get options() {
9209
9345
  return this._options;
9210
9346
  }
9211
- constructor(options) {
9212
- super(options.parentElement, options.disableAutoResizing);
9347
+ constructor(parentElement, options) {
9348
+ super(parentElement, options.disableAutoResizing);
9213
9349
  this._id = nextLayoutId.next();
9214
9350
  this._disposable = new MutableDisposable();
9215
9351
  this._viewDisposables = new Map();
@@ -9223,6 +9359,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9223
9359
  this.onDidAddView = this._onDidAddView.event;
9224
9360
  this._onDidRemoveView = new Emitter();
9225
9361
  this.onDidRemoveView = this._onDidRemoveView.event;
9362
+ if (typeof options.className === 'string') {
9363
+ this.element.classList.add(options.className);
9364
+ }
9226
9365
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9227
9366
  this._options = options;
9228
9367
  if (!options.components) {
@@ -9538,6 +9677,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9538
9677
  }
9539
9678
  }
9540
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
+
9541
9697
  /**
9542
9698
  * This component is intended to interface between vanilla-js and React hence we need to be
9543
9699
  * creative in how we update props.
@@ -9917,20 +10073,19 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9917
10073
  });
9918
10074
  }
9919
10075
  : undefined,
9920
- parentElement: domRef.current,
9921
10076
  defaultTabComponent: props.defaultTabComponent
9922
10077
  ? DEFAULT_REACT_TAB
9923
10078
  : undefined,
9924
10079
  };
9925
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10080
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9926
10081
  const { clientWidth, clientHeight } = domRef.current;
9927
- dockview.layout(clientWidth, clientHeight);
10082
+ api.layout(clientWidth, clientHeight);
9928
10083
  if (props.onReady) {
9929
- props.onReady({ api: new DockviewApi(dockview) });
10084
+ props.onReady({ api });
9930
10085
  }
9931
- dockviewRef.current = dockview;
10086
+ dockviewRef.current = api;
9932
10087
  return () => {
9933
- dockview.dispose();
10088
+ api.dispose();
9934
10089
  };
9935
10090
  }, []);
9936
10091
  React.useEffect(() => {
@@ -10133,8 +10288,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10133
10288
  React.useImperativeHandle(ref, () => domRef.current, []);
10134
10289
  React.useEffect(() => {
10135
10290
  var _a;
10136
- const splitview = new SplitviewComponent({
10137
- parentElement: domRef.current,
10291
+ const api = createSplitview(domRef.current, {
10138
10292
  disableAutoResizing: props.disableAutoResizing,
10139
10293
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10140
10294
  frameworkComponents: props.components,
@@ -10153,13 +10307,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10153
10307
  : undefined,
10154
10308
  });
10155
10309
  const { clientWidth, clientHeight } = domRef.current;
10156
- splitview.layout(clientWidth, clientHeight);
10310
+ api.layout(clientWidth, clientHeight);
10157
10311
  if (props.onReady) {
10158
- props.onReady({ api: new SplitviewApi(splitview) });
10312
+ props.onReady({ api });
10159
10313
  }
10160
- splitviewRef.current = splitview;
10314
+ splitviewRef.current = api;
10161
10315
  return () => {
10162
- splitview.dispose();
10316
+ api.dispose();
10163
10317
  };
10164
10318
  }, []);
10165
10319
  React.useEffect(() => {
@@ -10204,8 +10358,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10204
10358
  // noop
10205
10359
  };
10206
10360
  }
10207
- const gridview = new GridviewComponent({
10208
- parentElement: domRef.current,
10361
+ const api = createGridview(domRef.current, {
10209
10362
  disableAutoResizing: props.disableAutoResizing,
10210
10363
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10211
10364
  ? props.proportionalLayout
@@ -10224,13 +10377,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10224
10377
  : undefined,
10225
10378
  });
10226
10379
  const { clientWidth, clientHeight } = domRef.current;
10227
- gridview.layout(clientWidth, clientHeight);
10380
+ api.layout(clientWidth, clientHeight);
10228
10381
  if (props.onReady) {
10229
- props.onReady({ api: new GridviewApi(gridview) });
10382
+ props.onReady({ api });
10230
10383
  }
10231
- gridviewRef.current = gridview;
10384
+ gridviewRef.current = api;
10232
10385
  return () => {
10233
- gridview.dispose();
10386
+ api.dispose();
10234
10387
  };
10235
10388
  }, []);
10236
10389
  React.useEffect(() => {
@@ -10289,8 +10442,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10289
10442
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10290
10443
  addPortal,
10291
10444
  });
10292
- const paneview = new PaneviewComponent({
10293
- parentElement: domRef.current,
10445
+ const api = createPaneview(domRef.current, {
10294
10446
  disableAutoResizing: props.disableAutoResizing,
10295
10447
  frameworkComponents: props.components,
10296
10448
  components: {},
@@ -10307,15 +10459,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10307
10459
  },
10308
10460
  showDndOverlay: props.showDndOverlay,
10309
10461
  });
10310
- const api = new PaneviewApi(paneview);
10311
10462
  const { clientWidth, clientHeight } = domRef.current;
10312
- paneview.layout(clientWidth, clientHeight);
10463
+ api.layout(clientWidth, clientHeight);
10313
10464
  if (props.onReady) {
10314
10465
  props.onReady({ api });
10315
10466
  }
10316
- paneviewRef.current = paneview;
10467
+ paneviewRef.current = api;
10317
10468
  return () => {
10318
- paneview.dispose();
10469
+ api.dispose();
10319
10470
  };
10320
10471
  }, []);
10321
10472
  React.useEffect(() => {
@@ -10340,10 +10491,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10340
10491
  //
10341
10492
  };
10342
10493
  }
10343
- const paneview = paneviewRef.current;
10344
- const disposable = paneview.onDidDrop((event) => {
10494
+ const api = paneviewRef.current;
10495
+ const disposable = api.onDidDrop((event) => {
10345
10496
  if (props.onDidDrop) {
10346
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10497
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10347
10498
  }
10348
10499
  });
10349
10500
  return () => {
@@ -10405,6 +10556,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10405
10556
  exports.Tab = Tab;
10406
10557
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10407
10558
  exports.createComponent = createComponent;
10559
+ exports.createDockview = createDockview;
10560
+ exports.createGridview = createGridview;
10561
+ exports.createPaneview = createPaneview;
10562
+ exports.createSplitview = createSplitview;
10408
10563
  exports.directionToPosition = directionToPosition;
10409
10564
  exports.getDirectionOrientation = getDirectionOrientation;
10410
10565
  exports.getGridLocation = getGridLocation;