dockview-core 5.1.0 → 6.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 (117) hide show
  1. package/README.md +3 -1
  2. package/dist/cjs/api/component.api.d.ts +93 -1
  3. package/dist/cjs/api/component.api.js +146 -0
  4. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +26 -0
  5. package/dist/cjs/api/dockviewGroupPanelApi.js +21 -1
  6. package/dist/cjs/api/entryPoints.js +4 -5
  7. package/dist/cjs/array.js +7 -8
  8. package/dist/cjs/dnd/dataTransfer.d.ts +2 -1
  9. package/dist/cjs/dnd/dataTransfer.js +5 -4
  10. package/dist/cjs/dnd/droptarget.d.ts +12 -0
  11. package/dist/cjs/dnd/droptarget.js +38 -10
  12. package/dist/cjs/dnd/ghost.js +1 -2
  13. package/dist/cjs/dockview/components/panel/content.js +5 -1
  14. package/dist/cjs/dockview/components/popupService.d.ts +9 -2
  15. package/dist/cjs/dockview/components/popupService.js +24 -9
  16. package/dist/cjs/dockview/components/tab/tab.d.ts +8 -1
  17. package/dist/cjs/dockview/components/tab/tab.js +94 -6
  18. package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +30 -0
  19. package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +95 -0
  20. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +71 -0
  21. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +471 -0
  22. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +57 -0
  23. package/dist/cjs/dockview/components/titlebar/tabGroups.js +612 -0
  24. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +1 -2
  25. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +67 -0
  26. package/dist/cjs/dockview/components/titlebar/tabs.js +1464 -34
  27. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +6 -0
  28. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +132 -14
  29. package/dist/cjs/dockview/contextMenu.d.ts +10 -0
  30. package/dist/cjs/dockview/contextMenu.js +298 -0
  31. package/dist/cjs/dockview/dockviewComponent.d.ts +60 -3
  32. package/dist/cjs/dockview/dockviewComponent.js +712 -126
  33. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +83 -0
  34. package/dist/cjs/dockview/dockviewGroupPanelModel.js +619 -27
  35. package/dist/cjs/dockview/dockviewShell.d.ts +128 -0
  36. package/dist/cjs/dockview/dockviewShell.js +681 -0
  37. package/dist/cjs/dockview/events.d.ts +9 -0
  38. package/dist/cjs/dockview/framework.d.ts +14 -0
  39. package/dist/cjs/dockview/options.d.ts +97 -2
  40. package/dist/cjs/dockview/options.js +10 -5
  41. package/dist/cjs/dockview/tabGroup.d.ts +99 -0
  42. package/dist/cjs/dockview/tabGroup.js +219 -0
  43. package/dist/cjs/dockview/tabGroupAccent.d.ts +65 -0
  44. package/dist/cjs/dockview/tabGroupAccent.js +128 -0
  45. package/dist/cjs/dockview/theme.d.ts +56 -1
  46. package/dist/cjs/dockview/theme.js +103 -6
  47. package/dist/cjs/dockview/types.d.ts +2 -0
  48. package/dist/cjs/dom.js +19 -19
  49. package/dist/cjs/events.js +2 -2
  50. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -0
  51. package/dist/cjs/gridview/baseComponentGridview.js +6 -3
  52. package/dist/cjs/gridview/gridview.js +7 -7
  53. package/dist/cjs/index.d.ts +8 -5
  54. package/dist/cjs/index.js +6 -1
  55. package/dist/cjs/popoutWindow.js +3 -3
  56. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -1
  57. package/dist/dockview-core.js +5188 -729
  58. package/dist/dockview-core.min.js +2 -2
  59. package/dist/dockview-core.min.js.map +1 -1
  60. package/dist/dockview-core.min.noStyle.js +2 -2
  61. package/dist/dockview-core.min.noStyle.js.map +1 -1
  62. package/dist/dockview-core.noStyle.js +5186 -727
  63. package/dist/esm/api/component.api.d.ts +93 -1
  64. package/dist/esm/api/component.api.js +118 -0
  65. package/dist/esm/api/dockviewGroupPanelApi.d.ts +26 -0
  66. package/dist/esm/api/dockviewGroupPanelApi.js +21 -1
  67. package/dist/esm/dnd/dataTransfer.d.ts +2 -1
  68. package/dist/esm/dnd/dataTransfer.js +2 -1
  69. package/dist/esm/dnd/droptarget.d.ts +12 -0
  70. package/dist/esm/dnd/droptarget.js +33 -5
  71. package/dist/esm/dockview/components/panel/content.js +5 -1
  72. package/dist/esm/dockview/components/popupService.d.ts +9 -2
  73. package/dist/esm/dockview/components/popupService.js +23 -9
  74. package/dist/esm/dockview/components/tab/tab.d.ts +8 -1
  75. package/dist/esm/dockview/components/tab/tab.js +96 -6
  76. package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +30 -0
  77. package/dist/esm/dockview/components/titlebar/tabGroupChip.js +68 -0
  78. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +71 -0
  79. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +354 -0
  80. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +57 -0
  81. package/dist/esm/dockview/components/titlebar/tabGroups.js +406 -0
  82. package/dist/esm/dockview/components/titlebar/tabs.d.ts +67 -0
  83. package/dist/esm/dockview/components/titlebar/tabs.js +1212 -25
  84. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +6 -0
  85. package/dist/esm/dockview/components/titlebar/tabsContainer.js +105 -7
  86. package/dist/esm/dockview/contextMenu.d.ts +10 -0
  87. package/dist/esm/dockview/contextMenu.js +213 -0
  88. package/dist/esm/dockview/dockviewComponent.d.ts +60 -3
  89. package/dist/esm/dockview/dockviewComponent.js +460 -35
  90. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +83 -0
  91. package/dist/esm/dockview/dockviewGroupPanelModel.js +460 -4
  92. package/dist/esm/dockview/dockviewShell.d.ts +128 -0
  93. package/dist/esm/dockview/dockviewShell.js +621 -0
  94. package/dist/esm/dockview/events.d.ts +9 -0
  95. package/dist/esm/dockview/framework.d.ts +14 -0
  96. package/dist/esm/dockview/options.d.ts +97 -2
  97. package/dist/esm/dockview/options.js +5 -0
  98. package/dist/esm/dockview/tabGroup.d.ts +99 -0
  99. package/dist/esm/dockview/tabGroup.js +144 -0
  100. package/dist/esm/dockview/tabGroupAccent.d.ts +65 -0
  101. package/dist/esm/dockview/tabGroupAccent.js +116 -0
  102. package/dist/esm/dockview/theme.d.ts +56 -1
  103. package/dist/esm/dockview/theme.js +102 -5
  104. package/dist/esm/dockview/types.d.ts +2 -0
  105. package/dist/esm/dom.js +1 -1
  106. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -0
  107. package/dist/esm/gridview/baseComponentGridview.js +4 -1
  108. package/dist/esm/index.d.ts +8 -5
  109. package/dist/esm/index.js +2 -1
  110. package/dist/esm/popoutWindow.js +1 -1
  111. package/dist/esm/splitview/splitviewPanel.d.ts +1 -1
  112. package/dist/package/main.cjs.js +5182 -753
  113. package/dist/package/main.cjs.min.js +2 -2
  114. package/dist/package/main.esm.min.mjs +2 -2
  115. package/dist/package/main.esm.mjs +5168 -753
  116. package/dist/styles/dockview.css +1968 -195
  117. package/package.json +5 -1
