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
  */
@@ -36,7 +36,7 @@ function styleInject(css, ref) {
36
36
  }
37
37
  }
38
38
 
39
- var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: 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}";
39
+ var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 998;\n}\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
40
40
  styleInject(css_248z);
41
41
 
42
42
  class TransferObject {
@@ -564,6 +564,26 @@ function isInDocument(element) {
564
564
  function addTestId(element, id) {
565
565
  element.setAttribute('data-testid', id);
566
566
  }
567
+ function disableIframePointEvents() {
568
+ const iframes = [
569
+ ...getElementsByTagName('iframe'),
570
+ ...getElementsByTagName('webview'),
571
+ ];
572
+ const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
573
+ for (const iframe of iframes) {
574
+ original.set(iframe, iframe.style.pointerEvents);
575
+ iframe.style.pointerEvents = 'none';
576
+ }
577
+ return {
578
+ release: () => {
579
+ var _a;
580
+ for (const iframe of iframes) {
581
+ iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
582
+ }
583
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
584
+ },
585
+ };
586
+ }
567
587
 
568
588
  function tail(arr) {
569
589
  if (arr.length === 0) {
@@ -1086,13 +1106,7 @@ class Splitview {
1086
1106
  for (const item of this.viewItems) {
1087
1107
  item.enabled = false;
1088
1108
  }
1089
- const iframes = [
1090
- ...getElementsByTagName('iframe'),
1091
- ...getElementsByTagName('webview'),
1092
- ];
1093
- for (const iframe of iframes) {
1094
- iframe.style.pointerEvents = 'none';
1095
- }
1109
+ const iframes = disableIframePointEvents();
1096
1110
  const start = this._orientation === exports.Orientation.HORIZONTAL
1097
1111
  ? event.clientX
1098
1112
  : event.clientY;
@@ -1154,9 +1168,7 @@ class Splitview {
1154
1168
  for (const item of this.viewItems) {
1155
1169
  item.enabled = true;
1156
1170
  }
1157
- for (const iframe of iframes) {
1158
- iframe.style.pointerEvents = 'auto';
1159
- }
1171
+ iframes.release();
1160
1172
  this.saveProportions();
1161
1173
  document.removeEventListener('pointermove', onPointerMove);
1162
1174
  document.removeEventListener('pointerup', end);
@@ -1323,29 +1335,47 @@ class Splitview {
1323
1335
  if (this.viewItems.length === 0) {
1324
1336
  return;
1325
1337
  }
1326
- const sashCount = this.viewItems.length - 1;
1327
- const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
1338
+ const visibleViewItems = this.viewItems.filter((i) => i.visible);
1339
+ const sashCount = Math.max(0, visibleViewItems.length - 1);
1340
+ const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
1328
1341
  let totalLeftOffset = 0;
1329
1342
  const viewLeftOffsets = [];
1330
- for (let i = 0; i < this.viewItems.length - 1; i++) {
1331
- totalLeftOffset += this.viewItems[i].size;
1332
- viewLeftOffsets.push(totalLeftOffset);
1333
- const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
1334
- if (this._orientation === exports.Orientation.HORIZONTAL) {
1335
- this.sashes[i].container.style.left = `${offset}px`;
1336
- this.sashes[i].container.style.top = `0px`;
1343
+ const sashWidth = 4; // hardcoded in css
1344
+ const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
1345
+ const flag = viewItem.visible ? 1 : 0;
1346
+ if (i === 0) {
1347
+ arr.push(flag);
1337
1348
  }
1338
- if (this._orientation === exports.Orientation.VERTICAL) {
1339
- this.sashes[i].container.style.left = `0px`;
1340
- this.sashes[i].container.style.top = `${offset}px`;
1349
+ else {
1350
+ arr.push(arr[i - 1] + flag);
1341
1351
  }
1342
- }
1352
+ return arr;
1353
+ }, []);
1354
+ // calculate both view and cash positions
1343
1355
  this.viewItems.forEach((view, i) => {
1344
- const size = view.size - marginReducedSize;
1345
- const offset = i === 0
1356
+ totalLeftOffset += this.viewItems[i].size;
1357
+ viewLeftOffsets.push(totalLeftOffset);
1358
+ const size = view.visible ? view.size - marginReducedSize : 0;
1359
+ const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
1360
+ const offset = i === 0 || visiblePanelsBeforeThisView === 0
1346
1361
  ? 0
1347
1362
  : viewLeftOffsets[i - 1] +
1348
- (i / sashCount) * marginReducedSize;
1363
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1364
+ if (i < this.viewItems.length - 1) {
1365
+ // calculate sash position
1366
+ const newSize = view.visible
1367
+ ? offset + size - sashWidth / 2 + this.margin / 2
1368
+ : offset;
1369
+ if (this._orientation === exports.Orientation.HORIZONTAL) {
1370
+ this.sashes[i].container.style.left = `${newSize}px`;
1371
+ this.sashes[i].container.style.top = `0px`;
1372
+ }
1373
+ if (this._orientation === exports.Orientation.VERTICAL) {
1374
+ this.sashes[i].container.style.left = `0px`;
1375
+ this.sashes[i].container.style.top = `${newSize}px`;
1376
+ }
1377
+ }
1378
+ // calculate view position
1349
1379
  if (this._orientation === exports.Orientation.HORIZONTAL) {
1350
1380
  view.container.style.width = `${size}px`;
1351
1381
  view.container.style.left = `${offset}px`;
@@ -2674,6 +2704,7 @@ class BaseGrid extends Resizable {
2674
2704
  this.gridview.locked = value;
2675
2705
  }
2676
2706
  constructor(options) {
2707
+ var _a, _b;
2677
2708
  super(document.createElement('div'), options.disableAutoResizing);
2678
2709
  this._id = nextLayoutId$1.next();
2679
2710
  this._groups = new Map();
@@ -2687,8 +2718,13 @@ class BaseGrid extends Resizable {
2687
2718
  this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
2688
2719
  this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
2689
2720
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2721
+ this.classNames = [];
2690
2722
  this.element.style.height = '100%';
2691
2723
  this.element.style.width = '100%';
2724
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2725
+ for (const className of this.classNames) {
2726
+ toggleClass(this.element, className, true);
2727
+ }
2692
2728
  options.parentElement.appendChild(this.element);
2693
2729
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2694
2730
  this.gridview.locked = !!options.locked;
@@ -2712,6 +2748,18 @@ class BaseGrid extends Resizable {
2712
2748
  isVisible(panel) {
2713
2749
  return this.gridview.isViewVisible(getGridLocation(panel.element));
2714
2750
  }
2751
+ updateOptions(options) {
2752
+ var _a, _b;
2753
+ if ('className' in options) {
2754
+ for (const className of this.classNames) {
2755
+ toggleClass(this.element, className, false);
2756
+ }
2757
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2758
+ for (const className of this.classNames) {
2759
+ toggleClass(this.element, className, true);
2760
+ }
2761
+ }
2762
+ }
2715
2763
  maximizeGroup(panel) {
2716
2764
  this.gridview.maximizeView(panel);
2717
2765
  this.doSetGroupActive(panel);
@@ -2892,12 +2940,6 @@ class SplitviewApi {
2892
2940
  constructor(component) {
2893
2941
  this.component = component;
2894
2942
  }
2895
- /**
2896
- * Update configuratable options.
2897
- */
2898
- updateOptions(options) {
2899
- this.component.updateOptions(options);
2900
- }
2901
2943
  /**
2902
2944
  * Removes an existing panel and optionally provide a `Sizing` method
2903
2945
  * for the subsequent resize.
@@ -2951,6 +2993,18 @@ class SplitviewApi {
2951
2993
  clear() {
2952
2994
  this.component.clear();
2953
2995
  }
2996
+ /**
2997
+ * Update configuratable options.
2998
+ */
2999
+ updateOptions(options) {
3000
+ this.component.updateOptions(options);
3001
+ }
3002
+ /**
3003
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3004
+ */
3005
+ dispose() {
3006
+ this.component.dispose();
3007
+ }
2954
3008
  }
2955
3009
  class PaneviewApi {
2956
3010
  /**
@@ -3078,6 +3132,18 @@ class PaneviewApi {
3078
3132
  clear() {
3079
3133
  this.component.clear();
3080
3134
  }
3135
+ /**
3136
+ * Update configuratable options.
3137
+ */
3138
+ updateOptions(options) {
3139
+ this.component.updateOptions(options);
3140
+ }
3141
+ /**
3142
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3143
+ */
3144
+ dispose() {
3145
+ this.component.dispose();
3146
+ }
3081
3147
  }
3082
3148
  class GridviewApi {
3083
3149
  /**
@@ -3218,6 +3284,15 @@ class GridviewApi {
3218
3284
  clear() {
3219
3285
  this.component.clear();
3220
3286
  }
3287
+ updateOptions(options) {
3288
+ this.component.updateOptions(options);
3289
+ }
3290
+ /**
3291
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3292
+ */
3293
+ dispose() {
3294
+ this.component.dispose();
3295
+ }
3221
3296
  }
3222
3297
  class DockviewApi {
3223
3298
  /**
@@ -3510,6 +3585,15 @@ class DockviewApi {
3510
3585
  setGap(gap) {
3511
3586
  this.component.updateOptions({ gap });
3512
3587
  }
3588
+ updateOptions(options) {
3589
+ this.component.updateOptions(options);
3590
+ }
3591
+ /**
3592
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3593
+ */
3594
+ dispose() {
3595
+ this.component.dispose();
3596
+ }
3513
3597
  }
3514
3598
 
3515
3599
  class DragHandler extends CompositeDisposable {
@@ -3532,20 +3616,12 @@ class DragHandler extends CompositeDisposable {
3532
3616
  event.preventDefault();
3533
3617
  return;
3534
3618
  }
3535
- const iframes = [
3536
- ...getElementsByTagName('iframe'),
3537
- ...getElementsByTagName('webview'),
3538
- ];
3619
+ const iframes = disableIframePointEvents();
3539
3620
  this.pointerEventsDisposable.value = {
3540
3621
  dispose: () => {
3541
- for (const iframe of iframes) {
3542
- iframe.style.pointerEvents = 'auto';
3543
- }
3622
+ iframes.release();
3544
3623
  },
3545
3624
  };
3546
- for (const iframe of iframes) {
3547
- iframe.style.pointerEvents = 'none';
3548
- }
3549
3625
  this.el.classList.add('dv-dragged');
3550
3626
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3551
3627
  this.dataDisposable.value = this.getData(event);
@@ -4709,7 +4785,7 @@ class VoidContainer extends CompositeDisposable {
4709
4785
  this._element.className = 'void-container';
4710
4786
  this._element.tabIndex = 0;
4711
4787
  this._element.draggable = true;
4712
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4788
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4713
4789
  this.accessor.doSetGroupActive(this.group);
4714
4790
  }));
4715
4791
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5024,6 +5100,7 @@ const PROPERTY_KEYS = (() => {
5024
5100
  locked: undefined,
5025
5101
  disableDnd: undefined,
5026
5102
  gap: undefined,
5103
+ className: undefined,
5027
5104
  };
5028
5105
  return Object.keys(properties);
5029
5106
  })();
@@ -5579,7 +5656,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5579
5656
  group: this.groupPanel,
5580
5657
  });
5581
5658
  this.watermark = watermark;
5582
- addDisposableListener(this.watermark.element, 'click', () => {
5659
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5583
5660
  if (!this.isActive) {
5584
5661
  this.accessor.doSetGroupActive(this.groupPanel);
5585
5662
  }
@@ -6144,7 +6221,7 @@ class DockviewPanel extends CompositeDisposable {
6144
6221
  // forward the resize event to the group since if you want to resize a panel
6145
6222
  // you are actually just resizing the panels parent which is the group
6146
6223
  this.group.api.setSize(event);
6147
- }), this.api.onDidRendererChange((event) => {
6224
+ }), this.api.onDidRendererChange(() => {
6148
6225
  this.group.model.rerender(this);
6149
6226
  }));
6150
6227
  }
@@ -6480,17 +6557,30 @@ class Watermark extends CompositeDisposable {
6480
6557
  }
6481
6558
  }
6482
6559
 
6483
- const bringElementToFront = (() => {
6484
- let previous = null;
6485
- function pushToTop(element) {
6486
- if (previous !== element && previous !== null) {
6487
- toggleClass(previous, 'dv-bring-to-front', false);
6560
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6561
+ class AriaLevelTracker {
6562
+ constructor() {
6563
+ this._orderedList = [];
6564
+ }
6565
+ push(element) {
6566
+ this._orderedList = [
6567
+ ...this._orderedList.filter((item) => item !== element),
6568
+ element,
6569
+ ];
6570
+ this.update();
6571
+ }
6572
+ destroy(element) {
6573
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6574
+ this.update();
6575
+ }
6576
+ update() {
6577
+ for (let i = 0; i < this._orderedList.length; i++) {
6578
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6579
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6488
6580
  }
6489
- toggleClass(element, 'dv-bring-to-front', true);
6490
- previous = element;
6491
6581
  }
6492
- return pushToTop;
6493
- })();
6582
+ }
6583
+ const arialLevelTracker = new AriaLevelTracker();
6494
6584
  class Overlay extends CompositeDisposable {
6495
6585
  set minimumInViewportWidth(value) {
6496
6586
  this.options.minimumInViewportWidth = value;
@@ -6498,6 +6588,9 @@ class Overlay extends CompositeDisposable {
6498
6588
  set minimumInViewportHeight(value) {
6499
6589
  this.options.minimumInViewportHeight = value;
6500
6590
  }
6591
+ get element() {
6592
+ return this._element;
6593
+ }
6501
6594
  constructor(options) {
6502
6595
  super();
6503
6596
  this.options = options;
@@ -6520,6 +6613,10 @@ class Overlay extends CompositeDisposable {
6520
6613
  this.options.container.appendChild(this._element);
6521
6614
  // if input bad resize within acceptable boundaries
6522
6615
  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 })));
6616
+ arialLevelTracker.push(this._element);
6617
+ }
6618
+ bringToFront() {
6619
+ arialLevelTracker.push(this._element);
6523
6620
  }
6524
6621
  setBounds(bounds = {}) {
6525
6622
  if (typeof bounds.height === 'number') {
@@ -6607,18 +6704,10 @@ class Overlay extends CompositeDisposable {
6607
6704
  const move = new MutableDisposable();
6608
6705
  const track = () => {
6609
6706
  let offset = null;
6610
- const iframes = [
6611
- ...getElementsByTagName('iframe'),
6612
- ...getElementsByTagName('webview'),
6613
- ];
6614
- for (const iframe of iframes) {
6615
- iframe.style.pointerEvents = 'none';
6616
- }
6707
+ const iframes = disableIframePointEvents();
6617
6708
  move.value = new CompositeDisposable({
6618
6709
  dispose: () => {
6619
- for (const iframe of iframes) {
6620
- iframe.style.pointerEvents = 'auto';
6621
- }
6710
+ iframes.release();
6622
6711
  },
6623
6712
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6624
6713
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6687,9 +6776,8 @@ class Overlay extends CompositeDisposable {
6687
6776
  track();
6688
6777
  }
6689
6778
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6690
- bringElementToFront(this._element);
6779
+ arialLevelTracker.push(this._element);
6691
6780
  }, true));
6692
- bringElementToFront(this._element);
6693
6781
  if (options.inDragMode) {
6694
6782
  track();
6695
6783
  }
@@ -6702,13 +6790,7 @@ class Overlay extends CompositeDisposable {
6702
6790
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6703
6791
  e.preventDefault();
6704
6792
  let startPosition = null;
6705
- const iframes = [
6706
- ...getElementsByTagName('iframe'),
6707
- ...getElementsByTagName('webview'),
6708
- ];
6709
- for (const iframe of iframes) {
6710
- iframe.style.pointerEvents = 'none';
6711
- }
6793
+ const iframes = disableIframePointEvents();
6712
6794
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6713
6795
  const containerRect = this.options.container.getBoundingClientRect();
6714
6796
  const overlayRect = this._element.getBoundingClientRect();
@@ -6831,9 +6913,7 @@ class Overlay extends CompositeDisposable {
6831
6913
  this.setBounds(bounds);
6832
6914
  }), {
6833
6915
  dispose: () => {
6834
- for (const iframe of iframes) {
6835
- iframe.style.pointerEvents = 'auto';
6836
- }
6916
+ iframes.release();
6837
6917
  },
6838
6918
  }, addDisposableWindowListener(window, 'mouseup', () => {
6839
6919
  move.dispose();
@@ -6854,6 +6934,7 @@ class Overlay extends CompositeDisposable {
6854
6934
  return 0;
6855
6935
  }
6856
6936
  dispose() {
6937
+ arialLevelTracker.destroy(this._element);
6857
6938
  this._element.remove();
6858
6939
  super.dispose();
6859
6940
  }
@@ -6882,9 +6963,10 @@ function createFocusableElement() {
6882
6963
  return element;
6883
6964
  }
6884
6965
  class OverlayRenderContainer extends CompositeDisposable {
6885
- constructor(element) {
6966
+ constructor(element, accessor) {
6886
6967
  super();
6887
6968
  this.element = element;
6969
+ this.accessor = accessor;
6888
6970
  this.map = {};
6889
6971
  this._disposed = false;
6890
6972
  this.addDisposables(exports.DockviewDisposable.from(() => {
@@ -6940,7 +7022,35 @@ class OverlayRenderContainer extends CompositeDisposable {
6940
7022
  }
6941
7023
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6942
7024
  };
6943
- const disposable = new CompositeDisposable(
7025
+ const observerDisposable = new MutableDisposable();
7026
+ const correctLayerPosition = () => {
7027
+ if (panel.api.location.type === 'floating') {
7028
+ queueMicrotask(() => {
7029
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7030
+ if (!floatingGroup) {
7031
+ return;
7032
+ }
7033
+ const element = floatingGroup.overlay.element;
7034
+ const update = () => {
7035
+ const level = Number(element.getAttribute('aria-level'));
7036
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7037
+ };
7038
+ const observer = new MutationObserver(() => {
7039
+ update();
7040
+ });
7041
+ observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
7042
+ observer.observe(element, {
7043
+ attributeFilter: ['aria-level'],
7044
+ attributes: true,
7045
+ });
7046
+ update();
7047
+ });
7048
+ }
7049
+ else {
7050
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7051
+ }
7052
+ };
7053
+ const disposable = new CompositeDisposable(observerDisposable,
6944
7054
  /**
6945
7055
  * since container is positioned absoutely we must explicitly forward
6946
7056
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6964,7 +7074,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6964
7074
  onDragOver: (e) => {
6965
7075
  referenceContainer.dropTarget.dnd.onDragOver(e);
6966
7076
  },
6967
- }), panel.api.onDidVisibilityChange((event) => {
7077
+ }), panel.api.onDidVisibilityChange(() => {
6968
7078
  /**
6969
7079
  * Control the visibility of the content, however even when not visible (display: none)
6970
7080
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6976,6 +7086,8 @@ class OverlayRenderContainer extends CompositeDisposable {
6976
7086
  return;
6977
7087
  }
6978
7088
  resize();
7089
+ }), panel.api.onDidLocationChange(() => {
7090
+ correctLayerPosition();
6979
7091
  }));
6980
7092
  this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6981
7093
  var _a;
@@ -6984,6 +7096,7 @@ class OverlayRenderContainer extends CompositeDisposable {
6984
7096
  }
6985
7097
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6986
7098
  });
7099
+ correctLayerPosition();
6987
7100
  queueMicrotask(() => {
6988
7101
  if (this.isDisposed) {
6989
7102
  return;
@@ -7209,7 +7322,10 @@ class DockviewComponent extends BaseGrid {
7209
7322
  get gap() {
7210
7323
  return this.gridview.margin;
7211
7324
  }
7212
- constructor(options) {
7325
+ get floatingGroups() {
7326
+ return this._floatingGroups;
7327
+ }
7328
+ constructor(parentElement, options) {
7213
7329
  var _a;
7214
7330
  super({
7215
7331
  proportionalLayout: true,
@@ -7217,10 +7333,11 @@ class DockviewComponent extends BaseGrid {
7217
7333
  styles: options.hideBorders
7218
7334
  ? { separatorBorder: 'transparent' }
7219
7335
  : undefined,
7220
- parentElement: options.parentElement,
7336
+ parentElement: parentElement,
7221
7337
  disableAutoResizing: options.disableAutoResizing,
7222
7338
  locked: options.locked,
7223
7339
  margin: options.gap,
7340
+ className: options.className,
7224
7341
  });
7225
7342
  this.nextGroupId = sequentialNumberGenerator();
7226
7343
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7256,10 +7373,10 @@ class DockviewComponent extends BaseGrid {
7256
7373
  this._onDidActiveGroupChange = new Emitter();
7257
7374
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7258
7375
  this._moving = false;
7259
- const gready = document.createElement('div');
7260
- gready.className = 'dv-overlay-render-container';
7261
- this.gridview.element.appendChild(gready);
7262
- this.overlayRenderContainer = new OverlayRenderContainer(gready);
7376
+ // const gready = document.createElement('div');
7377
+ // gready.className = 'dv-overlay-render-container';
7378
+ // this.gridview.element.appendChild(gready);
7379
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7263
7380
  toggleClass(this.gridview.element, 'dv-dockview', true);
7264
7381
  toggleClass(this.element, 'dv-debug', !!options.debug);
7265
7382
  this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
@@ -7425,7 +7542,7 @@ class DockviewComponent extends BaseGrid {
7425
7542
  }
7426
7543
  const gready = document.createElement('div');
7427
7544
  gready.className = 'dv-overlay-render-container';
7428
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7545
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7429
7546
  const referenceGroup = itemToPopout instanceof DockviewPanel
7430
7547
  ? itemToPopout.group
7431
7548
  : itemToPopout;
@@ -7574,7 +7691,6 @@ class DockviewComponent extends BaseGrid {
7574
7691
  }
7575
7692
  }
7576
7693
  }
7577
- group.model.location = { type: 'floating' };
7578
7694
  function getAnchoredBox() {
7579
7695
  if (options === null || options === void 0 ? void 0 : options.position) {
7580
7696
  const result = {};
@@ -7641,10 +7757,14 @@ class DockviewComponent extends BaseGrid {
7641
7757
  : false,
7642
7758
  });
7643
7759
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7644
- const disposable = watchElementResize(group.element, (entry) => {
7760
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7761
+ if (event.isActive) {
7762
+ overlay.bringToFront();
7763
+ }
7764
+ }), watchElementResize(group.element, (entry) => {
7645
7765
  const { width, height } = entry.contentRect;
7646
7766
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7647
- });
7767
+ }));
7648
7768
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7649
7769
  // this is either a resize or a move
7650
7770
  // to inform the panels .layout(...) the group with it's current size
@@ -7660,12 +7780,13 @@ class DockviewComponent extends BaseGrid {
7660
7780
  }), {
7661
7781
  dispose: () => {
7662
7782
  disposable.dispose();
7663
- group.model.location = { type: 'grid' };
7664
7783
  remove(this._floatingGroups, floatingGroupPanel);
7784
+ group.model.location = { type: 'grid' };
7665
7785
  this.updateWatermark();
7666
7786
  },
7667
7787
  });
7668
7788
  this._floatingGroups.push(floatingGroupPanel);
7789
+ group.model.location = { type: 'floating' };
7669
7790
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7670
7791
  this.doSetGroupAndPanelActive(group);
7671
7792
  }
@@ -7704,6 +7825,7 @@ class DockviewComponent extends BaseGrid {
7704
7825
  }
7705
7826
  updateOptions(options) {
7706
7827
  var _a, _b;
7828
+ super.updateOptions(options);
7707
7829
  const changed_floatingGroupBounds = 'floatingGroupBounds' in options &&
7708
7830
  options.floatingGroupBounds !== this.options.floatingGroupBounds;
7709
7831
  const changed_rootOverlayOptions = 'rootOverlayModel' in options &&
@@ -8247,6 +8369,7 @@ class DockviewComponent extends BaseGrid {
8247
8369
  this._groups.delete(group.id);
8248
8370
  this._onDidRemoveGroup.fire(group);
8249
8371
  }
8372
+ remove(this._popoutGroups, selectedGroup);
8250
8373
  const removedGroup = selectedGroup.disposable.dispose();
8251
8374
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8252
8375
  this.doAddGroup(removedGroup, [0]);
@@ -8358,6 +8481,31 @@ class DockviewComponent extends BaseGrid {
8358
8481
  return;
8359
8482
  }
8360
8483
  }
8484
+ if (sourceGroup.api.location.type === 'popout') {
8485
+ /**
8486
+ * the source group is a popout group with a single panel
8487
+ *
8488
+ * 1. remove the panel from the group without triggering any events
8489
+ * 2. remove the popout group
8490
+ * 3. create a new group at the requested location and add that panel
8491
+ */
8492
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8493
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8494
+ skipSetActive: true,
8495
+ skipSetActiveGroup: true,
8496
+ }));
8497
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8498
+ const newGroup = this.createGroupAtLocation(targetLocation);
8499
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8500
+ skipSetActive: true,
8501
+ }));
8502
+ this.doSetGroupAndPanelActive(newGroup);
8503
+ this._onDidMovePanel.fire({
8504
+ panel: this.getGroupPanel(sourceItemId),
8505
+ from: sourceGroup,
8506
+ });
8507
+ return;
8508
+ }
8361
8509
  // source group will become empty so delete the group
8362
8510
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8363
8511
  skipActive: true,
@@ -8589,13 +8737,14 @@ class GridviewComponent extends BaseGrid {
8589
8737
  set deserializer(value) {
8590
8738
  this._deserializer = value;
8591
8739
  }
8592
- constructor(options) {
8740
+ constructor(parentElement, options) {
8593
8741
  super({
8594
- parentElement: options.parentElement,
8742
+ parentElement: parentElement,
8595
8743
  proportionalLayout: options.proportionalLayout,
8596
8744
  orientation: options.orientation,
8597
8745
  styles: options.styles,
8598
8746
  disableAutoResizing: options.disableAutoResizing,
8747
+ className: options.className,
8599
8748
  });
8600
8749
  this._onDidLayoutfromJSON = new Emitter();
8601
8750
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8621,6 +8770,7 @@ class GridviewComponent extends BaseGrid {
8621
8770
  }
8622
8771
  }
8623
8772
  updateOptions(options) {
8773
+ super.updateOptions(options);
8624
8774
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8625
8775
  this.gridview.orientation !== options.orientation;
8626
8776
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -8887,8 +9037,9 @@ class SplitviewComponent extends Resizable {
8887
9037
  ? this.splitview.size
8888
9038
  : this.splitview.orthogonalSize;
8889
9039
  }
8890
- constructor(options) {
8891
- super(options.parentElement, options.disableAutoResizing);
9040
+ constructor(parentElement, options) {
9041
+ var _a, _b;
9042
+ super(parentElement, options.disableAutoResizing);
8892
9043
  this._splitviewChangeDisposable = new MutableDisposable();
8893
9044
  this._panels = new Map();
8894
9045
  this._onDidLayoutfromJSON = new Emitter();
@@ -8899,6 +9050,11 @@ class SplitviewComponent extends Resizable {
8899
9050
  this.onDidRemoveView = this._onDidRemoveView.event;
8900
9051
  this._onDidLayoutChange = new Emitter();
8901
9052
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9053
+ this.classNames = [];
9054
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9055
+ for (const className of this.classNames) {
9056
+ toggleClass(this.element, className, true);
9057
+ }
8902
9058
  this._options = options;
8903
9059
  if (!options.components) {
8904
9060
  options.components = {};
@@ -8910,6 +9066,16 @@ class SplitviewComponent extends Resizable {
8910
9066
  this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
8911
9067
  }
8912
9068
  updateOptions(options) {
9069
+ var _a, _b;
9070
+ if ('className' in options) {
9071
+ for (const className of this.classNames) {
9072
+ toggleClass(this.element, className, false);
9073
+ }
9074
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9075
+ for (const className of this.classNames) {
9076
+ toggleClass(this.element, className, true);
9077
+ }
9078
+ }
8913
9079
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8914
9080
  this.options.orientation !== options.orientation;
8915
9081
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -9211,8 +9377,9 @@ class PaneviewComponent extends Resizable {
9211
9377
  get options() {
9212
9378
  return this._options;
9213
9379
  }
9214
- constructor(options) {
9215
- super(options.parentElement, options.disableAutoResizing);
9380
+ constructor(parentElement, options) {
9381
+ var _a, _b;
9382
+ super(parentElement, options.disableAutoResizing);
9216
9383
  this._id = nextLayoutId.next();
9217
9384
  this._disposable = new MutableDisposable();
9218
9385
  this._viewDisposables = new Map();
@@ -9226,7 +9393,12 @@ class PaneviewComponent extends Resizable {
9226
9393
  this.onDidAddView = this._onDidAddView.event;
9227
9394
  this._onDidRemoveView = new Emitter();
9228
9395
  this.onDidRemoveView = this._onDidRemoveView.event;
9396
+ this.classNames = [];
9229
9397
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9398
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9399
+ for (const className of this.classNames) {
9400
+ toggleClass(this.element, className, true);
9401
+ }
9230
9402
  this._options = options;
9231
9403
  if (!options.components) {
9232
9404
  options.components = {};
@@ -9248,6 +9420,16 @@ class PaneviewComponent extends Resizable {
9248
9420
  //noop
9249
9421
  }
9250
9422
  updateOptions(options) {
9423
+ var _a, _b;
9424
+ if ('className' in options) {
9425
+ for (const className of this.classNames) {
9426
+ toggleClass(this.element, className, false);
9427
+ }
9428
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9429
+ for (const className of this.classNames) {
9430
+ toggleClass(this.element, className, true);
9431
+ }
9432
+ }
9251
9433
  this._options = Object.assign(Object.assign({}, this.options), options);
9252
9434
  }
9253
9435
  addPanel(options) {
@@ -9541,6 +9723,23 @@ class SplitviewPanel extends BasePanelView {
9541
9723
  }
9542
9724
  }
9543
9725
 
9726
+ function createDockview(element, options) {
9727
+ const component = new DockviewComponent(element, options);
9728
+ return component.api;
9729
+ }
9730
+ function createSplitview(element, options) {
9731
+ const component = new SplitviewComponent(element, options);
9732
+ return new SplitviewApi(component);
9733
+ }
9734
+ function createGridview(element, options) {
9735
+ const component = new GridviewComponent(element, options);
9736
+ return new GridviewApi(component);
9737
+ }
9738
+ function createPaneview(element, options) {
9739
+ const component = new PaneviewComponent(element, options);
9740
+ return new PaneviewApi(component);
9741
+ }
9742
+
9544
9743
  /**
9545
9744
  * This component is intended to interface between vanilla-js and React hence we need to be
9546
9745
  * creative in how we update props.
@@ -9920,20 +10119,19 @@ const DockviewReact = React.forwardRef((props, ref) => {
9920
10119
  });
9921
10120
  }
9922
10121
  : undefined,
9923
- parentElement: domRef.current,
9924
10122
  defaultTabComponent: props.defaultTabComponent
9925
10123
  ? DEFAULT_REACT_TAB
9926
10124
  : undefined,
9927
10125
  };
9928
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10126
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9929
10127
  const { clientWidth, clientHeight } = domRef.current;
9930
- dockview.layout(clientWidth, clientHeight);
10128
+ api.layout(clientWidth, clientHeight);
9931
10129
  if (props.onReady) {
9932
- props.onReady({ api: new DockviewApi(dockview) });
10130
+ props.onReady({ api });
9933
10131
  }
9934
- dockviewRef.current = dockview;
10132
+ dockviewRef.current = api;
9935
10133
  return () => {
9936
- dockview.dispose();
10134
+ api.dispose();
9937
10135
  };
9938
10136
  }, []);
9939
10137
  React.useEffect(() => {
@@ -10136,8 +10334,7 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10136
10334
  React.useImperativeHandle(ref, () => domRef.current, []);
10137
10335
  React.useEffect(() => {
10138
10336
  var _a;
10139
- const splitview = new SplitviewComponent({
10140
- parentElement: domRef.current,
10337
+ const api = createSplitview(domRef.current, {
10141
10338
  disableAutoResizing: props.disableAutoResizing,
10142
10339
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10143
10340
  frameworkComponents: props.components,
@@ -10156,13 +10353,13 @@ const SplitviewReact = React.forwardRef((props, ref) => {
10156
10353
  : undefined,
10157
10354
  });
10158
10355
  const { clientWidth, clientHeight } = domRef.current;
10159
- splitview.layout(clientWidth, clientHeight);
10356
+ api.layout(clientWidth, clientHeight);
10160
10357
  if (props.onReady) {
10161
- props.onReady({ api: new SplitviewApi(splitview) });
10358
+ props.onReady({ api });
10162
10359
  }
10163
- splitviewRef.current = splitview;
10360
+ splitviewRef.current = api;
10164
10361
  return () => {
10165
- splitview.dispose();
10362
+ api.dispose();
10166
10363
  };
10167
10364
  }, []);
10168
10365
  React.useEffect(() => {
@@ -10207,8 +10404,7 @@ const GridviewReact = React.forwardRef((props, ref) => {
10207
10404
  // noop
10208
10405
  };
10209
10406
  }
10210
- const gridview = new GridviewComponent({
10211
- parentElement: domRef.current,
10407
+ const api = createGridview(domRef.current, {
10212
10408
  disableAutoResizing: props.disableAutoResizing,
10213
10409
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10214
10410
  ? props.proportionalLayout
@@ -10227,13 +10423,13 @@ const GridviewReact = React.forwardRef((props, ref) => {
10227
10423
  : undefined,
10228
10424
  });
10229
10425
  const { clientWidth, clientHeight } = domRef.current;
10230
- gridview.layout(clientWidth, clientHeight);
10426
+ api.layout(clientWidth, clientHeight);
10231
10427
  if (props.onReady) {
10232
- props.onReady({ api: new GridviewApi(gridview) });
10428
+ props.onReady({ api });
10233
10429
  }
10234
- gridviewRef.current = gridview;
10430
+ gridviewRef.current = api;
10235
10431
  return () => {
10236
- gridview.dispose();
10432
+ api.dispose();
10237
10433
  };
10238
10434
  }, []);
10239
10435
  React.useEffect(() => {
@@ -10292,8 +10488,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10292
10488
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10293
10489
  addPortal,
10294
10490
  });
10295
- const paneview = new PaneviewComponent({
10296
- parentElement: domRef.current,
10491
+ const api = createPaneview(domRef.current, {
10297
10492
  disableAutoResizing: props.disableAutoResizing,
10298
10493
  frameworkComponents: props.components,
10299
10494
  components: {},
@@ -10310,15 +10505,14 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10310
10505
  },
10311
10506
  showDndOverlay: props.showDndOverlay,
10312
10507
  });
10313
- const api = new PaneviewApi(paneview);
10314
10508
  const { clientWidth, clientHeight } = domRef.current;
10315
- paneview.layout(clientWidth, clientHeight);
10509
+ api.layout(clientWidth, clientHeight);
10316
10510
  if (props.onReady) {
10317
10511
  props.onReady({ api });
10318
10512
  }
10319
- paneviewRef.current = paneview;
10513
+ paneviewRef.current = api;
10320
10514
  return () => {
10321
- paneview.dispose();
10515
+ api.dispose();
10322
10516
  };
10323
10517
  }, []);
10324
10518
  React.useEffect(() => {
@@ -10343,10 +10537,10 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10343
10537
  //
10344
10538
  };
10345
10539
  }
10346
- const paneview = paneviewRef.current;
10347
- const disposable = paneview.onDidDrop((event) => {
10540
+ const api = paneviewRef.current;
10541
+ const disposable = api.onDidDrop((event) => {
10348
10542
  if (props.onDidDrop) {
10349
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10543
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10350
10544
  }
10351
10545
  });
10352
10546
  return () => {
@@ -10408,6 +10602,10 @@ exports.SplitviewReact = SplitviewReact;
10408
10602
  exports.Tab = Tab;
10409
10603
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10410
10604
  exports.createComponent = createComponent;
10605
+ exports.createDockview = createDockview;
10606
+ exports.createGridview = createGridview;
10607
+ exports.createPaneview = createPaneview;
10608
+ exports.createSplitview = createSplitview;
10411
10609
  exports.directionToPosition = directionToPosition;
10412
10610
  exports.getDirectionOrientation = getDirectionOrientation;
10413
10611
  exports.getGridLocation = getGridLocation;