@jupyterlab/running 4.0.0-alpha.12 → 4.0.0-alpha.14
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/lib/index.d.ts +23 -4
- package/lib/index.js +99 -55
- package/lib/index.js.map +1 -1
- package/package.json +7 -7
- package/style/base.css +7 -45
package/lib/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module running
|
|
4
4
|
*/
|
|
5
5
|
import { ITranslator } from '@jupyterlab/translation';
|
|
6
|
-
import { LabIcon,
|
|
6
|
+
import { LabIcon, SidePanel } from '@jupyterlab/ui-components';
|
|
7
7
|
import { Token } from '@lumino/coreutils';
|
|
8
8
|
import { IDisposable } from '@lumino/disposable';
|
|
9
9
|
import { ISignal } from '@lumino/signaling';
|
|
@@ -22,12 +22,20 @@ export interface IRunningSessionManagers {
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
add(manager: IRunningSessions.IManager): IDisposable;
|
|
25
|
+
/**
|
|
26
|
+
* Signal emitted when a new manager is added.
|
|
27
|
+
*/
|
|
28
|
+
added: ISignal<IRunningSessionManagers, IRunningSessions.IManager>;
|
|
25
29
|
/**
|
|
26
30
|
* Return an array of managers.
|
|
27
31
|
*/
|
|
28
32
|
items(): ReadonlyArray<IRunningSessions.IManager>;
|
|
29
33
|
}
|
|
30
34
|
export declare class RunningSessionManagers implements IRunningSessionManagers {
|
|
35
|
+
/**
|
|
36
|
+
* Signal emitted when a new manager is added.
|
|
37
|
+
*/
|
|
38
|
+
get added(): ISignal<this, IRunningSessions.IManager>;
|
|
31
39
|
/**
|
|
32
40
|
* Add a running item manager.
|
|
33
41
|
*
|
|
@@ -39,18 +47,29 @@ export declare class RunningSessionManagers implements IRunningSessionManagers {
|
|
|
39
47
|
* Return an iterator of launcher items.
|
|
40
48
|
*/
|
|
41
49
|
items(): ReadonlyArray<IRunningSessions.IManager>;
|
|
50
|
+
private _added;
|
|
42
51
|
private _managers;
|
|
43
52
|
}
|
|
44
53
|
/**
|
|
45
54
|
* A class that exposes the running terminal and kernel sessions.
|
|
46
55
|
*/
|
|
47
|
-
export declare class RunningSessions extends
|
|
56
|
+
export declare class RunningSessions extends SidePanel {
|
|
48
57
|
/**
|
|
49
58
|
* Construct a new running widget.
|
|
50
59
|
*/
|
|
51
60
|
constructor(managers: IRunningSessionManagers, translator?: ITranslator);
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Dispose the resources held by the widget
|
|
63
|
+
*/
|
|
64
|
+
dispose(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Add a section for a new manager.
|
|
67
|
+
*
|
|
68
|
+
* @param managers Managers
|
|
69
|
+
* @param manager New manager
|
|
70
|
+
*/
|
|
71
|
+
protected addSection(managers: IRunningSessionManagers, manager: IRunningSessions.IManager): void;
|
|
72
|
+
protected managers: IRunningSessionManagers;
|
|
54
73
|
protected translator: ITranslator;
|
|
55
74
|
}
|
|
56
75
|
/**
|
package/lib/index.js
CHANGED
|
@@ -6,26 +6,19 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Dialog, showDialog } from '@jupyterlab/apputils';
|
|
8
8
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
9
|
-
import { closeIcon, ReactWidget, refreshIcon, ToolbarButtonComponent, UseSignal } from '@jupyterlab/ui-components';
|
|
9
|
+
import { closeIcon, PanelWithToolbar, ReactWidget, refreshIcon, SidePanel, ToolbarButton, ToolbarButtonComponent, UseSignal } from '@jupyterlab/ui-components';
|
|
10
10
|
import { Token } from '@lumino/coreutils';
|
|
11
11
|
import { DisposableDelegate } from '@lumino/disposable';
|
|
12
|
+
import { Signal } from '@lumino/signaling';
|
|
12
13
|
import * as React from 'react';
|
|
13
14
|
/**
|
|
14
15
|
* The class name added to a running widget.
|
|
15
16
|
*/
|
|
16
17
|
const RUNNING_CLASS = 'jp-RunningSessions';
|
|
17
|
-
/**
|
|
18
|
-
* The class name added to a running widget header.
|
|
19
|
-
*/
|
|
20
|
-
const HEADER_CLASS = 'jp-RunningSessions-header';
|
|
21
18
|
/**
|
|
22
19
|
* The class name added to the running terminal sessions section.
|
|
23
20
|
*/
|
|
24
21
|
const SECTION_CLASS = 'jp-RunningSessions-section';
|
|
25
|
-
/**
|
|
26
|
-
* The class name added to the running sessions section header.
|
|
27
|
-
*/
|
|
28
|
-
const SECTION_HEADER_CLASS = 'jp-RunningSessions-sectionHeader';
|
|
29
22
|
/**
|
|
30
23
|
* The class name added to a section container.
|
|
31
24
|
*/
|
|
@@ -60,8 +53,15 @@ const SHUTDOWN_ALL_BUTTON_CLASS = 'jp-RunningSessions-shutdownAll';
|
|
|
60
53
|
export const IRunningSessionManagers = new Token('@jupyterlab/running:IRunningSessionManagers');
|
|
61
54
|
export class RunningSessionManagers {
|
|
62
55
|
constructor() {
|
|
56
|
+
this._added = new Signal(this);
|
|
63
57
|
this._managers = [];
|
|
64
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Signal emitted when a new manager is added.
|
|
61
|
+
*/
|
|
62
|
+
get added() {
|
|
63
|
+
return this._added;
|
|
64
|
+
}
|
|
65
65
|
/**
|
|
66
66
|
* Add a running item manager.
|
|
67
67
|
*
|
|
@@ -70,6 +70,7 @@ export class RunningSessionManagers {
|
|
|
70
70
|
*/
|
|
71
71
|
add(manager) {
|
|
72
72
|
this._managers.push(manager);
|
|
73
|
+
this._added.emit(manager);
|
|
73
74
|
return new DisposableDelegate(() => {
|
|
74
75
|
const i = this._managers.indexOf(manager);
|
|
75
76
|
if (i > -1) {
|
|
@@ -99,11 +100,8 @@ function Item(props) {
|
|
|
99
100
|
detail && React.createElement("span", { className: ITEM_DETAIL_CLASS }, detail),
|
|
100
101
|
React.createElement(ToolbarButtonComponent, { className: SHUTDOWN_BUTTON_CLASS, icon: shutdownItemIcon, onClick: () => runningItem.shutdown(), tooltip: shutdownLabel })));
|
|
101
102
|
}
|
|
102
|
-
function ListView(props) {
|
|
103
|
-
return (React.createElement("ul", { className: LIST_CLASS }, props.runningItems.map((item, i) => (React.createElement(Item, { key: i, runningItem: item, shutdownLabel: props.shutdownLabel, shutdownItemIcon: props.shutdownItemIcon, translator: props.translator })))));
|
|
104
|
-
}
|
|
105
103
|
function List(props) {
|
|
106
|
-
return (React.createElement(
|
|
104
|
+
return (React.createElement("ul", { className: LIST_CLASS }, props.runningItems.map((item, i) => (React.createElement(Item, { key: i, runningItem: item, shutdownLabel: props.shutdownLabel, shutdownItemIcon: props.shutdownItemIcon, translator: props.translator })))));
|
|
107
105
|
}
|
|
108
106
|
/**
|
|
109
107
|
* The Section component contains the shared look and feel for an interactive
|
|
@@ -111,62 +109,108 @@ function List(props) {
|
|
|
111
109
|
*
|
|
112
110
|
* It is specialized for each based on its props.
|
|
113
111
|
*/
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
112
|
+
class Section extends PanelWithToolbar {
|
|
113
|
+
constructor(options) {
|
|
114
|
+
super();
|
|
115
|
+
this._manager = options.manager;
|
|
116
|
+
const translator = options.translator || nullTranslator;
|
|
117
|
+
const trans = translator.load('jupyterlab');
|
|
118
|
+
const shutdownAllLabel = options.manager.shutdownAllLabel || trans.__('Shut Down All');
|
|
119
|
+
const shutdownTitle = `${shutdownAllLabel}?`;
|
|
120
|
+
const shutdownAllConfirmationText = options.manager.shutdownAllConfirmationText ||
|
|
121
|
+
`${shutdownAllLabel} ${options.manager.name}`;
|
|
122
|
+
this.addClass(SECTION_CLASS);
|
|
123
|
+
this.title.label = options.manager.name;
|
|
124
|
+
function onShutdown() {
|
|
125
|
+
void showDialog({
|
|
126
|
+
title: shutdownTitle,
|
|
127
|
+
body: shutdownAllConfirmationText,
|
|
128
|
+
buttons: [
|
|
129
|
+
Dialog.cancelButton(),
|
|
130
|
+
Dialog.warnButton({ label: shutdownAllLabel })
|
|
131
|
+
]
|
|
132
|
+
}).then(result => {
|
|
133
|
+
if (result.button.accept) {
|
|
134
|
+
options.manager.shutdownAll();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const enabled = options.manager.running().length > 0;
|
|
139
|
+
this._button = new ToolbarButton({
|
|
140
|
+
label: shutdownAllLabel,
|
|
141
|
+
className: `${SHUTDOWN_ALL_BUTTON_CLASS} jp-mod-styled ${!enabled && 'jp-mod-disabled'}`,
|
|
142
|
+
enabled,
|
|
143
|
+
onClick: onShutdown
|
|
133
144
|
});
|
|
145
|
+
this._manager.runningChanged.connect(this._updateButton, this);
|
|
146
|
+
this.toolbar.addItem('shutdown-all', this._button);
|
|
147
|
+
this.addWidget(ReactWidget.create(React.createElement(UseSignal, { signal: options.manager.runningChanged }, () => {
|
|
148
|
+
return (React.createElement("div", { className: CONTAINER_CLASS },
|
|
149
|
+
React.createElement(List, { runningItems: options.manager.running(), shutdownLabel: options.manager.shutdownLabel, shutdownAllLabel: shutdownAllLabel, shutdownItemIcon: options.manager.shutdownItemIcon, translator: options.translator })));
|
|
150
|
+
})));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Dispose the resources held by the widget
|
|
154
|
+
*/
|
|
155
|
+
dispose() {
|
|
156
|
+
if (this.isDisposed) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
this._manager.runningChanged.disconnect(this._updateButton, this);
|
|
160
|
+
super.dispose();
|
|
161
|
+
}
|
|
162
|
+
_updateButton() {
|
|
163
|
+
var _a, _b;
|
|
164
|
+
this._button.enabled = this._manager.running().length > 0;
|
|
165
|
+
if (this._button.enabled) {
|
|
166
|
+
(_a = this._button.node
|
|
167
|
+
.querySelector('button')) === null || _a === void 0 ? void 0 : _a.classList.remove('jp-mod-disabled');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
(_b = this._button.node
|
|
171
|
+
.querySelector('button')) === null || _b === void 0 ? void 0 : _b.classList.add('jp-mod-disabled');
|
|
172
|
+
}
|
|
134
173
|
}
|
|
135
|
-
return (React.createElement("div", { className: SECTION_CLASS },
|
|
136
|
-
React.createElement(React.Fragment, null,
|
|
137
|
-
React.createElement("div", { className: `${SECTION_HEADER_CLASS} jp-stack-panel-header` },
|
|
138
|
-
React.createElement("h2", null, props.manager.name),
|
|
139
|
-
React.createElement(UseSignal, { signal: props.manager.runningChanged }, () => {
|
|
140
|
-
const disabled = props.manager.running().length === 0;
|
|
141
|
-
return (React.createElement("button", { className: `${SHUTDOWN_ALL_BUTTON_CLASS} jp-mod-styled ${disabled && 'jp-mod-disabled'}`, disabled: disabled, onClick: onShutdown }, shutdownAllLabel));
|
|
142
|
-
})),
|
|
143
|
-
React.createElement("div", { className: CONTAINER_CLASS },
|
|
144
|
-
React.createElement(List, { manager: props.manager, shutdownLabel: props.manager.shutdownLabel, shutdownAllLabel: shutdownAllLabel, translator: props.translator })))));
|
|
145
|
-
}
|
|
146
|
-
function RunningSessionsComponent(props) {
|
|
147
|
-
const translator = props.translator || nullTranslator;
|
|
148
|
-
const trans = translator.load('jupyterlab');
|
|
149
|
-
return (React.createElement(React.Fragment, null,
|
|
150
|
-
React.createElement("div", { className: HEADER_CLASS },
|
|
151
|
-
React.createElement(ToolbarButtonComponent, { tooltip: trans.__('Refresh List'), icon: refreshIcon, onClick: () => props.managers.items().forEach(manager => manager.refreshRunning()) })),
|
|
152
|
-
props.managers.items().map(manager => (React.createElement(Section, { key: manager.name, manager: manager, translator: props.translator })))));
|
|
153
174
|
}
|
|
154
175
|
/**
|
|
155
176
|
* A class that exposes the running terminal and kernel sessions.
|
|
156
177
|
*/
|
|
157
|
-
export class RunningSessions extends
|
|
178
|
+
export class RunningSessions extends SidePanel {
|
|
158
179
|
/**
|
|
159
180
|
* Construct a new running widget.
|
|
160
181
|
*/
|
|
161
182
|
constructor(managers, translator) {
|
|
162
183
|
super();
|
|
163
184
|
this.managers = managers;
|
|
164
|
-
this.translator = translator
|
|
165
|
-
|
|
185
|
+
this.translator = translator !== null && translator !== void 0 ? translator : nullTranslator;
|
|
186
|
+
const trans = this.translator.load('jupyterlab');
|
|
166
187
|
this.addClass(RUNNING_CLASS);
|
|
188
|
+
this.toolbar.addItem('refresh', new ToolbarButton({
|
|
189
|
+
tooltip: trans.__('Refresh List'),
|
|
190
|
+
icon: refreshIcon,
|
|
191
|
+
onClick: () => managers.items().forEach(manager => manager.refreshRunning())
|
|
192
|
+
}));
|
|
193
|
+
managers.items().forEach(manager => this.addSection(managers, manager));
|
|
194
|
+
managers.added.connect(this.addSection, this);
|
|
167
195
|
}
|
|
168
|
-
|
|
169
|
-
|
|
196
|
+
/**
|
|
197
|
+
* Dispose the resources held by the widget
|
|
198
|
+
*/
|
|
199
|
+
dispose() {
|
|
200
|
+
if (this.isDisposed) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
this.managers.added.disconnect(this.addSection, this);
|
|
204
|
+
super.dispose();
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Add a section for a new manager.
|
|
208
|
+
*
|
|
209
|
+
* @param managers Managers
|
|
210
|
+
* @param manager New manager
|
|
211
|
+
*/
|
|
212
|
+
addSection(managers, manager) {
|
|
213
|
+
this.addWidget(new Section({ manager, translator: this.translator }));
|
|
170
214
|
}
|
|
171
215
|
}
|
|
172
216
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAC3D;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,SAAS,EAET,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAe,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/running",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.14",
|
|
4
4
|
"description": "JupyterLab - Running Sessions Panel",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"watch": "tsc -b --watch"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@jupyterlab/apputils": "^4.0.0-alpha.
|
|
40
|
-
"@jupyterlab/translation": "^4.0.0-alpha.
|
|
41
|
-
"@jupyterlab/ui-components": "^4.0.0-alpha.
|
|
42
|
-
"@lumino/coreutils": "^
|
|
43
|
-
"@lumino/disposable": "^
|
|
44
|
-
"@lumino/signaling": "^
|
|
39
|
+
"@jupyterlab/apputils": "^4.0.0-alpha.14",
|
|
40
|
+
"@jupyterlab/translation": "^4.0.0-alpha.14",
|
|
41
|
+
"@jupyterlab/ui-components": "^4.0.0-alpha.29",
|
|
42
|
+
"@lumino/coreutils": "^2.0.0-alpha.6",
|
|
43
|
+
"@lumino/disposable": "^2.0.0-alpha.6",
|
|
44
|
+
"@lumino/signaling": "^2.0.0-alpha.6",
|
|
45
45
|
"react": "^17.0.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
package/style/base.css
CHANGED
|
@@ -8,10 +8,7 @@
|
|
|
8
8
|
|----------------------------------------------------------------------------*/
|
|
9
9
|
|
|
10
10
|
:root {
|
|
11
|
-
--jp-private-running-button-height: 28px;
|
|
12
|
-
--jp-private-running-button-width: 48px;
|
|
13
11
|
--jp-private-running-item-height: 24px;
|
|
14
|
-
--jp-private-running-shutdown-button-height: 24px;
|
|
15
12
|
}
|
|
16
13
|
|
|
17
14
|
/*-----------------------------------------------------------------------------
|
|
@@ -31,46 +28,16 @@
|
|
|
31
28
|
font-size: var(--jp-ui-font-size1);
|
|
32
29
|
}
|
|
33
30
|
|
|
34
|
-
.jp-RunningSessions-
|
|
35
|
-
flex: 0 0 auto;
|
|
36
|
-
display: flex;
|
|
37
|
-
flex-direction: row;
|
|
31
|
+
.jp-RunningSessions > .jp-SidePanel-toolbar {
|
|
38
32
|
justify-content: flex-end;
|
|
39
33
|
}
|
|
40
34
|
|
|
41
35
|
.jp-RunningSessions-section {
|
|
42
|
-
|
|
43
|
-
flex: 0 1 auto;
|
|
44
|
-
flex-direction: column;
|
|
36
|
+
min-height: 50px;
|
|
45
37
|
overflow: auto;
|
|
46
38
|
}
|
|
47
39
|
|
|
48
|
-
.jp-RunningSessions-sectionHeader {
|
|
49
|
-
flex: 0 0 auto;
|
|
50
|
-
align-items: center;
|
|
51
|
-
justify-content: space-between;
|
|
52
|
-
height: 28px;
|
|
53
|
-
display: flex;
|
|
54
|
-
border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
|
|
55
|
-
margin-top: 8px;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.jp-RunningSessions-sectionHeader h2 {
|
|
59
|
-
flex: 0 0 auto;
|
|
60
|
-
font-weight: 600;
|
|
61
|
-
text-transform: uppercase;
|
|
62
|
-
letter-spacing: 1px;
|
|
63
|
-
font-size: var(--jp-ui-font-size0);
|
|
64
|
-
padding: 8px 8px 8px 12px;
|
|
65
|
-
margin: 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.jp-RunningSessions-sectionHeader .jp-ToolbarButtonComponent {
|
|
69
|
-
flex: 0 0 auto;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
40
|
.jp-RunningSessions-sectionContainer {
|
|
73
|
-
flex: 1 1 auto;
|
|
74
41
|
margin: 0;
|
|
75
42
|
padding: 0;
|
|
76
43
|
overflow: auto;
|
|
@@ -123,8 +90,6 @@
|
|
|
123
90
|
|
|
124
91
|
.jp-RunningSessions-item:not(:hover) .jp-RunningSessions-itemShutdown {
|
|
125
92
|
visibility: hidden;
|
|
126
|
-
|
|
127
|
-
/* display: none; */
|
|
128
93
|
}
|
|
129
94
|
|
|
130
95
|
.jp-RunningSessions-sectionList
|
|
@@ -133,32 +98,29 @@
|
|
|
133
98
|
background: var(--jp-layout-color3);
|
|
134
99
|
}
|
|
135
100
|
|
|
136
|
-
.jp-RunningSessions-shutdownAll.jp-mod-styled {
|
|
137
|
-
margin: 0 8px;
|
|
101
|
+
.jp-RunningSessions-shutdownAll.jp-mod-styled > span {
|
|
138
102
|
color: var(--jp-warn-color1);
|
|
139
103
|
background-color: transparent;
|
|
140
|
-
height: var(--jp-private-running-shutdown-button-height);
|
|
141
|
-
line-height: var(--jp-private-running-shutdown-button-height);
|
|
142
104
|
border-radius: 2px;
|
|
143
105
|
overflow: hidden;
|
|
144
106
|
white-space: nowrap;
|
|
145
107
|
text-overflow: ellipsis;
|
|
146
108
|
}
|
|
147
109
|
|
|
148
|
-
.jp-RunningSessions-shutdownAll.jp-mod-styled:hover {
|
|
110
|
+
.jp-RunningSessions-shutdownAll.jp-mod-styled:hover > span {
|
|
149
111
|
background-color: var(--jp-layout-color2);
|
|
150
112
|
}
|
|
151
113
|
|
|
152
|
-
.jp-RunningSessions-shutdownAll.jp-mod-styled:focus {
|
|
114
|
+
.jp-RunningSessions-shutdownAll.jp-mod-styled:focus > span {
|
|
153
115
|
border: none;
|
|
154
116
|
box-shadow: none;
|
|
155
117
|
background-color: var(--jp-layout-color2);
|
|
156
118
|
}
|
|
157
119
|
|
|
158
|
-
.jp-RunningSessions-shutdownAll.jp-mod-styled.jp-mod-disabled {
|
|
120
|
+
.jp-RunningSessions-shutdownAll.jp-mod-styled.jp-mod-disabled > span {
|
|
159
121
|
color: var(--jp-ui-font-color2);
|
|
160
122
|
}
|
|
161
123
|
|
|
162
|
-
.jp-RunningSessions-shutdownAll.jp-mod-styled.jp-mod-disabled:hover {
|
|
124
|
+
.jp-RunningSessions-shutdownAll.jp-mod-styled.jp-mod-disabled:hover > span {
|
|
163
125
|
background: none;
|
|
164
126
|
}
|