dockview-react 1.17.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-react
3
- * @version 1.17.2
3
+ * @version 2.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -37,7 +37,7 @@
37
37
  }
38
38
  }
39
39
 
40
- var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
40
+ var css_248z = ".dv-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .dv-groupview .dv-content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .dv-groupview.dv-active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview.dv-inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dv-drop-target {\n position: relative;\n}\n.dv-drop-target > .dv-drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.dv-tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.dv-groupview:focus {\n outline: none;\n}\n.dv-groupview > .dv-content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.dv-grid-view,\n.dv-branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-hidden {\n display: none;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dv-pane-container {\n height: 100%;\n width: 100%;\n}\n.dv-pane-container.dv-animated .dv-view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-pane-container .dv-view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.dv-pane-container .dv-view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.dv-pane-container .dv-view:not(:first-child) .dv-pane > .dv-pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.dv-pane-container .dv-view .dv-default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dv-pane-container .dv-view .dv-default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.dv-pane-container:first-of-type > .dv-pane > .dv-pane-header {\n border-top: none !important;\n}\n.dv-pane-container .dv-pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.dv-pane-container .dv-pane .dv-pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable {\n cursor: pointer;\n}\n.dv-pane-container .dv-pane .dv-pane-header:focus:before, .dv-pane-container .dv-pane .dv-pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-pane-container .dv-pane .dv-pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-body:focus:before, .dv-pane-container .dv-pane .dv-pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled {\n background-color: black;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled {\n background-color: orange;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum {\n background-color: green;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum {\n background-color: red;\n}\n\n.dv-split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container.dv-splitview-disabled > .dv-sash-container > .dv-sash {\n pointer-events: none;\n}\n.dv-split-view-container.dv-animation .dv-view,\n.dv-split-view-container.dv-animation .dv-sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-split-view-container.dv-horizontal {\n height: 100%;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash {\n height: 100%;\n width: 4px;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ew-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: w-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: e-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.dv-split-view-container.dv-vertical {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash {\n width: 100%;\n height: 4px;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ns-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: n-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: s-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.dv-split-view-container .dv-sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.dv-split-view-container .dv-sash-container .dv-sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.dv-split-view-container .dv-view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container .dv-view-container .dv-view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.dv-split-view-container.dv-separator-border .dv-view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.dv-tab {\n flex-shrink: 0;\n}\n.dv-tab:focus-within, .dv-tab:focus {\n position: relative;\n}\n.dv-tab:focus-within::after, .dv-tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.dv-tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.dv-tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.dv-tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.dv-tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.dv-tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container {\n flex-grow: 0;\n}\n.dv-tabs-and-actions-container .dv-void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.dv-tabs-and-actions-container .dv-tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.dv-tabs-and-actions-container .dv-tabs-container .dv-tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.dv-tabs-and-actions-container .dv-tabs-container .dv-tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dv-watermark {\n display: flex;\n height: 100%;\n}";
41
41
  styleInject(css_248z);
42
42
 
43
43
  class TransferObject {
@@ -358,31 +358,6 @@
358
358
  }
359
359
  }
360
360
 
