dockview-core 5.2.0 → 6.0.1

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 +6 -1
  17. package/dist/cjs/dockview/components/tab/tab.js +81 -9
  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 +59 -0
  26. package/dist/cjs/dockview/components/titlebar/tabs.js +1227 -144
  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 +92 -10
  40. package/dist/cjs/dockview/options.js +10 -7
  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 +6942 -2777
  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 +6940 -2775
  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 +6 -1
  75. package/dist/esm/dockview/components/tab/tab.js +83 -9
  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 +59 -0
  83. package/dist/esm/dockview/components/titlebar/tabs.js +1011 -99
  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 +92 -10
  97. package/dist/esm/dockview/options.js +5 -2
  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 +6936 -2801
  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 +6922 -2800
  116. package/dist/styles/dockview.css +1945 -196
  117. package/package.json +5 -1
@@ -0,0 +1,128 @@
1
+ import { Event } from '../events';
2
+ import { IDisposable } from '../lifecycle';
3
+ import { IView, LayoutPriority } from '../splitview/splitview';
4
+ export type EdgeGroupPosition = 'top' | 'bottom' | 'left' | 'right';
5
+ export interface EdgeGroupOptions {
6
+ id: string;
7
+ initialSize?: number;
8
+ minimumSize?: number;
9
+ maximumSize?: number;
10
+ collapsedSize?: number;
11
+ collapsed?: boolean;
12
+ }
13
+ export interface SerializedEdgeGroups {
14
+ top?: {
15
+ size: number;
16
+ visible: boolean;
17
+ collapsed?: boolean;
18
+ group?: unknown;
19
+ };
20
+ bottom?: {
21
+ size: number;
22
+ visible: boolean;
23
+ collapsed?: boolean;
24
+ group?: unknown;
25
+ };
26
+ left?: {
27
+ size: number;
28
+ visible: boolean;
29
+ collapsed?: boolean;
30
+ group?: unknown;
31
+ };
32
+ right?: {
33
+ size: number;
34
+ visible: boolean;
35
+ collapsed?: boolean;
36
+ group?: unknown;
37
+ };
38
+ }
39
+ /**
40
+ * Minimal interface for a edge group host.
41
+ * Avoids circular imports by not referencing DockviewGroupPanel directly.
42
+ */
43
+ export interface IEdgeGroupHost {
44
+ readonly element: HTMLElement;
45
+ layout(width: number, height: number): void;
46
+ }
47
+ export declare class EdgeGroupView implements IView {
48
+ private readonly _group;
49
+ private readonly _orientation;
50
+ private readonly _onDidChange;
51
+ readonly onDidChange: Event<{
52
+ size?: number;
53
+ orthogonalSize?: number;
54
+ }>;
55
+ readonly snap = false;
56
+ readonly priority = LayoutPriority.Low;
57
+ private _isCollapsed;
58
+ private _lastExpandedSize;
59
+ private _collapsedSize;
60
+ private _expandedMinimumSize;
61
+ private readonly _expandedMaximumSize;
62
+ get minimumSize(): number;
63
+ get maximumSize(): number;
64
+ get element(): HTMLElement;
65
+ get isCollapsed(): boolean;
66
+ get lastExpandedSize(): number;
67
+ get collapsedSize(): number;
68
+ constructor(options: EdgeGroupOptions, group: IEdgeGroupHost, orientation: 'horizontal' | 'vertical');
69
+ layout(size: number, orthogonalSize: number): void;
70
+ setCollapsed(collapsed: boolean): void;
71
+ setVisible(_visible: boolean): void;
72
+ /**
73
+ * Restore the last-expanded size from serialized state without triggering
74
+ * a layout. Must be called before setCollapsed(true) during fromJSON so
75
+ * that expanding after deserialization restores the correct size.
76
+ */
77
+ restoreExpandedSize(size: number): void;
78
+ /**
79
+ * Apply new effective collapsed and expanded-minimum sizes after a theme
80
+ * or gap change. The caller (ShellManager) is responsible for computing
81
+ * the correct values from the original config and the new gap.
82
+ */
83
+ updateCollapsedSize(newCollapsedSize: number, newExpandedMinimumSize: number): void;
84
+ dispose(): void;
85
+ }
86
+ export declare class ShellManager implements IDisposable {
87
+ private readonly _outerSplitview;
88
+ private readonly _middleColumn;
89
+ private readonly _shellElement;
90
+ private _topView;
91
+ private _bottomView;
92
+ private _leftView;
93
+ private _rightView;
94
+ private _leftIndex;
95
+ private _middleIndex;
96
+ private _rightIndex;
97
+ private readonly _disposables;
98
+ private readonly _viewConfigs;
99
+ private _currentWidth;
100
+ private _currentHeight;
101
+ private _gap;
102
+ private _defaultCollapsedSize;
103
+ constructor(container: HTMLElement, dockviewElement: HTMLElement, layoutGrid: (width: number, height: number) => void, gap?: number, defaultCollapsedSize?: number);
104
+ get element(): HTMLElement;
105
+ /**
106
+ * Add an edge group view at the given position. The view wraps the
107
+ * provided group element inside the shell's splitview layout.
108
+ * Throws if a group at this position is already registered.
109
+ */
110
+ addEdgeView(position: EdgeGroupPosition, options: EdgeGroupOptions, group: IEdgeGroupHost): EdgeGroupView;
111
+ layout(width: number, height: number): void;
112
+ /**
113
+ * Called when the active theme changes. Updates splitview margins and
114
+ * edge-group collapsed sizes so the layout matches the new theme's gap
115
+ * and tab-strip dimensions.
116
+ */
117
+ updateTheme(gap: number, defaultCollapsedSize: number): void;
118
+ removeEdgeView(position: EdgeGroupPosition): void;
119
+ hasEdgeGroup(position: EdgeGroupPosition): boolean;
120
+ setEdgeGroupVisible(position: EdgeGroupPosition, visible: boolean): void;
121
+ isEdgeGroupVisible(position: EdgeGroupPosition): boolean;
122
+ setEdgeGroupCollapsed(position: EdgeGroupPosition, collapsed: boolean): void;
123
+ isEdgeGroupCollapsed(position: EdgeGroupPosition): boolean;
124
+ private _getView;
125
+ toJSON(): SerializedEdgeGroups;
126
+ fromJSON(data: SerializedEdgeGroups): void;
127
+ dispose(): void;
128
+ }