dockview-core 7.0.4 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) 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/dropTargetAnchorContainer.d.ts +12 -0
  9. package/dist/cjs/dnd/droptarget.d.ts +94 -0
  10. package/dist/cjs/dnd/ghost.d.ts +1 -0
  11. package/dist/cjs/dnd/pointer/longPress.d.ts +2 -2
  12. package/dist/cjs/dnd/pointer/pointerDragController.d.ts +5 -2
  13. package/dist/cjs/dnd/pointer/pointerDragSource.d.ts +1 -1
  14. package/dist/cjs/dnd/pointer/pointerDropTarget.d.ts +30 -1
  15. package/dist/cjs/dnd/pointer/pointerGhost.d.ts +1 -1
  16. package/dist/cjs/dockview/accessibilityMessages.d.ts +6 -0
  17. package/dist/cjs/dockview/advancedDnDService.d.ts +46 -0
  18. package/dist/cjs/dockview/components/panel/content.d.ts +1 -1
  19. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -0
  20. package/dist/cjs/dockview/components/tab/tab.d.ts +2 -0
  21. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +2 -2
  22. package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +1 -1
  23. package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +1 -1
  24. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +73 -2
  25. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +1 -1
  26. package/dist/cjs/dockview/components/titlebar/tabReorderController.d.ts +295 -0
  27. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +120 -50
  28. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +48 -0
  29. package/dist/cjs/dockview/dndCapabilities.d.ts +1 -1
  30. package/dist/cjs/dockview/dockviewComponent.d.ts +303 -19
  31. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
  32. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +52 -2
  33. package/dist/cjs/dockview/dockviewPanel.d.ts +12 -0
  34. package/dist/cjs/dockview/dockviewShell.d.ts +48 -24
  35. package/dist/cjs/dockview/edgeGroupService.d.ts +20 -0
  36. package/dist/cjs/dockview/events.d.ts +6 -0
  37. package/dist/cjs/dockview/liveRegionService.d.ts +18 -5
  38. package/dist/cjs/dockview/moduleContracts.d.ts +480 -14
  39. package/dist/cjs/dockview/modules.d.ts +101 -22
  40. package/dist/cjs/dockview/options.d.ts +337 -30
  41. package/dist/cjs/dockview/optionsModules.d.ts +73 -0
  42. package/dist/cjs/dockview/popoutWindowService.d.ts +15 -10
  43. package/dist/cjs/dockview/rootDropTargetService.d.ts +11 -0
  44. package/dist/cjs/dockview/tabGroupAccent.d.ts +1 -1
  45. package/dist/cjs/dockview/tabGroupChipsService.d.ts +10 -0
  46. package/dist/cjs/dockview/theme.d.ts +2 -2
  47. package/dist/cjs/dockview/types.d.ts +3 -0
  48. package/dist/cjs/dom.d.ts +9 -1
  49. package/dist/cjs/gridview/baseComponentGridview.d.ts +2 -2
  50. package/dist/cjs/gridview/gridview.d.ts +2 -0
  51. package/dist/cjs/index.d.ts +35 -29
  52. package/dist/cjs/lifecycle.d.ts +1 -0
  53. package/dist/cjs/overlay/overlay.d.ts +4 -2
  54. package/dist/cjs/overlay/overlayRenderContainer.d.ts +8 -0
  55. package/dist/cjs/paneview/paneview.d.ts +2 -1
  56. package/dist/cjs/paneview/paneviewComponent.d.ts +3 -0
  57. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -0
  58. package/dist/cjs/svg.d.ts +1 -0
  59. package/dist/cjs/types.d.ts +8 -0
  60. package/dist/dockview-core.js +18391 -19679
  61. package/dist/dockview-core.min.js +4138 -6
  62. package/dist/dockview-core.min.noStyle.js +6 -7
  63. package/dist/dockview-core.noStyle.js +18390 -19656
  64. package/dist/package/main.cjs.js +18002 -19268
  65. package/dist/package/main.cjs.min.js +6 -6
  66. package/dist/package/main.esm.min.mjs +6 -6
  67. package/dist/package/main.esm.mjs +17959 -19260
  68. package/package.json +81 -77
  69. package/dist/cjs/api/component.api.js +0 -1242
  70. package/dist/cjs/api/dockviewGroupPanelApi.js +0 -200
  71. package/dist/cjs/api/dockviewPanelApi.js +0 -172
  72. package/dist/cjs/api/entryPoints.js +0 -27
  73. package/dist/cjs/api/gridviewPanelApi.js +0 -45
  74. package/dist/cjs/api/panelApi.js +0 -133
  75. package/dist/cjs/api/paneviewPanelApi.js +0 -57
  76. package/dist/cjs/api/splitviewPanelApi.js +0 -47
  77. package/dist/cjs/array.js +0 -66
  78. package/dist/cjs/constants.js +0 -11
  79. package/dist/cjs/dnd/backend.js +0 -171
  80. package/dist/cjs/dnd/dataTransfer.js +0 -100
  81. package/dist/cjs/dnd/dnd.js +0 -74
  82. package/dist/cjs/dnd/dropOverlay.js +0 -197
  83. package/dist/cjs/dnd/dropTargetAnchorContainer.js +0 -104
  84. package/dist/cjs/dnd/droptarget.js +0 -362
  85. package/dist/cjs/dnd/ghost.js +0 -17
  86. package/dist/cjs/dnd/pointer/index.js +0 -13
  87. package/dist/cjs/dnd/pointer/longPress.js +0 -151
  88. package/dist/cjs/dnd/pointer/pointerDragController.js +0 -243
  89. package/dist/cjs/dnd/pointer/pointerDragSource.js +0 -197
  90. package/dist/cjs/dnd/pointer/pointerDropTarget.js +0 -198
  91. package/dist/cjs/dnd/pointer/pointerGhost.js +0 -44
  92. package/dist/cjs/dnd/pointer/types.js +0 -2
  93. package/dist/cjs/dockview/accessibilityMessages.js +0 -51
  94. package/dist/cjs/dockview/allModules.js +0 -25
  95. package/dist/cjs/dockview/components/panel/content.js +0 -213
  96. package/dist/cjs/dockview/components/popupService.js +0 -132
  97. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -70
  98. package/dist/cjs/dockview/components/tab/tab.js +0 -281
  99. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +0 -95
  100. package/dist/cjs/dockview/components/titlebar/groupDragSource.js +0 -218
  101. package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +0 -104
  102. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +0 -477
  103. package/dist/cjs/dockview/components/titlebar/tabGroups.js +0 -854
  104. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +0 -19
  105. package/dist/cjs/dockview/components/titlebar/tabs.js +0 -2016
  106. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +0 -458
  107. package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -120
  108. package/dist/cjs/dockview/components/watermark/watermark.js +0 -40
  109. package/dist/cjs/dockview/deserializer.js +0 -39
  110. package/dist/cjs/dockview/dndCapabilities.js +0 -39
  111. package/dist/cjs/dockview/dockviewComponent.js +0 -3896
  112. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -70
  113. package/dist/cjs/dockview/dockviewGroupPanel.js +0 -204
  114. package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1514
  115. package/dist/cjs/dockview/dockviewPanel.js +0 -265
  116. package/dist/cjs/dockview/dockviewPanelModel.js +0 -105
  117. package/dist/cjs/dockview/dockviewShell.js +0 -744
  118. package/dist/cjs/dockview/edgeGroupService.js +0 -128
  119. package/dist/cjs/dockview/events.js +0 -67
  120. package/dist/cjs/dockview/floatingGroupService.js +0 -231
  121. package/dist/cjs/dockview/framework.js +0 -2
  122. package/dist/cjs/dockview/headerActionsService.js +0 -149
  123. package/dist/cjs/dockview/liveRegionService.js +0 -185
  124. package/dist/cjs/dockview/moduleContracts.js +0 -2
  125. package/dist/cjs/dockview/modules.js +0 -304
  126. package/dist/cjs/dockview/options.js +0 -103
  127. package/dist/cjs/dockview/popoutWindowService.js +0 -261
  128. package/dist/cjs/dockview/rootDropTargetService.js +0 -87
  129. package/dist/cjs/dockview/strictEventsSequencing.js +0 -63
  130. package/dist/cjs/dockview/tabGroup.js +0 -219
  131. package/dist/cjs/dockview/tabGroupAccent.js +0 -126
  132. package/dist/cjs/dockview/theme.js +0 -139
  133. package/dist/cjs/dockview/types.js +0 -2
  134. package/dist/cjs/dockview/validate.js +0 -76
  135. package/dist/cjs/dockview/watermarkService.js +0 -61
  136. package/dist/cjs/dom.js +0 -543
  137. package/dist/cjs/events.js +0 -296
  138. package/dist/cjs/framwork.js +0 -2
  139. package/dist/cjs/gridview/baseComponentGridview.js +0 -330
  140. package/dist/cjs/gridview/basePanelView.js +0 -162
  141. package/dist/cjs/gridview/branchNode.js +0 -372
  142. package/dist/cjs/gridview/gridview.js +0 -776
  143. package/dist/cjs/gridview/gridviewComponent.js +0 -363
  144. package/dist/cjs/gridview/gridviewPanel.js +0 -249
  145. package/dist/cjs/gridview/leafNode.js +0 -169
  146. package/dist/cjs/gridview/options.js +0 -17
  147. package/dist/cjs/gridview/types.js +0 -2
  148. package/dist/cjs/index.js +0 -105
  149. package/dist/cjs/lifecycle.js +0 -80
  150. package/dist/cjs/math.js +0 -38
  151. package/dist/cjs/overlay/overlay.js +0 -602
  152. package/dist/cjs/overlay/overlayRenderContainer.js +0 -309
  153. package/dist/cjs/panel/types.js +0 -2
  154. package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -92
  155. package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -141
  156. package/dist/cjs/paneview/options.js +0 -44
  157. package/dist/cjs/paneview/paneview.js +0 -203
  158. package/dist/cjs/paneview/paneviewComponent.js +0 -430
  159. package/dist/cjs/paneview/paneviewPanel.js +0 -275
  160. package/dist/cjs/popoutWindow.js +0 -244
  161. package/dist/cjs/resizable.js +0 -97
  162. package/dist/cjs/scrollbar.js +0 -169
  163. package/dist/cjs/splitview/options.js +0 -19
  164. package/dist/cjs/splitview/splitview.js +0 -999
  165. package/dist/cjs/splitview/splitviewComponent.js +0 -401
  166. package/dist/cjs/splitview/splitviewPanel.js +0 -179
  167. package/dist/cjs/splitview/viewItem.js +0 -119
  168. package/dist/cjs/svg.js +0 -43
  169. package/dist/cjs/types.js +0 -2
  170. package/dist/dockview-core.min.js.map +0 -1
  171. package/dist/dockview-core.min.noStyle.js.map +0 -1
  172. package/dist/esm/api/component.api.d.ts +0 -640
  173. package/dist/esm/api/component.api.js +0 -887
  174. package/dist/esm/api/dockviewGroupPanelApi.d.ts +0 -109
  175. package/dist/esm/api/dockviewGroupPanelApi.js +0 -155
  176. package/dist/esm/api/dockviewPanelApi.d.ts +0 -84
  177. package/dist/esm/api/dockviewPanelApi.js +0 -124
  178. package/dist/esm/api/entryPoints.d.ts +0 -9
  179. package/dist/esm/api/entryPoints.js +0 -21
  180. package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
  181. package/dist/esm/api/gridviewPanelApi.js +0 -23
  182. package/dist/esm/api/panelApi.d.ts +0 -100
  183. package/dist/esm/api/panelApi.js +0 -87
  184. package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
  185. package/dist/esm/api/paneviewPanelApi.js +0 -27
  186. package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
  187. package/dist/esm/api/splitviewPanelApi.js +0 -25
  188. package/dist/esm/array.d.ts +0 -13
  189. package/dist/esm/array.js +0 -57
  190. package/dist/esm/constants.d.ts +0 -8
  191. package/dist/esm/constants.js +0 -8
  192. package/dist/esm/dnd/backend.d.ts +0 -70
  193. package/dist/esm/dnd/backend.js +0 -148
  194. package/dist/esm/dnd/dataTransfer.d.ts +0 -31
  195. package/dist/esm/dnd/dataTransfer.js +0 -67
  196. package/dist/esm/dnd/dnd.d.ts +0 -32
  197. package/dist/esm/dnd/dnd.js +0 -51
  198. package/dist/esm/dnd/dropOverlay.d.ts +0 -20
  199. package/dist/esm/dnd/dropOverlay.js +0 -192
  200. package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +0 -16
  201. package/dist/esm/dnd/dropTargetAnchorContainer.js +0 -73
  202. package/dist/esm/dnd/droptarget.d.ts +0 -116
  203. package/dist/esm/dnd/droptarget.js +0 -316
  204. package/dist/esm/dnd/ghost.d.ts +0 -4
  205. package/dist/esm/dnd/ghost.js +0 -14
  206. package/dist/esm/dnd/pointer/index.d.ts +0 -11
  207. package/dist/esm/dnd/pointer/index.js +0 -5
  208. package/dist/esm/dnd/pointer/longPress.d.ts +0 -32
  209. package/dist/esm/dnd/pointer/longPress.js +0 -127
  210. package/dist/esm/dnd/pointer/pointerDragController.d.ts +0 -60
  211. package/dist/esm/dnd/pointer/pointerDragController.js +0 -193
  212. package/dist/esm/dnd/pointer/pointerDragSource.d.ts +0 -61
  213. package/dist/esm/dnd/pointer/pointerDragSource.js +0 -173
  214. package/dist/esm/dnd/pointer/pointerDropTarget.d.ts +0 -39
  215. package/dist/esm/dnd/pointer/pointerDropTarget.js +0 -168
  216. package/dist/esm/dnd/pointer/pointerGhost.d.ts +0 -30
  217. package/dist/esm/dnd/pointer/pointerGhost.js +0 -39
  218. package/dist/esm/dnd/pointer/types.d.ts +0 -16
  219. package/dist/esm/dnd/pointer/types.js +0 -1
  220. package/dist/esm/dockview/accessibilityMessages.d.ts +0 -32
  221. package/dist/esm/dockview/accessibilityMessages.js +0 -30
  222. package/dist/esm/dockview/allModules.d.ts +0 -8
  223. package/dist/esm/dockview/allModules.js +0 -22
  224. package/dist/esm/dockview/components/panel/content.d.ts +0 -54
  225. package/dist/esm/dockview/components/panel/content.js +0 -185
  226. package/dist/esm/dockview/components/popupService.d.ts +0 -21
  227. package/dist/esm/dockview/components/popupService.js +0 -108
  228. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -12
  229. package/dist/esm/dockview/components/tab/defaultTab.js +0 -43
  230. package/dist/esm/dockview/components/tab/tab.d.ts +0 -44
  231. package/dist/esm/dockview/components/tab/tab.js +0 -242
  232. package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +0 -34
  233. package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +0 -65
  234. package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +0 -51
  235. package/dist/esm/dockview/components/titlebar/groupDragSource.js +0 -178
  236. package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +0 -37
  237. package/dist/esm/dockview/components/titlebar/tabGroupChip.js +0 -77
  238. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +0 -72
  239. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +0 -360
  240. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +0 -107
  241. package/dist/esm/dockview/components/titlebar/tabGroups.js +0 -621
  242. package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +0 -8
  243. package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +0 -16
  244. package/dist/esm/dockview/components/titlebar/tabs.d.ts +0 -167
  245. package/dist/esm/dockview/components/titlebar/tabs.js +0 -1653
  246. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +0 -104
  247. package/dist/esm/dockview/components/titlebar/tabsContainer.js +0 -359
  248. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +0 -21
  249. package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -92
  250. package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -8
  251. package/dist/esm/dockview/components/watermark/watermark.js +0 -14
  252. package/dist/esm/dockview/deserializer.d.ts +0 -12
  253. package/dist/esm/dockview/deserializer.js +0 -34
  254. package/dist/esm/dockview/dndCapabilities.d.ts +0 -19
  255. package/dist/esm/dockview/dndCapabilities.js +0 -36
  256. package/dist/esm/dockview/dockviewComponent.d.ts +0 -626
  257. package/dist/esm/dockview/dockviewComponent.js +0 -3214
  258. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -45
  259. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -44
  260. package/dist/esm/dockview/dockviewGroupPanel.d.ts +0 -35
  261. package/dist/esm/dockview/dockviewGroupPanel.js +0 -142
  262. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +0 -358
  263. package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1180
  264. package/dist/esm/dockview/dockviewPanel.d.ts +0 -69
  265. package/dist/esm/dockview/dockviewPanel.js +0 -178
  266. package/dist/esm/dockview/dockviewPanelModel.d.ts +0 -37
  267. package/dist/esm/dockview/dockviewPanelModel.js +0 -81
  268. package/dist/esm/dockview/dockviewShell.d.ts +0 -150
  269. package/dist/esm/dockview/dockviewShell.js +0 -678
  270. package/dist/esm/dockview/edgeGroupService.d.ts +0 -38
  271. package/dist/esm/dockview/edgeGroupService.js +0 -63
  272. package/dist/esm/dockview/events.d.ts +0 -38
  273. package/dist/esm/dockview/events.js +0 -34
  274. package/dist/esm/dockview/floatingGroupService.d.ts +0 -37
  275. package/dist/esm/dockview/floatingGroupService.js +0 -150
  276. package/dist/esm/dockview/framework.d.ts +0 -65
  277. package/dist/esm/dockview/framework.js +0 -1
  278. package/dist/esm/dockview/headerActionsService.d.ts +0 -32
  279. package/dist/esm/dockview/headerActionsService.js +0 -86
  280. package/dist/esm/dockview/liveRegionService.d.ts +0 -53
  281. package/dist/esm/dockview/liveRegionService.js +0 -159
  282. package/dist/esm/dockview/moduleContracts.d.ts +0 -119
  283. package/dist/esm/dockview/moduleContracts.js +0 -1
  284. package/dist/esm/dockview/modules.d.ts +0 -110
  285. package/dist/esm/dockview/modules.js +0 -170
  286. package/dist/esm/dockview/options.d.ts +0 -474
  287. package/dist/esm/dockview/options.js +0 -77
  288. package/dist/esm/dockview/popoutWindowService.d.ts +0 -95
  289. package/dist/esm/dockview/popoutWindowService.js +0 -175
  290. package/dist/esm/dockview/rootDropTargetService.d.ts +0 -35
  291. package/dist/esm/dockview/rootDropTargetService.js +0 -82
  292. package/dist/esm/dockview/strictEventsSequencing.d.ts +0 -7
  293. package/dist/esm/dockview/strictEventsSequencing.js +0 -41
  294. package/dist/esm/dockview/tabGroup.d.ts +0 -99
  295. package/dist/esm/dockview/tabGroup.js +0 -144
  296. package/dist/esm/dockview/tabGroupAccent.d.ts +0 -65
  297. package/dist/esm/dockview/tabGroupAccent.js +0 -114
  298. package/dist/esm/dockview/theme.d.ts +0 -86
  299. package/dist/esm/dockview/theme.js +0 -136
  300. package/dist/esm/dockview/types.d.ts +0 -53
  301. package/dist/esm/dockview/types.js +0 -1
  302. package/dist/esm/dockview/validate.d.ts +0 -0
  303. package/dist/esm/dockview/validate.js +0 -76
  304. package/dist/esm/dockview/watermarkService.d.ts +0 -30
  305. package/dist/esm/dockview/watermarkService.js +0 -56
  306. package/dist/esm/dom.d.ts +0 -60
  307. package/dist/esm/dom.js +0 -375
  308. package/dist/esm/events.d.ts +0 -79
  309. package/dist/esm/events.js +0 -219
  310. package/dist/esm/framwork.d.ts +0 -4
  311. package/dist/esm/framwork.js +0 -1
  312. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -111
  313. package/dist/esm/gridview/baseComponentGridview.js +0 -237
  314. package/dist/esm/gridview/basePanelView.d.ts +0 -40
  315. package/dist/esm/gridview/basePanelView.js +0 -91
  316. package/dist/esm/gridview/branchNode.d.ts +0 -57
  317. package/dist/esm/gridview/branchNode.js +0 -257
  318. package/dist/esm/gridview/gridview.d.ts +0 -158
  319. package/dist/esm/gridview/gridview.js +0 -681
  320. package/dist/esm/gridview/gridviewComponent.d.ts +0 -88
  321. package/dist/esm/gridview/gridviewComponent.js +0 -265
  322. package/dist/esm/gridview/gridviewPanel.d.ts +0 -77
  323. package/dist/esm/gridview/gridviewPanel.js +0 -182
  324. package/dist/esm/gridview/leafNode.d.ts +0 -34
  325. package/dist/esm/gridview/leafNode.js +0 -102
  326. package/dist/esm/gridview/options.d.ts +0 -15
  327. package/dist/esm/gridview/options.js +0 -14
  328. package/dist/esm/gridview/types.d.ts +0 -3
  329. package/dist/esm/gridview/types.js +0 -1
  330. package/dist/esm/index.d.ts +0 -58
  331. package/dist/esm/index.js +0 -44
  332. package/dist/esm/lifecycle.d.ts +0 -25
  333. package/dist/esm/lifecycle.js +0 -56
  334. package/dist/esm/math.d.ts +0 -5
  335. package/dist/esm/math.js +0 -32
  336. package/dist/esm/overlay/overlay.d.ts +0 -91
  337. package/dist/esm/overlay/overlay.js +0 -520
  338. package/dist/esm/overlay/overlayRenderContainer.d.ts +0 -24
  339. package/dist/esm/overlay/overlayRenderContainer.js +0 -249
  340. package/dist/esm/panel/types.d.ts +0 -33
  341. package/dist/esm/panel/types.js +0 -1
  342. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
  343. package/dist/esm/paneview/defaultPaneviewHeader.js +0 -65
  344. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -38
  345. package/dist/esm/paneview/draggablePaneviewPanel.js +0 -107
  346. package/dist/esm/paneview/options.d.ts +0 -30
  347. package/dist/esm/paneview/options.js +0 -22
  348. package/dist/esm/paneview/paneview.d.ts +0 -41
  349. package/dist/esm/paneview/paneview.js +0 -148
  350. package/dist/esm/paneview/paneviewComponent.d.ts +0 -133
  351. package/dist/esm/paneview/paneviewComponent.js +0 -306
  352. package/dist/esm/paneview/paneviewPanel.d.ts +0 -98
  353. package/dist/esm/paneview/paneviewPanel.js +0 -192
  354. package/dist/esm/popoutWindow.d.ts +0 -38
  355. package/dist/esm/popoutWindow.js +0 -170
  356. package/dist/esm/resizable.d.ts +0 -12
  357. package/dist/esm/resizable.js +0 -66
  358. package/dist/esm/scrollbar.d.ts +0 -15
  359. package/dist/esm/scrollbar.js +0 -139
  360. package/dist/esm/splitview/options.d.ts +0 -21
  361. package/dist/esm/splitview/options.js +0 -16
  362. package/dist/esm/splitview/splitview.d.ts +0 -145
  363. package/dist/esm/splitview/splitview.js +0 -770
  364. package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
  365. package/dist/esm/splitview/splitviewComponent.js +0 -267
  366. package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
  367. package/dist/esm/splitview/splitviewPanel.js +0 -108
  368. package/dist/esm/splitview/viewItem.d.ts +0 -25
  369. package/dist/esm/splitview/viewItem.js +0 -74
  370. package/dist/esm/svg.d.ts +0 -3
  371. package/dist/esm/svg.js +0 -31
  372. package/dist/esm/types.d.ts +0 -31
  373. package/dist/esm/types.js +0 -1
  374. 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,46 @@
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
+ * The narrow surface the {@link AdvancedDnDService} needs from the host
11
+ * (the `DockviewComponent`).
12
+ *
13
+ * The `onWill*` emitters stay on the component so the public event shape is
14
+ * unchanged whether or not this module is registered; the service is only the
15
+ * dispatch point those fires are routed through. Engine policy (e.g. the
16
+ * `disableDnd` guard) stays on the component, ahead of the dispatch.
17
+ */
18
+ /**
19
+ * Owns the dispatch of the advanced drag-and-drop hooks: `onWillDragPanel`,
20
+ * `onWillDragGroup`, `onWillDrop` and `onWillShowOverlay`.
21
+ *
22
+ * At this stage the service is a thin dispatcher that forwards to the host's
23
+ * emitters; the customisation surface it gates (custom drop overlays, custom
24
+ * group drag ghosts, hook veto/transform behaviour) is currently inlined in
25
+ * core and is extracted into this service in later phases. Routing the
26
+ * dispatch through a module slot is what lets that customisation layer move
27
+ * into a separately-distributed package in a future major version without
28
+ * changing the public event surface.
29
+ *
30
+ * The service holds no drag state of its own. The gesture is driven by the
31
+ * DnD backends, and the per-group subscriptions live on the component's group
32
+ * lifecycle (so groups created mid-move are not missed).
33
+ */
34
+ export declare class AdvancedDnDService implements IAdvancedDnDService {
35
+ private readonly host;
36
+ constructor(host: IAdvancedDnDHost);
37
+ dispatchWillDragPanel(event: TabDragEvent): void;
38
+ dispatchWillDragGroup(event: GroupDragEvent): void;
39
+ dispatchWillDrop(event: DockviewWillDropEvent): void;
40
+ dispatchWillShowOverlay(event: DockviewWillShowOverlayLocationEvent): void;
41
+ buildGroupDragGhost(group: DockviewGroupPanel): IDragGhostSpec | undefined;
42
+ resolveOverlayModel(location: DockviewGroupDropLocation, group?: DockviewGroupPanel): DroptargetOverlayModel | undefined;
43
+ showPreviewOverlay(group: DockviewGroupPanel, position: Position): IDisposable;
44
+ dispose(): void;
45
+ }
46
+ 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).