361
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
362
- const Component = typeof componentName === 'string'
363
- ? components[componentName]
364
- : undefined;
365
- const FrameworkComponent = typeof componentName === 'string'
366
- ? frameworkComponents[componentName]
367
- : undefined;
368
- if (Component && FrameworkComponent) {
369
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
370
- }
371
- if (FrameworkComponent) {
372
- if (!createFrameworkComponent) {
373
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
374
- }
375
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
376
- }
377
- if (!Component) {
378
- if (fallback) {
379
- return fallback();
380
- }
381
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
382
- }
383
- return new Component(id, componentName);
384
- }
385
-
386
361
  function watchElementResize(element, cb) {
387
362
  const observer = new ResizeObserver((entires) => {
388
363
  /**
@@ -851,10 +826,10 @@
851
826
  const tmp = this.size;
852
827
  this.size = this.orthogonalSize;
853
828
  this.orthogonalSize = tmp;
854
- removeClasses(this.element, 'horizontal', 'vertical');
829
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
855
830
  this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
856
- ? 'horizontal'
857
- : 'vertical');
831
+ ? 'dv-horizontal'
832
+ : 'dv-vertical');
858
833
  }
859
834
  get minimumSize() {
860
835
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -1032,11 +1007,11 @@
1032
1007
  }
1033
1008
  style(styles) {
1034
1009
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1035
- removeClasses(this.element, 'separator-border');
1010
+ removeClasses(this.element, 'dv-separator-border');
1036
1011
  this.element.style.removeProperty('--dv-separator-border');
1037
1012
  }
1038
1013
  else {
1039
- addClasses(this.element, 'separator-border');
1014
+ addClasses(this.element, 'dv-separator-border');
1040
1015
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1041
1016
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1042
1017
  }
@@ -1106,7 +1081,7 @@
1106
1081
  }
1107
1082
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1108
1083
  const container = document.createElement('div');
1109
- container.className = 'view';
1084
+ container.className = 'dv-view';
1110
1085
  container.appendChild(view.element);
1111
1086
  let viewSize;
1112
1087
  if (typeof size === 'number') {
@@ -1138,7 +1113,7 @@
1138
1113
  if (this.viewItems.length > 1) {
1139
1114
  //add sash
1140
1115
  const sash = document.createElement('div');
1141
- sash.className = 'sash';
1116
+ sash.className = 'dv-sash';
1142
1117
  const onPointerStart = (event) => {
1143
1118
  for (const item of this.viewItems) {
1144
1119
  item.enabled = false;
@@ -1397,7 +1372,8 @@
1397
1372
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1398
1373
  ? 0
1399
1374
  : viewLeftOffsets[i - 1] +
1400
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1375
+ (visiblePanelsBeforeThisView / sashCount) *
1376
+ marginReducedSize;
1401
1377
  if (i < this.viewItems.length - 1) {
1402
1378
  // calculate sash position
1403
1379
  const newSize = view.visible
@@ -1508,27 +1484,27 @@
1508
1484
  }
1509
1485
  }
1510
1486
  updateSash(sash, state) {
1511
- toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
1512
- toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
1513
- toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
1514
- toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
1487
+ toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
1488
+ toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
1489
+ toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
1490
+ toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
1515
1491
  }
1516
1492
  createViewContainer() {
1517
1493
  const element = document.createElement('div');
1518
- element.className = 'view-container';
1494
+ element.className = 'dv-view-container';
1519
1495
  return element;
1520
1496
  }
1521
1497
  createSashContainer() {
1522
1498
  const element = document.createElement('div');
1523
- element.className = 'sash-container';
1499
+ element.className = 'dv-sash-container';
1524
1500
  return element;
1525
1501
  }
1526
1502
  createContainer() {
1527
1503
  const element = document.createElement('div');
1528
1504
  const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
1529
- ? 'horizontal'
1530
- : 'vertical';
1531
- element.className = `split-view-container ${orientationClassname}`;
1505
+ ? 'dv-horizontal'
1506
+ : 'dv-vertical';
1507
+ element.className = `dv-split-view-container ${orientationClassname}`;
1532
1508
  return element;
1533
1509
  }
1534
1510
  dispose() {
@@ -1579,7 +1555,7 @@
1579
1555
  this.onDidChange = this._onDidChange.event;
1580
1556
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
1581
1557
  this.element = document.createElement('div');
1582
- this.element.className = 'pane-container';
1558
+ this.element.className = 'dv-pane-container';
1583
1559
  container.appendChild(this.element);
1584
1560
  this.splitview = new Splitview(this.element, {
1585
1561
  orientation: this._orientation,
@@ -1671,10 +1647,10 @@
1671
1647
  clearTimeout(this.animationTimer);
1672
1648
  this.animationTimer = undefined;
1673
1649
  }
1674
- addClasses(this.element, 'animated');
1650
+ addClasses(this.element, 'dv-animated');
1675
1651
  this.animationTimer = setTimeout(() => {
1676
1652
  this.animationTimer = undefined;
1677
- removeClasses(this.element, 'animated');
1653
+ removeClasses(this.element, 'dv-animated');
1678
1654
  }, 200);
1679
1655
  }
1680
1656
  dispose() {
@@ -1899,7 +1875,7 @@
1899
1875
  this._orthogonalSize = orthogonalSize;
1900
1876
  this._size = size;
1901
1877
  this.element = document.createElement('div');
1902
- this.element.className = 'branch-node';
1878
+ this.element.className = 'dv-branch-node';
1903
1879
  if (!childDescriptors) {
1904
1880
  this.splitview = new Splitview(this.element, {
1905
1881
  orientation: this.orientation,
@@ -2110,7 +2086,7 @@
2110
2086
  if (!parentElement) {
2111
2087
  throw new Error('Invalid grid element');
2112
2088
  }
2113
- if (/\bgrid-view\b/.test(parentElement.className)) {
2089
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2114
2090
  return [];
2115
2091
  }
2116
2092
  const index = indexInParent(parentElement);
@@ -2247,6 +2223,7 @@
2247
2223
  if (this.hasMaximizedView()) {
2248
2224
  this.exitMaximizedView();
2249
2225
  }
2226
+ serializeBranchNode(this.getView(), this.orientation);
2250
2227
  const hiddenOnMaximize = [];
2251
2228
  function hideAllViewsBut(parent, exclude) {
2252
2229
  for (let i = 0; i < parent.children.length; i++) {
@@ -2268,7 +2245,10 @@
2268
2245
  }
2269
2246
  hideAllViewsBut(this.root, node);
2270
2247
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
2271
- this._onDidMaximizedNodeChange.fire();
2248
+ this._onDidMaximizedNodeChange.fire({
2249
+ view: node.view,
2250
+ isMaximized: true,
2251
+ });
2272
2252
  }
2273
2253
  exitMaximizedView() {
2274
2254
  if (!this._maximizedNode) {
@@ -2289,24 +2269,51 @@
2289
2269
  }
2290
2270
  }
2291
2271
  showViewsInReverseOrder(this.root);
2272
+ const tmp = this._maximizedNode.leaf;
2292
2273
  this._maximizedNode = undefined;
2293
- this._onDidMaximizedNodeChange.fire();
2274
+ this._onDidMaximizedNodeChange.fire({
2275
+ view: tmp.view,
2276
+ isMaximized: false,
2277
+ });
2294
2278
  }
2295
2279
  serialize() {
2280
+ const maximizedView = this.maximizedView();
2281
+ let maxmizedViewLocation;
2282
+ if (maximizedView) {
2283
+ /**
2284
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
2285
+ * which is represented as a branch of indices
2286
+ */
2287
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
2288
+ }
2296
2289
  if (this.hasMaximizedView()) {
2297
2290
  /**
2298
- * do not persist maximized view state
2299
- * firstly exit any maximized views to ensure the correct dimensions are persisted
2291
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
2292
+ * view dimensions will be wrong
2293
+ *
2294
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
2295
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
2296
+ * perspective when `.toJSON()` is called
2300
2297
  */
2301
2298
  this.exitMaximizedView();
2302
2299
  }
2303
2300
  const root = serializeBranchNode(this.getView(), this.orientation);
2304
- return {
2301
+ const resullt = {
2305
2302
  root,
2306
2303
  width: this.width,
2307
2304
  height: this.height,
2308
2305
  orientation: this.orientation,
2309
2306
  };
2307
+ if (maxmizedViewLocation) {
2308
+ resullt.maximizedNode = {
2309
+ location: maxmizedViewLocation,
2310
+ };
2311
+ }
2312
+ if (maximizedView) {
2313
+ // replace any maximzied view that was removed for serialization purposes
2314
+ this.maximizeView(maximizedView);
2315
+ }
2316
+ return resullt;
2310
2317
  }
2311
2318
  dispose() {
2312
2319
  this.disposable.dispose();
@@ -2325,6 +2332,19 @@
2325
2332
  const orientation = json.orientation;
2326
2333
  const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
2327
2334
  this._deserialize(json.root, orientation, deserializer, height);
2335
+ /**
2336
+ * The deserialied layout must be positioned through this.layout(...)
2337
+ * before any maximizedNode can be positioned
2338
+ */
2339
+ this.layout(json.width, json.height);
2340
+ if (json.maximizedNode) {
2341
+ const location = json.maximizedNode.location;
2342
+ const [_, node] = this.getNode(location);
2343
+ if (!(node instanceof LeafNode)) {
2344
+ return;
2345
+ }
2346
+ this.maximizeView(node.view);
2347
+ }
2328
2348
  }
2329
2349
  _deserialize(root, orientation, deserializer, orthogonalSize) {
2330
2350
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -2458,7 +2478,7 @@
2458
2478
  this._onDidMaximizedNodeChange = new Emitter();
2459
2479
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2460
2480
  this.element = document.createElement('div');
2461
- this.element.className = 'grid-view';
2481
+ this.element.className = 'dv-grid-view';
2462
2482
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2463
2483
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2464
2484
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -2749,6 +2769,8 @@
2749
2769
  this.onDidRemove = this._onDidRemove.event;
2750
2770
  this._onDidAdd = new Emitter();
2751
2771
  this.onDidAdd = this._onDidAdd.event;
2772
+ this._onDidMaximizedChange = new Emitter();
2773
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
2752
2774
  this._onDidActiveChange = new Emitter();
2753
2775
  this.onDidActiveChange = this._onDidActiveChange.event;
2754
2776
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -2764,7 +2786,12 @@
2764
2786
  this.gridview.locked = !!options.locked;
2765
2787
  this.element.appendChild(this.gridview.element);
2766
2788
  this.layout(0, 0, true); // set some elements height/widths
2767
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2789
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
2790
+ this._onDidMaximizedChange.fire({
2791
+ panel: event.view,
2792
+ isMaximized: event.isMaximized,
2793
+ });
2794
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2768
2795
  this.layout(this.width, this.height, true);
2769
2796
  }), exports.DockviewDisposable.from(() => {
2770
2797
  var _a;
@@ -2814,9 +2841,6 @@
2814
2841
  hasMaximizedGroup() {
2815
2842
  return this.gridview.hasMaximizedView();
2816
2843
  }
2817
- get onDidMaximizedGroupChange() {
2818
- return this.gridview.onDidMaximizedNodeChange;
2819
- }
2820
2844
  doAddGroup(group, location = [0], size) {
2821
2845
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
2822
2846
  this._onDidAdd.fire(group);
@@ -3680,7 +3704,7 @@
3680
3704
  * dnd logic. You can see the code at
3681
3705
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3682
3706
  */
3683
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3707
+ event.dataTransfer.setData('text/plain', '');
3684
3708
  }
3685
3709
  }
3686
3710
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3854,12 +3878,12 @@
3854
3878
  this.markAsUsed(e);
3855
3879
  if (!this.targetElement) {
3856
3880
  this.targetElement = document.createElement('div');
3857
- this.targetElement.className = 'drop-target-dropzone';
3881
+ this.targetElement.className = 'dv-drop-target-dropzone';
3858
3882
  this.overlayElement = document.createElement('div');
3859
- this.overlayElement.className = 'drop-target-selection';
3883
+ this.overlayElement.className = 'dv-drop-target-selection';
3860
3884
  this._state = 'center';
3861
3885
  this.targetElement.appendChild(this.overlayElement);
3862
- this.element.classList.add('drop-target');
3886
+ this.element.classList.add('dv-drop-target');
3863
3887
  this.element.append(this.targetElement);
3864
3888
  }
3865
3889
  this.toggleClasses(quadrant, width, height);
@@ -3997,7 +4021,7 @@
3997
4021
  this.element.removeChild(this.targetElement);
3998
4022
  this.targetElement = undefined;
3999
4023
  this.overlayElement = undefined;
4000
- this.element.classList.remove('drop-target');
4024
+ this.element.classList.remove('dv-drop-target');
4001
4025
  }
4002
4026
  }
