dockview-react 1.17.1 → 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.1
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-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 998;\n}\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
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,11 +6641,10 @@ 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
 
6639
- const DEFAULT_OVERLAY_Z_INDEX = 999;
6640
6648
  class AriaLevelTracker {
6641
6649
  constructor() {
6642
6650
  this._orderedList = [];
@@ -6655,7 +6663,7 @@ class AriaLevelTracker {
6655
6663
  update() {
6656
6664
  for (let i = 0; i < this._orderedList.length; i++) {
6657
6665
  this._orderedList[i].setAttribute('aria-level', `${i}`);
6658
- this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6666
+ this._orderedList[i].style.zIndex = `calc(var(--dv-overlay-z-index, 999) + ${i * 2})`;
6659
6667
  }
6660
6668
  }
6661
6669
  }
@@ -7112,7 +7120,7 @@ class OverlayRenderContainer extends CompositeDisposable {
7112
7120
  const element = floatingGroup.overlay.element;
7113
7121
  const update = () => {
7114
7122
  const level = Number(element.getAttribute('aria-level'));
7115
- focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7123
+ focusContainer.style.zIndex = `calc(var(--dv-overlay-z-index, 999) + ${level * 2 + 1})`;
7116
7124
  };
7117
7125
  const observer = new MutationObserver(() => {
7118
7126
  update();
@@ -7244,7 +7252,6 @@ class PopoutWindow extends CompositeDisposable {
7244
7252
  window: this._window.value,
7245
7253
  });
7246
7254
  this._window.disposable.dispose();
7247
- this._window.value.close();
7248
7255
  this._window = null;
7249
7256
  this._onDidClose.fire();
7250
7257
  }
@@ -7276,7 +7283,9 @@ class PopoutWindow extends CompositeDisposable {
7276
7283
  }
7277
7284
  const disposable = new CompositeDisposable();
7278
7285
  this._window = { value: externalWindow, disposable };
7279
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7286
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7287
+ externalWindow.close();
7288
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7280
7289
  /**
7281
7290
  * before the main window closes we should close this popup too
7282
7291
  * to be good citizens
@@ -7293,7 +7302,7 @@ class PopoutWindow extends CompositeDisposable {
7293
7302
  id: this.target,
7294
7303
  window: externalWindow,
7295
7304
  });
7296
- return new Promise((resolve) => {
7305
+ return new Promise((resolve, reject) => {
7297
7306
  externalWindow.addEventListener('unload', (e) => {
7298
7307
  // if page fails to load before unloading
7299
7308
  // this.close();
@@ -7302,21 +7311,27 @@ class PopoutWindow extends CompositeDisposable {
7302
7311
  /**
7303
7312
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7304
7313
  */
7305
- const externalDocument = externalWindow.document;
7306
- externalDocument.title = document.title;
7307
- externalDocument.body.appendChild(container);
7308
- addStyles(externalDocument, window.document.styleSheets);
7309
- /**
7310
- * beforeunload must be registered after load for reasons I could not determine
7311
- * otherwise the beforeunload event will not fire when the window is closed
7312
- */
7313
- 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);
7314
7319
  /**
7315
- * @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
7316
7322
  */
7317
- this.close();
7318
- });
7319
- 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
+ }
7320
7335
  });
7321
7336
  });
7322
7337
  });
@@ -7569,9 +7584,6 @@ class DockviewComponent extends BaseGrid {
7569
7584
  }
7570
7585
  const box = getBox();
