flexlayout-react 0.6.6 → 0.6.9
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/.github/ISSUE_TEMPLATE/bug_report.yml +104 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/ChangeLog.txt +9 -0
- package/README.md +10 -0
- package/declarations/Types.d.ts +3 -0
- package/declarations/view/Layout.d.ts +3 -0
- package/dist/flexlayout.js +6 -6
- package/dist/flexlayout_min.js +1 -1
- package/lib/Types.js +3 -0
- package/lib/Types.js.map +1 -1
- package/lib/model/Node.js +13 -8
- package/lib/model/Node.js.map +1 -1
- package/lib/model/TabSetNode.js +4 -1
- package/lib/model/TabSetNode.js.map +1 -1
- package/lib/view/BorderTabSet.js +1 -0
- package/lib/view/BorderTabSet.js.map +1 -1
- package/lib/view/Layout.js +8 -2
- package/lib/view/Layout.js.map +1 -1
- package/lib/view/TabSet.js +29 -11
- package/lib/view/TabSet.js.map +1 -1
- package/package.json +3 -3
- package/src/Types.ts +3 -0
- package/src/model/Node.ts +11 -7
- package/src/model/TabSetNode.ts +4 -1
- package/src/view/BorderTabSet.tsx +4 -0
- package/src/view/Layout.tsx +13 -2
- package/src/view/TabSet.tsx +29 -11
- package/style/_base.scss +63 -49
- package/style/dark.css +91 -49
- package/style/dark.css.map +1 -1
- package/style/dark.scss +66 -21
- package/style/gray.css +91 -66
- package/style/gray.css.map +1 -1
- package/style/gray.scss +70 -24
- package/style/light.css +91 -51
- package/style/light.css.map +1 -1
- package/style/light.scss +68 -19
- package/style/underline.css +559 -0
- package/style/underline.css.map +1 -0
- package/style/underline.scss +172 -0
package/src/model/TabSetNode.ts
CHANGED
|
@@ -274,7 +274,10 @@ export class TabSetNode extends Node implements IDraggable, IDropTarget {
|
|
|
274
274
|
const outlineRect = this._tabHeaderRect;
|
|
275
275
|
dropInfo = new DropInfo(this, outlineRect!, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
276
276
|
} else if (this._contentRect!.contains(x, y)) {
|
|
277
|
-
|
|
277
|
+
let dockLocation = DockLocation.CENTER;
|
|
278
|
+
if (this._model.getMaximizedTabset() === undefined) {
|
|
279
|
+
dockLocation = DockLocation.getLocation(this._contentRect!, x, y);
|
|
280
|
+
}
|
|
278
281
|
const outlineRect = dockLocation.getDockRect(this._rect);
|
|
279
282
|
dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
280
283
|
} else if (this._tabHeaderRect != null && this._tabHeaderRect.contains(x, y)) {
|
|
@@ -97,6 +97,10 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
|
|
|
97
97
|
icons={icons}
|
|
98
98
|
/>
|
|
99
99
|
);
|
|
100
|
+
tabs.push(
|
|
101
|
+
<div key={"divider" + i} className={cm(CLASSES.FLEXLAYOUT__BORDER_TAB_DIVIDER)}></div>
|
|
102
|
+
);
|
|
103
|
+
|
|
100
104
|
};
|
|
101
105
|
|
|
102
106
|
for (let i = 0; i < border.getChildren().length; i++) {
|
package/src/view/Layout.tsx
CHANGED
|
@@ -39,6 +39,7 @@ export type ShowOverflowMenuCallback = (
|
|
|
39
39
|
items: { index: number; node: TabNode }[],
|
|
40
40
|
onSelect: (item: { index: number; node: TabNode }) => void,
|
|
41
41
|
) => void;
|
|
42
|
+
export type TabSetPlaceHolderCallback = (node: TabSetNode) => React.ReactNode;
|
|
42
43
|
|
|
43
44
|
export interface ILayoutProps {
|
|
44
45
|
model: Model;
|
|
@@ -83,6 +84,7 @@ export interface ILayoutProps {
|
|
|
83
84
|
onContextMenu?: NodeMouseEvent;
|
|
84
85
|
onAuxMouseClick?: NodeMouseEvent;
|
|
85
86
|
onShowOverflowMenu?: ShowOverflowMenuCallback;
|
|
87
|
+
onTabSetPlaceHolder?: TabSetPlaceHolderCallback;
|
|
86
88
|
}
|
|
87
89
|
export interface IFontValues {
|
|
88
90
|
size?: string;
|
|
@@ -93,6 +95,7 @@ export interface IFontValues {
|
|
|
93
95
|
|
|
94
96
|
export interface ITabSetRenderValues {
|
|
95
97
|
headerContent?: React.ReactNode;
|
|
98
|
+
centerContent?: React.ReactNode;
|
|
96
99
|
stickyButtons: React.ReactNode[];
|
|
97
100
|
buttons: React.ReactNode[];
|
|
98
101
|
headerButtons: React.ReactNode[];
|
|
@@ -187,6 +190,7 @@ export interface ILayoutCallbacks {
|
|
|
187
190
|
showPortal: (portal: React.ReactNode, portalDiv: HTMLDivElement) => void;
|
|
188
191
|
hidePortal: () => void;
|
|
189
192
|
getShowOverflowMenu(): ShowOverflowMenuCallback | undefined;
|
|
193
|
+
getTabSetPlaceHolderCallback() : TabSetPlaceHolderCallback | undefined;
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
// Popout windows work in latest browsers based on webkit (Chrome, Opera, Safari, latest Edge) and Firefox. They do
|
|
@@ -829,7 +833,7 @@ export class Layout extends React.Component<ILayoutProps, ILayoutState> {
|
|
|
829
833
|
onClick?: (event: Event) => void,
|
|
830
834
|
onDoubleClick?: (event: Event) => void
|
|
831
835
|
) => {
|
|
832
|
-
if (
|
|
836
|
+
if (!allowDrag) {
|
|
833
837
|
DragDrop.instance.startDrag(event, undefined, undefined, undefined, undefined, onClick, onDoubleClick, this.currentDocument, this.selfRef.current!);
|
|
834
838
|
} else {
|
|
835
839
|
this.dragNode = node;
|
|
@@ -907,7 +911,9 @@ export class Layout extends React.Component<ILayoutProps, ILayoutState> {
|
|
|
907
911
|
rootdiv.appendChild(this.dragDiv);
|
|
908
912
|
}
|
|
909
913
|
// add edge indicators
|
|
910
|
-
this.
|
|
914
|
+
if (this.props.model.getMaximizedTabset() === undefined) {
|
|
915
|
+
this.showEdges(rootdiv);
|
|
916
|
+
}
|
|
911
917
|
|
|
912
918
|
if (this.dragNode !== undefined && this.dragNode instanceof TabNode && this.dragNode.getTabRect() !== undefined) {
|
|
913
919
|
this.dragNode.getTabRect()!.positionElement(this.outlineDiv);
|
|
@@ -1235,6 +1241,11 @@ export class Layout extends React.Component<ILayoutProps, ILayoutState> {
|
|
|
1235
1241
|
getShowOverflowMenu() {
|
|
1236
1242
|
return this.props.onShowOverflowMenu;
|
|
1237
1243
|
}
|
|
1244
|
+
|
|
1245
|
+
/** @internal */
|
|
1246
|
+
getTabSetPlaceHolderCallback() {
|
|
1247
|
+
return this.props.onTabSetPlaceHolder;
|
|
1248
|
+
}
|
|
1238
1249
|
/** @internal */
|
|
1239
1250
|
showContextMenu(node: TabNode | TabSetNode | BorderNode, event: React.MouseEvent<HTMLElement, MouseEvent>) {
|
|
1240
1251
|
if (this.props.onContextMenu) {
|
package/src/view/TabSet.tsx
CHANGED
|
@@ -67,7 +67,11 @@ export const TabSet = (props: ITabSetProps) => {
|
|
|
67
67
|
layout.doAction(Actions.setActiveTabset(node.getId()));
|
|
68
68
|
if (!layout.getEditingTab()) {
|
|
69
69
|
const message = layout.i18nName(I18nLabel.Move_Tabset, name);
|
|
70
|
-
|
|
70
|
+
if (node.getModel().getMaximizedTabset() !== undefined) {
|
|
71
|
+
layout.dragStart(event, message, node, false, (event2: Event) => undefined, onDoubleClick);
|
|
72
|
+
} else {
|
|
73
|
+
layout.dragStart(event, message, node, node.isEnableDrag(), (event2: Event) => undefined, onDoubleClick);
|
|
74
|
+
}
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
};
|
|
@@ -141,8 +145,10 @@ export const TabSet = (props: ITabSetProps) => {
|
|
|
141
145
|
iconFactory={iconFactory}
|
|
142
146
|
titleFactory={titleFactory}
|
|
143
147
|
icons={icons}
|
|
144
|
-
/>
|
|
145
|
-
|
|
148
|
+
/>);
|
|
149
|
+
tabs.push(
|
|
150
|
+
<div key={"divider" + i} className={cm(CLASSES.FLEXLAYOUT__TABSET_TAB_DIVIDER)}></div>
|
|
151
|
+
);
|
|
146
152
|
}
|
|
147
153
|
}
|
|
148
154
|
|
|
@@ -327,12 +333,6 @@ export const TabSet = (props: ITabSetProps) => {
|
|
|
327
333
|
}
|
|
328
334
|
|
|
329
335
|
const tabStripStyle: { [key: string]: string } = { height: node.getTabStripHeight() + "px" };
|
|
330
|
-
if (node.getTabLocation() === "top") {
|
|
331
|
-
const top = showHeader ? node.getHeaderHeight() + "px" : "0px";
|
|
332
|
-
tabStripStyle["top"] = top;
|
|
333
|
-
} else {
|
|
334
|
-
tabStripStyle["bottom"] = "0px";
|
|
335
|
-
}
|
|
336
336
|
tabStrip = (
|
|
337
337
|
<div className={tabStripClasses} style={tabStripStyle}
|
|
338
338
|
data-layout-path={path + "/tabstrip"}
|
|
@@ -355,6 +355,25 @@ export const TabSet = (props: ITabSetProps) => {
|
|
|
355
355
|
|
|
356
356
|
style = layout.styleFont(style);
|
|
357
357
|
|
|
358
|
+
var placeHolder: React.ReactNode = undefined;
|
|
359
|
+
if (node.getChildren().length === 0) {
|
|
360
|
+
const placeHolderCallback = layout.getTabSetPlaceHolderCallback();
|
|
361
|
+
if (placeHolderCallback) {
|
|
362
|
+
placeHolder = placeHolderCallback(node);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
const center = <div className={cm(CLASSES.FLEXLAYOUT__TABSET_CONTENT)}>
|
|
367
|
+
{placeHolder}
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
var content;
|
|
371
|
+
if (node.getTabLocation() === "top") {
|
|
372
|
+
content = <>{header}{tabStrip}{center}</>;
|
|
373
|
+
} else {
|
|
374
|
+
content = <>{header}{center}{tabStrip}</>;
|
|
375
|
+
}
|
|
376
|
+
|
|
358
377
|
return (
|
|
359
378
|
<div ref={selfRef}
|
|
360
379
|
dir="ltr"
|
|
@@ -362,8 +381,7 @@ export const TabSet = (props: ITabSetProps) => {
|
|
|
362
381
|
style={style}
|
|
363
382
|
className={cm(CLASSES.FLEXLAYOUT__TABSET)}
|
|
364
383
|
onWheel={onMouseWheel}>
|
|
365
|
-
{
|
|
366
|
-
{tabStrip}
|
|
384
|
+
{content}
|
|
367
385
|
</div>
|
|
368
386
|
);
|
|
369
387
|
};
|
package/style/_base.scss
CHANGED
|
@@ -8,32 +8,17 @@
|
|
|
8
8
|
|
|
9
9
|
.flexlayout {
|
|
10
10
|
&__layout {
|
|
11
|
-
--color-text: #{$color_text};
|
|
12
|
-
--color-background: #{$color_background};
|
|
13
|
-
--color-base: #{$color_base};
|
|
14
|
-
--color-1: #{$color_1};
|
|
15
|
-
--color-2: #{$color_2};
|
|
16
|
-
--color-3: #{$color_3};
|
|
17
|
-
--color-4: #{$color_4};
|
|
18
|
-
--color-5: #{$color_5};
|
|
19
|
-
--color-6: #{$color_6};
|
|
20
|
-
--color-drag1: #{$color_drag1};
|
|
21
|
-
--color-drag2: #{$color_drag2};
|
|
22
|
-
--color-drag1-background: #{$color_drag1_background};
|
|
23
|
-
--color-drag2-background: #{$color_drag2_background};
|
|
24
|
-
|
|
25
|
-
--font-size: #{$font-size};
|
|
26
|
-
--font-family: #{$font-family};
|
|
27
|
-
|
|
28
11
|
@include absoluteFill;
|
|
29
12
|
overflow: hidden;
|
|
30
13
|
}
|
|
31
14
|
|
|
32
15
|
&__splitter {
|
|
16
|
+
background-color: var(--color-splitter);
|
|
33
17
|
@include splitter_mixin;
|
|
34
18
|
|
|
35
19
|
@media (hover: hover) {
|
|
36
20
|
&:hover {
|
|
21
|
+
background-color: var(--color-splitter-hover);
|
|
37
22
|
transition: background-color ease-in .1s;
|
|
38
23
|
transition-delay: 0.05s;
|
|
39
24
|
@include splitter_hover_mixin;
|
|
@@ -45,6 +30,7 @@
|
|
|
45
30
|
}
|
|
46
31
|
&_drag {
|
|
47
32
|
z-index: 1000;
|
|
33
|
+
background-color: var(--color-splitter-drag);
|
|
48
34
|
@include splitter_drag_mixin;
|
|
49
35
|
}
|
|
50
36
|
&_extra {
|
|
@@ -75,17 +61,17 @@
|
|
|
75
61
|
position: absolute;
|
|
76
62
|
z-index: 1000;
|
|
77
63
|
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
|
|
78
|
-
background-color:
|
|
64
|
+
background-color: var(--color-edge-marker);
|
|
79
65
|
pointer-events: none;
|
|
80
66
|
}
|
|
81
67
|
|
|
82
68
|
&__drag_rect {
|
|
83
69
|
position: absolute;
|
|
84
70
|
cursor: move;
|
|
85
|
-
color: var(--color-
|
|
86
|
-
background-color: var(--color-
|
|
87
|
-
border: 2px solid var(--color-
|
|
88
|
-
box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.3);
|
|
71
|
+
color: var(--color-drag-rect);
|
|
72
|
+
background-color: var(--color-drag-rect-background);
|
|
73
|
+
border: 2px solid var(--color-drag-rect-border);
|
|
74
|
+
// box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.3);
|
|
89
75
|
border-radius: 5px;
|
|
90
76
|
z-index: 1000;
|
|
91
77
|
box-sizing: border-box;
|
|
@@ -96,31 +82,43 @@
|
|
|
96
82
|
justify-content: center;
|
|
97
83
|
flex-direction: column;
|
|
98
84
|
overflow: hidden;
|
|
99
|
-
padding: 0.
|
|
85
|
+
padding: 0.3em 1em;
|
|
100
86
|
word-wrap: break-word;
|
|
101
87
|
font-size: var(--font-size);
|
|
102
88
|
font-family: var(--font-family);
|
|
103
89
|
}
|
|
104
90
|
|
|
105
91
|
&__tabset {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-direction: column;
|
|
106
94
|
overflow: hidden;
|
|
107
|
-
background-color: var(--color-
|
|
95
|
+
background-color: var(--color-tabset-background);
|
|
108
96
|
box-sizing: border-box;
|
|
109
97
|
font-size: var(--font-size);
|
|
110
98
|
font-family: var(--font-family);
|
|
111
99
|
@include tabset_mixin;
|
|
112
100
|
|
|
101
|
+
&_tab_divider {
|
|
102
|
+
width: 4px;
|
|
103
|
+
@include tabset_tab_divider_mixin;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
&_content {
|
|
107
|
+
display: flex;
|
|
108
|
+
flex-grow: 1;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
113
|
&_header {
|
|
114
114
|
// tabset header bar
|
|
115
|
-
position: absolute;
|
|
116
115
|
display: flex;
|
|
117
116
|
align-items: center;
|
|
118
|
-
left: 0;
|
|
119
|
-
right: 0;
|
|
120
117
|
padding: 3px 3px 3px 5px;
|
|
121
118
|
box-sizing: border-box;
|
|
122
|
-
border-bottom: 1px solid var(--color-
|
|
123
|
-
color: var(--color-
|
|
119
|
+
border-bottom: 1px solid var(--color-tabset-divider-line);
|
|
120
|
+
color: var(--color-tabset-header);
|
|
121
|
+
background-color: var(--color-tabset-header-background);
|
|
124
122
|
@include tabset_header_mixin;
|
|
125
123
|
|
|
126
124
|
&_content {
|
|
@@ -132,21 +130,18 @@
|
|
|
132
130
|
&_outer {
|
|
133
131
|
// tabset tabbar outer
|
|
134
132
|
box-sizing: border-box;
|
|
135
|
-
background-color: var(--color-
|
|
136
|
-
position: absolute;
|
|
137
|
-
left: 0;
|
|
138
|
-
right: 0;
|
|
133
|
+
background-color: var(--color-tabset-background);
|
|
139
134
|
overflow: hidden;
|
|
140
135
|
display: flex;
|
|
141
136
|
@include tabset_tabbar_mixin;
|
|
142
137
|
}
|
|
143
138
|
|
|
144
139
|
&_outer_top {
|
|
145
|
-
border-bottom: 1px solid var(--color-
|
|
140
|
+
border-bottom: 1px solid var(--color-tabset-divider-line);
|
|
146
141
|
}
|
|
147
142
|
|
|
148
143
|
&_outer_bottom {
|
|
149
|
-
border-top: 1px solid var(--color-
|
|
144
|
+
border-top: 1px solid var(--color-tabset-divider-line);
|
|
150
145
|
}
|
|
151
146
|
|
|
152
147
|
&_inner {
|
|
@@ -159,7 +154,6 @@
|
|
|
159
154
|
|
|
160
155
|
&_tab_container {
|
|
161
156
|
display: flex;
|
|
162
|
-
gap: 4px;
|
|
163
157
|
padding-left: 4px;
|
|
164
158
|
padding-right: 4px;
|
|
165
159
|
box-sizing: border-box;
|
|
@@ -179,10 +173,12 @@
|
|
|
179
173
|
}
|
|
180
174
|
|
|
181
175
|
&-selected {
|
|
176
|
+
background-color: var(--color-tabset-background-selected);
|
|
182
177
|
@include tabset_selected_mixin;
|
|
183
178
|
}
|
|
184
179
|
|
|
185
180
|
&-maximized {
|
|
181
|
+
background-color: var(--color-tabset-background-maximized);
|
|
186
182
|
@include tabset_maximized_mixin;
|
|
187
183
|
}
|
|
188
184
|
}
|
|
@@ -199,8 +195,8 @@
|
|
|
199
195
|
overflow: auto;
|
|
200
196
|
position: absolute;
|
|
201
197
|
box-sizing: border-box;
|
|
202
|
-
color: var(--color-text);
|
|
203
198
|
background-color: var(--color-background);
|
|
199
|
+
color: var(--color-text);
|
|
204
200
|
|
|
205
201
|
&_button {
|
|
206
202
|
display: flex;
|
|
@@ -213,15 +209,21 @@
|
|
|
213
209
|
@include tab_button_mixin;
|
|
214
210
|
|
|
215
211
|
&--selected {
|
|
212
|
+
background-color:var(--color-tab-selected-background);
|
|
213
|
+
color:var(--color-tab-selected);
|
|
216
214
|
@include tab_button_selected_mixin;
|
|
217
215
|
}
|
|
218
216
|
@media (hover: hover) {
|
|
219
217
|
&:hover {
|
|
218
|
+
background-color:var(--color-tab-selected-background);
|
|
219
|
+
color:var(--color-tab-selected);
|
|
220
220
|
@include tab_button_hovered_mixin;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
&--unselected {
|
|
225
|
+
background-color:var(--color-tab-unselected-background);
|
|
226
|
+
color:var(--color-tab-unselected);
|
|
225
227
|
@include tab_button_unselected_mixin;
|
|
226
228
|
}
|
|
227
229
|
|
|
@@ -245,8 +247,8 @@
|
|
|
245
247
|
border: none;
|
|
246
248
|
font-family: var(--font-family);
|
|
247
249
|
font-size: var(--font-size);
|
|
248
|
-
color: var(--color-
|
|
249
|
-
background-color: var(--color-
|
|
250
|
+
color: var(--color-tab-textbox);
|
|
251
|
+
background-color: var(--color-tab-textbox-background);
|
|
250
252
|
border: 1px inset var(--color-1);
|
|
251
253
|
border-radius: 3px;
|
|
252
254
|
width: 10em;
|
|
@@ -282,7 +284,7 @@
|
|
|
282
284
|
display: flex;
|
|
283
285
|
align-items: center;
|
|
284
286
|
border: none;
|
|
285
|
-
color:
|
|
287
|
+
color: var(--color-overflow);
|
|
286
288
|
font-size: inherit;
|
|
287
289
|
background-color: transparent;
|
|
288
290
|
}
|
|
@@ -365,26 +367,28 @@
|
|
|
365
367
|
display: flex;
|
|
366
368
|
font-size: var(--font-size);
|
|
367
369
|
font-family: var(--font-family);
|
|
370
|
+
color: var(--color-border);
|
|
371
|
+
background-color: var(--color-border-background);
|
|
368
372
|
@include border_mixin;
|
|
369
373
|
|
|
370
374
|
&_top {
|
|
371
|
-
border-bottom: 1px solid var(--color-
|
|
375
|
+
border-bottom: 1px solid var(--color-border-divider-line);
|
|
372
376
|
align-items: center;
|
|
373
377
|
}
|
|
374
378
|
|
|
375
379
|
&_bottom {
|
|
376
|
-
border-top: 1px solid var(--color-
|
|
380
|
+
border-top: 1px solid var(--color-border-divider-line);
|
|
377
381
|
align-items: center;
|
|
378
382
|
}
|
|
379
383
|
|
|
380
384
|
&_left {
|
|
381
|
-
border-right: 1px solid var(--color-
|
|
385
|
+
border-right: 1px solid var(--color-border-divider-line);
|
|
382
386
|
align-content: center;
|
|
383
387
|
flex-direction: column;
|
|
384
388
|
}
|
|
385
389
|
|
|
386
390
|
&_right {
|
|
387
|
-
border-left: 1px solid var(--color-
|
|
391
|
+
border-left: 1px solid var(--color-border-divider-line);
|
|
388
392
|
align-content: center;
|
|
389
393
|
flex-direction: column;
|
|
390
394
|
}
|
|
@@ -399,7 +403,6 @@
|
|
|
399
403
|
&_tab_container {
|
|
400
404
|
white-space: nowrap;
|
|
401
405
|
display: flex;
|
|
402
|
-
gap: 4px;
|
|
403
406
|
padding-left: 2px;
|
|
404
407
|
padding-right: 2px;
|
|
405
408
|
box-sizing: border-box;
|
|
@@ -420,6 +423,11 @@
|
|
|
420
423
|
}
|
|
421
424
|
}
|
|
422
425
|
|
|
426
|
+
&_tab_divider {
|
|
427
|
+
width: 4px;
|
|
428
|
+
@include border_tab_divider_mixin;
|
|
429
|
+
}
|
|
430
|
+
|
|
423
431
|
&_button {
|
|
424
432
|
display: flex;
|
|
425
433
|
gap: 0.3em;
|
|
@@ -432,15 +440,21 @@
|
|
|
432
440
|
@include border_button_mixin;
|
|
433
441
|
|
|
434
442
|
&--selected {
|
|
443
|
+
background-color: var(--color-border-tab-selected-background);
|
|
444
|
+
color: var(--color-border-tab-selected);
|
|
435
445
|
@include border_button_selected_mixin;
|
|
436
446
|
}
|
|
437
447
|
@media (hover: hover) {
|
|
438
448
|
&:hover {
|
|
449
|
+
background-color: var(--color-border-tab-selected-background);
|
|
450
|
+
color: var(--color-border-tab-selected);
|
|
439
451
|
@include border_button_hovered_mixin;
|
|
440
452
|
}
|
|
441
453
|
}
|
|
442
454
|
|
|
443
455
|
&--unselected {
|
|
456
|
+
background-color: var(--color-border-tab-unselected-background);
|
|
457
|
+
color: var(--color-border-tab-unselected);
|
|
444
458
|
@include border_button_unselected_mixin;
|
|
445
459
|
}
|
|
446
460
|
|
|
@@ -513,7 +527,7 @@
|
|
|
513
527
|
display: flex;
|
|
514
528
|
align-items: center;
|
|
515
529
|
border: none;
|
|
516
|
-
color:
|
|
530
|
+
color: var(--color-overflow);
|
|
517
531
|
font-size: inherit;
|
|
518
532
|
background-color: transparent;
|
|
519
533
|
}
|
|
@@ -548,9 +562,9 @@
|
|
|
548
562
|
|
|
549
563
|
&_container {
|
|
550
564
|
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.15);
|
|
551
|
-
border: 1px solid var(--color-
|
|
552
|
-
color: var(--color-
|
|
553
|
-
background: var(--color-background);
|
|
565
|
+
border: 1px solid var(--color-popup-border);
|
|
566
|
+
color: var(--color-popup-unselected);
|
|
567
|
+
background: var(--color-popup-unselected-background);
|
|
554
568
|
border-radius: 3px;
|
|
555
569
|
position: absolute;
|
|
556
570
|
z-index: 1000;
|