dockview-core 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.
Files changed (132) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -3
  2. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
  3. package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
  4. package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
  5. package/dist/cjs/api/dockviewPanelApi.js +5 -3
  6. package/dist/cjs/dnd/abstractDragHandler.js +1 -1
  7. package/dist/cjs/dnd/dnd.d.ts +2 -2
  8. package/dist/cjs/dnd/droptarget.js +4 -4
  9. package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
  10. package/dist/cjs/dockview/components/panel/content.js +3 -1
  11. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
  12. package/dist/cjs/dockview/components/tab/tab.js +4 -4
  13. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
  14. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -2
  15. package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
  16. package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
  17. package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
  18. package/dist/cjs/dockview/dockviewComponent.js +103 -38
  19. package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
  20. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
  21. package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
  22. package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
  23. package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
  24. package/dist/cjs/dockview/options.d.ts +12 -0
  25. package/dist/cjs/dockview/options.js +1 -0
  26. package/dist/cjs/dom.d.ts +11 -1
  27. package/dist/cjs/dom.js +19 -1
  28. package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
  29. package/dist/cjs/gridview/baseComponentGridview.js +8 -8
  30. package/dist/cjs/gridview/basePanelView.d.ts +1 -1
  31. package/dist/cjs/gridview/branchNode.d.ts +1 -1
  32. package/dist/cjs/gridview/branchNode.js +1 -1
  33. package/dist/cjs/gridview/gridview.d.ts +9 -1
  34. package/dist/cjs/gridview/gridview.js +51 -7
  35. package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
  36. package/dist/cjs/gridview/gridviewPanel.js +60 -32
  37. package/dist/cjs/gridview/leafNode.d.ts +1 -1
  38. package/dist/cjs/index.d.ts +8 -9
  39. package/dist/cjs/index.js +14 -7
  40. package/dist/cjs/overlay/overlay.d.ts +6 -3
  41. package/dist/cjs/overlay/overlay.js +15 -0
  42. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
  43. package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
  44. package/dist/cjs/paneview/paneview.d.ts +3 -3
  45. package/dist/cjs/paneview/paneview.js +3 -3
  46. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
  47. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
  48. package/dist/cjs/paneview/paneviewPanel.js +3 -3
  49. package/dist/cjs/popoutWindow.js +23 -16
  50. package/dist/cjs/splitview/splitview.d.ts +6 -6
  51. package/dist/cjs/splitview/splitview.js +18 -17
  52. package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
  53. package/dist/cjs/splitview/viewItem.d.ts +1 -1
  54. package/dist/cjs/svg.js +1 -1
  55. package/dist/dockview-core.amd.js +346 -210
  56. package/dist/dockview-core.amd.js.map +1 -1
  57. package/dist/dockview-core.amd.min.js +2 -2
  58. package/dist/dockview-core.amd.min.js.map +1 -1
  59. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  60. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  61. package/dist/dockview-core.amd.noStyle.js +345 -209
  62. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  63. package/dist/dockview-core.cjs.js +346 -210
  64. package/dist/dockview-core.cjs.js.map +1 -1
  65. package/dist/dockview-core.esm.js +347 -209
  66. package/dist/dockview-core.esm.js.map +1 -1
  67. package/dist/dockview-core.esm.min.js +2 -2
  68. package/dist/dockview-core.esm.min.js.map +1 -1
  69. package/dist/dockview-core.js +346 -210
  70. package/dist/dockview-core.js.map +1 -1
  71. package/dist/dockview-core.min.js +2 -2
  72. package/dist/dockview-core.min.js.map +1 -1
  73. package/dist/dockview-core.min.noStyle.js +2 -2
  74. package/dist/dockview-core.min.noStyle.js.map +1 -1
  75. package/dist/dockview-core.noStyle.js +345 -209
  76. package/dist/dockview-core.noStyle.js.map +1 -1
  77. package/dist/esm/api/component.api.d.ts +3 -3
  78. package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
  79. package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
  80. package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
  81. package/dist/esm/api/dockviewPanelApi.js +5 -3
  82. package/dist/esm/dnd/abstractDragHandler.js +1 -1
  83. package/dist/esm/dnd/dnd.d.ts +2 -2
  84. package/dist/esm/dnd/droptarget.js +4 -4
  85. package/dist/esm/dockview/components/panel/content.d.ts +2 -2
  86. package/dist/esm/dockview/components/panel/content.js +4 -2
  87. package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
  88. package/dist/esm/dockview/components/tab/tab.js +4 -4
  89. package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
  90. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -2
  91. package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
  92. package/dist/esm/dockview/components/watermark/watermark.js +2 -34
  93. package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
  94. package/dist/esm/dockview/dockviewComponent.js +102 -37
  95. package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
  96. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
  97. package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
  98. package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
  99. package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
  100. package/dist/esm/dockview/options.d.ts +12 -0
  101. package/dist/esm/dockview/options.js +1 -0
  102. package/dist/esm/dom.d.ts +11 -1
  103. package/dist/esm/dom.js +14 -0
  104. package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
  105. package/dist/esm/gridview/baseComponentGridview.js +8 -4
  106. package/dist/esm/gridview/basePanelView.d.ts +1 -1
  107. package/dist/esm/gridview/branchNode.d.ts +1 -1
  108. package/dist/esm/gridview/branchNode.js +1 -1
  109. package/dist/esm/gridview/gridview.d.ts +9 -1
  110. package/dist/esm/gridview/gridview.js +51 -7
  111. package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
  112. package/dist/esm/gridview/gridviewPanel.js +40 -12
  113. package/dist/esm/gridview/leafNode.d.ts +1 -1
  114. package/dist/esm/index.d.ts +8 -9
  115. package/dist/esm/index.js +5 -6
  116. package/dist/esm/overlay/overlay.d.ts +6 -3
  117. package/dist/esm/overlay/overlay.js +11 -0
  118. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
  119. package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
  120. package/dist/esm/paneview/paneview.d.ts +3 -3
  121. package/dist/esm/paneview/paneview.js +3 -3
  122. package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
  123. package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
  124. package/dist/esm/paneview/paneviewPanel.js +3 -3
  125. package/dist/esm/popoutWindow.js +24 -17
  126. package/dist/esm/splitview/splitview.d.ts +6 -6
  127. package/dist/esm/splitview/splitview.js +18 -17
  128. package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
  129. package/dist/esm/splitview/viewItem.d.ts +1 -1
  130. package/dist/esm/svg.js +1 -1
  131. package/dist/styles/dockview.css +111 -151
  132. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.17.2
3
+ * @version 2.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -33,7 +33,7 @@ function styleInject(css, ref) {
33
33
  }
34
34
  }
35
35
 
36
- 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}";
36
+ 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}";
37
37
  styleInject(css_248z);
38
38
 
39
39
  class TransferObject {
@@ -354,31 +354,6 @@ class MutableDisposable {
354
354
  }
355
355
  }
356
356
 
