dockview-react 1.17.2 → 2.0.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.0.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -36,7 +36,7 @@ function styleInject(css, ref) {
36
36
  }
37
37
  }
38
38
 
39
- var css_248z = ".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}";
39
+ 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-empty > .dv-tabs-and-actions-container {\n display: 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-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 width: 100%;\n}\n.dv-watermark.dv-has-actions .dv-watermark-title .dv-actions-container {\n display: none;\n}\n.dv-watermark .dv-watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.dv-watermark .dv-watermark-content {\n flex-grow: 1;\n}\n.dv-watermark .dv-actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.dv-watermark .dv-actions-container .dv-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.dv-watermark .dv-actions-container .dv-close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
40
40
  styleInject(css_248z);
41
41
 
42
42
  class TransferObject {
@@ -357,31 +357,6 @@ class MutableDisposable {
357
357
  }
358
358
  }
359
359
 
360
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
361
- const Component = typeof componentName === 'string'
362
- ? components[componentName]
363
- : undefined;
364
- const FrameworkComponent = typeof componentName === 'string'
365
- ? frameworkComponents[componentName]
366
- : undefined;
367
- if (Component && FrameworkComponent) {
368
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
369
- }
370
- if (FrameworkComponent) {
371
- if (!createFrameworkComponent) {
372
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
373
- }
374
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
375
- }
376
- if (!Component) {
377
- if (fallback) {
378
- return fallback();
379
- }
380
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
381
- }
382
- return new Component(id, componentName);
383
- }
384
-
385
360
  function watchElementResize(element, cb) {
386
361
  const observer = new ResizeObserver((entires) => {
387
362
  /**
@@ -850,10 +825,10 @@ class Splitview {
850
825
  const tmp = this.size;
851
826
  this.size = this.orthogonalSize;
852
827
  this.orthogonalSize = tmp;
853
- removeClasses(this.element, 'horizontal', 'vertical');
828
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
854
829
  this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
855
- ? 'horizontal'
856
- : 'vertical');
830
+ ? 'dv-horizontal'
831
+ : 'dv-vertical');
857
832
  }
858
833
  get minimumSize() {
859
834
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -1031,11 +1006,11 @@ class Splitview {
1031
1006
  }
1032
1007
  style(styles) {
1033
1008
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1034
- removeClasses(this.element, 'separator-border');
1009
+ removeClasses(this.element, 'dv-separator-border');
1035
1010
  this.element.style.removeProperty('--dv-separator-border');
1036
1011
  }
1037
1012
  else {
1038
- addClasses(this.element, 'separator-border');
1013
+ addClasses(this.element, 'dv-separator-border');
1039
1014
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1040
1015
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1041
1016
  }
@@ -1105,7 +1080,7 @@ class Splitview {
1105
1080
  }
1106
1081
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1107
1082
  const container = document.createElement('div');
1108
- container.className = 'view';
1083
+ container.className = 'dv-view';
1109
1084
  container.appendChild(view.element);
1110
1085
  let viewSize;
1111
1086
  if (typeof size === 'number') {
@@ -1137,7 +1112,7 @@ class Splitview {
1137
1112
  if (this.viewItems.length > 1) {
1138
1113
  //add sash
1139
1114
  const sash = document.createElement('div');
1140
- sash.className = 'sash';
1115
+ sash.className = 'dv-sash';
1141
1116
  const onPointerStart = (event) => {
1142
1117
  for (const item of this.viewItems) {
1143
1118
  item.enabled = false;
@@ -1396,7 +1371,8 @@ class Splitview {
1396
1371
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1397
1372
  ? 0
1398
1373
  : viewLeftOffsets[i - 1] +
1399
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1374
+ (visiblePanelsBeforeThisView / sashCount) *
1375
+ marginReducedSize;
1400
1376
  if (i < this.viewItems.length - 1) {
1401
1377
  // calculate sash position
1402
1378
  const newSize = view.visible
@@ -1507,27 +1483,27 @@ class Splitview {
1507
1483
  }
1508
1484
  }
1509
1485
  updateSash(sash, state) {
1510
- toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
1511
- toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
1512
- toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
1513
- toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
1486
+ toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
1487
+ toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
1488
+ toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
1489
+ toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
1514
1490
  }
1515
1491
  createViewContainer() {
1516
1492
  const element = document.createElement('div');
1517
- element.className = 'view-container';
1493
+ element.className = 'dv-view-container';
1518
1494
  return element;
1519
1495
  }
1520
1496
  createSashContainer() {
1521
1497
  const element = document.createElement('div');
1522
- element.className = 'sash-container';
1498
+ element.className = 'dv-sash-container';
1523
1499
  return element;
1524
1500
  }
1525
1501
  createContainer() {
1526
1502
  const element = document.createElement('div');
1527
1503
  const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
1528
- ? 'horizontal'
1529
- : 'vertical';
1530
- element.className = `split-view-container ${orientationClassname}`;
1504
+ ? 'dv-horizontal'
1505
+ : 'dv-vertical';
1506
+ element.className = `dv-split-view-container ${orientationClassname}`;
1531
1507
  return element;
1532
1508
  }
1533
1509
  dispose() {
@@ -1578,7 +1554,7 @@ class Paneview extends CompositeDisposable {
1578
1554
  this.onDidChange = this._onDidChange.event;
1579
1555
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
1580
1556
  this.element = document.createElement('div');
1581
- this.element.className = 'pane-container';
1557
+ this.element.className = 'dv-pane-container';
1582
1558
  container.appendChild(this.element);
1583
1559
  this.splitview = new Splitview(this.element, {
1584
1560
  orientation: this._orientation,
@@ -1670,10 +1646,10 @@ class Paneview extends CompositeDisposable {
1670
1646
  clearTimeout(this.animationTimer);
1671
1647
  this.animationTimer = undefined;
1672
1648
  }
1673
- addClasses(this.element, 'animated');
1649
+ addClasses(this.element, 'dv-animated');
1674
1650
  this.animationTimer = setTimeout(() => {
1675
1651
  this.animationTimer = undefined;
1676
- removeClasses(this.element, 'animated');
1652
+ removeClasses(this.element, 'dv-animated');
1677
1653
  }, 200);
1678
1654
  }
1679
1655
  dispose() {
@@ -1898,7 +1874,7 @@ class BranchNode extends CompositeDisposable {
1898
1874
  this._orthogonalSize = orthogonalSize;
1899
1875
  this._size = size;
1900
1876
  this.element = document.createElement('div');
1901
- this.element.className = 'branch-node';
1877
+ this.element.className = 'dv-branch-node';
1902
1878
  if (!childDescriptors) {
1903
1879
  this.splitview = new Splitview(this.element, {
1904
1880
  orientation: this.orientation,
@@ -2109,7 +2085,7 @@ function getGridLocation(element) {
2109
2085
  if (!parentElement) {
2110
2086
  throw new Error('Invalid grid element');
2111
2087
  }
2112
- if (/\bgrid-view\b/.test(parentElement.className)) {
2088
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2113
2089
  return [];
2114
2090
  }
2115
2091
  const index = indexInParent(parentElement);
@@ -2457,7 +2433,7 @@ class Gridview {
2457
2433
  this._onDidMaximizedNodeChange = new Emitter();
2458
2434
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2459
2435
  this.element = document.createElement('div');
2460
- this.element.className = 'grid-view';
2436
+ this.element.className = 'dv-grid-view';
2461
2437
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2462
2438
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2463
2439
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -3679,7 +3655,7 @@ class DragHandler extends CompositeDisposable {
3679
3655
  * dnd logic. You can see the code at
3680
3656
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3681
3657
  */
3682
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3658
+ event.dataTransfer.setData('text/plain', '');
3683
3659
  }
3684
3660
  }
3685
3661
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3853,12 +3829,12 @@ class Droptarget extends CompositeDisposable {
3853
3829
  this.markAsUsed(e);
3854
3830
  if (!this.targetElement) {
3855
3831
  this.targetElement = document.createElement('div');
3856
- this.targetElement.className = 'drop-target-dropzone';
3832
+ this.targetElement.className = 'dv-drop-target-dropzone';
3857
3833
  this.overlayElement = document.createElement('div');
3858
- this.overlayElement.className = 'drop-target-selection';
3834
+ this.overlayElement.className = 'dv-drop-target-selection';
3859
3835
  this._state = 'center';
3860
3836
  this.targetElement.appendChild(this.overlayElement);
3861
- this.element.classList.add('drop-target');
3837
+ this.element.classList.add('dv-drop-target');
3862
3838
  this.element.append(this.targetElement);
3863
3839
  }
3864
3840
  this.toggleClasses(quadrant, width, height);
@@ -3996,7 +3972,7 @@ class Droptarget extends CompositeDisposable {
3996
3972
  this.element.removeChild(this.targetElement);
3997
3973
  this.targetElement = undefined;
3998
3974
  this.overlayElement = undefined;
3999
- this.element.classList.remove('drop-target');
3975
+ this.element.classList.remove('dv-drop-target');
4000
3976
  }
4001
3977
  }
4002
3978
  }