4003
4027
  }
@@ -4334,7 +4358,7 @@
4334
4358
  this._headerVisible = isHeaderVisible;
4335
4359
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4336
4360
  this._orientation = orientation;
4337
- this.element.classList.add('pane');
4361
+ this.element.classList.add('dv-pane');
4338
4362
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4339
4363
  const { isVisible } = event;
4340
4364
  const { accessor } = this._params;
@@ -4431,14 +4455,14 @@
4431
4455
  renderOnce() {
4432
4456
  this.header = document.createElement('div');
4433
4457
  this.header.tabIndex = 0;
4434
- this.header.className = 'pane-header';
4458
+ this.header.className = 'dv-pane-header';
4435
4459
  this.header.style.height = `${this.headerSize}px`;
4436
4460
  this.header.style.lineHeight = `${this.headerSize}px`;
4437
4461
  this.header.style.minHeight = `${this.headerSize}px`;
4438
4462
  this.header.style.maxHeight = `${this.headerSize}px`;
4439
4463
  this.element.appendChild(this.header);
4440
4464
  this.body = document.createElement('div');
4441
- this.body.className = 'pane-body';
4465
+ this.body.className = 'dv-pane-body';
4442
4466
  this.element.appendChild(this.body);
4443
4467
  }
4444
4468
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4559,7 +4583,7 @@
4559
4583
  this._onDidBlur = new Emitter();
4560
4584
  this.onDidBlur = this._onDidBlur.event;
4561
4585
  this._element = document.createElement('div');
4562
- this._element.className = 'content-container';
4586
+ this._element.className = 'dv-content-container';
4563
4587
  this._element.tabIndex = -1;
4564
4588
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4565
4589
  this.dropTarget = new Droptarget(this.element, {
@@ -4632,6 +4656,8 @@
4632
4656
  referenceContainer: this,
4633
4657
  });
4634
4658
  break;
4659
+ default:
4660
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4635
4661
  }
4636
4662
  if (doRender) {
4637
4663
  const focusTracker = trackFocus(container);
@@ -4698,10 +4724,10 @@
4698
4724
  this._onDragStart = new Emitter();
4699
4725
  this.onDragStart = this._onDragStart.event;
4700
4726
  this._element = document.createElement('div');
4701
- this._element.className = 'tab';
4727
+ this._element.className = 'dv-tab';
4702
4728
  this._element.tabIndex = 0;
4703
4729
  this._element.draggable = true;
4704
- toggleClass(this.element, 'inactive-tab', true);
4730
+ toggleClass(this.element, 'dv-inactive-tab', true);
4705
4731
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4706
4732
  this.dropTarget = new Droptarget(this._element, {
4707
4733
  acceptedTargetZones: ['center'],
@@ -4734,8 +4760,8 @@
4734
4760
  }), this.dropTarget);
4735
4761
  }
4736
4762
  setActive(isActive) {
4737
- toggleClass(this.element, 'active-tab', isActive);
4738
- toggleClass(this.element, 'inactive-tab', !isActive);
4763
+ toggleClass(this.element, 'dv-active-tab', isActive);
4764
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4739
4765
  }
