dockview-core 7.0.4 → 8.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 (380) hide show
  1. package/LICENCE.md +21 -0
  2. package/README.md +17 -86
  3. package/dist/cjs/api/component.api.d.ts +100 -9
  4. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +45 -1
  5. package/dist/cjs/api/dockviewPanelApi.d.ts +21 -0
  6. package/dist/cjs/dismissableLayer.d.ts +57 -0
  7. package/dist/cjs/dnd/backend.d.ts +2 -2
  8. package/dist/cjs/dnd/dataTransfer.d.ts +1 -0
  9. package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +12 -0
  10. package/dist/cjs/dnd/droptarget.d.ts +94 -0
  11. package/dist/cjs/dnd/ghost.d.ts +1 -0
  12. package/dist/cjs/dnd/pointer/longPress.d.ts +2 -2
  13. package/dist/cjs/dnd/pointer/pointerDragController.d.ts +5 -2
  14. package/dist/cjs/dnd/pointer/pointerDragSource.d.ts +1 -1
  15. package/dist/cjs/dnd/pointer/pointerDropTarget.d.ts +30 -1
  16. package/dist/cjs/dnd/pointer/pointerGhost.d.ts +1 -1
  17. package/dist/cjs/dockview/accessibilityMessages.d.ts +6 -0
  18. package/dist/cjs/dockview/advancedDnDService.d.ts +31 -0
  19. package/dist/cjs/dockview/components/panel/content.d.ts +1 -1
  20. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -0
  21. package/dist/cjs/dockview/components/tab/tab.d.ts +2 -0
  22. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +2 -2
  23. package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +1 -1
  24. package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +1 -1
  25. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +73 -2
  26. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +1 -1
  27. package/dist/cjs/dockview/components/titlebar/tabReorderController.d.ts +295 -0
  28. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +120 -50
  29. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +48 -0
  30. package/dist/cjs/dockview/dndCapabilities.d.ts +1 -1
  31. package/dist/cjs/dockview/dockviewComponent.d.ts +307 -19
  32. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
  33. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +76 -2
  34. package/dist/cjs/dockview/dockviewPanel.d.ts +12 -0
  35. package/dist/cjs/dockview/dockviewShell.d.ts +48 -24
  36. package/dist/cjs/dockview/edgeGroupService.d.ts +20 -0
  37. package/dist/cjs/dockview/events.d.ts +6 -0
  38. package/dist/cjs/dockview/liveRegionService.d.ts +18 -5
  39. package/dist/cjs/dockview/moduleContracts.d.ts +485 -14
  40. package/dist/cjs/dockview/modules.d.ts +101 -22
  41. package/dist/cjs/dockview/options.d.ts +336 -30
  42. package/dist/cjs/dockview/optionsModules.d.ts +73 -0
  43. package/dist/cjs/dockview/popoutWindowService.d.ts +15 -10
  44. package/dist/cjs/dockview/rootDropTargetService.d.ts +11 -0
  45. package/dist/cjs/dockview/tabGroup.d.ts +3 -0
  46. package/dist/cjs/dockview/tabGroupAccent.d.ts +1 -1
  47. package/dist/cjs/dockview/tabGroupChipsService.d.ts +10 -0
  48. package/dist/cjs/dockview/theme.d.ts +2 -2
  49. package/dist/cjs/dockview/types.d.ts +3 -0
  50. package/dist/cjs/dom.d.ts +9 -1
  51. package/dist/cjs/events.d.ts +1 -1
  52. package/dist/cjs/gridview/baseComponentGridview.d.ts +2 -2
  53. package/dist/cjs/gridview/branchNode.d.ts +16 -0
  54. package/dist/cjs/gridview/gridview.d.ts +2 -0
  55. package/dist/cjs/index.d.ts +35 -29
  56. package/dist/cjs/lifecycle.d.ts +1 -0
  57. package/dist/cjs/overlay/overlay.d.ts +4 -2
  58. package/dist/cjs/overlay/overlayRenderContainer.d.ts +8 -0
  59. package/dist/cjs/paneview/paneview.d.ts +2 -1
  60. package/dist/cjs/paneview/paneviewComponent.d.ts +3 -0
  61. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -0
  62. package/dist/cjs/scrollbar.d.ts +10 -0
  63. package/dist/cjs/splitview/viewItem.d.ts +10 -0
  64. package/dist/cjs/svg.d.ts +1 -0
  65. package/dist/cjs/types.d.ts +8 -0
  66. package/dist/dockview-core.js +18513 -19679
  67. package/dist/dockview-core.min.js +4138 -6
  68. package/dist/dockview-core.min.noStyle.js +6 -7
  69. package/dist/dockview-core.noStyle.js +18512 -19656
  70. package/dist/package/main.cjs.js +18123 -19267
  71. package/dist/package/main.cjs.min.js +6 -6
  72. package/dist/package/main.esm.min.mjs +6 -6
  73. package/dist/package/main.esm.mjs +18081 -19260
  74. package/package.json +81 -77
  75. package/dist/cjs/api/component.api.js +0 -1242
  76. package/dist/cjs/api/dockviewGroupPanelApi.js +0 -200
  77. package/dist/cjs/api/dockviewPanelApi.js +0 -172
  78. package/dist/cjs/api/entryPoints.js +0 -27
  79. package/dist/cjs/api/gridviewPanelApi.js +0 -45
  80. package/dist/cjs/api/panelApi.js +0 -133
  81. package/dist/cjs/api/paneviewPanelApi.js +0 -57
  82. package/dist/cjs/api/splitviewPanelApi.js +0 -47
  83. package/dist/cjs/array.js +0 -66
  84. package/dist/cjs/constants.js +0 -11
  85. package/dist/cjs/dnd/backend.js +0 -171
  86. package/dist/cjs/dnd/dataTransfer.js +0 -100
  87. package/dist/cjs/dnd/dnd.js +0 -74
  88. package/dist/cjs/dnd/dropOverlay.js +0 -197
  89. package/dist/cjs/dnd/dropTargetAnchorContainer.js +0 -104
  90. package/dist/cjs/dnd/droptarget.js +0 -362
  91. package/dist/cjs/dnd/ghost.js +0 -17
  92. package/dist/cjs/dnd/pointer/index.js +0 -13
  93. package/dist/cjs/dnd/pointer/longPress.js +0 -151
  94. package/dist/cjs/dnd/pointer/pointerDragController.js +0 -243
  95. package/dist/cjs/dnd/pointer/pointerDragSource.js +0 -197
  96. package/dist/cjs/dnd/pointer/pointerDropTarget.js +0 -198
  97. package/dist/cjs/dnd/pointer/pointerGhost.js +0 -44
  98. package/dist/cjs/dnd/pointer/types.js +0 -2
  99. package/dist/cjs/dockview/accessibilityMessages.js +0 -51
  100. package/dist/cjs/dockview/allModules.js +0 -25
  101. package/dist/cjs/dockview/components/panel/content.js +0 -213
  102. package/dist/cjs/dockview/components/popupService.js +0 -132
  103. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -70
  104. package/dist/cjs/dockview/components/tab/tab.js +0 -281
  105. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +0 -95
  106. package/dist/cjs/dockview/components/titlebar/groupDragSource.js +0 -218
  107. package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +0 -104
  108. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +0 -477
  109. package/dist/cjs/dockview/components/titlebar/tabGroups.js +0 -854
  110. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +0 -19
  111. package/dist/cjs/dockview/components/titlebar/tabs.js +0 -2016
  112. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +0 -458
  113. package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -120
  114. package/dist/cjs/dockview/components/watermark/watermark.js +0 -40
  115. package/dist/cjs/dockview/deserializer.js +0 -39
  116. package/dist/cjs/dockview/dndCapabilities.js +0 -39
  117. package/dist/cjs/dockview/dockviewComponent.js +0 -3896
  118. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -70
  119. package/dist/cjs/dockview/dockviewGroupPanel.js +0 -204
  120. package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1514
  121. package/dist/cjs/dockview/dockviewPanel.js +0 -265
  122. package/dist/cjs/dockview/dockviewPanelModel.js +0 -105
  123. package/dist/cjs/dockview/dockviewShell.js +0 -744
  124. package/dist/cjs/dockview/edgeGroupService.js +0 -128
  125. package/dist/cjs/dockview/events.js +0 -67
  126. package/dist/cjs/dockview/floatingGroupService.js +0 -231
  127. package/dist/cjs/dockview/framework.js +0 -2
  128. package/dist/cjs/dockview/headerActionsService.js +0 -149
  129. package/dist/cjs/dockview/liveRegionService.js +0 -185
  130. package/dist/cjs/dockview/moduleContracts.js +0 -2
  131. package/dist/cjs/dockview/modules.js +0 -304
  132. package/dist/cjs/dockview/options.js +0 -103
  133. package/dist/cjs/dockview/popoutWindowService.js +0 -261
  134. package/dist/cjs/dockview/rootDropTargetService.js +0 -87
  135. package/dist/cjs/dockview/strictEventsSequencing.js +0 -63
  136. package/dist/cjs/dockview/tabGroup.js +0 -219
  137. package/dist/cjs/dockview/tabGroupAccent.js +0 -126
  138. package/dist/cjs/dockview/theme.js +0 -139
  139. package/dist/cjs/dockview/types.js +0 -2
  140. package/dist/cjs/dockview/validate.js +0 -76
  141. package/dist/cjs/dockview/watermarkService.js +0 -61
  142. package/dist/cjs/dom.js +0 -543
  143. package/dist/cjs/events.js +0 -296
  144. package/dist/cjs/framwork.js +0 -2
  145. package/dist/cjs/gridview/baseComponentGridview.js +0 -330
  146. package/dist/cjs/gridview/basePanelView.js +0 -162
  147. package/dist/cjs/gridview/branchNode.js +0 -372
  148. package/dist/cjs/gridview/gridview.js +0 -776
  149. package/dist/cjs/gridview/gridviewComponent.js +0 -363
  150. package/dist/cjs/gridview/gridviewPanel.js +0 -249
  151. package/dist/cjs/gridview/leafNode.js +0 -169
  152. package/dist/cjs/gridview/options.js +0 -17
  153. package/dist/cjs/gridview/types.js +0 -2
  154. package/dist/cjs/index.js +0 -105
  155. package/dist/cjs/lifecycle.js +0 -80
  156. package/dist/cjs/math.js +0 -38
  157. package/dist/cjs/overlay/overlay.js +0 -602
  158. package/dist/cjs/overlay/overlayRenderContainer.js +0 -309
  159. package/dist/cjs/panel/types.js +0 -2
  160. package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -92
  161. package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -141
  162. package/dist/cjs/paneview/options.js +0 -44
  163. package/dist/cjs/paneview/paneview.js +0 -203
  164. package/dist/cjs/paneview/paneviewComponent.js +0 -430
  165. package/dist/cjs/paneview/paneviewPanel.js +0 -275
  166. package/dist/cjs/popoutWindow.js +0 -244
  167. package/dist/cjs/resizable.js +0 -97
  168. package/dist/cjs/scrollbar.js +0 -169
  169. package/dist/cjs/splitview/options.js +0 -19
  170. package/dist/cjs/splitview/splitview.js +0 -999
  171. package/dist/cjs/splitview/splitviewComponent.js +0 -401
  172. package/dist/cjs/splitview/splitviewPanel.js +0 -179
  173. package/dist/cjs/splitview/viewItem.js +0 -119
  174. package/dist/cjs/svg.js +0 -43
  175. package/dist/cjs/types.js +0 -2
  176. package/dist/dockview-core.min.js.map +0 -1
  177. package/dist/dockview-core.min.noStyle.js.map +0 -1
  178. package/dist/esm/api/component.api.d.ts +0 -640
  179. package/dist/esm/api/component.api.js +0 -887
  180. package/dist/esm/api/dockviewGroupPanelApi.d.ts +0 -109
  181. package/dist/esm/api/dockviewGroupPanelApi.js +0 -155
  182. package/dist/esm/api/dockviewPanelApi.d.ts +0 -84
  183. package/dist/esm/api/dockviewPanelApi.js +0 -124
  184. package/dist/esm/api/entryPoints.d.ts +0 -9
  185. package/dist/esm/api/entryPoints.js +0 -21
  186. package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
  187. package/dist/esm/api/gridviewPanelApi.js +0 -23
  188. package/dist/esm/api/panelApi.d.ts +0 -100
  189. package/dist/esm/api/panelApi.js +0 -87
  190. package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
  191. package/dist/esm/api/paneviewPanelApi.js +0 -27
  192. package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
  193. package/dist/esm/api/splitviewPanelApi.js +0 -25
  194. package/dist/esm/array.d.ts +0 -13
  195. package/dist/esm/array.js +0 -57
  196. package/dist/esm/constants.d.ts +0 -8
  197. package/dist/esm/constants.js +0 -8
  198. package/dist/esm/dnd/backend.d.ts +0 -70
  199. package/dist/esm/dnd/backend.js +0 -148
  200. package/dist/esm/dnd/dataTransfer.d.ts +0 -31
  201. package/dist/esm/dnd/dataTransfer.js +0 -67
  202. package/dist/esm/dnd/dnd.d.ts +0 -32
  203. package/dist/esm/dnd/dnd.js +0 -51
  204. package/dist/esm/dnd/dropOverlay.d.ts +0 -20
  205. package/dist/esm/dnd/dropOverlay.js +0 -192
  206. package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +0 -16
  207. package/dist/esm/dnd/dropTargetAnchorContainer.js +0 -73
  208. package/dist/esm/dnd/droptarget.d.ts +0 -116
  209. package/dist/esm/dnd/droptarget.js +0 -316
  210. package/dist/esm/dnd/ghost.d.ts +0 -4
  211. package/dist/esm/dnd/ghost.js +0 -14
  212. package/dist/esm/dnd/pointer/index.d.ts +0 -11
  213. package/dist/esm/dnd/pointer/index.js +0 -5
  214. package/dist/esm/dnd/pointer/longPress.d.ts +0 -32
  215. package/dist/esm/dnd/pointer/longPress.js +0 -127
  216. package/dist/esm/dnd/pointer/pointerDragController.d.ts +0 -60
  217. package/dist/esm/dnd/pointer/pointerDragController.js +0 -193
  218. package/dist/esm/dnd/pointer/pointerDragSource.d.ts +0 -61
  219. package/dist/esm/dnd/pointer/pointerDragSource.js +0 -173
  220. package/dist/esm/dnd/pointer/pointerDropTarget.d.ts +0 -39
  221. package/dist/esm/dnd/pointer/pointerDropTarget.js +0 -168
  222. package/dist/esm/dnd/pointer/pointerGhost.d.ts +0 -30
  223. package/dist/esm/dnd/pointer/pointerGhost.js +0 -39
  224. package/dist/esm/dnd/pointer/types.d.ts +0 -16
  225. package/dist/esm/dnd/pointer/types.js +0 -1
  226. package/dist/esm/dockview/accessibilityMessages.d.ts +0 -32
  227. package/dist/esm/dockview/accessibilityMessages.js +0 -30
  228. package/dist/esm/dockview/allModules.d.ts +0 -8
  229. package/dist/esm/dockview/allModules.js +0 -22
  230. package/dist/esm/dockview/components/panel/content.d.ts +0 -54
  231. package/dist/esm/dockview/components/panel/content.js +0 -185
  232. package/dist/esm/dockview/components/popupService.d.ts +0 -21
  233. package/dist/esm/dockview/components/popupService.js +0 -108
  234. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -12
  235. package/dist/esm/dockview/components/tab/defaultTab.js +0 -43
  236. package/dist/esm/dockview/components/tab/tab.d.ts +0 -44
  237. package/dist/esm/dockview/components/tab/tab.js +0 -242
  238. package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +0 -34
  239. package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +0 -65
  240. package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +0 -51
  241. package/dist/esm/dockview/components/titlebar/groupDragSource.js +0 -178
  242. package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +0 -37
  243. package/dist/esm/dockview/components/titlebar/tabGroupChip.js +0 -77
  244. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +0 -72
  245. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +0 -360
  246. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +0 -107
  247. package/dist/esm/dockview/components/titlebar/tabGroups.js +0 -621
  248. package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +0 -8
  249. package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +0 -16
  250. package/dist/esm/dockview/components/titlebar/tabs.d.ts +0 -167
  251. package/dist/esm/dockview/components/titlebar/tabs.js +0 -1653
  252. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +0 -104
  253. package/dist/esm/dockview/components/titlebar/tabsContainer.js +0 -359
  254. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +0 -21
  255. package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -92
  256. package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -8
  257. package/dist/esm/dockview/components/watermark/watermark.js +0 -14
  258. package/dist/esm/dockview/deserializer.d.ts +0 -12
  259. package/dist/esm/dockview/deserializer.js +0 -34
  260. package/dist/esm/dockview/dndCapabilities.d.ts +0 -19
  261. package/dist/esm/dockview/dndCapabilities.js +0 -36
  262. package/dist/esm/dockview/dockviewComponent.d.ts +0 -626
  263. package/dist/esm/dockview/dockviewComponent.js +0 -3214
  264. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -45
  265. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -44
  266. package/dist/esm/dockview/dockviewGroupPanel.d.ts +0 -35
  267. package/dist/esm/dockview/dockviewGroupPanel.js +0 -142
  268. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +0 -358
  269. package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1180
  270. package/dist/esm/dockview/dockviewPanel.d.ts +0 -69
  271. package/dist/esm/dockview/dockviewPanel.js +0 -178
  272. package/dist/esm/dockview/dockviewPanelModel.d.ts +0 -37
  273. package/dist/esm/dockview/dockviewPanelModel.js +0 -81
  274. package/dist/esm/dockview/dockviewShell.d.ts +0 -150
  275. package/dist/esm/dockview/dockviewShell.js +0 -678
  276. package/dist/esm/dockview/edgeGroupService.d.ts +0 -38
  277. package/dist/esm/dockview/edgeGroupService.js +0 -63
  278. package/dist/esm/dockview/events.d.ts +0 -38
  279. package/dist/esm/dockview/events.js +0 -34
  280. package/dist/esm/dockview/floatingGroupService.d.ts +0 -37
  281. package/dist/esm/dockview/floatingGroupService.js +0 -150
  282. package/dist/esm/dockview/framework.d.ts +0 -65
  283. package/dist/esm/dockview/framework.js +0 -1
  284. package/dist/esm/dockview/headerActionsService.d.ts +0 -32
  285. package/dist/esm/dockview/headerActionsService.js +0 -86
  286. package/dist/esm/dockview/liveRegionService.d.ts +0 -53
  287. package/dist/esm/dockview/liveRegionService.js +0 -159
  288. package/dist/esm/dockview/moduleContracts.d.ts +0 -119
  289. package/dist/esm/dockview/moduleContracts.js +0 -1
  290. package/dist/esm/dockview/modules.d.ts +0 -110
  291. package/dist/esm/dockview/modules.js +0 -170
  292. package/dist/esm/dockview/options.d.ts +0 -474
  293. package/dist/esm/dockview/options.js +0 -77
  294. package/dist/esm/dockview/popoutWindowService.d.ts +0 -95
  295. package/dist/esm/dockview/popoutWindowService.js +0 -175
  296. package/dist/esm/dockview/rootDropTargetService.d.ts +0 -35
  297. package/dist/esm/dockview/rootDropTargetService.js +0 -82
  298. package/dist/esm/dockview/strictEventsSequencing.d.ts +0 -7
  299. package/dist/esm/dockview/strictEventsSequencing.js +0 -41
  300. package/dist/esm/dockview/tabGroup.d.ts +0 -99
  301. package/dist/esm/dockview/tabGroup.js +0 -144
  302. package/dist/esm/dockview/tabGroupAccent.d.ts +0 -65
  303. package/dist/esm/dockview/tabGroupAccent.js +0 -114
  304. package/dist/esm/dockview/theme.d.ts +0 -86
  305. package/dist/esm/dockview/theme.js +0 -136
  306. package/dist/esm/dockview/types.d.ts +0 -53
  307. package/dist/esm/dockview/types.js +0 -1
  308. package/dist/esm/dockview/validate.d.ts +0 -0
  309. package/dist/esm/dockview/validate.js +0 -76
  310. package/dist/esm/dockview/watermarkService.d.ts +0 -30
  311. package/dist/esm/dockview/watermarkService.js +0 -56
  312. package/dist/esm/dom.d.ts +0 -60
  313. package/dist/esm/dom.js +0 -375
  314. package/dist/esm/events.d.ts +0 -79
  315. package/dist/esm/events.js +0 -219
  316. package/dist/esm/framwork.d.ts +0 -4
  317. package/dist/esm/framwork.js +0 -1
  318. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -111
  319. package/dist/esm/gridview/baseComponentGridview.js +0 -237
  320. package/dist/esm/gridview/basePanelView.d.ts +0 -40
  321. package/dist/esm/gridview/basePanelView.js +0 -91
  322. package/dist/esm/gridview/branchNode.d.ts +0 -57
  323. package/dist/esm/gridview/branchNode.js +0 -257
  324. package/dist/esm/gridview/gridview.d.ts +0 -158
  325. package/dist/esm/gridview/gridview.js +0 -681
  326. package/dist/esm/gridview/gridviewComponent.d.ts +0 -88
  327. package/dist/esm/gridview/gridviewComponent.js +0 -265
  328. package/dist/esm/gridview/gridviewPanel.d.ts +0 -77
  329. package/dist/esm/gridview/gridviewPanel.js +0 -182
  330. package/dist/esm/gridview/leafNode.d.ts +0 -34
  331. package/dist/esm/gridview/leafNode.js +0 -102
  332. package/dist/esm/gridview/options.d.ts +0 -15
  333. package/dist/esm/gridview/options.js +0 -14
  334. package/dist/esm/gridview/types.d.ts +0 -3
  335. package/dist/esm/gridview/types.js +0 -1
  336. package/dist/esm/index.d.ts +0 -58
  337. package/dist/esm/index.js +0 -44
  338. package/dist/esm/lifecycle.d.ts +0 -25
  339. package/dist/esm/lifecycle.js +0 -56
  340. package/dist/esm/math.d.ts +0 -5
  341. package/dist/esm/math.js +0 -32
  342. package/dist/esm/overlay/overlay.d.ts +0 -91
  343. package/dist/esm/overlay/overlay.js +0 -520
  344. package/dist/esm/overlay/overlayRenderContainer.d.ts +0 -24
  345. package/dist/esm/overlay/overlayRenderContainer.js +0 -249
  346. package/dist/esm/panel/types.d.ts +0 -33
  347. package/dist/esm/panel/types.js +0 -1
  348. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
  349. package/dist/esm/paneview/defaultPaneviewHeader.js +0 -65
  350. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -38
  351. package/dist/esm/paneview/draggablePaneviewPanel.js +0 -107
  352. package/dist/esm/paneview/options.d.ts +0 -30
  353. package/dist/esm/paneview/options.js +0 -22
  354. package/dist/esm/paneview/paneview.d.ts +0 -41
  355. package/dist/esm/paneview/paneview.js +0 -148
  356. package/dist/esm/paneview/paneviewComponent.d.ts +0 -133
  357. package/dist/esm/paneview/paneviewComponent.js +0 -306
  358. package/dist/esm/paneview/paneviewPanel.d.ts +0 -98
  359. package/dist/esm/paneview/paneviewPanel.js +0 -192
  360. package/dist/esm/popoutWindow.d.ts +0 -38
  361. package/dist/esm/popoutWindow.js +0 -170
  362. package/dist/esm/resizable.d.ts +0 -12
  363. package/dist/esm/resizable.js +0 -66
  364. package/dist/esm/scrollbar.d.ts +0 -15
  365. package/dist/esm/scrollbar.js +0 -139
  366. package/dist/esm/splitview/options.d.ts +0 -21
  367. package/dist/esm/splitview/options.js +0 -16
  368. package/dist/esm/splitview/splitview.d.ts +0 -145
  369. package/dist/esm/splitview/splitview.js +0 -770
  370. package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
  371. package/dist/esm/splitview/splitviewComponent.js +0 -267
  372. package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
  373. package/dist/esm/splitview/splitviewPanel.js +0 -108
  374. package/dist/esm/splitview/viewItem.d.ts +0 -25
  375. package/dist/esm/splitview/viewItem.js +0 -74
  376. package/dist/esm/svg.d.ts +0 -3
  377. package/dist/esm/svg.js +0 -31
  378. package/dist/esm/types.d.ts +0 -31
  379. package/dist/esm/types.js +0 -1
  380. package/dist/styles/dockview.css +0 -3436
