dockview-react 1.17.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-react
3
- * @version 1.17.2
3
+ * @version 2.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
34
34
  }
35
35
  }
36
36
 
37
- var css_248z = ".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-overlay-z-index: 999;\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-overlay-z-index: 999;\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-overlay-z-index: 999;\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-overlay-z-index: 999;\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-overlay-z-index: 999;\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-overlay-z-index: 999;\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 --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
37
+ var css_248z = ".dv-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-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-overlay-z-index: 999;\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-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-overlay-z-index: 999;\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-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-overlay-z-index: 999;\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 .dv-groupview.dv-active-group > .dv-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 .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\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-overlay-z-index: 999;\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-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-overlay-z-index: 999;\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 .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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-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-overlay-z-index: 999;\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-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .dv-groupview .dv-content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .dv-groupview.dv-active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview.dv-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 .dv-horizontal > .dv-sash-container > .dv-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 .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dv-drop-target {\n position: relative;\n}\n.dv-drop-target > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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.dv-tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-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.dv-groupview:focus {\n outline: none;\n}\n.dv-groupview > .dv-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.dv-grid-view,\n.dv-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 --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-hidden {\n display: none;\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dv-pane-container {\n height: 100%;\n width: 100%;\n}\n.dv-pane-container.dv-animated .dv-view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-pane-container .dv-view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.dv-pane-container .dv-view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.dv-pane-container .dv-view:not(:first-child) .dv-pane > .dv-pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.dv-pane-container .dv-view .dv-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.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dv-pane-container .dv-view .dv-default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.dv-pane-container:first-of-type > .dv-pane > .dv-pane-header {\n border-top: none !important;\n}\n.dv-pane-container .dv-pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.dv-pane-container .dv-pane .dv-pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable {\n cursor: pointer;\n}\n.dv-pane-container .dv-pane .dv-pane-header:focus:before, .dv-pane-container .dv-pane .dv-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.dv-pane-container .dv-pane .dv-pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-body:focus:before, .dv-pane-container .dv-pane .dv-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 .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled {\n background-color: black;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled {\n background-color: orange;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum {\n background-color: green;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum {\n background-color: red;\n}\n\n.dv-split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container.dv-splitview-disabled > .dv-sash-container > .dv-sash {\n pointer-events: none;\n}\n.dv-split-view-container.dv-animation .dv-view,\n.dv-split-view-container.dv-animation .dv-sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-split-view-container.dv-horizontal {\n height: 100%;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash {\n height: 100%;\n width: 4px;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ew-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: w-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: e-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.dv-split-view-container.dv-vertical {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash {\n width: 100%;\n height: 4px;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ns-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: n-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: s-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.dv-split-view-container .dv-sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.dv-split-view-container .dv-sash-container .dv-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.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.dv-split-view-container .dv-sash-container .dv-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.dv-split-view-container .dv-view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container .dv-view-container .dv-view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.dv-split-view-container.dv-separator-border .dv-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.dv-tab {\n flex-shrink: 0;\n}\n.dv-tab:focus-within, .dv-tab:focus {\n position: relative;\n}\n.dv-tab:focus-within::after, .dv-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.dv-tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.dv-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.dv-tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.dv-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.dv-tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.dv-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.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container {\n flex-grow: 0;\n}\n.dv-tabs-and-actions-container .dv-void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.dv-tabs-and-actions-container .dv-tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-watermark {\n display: flex;\n height: 100%;\n}";
38
38
  styleInject(css_248z);
39
39
 
40
40
  class TransferObject {
@@ -355,31 +355,6 @@ class MutableDisposable {
355
355
  }
356
356
  }
357
357
 