4740
4766
  setContent(part) {
4741
4767
  if (this.content) {
@@ -4823,8 +4849,7 @@
4823
4849
  this._onDragStart = new Emitter();
4824
4850
  this.onDragStart = this._onDragStart.event;
4825
4851
  this._element = document.createElement('div');
4826
- this._element.className = 'void-container';
4827
- this._element.tabIndex = 0;
4852
+ this._element.className = 'dv-void-container';
4828
4853
  this._element.draggable = true;
4829
4854
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4830
4855
  this.accessor.doSetGroupActive(this.group);
@@ -4943,16 +4968,16 @@
4943
4968
  this._onWillShowOverlay = new Emitter();
4944
4969
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4945
4970
  this._element = document.createElement('div');
4946
- this._element.className = 'tabs-and-actions-container';
4971
+ this._element.className = 'dv-tabs-and-actions-container';
4947
4972
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4948
4973
  this.rightActionsContainer = document.createElement('div');
4949
- this.rightActionsContainer.className = 'right-actions-container';
4974
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4950
4975
  this.leftActionsContainer = document.createElement('div');
4951
- this.leftActionsContainer.className = 'left-actions-container';
4976
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4952
4977
  this.preActionsContainer = document.createElement('div');
4953
- this.preActionsContainer.className = 'pre-actions-container';
4978
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4954
4979
  this.tabContainer = document.createElement('div');
4955
- this.tabContainer.className = 'tabs-container';
4980
+ this.tabContainer.className = 'dv-tabs-container';
4956
4981
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4957
4982
  this._element.appendChild(this.preActionsContainer);
4958
4983
  this._element.appendChild(this.tabContainer);
@@ -5041,14 +5066,10 @@
5041
5066
  });
5042
5067
  }
5043
5068
  openPanel(panel, index = this.tabs.length) {
5044
- var _a;
5045
5069
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5046
5070
  return;
5047
5071
  }
5048
5072
  const tab = new Tab(panel, this.accessor, this.group);
5049
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5050
- throw new Error('invalid header component');
5051
- }
5052
5073
  tab.setContent(panel.view.tab);
5053
5074
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5054
5075
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5142,6 +5163,7 @@
5142
5163
  disableDnd: undefined,
5143
5164
  gap: undefined,
5144
5165
  className: undefined,
5166
+ noPanelsOverlay: undefined,
5145
5167
  };
5146
5168
  return Object.keys(properties);
5147
5169
  })();
@@ -5238,7 +5260,7 @@
5238
5260
  }
5239
5261
  class DockviewGroupPanelModel extends CompositeDisposable {
5240
5262
  get element() {
5241
- throw new Error('not supported');
5263
+ throw new Error('dockview: not supported');
5242
5264
  }
5243
5265
  get activePanel() {
5244
5266
  return this._activePanel;
@@ -5248,7 +5270,7 @@
5248
5270
  }
5249
5271
  set locked(value) {
5250
5272
  this._locked = value;
5251
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5273
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5252
5274
  }
5253
5275
  get isActive() {
5254
5276
  return this._isGroupActive;
@@ -5319,6 +5341,7 @@
5319
5341
  this._locked = false;
5320
5342
  this._location = { type: 'grid' };
5321
5343
  this.mostRecentlyUsed = [];
5344
+ this._overwriteRenderContainer = null;
5322
5345
  this._onDidChange = new Emitter();
5323
5346
  this.onDidChange = this._onDidChange.event;
5324
5347
  this._width = 0;
@@ -5349,8 +5372,7 @@
5349
5372
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5350
5373
  this._onUnhandledDragOverEvent = new Emitter();
5351
5374
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5352
- this._overwriteRenderContainer = null;
5353
- toggleClass(this.container, 'groupview', true);
5375
+ toggleClass(this.container, 'dv-groupview', true);
5354
5376
  this._api = new DockviewApi(this.accessor);
5355
5377
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5356
5378
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5582,7 +5604,10 @@
5582
5604
  this.doClose(panel);
5583
5605
  }
5584
5606
  doClose(panel) {
5585
- this.accessor.removePanel(panel);
5607
+ const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
5608
+ this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
5609
+ ? { removeEmptyGroup: false }
5610
+ : undefined);
5586
5611
  }
5587
5612
  isPanelActive(panel) {
5588
5613
  return this._activePanel === panel;
@@ -5595,8 +5620,8 @@
5595
5620
  return;
5596
5621
  }
5597
5622
  this._isGroupActive = isGroupActive;
5598
- toggleClass(this.container, 'active-group', isGroupActive);
5599
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5623
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5624
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5600
5625
  this.tabsContainer.setActive(this.isActive);
5601
5626
  if (!this._activePanel && this.panels.length > 0) {
5602
5627
  this.doSetActivePanel(this.panels[0]);
@@ -5688,7 +5713,6 @@
5688
5713
  }
5689
5714
  updateContainer() {
5690
5715
  var _a, _b;
5691
- toggleClass(this.container, 'empty', this.isEmpty);
5692
5716
  this.panels.forEach((panel) => panel.runEvents());
5693
5717
  if (this.isEmpty && !this.watermark) {
5694
5718
  const watermark = this.accessor.createWatermarkComponent();
@@ -5702,14 +5726,12 @@
5702
5726
  this.accessor.doSetGroupActive(this.groupPanel);
5703
5727
  }
5704
5728
  });
5705
- this.tabsContainer.hide();
5706
5729
  this.contentContainer.element.appendChild(this.watermark.element);
5707
5730
  }
5708
5731
  if (!this.isEmpty && this.watermark) {
5709
5732
  this.watermark.element.remove();
5710
5733
  (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
5711
5734
  this.watermark = undefined;
5712
- this.tabsContainer.show();
5713
5735
  }
5714
5736
  }
5715
5737
  canDisplayOverlay(event, position, target) {
@@ -5829,6 +5851,34 @@
5829
5851
  return this._snap;
5830
5852
  }
5831
5853
  get minimumWidth() {
5854
+ /**
5855
+ * defer to protected function to allow subclasses to override easily.
5856
+ * see https://github.com/microsoft/TypeScript/issues/338
5857
+ */
5858
+ return this.__minimumWidth();
5859
+ }
5860
+ get minimumHeight() {
5861
+ /**
5862
+ * defer to protected function to allow subclasses to override easily.
5863
+ * see https://github.com/microsoft/TypeScript/issues/338
5864
+ */
5865
+ return this.__minimumHeight();
5866
+ }
5867
+ get maximumHeight() {
5868
+ /**
5869
+ * defer to protected function to allow subclasses to override easily.
5870
+ * see https://github.com/microsoft/TypeScript/issues/338
5871
+ */
5872
+ return this.__maximumHeight();
5873
+ }
5874
+ get maximumWidth() {
5875
+ /**
5876
+ * defer to protected function to allow subclasses to override easily.
5877
+ * see https://github.com/microsoft/TypeScript/issues/338
5878
+ */
5879
+ return this.__maximumWidth();
5880
+ }
5881
+ __minimumWidth() {
5832
5882
  const width = typeof this._minimumWidth === 'function'
5833
5883
  ? this._minimumWidth()
5834
5884
  : this._minimumWidth;
@@ -5838,7 +5888,17 @@
5838
5888
  }