@@ -6,19 +6,70 @@ export interface DroptargetEvent {
6
6
  readonly position: Position;
7
7
  /** Narrow with `instanceof DragEvent` before reading `dataTransfer`. */
8
8
  readonly nativeEvent: DragEvent | PointerEvent;
9
+ /**
10
+ * The resolved cell was marked `edge` by a {@link PositionResolver}: an
11
+ * "outer" cell that should dock against the whole layout, not this target.
12
+ * The target renders no overlay for it; the consumer routes the commit.
13
+ */
14
+ readonly edge?: boolean;
9
15
  }
10
16
  export declare class WillShowOverlayEvent extends DockviewEvent implements DroptargetEvent {
11
17
  private readonly options;
12
18
  get nativeEvent(): DragEvent | PointerEvent;
13
19
  get position(): Position;
20
+ /** See {@link DroptargetEvent.edge}. */
21
+ get edge(): boolean;
22
+ /** See {@link PositionResolverResult.edgeGroup}. A display hint; a consumer
23
+ * (e.g. the DnD compass) can bow out of this cell. */
24
+ get edgeGroup(): boolean;
14
25
  constructor(options: {
15
26
  nativeEvent: DragEvent | PointerEvent;
16
27
  position: Position;
28
+ edge?: boolean;
29
+ edgeGroup?: boolean;
17
30
  });
18
31
  }