@@ -1,39 +1,136 @@
1
1
  export const themeDark = {
2
2
  name: 'dark',
3
3
  className: 'dockview-theme-dark',
4
+ colorScheme: 'dark',
4
5
  };
5
6
  export const themeLight = {
6
7
  name: 'light',
7
8
  className: 'dockview-theme-light',
9
+ colorScheme: 'light',
8
10
  };
9
11
  export const themeVisualStudio = {
10
12
  name: 'visualStudio',
11
13
  className: 'dockview-theme-vs',
14
+ colorScheme: 'dark',
15
+ // --dv-tabs-and-actions-container-height is 20px, but the VS theme applies
16
+ // box-sizing: content-box + border-bottom: 2px, so the rendered strip is 22px.
17
+ edgeGroupCollapsedSize: 22,
12
18
  };
13
19
  export const themeAbyss = {
14
20
  name: 'abyss',
15
21
  className: 'dockview-theme-abyss',
22
+ colorScheme: 'dark',
23
+ tabGroupIndicator: 'none',
16
24
  };
17
25
  export const themeDracula = {
18
26
  name: 'dracula',
19
27
  className: 'dockview-theme-dracula',
20
- };
21
- export const themeReplit = {
22
- name: 'replit',
23
- className: 'dockview-theme-replit',
24
- gap: 10,
28
+ colorScheme: 'dark',
25
29
  };