5839
5889
  return width;
5840
5890
  }
5841
- get minimumHeight() {
5891
+ __maximumWidth() {
5892
+ const width = typeof this._maximumWidth === 'function'
5893
+ ? this._maximumWidth()
5894
+ : this._maximumWidth;
5895
+ if (width !== this._evaluatedMaximumWidth) {
5896
+ this._evaluatedMaximumWidth = width;
5897
+ this.updateConstraints();
5898
+ }
5899
+ return width;
5900
+ }
5901
+ __minimumHeight() {
5842
5902
  const height = typeof this._minimumHeight === 'function'
5843
5903
  ? this._minimumHeight()
5844
5904
  : this._minimumHeight;
@@ -5848,7 +5908,7 @@
5848
5908
  }
5849
5909
  return height;
5850
5910
  }
5851
- get maximumHeight() {
5911
+ __maximumHeight() {
5852
5912
  const height = typeof this._maximumHeight === 'function'
5853
5913
  ? this._maximumHeight()
5854
5914
  : this._maximumHeight;
@@ -5858,16 +5918,6 @@
5858
5918
  }
5859
5919
  return height;
5860
5920
  }
5861
- get maximumWidth() {
5862
- const width = typeof this._maximumWidth === 'function'
5863
- ? this._maximumWidth()
5864
- : this._maximumWidth;
5865
- if (width !== this._evaluatedMaximumWidth) {
5866
- this._evaluatedMaximumWidth = width;
5867
- this.updateConstraints();
5868
- }
5869
- return width;
5870
- }
5871
5921
  get isActive() {
5872
5922
  return this.api.isActive;
5873
5923
  }
@@ -6018,6 +6068,7 @@
6018
6068
  position: options.group
6019
6069
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
6020
6070
  : 'center',
6071
+ index: options.index,
6021
6072
  },
6022
6073
  });
6023
6074
  }
@@ -6069,30 +6120,34 @@
6069
6120
  get minimumWidth() {
6070
6121
  var _a;
6071
6122
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6072
- return typeof activePanelMinimumWidth === 'number'
6073
- ? activePanelMinimumWidth
6074
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6123
+ if (typeof activePanelMinimumWidth === 'number') {
6124
+ return activePanelMinimumWidth;
6125
+ }
6126
+ return super.__minimumWidth();
6075
6127
  }
6076
6128
  get minimumHeight() {
6077
6129
  var _a;
6078
6130
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6079
- return typeof activePanelMinimumHeight === 'number'
6080
- ? activePanelMinimumHeight
6081
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6131
+ if (typeof activePanelMinimumHeight === 'number') {
6132
+ return activePanelMinimumHeight;
6133
+ }
6134
+ return super.__minimumHeight();
6082
6135
  }
6083
6136
  get maximumWidth() {
6084
6137
  var _a;
6085
6138
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6086
- return typeof activePanelMaximumWidth === 'number'
6087
- ? activePanelMaximumWidth
6088
- : Number.MAX_SAFE_INTEGER;
6139
+ if (typeof activePanelMaximumWidth === 'number') {
6140
+ return activePanelMaximumWidth;
6141
+ }
6142
+ return super.__maximumWidth();
6089
6143
  }
6090
6144
  get maximumHeight() {
6091
6145
  var _a;
6092
6146
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6093
- return typeof activePanelMaximumHeight === 'number'
6094
- ? activePanelMaximumHeight
6095
- : Number.MAX_SAFE_INTEGER;
6147
+ if (typeof activePanelMaximumHeight === 'number') {
6148
+ return activePanelMaximumHeight;
6149
+ }
6150
+ return super.__maximumHeight();
6096
6151
  }
6097
6152
  get panels() {
6098
6153
  return this._model.panels;
@@ -6206,12 +6261,14 @@
6206
6261
  return this.group.api.getWindow();
6207
6262
  }
6208
6263
  moveTo(options) {
6209
- var _a;
6264
+ var _a, _b;
6210
6265
  this.accessor.moveGroupOrPanel({
6211
6266
  from: { groupId: this._group.id, panelId: this.panel.id },
6212
6267
  to: {
6213
- group: options.group,
6214
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6268
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6269
+ position: options.group
6270
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6271
+ : 'center',
6215
6272
  index: options.index,
6216
6273
  },
6217
6274
  });
@@ -6430,7 +6487,7 @@
6430
6487
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6431
6488
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6432
6489
  svg.setAttributeNS(null, 'focusable', 'false');
6433
- svg.classList.add('dockview-svg');
6490
+ svg.classList.add('dv-svg');
6434
6491
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6435
6492
  path.setAttributeNS(null, 'd', params.path);
6436
6493
  svg.appendChild(path);
@@ -6601,39 +6658,10 @@
6601
6658
  constructor() {
6602
6659
  super();
6603
6660
  this._element = document.createElement('div');
6604
- this._element.className = 'watermark';
6605
- const title = document.createElement('div');
6606
- title.className = 'watermark-title';
6607
- const emptySpace = document.createElement('span');
6608
- emptySpace.style.flexGrow = '1';
6609
- const content = document.createElement('div');
6610
- content.className = 'watermark-content';
6611
- this._element.appendChild(title);
6612
- this._element.appendChild(content);
6613
- const actionsContainer = document.createElement('div');
6614
- actionsContainer.className = 'actions-container';
6615
- const closeAnchor = document.createElement('div');
6616
- closeAnchor.className = 'close-action';
6617
- closeAnchor.appendChild(createCloseButton());
6618
- actionsContainer.appendChild(closeAnchor);
6619
- title.appendChild(emptySpace);
6620
- title.appendChild(actionsContainer);
6621
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
6622
- var _a;
6623
- event.preventDefault();
6624
- if (this._group) {
6625
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
6626
- }
6627
- }));
6661
+ this._element.className = 'dv-watermark';
6628
6662
  }