19
32
  export declare function directionToPosition(direction: Direction): Position;
20
33
  export declare function positionToDirection(position: Position): Direction;
21
34
  export type Position = 'top' | 'bottom' | 'left' | 'right' | 'center';
35
+ /** The pointer location within a drop target, handed to a {@link PositionResolver}. */
36
+ export interface PositionResolverArgs {
37
+ /** Pointer X within the target element (px from its left edge). */
38
+ readonly x: number;
39
+ /** Pointer Y within the target element (px from its top edge). */
40
+ readonly y: number;
41
+ readonly width: number;
42
+ readonly height: number;
43
+ /** The drop zones this target currently accepts. */
44
+ readonly zones: ReadonlySet<Position>;
45
+ /** The originating drag event (HTML5 or pointer backend). */
46
+ readonly event: DragEvent | PointerEvent;
47
+ }
48
+ export interface PositionResolverResult {
49
+ readonly position: Position;
50
+ /**
51
+ * Marks an outer / whole-layout-edge cell. The built-in drop overlay only
52
+ * reads `position`; consumers that route edge cells differently can read this.
53
+ */
54
+ readonly edge?: boolean;
55
+ /**
56
+ * Display hint: this cell docks as a dedicated edge group (not a grid-edge
57
+ * split). Purely advisory. A co-installed resolver's UI (e.g. the DnD
58
+ * compass) can suppress its own overlay for these cells so they don't
59
+ * double-render with the edge-group affordance.
60
+ */
61
+ readonly edgeGroup?: boolean;
62
+ }
63
+ /**
64
+ * Pluggable replacement for the built-in cursor-quadrant drop resolution.
65
+ * Supplied via {@link DroptargetOptions.positionResolver}, it maps a pointer
66
+ * location within a target to a drop {@link Position} (or `null` for no drop)
67
+ * instead of the default threshold-band quadrant. Both DnD backends consult the
68
+ * same resolver. When unset, the default quadrant behaviour applies unchanged.
69
+ */
70
+ export interface PositionResolver {
71
+ resolve(args: PositionResolverArgs): PositionResolverResult | null;
72
+ }
22
73
  export type CanDisplayOverlay = (dragEvent: DragEvent | PointerEvent, state: Position) => boolean;