@@ -4333,7 +4309,7 @@ class PaneviewPanel extends BasePanelView {
4333
4309
  this._headerVisible = isHeaderVisible;
4334
4310
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4335
4311
  this._orientation = orientation;
4336
- this.element.classList.add('pane');
4312
+ this.element.classList.add('dv-pane');
4337
4313
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4338
4314
  const { isVisible } = event;
4339
4315
  const { accessor } = this._params;
@@ -4430,14 +4406,14 @@ class PaneviewPanel extends BasePanelView {
4430
4406
  renderOnce() {
4431
4407
  this.header = document.createElement('div');
4432
4408
  this.header.tabIndex = 0;
4433
- this.header.className = 'pane-header';
4409
+ this.header.className = 'dv-pane-header';
4434
4410
  this.header.style.height = `${this.headerSize}px`;
4435
4411
  this.header.style.lineHeight = `${this.headerSize}px`;
4436
4412
  this.header.style.minHeight = `${this.headerSize}px`;
4437
4413
  this.header.style.maxHeight = `${this.headerSize}px`;
4438
4414
  this.element.appendChild(this.header);
4439
4415
  this.body = document.createElement('div');
4440
- this.body.className = 'pane-body';
4416
+ this.body.className = 'dv-pane-body';
4441
4417
  this.element.appendChild(this.body);
4442
4418
  }
4443
4419
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4558,7 +4534,7 @@ class ContentContainer extends CompositeDisposable {
4558
4534
  this._onDidBlur = new Emitter();
4559
4535
  this.onDidBlur = this._onDidBlur.event;
4560
4536
  this._element = document.createElement('div');
4561
- this._element.className = 'content-container';
4537
+ this._element.className = 'dv-content-container';
4562
4538
  this._element.tabIndex = -1;
4563
4539
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4564
4540
  this.dropTarget = new Droptarget(this.element, {
@@ -4631,6 +4607,8 @@ class ContentContainer extends CompositeDisposable {
4631
4607
  referenceContainer: this,
4632
4608
  });
4633
4609
  break;
4610
+ default:
4611
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4634
4612
  }
4635
4613
  if (doRender) {
4636
4614
  const focusTracker = trackFocus(container);
@@ -4697,10 +4675,10 @@ class Tab extends CompositeDisposable {
4697
4675
  this._onDragStart = new Emitter();
4698
4676
  this.onDragStart = this._onDragStart.event;
4699
4677
  this._element = document.createElement('div');
4700
- this._element.className = 'tab';
4678
+ this._element.className = 'dv-tab';
4701
4679
  this._element.tabIndex = 0;
4702
4680
  this._element.draggable = true;
4703
- toggleClass(this.element, 'inactive-tab', true);
4681
+ toggleClass(this.element, 'dv-inactive-tab', true);
4704
4682
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4705
4683
  this.dropTarget = new Droptarget(this._element, {
4706
4684
  acceptedTargetZones: ['center'],
@@ -4733,8 +4711,8 @@ class Tab extends CompositeDisposable {
4733
4711
  }), this.dropTarget);
4734
4712
  }
4735
4713
  setActive(isActive) {
4736
- toggleClass(this.element, 'active-tab', isActive);
4737
- toggleClass(this.element, 'inactive-tab', !isActive);
4714
+ toggleClass(this.element, 'dv-active-tab', isActive);
4715
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4738
4716
  }
4739
4717
  setContent(part) {
4740
4718
  if (this.content) {
@@ -4822,7 +4800,7 @@ class VoidContainer extends CompositeDisposable {
4822
4800
  this._onDragStart = new Emitter();
4823
4801
  this.onDragStart = this._onDragStart.event;
4824
4802
  this._element = document.createElement('div');
4825
- this._element.className = 'void-container';
4803
+ this._element.className = 'dv-void-container';
4826
4804
  this._element.tabIndex = 0;
4827
4805
  this._element.draggable = true;
4828
4806
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
@@ -4942,16 +4920,16 @@ class TabsContainer extends CompositeDisposable {
4942
4920
  this._onWillShowOverlay = new Emitter();
4943
4921
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4944
4922
  this._element = document.createElement('div');
4945
- this._element.className = 'tabs-and-actions-container';
4923
+ this._element.className = 'dv-tabs-and-actions-container';
4946
4924
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4947
4925
  this.rightActionsContainer = document.createElement('div');
4948
- this.rightActionsContainer.className = 'right-actions-container';
4926
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4949
4927
  this.leftActionsContainer = document.createElement('div');
4950
- this.leftActionsContainer.className = 'left-actions-container';
4928
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4951
4929
  this.preActionsContainer = document.createElement('div');
4952
- this.preActionsContainer.className = 'pre-actions-container';
4930
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4953
4931
  this.tabContainer = document.createElement('div');
4954
- this.tabContainer.className = 'tabs-container';
4932
+ this.tabContainer.className = 'dv-tabs-container';
4955
4933
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4956
4934
  this._element.appendChild(this.preActionsContainer);
4957
4935
  this._element.appendChild(this.tabContainer);
@@ -5040,14 +5018,10 @@ class TabsContainer extends CompositeDisposable {
5040
5018
  });
5041
5019
  }
5042
5020
  openPanel(panel, index = this.tabs.length) {
5043
- var _a;
5044
5021
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5045
5022
  return;
5046
5023
  }
5047
5024
  const tab = new Tab(panel, this.accessor, this.group);
5048
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5049
- throw new Error('invalid header component');
5050
- }
5051
5025
  tab.setContent(panel.view.tab);
5052
5026
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5053
5027
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5237,7 +5211,7 @@ class WillShowOverlayLocationEvent {
5237
5211
  }
5238
5212
  class DockviewGroupPanelModel extends CompositeDisposable {
5239
5213
  get element() {
5240
- throw new Error('not supported');
5214
+ throw new Error('dockview: not supported');
5241
5215
  }
5242
5216
  get activePanel() {
5243
5217
  return this._activePanel;
@@ -5247,7 +5221,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5247
5221
  }
5248
5222
  set locked(value) {
5249
5223
  this._locked = value;
5250
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5224
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5251
5225
  }
5252
5226
  get isActive() {
5253
5227
  return this._isGroupActive;
@@ -5318,6 +5292,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5318
5292
  this._locked = false;
5319
5293
  this._location = { type: 'grid' };
5320
5294
  this.mostRecentlyUsed = [];
5295
+ this._overwriteRenderContainer = null;
5321
5296
  this._onDidChange = new Emitter();
5322
5297
  this.onDidChange = this._onDidChange.event;
5323
5298
  this._width = 0;
@@ -5348,8 +5323,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5348
5323
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5349
5324
  this._onUnhandledDragOverEvent = new Emitter();
5350
5325
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5351
- this._overwriteRenderContainer = null;
5352
- toggleClass(this.container, 'groupview', true);
5326
+ toggleClass(this.container, 'dv-groupview', true);
5353
5327
  this._api = new DockviewApi(this.accessor);
5354
5328
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5355
5329
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5594,8 +5568,8 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5594
5568
  return;
5595
5569
  }
5596
5570
  this._isGroupActive = isGroupActive;
5597
- toggleClass(this.container, 'active-group', isGroupActive);
5598
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5571
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5572
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5599
5573
  this.tabsContainer.setActive(this.isActive);
5600
5574
  if (!this._activePanel && this.panels.length > 0) {
5601
5575
  this.doSetActivePanel(this.panels[0]);
@@ -5687,7 +5661,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5687
5661
  }
5688
5662
  updateContainer() {
5689
5663
  var _a, _b;
5690
- toggleClass(this.container, 'empty', this.isEmpty);
5664
+ toggleClass(this.container, 'dv-empty', this.isEmpty);
5691
5665
  this.panels.forEach((panel) => panel.runEvents());
5692
5666
  if (this.isEmpty && !this.watermark) {
5693
5667
  const watermark = this.accessor.createWatermarkComponent();
@@ -5828,6 +5802,34 @@ class GridviewPanel extends BasePanelView {
5828
5802
  return this._snap;
5829
5803
  }
5830
5804
  get minimumWidth() {
5805
+ /**
5806
+ * defer to protected function to allow subclasses to override easily.
5807
+ * see https://github.com/microsoft/TypeScript/issues/338
5808
+ */
5809
+ return this.__minimumWidth();
5810
+ }
5811
+ get minimumHeight() {
5812
+ /**
5813
+ * defer to protected function to allow subclasses to override easily.
5814
+ * see https://github.com/microsoft/TypeScript/issues/338
5815
+ */
5816
+ return this.__minimumHeight();
5817
+ }
5818
+ get maximumHeight() {
5819
+ /**
5820
+ * defer to protected function to allow subclasses to override easily.
5821
+ * see https://github.com/microsoft/TypeScript/issues/338
5822
+ */
5823
+ return this.__maximumHeight();
5824
+ }
5825
+ get maximumWidth() {
5826
+ /**
5827
+ * defer to protected function to allow subclasses to override easily.
5828
+ * see https://github.com/microsoft/TypeScript/issues/338
5829
+ */
5830
+ return this.__maximumWidth();
5831
+ }
5832
+ __minimumWidth() {
5831
5833
  const width = typeof this._minimumWidth === 'function'
5832
5834
  ? this._minimumWidth()
5833
5835
  : this._minimumWidth;
@@ -5837,7 +5839,17 @@ class GridviewPanel extends BasePanelView {
5837
5839
  }
5838
5840
  return width;
5839
5841
  }
5840
- get minimumHeight() {
5842
+ __maximumWidth() {
5843
+ const width = typeof this._maximumWidth === 'function'
5844
+ ? this._maximumWidth()
5845
+ : this._maximumWidth;
5846
+ if (width !== this._evaluatedMaximumWidth) {
5847
+ this._evaluatedMaximumWidth = width;
5848
+ this.updateConstraints();
5849
+ }
5850
+ return width;
5851
+ }
5852
+ __minimumHeight() {
5841
5853
  const height = typeof this._minimumHeight === 'function'
5842
5854
  ? this._minimumHeight()
5843
5855
  : this._minimumHeight;
@@ -5847,7 +5859,7 @@ class GridviewPanel extends BasePanelView {
5847
5859
  }
5848
5860
  return height;
5849
5861
  }
5850
- get maximumHeight() {
5862
+ __maximumHeight() {
5851
5863
  const height = typeof this._maximumHeight === 'function'
5852
5864
  ? this._maximumHeight()
5853
5865
  : this._maximumHeight;
@@ -5857,16 +5869,6 @@ class GridviewPanel extends BasePanelView {
5857
5869
  }
5858
5870
  return height;
5859
5871
  }
5860
- get maximumWidth() {
5861
- const width = typeof this._maximumWidth === 'function'
5862
- ? this._maximumWidth()
5863
- : this._maximumWidth;
5864
- if (width !== this._evaluatedMaximumWidth) {
5865
- this._evaluatedMaximumWidth = width;
5866
- this.updateConstraints();
5867
- }
5868
- return width;
5869
- }
5870
5872
  get isActive() {
5871
5873
  return this.api.isActive;
5872
5874
  }
@@ -6017,6 +6019,7 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
6017
6019
  position: options.group
6018
6020
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
6019
6021
  : 'center',
6022
+ index: options.index,
6020
6023
  },
6021
6024
  });
6022
6025
  }
@@ -6068,30 +6071,34 @@ class DockviewGroupPanel extends GridviewPanel {
6068
6071
  get minimumWidth() {
6069
6072
  var _a;
6070
6073
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6071
- return typeof activePanelMinimumWidth === 'number'
6072
- ? activePanelMinimumWidth
6073
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6074
+ if (typeof activePanelMinimumWidth === 'number') {
6075
+ return activePanelMinimumWidth;
6076
+ }
6077
+ return super.__minimumWidth();
6074
6078
  }
6075
6079
  get minimumHeight() {
6076
6080
  var _a;
6077
6081
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6078
- return typeof activePanelMinimumHeight === 'number'
6079
- ? activePanelMinimumHeight
6080
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6082
+ if (typeof activePanelMinimumHeight === 'number') {
6083
+ return activePanelMinimumHeight;
6084
+ }
6085
+ return super.__minimumHeight();
6081
6086
  }
6082
6087
  get maximumWidth() {
6083
6088
  var _a;
6084
6089
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6085
- return typeof activePanelMaximumWidth === 'number'
6086
- ? activePanelMaximumWidth
6087
- : Number.MAX_SAFE_INTEGER;
6090
+ if (typeof activePanelMaximumWidth === 'number') {
6091
+ return activePanelMaximumWidth;
6092
+ }
6093
+ return super.__maximumWidth();
6088
6094
  }
6089
6095
  get maximumHeight() {
6090
6096
  var _a;
6091
6097
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6092
- return typeof activePanelMaximumHeight === 'number'
6093
- ? activePanelMaximumHeight
6094
- : Number.MAX_SAFE_INTEGER;
6098
+ if (typeof activePanelMaximumHeight === 'number') {
6099
+ return activePanelMaximumHeight;
6100
+ }
6101
+ return super.__maximumHeight();
6095
6102
  }
6096
6103
  get panels() {
6097
6104
  return this._model.panels;
@@ -6205,12 +6212,14 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
6205
6212
  return this.group.api.getWindow();
6206
6213
  }
6207
6214
  moveTo(options) {
6208
- var _a;
6215
+ var _a, _b;
6209
6216
  this.accessor.moveGroupOrPanel({
6210
6217
  from: { groupId: this._group.id, panelId: this.panel.id },
6211
6218
  to: {
6212
- group: options.group,
6213
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6219
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6220
+ position: options.group
6221
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6222
+ : 'center',
6214
6223
  index: options.index,
6215
6224
  },
6216
6225
  });
@@ -6429,7 +6438,7 @@ const createSvgElementFromPath = (params) => {
6429
6438
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6430
6439
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6431
6440
  svg.setAttributeNS(null, 'focusable', 'false');
6432
- svg.classList.add('dockview-svg');
6441
+ svg.classList.add('dv-svg');
6433
6442
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6434
6443
  path.setAttributeNS(null, 'd', params.path);
6435
6444
  svg.appendChild(path);
@@ -6600,19 +6609,19 @@ class Watermark extends CompositeDisposable {
6600
6609
  constructor() {
6601
6610
  super();
6602
6611
  this._element = document.createElement('div');
6603
- this._element.className = 'watermark';
6612
+ this._element.className = 'dv-watermark';
6604
6613
  const title = document.createElement('div');
6605
- title.className = 'watermark-title';
6614
+ title.className = 'dv-watermark-title';
6606
6615
  const emptySpace = document.createElement('span');
6607
6616
  emptySpace.style.flexGrow = '1';
6608
6617
  const content = document.createElement('div');
6609
- content.className = 'watermark-content';
6618
+ content.className = 'dv-watermark-content';
6610
6619
  this._element.appendChild(title);
6611
6620
  this._element.appendChild(content);
6612
6621
  const actionsContainer = document.createElement('div');
6613
- actionsContainer.className = 'actions-container';
6622
+ actionsContainer.className = 'dv-actions-container';
6614
6623
  const closeAnchor = document.createElement('div');
6615
- closeAnchor.className = 'close-action';
6624
+ closeAnchor.className = 'dv-close-action';
6616
6625
  closeAnchor.appendChild(createCloseButton());
6617
6626
  actionsContainer.appendChild(closeAnchor);
6618
6627
  title.appendChild(emptySpace);
@@ -6632,7 +6641,7 @@ class Watermark extends CompositeDisposable {
6632
6641
  }
6633
6642
  render() {
6634
6643
  const isOneGroup = !!(this._api && this._api.size <= 1);
6635
- toggleClass(this.element, 'has-actions', isOneGroup);
6644
+ toggleClass(this.element, 'dv-has-actions', isOneGroup);
6636
6645
  }
6637
6646
  }
6638
6647
 
@@ -7243,7 +7252,6 @@ class PopoutWindow extends CompositeDisposable {
7243
7252
  window: this._window.value,
7244
7253
  });
7245
7254
  this._window.disposable.dispose();
7246
- this._window.value.close();
7247
7255
  this._window = null;
7248
7256
  this._onDidClose.fire();
7249
7257
  }
@@ -7275,7 +7283,9 @@ class PopoutWindow extends CompositeDisposable {
7275
7283
  }
7276
7284
  const disposable = new CompositeDisposable();
7277
7285
  this._window = { value: externalWindow, disposable };
7278
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7286
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7287
+ externalWindow.close();
7288
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7279
7289
  /**
7280
7290
  * before the main window closes we should close this popup too
7281
7291
  * to be good citizens
@@ -7292,7 +7302,7 @@ class PopoutWindow extends CompositeDisposable {
7292
7302
  id: this.target,
7293
7303
  window: externalWindow,
7294
7304
  });
7295
- return new Promise((resolve) => {
7305
+ return new Promise((resolve, reject) => {
7296
7306
  externalWindow.addEventListener('unload', (e) => {
7297
7307
  // if page fails to load before unloading
7298
7308
  // this.close();
@@ -7301,21 +7311,27 @@ class PopoutWindow extends CompositeDisposable {
7301
7311
  /**
7302
7312
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7303
7313
  */
7304
- const externalDocument = externalWindow.document;
7305
- externalDocument.title = document.title;
7306
- externalDocument.body.appendChild(container);
7307
- addStyles(externalDocument, window.document.styleSheets);
7308
- /**
7309
- * beforeunload must be registered after load for reasons I could not determine
7310
- * otherwise the beforeunload event will not fire when the window is closed
7311
- */
7312
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7314
+ try {
7315
+ const externalDocument = externalWindow.document;
7316
+ externalDocument.title = document.title;
7317
+ externalDocument.body.appendChild(container);
7318
+ addStyles(externalDocument, window.document.styleSheets);
7313
7319
  /**
7314
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7320
+ * beforeunload must be registered after load for reasons I could not determine
7321
+ * otherwise the beforeunload event will not fire when the window is closed
7315
7322
  */
7316
- this.close();
7317
- });
7318
- resolve(container);
7323
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7324
+ /**
7325
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7326
+ */
7327
+ this.close();
7328
+ });
7329
+ resolve(container);
7330
+ }
7331
+ catch (err) {
7332
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7333
+ reject(err);
7334
+ }
7319
7335
  });
7320
7336
  });