6629
6663
  init(_params) {
6630
- this._api = _params.containerApi;
6631
- this._group = _params.group;
6632
- this.render();
6633
- }
6634
- render() {
6635
- const isOneGroup = !!(this._api && this._api.size <= 1);
6636
- toggleClass(this.element, 'has-actions', isOneGroup);
6664
+ // noop
6637
6665
  }
6638
6666
  }
6639
6667
 
@@ -6670,6 +6698,9 @@
6670
6698
  get element() {
6671
6699
  return this._element;
6672
6700
  }
6701
+ get isVisible() {
6702
+ return this._isVisible;
6703
+ }
6673
6704
  constructor(options) {
6674
6705
  super();
6675
6706
  this.options = options;
@@ -6680,6 +6711,7 @@
6680
6711
  this.onDidChangeEnd = this._onDidChangeEnd.event;
6681
6712
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
6682
6713
  this._element.className = 'dv-resize-container';
6714
+ this._isVisible = true;
6683
6715
  this.setupResize('top');
6684
6716
  this.setupResize('bottom');
6685
6717
  this.setupResize('left');
@@ -6694,6 +6726,13 @@
6694
6726
  this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
6695
6727
  arialLevelTracker.push(this._element);
6696
6728
  }
6729
+ setVisible(isVisible) {
6730
+ if (isVisible === this.isVisible) {
6731
+ return;
6732
+ }
6733
+ this._isVisible = isVisible;
6734
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
6735
+ }
6697
6736
  bringToFront() {
6698
6737
  arialLevelTracker.push(this._element);
6699
6738
  }
@@ -7244,7 +7283,6 @@
7244
7283
  window: this._window.value,
7245
7284
  });
7246
7285
  this._window.disposable.dispose();
7247
- this._window.value.close();
7248
7286
  this._window = null;
7249
7287
  this._onDidClose.fire();
7250
7288
  }
@@ -7276,7 +7314,9 @@
7276
7314
  }
7277
7315
  const disposable = new CompositeDisposable();
7278
7316
  this._window = { value: externalWindow, disposable };
7279
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7317
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7318
+ externalWindow.close();
7319
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7280
7320
  /**
7281
7321
  * before the main window closes we should close this popup too
7282
7322
  * to be good citizens
@@ -7293,7 +7333,7 @@
7293
7333
  id: this.target,
7294
7334
  window: externalWindow,
7295
7335
  });
7296
- return new Promise((resolve) => {
7336
+ return new Promise((resolve, reject) => {
7297
7337
  externalWindow.addEventListener('unload', (e) => {
7298
7338
  // if page fails to load before unloading
7299
7339
  // this.close();
@@ -7302,21 +7342,27 @@
7302
7342
  /**
7303
7343
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7304
7344
  */
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', () => {
7345
+ try {
7346
+ const externalDocument = externalWindow.document;
7347
+ externalDocument.title = document.title;
7348
+ externalDocument.body.appendChild(container);
7349
+ addStyles(externalDocument, window.document.styleSheets);
7314
7350
  /**
7315
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7351
+ * beforeunload must be registered after load for reasons I could not determine
7352
+ * otherwise the beforeunload event will not fire when the window is closed
7316
7353
  */
7317
- this.close();
7318
- });
7319
- resolve(container);
7354
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7355
+ /**
7356
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7357
+ */
7358
+ this.close();
7359
+ });
7360
+ resolve(container);
7361
+ }
7362
+ catch (err) {
7363
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7364
+ reject(err);
7365
+ }
7320
7366
  });
7321
7367
  });
7322
7368
  });
@@ -7423,6 +7469,8 @@
7423
7469
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
7424
7470
  this._onDidMovePanel = new Emitter();
7425
7471
  this.onDidMovePanel = this._onDidMovePanel.event;
7472
+ this._onDidMaximizedGroupChange = new Emitter();
7473
+ this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
7426
7474
  this._floatingGroups = [];
7427
7475
  this._popoutGroups = [];
7428
7476
  this._onDidRemoveGroup = new Emitter();
@@ -7449,6 +7497,11 @@
7449
7497
  if (!this._moving) {
7450
7498
  this._onDidActiveGroupChange.fire(event);
7451
7499
  }
7500
+ }), this.onDidMaximizedChange((event) => {
7501
+ this._onDidMaximizedGroupChange.fire({
7502
+ group: event.panel,
7503
+ isMaximized: event.isMaximized,
7504
+ });
7452
7505
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
7453
7506
  this.updateWatermark();
7454
7507
  }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
@@ -7547,8 +7600,28 @@
7547
7600
  this._api = new DockviewApi(this);
7548
7601
  this.updateWatermark();
7549
7602
  }