358
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
359
- const Component = typeof componentName === 'string'
360
- ? components[componentName]
361
- : undefined;
362
- const FrameworkComponent = typeof componentName === 'string'
363
- ? frameworkComponents[componentName]
364
- : undefined;
365
- if (Component && FrameworkComponent) {
366
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
367
- }
368
- if (FrameworkComponent) {
369
- if (!createFrameworkComponent) {
370
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
371
- }
372
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
373
- }
374
- if (!Component) {
375
- if (fallback) {
376
- return fallback();
377
- }
378
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
379
- }
380
- return new Component(id, componentName);
381
- }
382
-
383
358
  function watchElementResize(element, cb) {
384
359
  const observer = new ResizeObserver((entires) => {
385
360
  /**
@@ -848,10 +823,10 @@ class Splitview {
848
823
  const tmp = this.size;
849
824
  this.size = this.orthogonalSize;
850
825
  this.orthogonalSize = tmp;
851
- removeClasses(this.element, 'horizontal', 'vertical');
826
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
852
827
  this.element.classList.add(this.orientation == Orientation.HORIZONTAL
853
- ? 'horizontal'
854
- : 'vertical');
828
+ ? 'dv-horizontal'
829
+ : 'dv-vertical');
855
830
  }
856
831
  get minimumSize() {
857
832
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -1029,11 +1004,11 @@ class Splitview {
1029
1004
  }
1030
1005
  style(styles) {
1031
1006
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1032
- removeClasses(this.element, 'separator-border');
1007
+ removeClasses(this.element, 'dv-separator-border');
1033
1008
  this.element.style.removeProperty('--dv-separator-border');
1034
1009
  }
1035
1010
  else {
1036
- addClasses(this.element, 'separator-border');
1011
+ addClasses(this.element, 'dv-separator-border');
1037
1012
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1038
1013
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1039
1014
  }
@@ -1103,7 +1078,7 @@ class Splitview {
1103
1078
  }
1104
1079
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1105
1080
  const container = document.createElement('div');
1106
- container.className = 'view';
1081
+ container.className = 'dv-view';
1107
1082
  container.appendChild(view.element);
1108
1083
  let viewSize;
1109
1084
  if (typeof size === 'number') {
@@ -1135,7 +1110,7 @@ class Splitview {
1135
1110
  if (this.viewItems.length > 1) {
1136
1111
  //add sash
1137
1112
  const sash = document.createElement('div');
1138
- sash.className = 'sash';
1113
+ sash.className = 'dv-sash';
1139
1114
  const onPointerStart = (event) => {
1140
1115
  for (const item of this.viewItems) {
1141
1116
  item.enabled = false;
@@ -1394,7 +1369,8 @@ class Splitview {
1394
1369
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1395
1370
  ? 0
1396
1371
  : viewLeftOffsets[i - 1] +
1397
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1372
+ (visiblePanelsBeforeThisView / sashCount) *
1373
+ marginReducedSize;
1398
1374
  if (i < this.viewItems.length - 1) {
1399
1375
  // calculate sash position
1400
1376
  const newSize = view.visible
@@ -1505,27 +1481,27 @@ class Splitview {
1505
1481
  }
1506
1482
  }
1507
1483
  updateSash(sash, state) {
1508
- toggleClass(sash.container, 'disabled', state === SashState.DISABLED);
1509
- toggleClass(sash.container, 'enabled', state === SashState.ENABLED);
1510
- toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);
1511
- toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);
1484
+ toggleClass(sash.container, 'dv-disabled', state === SashState.DISABLED);
1485
+ toggleClass(sash.container, 'dv-enabled', state === SashState.ENABLED);
1486
+ toggleClass(sash.container, 'dv-maximum', state === SashState.MAXIMUM);
1487
+ toggleClass(sash.container, 'dv-minimum', state === SashState.MINIMUM);
1512
1488
  }
1513
1489
  createViewContainer() {
1514
1490
  const element = document.createElement('div');
1515
- element.className = 'view-container';
1491
+ element.className = 'dv-view-container';
1516
1492
  return element;
1517
1493
  }
1518
1494
  createSashContainer() {
1519
1495
  const element = document.createElement('div');
1520
- element.className = 'sash-container';
1496
+ element.className = 'dv-sash-container';
1521
1497
  return element;
1522
1498
  }
1523
1499
  createContainer() {
1524
1500
  const element = document.createElement('div');
1525
1501
  const orientationClassname = this._orientation === Orientation.HORIZONTAL
1526
- ? 'horizontal'
1527
- : 'vertical';
1528
- element.className = `split-view-container ${orientationClassname}`;
1502
+ ? 'dv-horizontal'
1503
+ : 'dv-vertical';
1504
+ element.className = `dv-split-view-container ${orientationClassname}`;
1529
1505
  return element;
1530
1506
  }
1531
1507
  dispose() {
@@ -1576,7 +1552,7 @@ class Paneview extends CompositeDisposable {
1576
1552
  this.onDidChange = this._onDidChange.event;
1577
1553
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;
1578
1554
  this.element = document.createElement('div');
1579
- this.element.className = 'pane-container';
1555
+ this.element.className = 'dv-pane-container';
1580
1556
  container.appendChild(this.element);
1581
1557
  this.splitview = new Splitview(this.element, {
1582
1558
  orientation: this._orientation,
@@ -1668,10 +1644,10 @@ class Paneview extends CompositeDisposable {
1668
1644
  clearTimeout(this.animationTimer);
1669
1645
  this.animationTimer = undefined;
1670
1646
  }
1671
- addClasses(this.element, 'animated');
1647
+ addClasses(this.element, 'dv-animated');
1672
1648
  this.animationTimer = setTimeout(() => {
1673
1649
  this.animationTimer = undefined;
1674
- removeClasses(this.element, 'animated');
1650
+ removeClasses(this.element, 'dv-animated');
1675
1651
  }, 200);
1676
1652
  }
1677
1653
  dispose() {
@@ -1896,7 +1872,7 @@ class BranchNode extends CompositeDisposable {
1896
1872
  this._orthogonalSize = orthogonalSize;
1897
1873
  this._size = size;
1898
1874
  this.element = document.createElement('div');
1899
- this.element.className = 'branch-node';
1875
+ this.element.className = 'dv-branch-node';
1900
1876
  if (!childDescriptors) {
1901
1877
  this.splitview = new Splitview(this.element, {
1902
1878
  orientation: this.orientation,
@@ -2107,7 +2083,7 @@ function getGridLocation(element) {
2107
2083
  if (!parentElement) {
2108
2084
  throw new Error('Invalid grid element');
2109
2085
  }
2110
- if (/\bgrid-view\b/.test(parentElement.className)) {
2086
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2111
2087
  return [];
2112
2088
  }
2113
2089
  const index = indexInParent(parentElement);
@@ -2244,6 +2220,7 @@ class Gridview {
2244
2220
  if (this.hasMaximizedView()) {
2245
2221
  this.exitMaximizedView();
2246
2222
  }
2223
+ serializeBranchNode(this.getView(), this.orientation);
2247
2224
  const hiddenOnMaximize = [];
2248
2225
  function hideAllViewsBut(parent, exclude) {
2249
2226
  for (let i = 0; i < parent.children.length; i++) {
@@ -2265,7 +2242,10 @@ class Gridview {
2265
2242
  }
2266
2243
  hideAllViewsBut(this.root, node);
2267
2244
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
2268
- this._onDidMaximizedNodeChange.fire();
2245
+ this._onDidMaximizedNodeChange.fire({
2246
+ view: node.view,
2247
+ isMaximized: true,
2248
+ });
2269
2249
  }
2270
2250
  exitMaximizedView() {
2271
2251
  if (!this._maximizedNode) {
@@ -2286,24 +2266,51 @@ class Gridview {
2286
2266
  }
2287
2267
  }
2288
2268
  showViewsInReverseOrder(this.root);
2269
+ const tmp = this._maximizedNode.leaf;
2289
2270
  this._maximizedNode = undefined;
2290
- this._onDidMaximizedNodeChange.fire();
2271
+ this._onDidMaximizedNodeChange.fire({
2272
+ view: tmp.view,
2273
+ isMaximized: false,
2274
+ });
2291
2275
  }
2292
2276
  serialize() {
2277
+ const maximizedView = this.maximizedView();
2278
+ let maxmizedViewLocation;
2279
+ if (maximizedView) {
2280
+ /**
2281
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
2282
+ * which is represented as a branch of indices
2283
+ */
2284
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
2285
+ }
2293
2286
  if (this.hasMaximizedView()) {
2294
2287
  /**
2295
- * do not persist maximized view state
2296
- * firstly exit any maximized views to ensure the correct dimensions are persisted
2288
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
2289
+ * view dimensions will be wrong
2290
+ *
2291
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
2292
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
2293
+ * perspective when `.toJSON()` is called
2297
2294
  */
2298
2295
  this.exitMaximizedView();
2299
2296
  }
2300
2297
  const root = serializeBranchNode(this.getView(), this.orientation);
2301
- return {
2298
+ const resullt = {
2302
2299
  root,
2303
2300
  width: this.width,
2304
2301
  height: this.height,
2305
2302
  orientation: this.orientation,
2306
2303
  };
2304
+ if (maxmizedViewLocation) {
2305
+ resullt.maximizedNode = {
2306
+ location: maxmizedViewLocation,
2307
+ };
2308
+ }
2309
+ if (maximizedView) {
2310
+ // replace any maximzied view that was removed for serialization purposes
2311
+ this.maximizeView(maximizedView);
2312
+ }
2313
+ return resullt;
2307
2314
  }
2308
2315
  dispose() {
2309
2316
  this.disposable.dispose();
@@ -2322,6 +2329,19 @@ class Gridview {
2322
2329
  const orientation = json.orientation;
2323
2330
  const height = orientation === Orientation.VERTICAL ? json.height : json.width;
2324
2331
  this._deserialize(json.root, orientation, deserializer, height);
2332
+ /**
2333
+ * The deserialied layout must be positioned through this.layout(...)
2334
+ * before any maximizedNode can be positioned
2335
+ */
2336
+ this.layout(json.width, json.height);
2337
+ if (json.maximizedNode) {
2338
+ const location = json.maximizedNode.location;
2339
+ const [_, node] = this.getNode(location);
2340
+ if (!(node instanceof LeafNode)) {
2341
+ return;
2342
+ }
2343
+ this.maximizeView(node.view);
2344
+ }
2325
2345
  }
2326
2346
  _deserialize(root, orientation, deserializer, orthogonalSize) {
2327
2347
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -2455,7 +2475,7 @@ class Gridview {
2455
2475
  this._onDidMaximizedNodeChange = new Emitter();
2456
2476
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2457
2477
  this.element = document.createElement('div');
2458
- this.element.className = 'grid-view';
2478
+ this.element.className = 'dv-grid-view';
2459
2479
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2460
2480
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2461
2481
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -2746,6 +2766,8 @@ class BaseGrid extends Resizable {
2746
2766
  this.onDidRemove = this._onDidRemove.event;
2747
2767
  this._onDidAdd = new Emitter();
2748
2768
  this.onDidAdd = this._onDidAdd.event;
2769
+ this._onDidMaximizedChange = new Emitter();
2770
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
2749
2771
  this._onDidActiveChange = new Emitter();
2750
2772
  this.onDidActiveChange = this._onDidActiveChange.event;
2751
2773
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -2761,7 +2783,12 @@ class BaseGrid extends Resizable {
2761
2783
  this.gridview.locked = !!options.locked;
2762
2784
  this.element.appendChild(this.gridview.element);
2763
2785
  this.layout(0, 0, true); // set some elements height/widths
2764
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2786
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
2787
+ this._onDidMaximizedChange.fire({
2788
+ panel: event.view,
2789
+ isMaximized: event.isMaximized,
2790
+ });
2791
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2765
2792
  this.layout(this.width, this.height, true);
2766
2793
  }), Disposable.from(() => {
2767
2794
  var _a;
@@ -2811,9 +2838,6 @@ class BaseGrid extends Resizable {
2811
2838
  hasMaximizedGroup() {
2812
2839
  return this.gridview.hasMaximizedView();
2813
2840
  }
2814
- get onDidMaximizedGroupChange() {
2815
- return this.gridview.onDidMaximizedNodeChange;
2816
- }
2817
2841
  doAddGroup(group, location = [0], size) {
2818
2842
  this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
2819
2843
  this._onDidAdd.fire(group);
@@ -3677,7 +3701,7 @@ class DragHandler extends CompositeDisposable {
3677
3701
  * dnd logic. You can see the code at
3678
3702
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3679
3703
  */
3680
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3704
+ event.dataTransfer.setData('text/plain', '');
3681
3705
  }
3682
3706
  }
3683
3707
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3851,12 +3875,12 @@ class Droptarget extends CompositeDisposable {
3851
3875
  this.markAsUsed(e);
3852
3876
  if (!this.targetElement) {
3853
3877
  this.targetElement = document.createElement('div');
3854
- this.targetElement.className = 'drop-target-dropzone';
3878
+ this.targetElement.className = 'dv-drop-target-dropzone';
3855
3879
  this.overlayElement = document.createElement('div');
3856
- this.overlayElement.className = 'drop-target-selection';
3880
+ this.overlayElement.className = 'dv-drop-target-selection';
3857
3881
  this._state = 'center';
3858
3882
  this.targetElement.appendChild(this.overlayElement);
3859
- this.element.classList.add('drop-target');
3883
+ this.element.classList.add('dv-drop-target');
3860
3884
  this.element.append(this.targetElement);
3861
3885
  }
3862
3886
  this.toggleClasses(quadrant, width, height);
@@ -3994,7 +4018,7 @@ class Droptarget extends CompositeDisposable {
3994
4018
  this.element.removeChild(this.targetElement);
3995
4019
  this.targetElement = undefined;
3996
4020
  this.overlayElement = undefined;
3997
- this.element.classList.remove('drop-target');
4021
+ this.element.classList.remove('dv-drop-target');
3998
4022
  }
3999
4023
  }
4000
4024
  }
@@ -4331,7 +4355,7 @@ class PaneviewPanel extends BasePanelView {
4331
4355
  this._headerVisible = isHeaderVisible;
4332
4356
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4333
4357
  this._orientation = orientation;
4334
- this.element.classList.add('pane');
4358
+ this.element.classList.add('dv-pane');
4335
4359
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4336
4360
  const { isVisible } = event;
4337
4361
  const { accessor } = this._params;
@@ -4428,14 +4452,14 @@ class PaneviewPanel extends BasePanelView {
4428
4452
  renderOnce() {
4429
4453
  this.header = document.createElement('div');
4430
4454
  this.header.tabIndex = 0;
4431
- this.header.className = 'pane-header';
4455
+ this.header.className = 'dv-pane-header';
4432
4456
  this.header.style.height = `${this.headerSize}px`;
4433
4457
  this.header.style.lineHeight = `${this.headerSize}px`;
4434
4458
  this.header.style.minHeight = `${this.headerSize}px`;
4435
4459
  this.header.style.maxHeight = `${this.headerSize}px`;
4436
4460
  this.element.appendChild(this.header);
4437
4461
  this.body = document.createElement('div');
4438
- this.body.className = 'pane-body';
4462
+ this.body.className = 'dv-pane-body';
4439
4463
  this.element.appendChild(this.body);
4440
4464
  }
4441
4465
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4556,7 +4580,7 @@ class ContentContainer extends CompositeDisposable {
4556
4580
  this._onDidBlur = new Emitter();
4557
4581
  this.onDidBlur = this._onDidBlur.event;
4558
4582
  this._element = document.createElement('div');
4559
- this._element.className = 'content-container';
4583
+ this._element.className = 'dv-content-container';
4560
4584
  this._element.tabIndex = -1;
4561
4585
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4562
4586
  this.dropTarget = new Droptarget(this.element, {
@@ -4629,6 +4653,8 @@ class ContentContainer extends CompositeDisposable {
4629
4653
  referenceContainer: this,
4630
4654
  });
4631
4655
  break;
4656
+ default:
4657
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4632
4658
  }
4633
4659
  if (doRender) {
4634
4660
  const focusTracker = trackFocus(container);
@@ -4695,10 +4721,10 @@ class Tab extends CompositeDisposable {
4695
4721
  this._onDragStart = new Emitter();
4696
4722
  this.onDragStart = this._onDragStart.event;
4697
4723
  this._element = document.createElement('div');
4698
- this._element.className = 'tab';
4724
+ this._element.className = 'dv-tab';
4699
4725
  this._element.tabIndex = 0;
4700
4726
  this._element.draggable = true;
4701
- toggleClass(this.element, 'inactive-tab', true);
4727
+ toggleClass(this.element, 'dv-inactive-tab', true);
4702
4728
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4703
4729
  this.dropTarget = new Droptarget(this._element, {
4704
4730
  acceptedTargetZones: ['center'],
@@ -4731,8 +4757,8 @@ class Tab extends CompositeDisposable {
4731
4757
  }), this.dropTarget);
4732
4758
  }
4733
4759
  setActive(isActive) {
4734
- toggleClass(this.element, 'active-tab', isActive);
4735
- toggleClass(this.element, 'inactive-tab', !isActive);
4760
+ toggleClass(this.element, 'dv-active-tab', isActive);
4761
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4736
4762
  }
4737
4763
  setContent(part) {
4738
4764
  if (this.content) {
@@ -4820,8 +4846,7 @@ class VoidContainer extends CompositeDisposable {
4820
4846
  this._onDragStart = new Emitter();
4821
4847
  this.onDragStart = this._onDragStart.event;
4822
4848
  this._element = document.createElement('div');
4823
- this._element.className = 'void-container';
4824
- this._element.tabIndex = 0;
4849
+ this._element.className = 'dv-void-container';
4825
4850
  this._element.draggable = true;
4826
4851
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4827
4852
  this.accessor.doSetGroupActive(this.group);
@@ -4940,16 +4965,16 @@ class TabsContainer extends CompositeDisposable {
4940
4965
  this._onWillShowOverlay = new Emitter();
4941
4966
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4942
4967
  this._element = document.createElement('div');
4943
- this._element.className = 'tabs-and-actions-container';
4968
+ this._element.className = 'dv-tabs-and-actions-container';
4944
4969
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4945
4970
  this.rightActionsContainer = document.createElement('div');
4946
- this.rightActionsContainer.className = 'right-actions-container';
4971
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4947
4972
  this.leftActionsContainer = document.createElement('div');
4948
- this.leftActionsContainer.className = 'left-actions-container';
4973
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4949
4974
  this.preActionsContainer = document.createElement('div');
4950
- this.preActionsContainer.className = 'pre-actions-container';
4975
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4951
4976
  this.tabContainer = document.createElement('div');
4952
- this.tabContainer.className = 'tabs-container';
4977
+ this.tabContainer.className = 'dv-tabs-container';
4953
4978
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4954
4979
  this._element.appendChild(this.preActionsContainer);
4955
4980
  this._element.appendChild(this.tabContainer);
@@ -5038,14 +5063,10 @@ class TabsContainer extends CompositeDisposable {
5038
5063
  });
5039
5064
  }
5040
5065
  openPanel(panel, index = this.tabs.length) {
5041
- var _a;
5042
5066
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5043
5067
  return;
5044
5068
  }
5045
5069
  const tab = new Tab(panel, this.accessor, this.group);
5046
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5047
- throw new Error('invalid header component');
5048
- }
5049
5070
  tab.setContent(panel.view.tab);
5050
5071
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5051
5072
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5139,6 +5160,7 @@ const PROPERTY_KEYS = (() => {
5139
5160
  disableDnd: undefined,
5140
5161
  gap: undefined,
5141
5162
  className: undefined,
5163
+ noPanelsOverlay: undefined,
5142
5164
  };
5143
5165
  return Object.keys(properties);
5144
5166
  })();
@@ -5235,7 +5257,7 @@ class WillShowOverlayLocationEvent {
5235
5257
  }
5236
5258
  class DockviewGroupPanelModel extends CompositeDisposable {
5237
5259
  get element() {
5238
- throw new Error('not supported');
5260
+ throw new Error('dockview: not supported');
5239
5261
  }
5240
5262
  get activePanel() {
5241
5263
  return this._activePanel;
@@ -5245,7 +5267,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5245
5267
  }
5246
5268
  set locked(value) {
5247
5269
  this._locked = value;
5248
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5270
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5249
5271
  }
5250
5272
  get isActive() {
5251
5273
  return this._isGroupActive;
@@ -5316,6 +5338,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5316
5338
  this._locked = false;
5317
5339
  this._location = { type: 'grid' };
5318
5340
  this.mostRecentlyUsed = [];
5341
+ this._overwriteRenderContainer = null;
5319
5342
  this._onDidChange = new Emitter();
5320
5343
  this.onDidChange = this._onDidChange.event;
5321
5344
  this._width = 0;
@@ -5346,8 +5369,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5346
5369
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5347
5370
  this._onUnhandledDragOverEvent = new Emitter();
5348
5371
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5349
- this._overwriteRenderContainer = null;
5350
- toggleClass(this.container, 'groupview', true);
5372
+ toggleClass(this.container, 'dv-groupview', true);
5351
5373
  this._api = new DockviewApi(this.accessor);
5352
5374
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5353
5375
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5579,7 +5601,10 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5579
5601
  this.doClose(panel);
5580
5602
  }
5581
5603
  doClose(panel) {
5582
- this.accessor.removePanel(panel);
5604
+ const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
5605
+ this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
5606
+ ? { removeEmptyGroup: false }
5607
+ : undefined);
5583
5608
  }
5584
5609
  isPanelActive(panel) {
5585
5610
  return this._activePanel === panel;
@@ -5592,8 +5617,8 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5592
5617
  return;
5593
5618
  }
5594
5619
  this._isGroupActive = isGroupActive;
5595
- toggleClass(this.container, 'active-group', isGroupActive);
5596
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5620
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5621
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5597
5622
  this.tabsContainer.setActive(this.isActive);
5598
5623
  if (!this._activePanel && this.panels.length > 0) {
5599
5624
  this.doSetActivePanel(this.panels[0]);
@@ -5685,7 +5710,6 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5685
5710
  }
5686
5711
  updateContainer() {
5687
5712
  var _a, _b;
5688
- toggleClass(this.container, 'empty', this.isEmpty);
5689
5713
  this.panels.forEach((panel) => panel.runEvents());
5690
5714
  if (this.isEmpty && !this.watermark) {
5691
5715
  const watermark = this.accessor.createWatermarkComponent();
@@ -5699,14 +5723,12 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5699
5723
  this.accessor.doSetGroupActive(this.groupPanel);
5700
5724
  }
5701
5725
  });
5702
- this.tabsContainer.hide();
5703
5726
  this.contentContainer.element.appendChild(this.watermark.element);
5704
5727
  }
5705
5728
  if (!this.isEmpty && this.watermark) {
5706
5729
  this.watermark.element.remove();
5707
5730
  (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
5708
5731
  this.watermark = undefined;
5709
- this.tabsContainer.show();
5710
5732
  }
5711
5733
  }
5712
5734
  canDisplayOverlay(event, position, target) {
@@ -5826,6 +5848,34 @@ class GridviewPanel extends BasePanelView {
5826
5848
  return this._snap;
5827
5849
  }
5828
5850
  get minimumWidth() {
5851
+ /**
5852
+ * defer to protected function to allow subclasses to override easily.
5853
+ * see https://github.com/microsoft/TypeScript/issues/338
5854
+ */
5855
+ return this.__minimumWidth();
5856
+ }
5857
+ get minimumHeight() {
5858
+ /**
5859
+ * defer to protected function to allow subclasses to override easily.
5860
+ * see https://github.com/microsoft/TypeScript/issues/338
5861
+ */
5862
+ return this.__minimumHeight();
5863
+ }
5864
+ get maximumHeight() {
5865
+ /**
5866
+ * defer to protected function to allow subclasses to override easily.
5867
+ * see https://github.com/microsoft/TypeScript/issues/338
5868
+ */
5869
+ return this.__maximumHeight();
5870
+ }
5871
+ get maximumWidth() {
5872
+ /**
5873
+ * defer to protected function to allow subclasses to override easily.
5874
+ * see https://github.com/microsoft/TypeScript/issues/338
5875
+ */
5876
+ return this.__maximumWidth();
5877
+ }
5878
+ __minimumWidth() {
5829
5879
  const width = typeof this._minimumWidth === 'function'
5830
5880
  ? this._minimumWidth()
5831
5881
  : this._minimumWidth;
@@ -5835,7 +5885,17 @@ class GridviewPanel extends BasePanelView {
5835
5885
  }
5836
5886
  return width;
5837
5887
  }
5838
- get minimumHeight() {
5888
+ __maximumWidth() {
5889
+ const width = typeof this._maximumWidth === 'function'
5890
+ ? this._maximumWidth()
5891
+ : this._maximumWidth;
5892
+ if (width !== this._evaluatedMaximumWidth) {
5893
+ this._evaluatedMaximumWidth = width;
5894
+ this.updateConstraints();
5895
+ }
5896
+ return width;
5897
+ }
5898
+ __minimumHeight() {
5839
5899
  const height = typeof this._minimumHeight === 'function'
5840
5900
  ? this._minimumHeight()
5841
5901
  : this._minimumHeight;
@@ -5845,7 +5905,7 @@ class GridviewPanel extends BasePanelView {
5845
5905
  }
5846
5906
  return height;
5847
5907
  }
5848
- get maximumHeight() {
5908
+ __maximumHeight() {
5849
5909
  const height = typeof this._maximumHeight === 'function'
5850
5910
  ? this._maximumHeight()
5851
5911
  : this._maximumHeight;
@@ -5855,16 +5915,6 @@ class GridviewPanel extends BasePanelView {
5855
5915
  }
5856
5916
  return height;
5857
5917
  }
5858
- get maximumWidth() {
5859
- const width = typeof this._maximumWidth === 'function'
5860
- ? this._maximumWidth()
5861
- : this._maximumWidth;
5862
- if (width !== this._evaluatedMaximumWidth) {
5863
- this._evaluatedMaximumWidth = width;
5864
- this.updateConstraints();
5865
- }
5866
- return width;
5867
- }
5868
5918
  get isActive() {
5869
5919
  return this.api.isActive;
5870
5920
  }
@@ -6015,6 +6065,7 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
6015
6065
  position: options.group
6016
6066
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
6017
6067
  : 'center',
6068
+ index: options.index,
6018
6069
  },
6019
6070
  });
6020
6071
  }
@@ -6066,30 +6117,34 @@ class DockviewGroupPanel extends GridviewPanel {
6066
6117
  get minimumWidth() {
6067
6118
  var _a;
6068
6119
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6069
- return typeof activePanelMinimumWidth === 'number'
6070
- ? activePanelMinimumWidth
6071
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6120
+ if (typeof activePanelMinimumWidth === 'number') {
6121
+ return activePanelMinimumWidth;
6122
+ }
6123
+ return super.__minimumWidth();
6072
6124
  }
6073
6125
  get minimumHeight() {
6074
6126
  var _a;
6075
6127
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6076
- return typeof activePanelMinimumHeight === 'number'
6077
- ? activePanelMinimumHeight
6078
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6128
+ if (typeof activePanelMinimumHeight === 'number') {
6129
+ return activePanelMinimumHeight;
6130
+ }
6131
+ return super.__minimumHeight();
6079
6132
  }
6080
6133
  get maximumWidth() {
6081
6134
  var _a;
6082
6135
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6083
- return typeof activePanelMaximumWidth === 'number'
6084
- ? activePanelMaximumWidth
6085
- : Number.MAX_SAFE_INTEGER;
6136
+ if (typeof activePanelMaximumWidth === 'number') {
6137
+ return activePanelMaximumWidth;
6138
+ }
6139
+ return super.__maximumWidth();
6086
6140
  }
6087
6141
  get maximumHeight() {
6088
6142
  var _a;
6089
6143
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6090
- return typeof activePanelMaximumHeight === 'number'
6091
- ? activePanelMaximumHeight
6092
- : Number.MAX_SAFE_INTEGER;
6144
+ if (typeof activePanelMaximumHeight === 'number') {
6145
+ return activePanelMaximumHeight;
6146
+ }
6147
+ return super.__maximumHeight();
6093
6148
  }
6094
6149
  get panels() {
6095
6150
  return this._model.panels;
@@ -6203,12 +6258,14 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
6203
6258
  return this.group.api.getWindow();
6204
6259
  }
6205
6260
  moveTo(options) {
6206
- var _a;
6261
+ var _a, _b;
6207
6262
  this.accessor.moveGroupOrPanel({
6208
6263
  from: { groupId: this._group.id, panelId: this.panel.id },
6209
6264
  to: {
6210
- group: options.group,
6211
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6265
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6266
+ position: options.group
6267
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6268
+ : 'center',
6212
6269
  index: options.index,
6213
6270
  },
6214
6271
  });
@@ -6427,7 +6484,7 @@ const createSvgElementFromPath = (params) => {
6427
6484
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6428
6485
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6429
6486
  svg.setAttributeNS(null, 'focusable', 'false');
6430
- svg.classList.add('dockview-svg');
6487
+ svg.classList.add('dv-svg');
6431
6488
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6432
6489
  path.setAttributeNS(null, 'd', params.path);
6433
6490
  svg.appendChild(path);
@@ -6598,39 +6655,10 @@ class Watermark extends CompositeDisposable {
6598
6655
  constructor() {
6599
6656
  super();
6600
6657
  this._element = document.createElement('div');
6601
- this._element.className = 'watermark';
6602
- const title = document.createElement('div');
6603
- title.className = 'watermark-title';
6604
- const emptySpace = document.createElement('span');
6605
- emptySpace.style.flexGrow = '1';
6606
- const content = document.createElement('div');
6607
- content.className = 'watermark-content';
6608
- this._element.appendChild(title);
6609
- this._element.appendChild(content);
6610
- const actionsContainer = document.createElement('div');
6611
- actionsContainer.className = 'actions-container';
6612
- const closeAnchor = document.createElement('div');
6613
- closeAnchor.className = 'close-action';
6614
- closeAnchor.appendChild(createCloseButton());
6615
- actionsContainer.appendChild(closeAnchor);
6616
- title.appendChild(emptySpace);
6617
- title.appendChild(actionsContainer);
6618
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
6619
- var _a;
6620
- event.preventDefault();
6621
- if (this._group) {
6622
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
6623
- }
6624
- }));
6658
+ this._element.className = 'dv-watermark';
6625
6659
  }
6626
6660
  init(_params) {
6627
- this._api = _params.containerApi;
6628
- this._group = _params.group;
6629
- this.render();
6630
- }
6631
- render() {
6632
- const isOneGroup = !!(this._api && this._api.size <= 1);
6633
- toggleClass(this.element, 'has-actions', isOneGroup);
6661
+ // noop
6634
6662
  }
6635
6663
  }
6636
6664
 
@@ -6667,6 +6695,9 @@ class Overlay extends CompositeDisposable {
6667
6695
  get element() {
6668
6696
  return this._element;
6669
6697
  }
6698
+ get isVisible() {
6699
+ return this._isVisible;
6700
+ }
6670
6701
  constructor(options) {
6671
6702
  super();
6672
6703
  this.options = options;
@@ -6677,6 +6708,7 @@ class Overlay extends CompositeDisposable {
6677
6708
  this.onDidChangeEnd = this._onDidChangeEnd.event;
6678
6709
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
6679
6710
  this._element.className = 'dv-resize-container';
6711
+ this._isVisible = true;
6680
6712
  this.setupResize('top');
6681
6713
  this.setupResize('bottom');
6682
6714
  this.setupResize('left');
@@ -6691,6 +6723,13 @@ class Overlay extends CompositeDisposable {
6691
6723
  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 })));
6692
6724
  arialLevelTracker.push(this._element);
6693
6725
  }
6726
+ setVisible(isVisible) {
6727
+ if (isVisible === this.isVisible) {
6728
+ return;
6729
+ }
6730
+ this._isVisible = isVisible;
6731
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
6732
+ }
6694
6733
  bringToFront() {
6695
6734
  arialLevelTracker.push(this._element);
6696
6735
  }
@@ -7241,7 +7280,6 @@ class PopoutWindow extends CompositeDisposable {
7241
7280
  window: this._window.value,
7242
7281
  });
7243
7282
  this._window.disposable.dispose();
7244
- this._window.value.close();
7245
7283
  this._window = null;
7246
7284
  this._onDidClose.fire();
7247
7285
  }
@@ -7273,7 +7311,9 @@ class PopoutWindow extends CompositeDisposable {
7273
7311
  }
7274
7312
  const disposable = new CompositeDisposable();
7275
7313
  this._window = { value: externalWindow, disposable };
7276
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7314
+ disposable.addDisposables(Disposable.from(() => {
7315
+ externalWindow.close();
7316
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7277
7317
  /**
7278
7318
  * before the main window closes we should close this popup too
7279
7319
  * to be good citizens
@@ -7290,7 +7330,7 @@ class PopoutWindow extends CompositeDisposable {
7290
7330
  id: this.target,
7291
7331
  window: externalWindow,
7292
7332
  });
7293
- return new Promise((resolve) => {
7333
+ return new Promise((resolve, reject) => {
7294
7334
  externalWindow.addEventListener('unload', (e) => {
7295
7335
  // if page fails to load before unloading
7296
7336
  // this.close();
@@ -7299,21 +7339,27 @@ class PopoutWindow extends CompositeDisposable {
7299
7339
  /**
7300
7340
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7301
7341
  */
7302
- const externalDocument = externalWindow.document;
7303
- externalDocument.title = document.title;
7304
- externalDocument.body.appendChild(container);
7305
- addStyles(externalDocument, window.document.styleSheets);
7306
- /**
7307
- * beforeunload must be registered after load for reasons I could not determine
7308
- * otherwise the beforeunload event will not fire when the window is closed
7309
- */
7310
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7342
+ try {
7343
+ const externalDocument = externalWindow.document;
7344
+ externalDocument.title = document.title;
7345
+ externalDocument.body.appendChild(container);
7346
+ addStyles(externalDocument, window.document.styleSheets);
7311
7347
  /**
7312
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7348
+ * beforeunload must be registered after load for reasons I could not determine
7349
+ * otherwise the beforeunload event will not fire when the window is closed
7313
7350
  */
7314
- this.close();
7315
- });
7316
- resolve(container);
7351
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7352
+ /**
7353
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7354
+ */
7355
+ this.close();
7356
+ });
7357
+ resolve(container);
7358
+ }
7359
+ catch (err) {
7360
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7361
+ reject(err);
7362
+ }
7317
7363
  });
7318
7364
  });