7321
7337
  });
@@ -7568,9 +7584,6 @@ class DockviewComponent extends BaseGrid {
7568
7584
  }
7569
7585
  const box = getBox();
7570
7586
  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();
7571
- if (itemToPopout.api.location.type === 'grid') {
7572
- itemToPopout.api.setVisible(false);
7573
- }
7574
7587
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7575
7588
  theme !== null && theme !== void 0 ? theme : '', {
7576
7589
  url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
@@ -7589,11 +7602,11 @@ class DockviewComponent extends BaseGrid {
7589
7602
  .then((popoutContainer) => {
7590
7603
  var _a;
7591
7604
  if (_window.isDisposed) {
7592
- return;
7605
+ return false;
7593
7606
  }
7594
7607
  if (popoutContainer === null) {
7595
7608
  popoutWindowDisposable.dispose();
7596
- return;
7609
+ return false;
7597
7610
  }
7598
7611
  const gready = document.createElement('div');
7599
7612
  gready.className = 'dv-overlay-render-container';
@@ -7602,30 +7615,40 @@ class DockviewComponent extends BaseGrid {
7602
7615
  ? itemToPopout.group
7603
7616
  : itemToPopout;
7604
7617
  const referenceLocation = itemToPopout.api.location.type;
7605
- const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7618
+ /**
7619
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7620
+ * of this case is when being called from the `fromJSON(...)` method
7621
+ */
7622
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7623
+ const group = !isGroupAddedToDom
7624
+ ? referenceGroup
7625
+ : (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7606
7626
  group.model.renderContainer = overlayRenderContainer;
7607
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7627
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7628
+ if (!this._groups.has(group.api.id)) {
7608
7629
  this._onDidAddGroup.fire(group);
7609
7630
  }
7610
- if (itemToPopout instanceof DockviewPanel) {
7611
- this.movingLock(() => {
7612
- const panel = referenceGroup.model.removePanel(itemToPopout);
7613
- group.model.openPanel(panel);
7614
- });
7615
- }
7616
- else {
7617
- this.movingLock(() => moveGroupWithoutDestroying({
7618
- from: referenceGroup,
7619
- to: group,
7620
- }));
7621
- switch (referenceLocation) {
7622
- case 'grid':
7623
- referenceGroup.api.setVisible(false);
7624
- break;
7625
- case 'floating':
7626
- case 'popout':
7627
- this.removeGroup(referenceGroup);
7628
- break;
7631
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7632
+ if (itemToPopout instanceof DockviewPanel) {
7633
+ this.movingLock(() => {
7634
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7635
+ group.model.openPanel(panel);
7636
+ });
7637
+ }
7638
+ else {
7639
+ this.movingLock(() => moveGroupWithoutDestroying({
7640
+ from: referenceGroup,
7641
+ to: group,
7642
+ }));
7643
+ switch (referenceLocation) {
7644
+ case 'grid':
7645
+ referenceGroup.api.setVisible(false);
7646
+ break;
7647
+ case 'floating':
7648
+ case 'popout':
7649
+ this.removeGroup(referenceGroup);
7650
+ break;
7651
+ }
7629
7652
  }
7630
7653
  }
7631
7654
  popoutContainer.classList.add('dv-dockview');
@@ -7636,6 +7659,10 @@ class DockviewComponent extends BaseGrid {
7636
7659
  type: 'popout',
7637
7660
  getWindow: () => _window.window,
7638
7661
  };
7662
+ if (isGroupAddedToDom &&
7663
+ itemToPopout.api.location.type === 'grid') {
7664
+ itemToPopout.api.setVisible(false);
7665
+ }
7639
7666
  this.doSetGroupAndPanelActive(group);
7640
7667
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7641
7668
  var _a;
@@ -7650,9 +7677,13 @@ class DockviewComponent extends BaseGrid {
7650
7677
  const value = {
7651
7678
  window: _window,
7652
7679
  popoutGroup: group,
7653
- referenceGroup: this.getPanel(referenceGroup.id)
7654
- ? referenceGroup.id
7655
- : undefined,
7680
+ referenceGroup: !isGroupAddedToDom
7681
+ ? undefined
7682
+ : referenceGroup
7683
+ ? this.getPanel(referenceGroup.id)
7684
+ ? referenceGroup.id
7685
+ : undefined
7686
+ : undefined,
7656
7687
  disposable: {
7657
7688
  dispose: () => {
7658
7689
  popoutWindowDisposable.dispose();
@@ -7667,9 +7698,10 @@ class DockviewComponent extends BaseGrid {
7667
7698
  * window dimensions
7668
7699
  */
7669
7700
  addDisposableWindowListener(_window.window, 'resize', () => {
7670
- group.layout(window.innerWidth, window.innerHeight);
7701
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7671
7702
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7672
- if (this.getPanel(referenceGroup.id)) {
7703
+ if (isGroupAddedToDom &&
7704
+ this.getPanel(referenceGroup.id)) {
7673
7705
  this.movingLock(() => moveGroupWithoutDestroying({
7674
7706
  from: group,
7675
7707
  to: referenceGroup,
@@ -7684,21 +7716,27 @@ class DockviewComponent extends BaseGrid {
7684
7716
  }
7685
7717
  }
7686
7718
  else if (this.getPanel(group.id)) {
7687
- const removedGroup = this.doRemoveGroup(group, {
7719
+ this.doRemoveGroup(group, {
7688
7720
  skipDispose: true,
7689
7721
  skipActive: true,
7722
+ skipPopoutReturn: true,
7690
7723
  });
7724
+ const removedGroup = group;
7691
7725
  removedGroup.model.renderContainer =
7692
7726
  this.overlayRenderContainer;
7693
7727
  removedGroup.model.location = { type: 'grid' };
7694
7728
  returnedGroup = removedGroup;
7729
+ this.doAddGroup(removedGroup, [0]);
7730
+ this.doSetGroupAndPanelActive(removedGroup);
7695
7731
  }
7696
7732
  }));
7697
7733
  this._popoutGroups.push(value);
7698
7734
  this.updateWatermark();
7735
+ return true;
7699
7736
  })
7700
7737
  .catch((err) => {
7701
7738
  console.error('dockview: failed to create popout window', err);
7739
+ return false;
7702
7740
  });
7703
7741
  }
7704
7742
  addFloatingGroup(item, options) {
@@ -7802,7 +7840,7 @@ class DockviewComponent extends BaseGrid {
7802
7840
  : (_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'
7803
7841
  ? undefined
7804
7842
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7805
- const el = group.element.querySelector('.void-container');
7843
+ const el = group.element.querySelector('.dv-void-container');
7806
7844
  if (!el) {
7807
7845
  throw new Error('failed to find drag handle');
7808
7846
  }
@@ -8085,7 +8123,6 @@ class DockviewComponent extends BaseGrid {
8085
8123
  this.addPopoutGroup((_c = (gridReferenceGroup
8086
8124
  ? this.getPanel(gridReferenceGroup)
8087
8125
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8088
- skipRemoveGroup: true,
8089
8126
  position: position !== null && position !== void 0 ? position : undefined,
8090
8127
  overridePopoutGroup: gridReferenceGroup
8091
8128
  ? group
@@ -8103,6 +8140,7 @@ class DockviewComponent extends BaseGrid {
8103
8140
  }
8104
8141
  }
8105
8142
  catch (err) {
8143
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8106
8144
  /**
8107
8145
  * Takes all the successfully created groups and remove all of their panels.
8108
8146
  */
@@ -8170,11 +8208,13 @@ class DockviewComponent extends BaseGrid {
8170
8208
  width: options.initialWidth,
8171
8209
  height: options.initialHeight,
8172
8210
  };
8211
+ let index;
8173
8212
  if (options.position) {
8174
8213
  if (isPanelOptionsWithPanel(options.position)) {
8175
8214
  const referencePanel = typeof options.position.referencePanel === 'string'
8176
8215
  ? this.getGroupPanel(options.position.referencePanel)
8177
8216
  : options.position.referencePanel;
8217
+ index = options.position.index;
8178
8218
  if (!referencePanel) {
8179
8219
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8180
8220
  }
@@ -8185,6 +8225,7 @@ class DockviewComponent extends BaseGrid {
8185
8225
  typeof options.position.referenceGroup === 'string'
8186
8226
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8187
8227
  : options.position.referenceGroup;
8228
+ index = options.position.index;
8188
8229
  if (!referenceGroup) {
8189
8230
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8190
8231
  }
@@ -8195,6 +8236,7 @@ class DockviewComponent extends BaseGrid {
8195
8236
  group.model.openPanel(panel, {
8196
8237
  skipSetActive: options.inactive,
8197
8238
  skipSetGroupActive: options.inactive,
8239
+ index,
8198
8240
  });
8199
8241
  if (!options.inactive) {
8200
8242
  this.doSetGroupAndPanelActive(group);
@@ -8224,6 +8266,7 @@ class DockviewComponent extends BaseGrid {
8224
8266
  group.model.openPanel(panel, {
8225
8267
  skipSetActive: options.inactive,
8226
8268
  skipSetGroupActive: options.inactive,
8269
+ index,
8227
8270
  });
8228
8271
  }
8229
8272
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8232,6 +8275,7 @@ class DockviewComponent extends BaseGrid {
8232
8275
  referenceGroup.model.openPanel(panel, {
8233
8276
  skipSetActive: options.inactive,
8234
8277
  skipSetGroupActive: options.inactive,
8278
+ index,
8235
8279
  });
8236
8280
  referenceGroup.api.setSize({
8237
8281
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8252,6 +8296,7 @@ class DockviewComponent extends BaseGrid {
8252
8296
  group.model.openPanel(panel, {
8253
8297
  skipSetActive: options.inactive,
8254
8298
  skipSetGroupActive: options.inactive,
8299
+ index,
8255
8300
  });
8256
8301
  if (!options.inactive) {
8257
8302
  this.doSetGroupAndPanelActive(group);
@@ -8270,6 +8315,7 @@ class DockviewComponent extends BaseGrid {
8270
8315
  group.model.openPanel(panel, {
8271
8316
  skipSetActive: options.inactive,
8272
8317
  skipSetGroupActive: options.inactive,
8318
+ index,
8273
8319
  });
8274
8320
  }
8275
8321
  else {
@@ -8280,6 +8326,7 @@ class DockviewComponent extends BaseGrid {
8280
8326
  group.model.openPanel(panel, {
8281
8327
  skipSetActive: options.inactive,
8282
8328
  skipSetGroupActive: options.inactive,
8329
+ index,
8283
8330
  });
8284
8331
  if (!options.inactive) {
8285
8332
  this.doSetGroupAndPanelActive(group);
@@ -8820,6 +8867,31 @@ class DockviewComponent extends BaseGrid {
8820
8867
  }
8821
8868
  }
8822
8869
 
8870
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8871
+ const Component = typeof componentName === 'string'
8872
+ ? components[componentName]
8873
+ : undefined;
8874
+ const FrameworkComponent = typeof componentName === 'string'
8875
+ ? frameworkComponents[componentName]
8876
+ : undefined;
8877
+ if (Component && FrameworkComponent) {
8878
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8879
+ }
8880
+ if (FrameworkComponent) {
8881
+ if (!createFrameworkComponent) {
8882
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8883
+ }
8884
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8885
+ }
8886
+ if (!Component) {
8887
+ if (fallback) {
8888
+ return fallback();
8889
+ }
8890
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8891
+ }
8892
+ return new Component(id, componentName);
8893
+ }
8894
+
8823
8895
  class GridviewComponent extends BaseGrid {
8824
8896
  get orientation() {
8825
8897
  return this.gridview.orientation;
@@ -9368,12 +9440,14 @@ class DefaultHeader extends CompositeDisposable {
9368
9440
  this._expandedIcon = createExpandMoreButton();
9369
9441
  this._collapsedIcon = createChevronRightButton();
9370
9442
  this.disposable = new MutableDisposable();
9371
- this.apiRef = { api: null };
9443
+ this.apiRef = {
9444
+ api: null,
9445
+ };
9372
9446
  this._element = document.createElement('div');
9373
- this.element.className = 'default-header';
9447
+ this.element.className = 'dv-default-header';
9374
9448
  this._content = document.createElement('span');
9375
9449
  this._expander = document.createElement('div');
9376
- this._expander.className = 'dockview-pane-header-icon';
9450
+ this._expander.className = 'dv-pane-header-icon';
9377
9451
  this.element.appendChild(this._expander);
9378
9452
  this.element.appendChild(this._content);
9379
9453
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -10230,22 +10304,6 @@ const DockviewReact = React.forwardRef((props, ref) => {
10230
10304
  disposable.dispose();
10231
10305
  };
10232
10306
  }, [props.onDidDrop]);
10233
- React.useEffect(() => {
10234
- if (!dockviewRef.current) {
10235
- return () => {
10236
- // noop
10237
- };
10238
- }
10239
- const disposable = dockviewRef.current.onUnhandledDragOverEvent((event) => {
10240
- var _a;
10241
- if ((_a = props.showDndOverlay) === null || _a === void 0 ? void 0 : _a.call(props, event)) {
10242
- event.accept();
10243
- }
10244
- });
10245
- return () => {
10246
- disposable.dispose();
10247
- };
10248
- }, [props.showDndOverlay]);
10249
10307
  React.useEffect(() => {
10250
10308
  if (!dockviewRef.current) {
10251
10309
  return () => {
@@ -10663,7 +10721,6 @@ exports.GridviewApi = GridviewApi;
10663
10721
  exports.GridviewComponent = GridviewComponent;
10664
10722
  exports.GridviewPanel = GridviewPanel;
10665
10723
  exports.GridviewReact = GridviewReact;
10666
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
10667
10724
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
10668
10725
  exports.PaneFramework = PaneFramework;
10669
10726
  exports.PaneTransfer = PaneTransfer;
@@ -10682,7 +10739,6 @@ exports.SplitviewPanel = SplitviewPanel;
10682
10739
  exports.SplitviewReact = SplitviewReact;
10683
10740
  exports.Tab = Tab;
10684
10741
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10685
- exports.createComponent = createComponent;
10686
10742
  exports.createDockview = createDockview;
10687
10743
  exports.createGridview = createGridview;
10688
10744
  exports.createPaneview = createPaneview;