@codingame/monaco-vscode-walkthrough-service-override 17.2.0 → 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.
Files changed (30) hide show
  1. package/package.json +10 -10
  2. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +23 -23
  3. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +5 -3
  4. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +65 -49
  5. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +3 -3
  6. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
  7. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +1 -1
  8. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
  9. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
  10. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +1 -1
  11. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +4 -4
  12. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +8 -7
  13. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css +22 -3
  14. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +2 -2
  15. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.d.ts +1 -0
  16. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +191 -184
  17. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/ai-powered-suggestions.svg +146 -44
  18. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/all.svg.js +1 -0
  19. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/customize-ai.svg +164 -0
  20. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/multi-file-edits.svg +204 -114
  21. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
  22. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
  23. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
  24. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.d.ts +1 -1
  27. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.d.ts +1 -1
  29. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +3 -3
  30. 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 { isMacintosh, OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
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-d0fb86d3-2a47-594e-955b-9a24631a7124-common/vscode/vs/workbench/browser/parts/editor/editorPane';
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-7443a901-21f6-577a-9674-42893b997ee0-common/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
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(11502, "Overview of how to get up to speed with your editor."))
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(11503, "Checkbox for Step {0}: Completed", step.title)));
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(11504, "Checkbox for Step {0}: Not completed", step.title)));
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(isMacintosh ? 'workbench.action.files.openFileFolder' : 'workbench.action.files.openFolder');
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(11505, "Open Walkthrough...")) });
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(11506, "Video for {0}", stepToExpand.title));
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(11507, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
630
- 11508,
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(11509, "Go Back"))));
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(11510, "When checked, this page will be shown on startup.")),
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(11511, "Show welcome page on startup")));
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(11512, "Editing evolved"))));
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 first = this.gettingStartedCategories.filter(c => !c.when || this.contextService.contextMatchesRules(c.when))[0];
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
- this.buildCategorySlide(this.editorInput.selectedCategory, undefined);
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(11513, "Open folder {0} with path {1}", name, parentPath)));
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(11514, "Recent")),
875
+ title: ( localize(11781, "Recent")),
867
876
  klass: 'recently-opened',
868
877
  limit: 5,
869
- empty: $('.empty-recent', {}, ( localize(11515, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(11516, "open a folder"))), ( localize(11517, "to start."))),
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
- 11518,
882
+ 11785,
874
883
  "Show All Recent Folders {0}",
875
884
  this.getKeybindingLabel(OpenRecentAction.ID)
876
885
  ))
877
- }, ( localize(11519, "More...")))),
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(11520, "Start")),
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(11521, "New"))));
930
+ reset(newBadge, $('.new-category', {}, ( localize(11788, "New"))));
922
931
  }
923
932
  else if (category.newItems) {
924
- reset(newBadge, $('.new-items', {}, ( localize(11522, "Updated"))));
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(11523, "Hide")),
949
+ 'title': ( localize(11790, "Hide")),
941
950
  'role': 'button',
942
- 'aria-label': ( localize(11524, "Hide")),
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(11525, "Walkthroughs")),
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(11519, "More..."))),
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(11526, "All {0} steps complete!", stats.stepsComplete));
1035
+ bar.title = ( localize(11793, "All {0} steps complete!", stats.stepsComplete));
1027
1036
  }
1028
1037
  else {
1029
- bar.title = ( localize(11527, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
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(11528, 'Tip: Use keyboard shortcut ')));
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(11529, "Previous Step")),
1298
+ 'aria-label': ( localize(11796, "Previous Step")),
1289
1299
  'tabindex': '0'
1290
- }, $('span.codicon.codicon-arrow-left'), ( localize(11530, "Back")));
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(11531, "Next")),
1369
- }, ( localize(11532, "Next")), $('span.codicon.codicon-arrow-right'));
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(11503, "Checkbox for Step {0}: Completed", step.title))
1585
- : ( localize(11504, "Checkbox for Step {0}: Not completed", step.title)),
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(11533, "Image showing {0}", step.media.altText)) }));
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(11534, "Video showing {0}", step.media.altText)) }));
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(11535, "Mark Done"))), ...(showNextCategory
1617
- ? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(11536, "Next Section")), $('span.codicon.codicon-arrow-right'))]
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(11537, "privacy statement"));
1649
+ const privacyStatementCopy = ( localize(11804, "privacy statement"));
1635
1650
  const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
1636
- const optOutCopy = ( localize(11538, "opt out"));
1651
+ const optOutCopy = ( localize(11805, "opt out"));
1637
1652
  const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
1638
1653
  const text = ( localize(
1639
- 11539,
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(11540, "Welcome")) : ( localize(11509, "Go Back"));
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(11541, '{0}\n{1}', step.title, description));
119
+ const stepsContent = ( localize(11808, '{0}\n{1}', step.title, description));
120
120
  if (includeTitle) {
121
121
  return [
122
- ( localize(11542, 'Title: {0}', waltkrough.title)),
123
- ( localize(11543, 'Description: {0}', waltkrough.description)),
122
+ ( localize(11809, 'Title: {0}', waltkrough.title)),
123
+ ( localize(11810, 'Description: {0}', waltkrough.description)),
124
124
  stepsContent
125
125
  ].join('\n');
126
126
  }
@@ -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(11544, 'Background color for the Welcome page.')));
16
- registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(11545, '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(11546, 'Hover background color for the tiles on the Welcome.')));
18
- registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(11547, 'Border color for the tiles on the Welcome page.')));
19
- registerColor('welcomePage.progress.background', inputBackground, ( localize(11548, 'Foreground color for the Welcome page progress bars.')));
20
- registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(11549, 'Background color for the Welcome page progress bars.')));
21
- registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(11550, 'Foreground color of the heading of each walkthrough step')));
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-5e324391-11e3-5ceb-93ee-938e4098e4ad-common/vscode/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer';
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';