357
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
358
- const Component = typeof componentName === 'string'
359
- ? components[componentName]
360
- : undefined;
361
- const FrameworkComponent = typeof componentName === 'string'
362
- ? frameworkComponents[componentName]
363
- : undefined;
364
- if (Component && FrameworkComponent) {
365
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
366
- }
367
- if (FrameworkComponent) {
368
- if (!createFrameworkComponent) {
369
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
370
- }
371
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
372
- }
373
- if (!Component) {
374
- if (fallback) {
375
- return fallback();
376
- }
377
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
378
- }
379
- return new Component(id, componentName);
380
- }
381
-
382
357
  function watchElementResize(element, cb) {
383
358
  const observer = new ResizeObserver((entires) => {
384
359
  /**
@@ -847,10 +822,10 @@ class Splitview {
847
822
  const tmp = this.size;
848
823
  this.size = this.orthogonalSize;
849
824
  this.orthogonalSize = tmp;
850
- removeClasses(this.element, 'horizontal', 'vertical');
825
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
851
826
  this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
852
- ? 'horizontal'
853
- : 'vertical');
827
+ ? 'dv-horizontal'
828
+ : 'dv-vertical');
854
829
  }
855
830
  get minimumSize() {
856
831
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -1028,11 +1003,11 @@ class Splitview {
1028
1003
  }
1029
1004
  style(styles) {
1030
1005
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1031
- removeClasses(this.element, 'separator-border');
1006
+ removeClasses(this.element, 'dv-separator-border');
1032
1007
  this.element.style.removeProperty('--dv-separator-border');
1033
1008
  }
1034
1009
  else {
1035
- addClasses(this.element, 'separator-border');
1010
+ addClasses(this.element, 'dv-separator-border');
1036
1011
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1037
1012
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1038
1013
  }
@@ -1102,7 +1077,7 @@ class Splitview {
1102
1077
  }
1103
1078
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1104
1079
  const container = document.createElement('div');
1105
- container.className = 'view';
1080
+ container.className = 'dv-view';
1106
1081
  container.appendChild(view.element);
1107
1082
  let viewSize;
1108
1083
  if (typeof size === 'number') {
@@ -1134,7 +1109,7 @@ class Splitview {
1134
1109
  if (this.viewItems.length > 1) {
1135
1110
  //add sash
1136
1111
  const sash = document.createElement('div');
1137
- sash.className = 'sash';
1112
+ sash.className = 'dv-sash';
1138
1113
  const onPointerStart = (event) => {
1139
1114
  for (const item of this.viewItems) {
1140
1115
  item.enabled = false;
@@ -1393,7 +1368,8 @@ class Splitview {
1393
1368
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1394
1369
  ? 0
1395
1370
  : viewLeftOffsets[i - 1] +
1396
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1371
+ (visiblePanelsBeforeThisView / sashCount) *
1372
+ marginReducedSize;
1397
1373
  if (i < this.viewItems.length - 1) {
1398
1374
  // calculate sash position
1399
1375
  const newSize = view.visible
@@ -1504,27 +1480,27 @@ class Splitview {
1504
1480
  }
1505
1481
  }
1506
1482
  updateSash(sash, state) {
1507
- toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
1508
- toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
1509
- toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
1510
- toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
1483
+ toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
1484
+ toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
1485
+ toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
1486
+ toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
1511
1487
  }
1512
1488
  createViewContainer() {
1513
1489
  const element = document.createElement('div');
1514
- element.className = 'view-container';
1490
+ element.className = 'dv-view-container';
1515
1491
  return element;
1516
1492
  }
1517
1493
  createSashContainer() {
1518
1494
  const element = document.createElement('div');
1519
- element.className = 'sash-container';
1495
+ element.className = 'dv-sash-container';
1520
1496
  return element;
1521
1497
  }
1522
1498
  createContainer() {
1523
1499
  const element = document.createElement('div');
1524
1500
  const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
1525
- ? 'horizontal'
1526
- : 'vertical';
1527
- element.className = `split-view-container ${orientationClassname}`;
1501
+ ? 'dv-horizontal'
1502
+ : 'dv-vertical';
1503
+ element.className = `dv-split-view-container ${orientationClassname}`;
1528
1504
  return element;
1529
1505
  }
1530
1506
  dispose() {
@@ -1575,7 +1551,7 @@ class Paneview extends CompositeDisposable {
1575
1551
  this.onDidChange = this._onDidChange.event;
1576
1552
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
1577
1553
  this.element = document.createElement('div');
1578
- this.element.className = 'pane-container';
1554
+ this.element.className = 'dv-pane-container';
1579
1555
  container.appendChild(this.element);
1580
1556
  this.splitview = new Splitview(this.element, {
1581
1557
  orientation: this._orientation,
@@ -1667,10 +1643,10 @@ class Paneview extends CompositeDisposable {
1667
1643
  clearTimeout(this.animationTimer);
1668
1644
  this.animationTimer = undefined;
1669
1645
  }
1670
- addClasses(this.element, 'animated');
1646
+ addClasses(this.element, 'dv-animated');
1671
1647
  this.animationTimer = setTimeout(() => {
1672
1648
  this.animationTimer = undefined;
1673
- removeClasses(this.element, 'animated');
1649
+ removeClasses(this.element, 'dv-animated');
1674
1650
  }, 200);
1675
1651
  }
1676
1652
  dispose() {
@@ -1895,7 +1871,7 @@ class BranchNode extends CompositeDisposable {
1895
1871
  this._orthogonalSize = orthogonalSize;
1896
1872
  this._size = size;
1897
1873
  this.element = document.createElement('div');
1898
- this.element.className = 'branch-node';
1874
+ this.element.className = 'dv-branch-node';
1899
1875
  if (!childDescriptors) {
1900
1876
  this.splitview = new Splitview(this.element, {
1901
1877
  orientation: this.orientation,
@@ -2106,7 +2082,7 @@ function getGridLocation(element) {
2106
2082
  if (!parentElement) {
2107
2083
  throw new Error('Invalid grid element');
2108
2084
  }
2109
- if (/\bgrid-view\b/.test(parentElement.className)) {
2085
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2110
2086
  return [];
2111
2087
  }
2112
2088
  const index = indexInParent(parentElement);
@@ -2243,6 +2219,7 @@ class Gridview {
2243
2219
  if (this.hasMaximizedView()) {
2244
2220
  this.exitMaximizedView();
2245
2221
  }
2222
+ serializeBranchNode(this.getView(), this.orientation);
2246
2223
  const hiddenOnMaximize = [];
2247
2224
  function hideAllViewsBut(parent, exclude) {
2248
2225
  for (let i = 0; i < parent.children.length; i++) {
@@ -2264,7 +2241,10 @@ class Gridview {
2264
2241
  }
2265
2242
  hideAllViewsBut(this.root, node);
2266
2243
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
2267
- this._onDidMaximizedNodeChange.fire();
2244
+ this._onDidMaximizedNodeChange.fire({
2245
+ view: node.view,
2246
+ isMaximized: true,
2247
+ });
2268
2248
  }
2269
2249
  exitMaximizedView() {
2270
2250
  if (!this._maximizedNode) {
@@ -2285,24 +2265,51 @@ class Gridview {
2285
2265
  }
2286
2266
  }
2287
2267
  showViewsInReverseOrder(this.root);
2268
+ const tmp = this._maximizedNode.leaf;
2288
2269
  this._maximizedNode = undefined;
2289
- this._onDidMaximizedNodeChange.fire();
2270
+ this._onDidMaximizedNodeChange.fire({
2271
+ view: tmp.view,
2272
+ isMaximized: false,
2273
+ });
2290
2274
  }
2291
2275
  serialize() {
2276
+ const maximizedView = this.maximizedView();
2277
+ let maxmizedViewLocation;
2278
+ if (maximizedView) {
2279
+ /**
2280
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
2281
+ * which is represented as a branch of indices
2282
+ */
2283
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
2284
+ }
2292
2285
  if (this.hasMaximizedView()) {
2293
2286
  /**
2294
- * do not persist maximized view state
2295
- * firstly exit any maximized views to ensure the correct dimensions are persisted
2287
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
2288
+ * view dimensions will be wrong
2289
+ *
2290
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
2291
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
2292
+ * perspective when `.toJSON()` is called
2296
2293
  */
2297
2294
  this.exitMaximizedView();
2298
2295
  }
2299
2296
  const root = serializeBranchNode(this.getView(), this.orientation);
2300
- return {
2297
+ const resullt = {
2301
2298
  root,
2302
2299
  width: this.width,
2303
2300
  height: this.height,
2304
2301
  orientation: this.orientation,
2305
2302
  };
2303
+ if (maxmizedViewLocation) {
2304
+ resullt.maximizedNode = {
2305
+ location: maxmizedViewLocation,
2306
+ };
2307
+ }
2308
+ if (maximizedView) {
2309
+ // replace any maximzied view that was removed for serialization purposes
2310
+ this.maximizeView(maximizedView);
2311
+ }
2312
+ return resullt;
2306
2313
  }
2307
2314
  dispose() {
2308
2315
  this.disposable.dispose();
@@ -2321,6 +2328,19 @@ class Gridview {
2321
2328
  const orientation = json.orientation;
2322
2329
  const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
2323
2330
  this._deserialize(json.root, orientation, deserializer, height);
2331
+ /**
2332
+ * The deserialied layout must be positioned through this.layout(...)
2333
+ * before any maximizedNode can be positioned
2334
+ */
2335
+ this.layout(json.width, json.height);
2336
+ if (json.maximizedNode) {
2337
+ const location = json.maximizedNode.location;
2338
+ const [_, node] = this.getNode(location);
2339
+ if (!(node instanceof LeafNode)) {
2340
+ return;
2341
+ }
2342
+ this.maximizeView(node.view);
2343
+ }
2324
2344
  }
2325
2345
  _deserialize(root, orientation, deserializer, orthogonalSize) {
2326
2346
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -2454,7 +2474,7 @@ class Gridview {
2454
2474
  this._onDidMaximizedNodeChange = new Emitter();
2455
2475
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2456
2476
  this.element = document.createElement('div');
2457
- this.element.className = 'grid-view';
2477
+ this.element.className = 'dv-grid-view';
2458
2478
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2459
2479
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2460
2480
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -2745,6 +2765,8 @@ class BaseGrid extends Resizable {
2745
2765
  this.onDidRemove = this._onDidRemove.event;
2746
2766
  this._onDidAdd = new Emitter();
2747
2767
  this.onDidAdd = this._onDidAdd.event;
2768
+ this._onDidMaximizedChange = new Emitter();
2769
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
2748
2770
  this._onDidActiveChange = new Emitter();
2749
2771
  this.onDidActiveChange = this._onDidActiveChange.event;
2750
2772
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -2760,7 +2782,12 @@ class BaseGrid extends Resizable {
2760
2782
  this.gridview.locked = !!options.locked;
2761
2783
  this.element.appendChild(this.gridview.element);
2762
2784
  this.layout(0, 0, true); // set some elements height/widths
2763
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2785
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
2786
+ this._onDidMaximizedChange.fire({
2787
+ panel: event.view,
2788
+ isMaximized: event.isMaximized,
2789
+ });
2790
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2764
2791
  this.layout(this.width, this.height, true);
2765
2792
  }), exports.DockviewDisposable.from(() => {
2766
2793
  var _a;
@@ -2810,9 +2837,6 @@ class BaseGrid extends Resizable {
2810
2837
  hasMaximizedGroup() {
2811
2838
  return this.gridview.hasMaximizedView();
2812
2839
  }
2813
- get onDidMaximizedGroupChange() {
2814
- return this.gridview.onDidMaximizedNodeChange;
2815
- }
2816
2840
  doAddGroup(group, location = [0], size) {
2817
2841
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
2818
2842
  this._onDidAdd.fire(group);
@@ -3676,7 +3700,7 @@ class DragHandler extends CompositeDisposable {
3676
3700
  * dnd logic. You can see the code at
3677
3701
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3678
3702
  */
3679
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3703
+ event.dataTransfer.setData('text/plain', '');
3680
3704
  }
3681
3705
  }
3682
3706
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3850,12 +3874,12 @@ class Droptarget extends CompositeDisposable {
3850
3874
  this.markAsUsed(e);
3851
3875
  if (!this.targetElement) {
3852
3876
  this.targetElement = document.createElement('div');
3853
- this.targetElement.className = 'drop-target-dropzone';
3877
+ this.targetElement.className = 'dv-drop-target-dropzone';
3854
3878
  this.overlayElement = document.createElement('div');
3855
- this.overlayElement.className = 'drop-target-selection';
3879
+ this.overlayElement.className = 'dv-drop-target-selection';
3856
3880
  this._state = 'center';
3857
3881
  this.targetElement.appendChild(this.overlayElement);
3858
- this.element.classList.add('drop-target');
3882
+ this.element.classList.add('dv-drop-target');
3859
3883
  this.element.append(this.targetElement);
3860
3884
  }
3861
3885
  this.toggleClasses(quadrant, width, height);
@@ -3993,7 +4017,7 @@ class Droptarget extends CompositeDisposable {
3993
4017
  this.element.removeChild(this.targetElement);
3994
4018
  this.targetElement = undefined;
3995
4019
  this.overlayElement = undefined;
3996
- this.element.classList.remove('drop-target');
4020
+ this.element.classList.remove('dv-drop-target');
3997
4021
  }
3998
4022
  }
3999
4023
  }
@@ -4330,7 +4354,7 @@ class PaneviewPanel extends BasePanelView {
4330
4354
  this._headerVisible = isHeaderVisible;
4331
4355
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4332
4356
  this._orientation = orientation;
4333
- this.element.classList.add('pane');
4357
+ this.element.classList.add('dv-pane');
4334
4358
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4335
4359
  const { isVisible } = event;
4336
4360
  const { accessor } = this._params;
@@ -4427,14 +4451,14 @@ class PaneviewPanel extends BasePanelView {
4427
4451
  renderOnce() {
4428
4452
  this.header = document.createElement('div');
4429
4453
  this.header.tabIndex = 0;
4430
- this.header.className = 'pane-header';
4454
+ this.header.className = 'dv-pane-header';
4431
4455
  this.header.style.height = `${this.headerSize}px`;
4432
4456
  this.header.style.lineHeight = `${this.headerSize}px`;
4433
4457
  this.header.style.minHeight = `${this.headerSize}px`;
4434
4458
  this.header.style.maxHeight = `${this.headerSize}px`;
4435
4459
  this.element.appendChild(this.header);
4436
4460
  this.body = document.createElement('div');
4437
- this.body.className = 'pane-body';
4461
+ this.body.className = 'dv-pane-body';
4438
4462
  this.element.appendChild(this.body);
4439
4463
  }
4440
4464
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4555,7 +4579,7 @@ class ContentContainer extends CompositeDisposable {
4555
4579
  this._onDidBlur = new Emitter();
4556
4580
  this.onDidBlur = this._onDidBlur.event;
4557
4581
  this._element = document.createElement('div');
4558
- this._element.className = 'content-container';
4582
+ this._element.className = 'dv-content-container';
4559
4583
  this._element.tabIndex = -1;
4560
4584
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4561
4585
  this.dropTarget = new Droptarget(this.element, {
@@ -4628,6 +4652,8 @@ class ContentContainer extends CompositeDisposable {
4628
4652
  referenceContainer: this,
4629
4653
  });
4630
4654
  break;
4655
+ default:
4656
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4631
4657
  }
4632
4658
  if (doRender) {
4633
4659
  const focusTracker = trackFocus(container);
@@ -4694,10 +4720,10 @@ class Tab extends CompositeDisposable {
4694
4720
  this._onDragStart = new Emitter();
4695
4721
  this.onDragStart = this._onDragStart.event;
4696
4722
  this._element = document.createElement('div');
4697
- this._element.className = 'tab';
4723
+ this._element.className = 'dv-tab';
4698
4724
  this._element.tabIndex = 0;
4699
4725
  this._element.draggable = true;
4700
- toggleClass(this.element, 'inactive-tab', true);
4726
+ toggleClass(this.element, 'dv-inactive-tab', true);
4701
4727
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4702
4728
  this.dropTarget = new Droptarget(this._element, {
4703
4729
  acceptedTargetZones: ['center'],
@@ -4730,8 +4756,8 @@ class Tab extends CompositeDisposable {
4730
4756
  }), this.dropTarget);
4731
4757
  }
4732
4758
  setActive(isActive) {
4733
- toggleClass(this.element, 'active-tab', isActive);
4734
- toggleClass(this.element, 'inactive-tab', !isActive);
4759
+ toggleClass(this.element, 'dv-active-tab', isActive);
4760
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4735
4761
  }
4736
4762
  setContent(part) {
4737
4763
  if (this.content) {
@@ -4819,8 +4845,7 @@ class VoidContainer extends CompositeDisposable {
4819
4845
  this._onDragStart = new Emitter();
4820
4846
  this.onDragStart = this._onDragStart.event;
4821
4847
  this._element = document.createElement('div');
4822
- this._element.className = 'void-container';
4823
- this._element.tabIndex = 0;
4848
+ this._element.className = 'dv-void-container';
4824
4849
  this._element.draggable = true;
4825
4850
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4826
4851
  this.accessor.doSetGroupActive(this.group);
@@ -4939,16 +4964,16 @@ class TabsContainer extends CompositeDisposable {
4939
4964
  this._onWillShowOverlay = new Emitter();
4940
4965
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4941
4966
  this._element = document.createElement('div');
4942
- this._element.className = 'tabs-and-actions-container';
4967
+ this._element.className = 'dv-tabs-and-actions-container';
4943
4968
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4944
4969
  this.rightActionsContainer = document.createElement('div');
4945
- this.rightActionsContainer.className = 'right-actions-container';
4970
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4946
4971
  this.leftActionsContainer = document.createElement('div');
4947
- this.leftActionsContainer.className = 'left-actions-container';
4972
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4948
4973
  this.preActionsContainer = document.createElement('div');
4949
- this.preActionsContainer.className = 'pre-actions-container';
4974
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4950
4975
  this.tabContainer = document.createElement('div');
4951
- this.tabContainer.className = 'tabs-container';
4976
+ this.tabContainer.className = 'dv-tabs-container';
4952
4977
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4953
4978
  this._element.appendChild(this.preActionsContainer);
4954
4979
  this._element.appendChild(this.tabContainer);
@@ -5037,14 +5062,10 @@ class TabsContainer extends CompositeDisposable {
5037
5062
  });
5038
5063
  }
5039
5064
  openPanel(panel, index = this.tabs.length) {
5040
- var _a;
5041
5065
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5042
5066
  return;
5043
5067
  }
5044
5068
  const tab = new Tab(panel, this.accessor, this.group);
5045
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5046
- throw new Error('invalid header component');
5047
- }
5048
5069
  tab.setContent(panel.view.tab);
5049
5070
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5050
5071
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5138,6 +5159,7 @@ const PROPERTY_KEYS = (() => {
5138
5159
  disableDnd: undefined,
5139
5160
  gap: undefined,
5140
5161
  className: undefined,
5162
+ noPanelsOverlay: undefined,
5141
5163
  };
5142
5164
  return Object.keys(properties);
5143
5165
  })();
@@ -5234,7 +5256,7 @@ class WillShowOverlayLocationEvent {
5234
5256
  }
5235
5257
  class DockviewGroupPanelModel extends CompositeDisposable {
5236
5258
  get element() {
5237
- throw new Error('not supported');
5259
+ throw new Error('dockview: not supported');
5238
5260
  }
5239
5261
  get activePanel() {
5240
5262
  return this._activePanel;
@@ -5244,7 +5266,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5244
5266
  }
5245
5267
  set locked(value) {
5246
5268
  this._locked = value;
5247
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5269
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5248
5270
  }
5249
5271
  get isActive() {
5250
5272
  return this._isGroupActive;
@@ -5315,6 +5337,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5315
5337
  this._locked = false;
5316
5338
  this._location = { type: 'grid' };
5317
5339
  this.mostRecentlyUsed = [];
5340
+ this._overwriteRenderContainer = null;
5318
5341
  this._onDidChange = new Emitter();
5319
5342
  this.onDidChange = this._onDidChange.event;
5320
5343
  this._width = 0;
@@ -5345,8 +5368,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5345
5368
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5346
5369
  this._onUnhandledDragOverEvent = new Emitter();
5347
5370
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5348
- this._overwriteRenderContainer = null;
5349
- toggleClass(this.container, 'groupview', true);
5371
+ toggleClass(this.container, 'dv-groupview', true);
5350
5372
  this._api = new DockviewApi(this.accessor);
5351
5373
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5352
5374
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5578,7 +5600,10 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5578
5600
  this.doClose(panel);
5579
5601
  }
5580
5602
  doClose(panel) {
5581
- this.accessor.removePanel(panel);
5603
+ const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
5604
+ this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
5605
+ ? { removeEmptyGroup: false }
5606
+ : undefined);
5582
5607
  }
5583
5608
  isPanelActive(panel) {
5584
5609
  return this._activePanel === panel;
@@ -5591,8 +5616,8 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5591
5616
  return;
5592
5617
  }
5593
5618
  this._isGroupActive = isGroupActive;
5594
- toggleClass(this.container, 'active-group', isGroupActive);
5595
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5619
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5620
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5596
5621
  this.tabsContainer.setActive(this.isActive);
5597
5622
  if (!this._activePanel && this.panels.length > 0) {
5598
5623
  this.doSetActivePanel(this.panels[0]);
@@ -5684,7 +5709,6 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5684
5709
  }
5685
5710
  updateContainer() {
5686
5711
  var _a, _b;
5687
- toggleClass(this.container, 'empty', this.isEmpty);
5688
5712
  this.panels.forEach((panel) => panel.runEvents());
5689
5713
  if (this.isEmpty && !this.watermark) {
5690
5714
  const watermark = this.accessor.createWatermarkComponent();
@@ -5698,14 +5722,12 @@ class DockviewGroupPanelModel extends CompositeDisposable {
5698
5722
  this.accessor.doSetGroupActive(this.groupPanel);
5699
5723
  }
5700
5724
  });
5701
- this.tabsContainer.hide();
5702
5725
  this.contentContainer.element.appendChild(this.watermark.element);
5703
5726
  }
5704
5727
  if (!this.isEmpty && this.watermark) {
5705
5728
  this.watermark.element.remove();
5706
5729
  (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
5707
5730
  this.watermark = undefined;
5708
- this.tabsContainer.show();
5709
5731
  }
5710
5732
  }
5711
5733
  canDisplayOverlay(event, position, target) {
@@ -5825,6 +5847,34 @@ class GridviewPanel extends BasePanelView {
5825
5847
  return this._snap;
5826
5848
  }
5827
5849
  get minimumWidth() {
5850
+ /**
5851
+ * defer to protected function to allow subclasses to override easily.
5852
+ * see https://github.com/microsoft/TypeScript/issues/338
5853
+ */
5854
+ return this.__minimumWidth();
5855
+ }
5856
+ get minimumHeight() {
5857
+ /**
5858
+ * defer to protected function to allow subclasses to override easily.
5859
+ * see https://github.com/microsoft/TypeScript/issues/338
5860
+ */
5861
+ return this.__minimumHeight();
5862
+ }
5863
+ get maximumHeight() {
5864
+ /**
5865
+ * defer to protected function to allow subclasses to override easily.
5866
+ * see https://github.com/microsoft/TypeScript/issues/338
5867
+ */
5868
+ return this.__maximumHeight();
5869
+ }
5870
+ get maximumWidth() {
5871
+ /**
5872
+ * defer to protected function to allow subclasses to override easily.
5873
+ * see https://github.com/microsoft/TypeScript/issues/338
5874
+ */
5875
+ return this.__maximumWidth();
5876
+ }
5877
+ __minimumWidth() {
5828
5878
  const width = typeof this._minimumWidth === 'function'
5829
5879
  ? this._minimumWidth()
5830
5880
  : this._minimumWidth;
@@ -5834,7 +5884,17 @@ class GridviewPanel extends BasePanelView {
5834
5884
  }
5835
5885
  return width;
5836
5886
  }
5837
- get minimumHeight() {
5887
+ __maximumWidth() {
5888
+ const width = typeof this._maximumWidth === 'function'
5889
+ ? this._maximumWidth()
5890
+ : this._maximumWidth;
5891
+ if (width !== this._evaluatedMaximumWidth) {
5892
+ this._evaluatedMaximumWidth = width;
5893
+ this.updateConstraints();
5894
+ }
5895
+ return width;
5896
+ }
5897
+ __minimumHeight() {
5838
5898
  const height = typeof this._minimumHeight === 'function'
5839
5899
  ? this._minimumHeight()
5840
5900
  : this._minimumHeight;
@@ -5844,7 +5904,7 @@ class GridviewPanel extends BasePanelView {
5844
5904
  }
5845
5905
  return height;
5846
5906
  }
5847
- get maximumHeight() {
5907
+ __maximumHeight() {
5848
5908
  const height = typeof this._maximumHeight === 'function'
5849
5909
  ? this._maximumHeight()
5850
5910
  : this._maximumHeight;
@@ -5854,16 +5914,6 @@ class GridviewPanel extends BasePanelView {
5854
5914
  }
5855
5915
  return height;
5856
5916
  }
5857
- get maximumWidth() {
5858
- const width = typeof this._maximumWidth === 'function'
5859
- ? this._maximumWidth()
5860
- : this._maximumWidth;
5861
- if (width !== this._evaluatedMaximumWidth) {
5862
- this._evaluatedMaximumWidth = width;
5863
- this.updateConstraints();
5864
- }
5865
- return width;
5866
- }
5867
5917
  get isActive() {
5868
5918
  return this.api.isActive;
5869
5919
  }
@@ -6014,6 +6064,7 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
6014
6064
  position: options.group
6015
6065
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
6016
6066
  : 'center',
6067
+ index: options.index,
6017
6068
  },
6018
6069
  });
6019
6070
  }
@@ -6065,30 +6116,34 @@ class DockviewGroupPanel extends GridviewPanel {
6065
6116
  get minimumWidth() {
6066
6117
  var _a;
6067
6118
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6068
- return typeof activePanelMinimumWidth === 'number'
6069
- ? activePanelMinimumWidth
6070
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6119
+ if (typeof activePanelMinimumWidth === 'number') {
6120
+ return activePanelMinimumWidth;
6121
+ }
6122
+ return super.__minimumWidth();
6071
6123
  }
6072
6124
  get minimumHeight() {
6073
6125
  var _a;
6074
6126
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6075
- return typeof activePanelMinimumHeight === 'number'
6076
- ? activePanelMinimumHeight
6077
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6127
+ if (typeof activePanelMinimumHeight === 'number') {
6128
+ return activePanelMinimumHeight;
6129
+ }
6130
+ return super.__minimumHeight();
6078
6131
  }
6079
6132
  get maximumWidth() {
6080
6133
  var _a;
6081
6134
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6082
- return typeof activePanelMaximumWidth === 'number'
6083
- ? activePanelMaximumWidth
6084
- : Number.MAX_SAFE_INTEGER;
6135
+ if (typeof activePanelMaximumWidth === 'number') {
6136
+ return activePanelMaximumWidth;
6137
+ }
6138
+ return super.__maximumWidth();
6085
6139
  }
6086
6140
  get maximumHeight() {
6087
6141
  var _a;
6088
6142
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6089
- return typeof activePanelMaximumHeight === 'number'
6090
- ? activePanelMaximumHeight
6091
- : Number.MAX_SAFE_INTEGER;
6143
+ if (typeof activePanelMaximumHeight === 'number') {
6144
+ return activePanelMaximumHeight;
6145
+ }
6146
+ return super.__maximumHeight();
6092
6147
  }
6093
6148
  get panels() {
6094
6149
  return this._model.panels;
@@ -6202,12 +6257,14 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
6202
6257
  return this.group.api.getWindow();
6203
6258
  }
6204
6259
  moveTo(options) {
6205
- var _a;
6260
+ var _a, _b;
6206
6261
  this.accessor.moveGroupOrPanel({
6207
6262
  from: { groupId: this._group.id, panelId: this.panel.id },
6208
6263
  to: {
6209
- group: options.group,
6210
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6264
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6265
+ position: options.group
6266
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6267
+ : 'center',
6211
6268
  index: options.index,
6212
6269
  },
6213
6270
  });
@@ -6426,7 +6483,7 @@ const createSvgElementFromPath = (params) => {
6426
6483
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6427
6484
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6428
6485
  svg.setAttributeNS(null, 'focusable', 'false');
6429
- svg.classList.add('dockview-svg');
6486
+ svg.classList.add('dv-svg');
6430
6487
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6431
6488
  path.setAttributeNS(null, 'd', params.path);
6432
6489
  svg.appendChild(path);
@@ -6597,39 +6654,10 @@ class Watermark extends CompositeDisposable {
6597
6654
  constructor() {
6598
6655
  super();
6599
6656
  this._element = document.createElement('div');
6600
- this._element.className = 'watermark';
6601
- const title = document.createElement('div');
6602
- title.className = 'watermark-title';
6603
- const emptySpace = document.createElement('span');
6604
- emptySpace.style.flexGrow = '1';
6605
- const content = document.createElement('div');
6606
- content.className = 'watermark-content';
6607
- this._element.appendChild(title);
6608
- this._element.appendChild(content);
6609
- const actionsContainer = document.createElement('div');
6610
- actionsContainer.className = 'actions-container';
6611
- const closeAnchor = document.createElement('div');
6612
- closeAnchor.className = 'close-action';
6613
- closeAnchor.appendChild(createCloseButton());
6614
- actionsContainer.appendChild(closeAnchor);
6615
- title.appendChild(emptySpace);
6616
- title.appendChild(actionsContainer);
6617
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
6618
- var _a;
6619
- event.preventDefault();
6620
- if (this._group) {
6621
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
6622
- }
6623
- }));
6657
+ this._element.className = 'dv-watermark';
6624
6658
  }
6625
6659
  init(_params) {
6626
- this._api = _params.containerApi;
6627
- this._group = _params.group;
6628
- this.render();
6629
- }
6630
- render() {
6631
- const isOneGroup = !!(this._api && this._api.size <= 1);
6632
- toggleClass(this.element, 'has-actions', isOneGroup);
6660
+ // noop
6633
6661
  }
6634
6662
  }
6635
6663
 
@@ -6666,6 +6694,9 @@ class Overlay extends CompositeDisposable {
6666
6694
  get element() {
6667
6695
  return this._element;
6668
6696
  }
6697
+ get isVisible() {
6698
+ return this._isVisible;
6699
+ }
6669
6700
  constructor(options) {
6670
6701
  super();
6671
6702
  this.options = options;
@@ -6676,6 +6707,7 @@ class Overlay extends CompositeDisposable {
6676
6707
  this.onDidChangeEnd = this._onDidChangeEnd.event;
6677
6708
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
6678
6709
  this._element.className = 'dv-resize-container';
6710
+ this._isVisible = true;
6679
6711
  this.setupResize('top');
6680
6712
  this.setupResize('bottom');
6681
6713
  this.setupResize('left');
@@ -6690,6 +6722,13 @@ class Overlay extends CompositeDisposable {
6690
6722
  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 })));
6691
6723
  arialLevelTracker.push(this._element);
6692
6724
  }
6725
+ setVisible(isVisible) {
6726
+ if (isVisible === this.isVisible) {
6727
+ return;
6728
+ }
6729
+ this._isVisible = isVisible;
6730
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
6731
+ }
6693
6732
  bringToFront() {
6694
6733
  arialLevelTracker.push(this._element);
6695
6734
  }
@@ -7263,7 +7302,6 @@ class PopoutWindow extends CompositeDisposable {
7263
7302
  window: this._window.value,
7264
7303
  });
7265
7304
  this._window.disposable.dispose();
7266
- this._window.value.close();
7267
7305
  this._window = null;
7268
7306
  this._onDidClose.fire();
7269
7307
  }
@@ -7295,7 +7333,9 @@ class PopoutWindow extends CompositeDisposable {
7295
7333
  }
7296
7334
  const disposable = new CompositeDisposable();
7297
7335
  this._window = { value: externalWindow, disposable };
7298
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7336
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7337
+ externalWindow.close();
7338
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7299
7339
  /**
7300
7340
  * before the main window closes we should close this popup too
7301
7341
  * to be good citizens
@@ -7312,7 +7352,7 @@ class PopoutWindow extends CompositeDisposable {
7312
7352
  id: this.target,
7313
7353
  window: externalWindow,
7314
7354
  });
7315
- return new Promise((resolve) => {
7355
+ return new Promise((resolve, reject) => {
7316
7356
  externalWindow.addEventListener('unload', (e) => {
7317
7357
  // if page fails to load before unloading
7318
7358
  // this.close();
@@ -7321,21 +7361,27 @@ class PopoutWindow extends CompositeDisposable {
7321
7361
  /**
7322
7362
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7323
7363
  */
7324
- const externalDocument = externalWindow.document;
7325
- externalDocument.title = document.title;
7326
- externalDocument.body.appendChild(container);
7327
- addStyles(externalDocument, window.document.styleSheets);
7328
- /**
7329
- * beforeunload must be registered after load for reasons I could not determine
7330
- * otherwise the beforeunload event will not fire when the window is closed
7331
- */
7332
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7364
+ try {
7365
+ const externalDocument = externalWindow.document;
7366
+ externalDocument.title = document.title;
7367
+ externalDocument.body.appendChild(container);
7368
+ addStyles(externalDocument, window.document.styleSheets);
7333
7369
  /**
7334
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7370
+ * beforeunload must be registered after load for reasons I could not determine
7371
+ * otherwise the beforeunload event will not fire when the window is closed
7335
7372
  */
7336
- this.close();
7337
- });
7338
- resolve(container);
7373
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7374
+ /**
7375
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7376
+ */
7377
+ this.close();
7378
+ });
7379
+ resolve(container);
7380
+ }
7381
+ catch (err) {
7382
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7383
+ reject(err);
7384
+ }
7339
7385
  });