23
74
  export type MeasuredValue = {
24
75
  value: number;
@@ -48,6 +99,15 @@ export interface DropTargetTargetModel {
48
99
  };
49
100
  exists(): boolean;
50
101
  clear(): void;
102
+ /**
103
+ * Clear the overlay on the next tick unless a {@link getElements} call (a
104
+ * target rendering into this container) cancels it first. Used by the HTML5
105
+ * backend on `dragleave`: clearing immediately would kill the overlay's
106
+ * slide between adjacent targets, but never clearing leaves the overlay
107
+ * behind when the drag leaves to somewhere that doesn't re-render here.
108
+ * Optional so lightweight/mocked target models need not implement it.
109
+ */
110
+ scheduleClear?(): void;
51
111
  }
52
112
  export interface DroptargetOptions {
53
113
  canDisplayOverlay: CanDisplayOverlay;
@@ -56,6 +116,13 @@ export interface DroptargetOptions {
56
116
  getOverrideTarget?: () => DropTargetTargetModel | undefined;
57
117
  className?: string;
58
118
  getOverlayOutline?: () => HTMLElement | null;
119
+ /**
120
+ * Supply a {@link PositionResolver} that overrides how a pointer location
121
+ * resolves to a drop {@link Position}. A lazy getter (like
122
+ * {@link getOverrideTarget}) so the source can change at runtime; returning
123
+ * `undefined` (the default) uses the built-in cursor-quadrant logic.
124
+ */
125
+ getPositionResolver?: () => PositionResolver | undefined;
59
126
  }
60
127
  /**
61
128
  * Backend-agnostic drop target. Both the HTML5 `Droptarget` and the pointer
@@ -76,6 +143,8 @@ export declare class Droptarget extends CompositeDisposable implements IDropTarg
76
143
  private targetElement;
77
144
  private overlayElement;
78
145
  private _state;
146
+ /** The current state was resolved as an `edge` cell (see DroptargetEvent). */
147
+ private _edge;
79
148
  private _acceptedTargetZonesSet;
80
149
  private readonly _onDrop;
81
150
  readonly onDrop: Event<DroptargetEvent>;
@@ -101,7 +170,32 @@ export declare class Droptarget extends CompositeDisposable implements IDropTarg
101
170
  */
102
171
  private isAlreadyUsed;
103
172
  private toggleClasses;
173
+ /**
174
+ * Resolve the drop {@link Position} for a pointer location: defer to an
175
+ * injected {@link PositionResolver} when present, otherwise the built-in
176
+ * cursor-quadrant logic (unchanged).
177
+ */
178
+ private resolvePosition;
104
179
  private calculateQuadrant;
180
+ /**
181
+ * Tear down whatever this target is showing, on any frame it resolves to no
182
+ * overlay. Two things make this more than `removeDropTarget`:
183
+ *
184
+ * - With `dndOverlayMounting: 'absolute'` the overlay lives in an anchor
185
+ * container shared by every drop target in the component, and
186
+ * `removeDropTarget` only owns the in-place dropzone — so the container
187
+ * needs clearing explicitly or the last frame's highlight lingers.
188
+ * - It must only clear the container when this target actually put
189
+ * something there. The root edge target sits over every group and
190
+ * declines `center` on each frame in the middle of the layout purely so
191
+ * the event falls through; clearing from there would destroy and rebuild
192
+ * the group's overlay every frame, killing its move transition.
193
+ *
194
+ * Resetting `_state` unconditionally is the other half: a target that
195
+ * resolves to nothing must not stay latched, or a later drop commits a
196
+ * position the cursor left long ago.
197
+ */
198
+ private clearOwnOverlay;
105
199
  private removeDropTarget;
106
200
  /**
107
201
  * Render the drop overlay at `position` without a live drag, so keyboard
@@ -1,4 +1,5 @@
1
1
  export declare function addGhostImage(dataTransfer: DataTransfer, ghostElement: HTMLElement, options?: {
2
2
  x?: number;
3
3
  y?: number;
4
+ ownerDocument?: Document;
4
5
  }): void;
@@ -10,8 +10,8 @@ export interface LongPressOptions {
10
10
  onLongPress: (event: PointerEvent) => void;
11
11
  }
12
12
  /**
13
- * Passive — does not consume the pointer; movement past `tolerance`
14
- * cancels silently so a sibling `PointerDragSource` can take over.
13
+ * Doesn't consume the pointer; movement past `tolerance` cancels
14
+ * silently so a sibling `PointerDragSource` can take over.
15
15
  */
16
16
  export declare class LongPressDetector extends CompositeDisposable {
17
17
  private readonly element;
@@ -9,13 +9,13 @@ export interface ActiveDrag {
9
9
  readonly source: HTMLElement;
10
10
  }
11
11
  /**
12
- * Singleton — only one pointer-driven drag active at a time.
12
+ * Only one pointer-driven drag can be active at a time.
13
13
  *
14
14
  * State is shared across every Dockview instance on the page. Targets
15
15
  * from instance B receive hit-tests from drags originating in instance A;
16
16
  * that's intentional for cross-instance drops since `LocalSelectionTransfer`
17
17
  * is also process-wide. The corollary is that every Tabs subscriber to
18
- * `onDragMove` fires for every pointer drag globally — each subscriber
18
+ * `onDragMove` fires for every pointer drag globally; each subscriber
19
19
  * hit-tests against its own DOM, so this is O(N) per pointermove where N
20
20
  * is the number of registered listeners across all instances.
21
21
  */
@@ -26,6 +26,9 @@ export declare class PointerDragController extends CompositeDisposable {
26
26
  /** Kept in sync with `_targets` so hit-testing is allocation-free. */
27
27
  private readonly _targetByElement;
28
28
  private _active;
29
+ /** The most recent pointer event of the active drag, used to build the
30
+ * drag-end event when a drag is cancelled (which carries no event). */
31
+ private _lastPointerEvent;
29
32
  private _currentTarget;
30
33
  private _dataDisposable;
31
34
  private _ghost;
@@ -18,7 +18,7 @@ export interface PointerDragSourceOptions {
18
18
  * hold for floating-group redock vs docked-group rearrange).
19
19
  */
20
20
  touchInitiationDelay?: number | (() => number);
21
- /** Default 8px. May be a function — see `touchInitiationDelay`. */
21
+ /** Default 8px. May be a function; see `touchInitiationDelay`. */
22
22
  pressTolerance?: number | (() => number);
23
23
  /** Default true: mouse defers to HTML5; pointer path handles touch / pen only. */
24
24
  touchOnly?: boolean;
@@ -1,6 +1,6 @@
1
1
  import { Event } from '../../events';
2
2
  import { CompositeDisposable } from '../../lifecycle';
3
- import { CanDisplayOverlay, DropTargetTargetModel, DroptargetEvent, DroptargetOverlayModel, IDropTarget, Position, WillShowOverlayEvent } from '../droptarget';
3
+ import { CanDisplayOverlay, DropTargetTargetModel, DroptargetEvent, DroptargetOverlayModel, IDropTarget, Position, PositionResolver, WillShowOverlayEvent } from '../droptarget';
4
4
  export interface PointerDropTargetOptions {
5
5
  canDisplayOverlay: CanDisplayOverlay;
6
6
  acceptedTargetZones: Position[];
@@ -10,6 +10,12 @@ export interface PointerDropTargetOptions {
10
10
  /** Outline element for positioning; falls back to the drop element. */
11
11
  getOverlayOutline?: () => HTMLElement | null;
12
12
  className?: string;
13
+ /**
14
+ * Supply a {@link PositionResolver} that overrides how a pointer location
15
+ * resolves to a drop {@link Position}. A lazy getter so the source can
16
+ * change at runtime; `undefined` (default) uses the cursor-quadrant logic.
17
+ */
18
+ getPositionResolver?: () => PositionResolver | undefined;
13
19
  }
14
20
  /** Pointer-driven counterpart to `Droptarget` with identical visual output. */
15
21
  export declare class PointerDropTarget extends CompositeDisposable implements IDropTarget {
@@ -18,6 +24,7 @@ export declare class PointerDropTarget extends CompositeDisposable implements ID
18
24
  private _targetElement;
19
25
  private _overlayElement;
20
26
  private _state;
27
+ private _edge;
21
28
  private _acceptedTargetZonesSet;
22
29
  private readonly _onDrop;
23
30
  readonly onDrop: Event<DroptargetEvent>;
@@ -34,6 +41,28 @@ export declare class PointerDropTarget extends CompositeDisposable implements ID
34
41
  private _onDragOver;
35
42
  private _onDragLeave;
36
43
  private _onDropEvent;
44
+ /**
45
+ * Resolve the drop {@link Position}: defer to an injected
46
+ * {@link PositionResolver} when present, otherwise the built-in
47
+ * cursor-quadrant logic (unchanged). Shares the resolver with the HTML5
48
+ * backend.
49
+ */
50
+ private _resolvePosition;
37
51
  private _calculateQuadrant;
52
+ /**
53
+ * Tear down whatever this target is showing, on any frame it resolves to no
54
+ * overlay. Two things make this more than `_removeOverlay`:
55
+ *
56
+ * - With `dndOverlayMounting: 'absolute'` the overlay lives in an anchor
57
+ * container shared by every drop target in the component, and
58
+ * `_removeOverlay` only owns the in-place dropzone — so the container
59
+ * needs clearing explicitly or the last frame's highlight lingers.
60
+ * - It must only clear the container when this target actually put
61
+ * something there. The root edge target sits over every group and
62
+ * declines `center` on each frame in the middle of the layout purely so
63
+ * the event falls through; clearing from there would destroy and rebuild
64
+ * the group's overlay every frame, killing its move transition.
65
+ */
66
+ private _clearOwnOverlay;
38
67
  private _removeOverlay;
39
68
  }
@@ -9,7 +9,7 @@ export interface PointerGhostOptions {
9
9
  /** Default 0.8. */
10
10
  opacity?: number;
11
11
  /**
12
- * Source element whose `ownerDocument.body` hosts the ghost — pass for
12
+ * Source element whose `ownerDocument.body` hosts the ghost. Pass it for
13
13
  * popout-window drags so the ghost renders in the popout's document.
14
14
  */
15
15
  owner?: Element;
@@ -16,6 +16,10 @@ export interface DockviewMessages {
16
16
  groupFloated(title: string): string;
17
17
  groupDocked(title: string): string;
18
18
  groupPoppedOut(title: string): string;
19
+ /** Accessible name for a tab's close button, qualified with the panel title. */
20
+ closeTab(title: string): string;
21
+ /** Accessible name for a tab's close button when the panel has no title. */
22
+ closeTabPlain(): string;
19
23
  /** Target phase: which group is highlighted, and how to proceed. */
20
24
  movePickTarget(source: string, target: string, current: number, total: number): string;
21
25
  /** Edge phase: which drop position is selected, and how to proceed. */
@@ -26,6 +30,8 @@ export interface DockviewMessages {
26
30
  moveCancelled(): string;
27
31
  /** A move the layout rejected. */
28
32
  moveNotAllowed(): string;
33
+ /** The panel was floated as a terminal move action. */
34
+ moveFloated(source: string): string;
29
35
  }
30
36
  export declare const DEFAULT_MESSAGES: DockviewMessages;
31
37
  /** Merge an app's partial overrides over the English defaults. */
@@ -0,0 +1,31 @@
1
+ import { IDisposable } from '../lifecycle';
2
+ import { IDragGhostSpec } from '../dnd/backend';
3
+ import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
4
+ import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
5
+ import { DockviewWillDropEvent } from './dockviewGroupPanelModel';
6
+ import { DockviewGroupPanel } from './dockviewGroupPanel';
7
+ import { DockviewGroupDropLocation, DockviewWillShowOverlayLocationEvent } from './events';
8
+ import { IAdvancedDnDHost, IAdvancedDnDService } from './moduleContracts';
9
+ /**
10
+ * Owns the dispatch of the advanced drag-and-drop hooks: `onWillDragPanel`,
11
+ * `onWillDragGroup`, `onWillDrop` and `onWillShowOverlay`, forwarding each to
12
+ * the host's emitters so the public event shape is unchanged whether or not
13
+ * this module is registered.
14
+ *
15
+ * The service holds no drag state of its own. The gesture is driven by the
16
+ * DnD backends, and the per-group subscriptions live on the component's group
17
+ * lifecycle (so groups created mid-move are not missed).
18
+ */
19
+ export declare class AdvancedDnDService implements IAdvancedDnDService {
20
+ private readonly host;
21
+ constructor(host: IAdvancedDnDHost);
22
+ dispatchWillDragPanel(event: TabDragEvent): void;
23
+ dispatchWillDragGroup(event: GroupDragEvent): void;
24
+ dispatchWillDrop(event: DockviewWillDropEvent): void;
25
+ dispatchWillShowOverlay(event: DockviewWillShowOverlayLocationEvent): void;
26
+ buildGroupDragGhost(group: DockviewGroupPanel): IDragGhostSpec | undefined;
27
+ resolveOverlayModel(location: DockviewGroupDropLocation, group?: DockviewGroupPanel): DroptargetOverlayModel | undefined;
28
+ showPreviewOverlay(group: DockviewGroupPanel, position: Position): IDisposable;
29
+ dispose(): void;
30
+ }
31
+ export declare const AdvancedDnDModule: import("./modules").DockviewModule<IAdvancedDnDHost>;
@@ -40,7 +40,7 @@ export declare class ContentContainer extends CompositeDisposable implements ICo
40
40
  hide(): void;
41
41
  setLabelledBy(tabElementId: string | undefined): void;
42
42
  renderPanel(panel: IDockviewPanel, options?: {
43
- asActive: boolean;
43
+ asActive?: boolean;
44
44
  }): void;
45
45
  openPanel(panel: IDockviewPanel): void;
46
46
  layout(_width: number, _height: number): void;
@@ -5,6 +5,8 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
5
5
  private readonly _content;
6
6
  private readonly action;
7
7
  private _title;
8
+ /** English defaults until `init` supplies the app's resolved catalog. */
9
+ private _messages;
8
10
  get element(): HTMLElement;
9
11
  constructor();
10
12
  init(params: GroupPanelPartInitParameters): void;
@@ -18,6 +18,7 @@ export declare class Tab extends CompositeDisposable {
18
18
  private readonly pointerDragSource;
19
19
  private readonly panelTransfer;
20
20
  private _direction;
21
+ private _pinIndicator;
21
22
  private readonly _onPointDown;
22
23
  readonly onPointerDown: Event<MouseEvent>;
23
24
  private readonly _onTabClick;
@@ -31,6 +32,7 @@ export declare class Tab extends CompositeDisposable {
31
32
  readonly onWillShowOverlay: Event<WillShowOverlayEvent>;
32
33
  get element(): HTMLElement;
33
34
  constructor(panel: IDockviewPanel, accessor: DockviewComponent, group: DockviewGroupPanel);
35
+ private _updatePinnedClasses;
34
36
  setActive(isActive: boolean): void;
35
37
  setContent(part: ITabRenderer): void;
36
38
  private _buildOverlayModel;
@@ -10,7 +10,7 @@ import { DockviewGroupPanel } from '../../dockviewGroupPanel';
10
10
  * group to redock it into the grid. The redock half is provided by the shared
11
11
  * {@link GroupDragSource}; the move half is owned by the overlay.
12
12
  *
13
- * The bar is intentionally contentless — styling is driven entirely through
13
+ * The bar is intentionally contentless; styling is driven entirely through
14
14
  * the `--dv-floating-titlebar-*` theme variables.
15
15
  */
16
16
  export declare class FloatingTitleBar extends CompositeDisposable {
@@ -21,7 +21,7 @@ export declare class FloatingTitleBar extends CompositeDisposable {
21
21
  private readonly _onDragStart;
22
22
  readonly onDragStart: import("../../../events").Event<PointerEvent | DragEvent>;
23
23
  get element(): HTMLElement;
24
- /** The window's current anchor group — the one this bar drags/activates. */
24
+ /** The window's current anchor group, the one this bar drags/activates. */
25
25
  get group(): DockviewGroupPanel;
26
26
  /**
27
27
  * Retarget the bar at a new anchor group. Called when the original anchor
@@ -7,7 +7,7 @@ export interface GroupDragSourceOptions {
7
7
  readonly accessor: DockviewComponent;
8
8
  /**
9
9
  * The group this handle drags. Pass a function when the handle outlives the
10
- * group it represents and can be retargeted — e.g. a floating window's
10
+ * group it represents and can be retargeted, e.g. a floating window's
11
11
  * dedicated title bar, whose anchor group is reassigned when the original
12
12
  * anchor leaves a multi-group window. A fixed reference (the tab-bar void
13
13
  * container, which lives inside its own group's DOM) is also accepted.
@@ -8,7 +8,7 @@ import { DockviewApi } from '../../../api/component.api';
8
8
  * Visual chip for a tab group. Owns the DOM element, label, click /
9
9
  * context-menu interactions, and exposes a long-press gesture as a
10
10
  * second `onContextMenu` source. Drag-and-drop wiring lives in
11
- * `TabGroupManager` — the manager constructs the drag sources on this
11
+ * `TabGroupManager`, which constructs the drag sources on this
12
12
  * chip's element so it can include tabs-list context (custom group
13
13
  * drag image, tab-group transfer payload).
14
14
  */
@@ -3,6 +3,12 @@ import { DockviewHeaderDirection, DockviewHeaderPosition } from '../../options';
3
3
  import { Tab } from '../tab/tab';
4
4
  import { ITabGroup } from '../../tabGroup';
5
5
  import { TabGroupColorPalette } from '../../tabGroupAccent';
6
+ /**
7
+ * Class for the small accent pip drawn at the leading edge of each wrapped
8
+ * row a tab group spans beyond its first. Echoes the group chip so a
9
+ * multi-row group reads as one group on every row it occupies.
10
+ */
11
+ export declare const TAB_GROUP_CHIP_CONTINUATION_CLASS = "dv-tab-group-chip-continuation";
6
12
  export interface TabGroupIndicatorContext {
7
13
  readonly tabsList: HTMLElement;
8
14
  getTabGroups(): readonly ITabGroup[];
@@ -28,6 +34,12 @@ export interface ITabGroupIndicator {
28
34
  declare abstract class BaseTabGroupIndicator implements ITabGroupIndicator {
29
35
  protected readonly _ctx: TabGroupIndicatorContext;
30
36
  protected readonly _underlines: Map<string, HTMLElement>;
37
+ /**
38
+ * Per-group pool of continuation-marker pips (one per wrapped row the
39
+ * group spans beyond its first). Absolutely positioned so they sit
40
+ * outside the flex-wrap flow, exactly like the underline element.
41
+ */
42
+ private readonly _continuationMarkers;
31
43
  private _rafId;
32
44
  get underlines(): ReadonlyMap<string, HTMLElement>;
33
45
  constructor(_ctx: TabGroupIndicatorContext);
@@ -40,12 +52,71 @@ declare abstract class BaseTabGroupIndicator implements ITabGroupIndicator {
40
52
  syncUnderlineElements(activeGroupIds: Set<string>): void;
41
53
  getUnderline(groupId: string): HTMLElement | undefined;
42
54
  dispose(): void;
55
+ /**
56
+ * Grow/shrink a group's continuation-marker pool to `count` pips,
57
+ * creating/removing DOM nodes as needed, and return the pool.
58
+ */
59
+ private _syncContinuationMarkers;
60
+ /**
61
+ * Remove continuation markers for a single group, or (when `groupId`
62
+ * is omitted) for every group. Used when a group dissolves, stops
63
+ * wrapping, or the indicator is disposed.
64
+ */
65
+ private _clearContinuationMarkers;
43
66
  /**
44
67
  * Apply the visual shape to the underline element.
45
68
  * Called once per tab group per frame with the computed geometry.
46
69
  */
47
70
  protected abstract applyShape(underline: HTMLElement, tg: ITabGroup, startEdge: number, span: number, containerCrossSize: number, activePanelId: string | undefined, containerRect: DOMRect, isVertical: boolean): void;
48
71
  private _positionUnderlinesSync;
72
+ /**
73
+ * Position a group's underline across a multi-line (wrapped) tab strip. The
74
+ * single-bar model can't span lines, so the element is sized to cover the
75
+ * group's line span and an SVG draws one straight segment per line-run of
76
+ * the group's tabs: a horizontal segment per row (horizontal header) or a
77
+ * vertical segment per column (vertical header). Tabs are bucketed into
78
+ * runs by their cross-axis offset: `top` for rows, `left` for columns.
79
+ * (The active-tab wrap-around bump is omitted in wrap; the per-line lines
80
+ * still convey membership.)
81
+ */
82
+ private _positionWrappedUnderline;
83
+ /**
84
+ * Bucket a group's visible tabs into line-runs by their cross-axis offset
85
+ * (rows by `top`, columns by `left`), with a 2px sub-pixel tolerance.
86
+ * `firstRun` is the run holding the group's first tab (the chip's line),
87
+ * tracked by reference so it is correct regardless of axis or header side (a
88
+ * `vertical-rl` first column is right-most, not left-most).
89
+ */
90
+ private _computeWrappedRuns;
91
+ /**
92
+ * Build the SVG `path` data for a group's per-line underline segments: a
93
+ * horizontal segment along each row's edge (`svg-y` offset by `minTop`) or a
94
+ * vertical segment down each column's leading edge (`svg-x` offset by
95
+ * `minLeft`). `inverted` moves the line to the header-facing edge.
96
+ */
97
+ private _wrappedPathData;
98
+ /**
99
+ * Draw a small accent pip at the leading edge of every wrapped line-run a
100
+ * group spans beyond its first. The group's real chip already marks the
101
+ * first run; these lightweight markers echo it on the continuation runs so
102
+ * a group that wraps onto rows/columns 2–3 reads as one group on each line
103
+ * instead of losing its colour after the first.
104
+ *
105
+ * `runs` are the group's line-runs (container-relative geometry) as
106
+ * bucketed by {@link _positionWrappedUnderline}; `firstRun` is the run that
107
+ * holds the chip and is skipped. The pip sits at each continuation run's
108
+ * main-axis start (top of a column, left of a row), centred on the cross
109
+ * axis.
110
+ */
111
+ private _positionContinuationMarkers;
112
+ /**
113
+ * Ensure the underline element holds a single reusable `<svg><path/></svg>`
114
+ * (created once, reused across frames) and return them.
115
+ */
116
+ protected ensureSvgPath(underline: HTMLElement): {
117
+ svg: SVGSVGElement;
118
+ path: SVGPathElement;
119
+ };
49
120
  }
50
121
  /**
51
122
  * Chrome-style wrap-around indicator using SVG paths.
@@ -63,8 +134,8 @@ export declare class WrapTabGroupIndicator extends BaseTabGroupIndicator {
63
134
  protected applyShape(underline: HTMLElement, tg: ITabGroup, groupStart: number, groupSpan: number, containerCrossSize: number, activePanelId: string | undefined, containerRect: DOMRect, isVertical: boolean): void;
64
135
  }
65
136
  /**
66
- * Flat continuous bar indicator — no wrap-around, just a colored line
67
- * spanning the full tab group width.
137
+ * Flat continuous bar indicator: a plain colored line spanning the full tab
138
+ * group width, with no wrap-around.
68
139
  */
69
140
  export declare class NoneTabGroupIndicator extends BaseTabGroupIndicator {
70
141
  protected applyShape(underline: HTMLElement, tg: ITabGroup, _startEdge: number, span: number, _containerCrossSize: number, _activePanelId: string | undefined, _containerRect: DOMRect, isVertical: boolean): void;
@@ -75,7 +75,7 @@ export declare class TabGroupManager {
75
75
  /**
76
76
  * Synchronously dispose the chip drag sources for an in-flight chip
77
77
  * drag. Called from `_commitGroupMove` so the transfer payload +
78
- * iframe shield are released BEFORE the cross-group move detaches
78
+ * iframe shield are released before the cross-group move detaches
79
79
  * the chip (chip dispose is scheduled on a microtask via
80
80
  * `_scheduleTabGroupUpdate`, which is too late for callers that read
81
81
  * `getPanelData()` synchronously after the move).