7603
+ setVisible(panel, visible) {
7604
+ switch (panel.api.location.type) {
7605
+ case 'grid':
7606
+ super.setVisible(panel, visible);
7607
+ break;
7608
+ case 'floating': {
7609
+ const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
7610
+ if (item) {
7611
+ item.overlay.setVisible(visible);
7612
+ panel.api._onDidVisibilityChange.fire({
7613
+ isVisible: visible,
7614
+ });
7615
+ }
7616
+ break;
7617
+ }
7618
+ case 'popout':
7619
+ console.warn('dockview: You cannot hide a group that is in a popout window');
7620
+ break;
7621
+ }
7622
+ }
7550
7623
  addPopoutGroup(itemToPopout, options) {
7551
- var _a, _b, _c;
7624
+ var _a, _b, _c, _d, _e;
7552
7625
  if (itemToPopout instanceof DockviewPanel &&
7553
7626
  itemToPopout.group.size === 1) {
7554
7627
  return this.addPopoutGroup(itemToPopout.group, options);
@@ -7569,12 +7642,9 @@
7569
7642
  }
7570
7643
  const box = getBox();
7571
7644
  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
7645
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7576
7646
  theme !== null && theme !== void 0 ? theme : '', {
7577
- url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
7647
+ url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
7578
7648
  left: window.screenX + box.left,
7579
7649
  top: window.screenY + box.top,
7580
7650
  width: box.width,
@@ -7588,13 +7658,12 @@
7588
7658
  return _window
7589
7659
  .open()
7590
7660
  .then((popoutContainer) => {
7591
- var _a;
7592
7661
  if (_window.isDisposed) {
7593
- return;
7662
+ return false;
7594
7663
  }
7595
7664
  if (popoutContainer === null) {
7596
7665
  popoutWindowDisposable.dispose();
7597
- return;
7666
+ return false;
7598
7667
  }
7599
7668
  const gready = document.createElement('div');
7600
7669
  gready.className = 'dv-overlay-render-container';
@@ -7603,30 +7672,45 @@
7603
7672
  ? itemToPopout.group
7604
7673
  : itemToPopout;
7605
7674
  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 });
7607
- group.model.renderContainer = overlayRenderContainer;
7608
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7609
- this._onDidAddGroup.fire(group);
7675
+ /**
7676
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7677
+ * of this case is when being called from the `fromJSON(...)` method
7678
+ */
7679
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7680
+ let group;
7681
+ if (!isGroupAddedToDom) {
7682
+ group = referenceGroup;
7610
7683
  }
7611
- if (itemToPopout instanceof DockviewPanel) {
7612
- this.movingLock(() => {
7613
- const panel = referenceGroup.model.removePanel(itemToPopout);
7614
- group.model.openPanel(panel);
7615
- });
7684
+ else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
7685
+ group = options.overridePopoutGroup;
7616
7686
  }
7617
7687
  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;
7688
+ group = this.createGroup({ id: groupId });
7689
+ this._onDidAddGroup.fire(group);
7690
+ }
7691
+ group.model.renderContainer = overlayRenderContainer;
7692
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7693
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7694
+ if (itemToPopout instanceof DockviewPanel) {
7695
+ this.movingLock(() => {
7696
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7697
+ group.model.openPanel(panel);
7698
+ });
7699
+ }
7700
+ else {
7701
+ this.movingLock(() => moveGroupWithoutDestroying({
7702
+ from: referenceGroup,
7703
+ to: group,
7704
+ }));
7705
+ switch (referenceLocation) {
7706
+ case 'grid':
7707
+ referenceGroup.api.setVisible(false);
7708
+ break;
7709
+ case 'floating':
7710
+ case 'popout':
7711
+ this.removeGroup(referenceGroup);
7712
+ break;
7713
+ }
7630
7714
  }
7631
7715
  }
7632
7716
  popoutContainer.classList.add('dv-dockview');
@@ -7636,7 +7720,12 @@
7636
7720
  group.model.location = {
7637
7721
  type: 'popout',
7638
7722
  getWindow: () => _window.window,
7723
+ popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
7639
7724
  };
7725
+ if (isGroupAddedToDom &&
7726
+ itemToPopout.api.location.type === 'grid') {
7727
+ itemToPopout.api.setVisible(false);
7728
+ }
7640
7729
  this.doSetGroupAndPanelActive(group);
7641
7730
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7642
7731
  var _a;
@@ -7648,10 +7737,13 @@
7648
7737
  (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
7649
7738
  }));
7650
7739
  let returnedGroup;