7571
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();
7572
- if (itemToPopout.api.location.type === 'grid') {
7573
- itemToPopout.api.setVisible(false);
7574
- }
7575
7587
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7576
7588
  theme !== null && theme !== void 0 ? theme : '', {
7577
7589
  url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
@@ -7590,11 +7602,11 @@ class DockviewComponent extends BaseGrid {
7590
7602
  .then((popoutContainer) => {
7591
7603
  var _a;
7592
7604
  if (_window.isDisposed) {
7593
- return;
7605
+ return false;
7594
7606
  }
7595
7607
  if (popoutContainer === null) {
7596
7608
  popoutWindowDisposable.dispose();
7597
- return;
7609
+ return false;
7598
7610
  }
7599
7611
  const gready = document.createElement('div');
7600
7612
  gready.className = 'dv-overlay-render-container';
@@ -7603,30 +7615,40 @@ class DockviewComponent extends BaseGrid {
7603
7615
  ? itemToPopout.group
7604
7616
  : itemToPopout;
7605
7617
  const referenceLocation = itemToPopout.api.location.type;
7606
- 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 });
7607
7626
  group.model.renderContainer = overlayRenderContainer;
7608
- 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)) {
7609
7629
  this._onDidAddGroup.fire(group);
7610
7630
  }
7611
- if (itemToPopout instanceof DockviewPanel) {
7612
- this.movingLock(() => {
7613
- const panel = referenceGroup.model.removePanel(itemToPopout);
7614
- group.model.openPanel(panel);
7615
- });
7616
- }
7617
- else {
7618
- this.movingLock(() => moveGroupWithoutDestroying({
7619
- from: referenceGroup,
7620
- to: group,
7621
- }));
7622
- switch (referenceLocation) {
7623
- case 'grid':
7624
- referenceGroup.api.setVisible(false);
7625
- break;
7626
- case 'floating':
7627
- case 'popout':
7628
- this.removeGroup(referenceGroup);
7629
- 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
+ }
7630
7652
  }
7631
7653
  }
7632
7654
  popoutContainer.classList.add('dv-dockview');
@@ -7637,6 +7659,10 @@ class DockviewComponent extends BaseGrid {
7637
7659
  type: 'popout',
7638
7660
  getWindow: () => _window.window,
7639
7661
  };
7662
+ if (isGroupAddedToDom &&
7663
+ itemToPopout.api.location.type === 'grid') {
7664
+ itemToPopout.api.setVisible(false);
7665
+ }
7640
7666
  this.doSetGroupAndPanelActive(group);
7641
7667
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7642
7668
  var _a;
