@jupyterlab/apputils-extension 4.0.4 → 4.1.0-alpha.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.
- package/lib/announcements.js +1 -1
- package/lib/settingconnector.js +3 -3
- package/lib/settingconnector.js.map +1 -1
- package/lib/themesplugins.js +79 -0
- package/lib/themesplugins.js.map +1 -1
- package/package.json +21 -21
- package/schema/themes.json +23 -1
- package/src/announcements.ts +1 -1
- package/src/settingconnector.ts +3 -3
- package/src/themesplugins.ts +89 -0
package/lib/announcements.js
CHANGED
|
@@ -10,7 +10,7 @@ import { ITranslator, nullTranslator } from '@jupyterlab/translation';
|
|
|
10
10
|
const COMMAND_HELP_OPEN = 'help:open';
|
|
11
11
|
const NEWS_API_URL = '/lab/api/news';
|
|
12
12
|
const UPDATE_API_URL = '/lab/api/update';
|
|
13
|
-
const PRIVACY_URL = 'https://jupyterlab.readthedocs.io/en/
|
|
13
|
+
const PRIVACY_URL = 'https://jupyterlab.readthedocs.io/en/latest/privacy_policies.html';
|
|
14
14
|
/**
|
|
15
15
|
* Call the announcement API
|
|
16
16
|
*
|
package/lib/settingconnector.js
CHANGED
|
@@ -32,7 +32,7 @@ export class SettingConnector extends DataConnector {
|
|
|
32
32
|
return throttlers[id].invoke();
|
|
33
33
|
}
|
|
34
34
|
async list(query = 'all') {
|
|
35
|
-
const {
|
|
35
|
+
const { isDisabled } = PageConfig.Extension;
|
|
36
36
|
const { ids, values } = await this._connector.list(query === 'ids' ? 'ids' : undefined);
|
|
37
37
|
if (query === 'all') {
|
|
38
38
|
return { ids, values };
|
|
@@ -41,8 +41,8 @@ export class SettingConnector extends DataConnector {
|
|
|
41
41
|
return { ids };
|
|
42
42
|
}
|
|
43
43
|
return {
|
|
44
|
-
ids: ids.filter(id => !
|
|
45
|
-
values: values.filter(({ id }) => !
|
|
44
|
+
ids: ids.filter(id => !isDisabled(id)),
|
|
45
|
+
values: values.filter(({ id }) => !isDisabled(id))
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
async save(id, raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingconnector.js","sourceRoot":"","sources":["../src/settingconnector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAGrC;IACC,YAAY,SAA2D;QACrE,KAAK,EAAE,CAAC;QAkDF,gBAAW,GAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAjDtE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,EAAU;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE;YACvB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACtE;QACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAMD,KAAK,CAAC,IAAI,CACR,QAAkC,KAAK;QAEvC,MAAM,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"settingconnector.js","sourceRoot":"","sources":["../src/settingconnector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAGrC;IACC,YAAY,SAA2D;QACrE,KAAK,EAAE,CAAC;QAkDF,gBAAW,GAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAjDtE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,EAAU;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE;YACvB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACtE;QACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAMD,KAAK,CAAC,IAAI,CACR,QAAkC,KAAK;QAEvC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QAC5C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAChD,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACpC,CAAC;QAEF,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SACxB;QAED,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC;SAChB;QAED,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,GAAW;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CAIF"}
|
package/lib/themesplugins.js
CHANGED
|
@@ -12,6 +12,9 @@ import scrollbarStyleText from '../style/scrollbar.raw.css';
|
|
|
12
12
|
var CommandIDs;
|
|
13
13
|
(function (CommandIDs) {
|
|
14
14
|
CommandIDs.changeTheme = 'apputils:change-theme';
|
|
15
|
+
CommandIDs.changePreferredLightTheme = 'apputils:change-light-theme';
|
|
16
|
+
CommandIDs.changePreferredDarkTheme = 'apputils:change-dark-theme';
|
|
17
|
+
CommandIDs.toggleAdaptiveTheme = 'apputils:adaptive-theme';
|
|
15
18
|
CommandIDs.themeScrollbars = 'apputils:theme-scrollbars';
|
|
16
19
|
CommandIDs.changeFont = 'apputils:change-font';
|
|
17
20
|
CommandIDs.incrFontSize = 'apputils:incr-font-size';
|
|
@@ -90,9 +93,63 @@ export const themesPlugin = {
|
|
|
90
93
|
if (theme === manager.theme) {
|
|
91
94
|
return;
|
|
92
95
|
}
|
|
96
|
+
// Disable adaptive theme if users decide to change the theme when adaptive theme is on
|
|
97
|
+
if (manager.isToggledAdaptiveTheme()) {
|
|
98
|
+
return manager.toggleAdaptiveTheme();
|
|
99
|
+
}
|
|
93
100
|
return manager.setTheme(theme);
|
|
94
101
|
}
|
|
95
102
|
});
|
|
103
|
+
commands.addCommand(CommandIDs.changePreferredLightTheme, {
|
|
104
|
+
label: args => {
|
|
105
|
+
if (args.theme === undefined) {
|
|
106
|
+
return trans.__('Switch to the provided light `theme`.');
|
|
107
|
+
}
|
|
108
|
+
const theme = args['theme'];
|
|
109
|
+
const displayName = manager.getDisplayName(theme);
|
|
110
|
+
return args['isPalette']
|
|
111
|
+
? trans.__('Set Preferred Light Theme: %1', displayName)
|
|
112
|
+
: displayName;
|
|
113
|
+
},
|
|
114
|
+
isToggled: args => args['theme'] === manager.preferredLightTheme,
|
|
115
|
+
execute: args => {
|
|
116
|
+
const theme = args['theme'];
|
|
117
|
+
if (theme === manager.preferredLightTheme) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
return manager.setPreferredLightTheme(theme);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
commands.addCommand(CommandIDs.changePreferredDarkTheme, {
|
|
124
|
+
label: args => {
|
|
125
|
+
if (args.theme === undefined) {
|
|
126
|
+
return trans.__('Switch to the provided dark `theme`.');
|
|
127
|
+
}
|
|
128
|
+
const theme = args['theme'];
|
|
129
|
+
const displayName = manager.getDisplayName(theme);
|
|
130
|
+
return args['isPalette']
|
|
131
|
+
? trans.__('Set Preferred Dark Theme: %1', displayName)
|
|
132
|
+
: displayName;
|
|
133
|
+
},
|
|
134
|
+
isToggled: args => args['theme'] === manager.preferredDarkTheme,
|
|
135
|
+
execute: args => {
|
|
136
|
+
const theme = args['theme'];
|
|
137
|
+
if (theme === manager.preferredDarkTheme) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
return manager.setPreferredDarkTheme(theme);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
commands.addCommand(CommandIDs.toggleAdaptiveTheme, {
|
|
144
|
+
// Avoid lengthy option text in menu
|
|
145
|
+
label: args => args['isPalette']
|
|
146
|
+
? trans.__('Synchronize Styling Theme with System Settings')
|
|
147
|
+
: trans.__('Synchronize with System Settings'),
|
|
148
|
+
isToggled: () => manager.isToggledAdaptiveTheme(),
|
|
149
|
+
execute: () => {
|
|
150
|
+
manager.toggleAdaptiveTheme().catch(console.warn);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
96
153
|
commands.addCommand(CommandIDs.themeScrollbars, {
|
|
97
154
|
label: trans.__('Theme Scrollbars'),
|
|
98
155
|
isToggled: () => manager.isToggledThemeScrollbars(),
|
|
@@ -185,6 +242,28 @@ export const themesPaletteMenuPlugin = {
|
|
|
185
242
|
manager.themes.forEach(theme => {
|
|
186
243
|
palette.addItem({ command, args: { isPalette, theme }, category });
|
|
187
244
|
});
|
|
245
|
+
// choose preferred light theme
|
|
246
|
+
manager.themes.forEach(theme => {
|
|
247
|
+
palette.addItem({
|
|
248
|
+
command: CommandIDs.changePreferredLightTheme,
|
|
249
|
+
args: { isPalette, theme },
|
|
250
|
+
category
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
// choose preferred dark theme
|
|
254
|
+
manager.themes.forEach(theme => {
|
|
255
|
+
palette.addItem({
|
|
256
|
+
command: CommandIDs.changePreferredDarkTheme,
|
|
257
|
+
args: { isPalette, theme },
|
|
258
|
+
category
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
// toggle adaptive theme
|
|
262
|
+
palette.addItem({
|
|
263
|
+
command: CommandIDs.toggleAdaptiveTheme,
|
|
264
|
+
args: { isPalette },
|
|
265
|
+
category
|
|
266
|
+
});
|
|
188
267
|
// toggle scrollbar theming
|
|
189
268
|
palette.addItem({ command: CommandIDs.themeScrollbars, category });
|
|
190
269
|
// increase/decrease code font size
|
package/lib/themesplugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themesplugins.js","sourceRoot":"","sources":["../src/themesplugins.ts"],"names":[],"mappings":"AAAA;;;+EAG+E;AAE/E,OAAO,EACL,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAE5D,IAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"themesplugins.js","sourceRoot":"","sources":["../src/themesplugins.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/apputils-extension",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.1.0-alpha.1",
|
|
4
4
|
"description": "JupyterLab - Application Utilities Extension",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -38,26 +38,26 @@
|
|
|
38
38
|
"watch": "tsc -b --watch"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@jupyterlab/application": "^4.0.
|
|
42
|
-
"@jupyterlab/apputils": "^4.1
|
|
43
|
-
"@jupyterlab/coreutils": "^6.0.
|
|
44
|
-
"@jupyterlab/docregistry": "^4.0.
|
|
45
|
-
"@jupyterlab/filebrowser": "^4.0.
|
|
46
|
-
"@jupyterlab/mainmenu": "^4.0.
|
|
47
|
-
"@jupyterlab/rendermime-interfaces": "^3.8.
|
|
48
|
-
"@jupyterlab/services": "^7.0.
|
|
49
|
-
"@jupyterlab/settingregistry": "^4.0.
|
|
50
|
-
"@jupyterlab/statedb": "^4.0.
|
|
51
|
-
"@jupyterlab/statusbar": "^4.0.
|
|
52
|
-
"@jupyterlab/translation": "^4.0.
|
|
53
|
-
"@jupyterlab/ui-components": "^4.0.
|
|
54
|
-
"@lumino/algorithm": "^2.0.
|
|
55
|
-
"@lumino/commands": "^2.1.
|
|
56
|
-
"@lumino/coreutils": "^2.1.
|
|
57
|
-
"@lumino/disposable": "^2.1.
|
|
58
|
-
"@lumino/domutils": "^2.0.
|
|
59
|
-
"@lumino/polling": "^2.1.
|
|
60
|
-
"@lumino/widgets": "^2.
|
|
41
|
+
"@jupyterlab/application": "^4.1.0-alpha.1",
|
|
42
|
+
"@jupyterlab/apputils": "^4.2.0-alpha.1",
|
|
43
|
+
"@jupyterlab/coreutils": "^6.1.0-alpha.1",
|
|
44
|
+
"@jupyterlab/docregistry": "^4.1.0-alpha.1",
|
|
45
|
+
"@jupyterlab/filebrowser": "^4.1.0-alpha.1",
|
|
46
|
+
"@jupyterlab/mainmenu": "^4.1.0-alpha.1",
|
|
47
|
+
"@jupyterlab/rendermime-interfaces": "^3.8.3-alpha.0",
|
|
48
|
+
"@jupyterlab/services": "^7.1.0-alpha.1",
|
|
49
|
+
"@jupyterlab/settingregistry": "^4.1.0-alpha.1",
|
|
50
|
+
"@jupyterlab/statedb": "^4.1.0-alpha.1",
|
|
51
|
+
"@jupyterlab/statusbar": "^4.1.0-alpha.1",
|
|
52
|
+
"@jupyterlab/translation": "^4.1.0-alpha.1",
|
|
53
|
+
"@jupyterlab/ui-components": "^4.1.0-alpha.1",
|
|
54
|
+
"@lumino/algorithm": "^2.0.1",
|
|
55
|
+
"@lumino/commands": "^2.1.3",
|
|
56
|
+
"@lumino/coreutils": "^2.1.2",
|
|
57
|
+
"@lumino/disposable": "^2.1.2",
|
|
58
|
+
"@lumino/domutils": "^2.0.1",
|
|
59
|
+
"@lumino/polling": "^2.1.2",
|
|
60
|
+
"@lumino/widgets": "^2.3.0",
|
|
61
61
|
"react": "^18.2.0",
|
|
62
62
|
"react-dom": "^18.2.0",
|
|
63
63
|
"react-toastify": "^9.0.8"
|
package/schema/themes.json
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"id": "jp-mainmenu-settings-apputilstheme",
|
|
13
13
|
"label": "Theme",
|
|
14
14
|
"items": [
|
|
15
|
+
{ "type": "separator" },
|
|
16
|
+
{
|
|
17
|
+
"command": "apputils:adaptive-theme"
|
|
18
|
+
},
|
|
15
19
|
{ "type": "separator" },
|
|
16
20
|
{
|
|
17
21
|
"command": "apputils:theme-scrollbars"
|
|
@@ -105,9 +109,27 @@
|
|
|
105
109
|
"theme": {
|
|
106
110
|
"type": "string",
|
|
107
111
|
"title": "Selected Theme",
|
|
108
|
-
"description": "Application-level visual styling theme",
|
|
112
|
+
"description": "Application-level visual styling theme. Ignored when Adaptive Theme is enabled.",
|
|
109
113
|
"default": "JupyterLab Light"
|
|
110
114
|
},
|
|
115
|
+
"adaptive-theme": {
|
|
116
|
+
"type": "boolean",
|
|
117
|
+
"title": "Adaptive Theme",
|
|
118
|
+
"description": "Synchronize visual styling theme with system settings",
|
|
119
|
+
"default": false
|
|
120
|
+
},
|
|
121
|
+
"preferred-light-theme": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"title": "Preferred Light Theme",
|
|
124
|
+
"description": "Application-level light visual styling theme. Ignored when Adaptive Theme is disabled.",
|
|
125
|
+
"default": "JupyterLab Light"
|
|
126
|
+
},
|
|
127
|
+
"preferred-dark-theme": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"title": "Preferred Dark Theme",
|
|
130
|
+
"description": "Application-level dark visual styling theme. Ignored when Adaptive Theme is disabled.",
|
|
131
|
+
"default": "JupyterLab Dark"
|
|
132
|
+
},
|
|
111
133
|
"theme-scrollbars": {
|
|
112
134
|
"type": "boolean",
|
|
113
135
|
"title": "Scrollbar Theming",
|
package/src/announcements.ts
CHANGED
|
@@ -17,7 +17,7 @@ const COMMAND_HELP_OPEN = 'help:open';
|
|
|
17
17
|
const NEWS_API_URL = '/lab/api/news';
|
|
18
18
|
const UPDATE_API_URL = '/lab/api/update';
|
|
19
19
|
const PRIVACY_URL =
|
|
20
|
-
'https://jupyterlab.readthedocs.io/en/
|
|
20
|
+
'https://jupyterlab.readthedocs.io/en/latest/privacy_policies.html';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Call the announcement API
|
package/src/settingconnector.ts
CHANGED
|
@@ -45,7 +45,7 @@ export class SettingConnector extends DataConnector<
|
|
|
45
45
|
async list(
|
|
46
46
|
query: 'active' | 'all' | 'ids' = 'all'
|
|
47
47
|
): Promise<{ ids: string[]; values?: ISettingRegistry.IPlugin[] }> {
|
|
48
|
-
const {
|
|
48
|
+
const { isDisabled } = PageConfig.Extension;
|
|
49
49
|
const { ids, values } = await this._connector.list(
|
|
50
50
|
query === 'ids' ? 'ids' : undefined
|
|
51
51
|
);
|
|
@@ -59,8 +59,8 @@ export class SettingConnector extends DataConnector<
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
return {
|
|
62
|
-
ids: ids.filter(id => !
|
|
63
|
-
values: values.filter(({ id }) => !
|
|
62
|
+
ids: ids.filter(id => !isDisabled(id)),
|
|
63
|
+
values: values.filter(({ id }) => !isDisabled(id))
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
|
package/src/themesplugins.ts
CHANGED
|
@@ -23,6 +23,12 @@ import scrollbarStyleText from '../style/scrollbar.raw.css';
|
|
|
23
23
|
namespace CommandIDs {
|
|
24
24
|
export const changeTheme = 'apputils:change-theme';
|
|
25
25
|
|
|
26
|
+
export const changePreferredLightTheme = 'apputils:change-light-theme';
|
|
27
|
+
|
|
28
|
+
export const changePreferredDarkTheme = 'apputils:change-dark-theme';
|
|
29
|
+
|
|
30
|
+
export const toggleAdaptiveTheme = 'apputils:adaptive-theme';
|
|
31
|
+
|
|
26
32
|
export const themeScrollbars = 'apputils:theme-scrollbars';
|
|
27
33
|
|
|
28
34
|
export const changeFont = 'apputils:change-font';
|
|
@@ -123,10 +129,68 @@ export const themesPlugin: JupyterFrontEndPlugin<IThemeManager> = {
|
|
|
123
129
|
if (theme === manager.theme) {
|
|
124
130
|
return;
|
|
125
131
|
}
|
|
132
|
+
// Disable adaptive theme if users decide to change the theme when adaptive theme is on
|
|
133
|
+
if (manager.isToggledAdaptiveTheme()) {
|
|
134
|
+
return manager.toggleAdaptiveTheme();
|
|
135
|
+
}
|
|
126
136
|
return manager.setTheme(theme);
|
|
127
137
|
}
|
|
128
138
|
});
|
|
129
139
|
|
|
140
|
+
commands.addCommand(CommandIDs.changePreferredLightTheme, {
|
|
141
|
+
label: args => {
|
|
142
|
+
if (args.theme === undefined) {
|
|
143
|
+
return trans.__('Switch to the provided light `theme`.');
|
|
144
|
+
}
|
|
145
|
+
const theme = args['theme'] as string;
|
|
146
|
+
const displayName = manager.getDisplayName(theme);
|
|
147
|
+
return args['isPalette']
|
|
148
|
+
? trans.__('Set Preferred Light Theme: %1', displayName)
|
|
149
|
+
: displayName;
|
|
150
|
+
},
|
|
151
|
+
isToggled: args => args['theme'] === manager.preferredLightTheme,
|
|
152
|
+
execute: args => {
|
|
153
|
+
const theme = args['theme'] as string;
|
|
154
|
+
if (theme === manager.preferredLightTheme) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
return manager.setPreferredLightTheme(theme);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
commands.addCommand(CommandIDs.changePreferredDarkTheme, {
|
|
162
|
+
label: args => {
|
|
163
|
+
if (args.theme === undefined) {
|
|
164
|
+
return trans.__('Switch to the provided dark `theme`.');
|
|
165
|
+
}
|
|
166
|
+
const theme = args['theme'] as string;
|
|
167
|
+
const displayName = manager.getDisplayName(theme);
|
|
168
|
+
return args['isPalette']
|
|
169
|
+
? trans.__('Set Preferred Dark Theme: %1', displayName)
|
|
170
|
+
: displayName;
|
|
171
|
+
},
|
|
172
|
+
isToggled: args => args['theme'] === manager.preferredDarkTheme,
|
|
173
|
+
execute: args => {
|
|
174
|
+
const theme = args['theme'] as string;
|
|
175
|
+
if (theme === manager.preferredDarkTheme) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
return manager.setPreferredDarkTheme(theme);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
commands.addCommand(CommandIDs.toggleAdaptiveTheme, {
|
|
183
|
+
// Avoid lengthy option text in menu
|
|
184
|
+
label: args =>
|
|
185
|
+
args['isPalette']
|
|
186
|
+
? trans.__('Synchronize Styling Theme with System Settings')
|
|
187
|
+
: trans.__('Synchronize with System Settings'),
|
|
188
|
+
isToggled: () => manager.isToggledAdaptiveTheme(),
|
|
189
|
+
execute: () => {
|
|
190
|
+
manager.toggleAdaptiveTheme().catch(console.warn);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
|
|
130
194
|
commands.addCommand(CommandIDs.themeScrollbars, {
|
|
131
195
|
label: trans.__('Theme Scrollbars'),
|
|
132
196
|
isToggled: () => manager.isToggledThemeScrollbars(),
|
|
@@ -237,6 +301,31 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin<void> = {
|
|
|
237
301
|
palette.addItem({ command, args: { isPalette, theme }, category });
|
|
238
302
|
});
|
|
239
303
|
|
|
304
|
+
// choose preferred light theme
|
|
305
|
+
manager.themes.forEach(theme => {
|
|
306
|
+
palette.addItem({
|
|
307
|
+
command: CommandIDs.changePreferredLightTheme,
|
|
308
|
+
args: { isPalette, theme },
|
|
309
|
+
category
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
// choose preferred dark theme
|
|
314
|
+
manager.themes.forEach(theme => {
|
|
315
|
+
palette.addItem({
|
|
316
|
+
command: CommandIDs.changePreferredDarkTheme,
|
|
317
|
+
args: { isPalette, theme },
|
|
318
|
+
category
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// toggle adaptive theme
|
|
323
|
+
palette.addItem({
|
|
324
|
+
command: CommandIDs.toggleAdaptiveTheme,
|
|
325
|
+
args: { isPalette },
|
|
326
|
+
category
|
|
327
|
+
});
|
|
328
|
+
|
|
240
329
|
// toggle scrollbar theming
|
|
241
330
|
palette.addItem({ command: CommandIDs.themeScrollbars, category });
|
|
242
331
|
|