26
30
  export const themeAbyssSpaced = {
27
31
  name: 'abyssSpaced',
28
32
  className: 'dockview-theme-abyss-spaced',
33
+ colorScheme: 'dark',
29
34
  gap: 10,
35
+ edgeGroupCollapsedSize: 44,
30
36
  dndOverlayMounting: 'absolute',
31
37
  dndPanelOverlay: 'group',
38
+ dndTabIndicator: 'line',
39
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
32
40
  };
33
41
  export const themeLightSpaced = {
34
42
  name: 'lightSpaced',
35
43
  className: 'dockview-theme-light-spaced',
44
+ colorScheme: 'light',
45
+ gap: 10,
46
+ edgeGroupCollapsedSize: 44,
47
+ dndOverlayMounting: 'absolute',
48
+ dndPanelOverlay: 'group',
49
+ dndTabIndicator: 'line',
50
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
51
+ };
52
+ export const themeNord = {
53
+ name: 'nord',
54
+ className: 'dockview-theme-nord',
55
+ colorScheme: 'dark',
56
+ };
57
+ export const themeNordSpaced = {
58
+ name: 'nordSpaced',
59
+ className: 'dockview-theme-nord-spaced',
60
+ colorScheme: 'dark',
61
+ gap: 10,
62
+ edgeGroupCollapsedSize: 44,
63
+ dndOverlayMounting: 'absolute',
64
+ dndPanelOverlay: 'group',
65
+ dndTabIndicator: 'line',
66
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
67
+ };
68
+ export const themeCatppuccinMocha = {
69
+ name: 'catppuccinMocha',
70
+ className: 'dockview-theme-catppuccin-mocha',
71
+ colorScheme: 'dark',
72
+ };
73
+ export const themeCatppuccinMochaSpaced = {
74
+ name: 'catppuccinMochaSpaced',
75
+ className: 'dockview-theme-catppuccin-mocha-spaced',
76
+ colorScheme: 'dark',
77
+ gap: 10,
78
+ edgeGroupCollapsedSize: 44,
79
+ dndOverlayMounting: 'absolute',
80
+ dndPanelOverlay: 'group',
81
+ dndTabIndicator: 'line',
82
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
83
+ };
84
+ export const themeMonokai = {
85
+ name: 'monokai',
86
+ className: 'dockview-theme-monokai',
87
+ colorScheme: 'dark',
88
+ };
89
+ export const themeSolarizedLight = {
90
+ name: 'solarizedLight',
91
+ className: 'dockview-theme-solarized-light',
92
+ colorScheme: 'light',
93
+ };
94
+ export const themeSolarizedLightSpaced = {
95
+ name: 'solarizedLightSpaced',
96
+ className: 'dockview-theme-solarized-light-spaced',
97
+ colorScheme: 'light',
98
+ gap: 10,
99
+ edgeGroupCollapsedSize: 44,
100
+ dndOverlayMounting: 'absolute',
101
+ dndPanelOverlay: 'group',
102
+ dndTabIndicator: 'line',
103
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
104
+ };
105
+ export const themeGithubDark = {
106
+ name: 'githubDark',
107
+ className: 'dockview-theme-github-dark',
108
+ colorScheme: 'dark',
109
+ };
110
+ export const themeGithubDarkSpaced = {
111
+ name: 'githubDarkSpaced',
112
+ className: 'dockview-theme-github-dark-spaced',
113
+ colorScheme: 'dark',
114
+ gap: 10,
115
+ edgeGroupCollapsedSize: 44,
116
+ dndOverlayMounting: 'absolute',
117
+ dndPanelOverlay: 'group',
118
+ dndTabIndicator: 'line',
119
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
120
+ };
121
+ export const themeGithubLight = {
122
+ name: 'githubLight',
123
+ className: 'dockview-theme-github-light',
124
+ colorScheme: 'light',
125
+ };
126
+ export const themeGithubLightSpaced = {
127
+ name: 'githubLightSpaced',
128
+ className: 'dockview-theme-github-light-spaced',
129
+ colorScheme: 'light',
36
130
  gap: 10,
131
+ edgeGroupCollapsedSize: 44,
37
132
  dndOverlayMounting: 'absolute',
38
133
  dndPanelOverlay: 'group',
134
+ dndTabIndicator: 'line',
135
+ dndOverlayBorder: '2px solid var(--dv-active-sash-color)',
39
136
  };