7340
7386
  });
7341
7387
  });
@@ -7442,6 +7488,8 @@ class DockviewComponent extends BaseGrid {
7442
7488
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
7443
7489
  this._onDidMovePanel = new Emitter();
7444
7490
  this.onDidMovePanel = this._onDidMovePanel.event;
7491
+ this._onDidMaximizedGroupChange = new Emitter();
7492
+ this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
7445
7493
  this._floatingGroups = [];
7446
7494
  this._popoutGroups = [];
7447
7495
  this._onDidRemoveGroup = new Emitter();
@@ -7468,6 +7516,11 @@ class DockviewComponent extends BaseGrid {
7468
7516
  if (!this._moving) {
7469
7517
  this._onDidActiveGroupChange.fire(event);
7470
7518
  }
7519
+ }), this.onDidMaximizedChange((event) => {
7520
+ this._onDidMaximizedGroupChange.fire({
7521
+ group: event.panel,
7522
+ isMaximized: event.isMaximized,
7523
+ });
7471
7524
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
7472
7525
  this.updateWatermark();
7473
7526
  }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
@@ -7566,8 +7619,28 @@ class DockviewComponent extends BaseGrid {
7566
7619
  this._api = new DockviewApi(this);
7567
7620
  this.updateWatermark();
7568
7621
  }
7622
+ setVisible(panel, visible) {
7623
+ switch (panel.api.location.type) {
7624
+ case 'grid':
7625
+ super.setVisible(panel, visible);
7626
+ break;
7627
+ case 'floating': {
7628
+ const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
7629
+ if (item) {
7630
+ item.overlay.setVisible(visible);
7631
+ panel.api._onDidVisibilityChange.fire({
7632
+ isVisible: visible,
7633
+ });
7634
+ }
7635
+ break;
7636
+ }
7637
+ case 'popout':
7638
+ console.warn('dockview: You cannot hide a group that is in a popout window');
7639
+ break;
7640
+ }
7641
+ }
7569
7642
  addPopoutGroup(itemToPopout, options) {
7570
- var _a, _b, _c;
7643
+ var _a, _b, _c, _d, _e;
7571
7644
  if (itemToPopout instanceof DockviewPanel &&
7572
7645
  itemToPopout.group.size === 1) {
7573
7646
  return this.addPopoutGroup(itemToPopout.group, options);
@@ -7588,12 +7661,9 @@ class DockviewComponent extends BaseGrid {
7588
7661
  }
7589
7662
  const box = getBox();
7590
7663
  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();
7591
- if (itemToPopout.api.location.type === 'grid') {
7592
- itemToPopout.api.setVisible(false);
7593
- }
7594
7664
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7595
7665
  theme !== null && theme !== void 0 ? theme : '', {
7596
- url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
7666
+ 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',
7597
7667
  left: window.screenX + box.left,
7598
7668
  top: window.screenY + box.top,
7599
7669
  width: box.width,
@@ -7607,13 +7677,12 @@ class DockviewComponent extends BaseGrid {
7607
7677
  return _window
7608
7678
  .open()
7609
7679
  .then((popoutContainer) => {
7610
- var _a;
7611
7680
  if (_window.isDisposed) {
7612
- return;
7681
+ return false;
7613
7682
  }
7614
7683
  if (popoutContainer === null) {
7615
7684
  popoutWindowDisposable.dispose();
7616
- return;
7685
+ return false;
7617
7686
  }
7618
7687
  const gready = document.createElement('div');
7619
7688
  gready.className = 'dv-overlay-render-container';
@@ -7622,30 +7691,45 @@ class DockviewComponent extends BaseGrid {
7622
7691
  ? itemToPopout.group
7623
7692
  : itemToPopout;
7624
7693
  const referenceLocation = itemToPopout.api.location.type;
7625
- const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7626
- group.model.renderContainer = overlayRenderContainer;
7627
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7628
- this._onDidAddGroup.fire(group);
7694
+ /**
7695
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7696
+ * of this case is when being called from the `fromJSON(...)` method
7697
+ */
7698
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7699
+ let group;
7700
+ if (!isGroupAddedToDom) {
7701
+ group = referenceGroup;
7629
7702
  }
7630
- if (itemToPopout instanceof DockviewPanel) {
7631
- this.movingLock(() => {
7632
- const panel = referenceGroup.model.removePanel(itemToPopout);
7633
- group.model.openPanel(panel);
7634
- });
7703
+ else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
7704
+ group = options.overridePopoutGroup;
7635
7705
  }
7636
7706
  else {
7637
- this.movingLock(() => moveGroupWithoutDestroying({
7638
- from: referenceGroup,
7639
- to: group,
7640
- }));
7641
- switch (referenceLocation) {
7642
- case 'grid':
7643
- referenceGroup.api.setVisible(false);
7644
- break;
7645
- case 'floating':
7646
- case 'popout':
7647
- this.removeGroup(referenceGroup);
7648
- break;
7707
+ group = this.createGroup({ id: groupId });
7708
+ this._onDidAddGroup.fire(group);
7709
+ }
7710
+ group.model.renderContainer = overlayRenderContainer;
7711
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7712
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7713
+ if (itemToPopout instanceof DockviewPanel) {
7714
+ this.movingLock(() => {
7715
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7716
+ group.model.openPanel(panel);
7717
+ });
7718
+ }
7719
+ else {
7720
+ this.movingLock(() => moveGroupWithoutDestroying({
7721
+ from: referenceGroup,
7722
+ to: group,
7723
+ }));
7724
+ switch (referenceLocation) {
7725
+ case 'grid':
7726
+ referenceGroup.api.setVisible(false);
7727
+ break;
7728
+ case 'floating':
7729
+ case 'popout':
7730
+ this.removeGroup(referenceGroup);
7731
+ break;
7732
+ }
7649
7733
  }
7650
7734
  }
7651
7735
  popoutContainer.classList.add('dv-dockview');
@@ -7655,7 +7739,12 @@ class DockviewComponent extends BaseGrid {
7655
7739
  group.model.location = {
7656
7740
  type: 'popout',
7657
7741
  getWindow: () => _window.window,
7742
+ popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
7658
7743
  };
7744
+ if (isGroupAddedToDom &&
7745
+ itemToPopout.api.location.type === 'grid') {
7746
+ itemToPopout.api.setVisible(false);
7747
+ }
7659
7748
  this.doSetGroupAndPanelActive(group);
7660
7749
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7661
7750
  var _a;
@@ -7667,10 +7756,13 @@ class DockviewComponent extends BaseGrid {
7667
7756
  (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
7668
7757
  }));
7669
7758
  let returnedGroup;
7759
+ const isValidReferenceGroup = isGroupAddedToDom &&
7760
+ referenceGroup &&
7761
+ this.getPanel(referenceGroup.id);
7670
7762
  const value = {
7671
7763
  window: _window,
7672
7764
  popoutGroup: group,
7673
- referenceGroup: this.getPanel(referenceGroup.id)
7765
+ referenceGroup: isValidReferenceGroup
7674
7766
  ? referenceGroup.id
7675
7767
  : undefined,
7676
7768
  disposable: {
@@ -7687,9 +7779,10 @@ class DockviewComponent extends BaseGrid {
7687
7779
  * window dimensions
7688
7780
  */
7689
7781
  addDisposableWindowListener(_window.window, 'resize', () => {
7690
- group.layout(window.innerWidth, window.innerHeight);
7782
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7691
7783
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7692
- if (this.getPanel(referenceGroup.id)) {
7784
+ if (isGroupAddedToDom &&
7785
+ this.getPanel(referenceGroup.id)) {
7693
7786
  this.movingLock(() => moveGroupWithoutDestroying({
7694
7787
  from: group,
7695
7788
  to: referenceGroup,
@@ -7704,21 +7797,27 @@ class DockviewComponent extends BaseGrid {
7704
7797
  }
7705
7798
  }
7706
7799
  else if (this.getPanel(group.id)) {
7707
- const removedGroup = this.doRemoveGroup(group, {
7800
+ this.doRemoveGroup(group, {
7708
7801
  skipDispose: true,
7709
7802
  skipActive: true,
7803
+ skipPopoutReturn: true,
7710
7804
  });
7805
+ const removedGroup = group;
7711
7806
  removedGroup.model.renderContainer =
7712
7807
  this.overlayRenderContainer;
7713
7808
  removedGroup.model.location = { type: 'grid' };
7714
7809
  returnedGroup = removedGroup;
7810
+ this.doAddGroup(removedGroup, [0]);
7811
+ this.doSetGroupAndPanelActive(removedGroup);
7715
7812
  }
7716
7813
  }));
7717
7814
  this._popoutGroups.push(value);
7718
7815
  this.updateWatermark();
7816
+ return true;
7719
7817
  })
7720
7818
  .catch((err) => {
7721
7819
  console.error('dockview: failed to create popout window', err);
7820
+ return false;
7722
7821
  });
7723
7822
  }
7724
7823
  addFloatingGroup(item, options) {
@@ -7822,7 +7921,7 @@ class DockviewComponent extends BaseGrid {
7822
7921
  : (_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'
7823
7922
  ? undefined
7824
7923
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7825
- const el = group.element.querySelector('.void-container');
7924
+ const el = group.element.querySelector('.dv-void-container');
7826
7925
  if (!el) {
7827
7926
  throw new Error('failed to find drag handle');
7828
7927
  }
@@ -8014,6 +8113,9 @@ class DockviewComponent extends BaseGrid {
8014
8113
  data: group.popoutGroup.toJSON(),
8015
8114
  gridReferenceGroup: group.referenceGroup,
8016
8115
  position: group.window.dimensions(),
8116
+ url: group.popoutGroup.api.location.type === 'popout'
8117
+ ? group.popoutGroup.api.location.popoutUrl
8118
+ : undefined,
8017
8119
  };
8018
8120
  });
8019
8121
  const result = {
@@ -8100,16 +8202,16 @@ class DockviewComponent extends BaseGrid {
8100
8202
  }
8101
8203
  const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
8102
8204
  for (const serializedPopoutGroup of serializedPopoutGroups) {
8103
- const { data, position, gridReferenceGroup } = serializedPopoutGroup;
8205
+ const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
8104
8206
  const group = createGroupFromSerializedState(data);
8105
8207
  this.addPopoutGroup((_c = (gridReferenceGroup
8106
8208
  ? this.getPanel(gridReferenceGroup)
8107
8209
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8108
- skipRemoveGroup: true,
8109
8210
  position: position !== null && position !== void 0 ? position : undefined,
8110
8211
  overridePopoutGroup: gridReferenceGroup
8111
8212
  ? group
8112
8213
  : undefined,
8214
+ popoutUrl: url,
8113
8215
  });
8114
8216
  }
8115
8217
  for (const floatingGroup of this._floatingGroups) {
@@ -8123,6 +8225,7 @@ class DockviewComponent extends BaseGrid {
8123
8225
  }
8124
8226
  }
8125
8227
  catch (err) {
8228
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8126
8229
  /**
8127
8230
  * Takes all the successfully created groups and remove all of their panels.
8128
8231
  */
@@ -8190,11 +8293,13 @@ class DockviewComponent extends BaseGrid {
8190
8293
  width: options.initialWidth,
8191
8294
  height: options.initialHeight,
8192
8295
  };
8296
+ let index;
8193
8297
  if (options.position) {
8194
8298
  if (isPanelOptionsWithPanel(options.position)) {
8195
8299
  const referencePanel = typeof options.position.referencePanel === 'string'
8196
8300
  ? this.getGroupPanel(options.position.referencePanel)
8197
8301
  : options.position.referencePanel;
8302
+ index = options.position.index;
8198
8303
  if (!referencePanel) {
8199
8304
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8200
8305
  }
@@ -8205,6 +8310,7 @@ class DockviewComponent extends BaseGrid {
8205
8310
  typeof options.position.referenceGroup === 'string'
8206
8311
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8207
8312
  : options.position.referenceGroup;
8313
+ index = options.position.index;
8208
8314
  if (!referenceGroup) {
8209
8315
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8210
8316
  }
@@ -8215,6 +8321,7 @@ class DockviewComponent extends BaseGrid {
8215
8321
  group.model.openPanel(panel, {
8216
8322
  skipSetActive: options.inactive,
8217
8323
  skipSetGroupActive: options.inactive,
8324
+ index,
8218
8325
  });
8219
8326
  if (!options.inactive) {
8220
8327
  this.doSetGroupAndPanelActive(group);
@@ -8244,6 +8351,7 @@ class DockviewComponent extends BaseGrid {
8244
8351
  group.model.openPanel(panel, {
8245
8352
  skipSetActive: options.inactive,
8246
8353
  skipSetGroupActive: options.inactive,
8354
+ index,
8247
8355
  });
8248
8356
  }
8249
8357
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8252,6 +8360,7 @@ class DockviewComponent extends BaseGrid {
8252
8360
  referenceGroup.model.openPanel(panel, {
8253
8361
  skipSetActive: options.inactive,
8254
8362
  skipSetGroupActive: options.inactive,
8363
+ index,
8255
8364
  });
8256
8365
  referenceGroup.api.setSize({
8257
8366
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8272,6 +8381,7 @@ class DockviewComponent extends BaseGrid {
8272
8381
  group.model.openPanel(panel, {
8273
8382
  skipSetActive: options.inactive,
8274
8383
  skipSetGroupActive: options.inactive,
8384
+ index,
8275
8385
  });
8276
8386
  if (!options.inactive) {
8277
8387
  this.doSetGroupAndPanelActive(group);
@@ -8290,6 +8400,7 @@ class DockviewComponent extends BaseGrid {
8290
8400
  group.model.openPanel(panel, {
8291
8401
  skipSetActive: options.inactive,
8292
8402
  skipSetGroupActive: options.inactive,
8403
+ index,
8293
8404
  });
8294
8405
  }
8295
8406
  else {
@@ -8300,6 +8411,7 @@ class DockviewComponent extends BaseGrid {
8300
8411
  group.model.openPanel(panel, {
8301
8412
  skipSetActive: options.inactive,
8302
8413
  skipSetGroupActive: options.inactive,
8414
+ index,
8303
8415
  });
8304
8416
  if (!options.inactive) {
8305
8417
  this.doSetGroupAndPanelActive(group);
@@ -8309,7 +8421,6 @@ class DockviewComponent extends BaseGrid {
8309
8421
  }
8310
8422
  removePanel(panel, options = {
8311
8423
  removeEmptyGroup: true,
8312
- skipDispose: false,
8313
8424
  }) {
8314
8425
  const group = panel.group;
8315
8426
  if (!group) {
@@ -8840,6 +8951,31 @@ class DockviewComponent extends BaseGrid {
8840
8951
  }
8841
8952
  }
8842
8953
 
8954
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8955
+ const Component = typeof componentName === 'string'
8956
+ ? components[componentName]
8957
+ : undefined;
8958
+ const FrameworkComponent = typeof componentName === 'string'
8959
+ ? frameworkComponents[componentName]
8960
+ : undefined;
8961
+ if (Component && FrameworkComponent) {
8962
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8963
+ }
8964
+ if (FrameworkComponent) {
8965
+ if (!createFrameworkComponent) {
8966
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8967
+ }
8968
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8969
+ }
8970
+ if (!Component) {
8971
+ if (fallback) {
8972
+ return fallback();
8973
+ }
8974
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8975
+ }
8976
+ return new Component(id, componentName);
8977
+ }
8978
+
8843
8979
  class GridviewComponent extends BaseGrid {
8844
8980
  get orientation() {
8845
8981
  return this.gridview.orientation;
@@ -9388,12 +9524,14 @@ class DefaultHeader extends CompositeDisposable {
9388
9524
  this._expandedIcon = createExpandMoreButton();
9389
9525
  this._collapsedIcon = createChevronRightButton();
9390
9526
  this.disposable = new MutableDisposable();
9391
- this.apiRef = { api: null };
9527
+ this.apiRef = {
9528
+ api: null,
9529
+ };
9392
9530
  this._element = document.createElement('div');
9393
- this.element.className = 'default-header';
9531
+ this.element.className = 'dv-default-header';
9394
9532
  this._content = document.createElement('span');
9395
9533
  this._expander = document.createElement('div');
9396
- this._expander.className = 'dockview-pane-header-icon';
9534
+ this._expander.className = 'dv-pane-header-icon';
9397
9535
  this.element.appendChild(this._expander);
9398
9536
  this.element.appendChild(this._content);
9399
9537
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -9864,7 +10002,6 @@ exports.Gridview = Gridview;
9864
10002
  exports.GridviewApi = GridviewApi;
9865
10003
  exports.GridviewComponent = GridviewComponent;
9866
10004
  exports.GridviewPanel = GridviewPanel;
9867
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
9868
10005
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
9869
10006
  exports.PaneFramework = PaneFramework;
9870
10007
  exports.PaneTransfer = PaneTransfer;
@@ -9879,7 +10016,6 @@ exports.SplitviewComponent = SplitviewComponent;
9879
10016
  exports.SplitviewPanel = SplitviewPanel;
9880
10017
  exports.Tab = Tab;
9881
10018
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
9882
- exports.createComponent = createComponent;
9883
10019
  exports.createDockview = createDockview;
9884
10020
  exports.createGridview = createGridview;
9885
10021
  exports.createPaneview = createPaneview;