dockview-react 1.15.3 → 1.16.1

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.1
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`;
@@ -2671,6 +2701,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2671
2701
  this.gridview.locked = value;
2672
2702
  }
2673
2703
  constructor(options) {
2704
+ var _a, _b;
2674
2705
  super(document.createElement('div'), options.disableAutoResizing);
2675
2706
  this._id = nextLayoutId$1.next();
2676
2707
  this._groups = new Map();
@@ -2684,8 +2715,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2684
2715
  this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
2685
2716
  this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
2686
2717
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2718
+ this.classNames = [];
2687
2719
  this.element.style.height = '100%';
2688
2720
  this.element.style.width = '100%';
2721
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2722
+ for (const className of this.classNames) {
2723
+ toggleClass(this.element, className, true);
2724
+ }
2689
2725
  options.parentElement.appendChild(this.element);
2690
2726
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2691
2727
  this.gridview.locked = !!options.locked;
@@ -2709,6 +2745,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2709
2745
  isVisible(panel) {
2710
2746
  return this.gridview.isViewVisible(getGridLocation(panel.element));
2711
2747
  }
2748
+ updateOptions(options) {
2749
+ var _a, _b;
2750
+ if ('className' in options) {
2751
+ for (const className of this.classNames) {
2752
+ toggleClass(this.element, className, false);
2753
+ }
2754
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2755
+ for (const className of this.classNames) {
2756
+ toggleClass(this.element, className, true);
2757
+ }
2758
+ }
2759
+ }
2712
2760
  maximizeGroup(panel) {
2713
2761
  this.gridview.maximizeView(panel);
2714
2762
  this.doSetGroupActive(panel);
@@ -2889,12 +2937,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2889
2937
  constructor(component) {
2890
2938
  this.component = component;
2891
2939
  }
2892
- /**
2893
- * Update configuratable options.
2894
- */
2895
- updateOptions(options) {
2896
- this.component.updateOptions(options);
2897
- }
2898
2940
  /**
2899
2941
  * Removes an existing panel and optionally provide a `Sizing` method
2900
2942
  * for the subsequent resize.
@@ -2948,6 +2990,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2948
2990
  clear() {
2949
2991
  this.component.clear();
2950
2992
  }
2993
+ /**
2994
+ * Update configuratable options.
2995
+ */
2996
+ updateOptions(options) {
2997
+ this.component.updateOptions(options);
2998
+ }
2999
+ /**
3000
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3001
+ */
3002
+ dispose() {
3003
+ this.component.dispose();
3004
+ }
2951
3005
  }
2952
3006
  class PaneviewApi {
2953
3007
  /**
@@ -3075,6 +3129,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3075
3129
  clear() {
3076
3130
  this.component.clear();
3077
3131
  }
3132
+ /**
3133
+ * Update configuratable options.
3134
+ */
3135
+ updateOptions(options) {
3136
+ this.component.updateOptions(options);
3137
+ }
3138
+ /**
3139
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3140
+ */
3141
+ dispose() {
3142
+ this.component.dispose();
3143
+ }
3078
3144
  }
3079
3145
  class GridviewApi {
3080
3146
  /**
@@ -3215,6 +3281,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3215
3281
  clear() {
3216
3282
  this.component.clear();
3217
3283
  }
3284
+ updateOptions(options) {
3285
+ this.component.updateOptions(options);
3286
+ }
3287
+ /**
3288
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3289
+ */
3290
+ dispose() {
3291
+ this.component.dispose();
3292
+ }
3218
3293
  }
3219
3294
  class DockviewApi {
3220
3295
  /**
@@ -3507,6 +3582,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3507
3582
  setGap(gap) {
3508
3583
  this.component.updateOptions({ gap });
3509
3584
  }
3585
+ updateOptions(options) {
3586
+ this.component.updateOptions(options);
3587
+ }
3588
+ /**
3589
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3590
+ */
3591
+ dispose() {
3592
+ this.component.dispose();
3593
+ }
3510
3594
  }
3511
3595
 
3512
3596
  class DragHandler extends CompositeDisposable {
@@ -3529,20 +3613,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3529
3613
  event.preventDefault();
3530
3614
  return;
3531
3615
  }
3532
- const iframes = [
3533
- ...getElementsByTagName('iframe'),
3534
- ...getElementsByTagName('webview'),
3535
- ];
3616
+ const iframes = disableIframePointEvents();
3536
3617
  this.pointerEventsDisposable.value = {
3537
3618
  dispose: () => {
3538
- for (const iframe of iframes) {
3539
- iframe.style.pointerEvents = 'auto';
3540
- }
3619
+ iframes.release();
3541
3620
  },
3542
3621
  };
3543
- for (const iframe of iframes) {
3544
- iframe.style.pointerEvents = 'none';
3545
- }
3546
3622
  this.el.classList.add('dv-dragged');
3547
3623
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3548
3624
  this.dataDisposable.value = this.getData(event);
@@ -4706,7 +4782,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4706
4782
  this._element.className = 'void-container';
4707
4783
  this._element.tabIndex = 0;
4708
4784
  this._element.draggable = true;
4709
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4785
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4710
4786
  this.accessor.doSetGroupActive(this.group);
4711
4787
  }));
4712
4788
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5021,6 +5097,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5021
5097
  locked: undefined,
5022
5098
  disableDnd: undefined,
5023
5099
  gap: undefined,
5100
+ className: undefined,
5024
5101
  };
5025
5102
  return Object.keys(properties);
5026
5103
  })();
@@ -5576,7 +5653,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5576
5653
  group: this.groupPanel,
5577
5654
  });
5578
5655
  this.watermark = watermark;
5579
- addDisposableListener(this.watermark.element, 'click', () => {
5656
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5580
5657
  if (!this.isActive) {
5581
5658
  this.accessor.doSetGroupActive(this.groupPanel);
5582
5659
  }
@@ -6141,7 +6218,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6141
6218
  // forward the resize event to the group since if you want to resize a panel
6142
6219
  // you are actually just resizing the panels parent which is the group
6143
6220
  this.group.api.setSize(event);
6144
- }), this.api.onDidRendererChange((event) => {
6221
+ }), this.api.onDidRendererChange(() => {
6145
6222
  this.group.model.rerender(this);
6146
6223
  }));
6147
6224
  }
@@ -6477,17 +6554,30 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6477
6554
  }
6478
6555
  }
6479
6556
 
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);
6557
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6558
+ class AriaLevelTracker {
6559
+ constructor() {
6560
+ this._orderedList = [];
6561
+ }
6562
+ push(element) {
6563
+ this._orderedList = [
6564
+ ...this._orderedList.filter((item) => item !== element),
6565
+ element,
6566
+ ];
6567
+ this.update();
6568
+ }
6569
+ destroy(element) {
6570
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6571
+ this.update();
6572
+ }
6573
+ update() {
6574
+ for (let i = 0; i < this._orderedList.length; i++) {
6575
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6576
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6485
6577
  }
6486
- toggleClass(element, 'dv-bring-to-front', true);
6487
- previous = element;
6488
6578
  }
6489
- return pushToTop;
6490
- })();
6579
+ }
6580
+ const arialLevelTracker = new AriaLevelTracker();
6491
6581
  class Overlay extends CompositeDisposable {
6492
6582
  set minimumInViewportWidth(value) {
6493
6583
  this.options.minimumInViewportWidth = value;
@@ -6495,6 +6585,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6495
6585
  set minimumInViewportHeight(value) {
6496
6586
  this.options.minimumInViewportHeight = value;
6497
6587
  }
6588
+ get element() {
6589
+ return this._element;
6590
+ }
6498
6591
  constructor(options) {
6499
6592
  super();
6500
6593
  this.options = options;
@@ -6517,6 +6610,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6517
6610
  this.options.container.appendChild(this._element);
6518
6611
  // if input bad resize within acceptable boundaries
6519
6612
  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 })));
6613
+ arialLevelTracker.push(this._element);
6614
+ }
6615
+ bringToFront() {
6616
+ arialLevelTracker.push(this._element);
6520
6617
  }
6521
6618
  setBounds(bounds = {}) {
6522
6619
  if (typeof bounds.height === 'number') {
@@ -6604,18 +6701,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6604
6701
  const move = new MutableDisposable();
6605
6702
  const track = () => {
6606
6703
  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
- }
6704
+ const iframes = disableIframePointEvents();
6614
6705
  move.value = new CompositeDisposable({
6615
6706
  dispose: () => {
6616
- for (const iframe of iframes) {
6617
- iframe.style.pointerEvents = 'auto';
6618
- }
6707
+ iframes.release();
6619
6708
  },
6620
6709
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6621
6710
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6684,9 +6773,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6684
6773
  track();
6685
6774
  }
6686
6775
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6687
- bringElementToFront(this._element);
6776
+ arialLevelTracker.push(this._element);
6688
6777
  }, true));
6689
- bringElementToFront(this._element);
6690
6778
  if (options.inDragMode) {
6691
6779
  track();
6692
6780
  }
@@ -6699,13 +6787,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6699
6787
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6700
6788
  e.preventDefault();
6701
6789
  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
- }
6790
+ const iframes = disableIframePointEvents();
6709
6791
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6710
6792
  const containerRect = this.options.container.getBoundingClientRect();
6711
6793
  const overlayRect = this._element.getBoundingClientRect();
@@ -6828,9 +6910,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6828
6910
  this.setBounds(bounds);
6829
6911
  }), {
6830
6912
  dispose: () => {
6831
- for (const iframe of iframes) {
6832
- iframe.style.pointerEvents = 'auto';
6833
- }
6913
+ iframes.release();
6834
6914
  },
6835
6915
  }, addDisposableWindowListener(window, 'mouseup', () => {
6836
6916
  move.dispose();
@@ -6851,6 +6931,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6851
6931
  return 0;
6852
6932
  }
6853
6933
  dispose() {
6934
+ arialLevelTracker.destroy(this._element);
6854
6935
  this._element.remove();
6855
6936
  super.dispose();
6856
6937
  }
@@ -6879,9 +6960,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6879
6960
  return element;
6880
6961
  }
6881
6962
  class OverlayRenderContainer extends CompositeDisposable {
6882
- constructor(element) {
6963
+ constructor(element, accessor) {
6883
6964
  super();
6884
6965
  this.element = element;
6966
+ this.accessor = accessor;
6885
6967
  this.map = {};
6886
6968
  this._disposed = false;
6887
6969
  this.addDisposables(exports.DockviewDisposable.from(() => {
@@ -6937,7 +7019,35 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6937
7019
  }
6938
7020
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6939
7021
  };
6940
- const disposable = new CompositeDisposable(
7022
+ const observerDisposable = new MutableDisposable();
7023
+ const correctLayerPosition = () => {
7024
+ if (panel.api.location.type === 'floating') {
7025
+ queueMicrotask(() => {
7026
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7027
+ if (!floatingGroup) {
7028
+ return;
7029
+ }
7030
+ const element = floatingGroup.overlay.element;
7031
+ const update = () => {
7032
+ const level = Number(element.getAttribute('aria-level'));
7033
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7034
+ };
7035
+ const observer = new MutationObserver(() => {
7036
+ update();
7037
+ });
7038
+ observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
7039
+ observer.observe(element, {
7040
+ attributeFilter: ['aria-level'],
7041
+ attributes: true,
7042
+ });
7043
+ update();
7044
+ });
7045
+ }
7046
+ else {
7047
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7048
+ }
7049
+ };
7050
+ const disposable = new CompositeDisposable(observerDisposable,
6941
7051
  /**
6942
7052
  * since container is positioned absoutely we must explicitly forward
6943
7053
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6961,7 +7071,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6961
7071
  onDragOver: (e) => {
6962
7072
  referenceContainer.dropTarget.dnd.onDragOver(e);
6963
7073
  },
6964
- }), panel.api.onDidVisibilityChange((event) => {
7074
+ }), panel.api.onDidVisibilityChange(() => {
6965
7075
  /**
6966
7076
  * Control the visibility of the content, however even when not visible (display: none)
6967
7077
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6973,6 +7083,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6973
7083
  return;
6974
7084
  }
6975
7085
  resize();
7086
+ }), panel.api.onDidLocationChange(() => {
7087
+ correctLayerPosition();
6976
7088
  }));
6977
7089
  this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6978
7090
  var _a;
@@ -6981,6 +7093,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6981
7093
  }
6982
7094
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6983
7095
  });
7096
+ correctLayerPosition();
6984
7097
  queueMicrotask(() => {
6985
7098
  if (this.isDisposed) {
6986
7099
  return;
@@ -7206,7 +7319,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7206
7319
  get gap() {
7207
7320
  return this.gridview.margin;
7208
7321
  }
7209
- constructor(options) {
7322
+ get floatingGroups() {
7323
+ return this._floatingGroups;
7324
+ }
7325
+ constructor(parentElement, options) {
7210
7326
  var _a;
7211
7327
  super({
7212
7328
  proportionalLayout: true,
@@ -7214,10 +7330,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7214
7330
  styles: options.hideBorders
7215
7331
  ? { separatorBorder: 'transparent' }
7216
7332
  : undefined,
7217
- parentElement: options.parentElement,
7333
+ parentElement: parentElement,
7218
7334
  disableAutoResizing: options.disableAutoResizing,
7219
7335
  locked: options.locked,
7220
7336
  margin: options.gap,
7337
+ className: options.className,
7221
7338
  });
7222
7339
  this.nextGroupId = sequentialNumberGenerator();
7223
7340
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7253,10 +7370,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7253
7370
  this._onDidActiveGroupChange = new Emitter();
7254
7371
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7255
7372
  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);
7373
+ // const gready = document.createElement('div');
7374
+ // gready.className = 'dv-overlay-render-container';
7375
+ // this.gridview.element.appendChild(gready);
7376
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7260
7377
  toggleClass(this.gridview.element, 'dv-dockview', true);
7261
7378
  toggleClass(this.element, 'dv-debug', !!options.debug);
7262
7379
  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 +7539,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7422
7539
  }
7423
7540
  const gready = document.createElement('div');
7424
7541
  gready.className = 'dv-overlay-render-container';
7425
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7542
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7426
7543
  const referenceGroup = itemToPopout instanceof DockviewPanel
7427
7544
  ? itemToPopout.group
7428
7545
  : itemToPopout;
@@ -7571,7 +7688,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7571
7688
  }
7572
7689
  }
7573
7690
  }
7574
- group.model.location = { type: 'floating' };
7575
7691
  function getAnchoredBox() {
7576
7692
  if (options === null || options === void 0 ? void 0 : options.position) {
7577
7693
  const result = {};
@@ -7638,10 +7754,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7638
7754
  : false,
7639
7755
  });
7640
7756
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7641
- const disposable = watchElementResize(group.element, (entry) => {
7757
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7758
+ if (event.isActive) {
7759
+ overlay.bringToFront();
7760
+ }
7761
+ }), watchElementResize(group.element, (entry) => {
7642
7762
  const { width, height } = entry.contentRect;
7643
7763
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7644
- });
7764
+ }));
7645
7765
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7646
7766
  // this is either a resize or a move
7647
7767
  // to inform the panels .layout(...) the group with it's current size
@@ -7657,12 +7777,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7657
7777
  }), {
7658
7778
  dispose: () => {
7659
7779
  disposable.dispose();
7660
- group.model.location = { type: 'grid' };
7661
7780
  remove(this._floatingGroups, floatingGroupPanel);
7781
+ group.model.location = { type: 'grid' };
7662
7782
  this.updateWatermark();
7663
7783
  },
7664
7784
  });
7665
7785
  this._floatingGroups.push(floatingGroupPanel);
7786
+ group.model.location = { type: 'floating' };
7666
7787
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7667
7788
  this.doSetGroupAndPanelActive(group);
7668
7789
  }
@@ -7701,6 +7822,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7701
7822
  }
7702
7823
  updateOptions(options) {
7703
7824
  var _a, _b;
7825
+ super.updateOptions(options);
7704
7826
  const changed_floatingGroupBounds = 'floatingGroupBounds' in options &&
7705
7827
  options.floatingGroupBounds !== this.options.floatingGroupBounds;
7706
7828
  const changed_rootOverlayOptions = 'rootOverlayModel' in options &&
@@ -8244,6 +8366,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8244
8366
  this._groups.delete(group.id);
8245
8367
  this._onDidRemoveGroup.fire(group);
8246
8368
  }
8369
+ remove(this._popoutGroups, selectedGroup);
8247
8370
  const removedGroup = selectedGroup.disposable.dispose();
8248
8371
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8249
8372
  this.doAddGroup(removedGroup, [0]);
@@ -8355,6 +8478,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8355
8478
  return;
8356
8479
  }
8357
8480
  }
8481
+ if (sourceGroup.api.location.type === 'popout') {
8482
+ /**
8483
+ * the source group is a popout group with a single panel
8484
+ *
8485
+ * 1. remove the panel from the group without triggering any events
8486
+ * 2. remove the popout group
8487
+ * 3. create a new group at the requested location and add that panel
8488
+ */
8489
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8490
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8491
+ skipSetActive: true,
8492
+ skipSetActiveGroup: true,
8493
+ }));
8494
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8495
+ const newGroup = this.createGroupAtLocation(targetLocation);
8496
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8497
+ skipSetActive: true,
8498
+ }));
8499
+ this.doSetGroupAndPanelActive(newGroup);
8500
+ this._onDidMovePanel.fire({
8501
+ panel: this.getGroupPanel(sourceItemId),
8502
+ from: sourceGroup,
8503
+ });
8504
+ return;
8505
+ }
8358
8506
  // source group will become empty so delete the group
8359
8507
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8360
8508
  skipActive: true,
@@ -8586,13 +8734,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8586
8734
  set deserializer(value) {
8587
8735
  this._deserializer = value;
8588
8736
  }
8589
- constructor(options) {
8737
+ constructor(parentElement, options) {
8590
8738
  super({
8591
- parentElement: options.parentElement,
8739
+ parentElement: parentElement,
8592
8740
  proportionalLayout: options.proportionalLayout,
8593
8741
  orientation: options.orientation,
8594
8742
  styles: options.styles,
8595
8743
  disableAutoResizing: options.disableAutoResizing,
8744
+ className: options.className,
8596
8745
  });
8597
8746
  this._onDidLayoutfromJSON = new Emitter();
8598
8747
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8618,6 +8767,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8618
8767
  }
8619
8768
  }
8620
8769
  updateOptions(options) {
8770
+ super.updateOptions(options);
8621
8771
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8622
8772
  this.gridview.orientation !== options.orientation;
8623
8773
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -8884,8 +9034,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8884
9034
  ? this.splitview.size
8885
9035
  : this.splitview.orthogonalSize;
8886
9036
  }
8887
- constructor(options) {
8888
- super(options.parentElement, options.disableAutoResizing);
9037
+ constructor(parentElement, options) {
9038
+ var _a, _b;
9039
+ super(parentElement, options.disableAutoResizing);
8889
9040
  this._splitviewChangeDisposable = new MutableDisposable();
8890
9041
  this._panels = new Map();
8891
9042
  this._onDidLayoutfromJSON = new Emitter();
@@ -8896,6 +9047,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8896
9047
  this.onDidRemoveView = this._onDidRemoveView.event;
8897
9048
  this._onDidLayoutChange = new Emitter();
8898
9049
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9050
+ this.classNames = [];
9051
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9052
+ for (const className of this.classNames) {
9053
+ toggleClass(this.element, className, true);
9054
+ }
8899
9055
  this._options = options;
8900
9056
  if (!options.components) {
8901
9057
  options.components = {};
@@ -8907,6 +9063,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8907
9063
  this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
8908
9064
  }
8909
9065
  updateOptions(options) {
9066
+ var _a, _b;
9067
+ if ('className' in options) {
9068
+ for (const className of this.classNames) {
9069
+ toggleClass(this.element, className, false);
9070
+ }
9071
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9072
+ for (const className of this.classNames) {
9073
+ toggleClass(this.element, className, true);
9074
+ }
9075
+ }
8910
9076
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8911
9077
  this.options.orientation !== options.orientation;
8912
9078
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -9208,8 +9374,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9208
9374
  get options() {
9209
9375
  return this._options;
9210
9376
  }
9211
- constructor(options) {
9212
- super(options.parentElement, options.disableAutoResizing);
9377
+ constructor(parentElement, options) {
9378
+ var _a, _b;
9379
+ super(parentElement, options.disableAutoResizing);
9213
9380
  this._id = nextLayoutId.next();
9214
9381
  this._disposable = new MutableDisposable();
9215
9382
  this._viewDisposables = new Map();
@@ -9223,7 +9390,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9223
9390
  this.onDidAddView = this._onDidAddView.event;
9224
9391
  this._onDidRemoveView = new Emitter();
9225
9392
  this.onDidRemoveView = this._onDidRemoveView.event;
9393
+ this.classNames = [];
9226
9394
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9395
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9396
+ for (const className of this.classNames) {
9397
+ toggleClass(this.element, className, true);
9398
+ }
9227
9399
  this._options = options;
9228
9400
  if (!options.components) {
9229
9401
  options.components = {};
@@ -9245,6 +9417,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9245
9417
  //noop
9246
9418
  }
9247
9419
  updateOptions(options) {
9420
+ var _a, _b;
9421
+ if ('className' in options) {
9422
+ for (const className of this.classNames) {
9423
+ toggleClass(this.element, className, false);
9424
+ }
9425
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9426
+ for (const className of this.classNames) {
9427
+ toggleClass(this.element, className, true);
9428
+ }
9429
+ }
9248
9430
  this._options = Object.assign(Object.assign({}, this.options), options);
9249
9431
  }
9250
9432
  addPanel(options) {
@@ -9538,6 +9720,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9538
9720
  }
9539
9721
  }
9540
9722
 
9723
+ function createDockview(element, options) {
9724
+ const component = new DockviewComponent(element, options);
9725
+ return component.api;
9726
+ }
9727
+ function createSplitview(element, options) {
9728
+ const component = new SplitviewComponent(element, options);
9729
+ return new SplitviewApi(component);
9730
+ }
9731
+ function createGridview(element, options) {
9732
+ const component = new GridviewComponent(element, options);
9733
+ return new GridviewApi(component);
9734
+ }
9735
+ function createPaneview(element, options) {
9736
+ const component = new PaneviewComponent(element, options);
9737
+ return new PaneviewApi(component);
9738
+ }
9739
+
9541
9740
  /**
9542
9741
  * This component is intended to interface between vanilla-js and React hence we need to be
9543
9742
  * creative in how we update props.
@@ -9917,20 +10116,19 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9917
10116
  });
9918
10117
  }
9919
10118
  : undefined,
9920
- parentElement: domRef.current,
9921
10119
  defaultTabComponent: props.defaultTabComponent
9922
10120
  ? DEFAULT_REACT_TAB
9923
10121
  : undefined,
9924
10122
  };
9925
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10123
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9926
10124
  const { clientWidth, clientHeight } = domRef.current;
9927
- dockview.layout(clientWidth, clientHeight);
10125
+ api.layout(clientWidth, clientHeight);
9928
10126
  if (props.onReady) {
9929
- props.onReady({ api: new DockviewApi(dockview) });
10127
+ props.onReady({ api });
9930
10128
  }
9931
- dockviewRef.current = dockview;
10129
+ dockviewRef.current = api;
9932
10130
  return () => {
9933
- dockview.dispose();
10131
+ api.dispose();
9934
10132
  };
9935
10133
  }, []);
9936
10134
  React.useEffect(() => {
@@ -10133,8 +10331,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10133
10331
  React.useImperativeHandle(ref, () => domRef.current, []);
10134
10332
  React.useEffect(() => {
10135
10333
  var _a;
10136
- const splitview = new SplitviewComponent({
10137
- parentElement: domRef.current,
10334
+ const api = createSplitview(domRef.current, {
10138
10335
  disableAutoResizing: props.disableAutoResizing,
10139
10336
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10140
10337
  frameworkComponents: props.components,
@@ -10153,13 +10350,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10153
10350
  : undefined,
10154
10351
  });
10155
10352
  const { clientWidth, clientHeight } = domRef.current;
10156
- splitview.layout(clientWidth, clientHeight);
10353
+ api.layout(clientWidth, clientHeight);
10157
10354
  if (props.onReady) {
10158
- props.onReady({ api: new SplitviewApi(splitview) });
10355
+ props.onReady({ api });
10159
10356
  }
10160
- splitviewRef.current = splitview;
10357
+ splitviewRef.current = api;
10161
10358
  return () => {
10162
- splitview.dispose();
10359
+ api.dispose();
10163
10360
  };
10164
10361
  }, []);
10165
10362
  React.useEffect(() => {
@@ -10204,8 +10401,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10204
10401
  // noop
10205
10402
  };
10206
10403
  }
10207
- const gridview = new GridviewComponent({
10208
- parentElement: domRef.current,
10404
+ const api = createGridview(domRef.current, {
10209
10405
  disableAutoResizing: props.disableAutoResizing,
10210
10406
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10211
10407
  ? props.proportionalLayout
@@ -10224,13 +10420,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10224
10420
  : undefined,
10225
10421
  });
10226
10422
  const { clientWidth, clientHeight } = domRef.current;
10227
- gridview.layout(clientWidth, clientHeight);
10423
+ api.layout(clientWidth, clientHeight);
10228
10424
  if (props.onReady) {
10229
- props.onReady({ api: new GridviewApi(gridview) });
10425
+ props.onReady({ api });
10230
10426
  }
10231
- gridviewRef.current = gridview;
10427
+ gridviewRef.current = api;
10232
10428
  return () => {
10233
- gridview.dispose();
10429
+ api.dispose();
10234
10430
  };
10235
10431
  }, []);
10236
10432
  React.useEffect(() => {
@@ -10289,8 +10485,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10289
10485
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10290
10486
  addPortal,
10291
10487
  });
10292
- const paneview = new PaneviewComponent({
10293
- parentElement: domRef.current,
10488
+ const api = createPaneview(domRef.current, {
10294
10489
  disableAutoResizing: props.disableAutoResizing,
10295
10490
  frameworkComponents: props.components,
10296
10491
  components: {},
@@ -10307,15 +10502,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10307
10502
  },
10308
10503
  showDndOverlay: props.showDndOverlay,
10309
10504
  });
10310
- const api = new PaneviewApi(paneview);
10311
10505
  const { clientWidth, clientHeight } = domRef.current;
10312
- paneview.layout(clientWidth, clientHeight);
10506
+ api.layout(clientWidth, clientHeight);
10313
10507
  if (props.onReady) {
10314
10508
  props.onReady({ api });
10315
10509
  }
10316
- paneviewRef.current = paneview;
10510
+ paneviewRef.current = api;
10317
10511
  return () => {
10318
- paneview.dispose();
10512
+ api.dispose();
10319
10513
  };
10320
10514
  }, []);
10321
10515
  React.useEffect(() => {
@@ -10340,10 +10534,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10340
10534
  //
10341
10535
  };
10342
10536
  }
10343
- const paneview = paneviewRef.current;
10344
- const disposable = paneview.onDidDrop((event) => {
10537
+ const api = paneviewRef.current;
10538
+ const disposable = api.onDidDrop((event) => {
10345
10539
  if (props.onDidDrop) {
10346
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10540
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10347
10541
  }
10348
10542
  });
10349
10543
  return () => {
@@ -10405,6 +10599,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10405
10599
  exports.Tab = Tab;
10406
10600
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10407
10601
  exports.createComponent = createComponent;
10602
+ exports.createDockview = createDockview;
10603
+ exports.createGridview = createGridview;
10604
+ exports.createPaneview = createPaneview;
10605
+ exports.createSplitview = createSplitview;
10408
10606
  exports.directionToPosition = directionToPosition;
10409
10607
  exports.getDirectionOrientation = getDirectionOrientation;
10410
10608
  exports.getGridLocation = getGridLocation;