@@ -31,6 +31,8 @@ export interface ITabRenderer extends Optional<Omit<IPanel, 'id'>, RendererMetho
31
31
  export interface IContentRenderer extends Optional<Omit<IPanel, 'id'>, RendererMethodOptionalList> {
32
32
  readonly element: HTMLElement;
33
33
  init(parameters: GroupPanelPartInitParameters): void;
34
+ onShow?(): void;
35
+ onHide?(): void;
34
36
  }
35
37
  export interface IGroupPanelInitParameters extends PanelInitParameters, HeaderPartInitParameters {
36
38
  }
package/dist/esm/dom.js CHANGED
@@ -149,7 +149,7 @@ export function addStyles(document, styleSheetList) {
149
149
  }
150
150
  }
151
151
  catch (err) {
152
- // security errors (lack of permissions), ignore
152
+ console.warn('dockview: failed to access stylesheet rules due to security restrictions', err);
153
153
  }
154
154
  for (const rule of cssTexts) {
155
155
  const style = document.createElement('style');
@@ -105,6 +105,7 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
105
105
  removeGroup(group: T): void;
106
106
  moveToNext(options?: MovementOptions2): void;
107
107
  moveToPrevious(options?: MovementOptions2): void;
108
+ protected forceRelayout(): void;
108
109
  layout(width: number, height: number, forceResize?: boolean): void;
109
110
  dispose(): void;
110
111
  }
@@ -91,7 +91,7 @@ export class BaseGrid extends Resizable {
91
91
  isMaximized: event.isMaximized,
92
92
  });
93
93
  }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