7319
7365
  });
@@ -7420,6 +7466,8 @@ class DockviewComponent extends BaseGrid {
7420
7466
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
7421
7467
  this._onDidMovePanel = new Emitter();
7422
7468
  this.onDidMovePanel = this._onDidMovePanel.event;
7469
+ this._onDidMaximizedGroupChange = new Emitter();
7470
+ this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
7423
7471
  this._floatingGroups = [];
7424
7472
  this._popoutGroups = [];
7425
7473
  this._onDidRemoveGroup = new Emitter();
@@ -7446,6 +7494,11 @@ class DockviewComponent extends BaseGrid {
7446
7494
  if (!this._moving) {
7447
7495
  this._onDidActiveGroupChange.fire(event);
7448
7496
  }
7497
+ }), this.onDidMaximizedChange((event) => {
7498
+ this._onDidMaximizedGroupChange.fire({
7499
+ group: event.panel,
7500
+ isMaximized: event.isMaximized,
7501
+ });
7449
7502
  }), Event.any(this.onDidAdd, this.onDidRemove)(() => {
7450
7503
  this.updateWatermark();
7451
7504
  }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
@@ -7544,8 +7597,28 @@ class DockviewComponent extends BaseGrid {
7544
7597
  this._api = new DockviewApi(this);
7545
7598
  this.updateWatermark();
7546
7599
  }
7600
+ setVisible(panel, visible) {
7601
+ switch (panel.api.location.type) {
7602
+ case 'grid':
7603
+ super.setVisible(panel, visible);
7604
+ break;
7605
+ case 'floating': {
7606
+ const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
7607
+ if (item) {
7608
+ item.overlay.setVisible(visible);
7609
+ panel.api._onDidVisibilityChange.fire({
7610
+ isVisible: visible,
7611
+ });
7612
+ }
7613
+ break;
7614
+ }
7615
+ case 'popout':
7616
+ console.warn('dockview: You cannot hide a group that is in a popout window');
7617
+ break;
7618
+ }
7619
+ }
7547
7620
  addPopoutGroup(itemToPopout, options) {
7548
- var _a, _b, _c;
7621
+ var _a, _b, _c, _d, _e;
7549
7622
  if (itemToPopout instanceof DockviewPanel &&
7550
7623
  itemToPopout.group.size === 1) {
7551
7624
  return this.addPopoutGroup(itemToPopout.group, options);
@@ -7566,12 +7639,9 @@ class DockviewComponent extends BaseGrid {
7566
7639
  }
7567
7640
  const box = getBox();
7568
7641
  const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
7569
- if (itemToPopout.api.location.type === 'grid') {
7570
- itemToPopout.api.setVisible(false);
7571
- }
7572
7642
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7573
7643
  theme !== null && theme !== void 0 ? theme : '', {
7574
- url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
7644
+ url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
7575
7645
  left: window.screenX + box.left,
7576
7646
  top: window.screenY + box.top,
7577
7647
  width: box.width,
@@ -7585,13 +7655,12 @@ class DockviewComponent extends BaseGrid {
7585
7655
  return _window
7586
7656
  .open()
7587
7657
  .then((popoutContainer) => {
7588
- var _a;
7589
7658
  if (_window.isDisposed) {
7590
- return;
7659
+ return false;
7591
7660
  }
7592
7661
  if (popoutContainer === null) {
7593
7662
  popoutWindowDisposable.dispose();
7594
- return;
7663
+ return false;
7595
7664
  }
7596
7665
  const gready = document.createElement('div');
7597
7666
  gready.className = 'dv-overlay-render-container';
@@ -7600,30 +7669,45 @@ class DockviewComponent extends BaseGrid {
7600
7669
  ? itemToPopout.group
7601
7670
  : itemToPopout;
7602
7671
  const referenceLocation = itemToPopout.api.location.type;
7603
- const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7604
- group.model.renderContainer = overlayRenderContainer;
7605
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7606
- this._onDidAddGroup.fire(group);
7672
+ /**
7673
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7674
+ * of this case is when being called from the `fromJSON(...)` method
7675
+ */
7676
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7677
+ let group;
7678
+ if (!isGroupAddedToDom) {
7679
+ group = referenceGroup;
7607
7680
  }
7608
- if (itemToPopout instanceof DockviewPanel) {
7609
- this.movingLock(() => {
7610
- const panel = referenceGroup.model.removePanel(itemToPopout);
7611
- group.model.openPanel(panel);
7612
- });
7681
+ else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
7682
+ group = options.overridePopoutGroup;
7613
7683
  }
7614
7684
  else {
7615
- this.movingLock(() => moveGroupWithoutDestroying({
7616
- from: referenceGroup,
7617
- to: group,
7618
- }));
7619
- switch (referenceLocation) {
7620
- case 'grid':
7621
- referenceGroup.api.setVisible(false);
7622
- break;
7623
- case 'floating':
7624
- case 'popout':
7625
- this.removeGroup(referenceGroup);
7626
- break;
7685
+ group = this.createGroup({ id: groupId });
7686
+ this._onDidAddGroup.fire(group);
7687
+ }
7688
+ group.model.renderContainer = overlayRenderContainer;
7689
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7690
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7691
+ if (itemToPopout instanceof DockviewPanel) {
7692
+ this.movingLock(() => {
7693
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7694
+ group.model.openPanel(panel);
7695
+ });
7696
+ }
7697
+ else {
7698
+ this.movingLock(() => moveGroupWithoutDestroying({
7699
+ from: referenceGroup,
7700
+ to: group,
7701
+ }));
7702
+ switch (referenceLocation) {
7703
+ case 'grid':
7704
+ referenceGroup.api.setVisible(false);
7705
+ break;
7706
+ case 'floating':
7707
+ case 'popout':
7708
+ this.removeGroup(referenceGroup);
7709
+ break;
7710
+ }
7627
7711
  }
7628
7712
  }
7629
7713
  popoutContainer.classList.add('dv-dockview');
@@ -7633,7 +7717,12 @@ class DockviewComponent extends BaseGrid {
7633
7717
  group.model.location = {
7634
7718
  type: 'popout',
7635
7719
  getWindow: () => _window.window,
7720
+ popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
7636
7721
  };
7722
+ if (isGroupAddedToDom &&
7723
+ itemToPopout.api.location.type === 'grid') {
7724
+ itemToPopout.api.setVisible(false);
7725
+ }
7637
7726
  this.doSetGroupAndPanelActive(group);
7638
7727
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7639
7728
  var _a;
@@ -7645,10 +7734,13 @@ class DockviewComponent extends BaseGrid {
7645
7734
  (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
7646
7735
  }));
7647
7736
  let returnedGroup;
7737
+ const isValidReferenceGroup = isGroupAddedToDom &&
7738
+ referenceGroup &&
7739
+ this.getPanel(referenceGroup.id);
7648
7740
  const value = {
7649
7741
  window: _window,
7650
7742
  popoutGroup: group,
7651
- referenceGroup: this.getPanel(referenceGroup.id)
7743
+ referenceGroup: isValidReferenceGroup
7652
7744
  ? referenceGroup.id
7653
7745
  : undefined,
7654
7746
  disposable: {
@@ -7665,9 +7757,10 @@ class DockviewComponent extends BaseGrid {
7665
7757
  * window dimensions
7666
7758
  */
7667
7759
  addDisposableWindowListener(_window.window, 'resize', () => {
7668
- group.layout(window.innerWidth, window.innerHeight);
7760
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7669
7761
  }), overlayRenderContainer, Disposable.from(() => {
7670
- if (this.getPanel(referenceGroup.id)) {
7762
+ if (isGroupAddedToDom &&
7763
+ this.getPanel(referenceGroup.id)) {
7671
7764
  this.movingLock(() => moveGroupWithoutDestroying({
7672
7765
  from: group,
7673
7766
  to: referenceGroup,
@@ -7682,21 +7775,27 @@ class DockviewComponent extends BaseGrid {
7682
7775
  }
7683
7776
  }
7684
7777
  else if (this.getPanel(group.id)) {
7685
- const removedGroup = this.doRemoveGroup(group, {
7778
+ this.doRemoveGroup(group, {
7686
7779
  skipDispose: true,
7687
7780
  skipActive: true,
7781
+ skipPopoutReturn: true,
7688
7782
  });
7783
+ const removedGroup = group;
7689
7784
  removedGroup.model.renderContainer =
7690
7785
  this.overlayRenderContainer;
7691
7786
  removedGroup.model.location = { type: 'grid' };
7692
7787
  returnedGroup = removedGroup;
7788
+ this.doAddGroup(removedGroup, [0]);
7789
+ this.doSetGroupAndPanelActive(removedGroup);
7693
7790
  }
7694
7791
  }));
7695
7792
  this._popoutGroups.push(value);
7696
7793
  this.updateWatermark();
7794
+ return true;
7697
7795
  })
7698
7796
  .catch((err) => {
7699
7797
  console.error('dockview: failed to create popout window', err);
7798
+ return false;
7700
7799
  });
7701
7800
  }
7702
7801
  addFloatingGroup(item, options) {
@@ -7800,7 +7899,7 @@ class DockviewComponent extends BaseGrid {
7800
7899
  : (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
7801
7900
  ? undefined
7802
7901
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7803
- const el = group.element.querySelector('.void-container');
7902
+ const el = group.element.querySelector('.dv-void-container');
7804
7903
  if (!el) {
7805
7904
  throw new Error('failed to find drag handle');
7806
7905
  }
@@ -7992,6 +8091,9 @@ class DockviewComponent extends BaseGrid {
7992
8091
  data: group.popoutGroup.toJSON(),
7993
8092
  gridReferenceGroup: group.referenceGroup,
7994
8093
  position: group.window.dimensions(),
8094
+ url: group.popoutGroup.api.location.type === 'popout'
8095
+ ? group.popoutGroup.api.location.popoutUrl
8096
+ : undefined,
7995
8097
  };
7996
8098
  });
7997
8099
  const result = {
@@ -8078,16 +8180,16 @@ class DockviewComponent extends BaseGrid {
8078
8180
  }
8079
8181
  const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
8080
8182
  for (const serializedPopoutGroup of serializedPopoutGroups) {
8081
- const { data, position, gridReferenceGroup } = serializedPopoutGroup;
8183
+ const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
8082
8184
  const group = createGroupFromSerializedState(data);
8083
8185
  this.addPopoutGroup((_c = (gridReferenceGroup
8084
8186
  ? this.getPanel(gridReferenceGroup)
8085
8187
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8086
- skipRemoveGroup: true,
8087
8188
  position: position !== null && position !== void 0 ? position : undefined,
8088
8189
  overridePopoutGroup: gridReferenceGroup
8089
8190
  ? group
8090
8191
  : undefined,
8192
+ popoutUrl: url,
8091
8193
  });
8092
8194
  }
8093
8195
  for (const floatingGroup of this._floatingGroups) {
@@ -8101,6 +8203,7 @@ class DockviewComponent extends BaseGrid {
8101
8203
  }
8102
8204
  }
8103
8205
  catch (err) {
8206
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8104
8207
  /**
8105
8208
  * Takes all the successfully created groups and remove all of their panels.
8106
8209
  */
@@ -8168,11 +8271,13 @@ class DockviewComponent extends BaseGrid {
8168
8271
  width: options.initialWidth,
8169
8272
  height: options.initialHeight,
8170
8273
  };
8274
+ let index;
8171
8275
  if (options.position) {
8172
8276
  if (isPanelOptionsWithPanel(options.position)) {
8173
8277
  const referencePanel = typeof options.position.referencePanel === 'string'
8174
8278
  ? this.getGroupPanel(options.position.referencePanel)
8175
8279
  : options.position.referencePanel;
8280
+ index = options.position.index;
8176
8281
  if (!referencePanel) {
8177
8282
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8178
8283
  }
@@ -8183,6 +8288,7 @@ class DockviewComponent extends BaseGrid {
8183
8288
  typeof options.position.referenceGroup === 'string'
8184
8289
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8185
8290
  : options.position.referenceGroup;
8291
+ index = options.position.index;
8186
8292
  if (!referenceGroup) {
8187
8293
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8188
8294
  }
@@ -8193,6 +8299,7 @@ class DockviewComponent extends BaseGrid {
8193
8299
  group.model.openPanel(panel, {
8194
8300
  skipSetActive: options.inactive,
8195
8301
  skipSetGroupActive: options.inactive,
8302
+ index,
8196
8303
  });
8197
8304
  if (!options.inactive) {
8198
8305
  this.doSetGroupAndPanelActive(group);
@@ -8222,6 +8329,7 @@ class DockviewComponent extends BaseGrid {
8222
8329
  group.model.openPanel(panel, {
8223
8330
  skipSetActive: options.inactive,
8224
8331
  skipSetGroupActive: options.inactive,
8332
+ index,
8225
8333
  });
8226
8334
  }
8227
8335
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8230,6 +8338,7 @@ class DockviewComponent extends BaseGrid {
8230
8338
  referenceGroup.model.openPanel(panel, {
8231
8339
  skipSetActive: options.inactive,
8232
8340
  skipSetGroupActive: options.inactive,
8341
+ index,
8233
8342
  });
8234
8343
  referenceGroup.api.setSize({
8235
8344
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8250,6 +8359,7 @@ class DockviewComponent extends BaseGrid {
8250
8359
  group.model.openPanel(panel, {
8251
8360
  skipSetActive: options.inactive,
8252
8361
  skipSetGroupActive: options.inactive,
8362
+ index,
8253
8363
  });
8254
8364
  if (!options.inactive) {
8255
8365
  this.doSetGroupAndPanelActive(group);
@@ -8268,6 +8378,7 @@ class DockviewComponent extends BaseGrid {
8268
8378
  group.model.openPanel(panel, {
8269
8379
  skipSetActive: options.inactive,
8270
8380
  skipSetGroupActive: options.inactive,
8381
+ index,
8271
8382
  });
8272
8383
  }
8273
8384
  else {
@@ -8278,6 +8389,7 @@ class DockviewComponent extends BaseGrid {
8278
8389
  group.model.openPanel(panel, {
8279
8390
  skipSetActive: options.inactive,
8280
8391
  skipSetGroupActive: options.inactive,
8392
+ index,
8281
8393
  });
8282
8394
  if (!options.inactive) {
8283
8395
  this.doSetGroupAndPanelActive(group);
@@ -8287,7 +8399,6 @@ class DockviewComponent extends BaseGrid {
8287
8399
  }
8288
8400
  removePanel(panel, options = {
8289
8401
  removeEmptyGroup: true,
8290
- skipDispose: false,
8291
8402
  }) {
8292
8403
  const group = panel.group;
8293
8404
  if (!group) {
@@ -8818,6 +8929,31 @@ class DockviewComponent extends BaseGrid {
8818
8929
  }
8819
8930
  }
8820
8931
 
8932
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8933
+ const Component = typeof componentName === 'string'
8934
+ ? components[componentName]
8935
+ : undefined;
8936
+ const FrameworkComponent = typeof componentName === 'string'
8937
+ ? frameworkComponents[componentName]
8938
+ : undefined;
8939
+ if (Component && FrameworkComponent) {
8940
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8941
+ }
8942
+ if (FrameworkComponent) {
8943
+ if (!createFrameworkComponent) {
8944
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8945
+ }
8946
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8947
+ }
8948
+ if (!Component) {
8949
+ if (fallback) {
8950
+ return fallback();
8951
+ }
8952
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8953
+ }
8954
+ return new Component(id, componentName);
8955
+ }
8956
+
8821
8957
  class GridviewComponent extends BaseGrid {
8822
8958
  get orientation() {
8823
8959
  return this.gridview.orientation;
@@ -9366,12 +9502,14 @@ class DefaultHeader extends CompositeDisposable {
9366
9502
  this._expandedIcon = createExpandMoreButton();
9367
9503
  this._collapsedIcon = createChevronRightButton();
9368
9504
  this.disposable = new MutableDisposable();
9369
- this.apiRef = { api: null };
9505
+ this.apiRef = {
9506
+ api: null,
9507
+ };
9370
9508
  this._element = document.createElement('div');
9371
- this.element.className = 'default-header';
9509
+ this.element.className = 'dv-default-header';
9372
9510
  this._content = document.createElement('span');
9373
9511
  this._expander = document.createElement('div');
9374
- this._expander.className = 'dockview-pane-header-icon';
9512
+ this._expander.className = 'dv-pane-header-icon';
9375
9513
  this.element.appendChild(this._expander);
9376
9514
  this.element.appendChild(this._content);
9377
9515
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -10228,22 +10366,6 @@ const DockviewReact = React.forwardRef((props, ref) => {
10228
10366
  disposable.dispose();
10229
10367
  };
10230
10368
  }, [props.onDidDrop]);
10231
- React.useEffect(() => {
10232
- if (!dockviewRef.current) {
10233
- return () => {
10234
- // noop
10235
- };
10236
- }
10237
- const disposable = dockviewRef.current.onUnhandledDragOverEvent((event) => {
10238
- var _a;
10239
- if ((_a = props.showDndOverlay) === null || _a === void 0 ? void 0 : _a.call(props, event)) {
10240
- event.accept();
10241
- }
10242
- });
10243
- return () => {
10244
- disposable.dispose();
10245
- };
10246
- }, [props.showDndOverlay]);
10247
10369
  React.useEffect(() => {
10248
10370
  if (!dockviewRef.current) {
10249
10371
  return () => {
@@ -10638,5 +10760,5 @@ const PaneviewReact = React.forwardRef((props, ref) => {
10638
10760
  });
10639
10761
  PaneviewReact.displayName = 'PaneviewComponent';
10640
10762
 
10641
- export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, LocalSelectionTransfer, Orientation, PROPERTY_KEYS, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, WillShowOverlayLocationEvent, createComponent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, isReactComponent, orthogonal, positionToDirection, toTarget, usePortalsLifecycle };
10763
+ export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, Orientation, PROPERTY_KEYS, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, WillShowOverlayLocationEvent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, isReactComponent, orthogonal, positionToDirection, toTarget, usePortalsLifecycle };
10642
10764
  //# sourceMappingURL=dockview-react.esm.js.map