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
  */
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
34
34
  }
35
35
  }
36
36
 
37
- 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}";
37
+ 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}";
38
38
  styleInject(css_248z);
39
39
 
40
40
  class TransferObject {
@@ -562,6 +562,26 @@ function isInDocument(element) {
562
562
  function addTestId(element, id) {
563
563
  element.setAttribute('data-testid', id);
564
564
  }
565
+ function disableIframePointEvents() {
566
+ const iframes = [
567
+ ...getElementsByTagName('iframe'),
568
+ ...getElementsByTagName('webview'),
569
+ ];
570
+ const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
571
+ for (const iframe of iframes) {
572
+ original.set(iframe, iframe.style.pointerEvents);
573
+ iframe.style.pointerEvents = 'none';
574
+ }
575
+ return {
576
+ release: () => {
577
+ var _a;
578
+ for (const iframe of iframes) {
579
+ iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
580
+ }
581
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
582
+ },
583
+ };
584
+ }
565
585
 
566
586
  function tail(arr) {
567
587
  if (arr.length === 0) {
@@ -1084,13 +1104,7 @@ class Splitview {
1084
1104
  for (const item of this.viewItems) {
1085
1105
  item.enabled = false;
1086
1106
  }
1087
- const iframes = [
1088
- ...getElementsByTagName('iframe'),
1089
- ...getElementsByTagName('webview'),
1090
- ];
1091
- for (const iframe of iframes) {
1092
- iframe.style.pointerEvents = 'none';
1093
- }
1107
+ const iframes = disableIframePointEvents();
1094
1108
  const start = this._orientation === Orientation.HORIZONTAL
1095
1109
  ? event.clientX
1096
1110
  : event.clientY;
@@ -1152,9 +1166,7 @@ class Splitview {
1152
1166
  for (const item of this.viewItems) {
1153
1167
  item.enabled = true;
1154
1168
  }
1155
- for (const iframe of iframes) {
1156
- iframe.style.pointerEvents = 'auto';
1157
- }
1169
+ iframes.release();
1158
1170
  this.saveProportions();
1159
1171
  document.removeEventListener('pointermove', onPointerMove);
1160
1172
  document.removeEventListener('pointerup', end);
@@ -1321,29 +1333,47 @@ class Splitview {
1321
1333
  if (this.viewItems.length === 0) {
1322
1334
  return;
1323
1335
  }
1324
- const sashCount = this.viewItems.length - 1;
1325
- const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
1336
+ const visibleViewItems = this.viewItems.filter((i) => i.visible);
1337
+ const sashCount = Math.max(0, visibleViewItems.length - 1);
1338
+ const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
1326
1339
  let totalLeftOffset = 0;
1327
1340
  const viewLeftOffsets = [];
1328
- for (let i = 0; i < this.viewItems.length - 1; i++) {
1329
- totalLeftOffset += this.viewItems[i].size;
1330
- viewLeftOffsets.push(totalLeftOffset);
1331
- const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
1332
- if (this._orientation === Orientation.HORIZONTAL) {
1333
- this.sashes[i].container.style.left = `${offset}px`;
1334
- this.sashes[i].container.style.top = `0px`;
1341
+ const sashWidth = 4; // hardcoded in css
1342
+ const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
1343
+ const flag = viewItem.visible ? 1 : 0;
1344
+ if (i === 0) {
1345
+ arr.push(flag);
1335
1346
  }
1336
- if (this._orientation === Orientation.VERTICAL) {
1337
- this.sashes[i].container.style.left = `0px`;
1338
- this.sashes[i].container.style.top = `${offset}px`;
1347
+ else {
1348
+ arr.push(arr[i - 1] + flag);
1339
1349
  }
1340
- }
1350
+ return arr;
1351
+ }, []);
1352
+ // calculate both view and cash positions
1341
1353
  this.viewItems.forEach((view, i) => {
1342
- const size = view.size - marginReducedSize;
1343
- const offset = i === 0
1354
+ totalLeftOffset += this.viewItems[i].size;
1355
+ viewLeftOffsets.push(totalLeftOffset);
1356
+ const size = view.visible ? view.size - marginReducedSize : 0;
1357
+ const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
1358
+ const offset = i === 0 || visiblePanelsBeforeThisView === 0
1344
1359
  ? 0
1345
1360
  : viewLeftOffsets[i - 1] +
1346
- (i / sashCount) * marginReducedSize;
1361
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1362
+ if (i < this.viewItems.length - 1) {
1363
+ // calculate sash position
1364
+ const newSize = view.visible
1365
+ ? offset + size - sashWidth / 2 + this.margin / 2
1366
+ : offset;
1367
+ if (this._orientation === Orientation.HORIZONTAL) {
1368
+ this.sashes[i].container.style.left = `${newSize}px`;
1369
+ this.sashes[i].container.style.top = `0px`;
1370
+ }
1371
+ if (this._orientation === Orientation.VERTICAL) {
1372
+ this.sashes[i].container.style.left = `0px`;
1373
+ this.sashes[i].container.style.top = `${newSize}px`;
1374
+ }
1375
+ }
1376
+ // calculate view position
1347
1377
  if (this._orientation === Orientation.HORIZONTAL) {
1348
1378
  view.container.style.width = `${size}px`;
1349
1379
  view.container.style.left = `${offset}px`;
@@ -2672,6 +2702,7 @@ class BaseGrid extends Resizable {
2672
2702
  this.gridview.locked = value;
2673
2703
  }
2674
2704
  constructor(options) {
2705
+ var _a, _b;
2675
2706
  super(document.createElement('div'), options.disableAutoResizing);
2676
2707
  this._id = nextLayoutId$1.next();
2677
2708
  this._groups = new Map();
@@ -2685,8 +2716,13 @@ class BaseGrid extends Resizable {
2685
2716
  this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
2686
2717
  this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
2687
2718
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2719
+ this.classNames = [];
2688
2720
  this.element.style.height = '100%';
2689
2721
  this.element.style.width = '100%';
2722
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2723
+ for (const className of this.classNames) {
2724
+ toggleClass(this.element, className, true);
2725
+ }
2690
2726
  options.parentElement.appendChild(this.element);
2691
2727
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2692
2728
  this.gridview.locked = !!options.locked;
@@ -2710,6 +2746,18 @@ class BaseGrid extends Resizable {
2710
2746
  isVisible(panel) {
2711
2747
  return this.gridview.isViewVisible(getGridLocation(panel.element));
2712
2748
  }
2749
+ updateOptions(options) {
2750
+ var _a, _b;
2751
+ if ('className' in options) {
2752
+ for (const className of this.classNames) {
2753
+ toggleClass(this.element, className, false);
2754
+ }
2755
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2756
+ for (const className of this.classNames) {
2757
+ toggleClass(this.element, className, true);
2758
+ }
2759
+ }
2760
+ }
2713
2761
  maximizeGroup(panel) {
2714
2762
  this.gridview.maximizeView(panel);
2715
2763
  this.doSetGroupActive(panel);
@@ -2890,12 +2938,6 @@ class SplitviewApi {
2890
2938
  constructor(component) {
2891
2939
  this.component = component;
2892
2940
  }
2893
- /**
2894
- * Update configuratable options.
2895
- */
2896
- updateOptions(options) {
2897
- this.component.updateOptions(options);
2898
- }
2899
2941
  /**
2900
2942
  * Removes an existing panel and optionally provide a `Sizing` method
2901
2943
  * for the subsequent resize.
@@ -2949,6 +2991,18 @@ class SplitviewApi {
2949
2991
  clear() {
2950
2992
  this.component.clear();
2951
2993
  }
2994
+ /**
2995
+ * Update configuratable options.
2996
+ */
2997
+ updateOptions(options) {
2998
+ this.component.updateOptions(options);
2999
+ }
3000
+ /**
3001
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3002
+ */
3003
+ dispose() {
3004
+ this.component.dispose();
3005
+ }
2952
3006
  }
2953
3007
  class PaneviewApi {
2954
3008
  /**
@@ -3076,6 +3130,18 @@ class PaneviewApi {
3076
3130
  clear() {
3077
3131
  this.component.clear();
3078
3132
  }
3133
+ /**
3134
+ * Update configuratable options.
3135
+ */
3136
+ updateOptions(options) {
3137
+ this.component.updateOptions(options);
3138
+ }
3139
+ /**
3140
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3141
+ */
3142
+ dispose() {
3143
+ this.component.dispose();
3144
+ }
3079
3145
  }
3080
3146
  class GridviewApi {
3081
3147
  /**
@@ -3216,6 +3282,15 @@ class GridviewApi {
3216
3282
  clear() {
3217
3283
  this.component.clear();
3218
3284
  }
3285
+ updateOptions(options) {
3286
+ this.component.updateOptions(options);
3287
+ }
3288
+ /**
3289
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3290
+ */
3291
+ dispose() {
3292
+ this.component.dispose();
3293
+ }
3219
3294
  }
3220
3295
  class DockviewApi {
3221
3296
  /**
@@ -3508,6 +3583,15 @@ class DockviewApi {
3508
3583
  setGap(gap) {
3509
3584
  this.component.updateOptions({ gap });
3510
3585
  }
3586
+ updateOptions(options) {
3587
+ this.component.updateOptions(options);
3588
+ }
3589
+ /**
3590
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3591
+ */
3592
+ dispose() {
3593
+ this.component.dispose();
3594
+ }
3511
3595
  }
3512
3596
 
3513
3597
  class DragHandler extends CompositeDisposable {
@@ -3530,20 +3614,12 @@ class DragHandler extends CompositeDisposable {
3530
3614
  event.preventDefault();
3531
3615
  return;
3532
3616
  }
3533
- const iframes = [
3534
- ...getElementsByTagName('iframe'),
3535
- ...getElementsByTagName('webview'),
3536
- ];
3617
+ const iframes = disableIframePointEvents();
3537
3618
  this.pointerEventsDisposable.value = {
3538
3619
  dispose: () => {
3539
- for (const iframe of iframes) {
3540
- iframe.style.pointerEvents = 'auto';
3541
- }
3620
+ iframes.release();
3542
3621
  },
3543
3622
  };
3544
- for (const iframe of iframes) {
3545
- iframe.style.pointerEvents = 'none';
3546
- }
3547
3623
  this.el.classList.add('dv-dragged');
3548
3624
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3549
3625
  this.dataDisposable.value = this.getData(event);
@@ -4707,7 +4783,7 @@ class VoidContainer extends CompositeDisposable {
4707
4783
  this._element.className = 'void-container';
4708
4784
  this._element.tabIndex = 0;
4709
4785
  this._element.draggable = true;
4710
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4786
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4711
4787
  this.accessor.doSetGroupActive(this.group);
4712
4788
  }));
4713
4789
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5022,6 +5098,7 @@ const PROPERTY_KEYS = (() => {
5022
5098
  locked: undefined,
5023
5099
  disableDnd: undefined,
5024
5100
  gap: undefined,
5101
+ className: undefined,
5025
5102
  };
5026
5103
  return Object.keys(properties);
5027
5104
  })();
@@ -5577,7 +5654,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5577
5654
  group: this.groupPanel,
5578
5655
  });
5579
5656
  this.watermark = watermark;
5580
- addDisposableListener(this.watermark.element, 'click', () => {
5657
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5581
5658
  if (!this.isActive) {
5582
5659
  this.accessor.doSetGroupActive(this.groupPanel);
5583
5660
  }
@@ -6142,7 +6219,7 @@ class DockviewPanel extends CompositeDisposable {
6142
6219
  // forward the resize event to the group since if you want to resize a panel
6143
6220
  // you are actually just resizing the panels parent which is the group
6144
6221
  this.group.api.setSize(event);
6145
- }), this.api.onDidRendererChange((event) => {
6222
+ }), this.api.onDidRendererChange(() => {
6146
6223
  this.group.model.rerender(this);
6147
6224
  }));
6148
6225
  }
@@ -6478,17 +6555,30 @@ class Watermark extends CompositeDisposable {
6478
6555
  }
6479
6556
  }
6480
6557
 
6481
- const bringElementToFront = (() => {
6482
- let previous = null;
6483
- function pushToTop(element) {
6484
- if (previous !== element && previous !== null) {
6485
- toggleClass(previous, 'dv-bring-to-front', false);
6558
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6559
+ class AriaLevelTracker {
6560
+ constructor() {
6561
+ this._orderedList = [];
6562
+ }
6563
+ push(element) {
6564
+ this._orderedList = [
6565
+ ...this._orderedList.filter((item) => item !== element),
6566
+ element,
6567
+ ];
6568
+ this.update();
6569
+ }
6570
+ destroy(element) {
6571
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6572
+ this.update();
6573
+ }
6574
+ update() {
6575
+ for (let i = 0; i < this._orderedList.length; i++) {
6576
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6577
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6486
6578
  }
6487
- toggleClass(element, 'dv-bring-to-front', true);
6488
- previous = element;
6489
6579
  }
6490
- return pushToTop;
6491
- })();
6580
+ }
6581
+ const arialLevelTracker = new AriaLevelTracker();
6492
6582
  class Overlay extends CompositeDisposable {
6493
6583
  set minimumInViewportWidth(value) {
6494
6584
  this.options.minimumInViewportWidth = value;
@@ -6496,6 +6586,9 @@ class Overlay extends CompositeDisposable {
6496
6586
  set minimumInViewportHeight(value) {
6497
6587
  this.options.minimumInViewportHeight = value;
6498
6588
  }
6589
+ get element() {
6590
+ return this._element;
6591
+ }
6499
6592
  constructor(options) {
6500
6593
  super();
6501
6594
  this.options = options;
@@ -6518,6 +6611,10 @@ class Overlay extends CompositeDisposable {
6518
6611
  this.options.container.appendChild(this._element);
6519
6612
  // if input bad resize within acceptable boundaries
6520
6613
  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 })));
6614
+ arialLevelTracker.push(this._element);
6615
+ }
6616
+ bringToFront() {
6617
+ arialLevelTracker.push(this._element);
6521
6618
  }
6522
6619
  setBounds(bounds = {}) {
6523
6620
  if (typeof bounds.height === 'number') {
@@ -6605,18 +6702,10 @@ class Overlay extends CompositeDisposable {
6605
6702
  const move = new MutableDisposable();
6606
6703
  const track = () => {
6607
6704
  let offset = null;
6608
- const iframes = [
6609
- ...getElementsByTagName('iframe'),
6610
- ...getElementsByTagName('webview'),
6611
- ];
6612
- for (const iframe of iframes) {
6613
- iframe.style.pointerEvents = 'none';
6614
- }
6705
+ const iframes = disableIframePointEvents();
6615
6706
  move.value = new CompositeDisposable({
6616
6707
  dispose: () => {
6617
- for (const iframe of iframes) {
6618
- iframe.style.pointerEvents = 'auto';
6619
- }
6708
+ iframes.release();
6620
6709
  },
6621
6710
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6622
6711
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6685,9 +6774,8 @@ class Overlay extends CompositeDisposable {
6685
6774
  track();
6686
6775
  }
6687
6776
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6688
- bringElementToFront(this._element);
6777
+ arialLevelTracker.push(this._element);
6689
6778
  }, true));
6690
- bringElementToFront(this._element);
6691
6779
  if (options.inDragMode) {
6692
6780
  track();
6693
6781
  }
@@ -6700,13 +6788,7 @@ class Overlay extends CompositeDisposable {
6700
6788
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6701
6789
  e.preventDefault();
6702
6790
  let startPosition = null;
6703
- const iframes = [
6704
- ...getElementsByTagName('iframe'),
6705
- ...getElementsByTagName('webview'),
6706
- ];
6707
- for (const iframe of iframes) {
6708
- iframe.style.pointerEvents = 'none';
6709
- }
6791
+ const iframes = disableIframePointEvents();
6710
6792
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6711
6793
  const containerRect = this.options.container.getBoundingClientRect();
6712
6794
  const overlayRect = this._element.getBoundingClientRect();
@@ -6829,9 +6911,7 @@ class Overlay extends CompositeDisposable {
6829
6911
  this.setBounds(bounds);
6830
6912
  }), {
6831
6913
  dispose: () => {
6832
- for (const iframe of iframes) {
6833
- iframe.style.pointerEvents = 'auto';
6834
- }
6914
+ iframes.release();
6835
6915
  },
6836
6916
  }, addDisposableWindowListener(window, 'mouseup', () => {
6837
6917
  move.dispose();
@@ -6852,6 +6932,7 @@ class Overlay extends CompositeDisposable {
6852
6932
  return 0;
6853
6933
  }
6854
6934
  dispose() {
6935
+ arialLevelTracker.destroy(this._element);
6855
6936
  this._element.remove();
6856
6937
  super.dispose();
6857
6938
  }
@@ -6880,9 +6961,10 @@ function createFocusableElement() {
6880
6961
  return element;
6881
6962
  }
6882
6963
  class OverlayRenderContainer extends CompositeDisposable {
6883
- constructor(element) {
6964
+ constructor(element, accessor) {
6884
6965
  super();
6885
6966
  this.element = element;
6967
+ this.accessor = accessor;
6886
6968
  this.map = {};
6887
6969
  this._disposed = false;
6888
6970
  this.addDisposables(Disposable.from(() => {
@@ -6938,7 +7020,35 @@ class OverlayRenderContainer extends CompositeDisposable {
6938
7020
  }
6939
7021
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6940
7022
  };
6941
- const disposable = new CompositeDisposable(
7023
+ const observerDisposable = new MutableDisposable();
7024
+ const correctLayerPosition = () => {
7025
+ if (panel.api.location.type === 'floating') {
7026
+ queueMicrotask(() => {
7027
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7028
+ if (!floatingGroup) {
7029
+ return;
7030
+ }
7031
+ const element = floatingGroup.overlay.element;
7032
+ const update = () => {
7033
+ const level = Number(element.getAttribute('aria-level'));
7034
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7035
+ };
7036
+ const observer = new MutationObserver(() => {
7037
+ update();
7038
+ });
7039
+ observerDisposable.value = Disposable.from(() => observer.disconnect());
7040
+ observer.observe(element, {
7041
+ attributeFilter: ['aria-level'],
7042
+ attributes: true,
7043
+ });
7044
+ update();
7045
+ });
7046
+ }
7047
+ else {
7048
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7049
+ }
7050
+ };
7051
+ const disposable = new CompositeDisposable(observerDisposable,
6942
7052
  /**
6943
7053
  * since container is positioned absoutely we must explicitly forward
6944
7054
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6962,7 +7072,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6962
7072
  onDragOver: (e) => {
6963
7073
  referenceContainer.dropTarget.dnd.onDragOver(e);
6964
7074
  },
6965
- }), panel.api.onDidVisibilityChange((event) => {
7075
+ }), panel.api.onDidVisibilityChange(() => {
6966
7076
  /**
6967
7077
  * Control the visibility of the content, however even when not visible (display: none)
6968
7078
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6974,6 +7084,8 @@ class OverlayRenderContainer extends CompositeDisposable {
6974
7084
  return;
6975
7085
  }
6976
7086
  resize();
7087
+ }), panel.api.onDidLocationChange(() => {
7088
+ correctLayerPosition();
6977
7089
  }));
6978
7090
  this.map[panel.api.id].destroy = Disposable.from(() => {
6979
7091
  var _a;
@@ -6982,6 +7094,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6982
7094
  }
6983
7095
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6984
7096
  });
7097
+ correctLayerPosition();
6985
7098
  queueMicrotask(() => {
6986
7099
  if (this.isDisposed) {
6987
7100
  return;
@@ -7207,7 +7320,10 @@ class DockviewComponent extends BaseGrid {
7207
7320
  get gap() {
7208
7321
  return this.gridview.margin;
7209
7322
  }
7210
- constructor(options) {
7323
+ get floatingGroups() {
7324
+ return this._floatingGroups;
7325
+ }
7326
+ constructor(parentElement, options) {
7211
7327
  var _a;
7212
7328
  super({
7213
7329
  proportionalLayout: true,
@@ -7215,10 +7331,11 @@ class DockviewComponent extends BaseGrid {
7215
7331
  styles: options.hideBorders
7216
7332
  ? { separatorBorder: 'transparent' }
7217
7333
  : undefined,
7218
- parentElement: options.parentElement,
7334
+ parentElement: parentElement,
7219
7335
  disableAutoResizing: options.disableAutoResizing,
7220
7336
  locked: options.locked,
7221
7337
  margin: options.gap,
7338
+ className: options.className,
7222
7339
  });
7223
7340
  this.nextGroupId = sequentialNumberGenerator();
7224
7341
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7254,10 +7371,10 @@ class DockviewComponent extends BaseGrid {
7254
7371
  this._onDidActiveGroupChange = new Emitter();
7255
7372
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7256
7373
  this._moving = false;
7257
- const gready = document.createElement('div');
7258
- gready.className = 'dv-overlay-render-container';
7259
- this.gridview.element.appendChild(gready);
7260
- this.overlayRenderContainer = new OverlayRenderContainer(gready);
7374
+ // const gready = document.createElement('div');
7375
+ // gready.className = 'dv-overlay-render-container';
7376
+ // this.gridview.element.appendChild(gready);
7377
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7261
7378
  toggleClass(this.gridview.element, 'dv-dockview', true);
7262
7379
  toggleClass(this.element, 'dv-debug', !!options.debug);
7263
7380
  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(() => {
@@ -7423,7 +7540,7 @@ class DockviewComponent extends BaseGrid {
7423
7540
  }
7424
7541
  const gready = document.createElement('div');
7425
7542
  gready.className = 'dv-overlay-render-container';
7426
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7543
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7427
7544
  const referenceGroup = itemToPopout instanceof DockviewPanel
7428
7545
  ? itemToPopout.group
7429
7546
  : itemToPopout;
@@ -7572,7 +7689,6 @@ class DockviewComponent extends BaseGrid {
7572
7689
  }
7573
7690
  }
7574
7691
  }
7575
- group.model.location = { type: 'floating' };
7576
7692
  function getAnchoredBox() {
7577
7693
  if (options === null || options === void 0 ? void 0 : options.position) {
7578
7694
  const result = {};
@@ -7639,10 +7755,14 @@ class DockviewComponent extends BaseGrid {
7639
7755
  : false,
7640
7756
  });
7641
7757
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7642
- const disposable = watchElementResize(group.element, (entry) => {
7758
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7759
+ if (event.isActive) {
7760
+ overlay.bringToFront();
7761
+ }
7762
+ }), watchElementResize(group.element, (entry) => {
7643
7763
  const { width, height } = entry.contentRect;
7644
7764
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7645
- });
7765
+ }));
7646
7766
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7647
7767
  // this is either a resize or a move
7648
7768
  // to inform the panels .layout(...) the group with it's current size
@@ -7658,12 +7778,13 @@ class DockviewComponent extends BaseGrid {
7658
7778
  }), {
7659
7779
  dispose: () => {
7660
7780
  disposable.dispose();
7661
- group.model.location = { type: 'grid' };
7662
7781
  remove(this._floatingGroups, floatingGroupPanel);
7782
+ group.model.location = { type: 'grid' };
7663
7783
  this.updateWatermark();
7664
7784
  },
7665
7785
  });
7666
7786
  this._floatingGroups.push(floatingGroupPanel);
7787
+ group.model.location = { type: 'floating' };
7667
7788
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7668
7789
  this.doSetGroupAndPanelActive(group);
7669
7790
  }
@@ -7702,6 +7823,7 @@ class DockviewComponent extends BaseGrid {
7702
7823
  }
7703
7824
  updateOptions(options) {
7704
7825
  var _a, _b;
7826
+ super.updateOptions(options);
7705
7827
  const changed_floatingGroupBounds = 'floatingGroupBounds' in options &&
7706
7828
  options.floatingGroupBounds !== this.options.floatingGroupBounds;
7707
7829
  const changed_rootOverlayOptions = 'rootOverlayModel' in options &&
@@ -8245,6 +8367,7 @@ class DockviewComponent extends BaseGrid {
8245
8367
  this._groups.delete(group.id);
8246
8368
  this._onDidRemoveGroup.fire(group);
8247
8369
  }
8370
+ remove(this._popoutGroups, selectedGroup);
8248
8371
  const removedGroup = selectedGroup.disposable.dispose();
8249
8372
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8250
8373
  this.doAddGroup(removedGroup, [0]);
@@ -8356,6 +8479,31 @@ class DockviewComponent extends BaseGrid {
8356
8479
  return;
8357
8480
  }
8358
8481
  }
8482
+ if (sourceGroup.api.location.type === 'popout') {
8483
+ /**
8484
+ * the source group is a popout group with a single panel
8485
+ *
8486
+ * 1. remove the panel from the group without triggering any events
8487
+ * 2. remove the popout group
8488
+ * 3. create a new group at the requested location and add that panel
8489
+ */
8490
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8491
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8492
+ skipSetActive: true,
8493
+ skipSetActiveGroup: true,
8494
+ }));
8495
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8496
+ const newGroup = this.createGroupAtLocation(targetLocation);
8497
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8498
+ skipSetActive: true,
8499
+ }));
8500
+ this.doSetGroupAndPanelActive(newGroup);
8501
+ this._onDidMovePanel.fire({
8502
+ panel: this.getGroupPanel(sourceItemId),
8503
+ from: sourceGroup,
8504
+ });
8505
+ return;
8506
+ }
8359
8507
  // source group will become empty so delete the group
8360
8508
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8361
8509
  skipActive: true,
@@ -8587,13 +8735,14 @@ class GridviewComponent extends BaseGrid {
8587
8735
  set deserializer(value) {
8588
8736
  this._deserializer = value;
8589
8737
  }
8590
- constructor(options) {
8738
+ constructor(parentElement, options) {
8591
8739
  super({
8592
- parentElement: options.parentElement,
8740
+ parentElement: parentElement,
8593
8741
  proportionalLayout: options.proportionalLayout,
8594
8742
  orientation: options.orientation,
8595
8743
  styles: options.styles,
8596
8744
  disableAutoResizing: options.disableAutoResizing,
8745
+ className: options.className,
8597
8746
  });
8598
8747
  this._onDidLayoutfromJSON = new Emitter();
8599
8748
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8619,6 +8768,7 @@ class GridviewComponent extends BaseGrid {
8619
8768
  }
8620
8769
  }
8621
8770
  updateOptions(options) {
8771
+ super.updateOptions(options);
8622
8772
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8623
8773
  this.gridview.orientation !== options.orientation;
8624
8774
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -8885,8 +9035,9 @@ class SplitviewComponent extends Resizable {
8885
9035
  ? this.splitview.size
8886
9036
  : this.splitview.orthogonalSize;
8887
9037
  }
8888
- constructor(options) {
8889
- super(options.parentElement, options.disableAutoResizing);
9038
+ constructor(parentElement, options) {
9039
+ var _a, _b;
9040
+ super(parentElement, options.disableAutoResizing);
8890
9041
  this._splitviewChangeDisposable = new MutableDisposable();
8891
9042
  this._panels = new Map();
8892
9043
  this._onDidLayoutfromJSON = new Emitter();
@@ -8897,6 +9048,11 @@ class SplitviewComponent extends Resizable {
8897
9048
  this.onDidRemoveView = this._onDidRemoveView.event;
8898
9049
  this._onDidLayoutChange = new Emitter();
8899
9050
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9051
+ this.classNames = [];
9052
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9053
+ for (const className of this.classNames) {
9054
+ toggleClass(this.element, className, true);
9055
+ }
8900
9056
  this._options = options;
8901
9057
  if (!options.components) {
8902
9058
  options.components = {};
@@ -8908,6 +9064,16 @@ class SplitviewComponent extends Resizable {
8908
9064
  this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
8909
9065
  }
8910
9066
  updateOptions(options) {
9067
+ var _a, _b;
9068
+ if ('className' in options) {
9069
+ for (const className of this.classNames) {
9070
+ toggleClass(this.element, className, false);
9071
+ }
9072
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9073
+ for (const className of this.classNames) {
9074
+ toggleClass(this.element, className, true);
9075
+ }
9076
+ }
8911
9077
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8912
9078
  this.options.orientation !== options.orientation;
8913
9079
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -9209,8 +9375,9 @@ class PaneviewComponent extends Resizable {
9209
9375
  get options() {
9210
9376
  return this._options;
9211
9377
  }
9212
- constructor(options) {
9213
- super(options.parentElement, options.disableAutoResizing);
9378
+ constructor(parentElement, options) {
9379
+ var _a, _b;
9380
+ super(parentElement, options.disableAutoResizing);
9214
9381
  this._id = nextLayoutId.next();
9215
9382
  this._disposable = new MutableDisposable();
9216
9383
  this._viewDisposables = new Map();
@@ -9224,7 +9391,12 @@ class PaneviewComponent extends Resizable {
9224
9391
  this.onDidAddView = this._onDidAddView.event;
9225
9392
  this._onDidRemoveView = new Emitter();
9226
9393
  this.onDidRemoveView = this._onDidRemoveView.event;
9394
+ this.classNames = [];
9227
9395
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9396
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9397
+ for (const className of this.classNames) {
9398
+ toggleClass(this.element, className, true);
9399
+ }
9228
9400
  this._options = options;
9229
9401
  if (!options.components) {
9230
9402
  options.components = {};
@@ -9246,6 +9418,16 @@ class PaneviewComponent extends Resizable {
9246
9418
  //noop
9247
9419
  }
9248
9420
  updateOptions(options) {
9421
+ var _a, _b;
9422
+ if ('className' in options) {
9423
+ for (const className of this.classNames) {
9424
+ toggleClass(this.element, className, false);
9425
+ }
9426
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9427
+ for (const className of this.classNames) {
9428
+ toggleClass(this.element, className, true);
9429
+ }
9430
+ }
9249
9431
  this._options = Object.assign(Object.assign({}, this.options), options);
9250
9432
  }
9251
9433
  addPanel(options) {
@@ -9539,6 +9721,23 @@ class SplitviewPanel extends BasePanelView {
9539
9721
  }
9540
9722
  }
9541
9723
 
9724
+ function createDockview(element, options) {
9725
+ const component = new DockviewComponent(element, options);
9726
+ return component.api;
9727
+ }
9728
+ function createSplitview(element, options) {
9729
+ const component = new SplitviewComponent(element, options);
9730
+ return new SplitviewApi(component);
9731
+ }
9732
+ function createGridview(element, options) {
9733
+ const component = new GridviewComponent(element, options);
9734
+ return new GridviewApi(component);
9735
+ }
9736
+ function createPaneview(element, options) {
9737
+ const component = new PaneviewComponent(element, options);
9738
+ return new PaneviewApi(component);
9739
+ }
9740
+
9542
9741
  /**
9543
9742
  * This component is intended to interface between vanilla-js and React hence we need to be
9544
9743
  * creative in how we update props.
@@ -9918,20 +10117,19 @@ const DockviewReact = React.forwardRef((props, ref) => {
9918
10117
  });
9919
10118
  }
9920
10119
  : undefined,
9921
- parentElement: domRef.current,
9922
10120
  defaultTabComponent: props.defaultTabComponent
9923
10121
  ? DEFAULT_REACT_TAB
9924
10122
  : undefined,
9925
10123
  };
9926
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10124
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9927
10125
  const { clientWidth, clientHeight } = domRef.current;
9928
- dockview.layout(clientWidth, clientHeight);
10126
+ api.layout(clientWidth, clientHeight);
9929
10127
  if (props.onReady) {
9930
- props.onReady({ api: new DockviewApi(dockview) });
10128
+ props.onReady({ api });
9931
10129
  }
9932
- dockviewRef.current = dockview;
10130
+ dockviewRef.current = api;
9933
10131
  return () => {
9934
- dockview.dispose();
10132
+ api.dispose();
9935
10133
  };
9936
10134
  }, []);
9937
10135
  React.useEffect(() => {
@@ -10134,8 +10332,7 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10134
10332
  React.useImperativeHandle(ref, () => domRef.current, []);
10135
10333
  React.useEffect(() => {
10136
10334
  var _a;
10137
- const splitview = new SplitviewComponent({
10138
- parentElement: domRef.current,
10335
+ const api = createSplitview(domRef.current, {
10139
10336
  disableAutoResizing: props.disableAutoResizing,
10140
10337
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : Orientation.HORIZONTAL,
10141
10338
  frameworkComponents: props.components,
@@ -10154,13 +10351,13 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10154
10351
  : undefined,
10155
10352
  });
10156
10353
  const { clientWidth, clientHeight } = domRef.current;
10157
- splitview.layout(clientWidth, clientHeight);
10354
+ api.layout(clientWidth, clientHeight);
10158
10355
  if (props.onReady) {
10159
- props.onReady({ api: new SplitviewApi(splitview) });
10356
+ props.onReady({ api });
10160
10357
  }
10161
- splitviewRef.current = splitview;
10358
+ splitviewRef.current = api;
10162
10359
  return () => {
10163
- splitview.dispose();
10360
+ api.dispose();
10164
10361
  };
10165
10362
  }, []);
10166
10363
  React.useEffect(() => {
@@ -10205,8 +10402,7 @@ const GridviewReact = React.forwardRef((props, ref) => {
10205
10402
  // noop
10206
10403
  };
10207
10404
  }
10208
- const gridview = new GridviewComponent({
10209
- parentElement: domRef.current,
10405
+ const api = createGridview(domRef.current, {
10210
10406
  disableAutoResizing: props.disableAutoResizing,
10211
10407
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10212
10408
  ? props.proportionalLayout
@@ -10225,13 +10421,13 @@ const GridviewReact = React.forwardRef((props, ref) => {
10225
10421
  : undefined,
10226
10422
  });
10227
10423
  const { clientWidth, clientHeight } = domRef.current;
10228
- gridview.layout(clientWidth, clientHeight);
10424
+ api.layout(clientWidth, clientHeight);
10229
10425
  if (props.onReady) {
10230
- props.onReady({ api: new GridviewApi(gridview) });
10426
+ props.onReady({ api });
10231
10427
  }
10232
- gridviewRef.current = gridview;
10428
+ gridviewRef.current = api;
10233
10429
  return () => {
10234
- gridview.dispose();
10430
+ api.dispose();
10235
10431
  };
10236
10432
  }, []);
10237
10433
  React.useEffect(() => {
@@ -10290,8 +10486,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10290
10486
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10291
10487
  addPortal,
10292
10488
  });
10293
- const paneview = new PaneviewComponent({
10294
- parentElement: domRef.current,
10489
+ const api = createPaneview(domRef.current, {
10295
10490
  disableAutoResizing: props.disableAutoResizing,
10296
10491
  frameworkComponents: props.components,
10297
10492
  components: {},
@@ -10308,15 +10503,14 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10308
10503
  },
10309
10504
  showDndOverlay: props.showDndOverlay,
10310
10505
  });
10311
- const api = new PaneviewApi(paneview);
10312
10506
  const { clientWidth, clientHeight } = domRef.current;
10313
- paneview.layout(clientWidth, clientHeight);
10507
+ api.layout(clientWidth, clientHeight);
10314
10508
  if (props.onReady) {
10315
10509
  props.onReady({ api });
10316
10510
  }
10317
- paneviewRef.current = paneview;
10511
+ paneviewRef.current = api;
10318
10512
  return () => {
10319
- paneview.dispose();
10513
+ api.dispose();
10320
10514
  };
10321
10515
  }, []);
10322
10516
  React.useEffect(() => {
@@ -10341,10 +10535,10 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10341
10535
  //
10342
10536
  };
10343
10537
  }
10344
- const paneview = paneviewRef.current;
10345
- const disposable = paneview.onDidDrop((event) => {
10538
+ const api = paneviewRef.current;
10539
+ const disposable = api.onDidDrop((event) => {
10346
10540
  if (props.onDidDrop) {
10347
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10541
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10348
10542
  }
10349
10543
  });
10350
10544
  return () => {
@@ -10363,5 +10557,5 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10363
10557
  });
10364
10558
  PaneviewReact.displayName = 'PaneviewComponent';
10365
10559
 
10366
- export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, LocalSelectionTransfer, Orientation, PROPERTY_KEYS, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, WillShowOverlayLocationEvent, createComponent, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, isReactComponent, orthogonal, positionToDirection, toTarget, usePortalsLifecycle };
10560
+ export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, LocalSelectionTransfer, Orientation, PROPERTY_KEYS, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, WillShowOverlayLocationEvent, createComponent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, isReactComponent, orthogonal, positionToDirection, toTarget, usePortalsLifecycle };
10367
10561
  //# sourceMappingURL=dockview-react.esm.js.map