@codingame/monaco-vscode-walkthrough-service-override 9.0.3 → 10.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.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +50 -39
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +84 -62
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +101 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +2 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +6 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +5 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +21 -17
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +182 -150
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/vs_code_editor_walkthrough.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughActions.js +8 -10
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +9 -8
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +10 -12
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.js +2 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
|
@@ -10,7 +10,6 @@ import { equals, coalesce } from 'vscode/vscode/vs/base/common/arrays';
|
|
|
10
10
|
import { Throttler, Delayer } from 'vscode/vscode/vs/base/common/async';
|
|
11
11
|
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
12
12
|
import { onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
|
|
13
|
-
import { KeyCode } from 'vscode/vscode/vs/base/common/keyCodes';
|
|
14
13
|
import { splitRecentLabel } from 'vscode/vscode/vs/base/common/labels';
|
|
15
14
|
import { DisposableStore, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
16
15
|
import { parse } from 'vscode/vscode/vs/base/common/marshalling';
|
|
@@ -26,23 +25,21 @@ import { MarkdownRenderer } from 'vscode/vscode/vs/editor/browser/widget/markdow
|
|
|
26
25
|
import { localize } from 'vscode/vscode/vs/nls';
|
|
27
26
|
import { IAccessibilityService } from 'vscode/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
28
27
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
29
|
-
import { ConfigurationTarget } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
30
28
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
31
29
|
import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
32
30
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
33
31
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
34
32
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
35
33
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
36
|
-
import { Verbosity } from 'vscode/vscode/vs/platform/label/common/label';
|
|
37
34
|
import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.service';
|
|
38
35
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
39
36
|
import { Link } from 'vscode/vscode/vs/platform/opener/browser/link';
|
|
40
37
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
|
|
41
38
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
42
39
|
import { IQuickInputService } from 'vscode/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
43
|
-
import { WillSaveStateReason
|
|
40
|
+
import { WillSaveStateReason } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
44
41
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
45
|
-
import { firstSessionDateStorageKey
|
|
42
|
+
import { firstSessionDateStorageKey } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
46
43
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
47
44
|
import { getTelemetryLevel } from 'vscode/vscode/vs/platform/telemetry/common/telemetryUtils';
|
|
48
45
|
import { defaultToggleStyles, defaultButtonStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
|
|
@@ -63,12 +60,12 @@ import { hiddenEntriesConfigurationKey, parseDescription } from './gettingStarte
|
|
|
63
60
|
import { IWalkthroughsService } from 'vscode/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
|
|
64
61
|
import { restoreWalkthroughsConfigurationKey } from './startupPage.js';
|
|
65
62
|
import { startEntries } from '../common/gettingStartedContent.js';
|
|
66
|
-
import { GroupDirection, GroupsOrder } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService';
|
|
67
63
|
import { IEditorGroupsService } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
68
64
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
69
65
|
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
|
|
70
66
|
import { IWorkbenchThemeService } from 'vscode/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
|
|
71
67
|
import { GettingStartedIndexList } from './gettingStartedList.js';
|
|
68
|
+
import { AccessibleViewAction } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
|
|
72
69
|
|
|
73
70
|
var GettingStartedPage_1;
|
|
74
71
|
const SLIDE_TRANSITION_TIME_MS = 250;
|
|
@@ -124,7 +121,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
124
121
|
this.container = $('.gettingStartedContainer', {
|
|
125
122
|
role: 'document',
|
|
126
123
|
tabindex: 0,
|
|
127
|
-
'aria-label': ( localize(
|
|
124
|
+
'aria-label': ( localize(7546, "Overview of how to get up to speed with your editor."))
|
|
128
125
|
});
|
|
129
126
|
this.stepMediaComponent = $('.getting-started-media');
|
|
130
127
|
this.stepMediaComponent.id = generateUuid();
|
|
@@ -222,7 +219,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
222
219
|
return;
|
|
223
220
|
}
|
|
224
221
|
const restoreData = { folder: UNKNOWN_EMPTY_WINDOW_WORKSPACE.id, category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
|
|
225
|
-
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData),
|
|
222
|
+
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
|
|
226
223
|
}));
|
|
227
224
|
}
|
|
228
225
|
shouldAnimate() {
|
|
@@ -273,8 +270,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
273
270
|
const keyboardEvent = ( (new StandardKeyboardEvent(e)));
|
|
274
271
|
e.stopPropagation();
|
|
275
272
|
switch (keyboardEvent.keyCode) {
|
|
276
|
-
case
|
|
277
|
-
case
|
|
273
|
+
case 3 :
|
|
274
|
+
case 10 :
|
|
278
275
|
this.runDispatchCommand(command, argument);
|
|
279
276
|
return;
|
|
280
277
|
}
|
|
@@ -345,6 +342,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
345
342
|
case 'nextSection': {
|
|
346
343
|
const next = this.currentWalkthrough?.next;
|
|
347
344
|
if (next) {
|
|
345
|
+
this.prevWalkthrough = this.currentWalkthrough;
|
|
348
346
|
this.scrollToCategory(next);
|
|
349
347
|
}
|
|
350
348
|
else {
|
|
@@ -401,7 +399,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
401
399
|
label: x.title,
|
|
402
400
|
detail: x.description,
|
|
403
401
|
description: x.source,
|
|
404
|
-
})))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(
|
|
402
|
+
})))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(7547, "Open Walkthrough...")) });
|
|
405
403
|
if (selection) {
|
|
406
404
|
this.runDispatchCommand('selectCategory', selection.id);
|
|
407
405
|
}
|
|
@@ -409,12 +407,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
409
407
|
getHiddenCategories() {
|
|
410
408
|
return (
|
|
411
409
|
(new Set(
|
|
412
|
-
JSON.parse(this.storageService.get(hiddenEntriesConfigurationKey,
|
|
410
|
+
JSON.parse(this.storageService.get(hiddenEntriesConfigurationKey, 0 , '[]'))
|
|
413
411
|
))
|
|
414
412
|
);
|
|
415
413
|
}
|
|
416
414
|
setHiddenCategories(hidden) {
|
|
417
|
-
this.storageService.store(hiddenEntriesConfigurationKey, JSON.stringify(hidden),
|
|
415
|
+
this.storageService.store(hiddenEntriesConfigurationKey, JSON.stringify(hidden), 0 , 0 );
|
|
418
416
|
}
|
|
419
417
|
async buildMediaComponent(stepId, forceRebuild = false) {
|
|
420
418
|
if (!this.currentWalkthrough) {
|
|
@@ -565,7 +563,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
565
563
|
const themeId = message.slice('setTheme:'.length);
|
|
566
564
|
const theme = (await this.themeService.getColorThemes()).find(theme => theme.settingsId === themeId);
|
|
567
565
|
if (theme) {
|
|
568
|
-
this.themeService.setColorTheme(theme.id,
|
|
566
|
+
this.themeService.setColorTheme(theme.id, 2 );
|
|
569
567
|
}
|
|
570
568
|
}
|
|
571
569
|
else {
|
|
@@ -583,6 +581,16 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
583
581
|
this.selectStep(toSelect);
|
|
584
582
|
}
|
|
585
583
|
}
|
|
584
|
+
provideScreenReaderUpdate() {
|
|
585
|
+
if (this.configurationService.getValue("accessibility.verbosity.walkthrough" )) {
|
|
586
|
+
const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
|
|
587
|
+
return kbLabel ? ( localize(7548, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
|
|
588
|
+
7549,
|
|
589
|
+
"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
|
|
590
|
+
));
|
|
591
|
+
}
|
|
592
|
+
return '';
|
|
593
|
+
}
|
|
586
594
|
async selectStep(id, delayFocus = true) {
|
|
587
595
|
if (id) {
|
|
588
596
|
let stepElement = this.container.querySelector(`[data-step-id="${id}"]`);
|
|
@@ -605,6 +613,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
605
613
|
stepElement.setAttribute('aria-expanded', 'true');
|
|
606
614
|
this.buildMediaComponent(id, true);
|
|
607
615
|
this.gettingStartedService.progressByEvent('stepSelected:' + id);
|
|
616
|
+
const step = this.currentWalkthrough?.steps?.find(step => step.id === id);
|
|
617
|
+
if (step) {
|
|
618
|
+
stepElement.setAttribute('aria-label', `${this.provideScreenReaderUpdate()} ${step.title}`);
|
|
619
|
+
}
|
|
608
620
|
}
|
|
609
621
|
else {
|
|
610
622
|
this.editorInput.selectedStep = undefined;
|
|
@@ -625,7 +637,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
625
637
|
this.categoriesPageScrollbar.dispose();
|
|
626
638
|
}
|
|
627
639
|
this.categoriesSlide = $('.gettingStartedSlideCategories.gettingStartedSlide');
|
|
628
|
-
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(
|
|
640
|
+
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(7550, "Go Back"))));
|
|
629
641
|
this.stepsSlide = $('.gettingStartedSlideDetails.gettingStartedSlide', {}, prevButton);
|
|
630
642
|
this.stepsContent = $('.gettingStartedDetailsContent', {});
|
|
631
643
|
this.detailsPageScrollbar = this._register(( (new DomScrollableElement(this.stepsContent, { className: 'full-height-scrollable' }))));
|
|
@@ -646,11 +658,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
646
658
|
icon: Codicon.check,
|
|
647
659
|
actionClassName: 'getting-started-checkbox',
|
|
648
660
|
isChecked: this.configurationService.getValue(configurationKey) === 'welcomePage',
|
|
649
|
-
title: ( localize(
|
|
661
|
+
title: ( localize(7551, "When checked, this page will be shown on startup.")),
|
|
650
662
|
...defaultToggleStyles
|
|
651
663
|
})));
|
|
652
664
|
showOnStartupCheckbox.domNode.id = 'showOnStartup';
|
|
653
|
-
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(
|
|
665
|
+
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(7552, "Show welcome page on startup")));
|
|
654
666
|
const onShowOnStartupChanged = () => {
|
|
655
667
|
if (showOnStartupCheckbox.checked) {
|
|
656
668
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'showOnStartupChecked', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
@@ -669,7 +681,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
669
681
|
showOnStartupCheckbox.checked = !showOnStartupCheckbox.checked;
|
|
670
682
|
onShowOnStartupChanged();
|
|
671
683
|
}));
|
|
672
|
-
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(
|
|
684
|
+
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(7553, "Editing evolved"))));
|
|
673
685
|
const leftColumn = $('.categories-column.categories-column-left', {});
|
|
674
686
|
const rightColumn = $('.categories-column.categories-column-right', {});
|
|
675
687
|
const startList = this.buildStartList();
|
|
@@ -729,7 +741,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
729
741
|
footer.appendChild(telemetryNotice);
|
|
730
742
|
}
|
|
731
743
|
else if (!this.productService.openToWelcomeMainPage && !someStepsComplete && !this.hasScrolledToFirstCategory && this.showFeaturedWalkthrough) {
|
|
732
|
-
const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey,
|
|
744
|
+
const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey, -1 ) || ( (new Date())).toUTCString();
|
|
733
745
|
const daysSinceFirstSession = ((+( (new Date()))) - (+( (new Date(firstSessionDateString))))) / 1000 / 60 / 60 / 24;
|
|
734
746
|
const fistContentBehaviour = daysSinceFirstSession < 1 ? 'openToFirstCategory' : 'index';
|
|
735
747
|
if (fistContentBehaviour === 'openToFirstCategory') {
|
|
@@ -739,7 +751,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
739
751
|
this.currentWalkthrough = first;
|
|
740
752
|
this.editorInput.selectedCategory = this.currentWalkthrough?.id;
|
|
741
753
|
this.buildCategorySlide(this.editorInput.selectedCategory, undefined);
|
|
742
|
-
this.setSlide('details');
|
|
754
|
+
this.setSlide('details', true );
|
|
743
755
|
return;
|
|
744
756
|
}
|
|
745
757
|
}
|
|
@@ -752,10 +764,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
752
764
|
let windowOpenable;
|
|
753
765
|
if (isRecentFolder(recent)) {
|
|
754
766
|
windowOpenable = { folderUri: recent.folderUri };
|
|
755
|
-
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.folderUri, { verbose:
|
|
767
|
+
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.folderUri, { verbose: 2 });
|
|
756
768
|
}
|
|
757
769
|
else {
|
|
758
|
-
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.workspace, { verbose:
|
|
770
|
+
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.workspace, { verbose: 2 });
|
|
759
771
|
windowOpenable = { workspaceUri: recent.workspace.configPath };
|
|
760
772
|
}
|
|
761
773
|
const { name, parentPath } = splitRecentLabel(fullPath);
|
|
@@ -763,7 +775,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
763
775
|
const link = $('button.button-link');
|
|
764
776
|
link.innerText = name;
|
|
765
777
|
link.title = fullPath;
|
|
766
|
-
link.setAttribute('aria-label', ( localize(
|
|
778
|
+
link.setAttribute('aria-label', ( localize(7554, "Open folder {0} with path {1}", name, parentPath)));
|
|
767
779
|
link.addEventListener('click', e => {
|
|
768
780
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'openRecent', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
769
781
|
this.hostService.openWindow([windowOpenable], {
|
|
@@ -786,18 +798,18 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
786
798
|
this.recentlyOpenedList.dispose();
|
|
787
799
|
}
|
|
788
800
|
const recentlyOpenedList = this.recentlyOpenedList = ( (new GettingStartedIndexList({
|
|
789
|
-
title: ( localize(
|
|
801
|
+
title: ( localize(7555, "Recent")),
|
|
790
802
|
klass: 'recently-opened',
|
|
791
803
|
limit: 5,
|
|
792
|
-
empty: $('.empty-recent', {}, ( localize(
|
|
804
|
+
empty: $('.empty-recent', {}, ( localize(7556, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(7557, "open a folder"))), ( localize(7558, "to start."))),
|
|
793
805
|
more: $('.more', {}, $('button.button-link', {
|
|
794
806
|
'x-dispatch': 'showMoreRecents',
|
|
795
807
|
title: ( localize(
|
|
796
|
-
|
|
808
|
+
7559,
|
|
797
809
|
"Show All Recent Folders {0}",
|
|
798
810
|
this.getKeybindingLabel(OpenRecentAction.ID)
|
|
799
811
|
))
|
|
800
|
-
}, ( localize(
|
|
812
|
+
}, ( localize(7560, "More...")))),
|
|
801
813
|
renderElement: renderRecent,
|
|
802
814
|
contextService: this.contextService
|
|
803
815
|
})));
|
|
@@ -825,7 +837,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
825
837
|
this.startList.dispose();
|
|
826
838
|
}
|
|
827
839
|
const startList = this.startList = ( (new GettingStartedIndexList({
|
|
828
|
-
title: ( localize(
|
|
840
|
+
title: ( localize(7561, "Start")),
|
|
829
841
|
klass: 'start-container',
|
|
830
842
|
limit: 10,
|
|
831
843
|
renderElement: renderStartEntry,
|
|
@@ -841,10 +853,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
841
853
|
const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
|
|
842
854
|
const newBadge = $('.new-badge', {});
|
|
843
855
|
if (category.newEntry) {
|
|
844
|
-
reset(newBadge, $('.new-category', {}, ( localize(
|
|
856
|
+
reset(newBadge, $('.new-category', {}, ( localize(7562, "New"))));
|
|
845
857
|
}
|
|
846
858
|
else if (category.newItems) {
|
|
847
|
-
reset(newBadge, $('.new-items', {}, ( localize(
|
|
859
|
+
reset(newBadge, $('.new-items', {}, ( localize(7563, "Updated"))));
|
|
848
860
|
}
|
|
849
861
|
const featuredBadge = $('.featured-badge', {});
|
|
850
862
|
const descriptionContent = $('.description-content', {});
|
|
@@ -860,9 +872,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
860
872
|
}, featuredBadge, $('.main-content', {}, this.iconWidgetFor(category), titleContent, renderNewBadge ? newBadge : $('.no-badge'), $('a.codicon.codicon-close.hide-category-button', {
|
|
861
873
|
'tabindex': 0,
|
|
862
874
|
'x-dispatch': 'hideCategory:' + category.id,
|
|
863
|
-
'title': ( localize(
|
|
875
|
+
'title': ( localize(7564, "Hide")),
|
|
864
876
|
'role': 'button',
|
|
865
|
-
'aria-label': ( localize(
|
|
877
|
+
'aria-label': ( localize(7565, "Hide")),
|
|
866
878
|
})), descriptionContent, $('.category-progress', { 'x-data-category-id': category.id, }, $('.progress-bar-outer', { 'role': 'progressbar' }, $('.progress-bar-inner'))));
|
|
867
879
|
};
|
|
868
880
|
if (this.gettingStartedList) {
|
|
@@ -888,10 +900,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
888
900
|
return rank;
|
|
889
901
|
};
|
|
890
902
|
const gettingStartedList = this.gettingStartedList = ( (new GettingStartedIndexList({
|
|
891
|
-
title: ( localize(
|
|
903
|
+
title: ( localize(7566, "Walkthroughs")),
|
|
892
904
|
klass: 'getting-started',
|
|
893
905
|
limit: 5,
|
|
894
|
-
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(
|
|
906
|
+
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(7560, "More..."))),
|
|
895
907
|
renderElement: renderGetttingStaredWalkthrough,
|
|
896
908
|
rankElement: rankWalkthrough,
|
|
897
909
|
contextService: this.contextService,
|
|
@@ -944,10 +956,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
944
956
|
bar.style.width = `${progress}%`;
|
|
945
957
|
element.parentElement.classList.toggle('no-progress', stats.stepsComplete === 0);
|
|
946
958
|
if (stats.stepsTotal === stats.stepsComplete) {
|
|
947
|
-
bar.title = ( localize(
|
|
959
|
+
bar.title = ( localize(7567, "All {0} steps complete!", stats.stepsComplete));
|
|
948
960
|
}
|
|
949
961
|
else {
|
|
950
|
-
bar.title = ( localize(
|
|
962
|
+
bar.title = ( localize(7568, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
|
|
951
963
|
}
|
|
952
964
|
});
|
|
953
965
|
}
|
|
@@ -979,13 +991,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
979
991
|
return;
|
|
980
992
|
}
|
|
981
993
|
if (this.groupsService.count === 1) {
|
|
982
|
-
const sideGroup = this.groupsService.addGroup(this.groupsService.groups[0],
|
|
994
|
+
const sideGroup = this.groupsService.addGroup(this.groupsService.groups[0], 3 );
|
|
983
995
|
this.groupsService.activateGroup(sideGroup);
|
|
984
996
|
const gettingStartedSize = Math.floor(fullSize.width / 2);
|
|
985
|
-
const gettingStartedGroup = this.groupsService.getGroups(
|
|
997
|
+
const gettingStartedGroup = this.groupsService.getGroups(1 ).find(group => (group.activeEditor instanceof GettingStartedInput));
|
|
986
998
|
this.groupsService.setSize(assertIsDefined(gettingStartedGroup), { width: gettingStartedSize, height: fullSize.height });
|
|
987
999
|
}
|
|
988
|
-
const nonGettingStartedGroup = this.groupsService.getGroups(
|
|
1000
|
+
const nonGettingStartedGroup = this.groupsService.getGroups(1 ).find(group => !(group.activeEditor instanceof GettingStartedInput));
|
|
989
1001
|
if (nonGettingStartedGroup) {
|
|
990
1002
|
this.groupsService.activateGroup(nonGettingStartedGroup);
|
|
991
1003
|
nonGettingStartedGroup.focus();
|
|
@@ -1023,7 +1035,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1023
1035
|
selectedStepIndex > -1 &&
|
|
1024
1036
|
this.currentWalkthrough?.steps.slice(selectedStepIndex + 1).some(step => !step.done)) {
|
|
1025
1037
|
const restoreData = { folder: UNKNOWN_EMPTY_WINDOW_WORKSPACE.id, category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
|
|
1026
|
-
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData),
|
|
1038
|
+
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
|
|
1027
1039
|
}
|
|
1028
1040
|
}
|
|
1029
1041
|
this.commandService.executeCommand(commandURI.path, ...args).then(result => {
|
|
@@ -1034,7 +1046,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1034
1046
|
return;
|
|
1035
1047
|
}
|
|
1036
1048
|
const restoreData = { folder: ( (toOpen.toString())), category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
|
|
1037
|
-
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData),
|
|
1049
|
+
this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
|
|
1038
1050
|
this.hostService.openWindow([{ folderUri: toOpen }]);
|
|
1039
1051
|
}
|
|
1040
1052
|
});
|
|
@@ -1069,7 +1081,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1069
1081
|
if (isCommand) {
|
|
1070
1082
|
const keybindingLabel = this.getKeybindingLabel(command);
|
|
1071
1083
|
if (keybindingLabel) {
|
|
1072
|
-
container.appendChild($('span.shortcut-message', {}, ( localize(
|
|
1084
|
+
container.appendChild($('span.shortcut-message', {}, ( localize(7569, 'Tip: Use keyboard shortcut ')), $('span.keybinding', {}, keybindingLabel)));
|
|
1073
1085
|
}
|
|
1074
1086
|
}
|
|
1075
1087
|
this.detailsPageDisposables.add(button);
|
|
@@ -1121,13 +1133,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1121
1133
|
this.detailsPageDisposables.add(addDisposableListener(stepListContainer, 'keydown', (e) => {
|
|
1122
1134
|
const event = ( (new StandardKeyboardEvent(e)));
|
|
1123
1135
|
const currentStepIndex = () => category.steps.findIndex(e => e.id === this.editorInput.selectedStep);
|
|
1124
|
-
if (event.keyCode ===
|
|
1136
|
+
if (event.keyCode === 16 ) {
|
|
1125
1137
|
const toExpand = category.steps.filter((step, index) => index < currentStepIndex() && this.contextService.contextMatchesRules(step.when));
|
|
1126
1138
|
if (toExpand.length) {
|
|
1127
1139
|
this.selectStep(toExpand[toExpand.length - 1].id, false);
|
|
1128
1140
|
}
|
|
1129
1141
|
}
|
|
1130
|
-
if (event.keyCode ===
|
|
1142
|
+
if (event.keyCode === 18 ) {
|
|
1131
1143
|
const toExpand = category.steps.find((step, index) => index > currentStepIndex() && this.contextService.contextMatchesRules(step.when));
|
|
1132
1144
|
if (toExpand) {
|
|
1133
1145
|
this.selectStep(toExpand.id, false);
|
|
@@ -1159,7 +1171,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1159
1171
|
reset(stepTitle, ...renderLabelWithIcons(step.title));
|
|
1160
1172
|
const stepDescription = $('.step-container', {}, stepTitle, container);
|
|
1161
1173
|
if (step.media.type === 'image') {
|
|
1162
|
-
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(
|
|
1174
|
+
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(7570, "Image showing {0}", step.media.altText)) }));
|
|
1163
1175
|
}
|
|
1164
1176
|
return $('button.getting-started-step', {
|
|
1165
1177
|
'x-dispatch': 'selectTask:' + step.id,
|
|
@@ -1179,13 +1191,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1179
1191
|
}
|
|
1180
1192
|
}));
|
|
1181
1193
|
const showNextCategory = this.gettingStartedCategories.find(_category => _category.id === category.next);
|
|
1182
|
-
const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(
|
|
1183
|
-
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(
|
|
1194
|
+
const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(7571, "Mark Done"))), ...(showNextCategory
|
|
1195
|
+
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(7572, "Next Section")), $('span.codicon.codicon-arrow-right'))]
|
|
1184
1196
|
: [])));
|
|
1185
1197
|
this.detailsScrollbar = this._register(( (new DomScrollableElement(stepsContainer, { className: 'steps-container' }))));
|
|
1186
1198
|
const stepListComponent = this.detailsScrollbar.getDomNode();
|
|
1187
1199
|
const categoryFooter = $('.getting-started-footer');
|
|
1188
|
-
if (this.editorInput.showTelemetryNotice && getTelemetryLevel(this.configurationService) !==
|
|
1200
|
+
if (this.editorInput.showTelemetryNotice && getTelemetryLevel(this.configurationService) !== 0 && this.productService.enableTelemetry) {
|
|
1189
1201
|
this.buildTelemetryFooter(categoryFooter);
|
|
1190
1202
|
}
|
|
1191
1203
|
reset(this.stepsContent, categoryDescriptorComponent, stepListComponent, this.stepMediaComponent, categoryFooter);
|
|
@@ -1197,12 +1209,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1197
1209
|
}
|
|
1198
1210
|
buildTelemetryFooter(parent) {
|
|
1199
1211
|
const mdRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});
|
|
1200
|
-
const privacyStatementCopy = ( localize(
|
|
1212
|
+
const privacyStatementCopy = ( localize(7573, "privacy statement"));
|
|
1201
1213
|
const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
|
|
1202
|
-
const optOutCopy = ( localize(
|
|
1214
|
+
const optOutCopy = ( localize(7574, "opt out"));
|
|
1203
1215
|
const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
|
|
1204
1216
|
const text = ( localize(
|
|
1205
|
-
|
|
1217
|
+
7575,
|
|
1206
1218
|
"{0} collects usage data. Read our {1} and learn how to {2}.",
|
|
1207
1219
|
this.productService.nameShort,
|
|
1208
1220
|
privacyStatementButton,
|
|
@@ -1223,16 +1235,23 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1223
1235
|
}
|
|
1224
1236
|
async scrollPrev() {
|
|
1225
1237
|
this.inProgressScroll = this.inProgressScroll.then(async () => {
|
|
1226
|
-
this.currentWalkthrough
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1238
|
+
if (this.prevWalkthrough && this.prevWalkthrough !== this.currentWalkthrough) {
|
|
1239
|
+
this.currentWalkthrough = this.prevWalkthrough;
|
|
1240
|
+
this.prevWalkthrough = undefined;
|
|
1241
|
+
this.makeCategoryVisibleWhenAvailable(this.currentWalkthrough.id);
|
|
1242
|
+
}
|
|
1243
|
+
else {
|
|
1244
|
+
this.currentWalkthrough = undefined;
|
|
1245
|
+
this.editorInput.selectedCategory = undefined;
|
|
1246
|
+
this.editorInput.selectedStep = undefined;
|
|
1247
|
+
this.editorInput.showTelemetryNotice = false;
|
|
1248
|
+
if (this.gettingStartedCategories.length !== this.gettingStartedList?.itemCount) {
|
|
1249
|
+
this.buildCategoriesSlide();
|
|
1250
|
+
}
|
|
1251
|
+
this.selectStep(undefined);
|
|
1252
|
+
this.setSlide('categories');
|
|
1253
|
+
this.container.focus();
|
|
1232
1254
|
}
|
|
1233
|
-
this.selectStep(undefined);
|
|
1234
|
-
this.setSlide('categories');
|
|
1235
|
-
this.container.focus();
|
|
1236
1255
|
});
|
|
1237
1256
|
}
|
|
1238
1257
|
runSkip() {
|
|
@@ -1246,7 +1265,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1246
1265
|
this.runSkip();
|
|
1247
1266
|
}
|
|
1248
1267
|
}
|
|
1249
|
-
setSlide(toEnable) {
|
|
1268
|
+
setSlide(toEnable, firstLaunch = false) {
|
|
1250
1269
|
const slideManager = assertIsDefined(this.container.querySelector('.gettingStarted'));
|
|
1251
1270
|
if (toEnable === 'categories') {
|
|
1252
1271
|
slideManager.classList.remove('showDetails');
|
|
@@ -1259,7 +1278,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1259
1278
|
else {
|
|
1260
1279
|
slideManager.classList.add('showDetails');
|
|
1261
1280
|
slideManager.classList.remove('showCategories');
|
|
1262
|
-
this.container.querySelector('.prev-button.button-link')
|
|
1281
|
+
const prevButton = this.container.querySelector('.prev-button.button-link');
|
|
1282
|
+
prevButton.style.display = this.editorInput.showWelcome || this.prevWalkthrough ? 'block' : 'none';
|
|
1283
|
+
const moreTextElement = prevButton.querySelector('.moreText');
|
|
1284
|
+
moreTextElement.textContent = firstLaunch ? ( localize(7576, "Welcome")) : ( localize(7550, "Go Back"));
|
|
1263
1285
|
this.container.querySelector('.gettingStartedSlideDetails').querySelectorAll('button').forEach(button => button.disabled = false);
|
|
1264
1286
|
this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('button').forEach(button => button.disabled = true);
|
|
1265
1287
|
this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('input').forEach(button => button.disabled = true);
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
2
|
+
import { inWelcomeContext, GettingStartedPage } from './gettingStarted.js';
|
|
3
|
+
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
|
+
import { IWalkthroughsService } from 'vscode/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
|
|
5
|
+
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
6
|
+
import { GettingStartedInput } from './gettingStartedInput.js';
|
|
7
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
8
|
+
|
|
9
|
+
class GettingStartedAccessibleView {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.type = "view" ;
|
|
12
|
+
this.priority = 110;
|
|
13
|
+
this.name = 'walkthroughs';
|
|
14
|
+
this.when = inWelcomeContext;
|
|
15
|
+
this.getProvider = (accessor) => {
|
|
16
|
+
const editorService = accessor.get(IEditorService);
|
|
17
|
+
const editorPane = editorService.activeEditorPane;
|
|
18
|
+
if (!(editorPane instanceof GettingStartedPage)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const gettingStartedInput = editorPane.input;
|
|
22
|
+
if (!(gettingStartedInput instanceof GettingStartedInput) || !gettingStartedInput.selectedCategory) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const gettingStartedService = accessor.get(IWalkthroughsService);
|
|
26
|
+
const currentWalkthrough = gettingStartedService.getWalkthrough(gettingStartedInput.selectedCategory);
|
|
27
|
+
const currentStepIds = gettingStartedInput.selectedStep;
|
|
28
|
+
if (currentWalkthrough) {
|
|
29
|
+
return (
|
|
30
|
+
(new GettingStartedAccessibleProvider(
|
|
31
|
+
accessor.get(IContextKeyService),
|
|
32
|
+
editorPane,
|
|
33
|
+
currentWalkthrough,
|
|
34
|
+
currentStepIds
|
|
35
|
+
))
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class GettingStartedAccessibleProvider extends Disposable {
|
|
43
|
+
constructor(contextService, _gettingStartedPage, _focusedItem, _focusedStep) {
|
|
44
|
+
super();
|
|
45
|
+
this.contextService = contextService;
|
|
46
|
+
this._gettingStartedPage = _gettingStartedPage;
|
|
47
|
+
this._focusedItem = _focusedItem;
|
|
48
|
+
this._focusedStep = _focusedStep;
|
|
49
|
+
this._currentStepIndex = 0;
|
|
50
|
+
this._activeWalkthroughSteps = [];
|
|
51
|
+
this.id = "walkthrough" ;
|
|
52
|
+
this.verbositySettingKey = "accessibility.verbosity.walkthrough" ;
|
|
53
|
+
this.options = { type: "view" };
|
|
54
|
+
this._activeWalkthroughSteps = _focusedItem.steps.filter(step => !step.when || this.contextService.contextMatchesRules(step.when));
|
|
55
|
+
}
|
|
56
|
+
provideContent() {
|
|
57
|
+
if (this._focusedStep) {
|
|
58
|
+
const stepIndex = this._activeWalkthroughSteps.findIndex(step => step.id === this._focusedStep);
|
|
59
|
+
if (stepIndex !== -1) {
|
|
60
|
+
this._currentStepIndex = stepIndex;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return this._getContent(this._currentStepIndex + 1, this._focusedItem, this._activeWalkthroughSteps[this._currentStepIndex]);
|
|
64
|
+
}
|
|
65
|
+
_getContent(index, waltkrough, step) {
|
|
66
|
+
const stepsContent = ( localize(
|
|
67
|
+
7581,
|
|
68
|
+
'Step {0}: {1}\nDescription: {2}',
|
|
69
|
+
index,
|
|
70
|
+
step.title,
|
|
71
|
+
step.description.join(' ')
|
|
72
|
+
));
|
|
73
|
+
return [
|
|
74
|
+
( localize(7582, 'Title: {0}', waltkrough.title)),
|
|
75
|
+
( localize(7583, 'Description: {0}', waltkrough.description)),
|
|
76
|
+
stepsContent
|
|
77
|
+
].join('\n\n');
|
|
78
|
+
}
|
|
79
|
+
provideNextContent() {
|
|
80
|
+
if (++this._currentStepIndex >= this._activeWalkthroughSteps.length) {
|
|
81
|
+
--this._currentStepIndex;
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
return this._getContent(this._currentStepIndex + 1, this._focusedItem, this._activeWalkthroughSteps[this._currentStepIndex]);
|
|
85
|
+
}
|
|
86
|
+
providePreviousContent() {
|
|
87
|
+
if (--this._currentStepIndex < 0) {
|
|
88
|
+
++this._currentStepIndex;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
return this._getContent(this._currentStepIndex + 1, this._focusedItem, this._activeWalkthroughSteps[this._currentStepIndex]);
|
|
92
|
+
}
|
|
93
|
+
onClose() {
|
|
94
|
+
if (this._currentStepIndex > -1) {
|
|
95
|
+
const currentStep = this._activeWalkthroughSteps[this._currentStepIndex];
|
|
96
|
+
this._gettingStartedPage.makeCategoryVisibleWhenAvailable(this._focusedItem.id, currentStep.id);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { GettingStartedAccessibleView };
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js
CHANGED
|
@@ -11,10 +11,10 @@ import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
|
11
11
|
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
12
12
|
import { localize } from 'vscode/vscode/vs/nls';
|
|
13
13
|
|
|
14
|
-
registerColor('welcomePage.background', null, ( localize(
|
|
15
|
-
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(
|
|
16
|
-
registerColor('welcomePage.tileHoverBackground', { dark: ( (lighten(editorWidgetBackground, .2))), light: ( (darken(editorWidgetBackground, .1))), hcDark: null, hcLight: null }, ( localize(
|
|
17
|
-
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(
|
|
18
|
-
registerColor('welcomePage.progress.background', inputBackground, ( localize(
|
|
19
|
-
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(
|
|
20
|
-
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(
|
|
14
|
+
registerColor('welcomePage.background', null, ( localize(10751, 'Background color for the Welcome page.')));
|
|
15
|
+
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(10752, 'Background color for the tiles on the Welcome page.')));
|
|
16
|
+
registerColor('welcomePage.tileHoverBackground', { dark: ( (lighten(editorWidgetBackground, .2))), light: ( (darken(editorWidgetBackground, .1))), hcDark: null, hcLight: null }, ( localize(10753, 'Hover background color for the tiles on the Welcome.')));
|
|
17
|
+
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(10754, 'Border color for the tiles on the Welcome page.')));
|
|
18
|
+
registerColor('welcomePage.progress.background', inputBackground, ( localize(10755, 'Foreground color for the Welcome page progress bars.')));
|
|
19
|
+
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(10756, 'Background color for the Welcome page progress bars.')));
|
|
20
|
+
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(10757, 'Foreground color of the heading of each walkthrough step')));
|