@@ -7651,9 +7677,13 @@ class DockviewComponent extends BaseGrid {
7651
7677
  const value = {
7652
7678
  window: _window,
7653
7679
  popoutGroup: group,
7654
- referenceGroup: this.getPanel(referenceGroup.id)
7655
- ? referenceGroup.id
7656
- : undefined,
7680
+ referenceGroup: !isGroupAddedToDom
7681
+ ? undefined
7682
+ : referenceGroup
7683
+ ? this.getPanel(referenceGroup.id)
7684
+ ? referenceGroup.id
7685
+ : undefined
7686
+ : undefined,
7657
7687
  disposable: {
7658
7688
  dispose: () => {
7659
7689
  popoutWindowDisposable.dispose();
@@ -7668,9 +7698,10 @@ class DockviewComponent extends BaseGrid {
7668
7698
  * window dimensions
7669
7699
  */
7670
7700
  addDisposableWindowListener(_window.window, 'resize', () => {
7671
- group.layout(window.innerWidth, window.innerHeight);
7701
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7672
7702
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7673
- if (this.getPanel(referenceGroup.id)) {
7703
+ if (isGroupAddedToDom &&
7704
+ this.getPanel(referenceGroup.id)) {
7674
7705
  this.movingLock(() => moveGroupWithoutDestroying({
7675
7706
  from: group,
7676
7707
  to: referenceGroup,
@@ -7685,21 +7716,27 @@ class DockviewComponent extends BaseGrid {
7685
7716
  }
7686
7717
  }
7687
7718
  else if (this.getPanel(group.id)) {
7688
- const removedGroup = this.doRemoveGroup(group, {
7719
+ this.doRemoveGroup(group, {
7689
7720
  skipDispose: true,
7690
7721
  skipActive: true,
7722
+ skipPopoutReturn: true,
7691
7723
  });
7724
+ const removedGroup = group;
7692
7725
  removedGroup.model.renderContainer =
7693
7726
  this.overlayRenderContainer;
7694
7727
  removedGroup.model.location = { type: 'grid' };
7695
7728
  returnedGroup = removedGroup;
7729
+ this.doAddGroup(removedGroup, [0]);
7730
+ this.doSetGroupAndPanelActive(removedGroup);
7696
7731
  }
7697
7732
  }));
7698
7733
  this._popoutGroups.push(value);
7699
7734
  this.updateWatermark();
7735
+ return true;
7700
7736
  })
7701
7737
  .catch((err) => {
7702
7738
  console.error('dockview: failed to create popout window', err);
7739
+ return false;
7703
7740
  });
7704
7741
  }
7705
7742
  addFloatingGroup(item, options) {
@@ -7803,7 +7840,7 @@ class DockviewComponent extends BaseGrid {
7803
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'
7804
7841
  ? undefined
7805
7842
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7806
- const el = group.element.querySelector('.void-container');
7843
+ const el = group.element.querySelector('.dv-void-container');
7807
7844
  if (!el) {
7808
7845
  throw new Error('failed to find drag handle');
7809
7846
  }
@@ -8086,7 +8123,6 @@ class DockviewComponent extends BaseGrid {
8086
8123
  this.addPopoutGroup((_c = (gridReferenceGroup
8087
8124
  ? this.getPanel(gridReferenceGroup)
8088
8125
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8089
- skipRemoveGroup: true,
8090
8126
  position: position !== null && position !== void 0 ? position : undefined,
8091
8127
  overridePopoutGroup: gridReferenceGroup
8092
8128
  ? group
@@ -8104,6 +8140,7 @@ class DockviewComponent extends BaseGrid {
8104
8140
  }
8105
8141
  }
8106
8142
  catch (err) {
8143
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8107
8144
  /**
8108
8145
  * Takes all the successfully created groups and remove all of their panels.
8109
8146
  */
@@ -8171,11 +8208,13 @@ class DockviewComponent extends BaseGrid {
8171
8208
  width: options.initialWidth,
8172
8209
  height: options.initialHeight,
8173
8210
  };
8211
+ let index;
8174
8212
  if (options.position) {
8175
8213
  if (isPanelOptionsWithPanel(options.position)) {
8176
8214
  const referencePanel = typeof options.position.referencePanel === 'string'
8177
8215
  ? this.getGroupPanel(options.position.referencePanel)
8178
8216
  : options.position.referencePanel;
8217
+ index = options.position.index;
8179
8218
  if (!referencePanel) {
8180
8219
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8181
8220
  }
@@ -8186,6 +8225,7 @@ class DockviewComponent extends BaseGrid {
8186
8225
  typeof options.position.referenceGroup === 'string'
8187
8226
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8188
8227
  : options.position.referenceGroup;
8228
+ index = options.position.index;
8189
8229
  if (!referenceGroup) {
8190
8230
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8191
8231
  }
@@ -8196,6 +8236,7 @@ class DockviewComponent extends BaseGrid {
8196
8236
  group.model.openPanel(panel, {
8197
8237
  skipSetActive: options.inactive,
8198
8238
  skipSetGroupActive: options.inactive,
8239
+ index,
8199
8240
  });
8200
8241
  if (!options.inactive) {
8201
8242
  this.doSetGroupAndPanelActive(group);
@@ -8225,6 +8266,7 @@ class DockviewComponent extends BaseGrid {
8225
8266
  group.model.openPanel(panel, {
8226
8267
  skipSetActive: options.inactive,
8227
8268
  skipSetGroupActive: options.inactive,
8269
+ index,
8228
8270
  });
8229
8271
  }
8230
8272
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8233,6 +8275,7 @@ class DockviewComponent extends BaseGrid {
8233
8275
  referenceGroup.model.openPanel(panel, {
8234
8276
  skipSetActive: options.inactive,
8235
8277
  skipSetGroupActive: options.inactive,
8278
+ index,
8236
8279
  });
8237
8280
  referenceGroup.api.setSize({
8238
8281
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8253,6 +8296,7 @@ class DockviewComponent extends BaseGrid {
8253
8296
  group.model.openPanel(panel, {
8254
8297
  skipSetActive: options.inactive,
8255
8298
  skipSetGroupActive: options.inactive,
8299
+ index,
8256
8300
  });
8257
8301
  if (!options.inactive) {
8258
8302
  this.doSetGroupAndPanelActive(group);
@@ -8271,6 +8315,7 @@ class DockviewComponent extends BaseGrid {
8271
8315
  group.model.openPanel(panel, {
8272
8316
  skipSetActive: options.inactive,
8273
8317
  skipSetGroupActive: options.inactive,
8318
+ index,
8274
8319
  });
8275
8320
  }
8276
8321
  else {
@@ -8281,6 +8326,7 @@ class DockviewComponent extends BaseGrid {
8281
8326
  group.model.openPanel(panel, {
8282
8327
  skipSetActive: options.inactive,
8283
8328
  skipSetGroupActive: options.inactive,
8329
+ index,
8284
8330
  });
8285
8331
  if (!options.inactive) {
8286
8332
  this.doSetGroupAndPanelActive(group);
@@ -8821,6 +8867,31 @@ class DockviewComponent extends BaseGrid {
8821
8867
  }
8822
8868
  }
8823
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
+
8824
8895
  class GridviewComponent extends BaseGrid {
8825
8896
  get orientation() {
8826
8897
  return this.gridview.orientation;
@@ -9369,12 +9440,14 @@ class DefaultHeader extends CompositeDisposable {
9369
9440
  this._expandedIcon = createExpandMoreButton();
9370
9441
  this._collapsedIcon = createChevronRightButton();
9371
9442
  this.disposable = new MutableDisposable();
9372
- this.apiRef = { api: null };
9443
+ this.apiRef = {
9444
+ api: null,
9445
+ };
9373
9446
  this._element = document.createElement('div');
9374
- this.element.className = 'default-header';
9447
+ this.element.className = 'dv-default-header';
9375
9448
  this._content = document.createElement('span');
9376
9449
  this._expander = document.createElement('div');
9377
- this._expander.className = 'dockview-pane-header-icon';
9450
+ this._expander.className = 'dv-pane-header-icon';
9378
9451
  this.element.appendChild(this._expander);
9379
9452
  this.element.appendChild(this._content);
9380
9453
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -10231,22 +10304,6 @@ const DockviewReact = React.forwardRef((props, ref) => {
10231
10304
  disposable.dispose();
10232
10305
  };
10233
10306
  }, [props.onDidDrop]);
10234
- React.useEffect(() => {
10235
- if (!dockviewRef.current) {
10236
- return () => {
10237
- // noop
10238
- };
10239
- }
10240
- const disposable = dockviewRef.current.onUnhandledDragOverEvent((event) => {
10241
- var _a;
10242
- if ((_a = props.showDndOverlay) === null || _a === void 0 ? void 0 : _a.call(props, event)) {
10243
- event.accept();
10244
- }
10245
- });
10246
- return () => {
10247
- disposable.dispose();
10248
- };
10249
- }, [props.showDndOverlay]);
10250
10307
  React.useEffect(() => {
10251
10308
  if (!dockviewRef.current) {
10252
10309
  return () => {
@@ -10664,7 +10721,6 @@ exports.GridviewApi = GridviewApi;
10664
10721
  exports.GridviewComponent = GridviewComponent;
10665
10722
  exports.GridviewPanel = GridviewPanel;
10666
10723
  exports.GridviewReact = GridviewReact;
10667
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
10668
10724
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
10669
10725
  exports.PaneFramework = PaneFramework;
10670
10726
  exports.PaneTransfer = PaneTransfer;
@@ -10683,7 +10739,6 @@ exports.SplitviewPanel = SplitviewPanel;
10683
10739
  exports.SplitviewReact = SplitviewReact;
10684
10740
  exports.Tab = Tab;
10685
10741
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10686
- exports.createComponent = createComponent;
10687
10742
  exports.createDockview = createDockview;
10688
10743
  exports.createGridview = createGridview;
10689
10744
  exports.createPaneview = createPaneview;