7740
+ const isValidReferenceGroup = isGroupAddedToDom &&
7741
+ referenceGroup &&
7742
+ this.getPanel(referenceGroup.id);
7651
7743
  const value = {
7652
7744
  window: _window,
7653
7745
  popoutGroup: group,
7654
- referenceGroup: this.getPanel(referenceGroup.id)
7746
+ referenceGroup: isValidReferenceGroup
7655
7747
  ? referenceGroup.id
7656
7748
  : undefined,
7657
7749
  disposable: {
@@ -7668,9 +7760,10 @@
7668
7760
  * window dimensions
7669
7761
  */
7670
7762
  addDisposableWindowListener(_window.window, 'resize', () => {
7671
- group.layout(window.innerWidth, window.innerHeight);
7763
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7672
7764
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7673
- if (this.getPanel(referenceGroup.id)) {
7765
+ if (isGroupAddedToDom &&
7766
+ this.getPanel(referenceGroup.id)) {
7674
7767
  this.movingLock(() => moveGroupWithoutDestroying({
7675
7768
  from: group,
7676
7769
  to: referenceGroup,
@@ -7685,21 +7778,27 @@
7685
7778
  }
7686
7779
  }
7687
7780
  else if (this.getPanel(group.id)) {
7688
- const removedGroup = this.doRemoveGroup(group, {
7781
+ this.doRemoveGroup(group, {
7689
7782
  skipDispose: true,
7690
7783
  skipActive: true,
7784
+ skipPopoutReturn: true,
7691
7785
  });
7786
+ const removedGroup = group;
7692
7787
  removedGroup.model.renderContainer =
7693
7788
  this.overlayRenderContainer;
7694
7789
  removedGroup.model.location = { type: 'grid' };
7695
7790
  returnedGroup = removedGroup;
7791
+ this.doAddGroup(removedGroup, [0]);
7792
+ this.doSetGroupAndPanelActive(removedGroup);
7696
7793
  }
7697
7794
  }));
7698
7795
  this._popoutGroups.push(value);
7699
7796
  this.updateWatermark();
7797
+ return true;
7700
7798
  })
7701
7799
  .catch((err) => {
7702
7800
  console.error('dockview: failed to create popout window', err);
7801
+ return false;
7703
7802
  });
7704
7803
  }
7705
7804
  addFloatingGroup(item, options) {
@@ -7803,7 +7902,7 @@
7803
7902
  : (_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
7903
  ? undefined
7805
7904
  : (_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');
7905
+ const el = group.element.querySelector('.dv-void-container');
7807
7906
  if (!el) {
7808
7907
  throw new Error('failed to find drag handle');
7809
7908
  }
@@ -7995,6 +8094,9 @@
7995
8094
  data: group.popoutGroup.toJSON(),
7996
8095
  gridReferenceGroup: group.referenceGroup,
7997
8096
  position: group.window.dimensions(),
8097
+ url: group.popoutGroup.api.location.type === 'popout'
8098
+ ? group.popoutGroup.api.location.popoutUrl
8099
+ : undefined,
7998
8100
  };
7999
8101
  });
8000
8102
  const result = {
@@ -8081,16 +8183,16 @@
8081
8183
  }
8082
8184
  const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
8083
8185
  for (const serializedPopoutGroup of serializedPopoutGroups) {
8084
- const { data, position, gridReferenceGroup } = serializedPopoutGroup;
8186
+ const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
8085
8187
  const group = createGroupFromSerializedState(data);
8086
8188
  this.addPopoutGroup((_c = (gridReferenceGroup
8087
8189
  ? this.getPanel(gridReferenceGroup)
8088
8190
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8089
- skipRemoveGroup: true,
8090
8191
  position: position !== null && position !== void 0 ? position : undefined,
8091
8192
  overridePopoutGroup: gridReferenceGroup
8092
8193
  ? group
8093
8194
  : undefined,
8195
+ popoutUrl: url,
8094
8196
  });
8095
8197
  }
8096
8198
  for (const floatingGroup of this._floatingGroups) {
@@ -8104,6 +8206,7 @@
8104
8206
  }
8105
8207
  }
8106
8208
  catch (err) {
8209
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8107
8210
  /**
8108
8211
  * Takes all the successfully created groups and remove all of their panels.
8109
8212
  */
@@ -8171,11 +8274,13 @@
8171
8274
  width: options.initialWidth,
8172
8275
  height: options.initialHeight,
8173
8276
  };
8277
+ let index;
8174
8278
  if (options.position) {
8175
8279
  if (isPanelOptionsWithPanel(options.position)) {
8176
8280
  const referencePanel = typeof options.position.referencePanel === 'string'
8177
8281
  ? this.getGroupPanel(options.position.referencePanel)
8178
8282
  : options.position.referencePanel;
8283
+ index = options.position.index;
8179
8284
  if (!referencePanel) {
8180
8285
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8181
8286
  }
@@ -8186,6 +8291,7 @@
8186
8291
  typeof options.position.referenceGroup === 'string'
8187
8292
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8188
8293
  : options.position.referenceGroup;
8294
+ index = options.position.index;
8189
8295
  if (!referenceGroup) {
8190
8296
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8191
8297
  }
@@ -8196,6 +8302,7 @@
8196
8302
  group.model.openPanel(panel, {
8197
8303
  skipSetActive: options.inactive,
8198
8304
  skipSetGroupActive: options.inactive,
8305
+ index,
8199
8306
  });
8200
8307
  if (!options.inactive) {
8201
8308
  this.doSetGroupAndPanelActive(group);
@@ -8225,6 +8332,7 @@
8225
8332
  group.model.openPanel(panel, {
8226
8333
  skipSetActive: options.inactive,
8227
8334
  skipSetGroupActive: options.inactive,
8335
+ index,
8228
8336
  });
8229
8337
  }
8230
8338
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8233,6 +8341,7 @@
8233
8341
  referenceGroup.model.openPanel(panel, {
8234
8342
  skipSetActive: options.inactive,
8235
8343
  skipSetGroupActive: options.inactive,
8344
+ index,
8236
8345
  });
8237
8346
  referenceGroup.api.setSize({
8238
8347
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8253,6 +8362,7 @@
8253
8362
  group.model.openPanel(panel, {
8254
8363
  skipSetActive: options.inactive,
8255
8364
  skipSetGroupActive: options.inactive,
8365
+ index,
8256
8366
  });
8257
8367
  if (!options.inactive) {
8258
8368
  this.doSetGroupAndPanelActive(group);
@@ -8271,6 +8381,7 @@
8271
8381
  group.model.openPanel(panel, {
8272
8382
  skipSetActive: options.inactive,
8273
8383
  skipSetGroupActive: options.inactive,
8384
+ index,
8274
8385
  });
8275
8386
  }
8276
8387
  else {
@@ -8281,6 +8392,7 @@
8281
8392
  group.model.openPanel(panel, {
8282
8393
  skipSetActive: options.inactive,
8283
8394
  skipSetGroupActive: options.inactive,
8395
+ index,
8284
8396
  });
8285
8397
  if (!options.inactive) {
8286
8398
  this.doSetGroupAndPanelActive(group);
@@ -8290,7 +8402,6 @@
8290
8402
  }
8291
8403
  removePanel(panel, options = {
8292
8404
  removeEmptyGroup: true,
8293
- skipDispose: false,
8294
8405
  }) {
8295
8406
  const group = panel.group;
8296
8407
  if (!group) {
@@ -8821,6 +8932,31 @@
8821
8932
  }
8822
8933
  }
8823
8934
 
8935
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8936
+ const Component = typeof componentName === 'string'
8937
+ ? components[componentName]
8938
+ : undefined;
8939
+ const FrameworkComponent = typeof componentName === 'string'
8940
+ ? frameworkComponents[componentName]
8941
+ : undefined;
8942
+ if (Component && FrameworkComponent) {
8943
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8944
+ }
8945
+ if (FrameworkComponent) {
8946
+ if (!createFrameworkComponent) {
8947
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8948
+ }
8949
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8950
+ }
8951
+ if (!Component) {
8952
+ if (fallback) {
8953
+ return fallback();
8954
+ }
8955
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8956
+ }
8957
+ return new Component(id, componentName);
8958
+ }
8959
+
8824
8960
  class GridviewComponent extends BaseGrid {
8825
8961
  get orientation() {
8826
8962
  return this.gridview.orientation;
@@ -9369,12 +9505,14 @@
9369
9505
  this._expandedIcon = createExpandMoreButton();
9370
9506
  this._collapsedIcon = createChevronRightButton();
9371
9507
  this.disposable = new MutableDisposable();
9372
- this.apiRef = { api: null };
9508
+ this.apiRef = {
9509
+ api: null,
9510
+ };
9373
9511
  this._element = document.createElement('div');
9374
- this.element.className = 'default-header';
9512
+ this.element.className = 'dv-default-header';
9375
9513
  this._content = document.createElement('span');
9376
9514
  this._expander = document.createElement('div');
9377
- this._expander.className = 'dockview-pane-header-icon';
9515
+ this._expander.className = 'dv-pane-header-icon';
9378
9516
  this.element.appendChild(this._expander);
9379
9517
  this.element.appendChild(this._content);
9380
9518
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -10231,22 +10369,6 @@
10231
10369
  disposable.dispose();
10232
10370
  };
10233
10371
  }, [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
10372
  React.useEffect(() => {
10251
10373
  if (!dockviewRef.current) {
10252
10374
  return () => {
@@ -10664,7 +10786,6 @@
10664
10786
  exports.GridviewComponent = GridviewComponent;
10665
10787
  exports.GridviewPanel = GridviewPanel;
10666
10788
  exports.GridviewReact = GridviewReact;
10667
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
10668
10789
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
10669
10790
  exports.PaneFramework = PaneFramework;
10670
10791
  exports.PaneTransfer = PaneTransfer;
@@ -10683,7 +10804,6 @@
10683
10804
  exports.SplitviewReact = SplitviewReact;
10684
10805
  exports.Tab = Tab;
10685
10806
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10686
- exports.createComponent = createComponent;
10687
10807
  exports.createDockview = createDockview;
10688
10808
  exports.createGridview = createGridview;
10689
10809
  exports.createPaneview = createPaneview;