@codingame/monaco-vscode-walkthrough-service-override 17.2.1 → 18.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 +10 -10
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +23 -23
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +65 -49
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +1 -1
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +8 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css +22 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +191 -184
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/ai-powered-suggestions.svg +146 -44
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/all.svg.js +1 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/customize-ai.svg +164 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/multi-file-edits.svg +204 -114
- 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/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
|
@@ -15,9 +15,10 @@ import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/c
|
|
|
15
15
|
import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
16
16
|
import { splitRecentLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
|
|
17
17
|
import { DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
18
|
+
import { parseLinkedText } from '@codingame/monaco-vscode-api/vscode/vs/base/common/linkedText';
|
|
18
19
|
import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
19
20
|
import { matchesScheme, Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
20
|
-
import {
|
|
21
|
+
import { OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
21
22
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
22
23
|
import { assertIsDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
23
24
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
@@ -54,7 +55,7 @@ import { isRecentFolder, isRecentWorkspace } from '@codingame/monaco-vscode-158b
|
|
|
54
55
|
import { IWorkspacesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspaces/common/workspaces.service';
|
|
55
56
|
import { OpenRecentAction } from '@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common/vscode/vs/workbench/browser/actions/windowActions';
|
|
56
57
|
import { OpenFolderViaWorkspaceAction, OpenFileFolderAction, OpenFolderAction } from '@codingame/monaco-vscode-97284942-b044-5fbb-b53b-3f46d2468746-common/vscode/vs/workbench/browser/actions/workspaceActions';
|
|
57
|
-
import { EditorPane } from '@codingame/monaco-vscode-
|
|
58
|
+
import { EditorPane } from '@codingame/monaco-vscode-dcfc2191-2da1-54c7-8fb7-e92c5d11ecef-common/vscode/vs/workbench/browser/parts/editor/editorPane';
|
|
58
59
|
import { WorkbenchStateContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
59
60
|
import { IWebviewService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/webview/browser/webview.service';
|
|
60
61
|
import './gettingStartedColors.js';
|
|
@@ -64,17 +65,18 @@ import { GettingStartedInput } from './gettingStartedInput.js';
|
|
|
64
65
|
import { hiddenEntriesConfigurationKey, parseDescription } from './gettingStartedService.js';
|
|
65
66
|
import { IWalkthroughsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
|
|
66
67
|
import { restoreWalkthroughsConfigurationKey } from './startupPage.js';
|
|
67
|
-
import { startEntries, NEW_WELCOME_EXPERIENCE } from '../common/gettingStartedContent.js';
|
|
68
|
+
import { startEntries, NEW_WELCOME_EXPERIENCE, copilotSettingsMessage } from '../common/gettingStartedContent.js';
|
|
68
69
|
import { GroupDirection, GroupsOrder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService';
|
|
69
70
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
70
71
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
71
72
|
import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
|
|
72
|
-
import { IWorkbenchThemeService } from '@codingame/monaco-vscode-
|
|
73
|
+
import { IWorkbenchThemeService } from '@codingame/monaco-vscode-93784a59-b4cf-520c-8339-f8104d3a4f3e-common/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
|
|
73
74
|
import { GettingStartedIndexList } from './gettingStartedList.js';
|
|
74
75
|
import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
75
76
|
import { AccessibleViewAction } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
|
|
76
77
|
import { KeybindingLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/keybindingLabel/keybindingLabel';
|
|
77
78
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
79
|
+
import { IGettingStartedExperimentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExpService.service';
|
|
78
80
|
|
|
79
81
|
var GettingStartedPage_1;
|
|
80
82
|
registerCss(gettingStarted);
|
|
@@ -95,7 +97,7 @@ const REDUCED_MOTION_KEY = 'workbench.welcomePage.preferReducedMotion';
|
|
|
95
97
|
let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
96
98
|
static { GettingStartedPage_1 = this; }
|
|
97
99
|
static { this.ID = 'gettingStartedPage'; }
|
|
98
|
-
constructor(group, commandService, productService, keybindingService, gettingStartedService, configurationService, telemetryService, languageService, fileService, openerService, themeService, storageService, extensionService, instantiationService, notificationService, groupsService, contextService, quickInputService, workspacesService, labelService, hostService, webviewService, workspaceContextService, accessibilityService) {
|
|
100
|
+
constructor(group, commandService, productService, keybindingService, gettingStartedService, configurationService, telemetryService, languageService, fileService, openerService, themeService, storageService, extensionService, instantiationService, notificationService, groupsService, contextService, quickInputService, workspacesService, labelService, hostService, webviewService, workspaceContextService, accessibilityService, gettingStartedExperimentService) {
|
|
99
101
|
super(GettingStartedPage_1.ID, group, telemetryService, themeService, storageService);
|
|
100
102
|
this.commandService = commandService;
|
|
101
103
|
this.productService = productService;
|
|
@@ -118,6 +120,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
118
120
|
this.webviewService = webviewService;
|
|
119
121
|
this.workspaceContextService = workspaceContextService;
|
|
120
122
|
this.accessibilityService = accessibilityService;
|
|
123
|
+
this.gettingStartedExperimentService = gettingStartedExperimentService;
|
|
121
124
|
this.inProgressScroll = Promise.resolve();
|
|
122
125
|
this.dispatchListeners = ( new DisposableStore());
|
|
123
126
|
this.stepDisposables = ( new DisposableStore());
|
|
@@ -131,7 +134,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
131
134
|
this.container = $('.gettingStartedContainer', {
|
|
132
135
|
role: 'document',
|
|
133
136
|
tabindex: 0,
|
|
134
|
-
'aria-label': ( localize(
|
|
137
|
+
'aria-label': ( localize(11769, "Overview of how to get up to speed with your editor."))
|
|
135
138
|
});
|
|
136
139
|
this.stepMediaComponent = $('.getting-started-media');
|
|
137
140
|
this.stepMediaComponent.id = generateUuid();
|
|
@@ -208,14 +211,14 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
208
211
|
badgeelement.parentElement?.setAttribute('aria-checked', 'true');
|
|
209
212
|
badgeelement.classList.remove(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
210
213
|
badgeelement.classList.add('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
211
|
-
badgeelement.setAttribute('aria-label', ( localize(
|
|
214
|
+
badgeelement.setAttribute('aria-label', ( localize(11770, "Checkbox for Step {0}: Completed", step.title)));
|
|
212
215
|
}
|
|
213
216
|
else {
|
|
214
217
|
badgeelement.setAttribute('aria-checked', 'false');
|
|
215
218
|
badgeelement.parentElement?.setAttribute('aria-checked', 'false');
|
|
216
219
|
badgeelement.classList.remove('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
217
220
|
badgeelement.classList.add(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
218
|
-
badgeelement.setAttribute('aria-label', ( localize(
|
|
221
|
+
badgeelement.setAttribute('aria-label', ( localize(11771, "Checkbox for Step {0}: Not completed", step.title)));
|
|
219
222
|
}
|
|
220
223
|
});
|
|
221
224
|
}
|
|
@@ -322,7 +325,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
322
325
|
this.commandService.executeCommand(OpenFolderViaWorkspaceAction.ID);
|
|
323
326
|
}
|
|
324
327
|
else {
|
|
325
|
-
this.commandService.executeCommand(
|
|
328
|
+
this.commandService.executeCommand('workbench.action.files.openFolder');
|
|
326
329
|
}
|
|
327
330
|
break;
|
|
328
331
|
}
|
|
@@ -417,7 +420,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
417
420
|
label: x.title,
|
|
418
421
|
detail: x.description,
|
|
419
422
|
description: x.source,
|
|
420
|
-
}))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(
|
|
423
|
+
}))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(11772, "Open Walkthrough...")) });
|
|
421
424
|
if (selection) {
|
|
422
425
|
this.runDispatchCommand('selectCategory', selection.id);
|
|
423
426
|
}
|
|
@@ -598,7 +601,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
598
601
|
const themeType = this.themeService.getColorTheme().type;
|
|
599
602
|
const videoPath = media.path[themeType];
|
|
600
603
|
const videoPoster = media.poster ? media.poster[themeType] : undefined;
|
|
601
|
-
const altText = media.altText ? media.altText : ( localize(
|
|
604
|
+
const altText = media.altText ? media.altText : ( localize(11773, "Video for {0}", stepToExpand.title));
|
|
602
605
|
const rawHTML = await this.detailsRenderer.renderVideo(videoPath, videoPoster, altText);
|
|
603
606
|
this.webview.setHtml(rawHTML);
|
|
604
607
|
let isDisposed = false;
|
|
@@ -626,8 +629,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
626
629
|
provideScreenReaderUpdate() {
|
|
627
630
|
if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
|
|
628
631
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
|
|
629
|
-
return kbLabel ? ( localize(
|
|
630
|
-
|
|
632
|
+
return kbLabel ? ( localize(11774, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
|
|
633
|
+
11775,
|
|
631
634
|
"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
|
|
632
635
|
));
|
|
633
636
|
}
|
|
@@ -687,7 +690,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
687
690
|
this.categoriesPageScrollbar.dispose();
|
|
688
691
|
}
|
|
689
692
|
this.categoriesSlide = $('.gettingStartedSlideCategories.gettingStartedSlide');
|
|
690
|
-
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(
|
|
693
|
+
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(11776, "Go Back"))));
|
|
691
694
|
this.stepsSlide = $('.gettingStartedSlideDetails.gettingStartedSlide', {}, prevButton);
|
|
692
695
|
this.stepsContent = $('.gettingStartedDetailsContent', {});
|
|
693
696
|
this.detailsPageScrollbar = this._register(( new DomScrollableElement(
|
|
@@ -711,11 +714,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
711
714
|
icon: Codicon.check,
|
|
712
715
|
actionClassName: 'getting-started-checkbox',
|
|
713
716
|
isChecked: this.configurationService.getValue(configurationKey) === 'welcomePage',
|
|
714
|
-
title: ( localize(
|
|
717
|
+
title: ( localize(11777, "When checked, this page will be shown on startup.")),
|
|
715
718
|
...defaultToggleStyles
|
|
716
719
|
}));
|
|
717
720
|
showOnStartupCheckbox.domNode.id = 'showOnStartup';
|
|
718
|
-
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(
|
|
721
|
+
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(11778, "Show welcome page on startup")));
|
|
719
722
|
const onShowOnStartupChanged = () => {
|
|
720
723
|
if (showOnStartupCheckbox.checked) {
|
|
721
724
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'showOnStartupChecked', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
@@ -734,7 +737,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
734
737
|
showOnStartupCheckbox.checked = !showOnStartupCheckbox.checked;
|
|
735
738
|
onShowOnStartupChanged();
|
|
736
739
|
}));
|
|
737
|
-
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(
|
|
740
|
+
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(11779, "Editing evolved"))));
|
|
738
741
|
const leftColumn = $('.categories-column.categories-column-left', {});
|
|
739
742
|
const rightColumn = $('.categories-column.categories-column-right', {});
|
|
740
743
|
const startList = this.buildStartList();
|
|
@@ -809,13 +812,19 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
809
812
|
const daysSinceFirstSession = ((+( new Date())) - (+( new Date(firstSessionDateString)))) / 1000 / 60 / 60 / 24;
|
|
810
813
|
const fistContentBehaviour = daysSinceFirstSession < 1 ? 'openToFirstCategory' : 'index';
|
|
811
814
|
if (fistContentBehaviour === 'openToFirstCategory') {
|
|
812
|
-
const
|
|
815
|
+
const exp = this.gettingStartedExperimentService.getCurrentExperiment();
|
|
816
|
+
const first = exp?.walkthroughId ? this.gettingStartedService.getWalkthrough(exp.walkthroughId) : this.gettingStartedCategories.filter(c => !c.when || this.contextService.contextMatchesRules(c.when))[0];
|
|
813
817
|
if (first) {
|
|
814
818
|
this.hasScrolledToFirstCategory = true;
|
|
815
819
|
this.currentWalkthrough = first;
|
|
816
820
|
this.editorInput.selectedCategory = this.currentWalkthrough?.id;
|
|
817
821
|
this.editorInput.walkthroughPageTitle = this.currentWalkthrough.walkthroughPageTitle;
|
|
818
|
-
|
|
822
|
+
if (first.id === NEW_WELCOME_EXPERIENCE) {
|
|
823
|
+
this.buildNewCategorySlide(this.editorInput.selectedCategory, undefined);
|
|
824
|
+
}
|
|
825
|
+
else {
|
|
826
|
+
this.buildCategorySlide(this.editorInput.selectedCategory, undefined);
|
|
827
|
+
}
|
|
819
828
|
this.setSlide('details', true );
|
|
820
829
|
return;
|
|
821
830
|
}
|
|
@@ -840,7 +849,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
840
849
|
const link = $('button.button-link');
|
|
841
850
|
link.innerText = name;
|
|
842
851
|
link.title = fullPath;
|
|
843
|
-
link.setAttribute('aria-label', ( localize(
|
|
852
|
+
link.setAttribute('aria-label', ( localize(11780, "Open folder {0} with path {1}", name, parentPath)));
|
|
844
853
|
link.addEventListener('click', e => {
|
|
845
854
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'openRecent', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
846
855
|
this.hostService.openWindow([windowOpenable], {
|
|
@@ -863,18 +872,18 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
863
872
|
this.recentlyOpenedList.dispose();
|
|
864
873
|
}
|
|
865
874
|
const recentlyOpenedList = this.recentlyOpenedList = ( new GettingStartedIndexList({
|
|
866
|
-
title: ( localize(
|
|
875
|
+
title: ( localize(11781, "Recent")),
|
|
867
876
|
klass: 'recently-opened',
|
|
868
877
|
limit: 5,
|
|
869
|
-
empty: $('.empty-recent', {}, ( localize(
|
|
878
|
+
empty: $('.empty-recent', {}, ( localize(11782, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(11783, "open a folder"))), ( localize(11784, "to start."))),
|
|
870
879
|
more: $('.more', {}, $('button.button-link', {
|
|
871
880
|
'x-dispatch': 'showMoreRecents',
|
|
872
881
|
title: ( localize(
|
|
873
|
-
|
|
882
|
+
11785,
|
|
874
883
|
"Show All Recent Folders {0}",
|
|
875
884
|
this.getKeybindingLabel(OpenRecentAction.ID)
|
|
876
885
|
))
|
|
877
|
-
}, ( localize(
|
|
886
|
+
}, ( localize(11786, "More...")))),
|
|
878
887
|
renderElement: renderRecent,
|
|
879
888
|
contextService: this.contextService
|
|
880
889
|
}));
|
|
@@ -902,7 +911,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
902
911
|
this.startList.dispose();
|
|
903
912
|
}
|
|
904
913
|
const startList = this.startList = ( new GettingStartedIndexList({
|
|
905
|
-
title: ( localize(
|
|
914
|
+
title: ( localize(11787, "Start")),
|
|
906
915
|
klass: 'start-container',
|
|
907
916
|
limit: 10,
|
|
908
917
|
renderElement: renderStartEntry,
|
|
@@ -918,10 +927,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
918
927
|
const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
|
|
919
928
|
const newBadge = $('.new-badge', {});
|
|
920
929
|
if (category.newEntry) {
|
|
921
|
-
reset(newBadge, $('.new-category', {}, ( localize(
|
|
930
|
+
reset(newBadge, $('.new-category', {}, ( localize(11788, "New"))));
|
|
922
931
|
}
|
|
923
932
|
else if (category.newItems) {
|
|
924
|
-
reset(newBadge, $('.new-items', {}, ( localize(
|
|
933
|
+
reset(newBadge, $('.new-items', {}, ( localize(11789, "Updated"))));
|
|
925
934
|
}
|
|
926
935
|
const featuredBadge = $('.featured-badge', {});
|
|
927
936
|
const descriptionContent = $('.description-content', {});
|
|
@@ -937,9 +946,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
937
946
|
}, featuredBadge, $('.main-content', {}, this.iconWidgetFor(category), titleContent, renderNewBadge ? newBadge : $('.no-badge'), $('a.codicon.codicon-close.hide-category-button', {
|
|
938
947
|
'tabindex': 0,
|
|
939
948
|
'x-dispatch': 'hideCategory:' + category.id,
|
|
940
|
-
'title': ( localize(
|
|
949
|
+
'title': ( localize(11790, "Hide")),
|
|
941
950
|
'role': 'button',
|
|
942
|
-
'aria-label': ( localize(
|
|
951
|
+
'aria-label': ( localize(11791, "Hide")),
|
|
943
952
|
})), descriptionContent, $('.category-progress', { 'x-data-category-id': category.id, }, $('.progress-bar-outer', { 'role': 'progressbar' }, $('.progress-bar-inner'))));
|
|
944
953
|
};
|
|
945
954
|
if (this.gettingStartedList) {
|
|
@@ -965,10 +974,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
965
974
|
return rank;
|
|
966
975
|
};
|
|
967
976
|
const gettingStartedList = this.gettingStartedList = ( new GettingStartedIndexList({
|
|
968
|
-
title: ( localize(
|
|
977
|
+
title: ( localize(11792, "Walkthroughs")),
|
|
969
978
|
klass: 'getting-started',
|
|
970
979
|
limit: 5,
|
|
971
|
-
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(
|
|
980
|
+
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(11786, "More..."))),
|
|
972
981
|
renderElement: renderGetttingStaredWalkthrough,
|
|
973
982
|
rankElement: rankWalkthrough,
|
|
974
983
|
contextService: this.contextService,
|
|
@@ -1023,10 +1032,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1023
1032
|
bar.style.width = `${progress}%`;
|
|
1024
1033
|
element.parentElement.classList.toggle('no-progress', stats.stepsComplete === 0);
|
|
1025
1034
|
if (stats.stepsTotal === stats.stepsComplete) {
|
|
1026
|
-
bar.title = ( localize(
|
|
1035
|
+
bar.title = ( localize(11793, "All {0} steps complete!", stats.stepsComplete));
|
|
1027
1036
|
}
|
|
1028
1037
|
else {
|
|
1029
|
-
bar.title = ( localize(
|
|
1038
|
+
bar.title = ( localize(11794, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
|
|
1030
1039
|
}
|
|
1031
1040
|
});
|
|
1032
1041
|
}
|
|
@@ -1150,7 +1159,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1150
1159
|
if (isCommand) {
|
|
1151
1160
|
const keybinding = this.getKeyBinding(command);
|
|
1152
1161
|
if (keybinding && this.editorInput.selectedCategory !== NEW_WELCOME_EXPERIENCE) {
|
|
1153
|
-
const shortcutMessage = $('span.shortcut-message', {}, ( localize(
|
|
1162
|
+
const shortcutMessage = $('span.shortcut-message', {}, ( localize(11795, 'Tip: Use keyboard shortcut ')));
|
|
1154
1163
|
container.appendChild(shortcutMessage);
|
|
1155
1164
|
const label = ( new KeybindingLabel(shortcutMessage, OS, { ...defaultKeybindingLabelStyles }));
|
|
1156
1165
|
label.set(keybinding);
|
|
@@ -1188,6 +1197,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1188
1197
|
super.clearInput();
|
|
1189
1198
|
}
|
|
1190
1199
|
selectStepByIndex(newIndex, steps, direction) {
|
|
1200
|
+
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'selectTask', argument: steps[newIndex].id, walkthroughId: this.currentWalkthrough?.id });
|
|
1191
1201
|
const currentIndex = steps.findIndex(step => step.id === this.editorInput.selectedStep);
|
|
1192
1202
|
this.selectSlide(steps[newIndex].id);
|
|
1193
1203
|
const footer = this.stepsContent.querySelector('.getting-started-footer');
|
|
@@ -1285,9 +1295,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1285
1295
|
const slidesContainer = $('.step-slides-container');
|
|
1286
1296
|
const navigationContainer = $('.step-dots-container');
|
|
1287
1297
|
const prevButton = $('button.button-link.navigation.back', {
|
|
1288
|
-
'aria-label': ( localize(
|
|
1298
|
+
'aria-label': ( localize(11796, "Previous Step")),
|
|
1289
1299
|
'tabindex': '0'
|
|
1290
|
-
}, $('span.codicon.codicon-arrow-left'), ( localize(
|
|
1300
|
+
}, $('span.codicon.codicon-arrow-left'), ( localize(11797, "Back")));
|
|
1291
1301
|
const dotsContainer = $('.dots-centered');
|
|
1292
1302
|
navigationContainer.appendChild(prevButton);
|
|
1293
1303
|
navigationContainer.appendChild(dotsContainer);
|
|
@@ -1342,6 +1352,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1342
1352
|
const descElement = $('.multi-step-action');
|
|
1343
1353
|
this.buildMarkdownDescription(descElement, [linkedText]);
|
|
1344
1354
|
multiStepContainer.appendChild(descElement);
|
|
1355
|
+
const actionMessage = $('span.action-message');
|
|
1356
|
+
const updatedText = parseLinkedText(copilotSettingsMessage);
|
|
1357
|
+
this.buildMarkdownDescription(actionMessage, [updatedText]);
|
|
1358
|
+
multiStepContainer.appendChild(actionMessage);
|
|
1345
1359
|
}
|
|
1346
1360
|
textContent.appendChild(multiStepContainer);
|
|
1347
1361
|
}
|
|
@@ -1365,8 +1379,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1365
1379
|
}));
|
|
1366
1380
|
});
|
|
1367
1381
|
const nextButton = $('button.button-link.navigation.next', {
|
|
1368
|
-
'aria-label': ( localize(
|
|
1369
|
-
}, ( localize(
|
|
1382
|
+
'aria-label': ( localize(11798, "Next")),
|
|
1383
|
+
}, ( localize(11799, "Next")), $('span.codicon.codicon-arrow-right'));
|
|
1370
1384
|
navigationContainer.appendChild(nextButton);
|
|
1371
1385
|
this.detailsPageDisposables.add(addDisposableListener(prevButton, 'click', () => {
|
|
1372
1386
|
const currentIndex = this.getCurrentSlideIndex(allSlides);
|
|
@@ -1456,6 +1470,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1456
1470
|
}
|
|
1457
1471
|
}
|
|
1458
1472
|
selectSubStep(selectedStepId) {
|
|
1473
|
+
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'selectTask', argument: selectedStepId, walkthroughId: this.currentWalkthrough?.id });
|
|
1459
1474
|
if (this.editorInput.selectedStep === selectedStepId) {
|
|
1460
1475
|
return;
|
|
1461
1476
|
}
|
|
@@ -1581,8 +1596,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1581
1596
|
'role': 'checkbox',
|
|
1582
1597
|
'aria-checked': step.done ? 'true' : 'false',
|
|
1583
1598
|
'aria-label': step.done
|
|
1584
|
-
? ( localize(
|
|
1585
|
-
: ( localize(
|
|
1599
|
+
? ( localize(11770, "Checkbox for Step {0}: Completed", step.title))
|
|
1600
|
+
: ( localize(11771, "Checkbox for Step {0}: Not completed", step.title)),
|
|
1586
1601
|
});
|
|
1587
1602
|
const container = $('.step-description-container', { 'x-step-description-for': step.id });
|
|
1588
1603
|
this.buildMarkdownDescription(container, step.description);
|
|
@@ -1590,10 +1605,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1590
1605
|
reset(stepTitle, ...renderLabelWithIcons(step.title));
|
|
1591
1606
|
const stepDescription = $('.step-container', {}, stepTitle, container);
|
|
1592
1607
|
if (step.media.type === 'image') {
|
|
1593
|
-
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(
|
|
1608
|
+
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(11800, "Image showing {0}", step.media.altText)) }));
|
|
1594
1609
|
}
|
|
1595
1610
|
else if (step.media.type === 'video') {
|
|
1596
|
-
stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(
|
|
1611
|
+
stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(11801, "Video showing {0}", step.media.altText)) }));
|
|
1597
1612
|
}
|
|
1598
1613
|
return $('button.getting-started-step', {
|
|
1599
1614
|
'x-dispatch': 'selectTask:' + step.id,
|
|
@@ -1613,8 +1628,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1613
1628
|
}
|
|
1614
1629
|
}));
|
|
1615
1630
|
const showNextCategory = this.gettingStartedCategories.find(_category => _category.id === category.next);
|
|
1616
|
-
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(
|
|
1617
|
-
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(
|
|
1631
|
+
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(11802, "Mark Done"))), ...(showNextCategory
|
|
1632
|
+
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(11803, "Next Section")), $('span.codicon.codicon-arrow-right'))]
|
|
1618
1633
|
: [])));
|
|
1619
1634
|
this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, { className: 'steps-container' })));
|
|
1620
1635
|
const stepListComponent = this.detailsScrollbar.getDomNode();
|
|
@@ -1631,12 +1646,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1631
1646
|
}
|
|
1632
1647
|
buildTelemetryFooter(parent) {
|
|
1633
1648
|
const mdRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});
|
|
1634
|
-
const privacyStatementCopy = ( localize(
|
|
1649
|
+
const privacyStatementCopy = ( localize(11804, "privacy statement"));
|
|
1635
1650
|
const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
|
|
1636
|
-
const optOutCopy = ( localize(
|
|
1651
|
+
const optOutCopy = ( localize(11805, "opt out"));
|
|
1637
1652
|
const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
|
|
1638
1653
|
const text = ( localize(
|
|
1639
|
-
|
|
1654
|
+
11806,
|
|
1640
1655
|
"{0} collects usage data. Read our {1} and learn how to {2}.",
|
|
1641
1656
|
this.productService.nameShort,
|
|
1642
1657
|
privacyStatementButton,
|
|
@@ -1712,7 +1727,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1712
1727
|
}
|
|
1713
1728
|
else {
|
|
1714
1729
|
const moreTextElement = prevButton.querySelector('.moreText');
|
|
1715
|
-
moreTextElement.textContent = firstLaunch ? ( localize(
|
|
1730
|
+
moreTextElement.textContent = firstLaunch ? ( localize(11807, "Welcome")) : ( localize(11776, "Go Back"));
|
|
1716
1731
|
}
|
|
1717
1732
|
this.container.querySelector('.gettingStartedSlideDetails').querySelectorAll('button').forEach(button => button.disabled = false);
|
|
1718
1733
|
this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('button').forEach(button => button.disabled = true);
|
|
@@ -1754,7 +1769,8 @@ GettingStartedPage = GettingStartedPage_1 = ( __decorate([
|
|
|
1754
1769
|
( __param(20, IHostService)),
|
|
1755
1770
|
( __param(21, IWebviewService)),
|
|
1756
1771
|
( __param(22, IWorkspaceContextService)),
|
|
1757
|
-
( __param(23, IAccessibilityService))
|
|
1772
|
+
( __param(23, IAccessibilityService)),
|
|
1773
|
+
( __param(24, IGettingStartedExperimentService))
|
|
1758
1774
|
], GettingStartedPage));
|
|
1759
1775
|
class GettingStartedInputSerializer {
|
|
1760
1776
|
canSerialize(editorInput) {
|
|
@@ -116,11 +116,11 @@ class GettingStartedAccessibleProvider extends Disposable {
|
|
|
116
116
|
}
|
|
117
117
|
_getContent(waltkrough, step, includeTitle) {
|
|
118
118
|
const description = ( step.description.map(lt => lt.nodes.filter(node => typeof node === 'string'))).join('\n');
|
|
119
|
-
const stepsContent = ( localize(
|
|
119
|
+
const stepsContent = ( localize(11808, '{0}\n{1}', step.title, description));
|
|
120
120
|
if (includeTitle) {
|
|
121
121
|
return [
|
|
122
|
-
( localize(
|
|
123
|
-
( localize(
|
|
122
|
+
( localize(11809, 'Title: {0}', waltkrough.title)),
|
|
123
|
+
( localize(11810, 'Description: {0}', waltkrough.description)),
|
|
124
124
|
stepsContent
|
|
125
125
|
].join('\n');
|
|
126
126
|
}
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js
CHANGED
|
@@ -12,10 +12,10 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quic
|
|
|
12
12
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
13
13
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
14
14
|
|
|
15
|
-
registerColor('welcomePage.background', null, ( localize(
|
|
16
|
-
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(
|
|
17
|
-
registerColor('welcomePage.tileHoverBackground', { dark: ( lighten(editorWidgetBackground, .2)), light: ( darken(editorWidgetBackground, .1)), hcDark: null, hcLight: null }, ( localize(
|
|
18
|
-
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(
|
|
19
|
-
registerColor('welcomePage.progress.background', inputBackground, ( localize(
|
|
20
|
-
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(
|
|
21
|
-
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(
|
|
15
|
+
registerColor('welcomePage.background', null, ( localize(11811, 'Background color for the Welcome page.')));
|
|
16
|
+
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(11812, 'Background color for the tiles on the Welcome page.')));
|
|
17
|
+
registerColor('welcomePage.tileHoverBackground', { dark: ( lighten(editorWidgetBackground, .2)), light: ( darken(editorWidgetBackground, .1)), hcDark: null, hcLight: null }, ( localize(11813, 'Hover background color for the tiles on the Welcome.')));
|
|
18
|
+
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(11814, 'Border color for the tiles on the Welcome page.')));
|
|
19
|
+
registerColor('welcomePage.progress.background', inputBackground, ( localize(11815, 'Foreground color for the Welcome page progress bars.')));
|
|
20
|
+
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(11816, 'Background color for the Welcome page progress bars.')));
|
|
21
|
+
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(11817, 'Foreground color of the heading of each walkthrough step')));
|
|
@@ -3,7 +3,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
4
4
|
import { generateTokensCSSForColorMap } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/supports/tokenization';
|
|
5
5
|
import { TokenizationRegistry } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
6
|
-
import { DEFAULT_MARKDOWN_STYLES, renderMarkdownDocument } from '@codingame/monaco-vscode-
|
|
6
|
+
import { DEFAULT_MARKDOWN_STYLES, renderMarkdownDocument } from '@codingame/monaco-vscode-cf77987b-b1b7-5359-aaf8-a259c63d9f03-common/vscode/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer';
|
|
7
7
|
import { language } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
8
8
|
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
9
9
|
import { assertIsDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|