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.
- package/LICENCE.md +21 -0
- package/README.md +17 -86
- package/dist/cjs/api/component.api.d.ts +100 -9
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +45 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts +21 -0
- package/dist/cjs/dismissableLayer.d.ts +57 -0
- package/dist/cjs/dnd/backend.d.ts +2 -2
- package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +12 -0
- package/dist/cjs/dnd/droptarget.d.ts +94 -0
- package/dist/cjs/dnd/ghost.d.ts +1 -0
- package/dist/cjs/dnd/pointer/longPress.d.ts +2 -2
- package/dist/cjs/dnd/pointer/pointerDragController.d.ts +5 -2
- package/dist/cjs/dnd/pointer/pointerDragSource.d.ts +1 -1
- package/dist/cjs/dnd/pointer/pointerDropTarget.d.ts +30 -1
- package/dist/cjs/dnd/pointer/pointerGhost.d.ts +1 -1
- package/dist/cjs/dockview/accessibilityMessages.d.ts +6 -0
- package/dist/cjs/dockview/advancedDnDService.d.ts +46 -0
- package/dist/cjs/dockview/components/panel/content.d.ts +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -0
- package/dist/cjs/dockview/components/tab/tab.d.ts +2 -0
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +2 -2
- package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +73 -2
- package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabReorderController.d.ts +295 -0
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +120 -50
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +48 -0
- package/dist/cjs/dockview/dndCapabilities.d.ts +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +303 -19
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +52 -2
- package/dist/cjs/dockview/dockviewPanel.d.ts +12 -0
- package/dist/cjs/dockview/dockviewShell.d.ts +48 -24
- package/dist/cjs/dockview/edgeGroupService.d.ts +20 -0
- package/dist/cjs/dockview/events.d.ts +6 -0
- package/dist/cjs/dockview/liveRegionService.d.ts +18 -5
- package/dist/cjs/dockview/moduleContracts.d.ts +480 -14
- package/dist/cjs/dockview/modules.d.ts +101 -22
- package/dist/cjs/dockview/options.d.ts +337 -30
- package/dist/cjs/dockview/optionsModules.d.ts +73 -0
- package/dist/cjs/dockview/popoutWindowService.d.ts +15 -10
- package/dist/cjs/dockview/rootDropTargetService.d.ts +11 -0
- package/dist/cjs/dockview/tabGroupAccent.d.ts +1 -1
- package/dist/cjs/dockview/tabGroupChipsService.d.ts +10 -0
- package/dist/cjs/dockview/theme.d.ts +2 -2
- package/dist/cjs/dockview/types.d.ts +3 -0
- package/dist/cjs/dom.d.ts +9 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +2 -2
- package/dist/cjs/gridview/gridview.d.ts +2 -0
- package/dist/cjs/index.d.ts +35 -29
- package/dist/cjs/lifecycle.d.ts +1 -0
- package/dist/cjs/overlay/overlay.d.ts +4 -2
- package/dist/cjs/overlay/overlayRenderContainer.d.ts +8 -0
- package/dist/cjs/paneview/paneview.d.ts +2 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +3 -0
- package/dist/cjs/paneview/paneviewPanel.d.ts +5 -0
- package/dist/cjs/svg.d.ts +1 -0
- package/dist/cjs/types.d.ts +8 -0
- package/dist/dockview-core.js +18391 -19679
- package/dist/dockview-core.min.js +4138 -6
- package/dist/dockview-core.min.noStyle.js +6 -7
- package/dist/dockview-core.noStyle.js +18390 -19656
- package/dist/package/main.cjs.js +18002 -19268
- package/dist/package/main.cjs.min.js +6 -6
- package/dist/package/main.esm.min.mjs +6 -6
- package/dist/package/main.esm.mjs +17959 -19260
- package/package.json +81 -77
- package/dist/cjs/api/component.api.js +0 -1242
- package/dist/cjs/api/dockviewGroupPanelApi.js +0 -200
- package/dist/cjs/api/dockviewPanelApi.js +0 -172
- package/dist/cjs/api/entryPoints.js +0 -27
- package/dist/cjs/api/gridviewPanelApi.js +0 -45
- package/dist/cjs/api/panelApi.js +0 -133
- package/dist/cjs/api/paneviewPanelApi.js +0 -57
- package/dist/cjs/api/splitviewPanelApi.js +0 -47
- package/dist/cjs/array.js +0 -66
- package/dist/cjs/constants.js +0 -11
- package/dist/cjs/dnd/backend.js +0 -171
- package/dist/cjs/dnd/dataTransfer.js +0 -100
- package/dist/cjs/dnd/dnd.js +0 -74
- package/dist/cjs/dnd/dropOverlay.js +0 -197
- package/dist/cjs/dnd/dropTargetAnchorContainer.js +0 -104
- package/dist/cjs/dnd/droptarget.js +0 -362
- package/dist/cjs/dnd/ghost.js +0 -17
- package/dist/cjs/dnd/pointer/index.js +0 -13
- package/dist/cjs/dnd/pointer/longPress.js +0 -151
- package/dist/cjs/dnd/pointer/pointerDragController.js +0 -243
- package/dist/cjs/dnd/pointer/pointerDragSource.js +0 -197
- package/dist/cjs/dnd/pointer/pointerDropTarget.js +0 -198
- package/dist/cjs/dnd/pointer/pointerGhost.js +0 -44
- package/dist/cjs/dnd/pointer/types.js +0 -2
- package/dist/cjs/dockview/accessibilityMessages.js +0 -51
- package/dist/cjs/dockview/allModules.js +0 -25
- package/dist/cjs/dockview/components/panel/content.js +0 -213
- package/dist/cjs/dockview/components/popupService.js +0 -132
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -70
- package/dist/cjs/dockview/components/tab/tab.js +0 -281
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +0 -95
- package/dist/cjs/dockview/components/titlebar/groupDragSource.js +0 -218
- package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +0 -104
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +0 -477
- package/dist/cjs/dockview/components/titlebar/tabGroups.js +0 -854
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +0 -19
- package/dist/cjs/dockview/components/titlebar/tabs.js +0 -2016
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +0 -458
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -120
- package/dist/cjs/dockview/components/watermark/watermark.js +0 -40
- package/dist/cjs/dockview/deserializer.js +0 -39
- package/dist/cjs/dockview/dndCapabilities.js +0 -39
- package/dist/cjs/dockview/dockviewComponent.js +0 -3896
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -70
- package/dist/cjs/dockview/dockviewGroupPanel.js +0 -204
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1514
- package/dist/cjs/dockview/dockviewPanel.js +0 -265
- package/dist/cjs/dockview/dockviewPanelModel.js +0 -105
- package/dist/cjs/dockview/dockviewShell.js +0 -744
- package/dist/cjs/dockview/edgeGroupService.js +0 -128
- package/dist/cjs/dockview/events.js +0 -67
- package/dist/cjs/dockview/floatingGroupService.js +0 -231
- package/dist/cjs/dockview/framework.js +0 -2
- package/dist/cjs/dockview/headerActionsService.js +0 -149
- package/dist/cjs/dockview/liveRegionService.js +0 -185
- package/dist/cjs/dockview/moduleContracts.js +0 -2
- package/dist/cjs/dockview/modules.js +0 -304
- package/dist/cjs/dockview/options.js +0 -103
- package/dist/cjs/dockview/popoutWindowService.js +0 -261
- package/dist/cjs/dockview/rootDropTargetService.js +0 -87
- package/dist/cjs/dockview/strictEventsSequencing.js +0 -63
- package/dist/cjs/dockview/tabGroup.js +0 -219
- package/dist/cjs/dockview/tabGroupAccent.js +0 -126
- package/dist/cjs/dockview/theme.js +0 -139
- package/dist/cjs/dockview/types.js +0 -2
- package/dist/cjs/dockview/validate.js +0 -76
- package/dist/cjs/dockview/watermarkService.js +0 -61
- package/dist/cjs/dom.js +0 -543
- package/dist/cjs/events.js +0 -296
- package/dist/cjs/framwork.js +0 -2
- package/dist/cjs/gridview/baseComponentGridview.js +0 -330
- package/dist/cjs/gridview/basePanelView.js +0 -162
- package/dist/cjs/gridview/branchNode.js +0 -372
- package/dist/cjs/gridview/gridview.js +0 -776
- package/dist/cjs/gridview/gridviewComponent.js +0 -363
- package/dist/cjs/gridview/gridviewPanel.js +0 -249
- package/dist/cjs/gridview/leafNode.js +0 -169
- package/dist/cjs/gridview/options.js +0 -17
- package/dist/cjs/gridview/types.js +0 -2
- package/dist/cjs/index.js +0 -105
- package/dist/cjs/lifecycle.js +0 -80
- package/dist/cjs/math.js +0 -38
- package/dist/cjs/overlay/overlay.js +0 -602
- package/dist/cjs/overlay/overlayRenderContainer.js +0 -309
- package/dist/cjs/panel/types.js +0 -2
- package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -92
- package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -141
- package/dist/cjs/paneview/options.js +0 -44
- package/dist/cjs/paneview/paneview.js +0 -203
- package/dist/cjs/paneview/paneviewComponent.js +0 -430
- package/dist/cjs/paneview/paneviewPanel.js +0 -275
- package/dist/cjs/popoutWindow.js +0 -244
- package/dist/cjs/resizable.js +0 -97
- package/dist/cjs/scrollbar.js +0 -169
- package/dist/cjs/splitview/options.js +0 -19
- package/dist/cjs/splitview/splitview.js +0 -999
- package/dist/cjs/splitview/splitviewComponent.js +0 -401
- package/dist/cjs/splitview/splitviewPanel.js +0 -179
- package/dist/cjs/splitview/viewItem.js +0 -119
- package/dist/cjs/svg.js +0 -43
- package/dist/cjs/types.js +0 -2
- package/dist/dockview-core.min.js.map +0 -1
- package/dist/dockview-core.min.noStyle.js.map +0 -1
- package/dist/esm/api/component.api.d.ts +0 -640
- package/dist/esm/api/component.api.js +0 -887
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +0 -109
- package/dist/esm/api/dockviewGroupPanelApi.js +0 -155
- package/dist/esm/api/dockviewPanelApi.d.ts +0 -84
- package/dist/esm/api/dockviewPanelApi.js +0 -124
- package/dist/esm/api/entryPoints.d.ts +0 -9
- package/dist/esm/api/entryPoints.js +0 -21
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
- package/dist/esm/api/gridviewPanelApi.js +0 -23
- package/dist/esm/api/panelApi.d.ts +0 -100
- package/dist/esm/api/panelApi.js +0 -87
- package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
- package/dist/esm/api/paneviewPanelApi.js +0 -27
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
- package/dist/esm/api/splitviewPanelApi.js +0 -25
- package/dist/esm/array.d.ts +0 -13
- package/dist/esm/array.js +0 -57
- package/dist/esm/constants.d.ts +0 -8
- package/dist/esm/constants.js +0 -8
- package/dist/esm/dnd/backend.d.ts +0 -70
- package/dist/esm/dnd/backend.js +0 -148
- package/dist/esm/dnd/dataTransfer.d.ts +0 -31
- package/dist/esm/dnd/dataTransfer.js +0 -67
- package/dist/esm/dnd/dnd.d.ts +0 -32
- package/dist/esm/dnd/dnd.js +0 -51
- package/dist/esm/dnd/dropOverlay.d.ts +0 -20
- package/dist/esm/dnd/dropOverlay.js +0 -192
- package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +0 -16
- package/dist/esm/dnd/dropTargetAnchorContainer.js +0 -73
- package/dist/esm/dnd/droptarget.d.ts +0 -116
- package/dist/esm/dnd/droptarget.js +0 -316
- package/dist/esm/dnd/ghost.d.ts +0 -4
- package/dist/esm/dnd/ghost.js +0 -14
- package/dist/esm/dnd/pointer/index.d.ts +0 -11
- package/dist/esm/dnd/pointer/index.js +0 -5
- package/dist/esm/dnd/pointer/longPress.d.ts +0 -32
- package/dist/esm/dnd/pointer/longPress.js +0 -127
- package/dist/esm/dnd/pointer/pointerDragController.d.ts +0 -60
- package/dist/esm/dnd/pointer/pointerDragController.js +0 -193
- package/dist/esm/dnd/pointer/pointerDragSource.d.ts +0 -61
- package/dist/esm/dnd/pointer/pointerDragSource.js +0 -173
- package/dist/esm/dnd/pointer/pointerDropTarget.d.ts +0 -39
- package/dist/esm/dnd/pointer/pointerDropTarget.js +0 -168
- package/dist/esm/dnd/pointer/pointerGhost.d.ts +0 -30
- package/dist/esm/dnd/pointer/pointerGhost.js +0 -39
- package/dist/esm/dnd/pointer/types.d.ts +0 -16
- package/dist/esm/dnd/pointer/types.js +0 -1
- package/dist/esm/dockview/accessibilityMessages.d.ts +0 -32
- package/dist/esm/dockview/accessibilityMessages.js +0 -30
- package/dist/esm/dockview/allModules.d.ts +0 -8
- package/dist/esm/dockview/allModules.js +0 -22
- package/dist/esm/dockview/components/panel/content.d.ts +0 -54
- package/dist/esm/dockview/components/panel/content.js +0 -185
- package/dist/esm/dockview/components/popupService.d.ts +0 -21
- package/dist/esm/dockview/components/popupService.js +0 -108
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -12
- package/dist/esm/dockview/components/tab/defaultTab.js +0 -43
- package/dist/esm/dockview/components/tab/tab.d.ts +0 -44
- package/dist/esm/dockview/components/tab/tab.js +0 -242
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +0 -34
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +0 -65
- package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +0 -51
- package/dist/esm/dockview/components/titlebar/groupDragSource.js +0 -178
- package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +0 -37
- package/dist/esm/dockview/components/titlebar/tabGroupChip.js +0 -77
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +0 -72
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +0 -360
- package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +0 -107
- package/dist/esm/dockview/components/titlebar/tabGroups.js +0 -621
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +0 -8
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +0 -16
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +0 -167
- package/dist/esm/dockview/components/titlebar/tabs.js +0 -1653
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +0 -104
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +0 -359
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +0 -21
- package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -92
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -8
- package/dist/esm/dockview/components/watermark/watermark.js +0 -14
- package/dist/esm/dockview/deserializer.d.ts +0 -12
- package/dist/esm/dockview/deserializer.js +0 -34
- package/dist/esm/dockview/dndCapabilities.d.ts +0 -19
- package/dist/esm/dockview/dndCapabilities.js +0 -36
- package/dist/esm/dockview/dockviewComponent.d.ts +0 -626
- package/dist/esm/dockview/dockviewComponent.js +0 -3214
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -45
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -44
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +0 -35
- package/dist/esm/dockview/dockviewGroupPanel.js +0 -142
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +0 -358
- package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1180
- package/dist/esm/dockview/dockviewPanel.d.ts +0 -69
- package/dist/esm/dockview/dockviewPanel.js +0 -178
- package/dist/esm/dockview/dockviewPanelModel.d.ts +0 -37
- package/dist/esm/dockview/dockviewPanelModel.js +0 -81
- package/dist/esm/dockview/dockviewShell.d.ts +0 -150
- package/dist/esm/dockview/dockviewShell.js +0 -678
- package/dist/esm/dockview/edgeGroupService.d.ts +0 -38
- package/dist/esm/dockview/edgeGroupService.js +0 -63
- package/dist/esm/dockview/events.d.ts +0 -38
- package/dist/esm/dockview/events.js +0 -34
- package/dist/esm/dockview/floatingGroupService.d.ts +0 -37
- package/dist/esm/dockview/floatingGroupService.js +0 -150
- package/dist/esm/dockview/framework.d.ts +0 -65
- package/dist/esm/dockview/framework.js +0 -1
- package/dist/esm/dockview/headerActionsService.d.ts +0 -32
- package/dist/esm/dockview/headerActionsService.js +0 -86
- package/dist/esm/dockview/liveRegionService.d.ts +0 -53
- package/dist/esm/dockview/liveRegionService.js +0 -159
- package/dist/esm/dockview/moduleContracts.d.ts +0 -119
- package/dist/esm/dockview/moduleContracts.js +0 -1
- package/dist/esm/dockview/modules.d.ts +0 -110
- package/dist/esm/dockview/modules.js +0 -170
- package/dist/esm/dockview/options.d.ts +0 -474
- package/dist/esm/dockview/options.js +0 -77
- package/dist/esm/dockview/popoutWindowService.d.ts +0 -95
- package/dist/esm/dockview/popoutWindowService.js +0 -175
- package/dist/esm/dockview/rootDropTargetService.d.ts +0 -35
- package/dist/esm/dockview/rootDropTargetService.js +0 -82
- package/dist/esm/dockview/strictEventsSequencing.d.ts +0 -7
- package/dist/esm/dockview/strictEventsSequencing.js +0 -41
- package/dist/esm/dockview/tabGroup.d.ts +0 -99
- package/dist/esm/dockview/tabGroup.js +0 -144
- package/dist/esm/dockview/tabGroupAccent.d.ts +0 -65
- package/dist/esm/dockview/tabGroupAccent.js +0 -114
- package/dist/esm/dockview/theme.d.ts +0 -86
- package/dist/esm/dockview/theme.js +0 -136
- package/dist/esm/dockview/types.d.ts +0 -53
- package/dist/esm/dockview/types.js +0 -1
- package/dist/esm/dockview/validate.d.ts +0 -0
- package/dist/esm/dockview/validate.js +0 -76
- package/dist/esm/dockview/watermarkService.d.ts +0 -30
- package/dist/esm/dockview/watermarkService.js +0 -56
- package/dist/esm/dom.d.ts +0 -60
- package/dist/esm/dom.js +0 -375
- package/dist/esm/events.d.ts +0 -79
- package/dist/esm/events.js +0 -219
- package/dist/esm/framwork.d.ts +0 -4
- package/dist/esm/framwork.js +0 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +0 -111
- package/dist/esm/gridview/baseComponentGridview.js +0 -237
- package/dist/esm/gridview/basePanelView.d.ts +0 -40
- package/dist/esm/gridview/basePanelView.js +0 -91
- package/dist/esm/gridview/branchNode.d.ts +0 -57
- package/dist/esm/gridview/branchNode.js +0 -257
- package/dist/esm/gridview/gridview.d.ts +0 -158
- package/dist/esm/gridview/gridview.js +0 -681
- package/dist/esm/gridview/gridviewComponent.d.ts +0 -88
- package/dist/esm/gridview/gridviewComponent.js +0 -265
- package/dist/esm/gridview/gridviewPanel.d.ts +0 -77
- package/dist/esm/gridview/gridviewPanel.js +0 -182
- package/dist/esm/gridview/leafNode.d.ts +0 -34
- package/dist/esm/gridview/leafNode.js +0 -102
- package/dist/esm/gridview/options.d.ts +0 -15
- package/dist/esm/gridview/options.js +0 -14
- package/dist/esm/gridview/types.d.ts +0 -3
- package/dist/esm/gridview/types.js +0 -1
- package/dist/esm/index.d.ts +0 -58
- package/dist/esm/index.js +0 -44
- package/dist/esm/lifecycle.d.ts +0 -25
- package/dist/esm/lifecycle.js +0 -56
- package/dist/esm/math.d.ts +0 -5
- package/dist/esm/math.js +0 -32
- package/dist/esm/overlay/overlay.d.ts +0 -91
- package/dist/esm/overlay/overlay.js +0 -520
- package/dist/esm/overlay/overlayRenderContainer.d.ts +0 -24
- package/dist/esm/overlay/overlayRenderContainer.js +0 -249
- package/dist/esm/panel/types.d.ts +0 -33
- package/dist/esm/panel/types.js +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
- package/dist/esm/paneview/defaultPaneviewHeader.js +0 -65
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -38
- package/dist/esm/paneview/draggablePaneviewPanel.js +0 -107
- package/dist/esm/paneview/options.d.ts +0 -30
- package/dist/esm/paneview/options.js +0 -22
- package/dist/esm/paneview/paneview.d.ts +0 -41
- package/dist/esm/paneview/paneview.js +0 -148
- package/dist/esm/paneview/paneviewComponent.d.ts +0 -133
- package/dist/esm/paneview/paneviewComponent.js +0 -306
- package/dist/esm/paneview/paneviewPanel.d.ts +0 -98
- package/dist/esm/paneview/paneviewPanel.js +0 -192
- package/dist/esm/popoutWindow.d.ts +0 -38
- package/dist/esm/popoutWindow.js +0 -170
- package/dist/esm/resizable.d.ts +0 -12
- package/dist/esm/resizable.js +0 -66
- package/dist/esm/scrollbar.d.ts +0 -15
- package/dist/esm/scrollbar.js +0 -139
- package/dist/esm/splitview/options.d.ts +0 -21
- package/dist/esm/splitview/options.js +0 -16
- package/dist/esm/splitview/splitview.d.ts +0 -145
- package/dist/esm/splitview/splitview.js +0 -770
- package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
- package/dist/esm/splitview/splitviewComponent.js +0 -267
- package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
- package/dist/esm/splitview/splitviewPanel.js +0 -108
- package/dist/esm/splitview/viewItem.d.ts +0 -25
- package/dist/esm/splitview/viewItem.js +0 -74
- package/dist/esm/svg.d.ts +0 -3
- package/dist/esm/svg.js +0 -31
- package/dist/esm/types.d.ts +0 -31
- package/dist/esm/types.js +0 -1
- package/dist/styles/dockview.css +0 -3436
|
@@ -8,9 +8,10 @@ import { DockviewMessages } from './accessibilityMessages';
|
|
|
8
8
|
export type { DockviewMessages } from './accessibilityMessages';
|
|
9
9
|
import { PanelTransfer } from '../dnd/dataTransfer';
|
|
10
10
|
import { IDisposable } from '../lifecycle';
|
|
11
|
-
import { Box } from '../types';
|
|
12
|
-
import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
|
|
11
|
+
import { Box, DragModifiers } from '../types';
|
|
12
|
+
import { DroptargetOverlayModel, Position, PositionResolver } from '../dnd/droptarget';
|
|
13
13
|
import { GroupOptions } from './dockviewGroupPanelModel';
|
|
14
|
+
import { EdgeGroupPosition } from './dockviewShell';
|
|
14
15
|
import { DockviewGroupDropLocation } from './events';
|
|
15
16
|
import { IDockviewPanel } from './dockviewPanel';
|
|
16
17
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
|
@@ -21,14 +22,14 @@ import { AcceptableEvent, IAcceptableEvent } from '../events';
|
|
|
21
22
|
import { DockviewTheme } from './theme';
|
|
22
23
|
import { ITabGroup } from './tabGroup';
|
|
23
24
|
import { CspNonceProvider } from '../dom';
|
|
24
|
-
export { CspNonceProvider };
|
|
25
|
+
export { type CspNonceProvider };
|
|
25
26
|
import { DockviewTabGroupColorEntry } from './tabGroupAccent';
|
|
26
27
|
export interface IHeaderActionsRenderer extends IDisposable {
|
|
27
28
|
readonly element: HTMLElement;
|
|
28
29
|
init(params: IGroupHeaderProps): void;
|
|
29
30
|
}
|
|
30
|
-
export type BuiltInContextMenuItem = 'close' | 'closeOthers' | 'closeAll' | 'separator';
|
|
31
|
-
export type BuiltInChipContextMenuItem = 'separator' | 'colorPicker' | 'rename';
|
|
31
|
+
export type BuiltInContextMenuItem = 'close' | 'closeOthers' | 'closeAll' | 'closeLeft' | 'closeRight' | 'maximize' | 'float' | 'popout' | 'separator' | 'pin';
|
|
32
|
+
export type BuiltInChipContextMenuItem = 'separator' | 'colorPicker' | 'rename' | 'collapse' | 'close';
|
|
32
33
|
export interface ContextMenuItemConfig {
|
|
33
34
|
label?: string;
|
|
34
35
|
/**
|
|
@@ -52,13 +53,13 @@ export interface DropOverlayModelParams {
|
|
|
52
53
|
/** The group the target belongs to, where known (tab / header_space / content). */
|
|
53
54
|
group?: DockviewGroupPanel;
|
|
54
55
|
}
|
|
55
|
-
/** A layout change to be announced
|
|
56
|
+
/** A layout change to be announced; see the `getAnnouncement` option. */
|
|
56
57
|
export interface LiveRegionEvent {
|
|
57
58
|
/**
|
|
58
59
|
* What changed: a panel was added (`'open'`) or removed (`'close'`); a
|
|
59
60
|
* group was maximized (`'maximize'`) / restored (`'restore'`); or a group
|
|
60
61
|
* moved to a floating window (`'float'`), back into the grid (`'dock'`), or
|
|
61
|
-
* out to a popout window (`'popout'`). `panel` is the affected panel
|
|
62
|
+
* out to a popout window (`'popout'`). `panel` is the affected panel; for
|
|
62
63
|
* group events, the group's active panel.
|
|
63
64
|
*/
|
|
64
65
|
kind: 'open' | 'close' | 'maximize' | 'restore' | 'float' | 'dock' | 'popout';
|
|
@@ -89,6 +90,11 @@ export interface DockviewKeybindings {
|
|
|
89
90
|
focusPrevGroup: string;
|
|
90
91
|
/** Move focus from panel content to the focused group's tab strip. Default `ctrl+shift+\`. */
|
|
91
92
|
focusTabs: string;
|
|
93
|
+
/**
|
|
94
|
+
* Pin / unpin the active panel's tab. Default `ctrl+shift+enter`. Inert
|
|
95
|
+
* unless the pinned-tabs feature is enabled (`pinnedTabs.enabled`).
|
|
96
|
+
*/
|
|
97
|
+
togglePin: string;
|
|
92
98
|
}
|
|
93
99
|
export interface KeyboardNavigationOptions {
|
|
94
100
|
/** Override individual {@link DockviewKeybindings}; unset keys keep their defaults. */
|
|
@@ -114,9 +120,23 @@ export interface IContextMenuItemComponentProps {
|
|
|
114
120
|
close: () => void;
|
|
115
121
|
componentProps?: object;
|
|
116
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Props passed to a `component` menu item rendered in the tab group chip
|
|
125
|
+
* context menu. Mirrors {@link IContextMenuItemComponentProps} but carries the
|
|
126
|
+
* `tabGroup` the chip represents in place of a single `panel`: a chip spans
|
|
127
|
+
* several panels, so there is no one panel to hand over.
|
|
128
|
+
*/
|
|
129
|
+
export interface IChipContextMenuItemComponentProps {
|
|
130
|
+
tabGroup: ITabGroup;
|
|
131
|
+
group: DockviewGroupPanel;
|
|
132
|
+
api: DockviewApi;
|
|
133
|
+
/** Call to close the context menu */
|
|
134
|
+
close: () => void;
|
|
135
|
+
componentProps?: object;
|
|
136
|
+
}
|
|
117
137
|
export interface IContextMenuItemRenderer extends IDisposable {
|
|
118
138
|
readonly element: HTMLElement;
|
|
119
|
-
init(props: IContextMenuItemComponentProps): void;
|
|
139
|
+
init(props: IContextMenuItemComponentProps | IChipContextMenuItemComponentProps): void;
|
|
120
140
|
}
|
|
121
141
|
export interface CreateContextMenuItemComponentOptions {
|
|
122
142
|
id: string;
|
|
@@ -148,6 +168,124 @@ export interface FloatingGroupDragContext {
|
|
|
148
168
|
* snapshotted at drag start.
|
|
149
169
|
*/
|
|
150
170
|
readonly others: readonly Box[];
|
|
171
|
+
/** Modifier-key state from this frame's pointer event. */
|
|
172
|
+
readonly modifiers: DragModifiers;
|
|
173
|
+
}
|
|
174
|
+
/** A keyboard modifier that, while held, suspends Smart Guides snapping. */
|
|
175
|
+
export type SnapModifier = 'alt' | 'ctrl' | 'meta' | 'shift';
|
|
176
|
+
/** Which alignment sources Smart Guides snaps a dragged floating group to. */
|
|
177
|
+
export interface SmartGuidesSnapTargets {
|
|
178
|
+
/** Align to the other floating groups' edges + centers. Default `true`. */
|
|
179
|
+
floats?: boolean;
|
|
180
|
+
/** Align to the container's edges + center. Default `true`. */
|
|
181
|
+
container?: boolean;
|
|
182
|
+
/** Also emit inset guide lines this many px inside the container edges
|
|
183
|
+
* (e.g. a content margin). Default `undefined` (no inset lines). */
|
|
184
|
+
containerInset?: number;
|
|
185
|
+
/** Align to the underlying grid's splitter (sash) positions. Default
|
|
186
|
+
* `false`. */
|
|
187
|
+
splitters?: boolean;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Options for the Smart Guides module: Figma-style alignment guides + magnetic
|
|
191
|
+
* snapping while dragging a floating group. Omit `smartGuides` entirely to leave
|
|
192
|
+
* float dragging unchanged: the module is then inert and the drag loop is a
|
|
193
|
+
* byte-for-byte pass-through.
|
|
194
|
+
*/
|
|
195
|
+
export interface SmartGuidesOptions {
|
|
196
|
+
/** Master switch. Defaults to `true` when `smartGuides` is present. */
|
|
197
|
+
enabled?: boolean;
|
|
198
|
+
/** Distance, in px, within which a dragged edge/center engages a snap.
|
|
199
|
+
* Default `8`. */
|
|
200
|
+
snapDistance?: number;
|
|
201
|
+
/** Extra px beyond `snapDistance` the pointer must travel before an engaged
|
|
202
|
+
* snap releases; asymmetric hysteresis that stops boundary oscillation.
|
|
203
|
+
* Default `4`. */
|
|
204
|
+
releaseDistance?: number;
|
|
205
|
+
/** Render the alignment guide lines while snapping. Default `true`. */
|
|
206
|
+
showGuides?: boolean;
|
|
207
|
+
/** Detect a dock/merge intent when the dragged float comes flush against
|
|
208
|
+
* another float (edge-adjacency) or overlaps its tab strip (tabset merge),
|
|
209
|
+
* and commit it on drop. Opt-in: Smart Guides is an alignment-only tool by
|
|
210
|
+
* default and never merges floating groups unless this is set. Default
|
|
211
|
+
* `false`. */
|
|
212
|
+
snapTogether?: boolean;
|
|
213
|
+
/** Which alignment sources to snap against (floats + container by default). */
|
|
214
|
+
snapTargets?: SmartGuidesSnapTargets;
|
|
215
|
+
/** Hold this modifier while dragging to temporarily suspend snapping +
|
|
216
|
+
* guides (Figma/Keynote parity). `false` disables the gate. Default
|
|
217
|
+
* `'alt'`. */
|
|
218
|
+
disableSnapModifier?: SnapModifier | false;
|
|
219
|
+
/** Extra class applied to the guide overlay layer, for theming. */
|
|
220
|
+
className?: string;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* The CSS class the `MultiRowTabsModule` toggles on a group's tab list
|
|
224
|
+
* (`.dv-tabs-container`) to switch it into wrap layout. Shared here so core
|
|
225
|
+
* (the reorder controller's wrap detection + the SCSS rules) and the module
|
|
226
|
+
* agree on the one string; renaming it in one place would otherwise silently
|
|
227
|
+
* break the seam across the package boundary.
|
|
228
|
+
*/
|
|
229
|
+
export declare const OVERFLOW_WRAP_TABS_CLASS = "dv-tabs-container--wrap";
|
|
230
|
+
/**
|
|
231
|
+
* The CSS class the `MultiRowTabsModule` adds alongside
|
|
232
|
+
* {@link OVERFLOW_WRAP_TABS_CLASS} once `overflow.maxRows` is set. It clips the
|
|
233
|
+
* wrapped strip to `--dv-max-tab-rows` rows (the surplus rows spill to the
|
|
234
|
+
* dropdown) so the header stops growing at the cap. Shared here so core (SCSS)
|
|
235
|
+
* and the module agree on the one string.
|
|
236
|
+
*/
|
|
237
|
+
export declare const OVERFLOW_WRAP_TABS_CAPPED_CLASS = "dv-tabs-container--wrap-capped";
|
|
238
|
+
/**
|
|
239
|
+
* The custom property the `MultiRowTabsModule` sets on a capped wrapped strip to
|
|
240
|
+
* carry the `overflow.maxRows` value into the SCSS `max-height` calc. Shared for
|
|
241
|
+
* the same reason as the class names above.
|
|
242
|
+
*/
|
|
243
|
+
export declare const OVERFLOW_MAX_TAB_ROWS_VARIABLE = "--dv-max-tab-rows";
|
|
244
|
+
/**
|
|
245
|
+
* The custom property the `MultiRowTabsModule` sets on a wrapped vertical
|
|
246
|
+
* (edge-group) tab list to pin every wrapped tab to a single, uniform height:
|
|
247
|
+
* the tallest tab's natural height, measured live by the controller. A vertical
|
|
248
|
+
* tab's natural height tracks its (rotated) title length, so a column only fits
|
|
249
|
+
* a handful of tabs and tiny per-tab height differences flip how many fit,
|
|
250
|
+
* ragged-ing the wrapped grid into a staircase. Pinning one height makes every
|
|
251
|
+
* column hold the same count, so the columns line up as a clean grid (the mirror
|
|
252
|
+
* of the horizontal wrap, whose tabs share the fixed row height). Shared here so
|
|
253
|
+
* core (SCSS) and the module agree on the one string. Only meaningful in vertical
|
|
254
|
+
* wrap; a horizontal strip never sets it and the SCSS falls back to auto height.
|
|
255
|
+
*/
|
|
256
|
+
export declare const OVERFLOW_WRAP_TABS_VERTICAL_TAB_HEIGHT_VARIABLE = "--dv-wrap-vertical-tab-height";
|
|
257
|
+
/**
|
|
258
|
+
* Tab-header overflow behaviour. One shared block across the overflow axis:
|
|
259
|
+
* `mode` chooses dropdown vs wrap; the remaining fields enrich the dropdown.
|
|
260
|
+
* Each capability names the module it needs; without that module the field is
|
|
261
|
+
* ignored and the free single-row strip + dropdown is used.
|
|
262
|
+
*/
|
|
263
|
+
export interface DockviewOverflowOptions {
|
|
264
|
+
/**
|
|
265
|
+
* What happens when tabs don't fit. Default `'dropdown'` (today's free
|
|
266
|
+
* path). `'wrap'` requires the `MultiRowTabsModule`.
|
|
267
|
+
*/
|
|
268
|
+
mode?: 'dropdown' | 'wrap';
|
|
269
|
+
/**
|
|
270
|
+
* Wrap mode only: cap the number of header rows. The strip grows to at most
|
|
271
|
+
* `maxRows` rows; tabs that would land on a row beyond the cap spill into the
|
|
272
|
+
* overflow dropdown instead. Requires the `MultiRowTabsModule`. Default:
|
|
273
|
+
* unbounded (wrap grows to fit every tab).
|
|
274
|
+
*/
|
|
275
|
+
maxRows?: number;
|
|
276
|
+
/**
|
|
277
|
+
* Filter input over the group's tabs. Reserved for `AdvancedOverflowModule`;
|
|
278
|
+
* ignored until that module is present. Default: false.
|
|
279
|
+
*/
|
|
280
|
+
search?: boolean | {
|
|
281
|
+
placeholder?: string;
|
|
282
|
+
scope?: 'overflow' | 'group';
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Order the dropdown by most-recently-activated. Reserved for
|
|
286
|
+
* `AdvancedOverflowModule`; ignored until present. Default: false.
|
|
287
|
+
*/
|
|
288
|
+
mru?: boolean;
|
|
151
289
|
}
|
|
152
290
|
export interface DockviewOptions {
|
|
153
291
|
/**
|
|
@@ -166,7 +304,7 @@ export interface DockviewOptions {
|
|
|
166
304
|
* Adjust a floating group's position while it is being dragged. Runs on
|
|
167
305
|
* each pointer-move frame with the proposed top-left (before the container
|
|
168
306
|
* clamp) and returns an adjusted top-left, or nothing to leave it
|
|
169
|
-
* unchanged. Use it for snapping, alignment, or custom bounds. Move only
|
|
307
|
+
* unchanged. Use it for snapping, alignment, or custom bounds. Move only:
|
|
170
308
|
* resizing a floating group is unaffected.
|
|
171
309
|
*
|
|
172
310
|
* `context.others` holds the bounds of the other floating groups (relative
|
|
@@ -177,6 +315,12 @@ export interface DockviewOptions {
|
|
|
177
315
|
top: number;
|
|
178
316
|
left: number;
|
|
179
317
|
} | void;
|
|
318
|
+
/**
|
|
319
|
+
* Enable Smart Guides: alignment guides + magnetic snapping while a
|
|
320
|
+
* floating group is being dragged. Omit to disable entirely (float dragging
|
|
321
|
+
* is then unchanged). Provided by the Smart Guides module.
|
|
322
|
+
*/
|
|
323
|
+
smartGuides?: SmartGuidesOptions;
|
|
180
324
|
/**
|
|
181
325
|
* Selects which element moves a floating group when dragged.
|
|
182
326
|
*
|
|
@@ -184,7 +328,7 @@ export interface DockviewOptions {
|
|
|
184
328
|
* above the group's tab bar. Dragging it moves the floating window;
|
|
185
329
|
* shift+drag (mouse) / long-press (touch) redocks into the grid. Style
|
|
186
330
|
* it with the `--dv-floating-titlebar-*` theme variables.
|
|
187
|
-
* - `'tabbar'`: the legacy behaviour
|
|
331
|
+
* - `'tabbar'`: the legacy behaviour, where the empty space in the tab bar
|
|
188
332
|
* (the "void container") doubles as the move handle. No dedicated bar
|
|
189
333
|
* is rendered.
|
|
190
334
|
*/
|
|
@@ -206,9 +350,29 @@ export interface DockviewOptions {
|
|
|
206
350
|
* browsers, certain Safari versions, embedded webviews). Cross-window
|
|
207
351
|
* HTML5 drag and the HTML5 native drag image are not available in this
|
|
208
352
|
* mode.
|
|
209
|
-
* - `'html5'`: HTML5 drag-and-drop only
|
|
353
|
+
* - `'html5'`: HTML5 drag-and-drop only; disables touch / pen drag.
|
|
210
354
|
*/
|
|
211
355
|
dndStrategy?: DockviewDndStrategy;
|
|
356
|
+
/**
|
|
357
|
+
* Override how a pointer location maps to a drop {@link Position} (or `null`
|
|
358
|
+
* for no drop) on the 5-way group/layout drop targets (the group content
|
|
359
|
+
* and the whole-layout edges), replacing the built-in cursor-quadrant logic.
|
|
360
|
+
* Tab/header reorder targets are unaffected. Unset ⇒ the default quadrant
|
|
361
|
+
* behaviour, unchanged. Read live, so it can be swapped via
|
|
362
|
+
* {@link DockviewApi.updateOptions}.
|
|
363
|
+
*/
|
|
364
|
+
dropPositionResolver?: PositionResolver;
|
|
365
|
+
/**
|
|
366
|
+
* Show an aim-at-a-cell DnD compass over a group while dragging,
|
|
367
|
+
* instead of resolving the drop by which quadrant the cursor is in. Default
|
|
368
|
+
* off ⇒ the cursor-quadrant behaviour, unchanged. Provided by the DnD compass
|
|
369
|
+
* module. Pass an object to restrict which inner cells appear (`zones`) or to
|
|
370
|
+
* hide the outer whole-layout-edge cells (`edges: false`, default on).
|
|
371
|
+
*/
|
|
372
|
+
dndCompass?: boolean | {
|
|
373
|
+
zones?: Position[];
|
|
374
|
+
edges?: boolean;
|
|
375
|
+
};
|
|
212
376
|
locked?: boolean;
|
|
213
377
|
className?: string;
|
|
214
378
|
/**
|
|
@@ -217,6 +381,20 @@ export interface DockviewOptions {
|
|
|
217
381
|
noPanelsOverlay?: 'emptyGroup' | 'watermark';
|
|
218
382
|
theme?: DockviewTheme;
|
|
219
383
|
disableTabsOverflowList?: boolean;
|
|
384
|
+
/**
|
|
385
|
+
* How the tab header behaves when there are more tabs than fit on one row.
|
|
386
|
+
*
|
|
387
|
+
* The single-row strip + chevron dropdown is the default and is free. The
|
|
388
|
+
* `'wrap'` mode (tabs wrap onto multiple rows and the header grows) requires
|
|
389
|
+
* the `MultiRowTabsModule`; without that module `'wrap'` is ignored and the
|
|
390
|
+
* dropdown is used. The `search`/`mru` fields enrich the
|
|
391
|
+
* dropdown and require the `AdvancedOverflowModule`; they are ignored when
|
|
392
|
+
* that module is absent.
|
|
393
|
+
*
|
|
394
|
+
* Omitting `overflow` is identical to today's behaviour
|
|
395
|
+
* (`mode: 'dropdown'`).
|
|
396
|
+
*/
|
|
397
|
+
overflow?: DockviewOverflowOptions;
|
|
220
398
|
/**
|
|
221
399
|
* Select `native` to use built-in scrollbar behaviours and `custom` to use an internal implementation
|
|
222
400
|
* that allows for improved scrollbar overlay UX.
|
|
@@ -227,8 +405,21 @@ export interface DockviewOptions {
|
|
|
227
405
|
/**
|
|
228
406
|
* Return the items to display in the tab context menu on right-click.
|
|
229
407
|
*
|
|
230
|
-
* Use built-in string shortcuts
|
|
231
|
-
*
|
|
408
|
+
* Use built-in string shortcuts or provide a `ContextMenuItemConfig`
|
|
409
|
+
* object for custom items. The available shortcuts are:
|
|
410
|
+
* - `'close'`: close this panel
|
|
411
|
+
* - `'closeOthers'`: close every other panel in the group
|
|
412
|
+
* - `'closeAll'`: close every panel in the group
|
|
413
|
+
* - `'closeLeft'` / `'closeRight'`: close the panels before / after this
|
|
414
|
+
* one in the tab strip
|
|
415
|
+
* - `'maximize'`: maximize the group (renders as *Restore* and disables
|
|
416
|
+
* for non-grid panels, tracking the group's live maximized state)
|
|
417
|
+
* - `'float'`: move the panel into a floating window (disabled when
|
|
418
|
+
* already floating)
|
|
419
|
+
* - `'popout'`: move the panel into a new browser window (disabled when
|
|
420
|
+
* already popped out)
|
|
421
|
+
* - `'pin'`: toggle the panel's pinned state (PinnedTabs module)
|
|
422
|
+
* - `'separator'`: a divider line
|
|
232
423
|
*
|
|
233
424
|
* If omitted, no context menu is shown.
|
|
234
425
|
* Return an empty array to suppress the menu for specific cases.
|
|
@@ -237,10 +428,14 @@ export interface DockviewOptions {
|
|
|
237
428
|
/**
|
|
238
429
|
* Return the items to display in the tab group chip context menu on right-click.
|
|
239
430
|
*
|
|
240
|
-
* Use built-in string shortcuts
|
|
241
|
-
*
|
|
242
|
-
* `'
|
|
243
|
-
* `'
|
|
431
|
+
* Use built-in string shortcuts or provide a `ContextMenuItemConfig`
|
|
432
|
+
* object for custom items. The available shortcuts are:
|
|
433
|
+
* - `'rename'`: renders an inline text input to rename the tab group
|
|
434
|
+
* - `'colorPicker'`: renders a grid of color swatches for the tab group
|
|
435
|
+
* - `'collapse'`: collapse the tab group (renders as *Expand* when the
|
|
436
|
+
* group is already collapsed)
|
|
437
|
+
* - `'close'`: close every panel belonging to the tab group
|
|
438
|
+
* - `'separator'`: a divider line
|
|
244
439
|
*
|
|
245
440
|
* If omitted, no context menu is shown on chip right-click.
|
|
246
441
|
* Return an empty array to suppress the menu for specific cases.
|
|
@@ -261,7 +456,7 @@ export interface DockviewOptions {
|
|
|
261
456
|
*/
|
|
262
457
|
createGroupDragGhostComponent?: (group: DockviewGroupPanel) => IGroupDragGhostRenderer;
|
|
263
458
|
/**
|
|
264
|
-
* Shape the drop overlay shown over a group's drop targets
|
|
459
|
+
* Shape the drop overlay shown over a group's drop targets: the tab
|
|
265
460
|
* strip (`'tab'`), the header void space (`'header_space'`) and the
|
|
266
461
|
* panel content area (`'content'`). Return a {@link DroptargetOverlayModel}
|
|
267
462
|
* to override that target's default overlay (size, activation threshold,
|
|
@@ -274,7 +469,7 @@ export interface DockviewOptions {
|
|
|
274
469
|
dropOverlayModel?: (params: DropOverlayModelParams) => DroptargetOverlayModel | undefined;
|
|
275
470
|
/**
|
|
276
471
|
* Built-in screen-reader announcements of layout changes (a visually-hidden
|
|
277
|
-
* `aria-live` region narrating panel open/close etc.). On by default
|
|
472
|
+
* `aria-live` region narrating panel open/close etc.). On by default;
|
|
278
473
|
* set to `false` to disable, e.g. when the host app provides its own
|
|
279
474
|
* announcement system. Honoured live via `updateOptions`.
|
|
280
475
|
*/
|
|
@@ -283,7 +478,7 @@ export interface DockviewOptions {
|
|
|
283
478
|
* Localise or override the built-in announcement strings (the default
|
|
284
479
|
* messages are English). Return a string to use it, `null` / `''` to
|
|
285
480
|
* suppress that announcement, or `undefined` to keep the default. This is
|
|
286
|
-
* how non-English apps translate announcements
|
|
481
|
+
* how non-English apps translate announcements; core ships no message
|
|
287
482
|
* catalog, only the default strings + this hook.
|
|
288
483
|
*/
|
|
289
484
|
getAnnouncement?: (event: LiveRegionEvent) => string | null | undefined;
|
|
@@ -295,11 +490,11 @@ export interface DockviewOptions {
|
|
|
295
490
|
*/
|
|
296
491
|
announcer?: (event: AnnouncementEvent) => void;
|
|
297
492
|
/**
|
|
298
|
-
* Translate / override the strings dockview speaks to assistive technology
|
|
299
|
-
*
|
|
300
|
-
* Provide any subset of {@link DockviewMessages}; unset entries
|
|
301
|
-
* English defaults. (`getAnnouncement` still applies first,
|
|
302
|
-
* announcements.)
|
|
493
|
+
* Translate / override the strings dockview speaks to assistive technology,
|
|
494
|
+
* covering both the LiveRegion announcements and the keyboard-docking
|
|
495
|
+
* narration. Provide any subset of {@link DockviewMessages}; unset entries
|
|
496
|
+
* keep the English defaults. (`getAnnouncement` still applies first,
|
|
497
|
+
* per-event, for announcements.)
|
|
303
498
|
*/
|
|
304
499
|
messages?: Partial<DockviewMessages>;
|
|
305
500
|
/**
|
|
@@ -307,10 +502,10 @@ export interface DockviewOptions {
|
|
|
307
502
|
* pass an object to override individual ones via `keymap`. Off by default
|
|
308
503
|
* (opt-in while the feature matures). Enables:
|
|
309
504
|
*
|
|
310
|
-
* - **Switch tab** within the focused group
|
|
311
|
-
* - **Move focus between groups
|
|
505
|
+
* - **Switch tab** within the focused group: `Ctrl`+`]` / `Ctrl`+`[`.
|
|
506
|
+
* - **Move focus between groups**: `F6` / `Shift`+`F6` (sequential) or
|
|
312
507
|
* `Ctrl`+`Shift`+arrow keys (spatial: focus the group in that direction).
|
|
313
|
-
* - **Dock the active panel** without a mouse
|
|
508
|
+
* - **Dock the active panel** without a mouse: `Ctrl`+`M` arms a two-phase
|
|
314
509
|
* move (arrows cycle the target group with a live drop preview +
|
|
315
510
|
* screen-reader narration, `Enter` docks, `Escape` cancels).
|
|
316
511
|
*
|
|
@@ -319,15 +514,54 @@ export interface DockviewOptions {
|
|
|
319
514
|
* rebind for your platform.
|
|
320
515
|
*/
|
|
321
516
|
keyboardNavigation?: boolean | KeyboardNavigationOptions;
|
|
517
|
+
/**
|
|
518
|
+
* Undo / redo for layout mutations (close / move / float / popout / add /
|
|
519
|
+
* maximize / tab-group changes). Off by default; set `{ enabled: true }`
|
|
520
|
+
* to record. Drive it via `api.undo()` / `api.redo()`; dockview binds no
|
|
521
|
+
* keys itself (that's the host app's call, and collides with the keyboard
|
|
522
|
+
* navigation keymap). Honoured live via `updateOptions`.
|
|
523
|
+
*/
|
|
524
|
+
layoutHistory?: LayoutHistoryOptions;
|
|
525
|
+
/**
|
|
526
|
+
* VS Code-style "auto hide" for edge groups: render clickable activators in
|
|
527
|
+
* a collapsed edge group's strip so it can be pinned back. Off by default →
|
|
528
|
+
* today's baseline (an empty collapsed strip) is unchanged.
|
|
529
|
+
*
|
|
530
|
+
* A per-edge set: `true` applies to all four edges, or name edges
|
|
531
|
+
* individually (`{ left: true, bottom: true }`). An edge group at an edge
|
|
532
|
+
* not in the set stays a static collapsing sidebar. A per-group
|
|
533
|
+
* `api.setEdgeGroupAutoHide()` override wins over this default. Peek
|
|
534
|
+
* animation is tuned globally via `edgeGroupPeek`.
|
|
535
|
+
*/
|
|
536
|
+
autoHideEdgeGroups?: EdgeGroupSet;
|
|
537
|
+
/**
|
|
538
|
+
* Let panels dragged to a layout edge create/fill an **edge group** that is
|
|
539
|
+
* invisible when empty (VS Code-style "drag a panel to the far edge → new
|
|
540
|
+
* sidebar"). Created on drop; torn down to zero footprint when its last
|
|
541
|
+
* panel leaves.
|
|
542
|
+
*
|
|
543
|
+
* A per-edge set: `true` enables dock-to-edge on all four edges, or name
|
|
544
|
+
* edges individually. Off by default.
|
|
545
|
+
*
|
|
546
|
+
* Requires the `AutoEdgeGroup` module (and the `EdgeGroup` module it builds
|
|
547
|
+
* on); a no-op if absent, where a root-edge drop splits the grid as usual.
|
|
548
|
+
* Distinct from `dndEdges`, which only shapes the outer drop overlay (and
|
|
549
|
+
* still splits the grid).
|
|
550
|
+
*/
|
|
551
|
+
dockToEdgeGroups?: EdgeGroupSet;
|
|
552
|
+
/**
|
|
553
|
+
* Peek interaction tuning for `autoHideEdgeGroups` (global, not per-edge).
|
|
554
|
+
*/
|
|
555
|
+
edgeGroupPeek?: EdgeGroupPeekOptions;
|
|
322
556
|
/**
|
|
323
557
|
* Replace the built-in tab group color palette with a user-defined list.
|
|
324
558
|
*
|
|
325
559
|
* Each entry has an `id` (stored on `tabGroup.color` and serialized),
|
|
326
|
-
* a `value` (any CSS color expression
|
|
560
|
+
* a `value` (any CSS color expression: hex, rgb(), `var(...)`, etc.),
|
|
327
561
|
* and an optional `label` shown in the context menu picker.
|
|
328
562
|
*
|
|
329
563
|
* If omitted, the default 9-color palette is used. The list fully
|
|
330
|
-
* replaces the defaults
|
|
564
|
+
* replaces the defaults; there is no merge.
|
|
331
565
|
*/
|
|
332
566
|
tabGroupColors?: DockviewTabGroupColorEntry[];
|
|
333
567
|
/**
|
|
@@ -341,7 +575,80 @@ export interface DockviewOptions {
|
|
|
341
575
|
* custom chip renderers can still read it and roll their own visual.
|
|
342
576
|
*/
|
|
343
577
|
tabGroupAccent?: 'palette' | 'off';
|
|
578
|
+
/**
|
|
579
|
+
* Pin tabs so they render before all unpinned tabs in their group, never
|
|
580
|
+
* overflow into the dropdown, and resist reorder across the pin boundary.
|
|
581
|
+
* Modelled on VS Code / Chrome pinned tabs. Owned by the PinnedTabs
|
|
582
|
+
* module; dormant unless `enabled` is set.
|
|
583
|
+
*/
|
|
584
|
+
pinnedTabs?: PinnedTabsOptions;
|
|
344
585
|
}
|
|
586
|
+
export interface PinnedTabsOptions {
|
|
587
|
+
/** Master switch. Default: undefined (dormant; pinning is a no-op). */
|
|
588
|
+
enabled?: boolean;
|
|
589
|
+
/**
|
|
590
|
+
* `'inline'` (default) keeps pinned tabs first within the existing strip;
|
|
591
|
+
* `'separate-row'` renders them on their own VS-Code-style row.
|
|
592
|
+
* (Phase 1 implements `'inline'` only.)
|
|
593
|
+
*/
|
|
594
|
+
mode?: 'inline' | 'separate-row';
|
|
595
|
+
/**
|
|
596
|
+
* Render pinned tabs icon-only (title + close button hidden), VS-Code /
|
|
597
|
+
* Chrome style. Default false; dockview's default tab has no favicon, so
|
|
598
|
+
* pinned tabs stay labelled (with a pin glyph) unless you opt in. Best
|
|
599
|
+
* enabled alongside a custom tab renderer that shows an icon.
|
|
600
|
+
*/
|
|
601
|
+
compact?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Drag a tab across the pin boundary to toggle its pinned state
|
|
604
|
+
* (VS-Code-style). Default false; dragging across the boundary is clamped
|
|
605
|
+
* back, matching Chrome, where pinning is an explicit action only.
|
|
606
|
+
*/
|
|
607
|
+
togglePinOnCrossBoundaryDrag?: boolean;
|
|
608
|
+
/**
|
|
609
|
+
* In `'inline'` mode, keep pinned tabs frozen to the left edge when the tab
|
|
610
|
+
* strip scrolls horizontally (Chrome-style sticky columns); each pinned tab
|
|
611
|
+
* sits at the cumulative width of the pinned tabs before it. Default true;
|
|
612
|
+
* set `false` to let pinned tabs scroll away with the rest. Ignored in
|
|
613
|
+
* `'separate-row'` mode, where the pinned row is always visible.
|
|
614
|
+
*/
|
|
615
|
+
stickyScroll?: boolean;
|
|
616
|
+
/** Add a Pin/Unpin item to the tab context menu (requires ContextMenuModule). Default true. */
|
|
617
|
+
contextMenuItem?: boolean;
|
|
618
|
+
}
|
|
619
|
+
export interface LayoutHistoryOptions {
|
|
620
|
+
/** Record mutations. Default `false` (module is registered but inert). */
|
|
621
|
+
enabled?: boolean;
|
|
622
|
+
/** Max undo depth (bounded ring). Default `25`. */
|
|
623
|
+
depth?: number;
|
|
624
|
+
/** Also record mutations originating from `DockviewApi` calls (the app's
|
|
625
|
+
* own programmatic changes). Default `false`; only user gestures. */
|
|
626
|
+
undoableProgrammaticMutations?: boolean;
|
|
627
|
+
/** Clear the stacks when the whole layout is replaced via `fromJSON` /
|
|
628
|
+
* `clear`. Default `true`. */
|
|
629
|
+
clearOnFromJSON?: boolean;
|
|
630
|
+
/** Record sash-resize as undoable steps, coalescing a continuous drag into
|
|
631
|
+
* a single entry. Default `true`. */
|
|
632
|
+
recordResize?: boolean;
|
|
633
|
+
/** Debounce window (ms) for coalescing a continuous resize drag into one
|
|
634
|
+
* undo entry. Default `400`. */
|
|
635
|
+
coalesceMs?: number;
|
|
636
|
+
}
|
|
637
|
+
export interface EdgeGroupPeekOptions {
|
|
638
|
+
/** Slide the peek overlay in. Default true; ignored when the OS requests
|
|
639
|
+
* reduced motion. */
|
|
640
|
+
animate?: boolean;
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* A per-edge on/off set for edge-group options. A `boolean` applies to all
|
|
644
|
+
* four edges; an object opts edges in individually (an omitted or `false`
|
|
645
|
+
* edge is off).
|
|
646
|
+
*/
|
|
647
|
+
export type EdgeGroupSet = boolean | Partial<Record<EdgeGroupPosition, boolean>>;
|
|
648
|
+
/** Whether `position` is enabled in a per-edge {@link EdgeGroupSet}. */
|
|
649
|
+
export declare function isEdgeGroupEnabled(set: EdgeGroupSet | undefined, position: EdgeGroupPosition): boolean;
|
|
650
|
+
/** Whether any edge is enabled in a per-edge {@link EdgeGroupSet}. */
|
|
651
|
+
export declare function isAnyEdgeGroupEnabled(set: EdgeGroupSet | undefined): boolean;
|
|
345
652
|
export type TabAnimation = 'smooth' | 'default';
|
|
346
653
|
export interface DockviewDndOverlayEvent extends IAcceptableEvent {
|
|
347
654
|
/** Narrow with `instanceof DragEvent` before reading `dataTransfer`. */
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps dockview options to the modules that implement them, so setting an
|
|
3
|
+
* option for an absent module reports which module is missing instead of
|
|
4
|
+
* silently doing nothing.
|
|
5
|
+
*
|
|
6
|
+
* This is the "declared intent" diagnostic. It fires when the user asks for a
|
|
7
|
+
* feature via options, at construction and on every `updateOptions`. It
|
|
8
|
+
* deliberately does *not* fire on user interaction: right-clicking without the
|
|
9
|
+
* ContextMenu module stays silent (the browser's own menu shows), because the
|
|
10
|
+
* `?.` service-slot call sites can't tell a missing module from a feature the
|
|
11
|
+
* app never wanted.
|
|
12
|
+
*
|
|
13
|
+
* Rules are a flat list rather than a `Record<keyof DockviewOptions, ...>`
|
|
14
|
+
* because dockview's options are nested and value-gated: `overflow.mode:
|
|
15
|
+
* 'wrap'` needs MultiRowTabs while `overflow.search` needs AdvancedOverflow,
|
|
16
|
+
* so one top-level key maps to several modules depending on its contents. A
|
|
17
|
+
* rule per gated thing also lets `reason` name the exact path the user set,
|
|
18
|
+
* which is the whole point of the message.
|
|
19
|
+
*
|
|
20
|
+
* ## Adding a rule
|
|
21
|
+
*
|
|
22
|
+
* A rule is just "this option needs that module". Whether that makes it paid is
|
|
23
|
+
* not a judgement call: a module is enterprise iff it ships in
|
|
24
|
+
* `dockview-enterprise`'s `Modules` list. {@link ENTERPRISE_MODULE_NAMES}
|
|
25
|
+
* mirrors that list, and a test in dockview-enterprise fails if the two drift,
|
|
26
|
+
* so naming the right module is the only thing you have to get right here.
|
|
27
|
+
*
|
|
28
|
+
* The one trap is picking the module. Don't infer it from what core does at
|
|
29
|
+
* runtime: a core fallback that hands a paid feature to free builds would read
|
|
30
|
+
* as "the option is free" and turn one bug into two. Pick the module that
|
|
31
|
+
* *implements the documented feature*; if core also does it, that is a leak to
|
|
32
|
+
* fix in core, not a reason to drop the rule.
|
|
33
|
+
*/
|
|
34
|
+
import { DockviewComponentOptions } from './options';
|
|
35
|
+
export interface OptionModuleRule {
|
|
36
|
+
/**
|
|
37
|
+
* The top-level option this rule gates on. Several rules may share one key
|
|
38
|
+
* (`overflow` gates both MultiRowTabs and AdvancedOverflow); `reason` carries
|
|
39
|
+
* the precise path. Kept separate from `reason` so the completeness test in
|
|
40
|
+
* dockview-enterprise can match rules to the options each module declares
|
|
41
|
+
* without parsing prose.
|
|
42
|
+
*/
|
|
43
|
+
optionKey: keyof DockviewComponentOptions;
|
|
44
|
+
/**
|
|
45
|
+
* How the user expressed intent, quoted verbatim into the message. Name
|
|
46
|
+
* the exact option path and value, e.g. `overflow.mode: 'wrap'`.
|
|
47
|
+
*/
|
|
48
|
+
reason: string;
|
|
49
|
+
/** The module that implements it. */
|
|
50
|
+
moduleName: string;
|
|
51
|
+
/**
|
|
52
|
+
* Whether `options` requests the feature. Receives the options the caller
|
|
53
|
+
* passed, never the merged set: every key of `DockviewOptions` is present
|
|
54
|
+
* (as `undefined`) on the merged object, so a presence test there is always
|
|
55
|
+
* true. An option left out, `undefined`, or explicitly disabled must return
|
|
56
|
+
* false: silence is correct for a feature nobody asked for.
|
|
57
|
+
*/
|
|
58
|
+
when: (options: Partial<DockviewComponentOptions>) => boolean;
|
|
59
|
+
}
|
|
60
|
+
export declare const OPTION_MODULE_RULES: OptionModuleRule[];
|
|
61
|
+
/**
|
|
62
|
+
* Reports any option in `options` whose module isn't registered. Never throws.
|
|
63
|
+
*
|
|
64
|
+
* Reasons are grouped so each missing module produces exactly one message, however
|
|
65
|
+
* many of its options were set: `overflow: { mode: 'wrap', maxRows: 3 }` names
|
|
66
|
+
* both paths in a single MultiRowTabs error rather than repeating the install
|
|
67
|
+
* instructions twice. Logging is deduplicated per module+reasons (see
|
|
68
|
+
* `logMissingModule`), so re-validating on every `updateOptions` stays quiet.
|
|
69
|
+
*
|
|
70
|
+
* Pass the options the caller supplied, not the merged set; see
|
|
71
|
+
* {@link OptionModuleRule.when}.
|
|
72
|
+
*/
|
|
73
|
+
export declare function validateOptionModules(options: Partial<DockviewComponentOptions>, isModuleRegistered: (moduleName: string) => boolean): void;
|
|
@@ -24,6 +24,18 @@ export interface PopoutGroupEntry {
|
|
|
24
24
|
dropTargetContainer: DropTargetAnchorContainer;
|
|
25
25
|
getWindow: () => Window;
|
|
26
26
|
popoutUrl?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The window-scoped popup service shared by every group in this popout
|
|
29
|
+
* window (resolved per-member via {@link IPopoutWindowService.findByGroup}
|
|
30
|
+
* so overflow/context menus render in the correct window regardless of
|
|
31
|
+
* which group is the anchor).
|
|
32
|
+
*/
|
|
33
|
+
popupService: PopupService;
|
|
34
|
+
/**
|
|
35
|
+
* Promote a new anchor group after the current one leaves the window,
|
|
36
|
+
* rebinding anchor-relative state (focus routing) to it.
|
|
37
|
+
*/
|
|
38
|
+
setAnchorGroup: (group: DockviewGroupPanel) => void;
|
|
27
39
|
disposable: {
|
|
28
40
|
dispose: () => DockviewGroupPanel | undefined;
|
|
29
41
|
};
|
|
@@ -42,9 +54,6 @@ export interface IPopoutWindowService extends IDisposable {
|
|
|
42
54
|
findByGroup(group: DockviewGroupPanel): PopoutGroupEntry | undefined;
|
|
43
55
|
findReferenceGroupId(group: DockviewGroupPanel): string | undefined;
|
|
44
56
|
observeGridviewSize(popoutWindow: PopoutWindow, gridview: Gridview, overlayRenderContainer: OverlayRenderContainer): IDisposable | undefined;
|
|
45
|
-
getPopupService(groupId: string): PopupService | undefined;
|
|
46
|
-
setPopupService(groupId: string, service: PopupService): void;
|
|
47
|
-
deletePopupService(groupId: string): void;
|
|
48
57
|
readonly restorationPromise: Promise<void>;
|
|
49
58
|
scheduleRestoration(delayMs: number, work: () => void, onCancel?: () => void): Promise<void>;
|
|
50
59
|
finishRestoration(promises: Promise<void>[]): void;
|
|
@@ -55,7 +64,6 @@ export interface IPopoutWindowService extends IDisposable {
|
|
|
55
64
|
export declare class PopoutWindowService implements IPopoutWindowService {
|
|
56
65
|
private readonly _host;
|
|
57
66
|
private readonly _entries;
|
|
58
|
-
private readonly _popupServices;
|
|
59
67
|
private readonly _restorationCleanups;
|
|
60
68
|
private _restorationPromise;
|
|
61
69
|
private readonly _onDidRemove;
|
|
@@ -71,9 +79,9 @@ export declare class PopoutWindowService implements IPopoutWindowService {
|
|
|
71
79
|
* The popout window's innerWidth/innerHeight are often 0/stale until it has
|
|
72
80
|
* painted, and the nested gridview lays its children out to the size passed
|
|
73
81
|
* to layout() (a plain group fills via CSS instead). To stop content
|
|
74
|
-
* rendering into a zero box until a manual resize
|
|
75
|
-
* fixed number of animation frames had
|
|
76
|
-
* a ResizeObserver created in the
|
|
82
|
+
* rendering into a zero box until a manual resize, and to avoid the race a
|
|
83
|
+
* fixed number of animation frames had, observe the gridview element with
|
|
84
|
+
* a ResizeObserver created in the popout window's own realm. A parent-realm
|
|
77
85
|
* observer fires unreliably across the window boundary; a same-realm one
|
|
78
86
|
* fires reliably, including the initial observation once the window is
|
|
79
87
|
* sized.
|
|
@@ -82,9 +90,6 @@ export declare class PopoutWindowService implements IPopoutWindowService {
|
|
|
82
90
|
* the popout realm has no ResizeObserver (e.g. jsdom).
|
|
83
91
|
*/
|
|
84
92
|
observeGridviewSize(popoutWindow: PopoutWindow, gridview: Gridview, overlayRenderContainer: OverlayRenderContainer): IDisposable | undefined;
|
|
85
|
-
getPopupService(groupId: string): PopupService | undefined;
|
|
86
|
-
setPopupService(groupId: string, service: PopupService): void;
|
|
87
|
-
deletePopupService(groupId: string): void;
|
|
88
93
|
scheduleRestoration(delayMs: number, work: () => void, onCancel?: () => void): Promise<void>;
|
|
89
94
|
finishRestoration(promises: Promise<void>[]): void;
|
|
90
95
|
cancelPendingRestorations(): void;
|