94
- this.layout(this.width, this.height, true);
94
+ this.forceRelayout();
95
95
  }), Disposable.from(() => {
96
96
  var _a;
97
97
  (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
@@ -217,6 +217,9 @@ export class BaseGrid extends Resizable {
217
217
  const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;
218
218
  this.doSetGroupActive(next);
219
219
  }
220
+ forceRelayout() {
221
+ this.layout(this.width, this.height, true);
222
+ }
220
223
  layout(width, height, forceResize) {
221
224
  const different = forceResize || width !== this.width || height !== this.height;
222
225
  if (!different) {
@@ -16,18 +16,21 @@ export * from './gridview/baseComponentGridview';
16
16
  export { DraggablePaneviewPanel, PaneviewDidDropEvent as PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
17
17
  export * from './dockview/components/panel/content';
18
18
  export * from './dockview/components/tab/tab';
19
- export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, DockviewGroupChangeEvent, } from './dockview/dockviewGroupPanelModel';
20
- export { DockviewWillShowOverlayLocationEvent } from './dockview/events';
19
+ export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, DockviewGroupChangeEvent, DockviewGroupLocation, } from './dockview/dockviewGroupPanelModel';
20
+ export { DockviewWillShowOverlayLocationEvent, DockviewTabGroupChangeEvent, DockviewTabGroupCollapsedChangeEvent, DockviewTabGroupPanelChangeEvent, } from './dockview/events';
21
21
  export { TabDragEvent, GroupDragEvent, } from './dockview/components/titlebar/tabsContainer';
22
22
  export * from './dockview/types';
23
23
  export * from './dockview/dockviewGroupPanel';
24
- export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, } from './dockview/framework';
24
+ export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, ITabGroupChipRenderer, } from './dockview/framework';
25
25
  export * from './dockview/options';
26
26
  export * from './dockview/theme';
27
27
  export * from './dockview/dockviewPanel';
28
+ export { DockviewTabGroupColor, ITabGroup, SerializedTabGroup, TabGroupOptions, } from './dockview/tabGroup';
29
+ export { DEFAULT_TAB_GROUP_COLORS, DockviewTabGroupColorEntry, TabGroupColorPalette, applyTabGroupAccent, resolveTabGroupAccent, } from './dockview/tabGroupAccent';
28
30
  export { DefaultTab } from './dockview/components/tab/defaultTab';
29
31
  export { DefaultDockviewDeserialzier, IPanelDeserializer, } from './dockview/deserializer';
30
32
  export * from './dockview/dockviewComponent';
33
+ export { EdgeGroupOptions, EdgeGroupPosition, SerializedEdgeGroups, } from './dockview/dockviewShell';
31
34
  export * from './gridview/gridviewComponent';
32
35
  export * from './splitview/splitviewComponent';
33
36
  export * from './paneview/paneviewComponent';
@@ -43,6 +46,6 @@ export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/g
43
46
  export { TitleEvent, RendererChangedEvent, DockviewPanelApi, DockviewPanelMoveParams, } from './api/dockviewPanelApi';
44
47
  export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from './api/splitviewPanelApi';
45
48
  export { ExpansionEvent, PaneviewPanelApi } from './api/paneviewPanelApi';
46
- export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, DockviewGroupMoveParams, } from './api/dockviewGroupPanelApi';
47
- export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
49
+ export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, DockviewGroupPanelCollapsedChangeEvent, DockviewGroupMoveParams, } from './api/dockviewGroupPanelApi';
50
+ export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, DockviewGetTabGroupsOptions, } from './api/component.api';
48
51
  export { createDockview, createGridview, createPaneview, createSplitview, } from './api/entryPoints';
package/dist/esm/index.js CHANGED
@@ -17,12 +17,13 @@ export { DraggablePaneviewPanel, } from './paneview/draggablePaneviewPanel';
17
17
  export * from './dockview/components/panel/content';
18
18
  export * from './dockview/components/tab/tab';
19
19
  export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, } from './dockview/dockviewGroupPanelModel';
20
- export { DockviewWillShowOverlayLocationEvent } from './dockview/events';
20
+ export { DockviewWillShowOverlayLocationEvent, } from './dockview/events';
21
21
  export * from './dockview/types';
22
22
  export * from './dockview/dockviewGroupPanel';
23
23
  export * from './dockview/options';
24
24
  export * from './dockview/theme';
25
25
  export * from './dockview/dockviewPanel';
26
+ export { DEFAULT_TAB_GROUP_COLORS, TabGroupColorPalette, applyTabGroupAccent, resolveTabGroupAccent, } from './dockview/tabGroupAccent';
26
27
  export { DefaultTab } from './dockview/components/tab/defaultTab';
27
28
  export { DefaultDockviewDeserialzier, } from './dockview/deserializer';
28
29
  export * from './dockview/dockviewComponent';
@@ -55,8 +55,8 @@ export class PopoutWindow extends CompositeDisposable {
55
55
  }
56
56
  }
57
57
  open() {
58
- var _a, _b;
59
58
  return __awaiter(this, void 0, void 0, function* () {
59
+ var _a, _b;
60
60
  if (this._window) {
61
61
  throw new Error('instance of popout window is already open');
62
62
  }
@@ -39,7 +39,7 @@ export declare abstract class SplitviewPanel extends BasePanelView<SplitviewPane
39
39
  maximumSize: number | undefined;
40
40
  id: string;
41
41
  component: string;
42
- params?: import("..").Parameters | undefined;
42
+ params?: import("..").Parameters;
43
43
  };
44
44
  private updateConstraints;
45
45
  }