@codingame/monaco-vscode-welcome-service-override 36.2.7 → 37.2.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 (35) hide show
  1. package/index.js +1 -0
  2. package/package.json +3 -2
  3. package/vscode/src/vs/workbench/contrib/onboarding/browser/media/spotlight.css +5 -0
  4. package/vscode/src/vs/workbench/contrib/onboarding/browser/onboarding.contribution.js +37 -7
  5. package/vscode/src/vs/workbench/contrib/onboarding/browser/onboardingService.d.ts +2 -0
  6. package/vscode/src/vs/workbench/contrib/onboarding/browser/onboardingService.js +36 -5
  7. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/runOnboardingStep.d.ts +17 -0
  8. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/runOnboardingStep.js +32 -0
  9. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/sequencePresentation.d.ts +10 -0
  10. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/sequencePresentation.js +154 -0
  11. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/onboardingTarget.d.ts +7 -1
  12. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/onboardingTarget.js +5 -1
  13. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightOverlay.d.ts +13 -9
  14. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightOverlay.js +60 -15
  15. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightPresentation.d.ts +5 -1
  16. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightPresentation.js +222 -49
  17. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightTypes.d.ts +23 -5
  18. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingPresentation.d.ts +4 -0
  19. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingScenario.d.ts +9 -8
  20. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingScenarioService.d.ts +7 -0
  21. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingScenarioService.js +2 -1
  22. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingSequence.d.ts +45 -0
  23. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingSequence.js +29 -0
  24. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcome.contribution.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcome.contribution.js +158 -0
  26. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcome.d.ts +105 -0
  27. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcome.js +765 -0
  28. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/media/agentSessionsWelcome.css +564 -0
  29. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/media/variationA.css +2 -149
  30. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/onboardingVariationA.d.ts +5 -5
  31. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/onboardingVariationA.js +61 -131
  32. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/welcomeOnboarding.contribution.js +1 -1
  33. package/vscode/src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.js +10 -10
  34. package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeContribution.js +2 -2
  35. package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeExtensionPoint.js +8 -8
@@ -33,7 +33,7 @@ import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/com
33
33
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
34
34
  import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
35
35
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
36
- import { ChatSetupStrategy } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatSetup/chatSetup';
36
+ import { ChatSetupStrategy } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatSetup/chatSetup';
37
37
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
38
38
  import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
39
39
  import { ONBOARDING_STEPS, AiCollaborationMode, OnboardingStepId, getOnboardingStepTitle, getOnboardingStepSubtitle, parseGheInstanceInput, GheParseResultKind, GHE_FULL_URI_REGEX, ONBOARDING_AI_PREFERENCE_OPTIONS } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes';
@@ -116,11 +116,11 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
116
116
  this.overlay = append(container, $(".onboarding-a-overlay"));
117
117
  this.overlay.setAttribute("role", "dialog");
118
118
  this.overlay.setAttribute("aria-modal", "true");
119
- this.overlay.setAttribute("aria-label", ( localize(16968, "Welcome to Visual Studio Code")));
119
+ this.overlay.setAttribute("aria-label", ( localize(19034, "Welcome to Visual Studio Code")));
120
120
  this.card = append(this.overlay, $(".onboarding-a-card"));
121
121
  this.closeButton = append(this.card, $("button.onboarding-a-close-btn"));
122
122
  this.closeButton.type = "button";
123
- this.closeButton.setAttribute("aria-label", ( localize(16969, "Close")));
123
+ this.closeButton.setAttribute("aria-label", ( localize(19035, "Close")));
124
124
  this.closeButton.appendChild(renderIcon(Codicon.close));
125
125
  const header = append(this.card, $(".onboarding-a-header"));
126
126
  this.progressContainer = append(header, $(".onboarding-a-progress"));
@@ -136,7 +136,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
136
136
  this.footerLeft = append(footer, $(".onboarding-a-footer-left"));
137
137
  const footerRight = append(footer, $(".onboarding-a-footer-right"));
138
138
  this.backButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-secondary"));
139
- this.backButton.textContent = ( localize(16970, "Back"));
139
+ this.backButton.textContent = ( localize(19036, "Back"));
140
140
  this.backButton.type = "button";
141
141
  this.footerFocusableElements.push(this.backButton);
142
142
  this.nextButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-primary"));
@@ -159,6 +159,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
159
159
  }));
160
160
  this.disposables.add(addDisposableListener(this.nextButton, EventType.CLICK, () => {
161
161
  if (this._isLastStep()) {
162
+ this._applyStepSelections(this.steps[this.currentStepIndex]);
162
163
  this._logAction("complete");
163
164
  this._dismiss("complete");
164
165
  } else if (this.currentStepIndex === 0) {
@@ -225,9 +226,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
225
226
  this.enterpriseInstanceValue = "";
226
227
  this.enterpriseSignInWatch = undefined;
227
228
  }
228
- if (leavingStep === OnboardingStepId.Personalize) {
229
- this._applyKeymap(this.selectedKeymapId);
230
- }
229
+ this._applyStepSelections(leavingStep);
231
230
  this.currentStepIndex++;
232
231
  this._renderStep();
233
232
  this._renderProgress();
@@ -236,6 +235,11 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
236
235
  this._logStepView();
237
236
  }
238
237
  }
238
+ _applyStepSelections(stepId) {
239
+ if (stepId === OnboardingStepId.Personalize) {
240
+ this._applyKeymap(this.selectedKeymapId);
241
+ }
242
+ }
239
243
  _prevStep() {
240
244
  if (this.currentStepIndex > 0) {
241
245
  this.currentStepIndex--;
@@ -263,7 +267,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
263
267
  }
264
268
  }
265
269
  this.progressContainer.appendChild(this.stepLabelEl);
266
- this.stepLabelEl.textContent = ( localize(16971, "{0} of {1}", this.currentStepIndex + 1, this.steps.length));
270
+ this.stepLabelEl.textContent = ( localize(19037, "{0} of {1}", this.currentStepIndex + 1, this.steps.length));
267
271
  }
268
272
  _renderStep() {
269
273
  if (!this.titleEl || !this.subtitleEl || !this.contentEl) {
@@ -276,9 +280,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
276
280
  this.titleEl.style.display = useSignInHero ? "none" : "";
277
281
  this.subtitleEl.style.display = useSignInHero ? "none" : "";
278
282
  this.titleEl.textContent = getOnboardingStepTitle(stepId);
279
- if (stepId === OnboardingStepId.AgentSessions) {
280
- this._renderAgentSessionsSubtitle(this.subtitleEl);
281
- } else if (stepId === OnboardingStepId.Personalize) {
283
+ if (stepId === OnboardingStepId.Personalize) {
282
284
  this._renderPersonalizeSubtitle(this.subtitleEl);
283
285
  } else {
284
286
  this.subtitleEl.textContent = getOnboardingStepSubtitle(stepId);
@@ -294,12 +296,9 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
294
296
  case OnboardingStepId.AiPreference:
295
297
  this._renderAiPreferenceStep(this.contentEl);
296
298
  break;
297
- case OnboardingStepId.AgentSessions:
298
- this._renderAgentSessionsStep(this.contentEl);
299
- break;
300
299
  }
301
300
  this.bodyEl?.setAttribute("aria-label", ( localize(
302
- 16972,
301
+ 19038,
303
302
  "Step {0} of {1}: {2}",
304
303
  this.currentStepIndex + 1,
305
304
  this.steps.length,
@@ -315,17 +314,17 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
315
314
  if (this.currentStepIndex === 0) {
316
315
  if (this._userSignedIn) {
317
316
  this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
318
- this.nextButton.textContent = ( localize(16973, "Continue"));
317
+ this.nextButton.textContent = ( localize(19039, "Continue"));
319
318
  } else {
320
319
  this.nextButton.className = "onboarding-a-btn onboarding-a-btn-secondary";
321
- this.nextButton.textContent = ( localize(16974, "Continue without Signing In"));
320
+ this.nextButton.textContent = ( localize(19040, "Continue without Signing In"));
322
321
  }
323
322
  } else if (this._isLastStep()) {
324
323
  this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
325
- this.nextButton.textContent = ( localize(16975, "Get Started"));
324
+ this.nextButton.textContent = ( localize(19041, "Get Started"));
326
325
  } else {
327
326
  this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
328
- this.nextButton.textContent = ( localize(16976, "Continue"));
327
+ this.nextButton.textContent = ( localize(19042, "Continue"));
329
328
  }
330
329
  }
331
330
  if (this.footerLeft) {
@@ -333,7 +332,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
333
332
  if (!this._footerSignInBtn && !this._userSignedIn) {
334
333
  this._footerSignInBtn = append(this.footerLeft, $("button.onboarding-a-signin-nudge-btn"));
335
334
  this._footerSignInBtn.type = "button";
336
- this._footerSignInBtn.textContent = ( localize(16977, "Sign in to use GitHub Copilot"));
335
+ this._footerSignInBtn.textContent = ( localize(19043, "Sign in to use GitHub Copilot"));
337
336
  this.stepDisposables.add(
338
337
  addDisposableListener(this._footerSignInBtn, EventType.CLICK, async () => {
339
338
  this._logAction("signInNudge");
@@ -361,9 +360,9 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
361
360
  const content = append(wrapper, $(".onboarding-a-signin-content"));
362
361
  const contentMain = append(content, $(".onboarding-a-signin-content-main"));
363
362
  const title = append(contentMain, $("h2.onboarding-a-signin-title"));
364
- title.textContent = ( localize(16978, "Welcome to VS Code"));
363
+ title.textContent = ( localize(19044, "Welcome to VS Code"));
365
364
  const subtitle = append(contentMain, $("p.onboarding-a-signin-subtitle"));
366
- subtitle.textContent = ( localize(16979, "Sign in to use GitHub Copilot."));
365
+ subtitle.textContent = ( localize(19045, "Sign in to use GitHub Copilot."));
367
366
  const actions = append(contentMain, $(".onboarding-a-signin-actions"));
368
367
  if (this._userSignedIn) {
369
368
  const signedIn = append(actions, $(".onboarding-a-signin-confirmation"));
@@ -371,7 +370,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
371
370
  icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.check));
372
371
  icon.setAttribute("aria-hidden", "true");
373
372
  const text = append(signedIn, $("span"));
374
- text.textContent = ( localize(16980, "You're signed in. You can continue to the next step."));
373
+ text.textContent = ( localize(19046, "You're signed in. You can continue to the next step."));
375
374
  } else {
376
375
  switch (this.enterpriseSignInUiState) {
377
376
  case "instance":
@@ -389,49 +388,49 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
389
388
  const disclaimerCol = append(footer, $(".onboarding-a-signin-disclaimer-col"));
390
389
  const copilotDisclaimer = append(disclaimerCol, $(".onboarding-a-signin-disclaimer"));
391
390
  copilotDisclaimer.append(( localize(
392
- 16981,
391
+ 19047,
393
392
  "By signing in, you agree to {0}'s ",
394
393
  defaultChat.provider.default.name
395
394
  )));
396
- this._createInlineLink(copilotDisclaimer, ( localize(16982, "Terms")), defaultChat.termsStatementUrl);
397
- copilotDisclaimer.append(( localize(16983, " and ")));
398
- this._createInlineLink(copilotDisclaimer, ( localize(16984, "Privacy Statement")), defaultChat.privacyStatementUrl);
399
- copilotDisclaimer.append(( localize(16985, ". {0} Copilot may show ", defaultChat.provider.default.name)));
400
- this._createInlineLink(copilotDisclaimer, ( localize(16986, "public code")), defaultChat.publicCodeMatchesUrl);
401
- copilotDisclaimer.append(( localize(16987, " suggestions and use your data to improve the product.")));
395
+ this._createInlineLink(copilotDisclaimer, ( localize(19048, "Terms")), defaultChat.termsStatementUrl);
396
+ copilotDisclaimer.append(( localize(19049, " and ")));
397
+ this._createInlineLink(copilotDisclaimer, ( localize(19050, "Privacy Statement")), defaultChat.privacyStatementUrl);
398
+ copilotDisclaimer.append(( localize(19051, ". {0} Copilot may show ", defaultChat.provider.default.name)));
399
+ this._createInlineLink(copilotDisclaimer, ( localize(19052, "public code")), defaultChat.publicCodeMatchesUrl);
400
+ copilotDisclaimer.append(( localize(19053, " suggestions and use your data to improve the product.")));
402
401
  copilotDisclaimer.append(" ");
403
- copilotDisclaimer.append(( localize(16988, "You can change these ")));
404
- this._createInlineLink(copilotDisclaimer, ( localize(16989, "settings")), this.defaultAccountService.resolveGitHubUrl(GitHubPaths.copilotSettings));
405
- copilotDisclaimer.append(( localize(16990, " anytime.")));
402
+ copilotDisclaimer.append(( localize(19054, "You can change these ")));
403
+ this._createInlineLink(copilotDisclaimer, ( localize(19055, "settings")), this.defaultAccountService.resolveGitHubUrl(GitHubPaths.copilotSettings));
404
+ copilotDisclaimer.append(( localize(19056, " anytime.")));
406
405
  }
407
406
  _renderDefaultSignInActions(actions) {
408
- const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(16991, "Continue with GitHub")), {
407
+ const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(19057, "Continue with GitHub")), {
409
408
  emphasized: true,
410
- label: ( localize(16992, "Continue with GitHub"))
409
+ label: ( localize(19058, "Continue with GitHub"))
411
410
  }));
412
411
  this.stepDisposables.add(addDisposableListener(githubBtn, EventType.CLICK, () => {
413
412
  this._logAction("signIn", undefined, "github");
414
413
  this._handleSignIn();
415
414
  }));
416
- const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(16993, "Continue with Google")), {
415
+ const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(19059, "Continue with Google")), {
417
416
  iconOnly: true,
418
- label: ( localize(16993, "Continue with Google"))
417
+ label: ( localize(19059, "Continue with Google"))
419
418
  }));
420
419
  this.stepDisposables.add(addDisposableListener(googleBtn, EventType.CLICK, () => {
421
420
  this._logAction("signIn", undefined, "google");
422
421
  this._handleSignIn("google");
423
422
  }));
424
- const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(16994, "Continue with Apple")), {
423
+ const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(19060, "Continue with Apple")), {
425
424
  iconOnly: true,
426
- label: ( localize(16994, "Continue with Apple"))
425
+ label: ( localize(19060, "Continue with Apple"))
427
426
  }));
428
427
  this.stepDisposables.add(addDisposableListener(appleBtn, EventType.CLICK, () => {
429
428
  this._logAction("signIn", undefined, "apple");
430
429
  this._handleSignIn("apple");
431
430
  }));
432
- const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(16995, "GHE")), {
431
+ const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(19061, "GHE")), {
433
432
  textOnly: true,
434
- label: ( localize(16996, "Continue with GitHub Enterprise"))
433
+ label: ( localize(19062, "Continue with GitHub Enterprise"))
435
434
  }));
436
435
  this.stepDisposables.add(addDisposableListener(gheBtn, EventType.CLICK, () => {
437
436
  this._logAction("signIn", undefined, "github-enterprise");
@@ -444,9 +443,9 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
444
443
  _renderEnterpriseInstanceForm(actions) {
445
444
  const enterprisePromptLabel = this._getEnterpriseInstancePromptLabel();
446
445
  const container = append(actions, $(".onboarding-a-signin-ghe-input"));
447
- const submitAction = this.stepDisposables.add(( new Action("onboarding.signIn.enterprise.submit", ( localize(16997, "Continue")), ThemeIcon.asClassName(Codicon.arrowRight), false)));
446
+ const submitAction = this.stepDisposables.add(( new Action("onboarding.signIn.enterprise.submit", ( localize(19063, "Continue")), ThemeIcon.asClassName(Codicon.arrowRight), false)));
448
447
  const inputBox = this.stepDisposables.add(( new InputBox(container, undefined, {
449
- placeholder: ( localize(16998, "i.e. \"octocat\" or \"https://octocat.ghe.com\"...")),
448
+ placeholder: ( localize(19064, "i.e. \"octocat\" or \"https://octocat.ghe.com\"...")),
450
449
  ariaLabel: enterprisePromptLabel,
451
450
  actions: [submitAction],
452
451
  inputBoxStyles: defaultInputBoxStyles
@@ -476,7 +475,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
476
475
  return false;
477
476
  case GheParseResultKind.SingleWord:
478
477
  message.classList.add("info");
479
- message.textContent = ( localize(16999, "Will resolve to {0}", result.resolvedUri));
478
+ message.textContent = ( localize(19065, "Will resolve to {0}", result.resolvedUri));
480
479
  submitAction.enabled = true;
481
480
  return true;
482
481
  case GheParseResultKind.FullUri:
@@ -487,7 +486,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
487
486
  inputBox.element.classList.add("error");
488
487
  message.classList.add("error");
489
488
  message.textContent = ( localize(
490
- 17000,
489
+ 19066,
491
490
  "You must enter a valid {0} instance (i.e. \"octocat\" or \"https://octocat.ghe.com\")",
492
491
  defaultChat.provider.enterprise.name
493
492
  ));
@@ -523,13 +522,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
523
522
  spinner.setAttribute("aria-hidden", "true");
524
523
  const message = append(container, $(".onboarding-a-signin-ghe-progress-message"));
525
524
  message.textContent = ( localize(
526
- 17001,
525
+ 19067,
527
526
  "Waiting for {0} sign-in to complete...",
528
527
  defaultChat.provider.enterprise.name
529
528
  ));
530
529
  }
531
530
  _getEnterpriseInstancePromptLabel() {
532
- return localize(17002, "What is your {0} instance?", defaultChat.provider.enterprise.name);
531
+ return localize(19068, "What is your {0} instance?", defaultChat.provider.enterprise.name);
533
532
  }
534
533
  _setEnterpriseSignInUiState(state) {
535
534
  this.enterpriseSignInUiState = state;
@@ -606,7 +605,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
606
605
  });
607
606
  this.notificationService.notify({
608
607
  severity: Severity.Error,
609
- message: ( localize(17003, "Sign-in failed. You can try again later from the Accounts menu."))
608
+ message: ( localize(19069, "Sign-in failed. You can try again later from the Accounts menu."))
610
609
  });
611
610
  }
612
611
  }
@@ -680,7 +679,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
680
679
  this.notificationService.notify({
681
680
  severity: Severity.Error,
682
681
  message: ( localize(
683
- 17004,
682
+ 19070,
684
683
  "GitHub Enterprise sign-in failed. Check your instance URL and try again."
685
684
  ))
686
685
  });
@@ -688,15 +687,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
688
687
  _renderPersonalizeStep(container) {
689
688
  const wrapper = append(container, $(".onboarding-a-personalize"));
690
689
  const themeLabel = append(wrapper, $("div.onboarding-a-section-label"));
691
- themeLabel.textContent = ( localize(17005, "Color Theme"));
690
+ themeLabel.textContent = ( localize(19071, "Color Theme"));
692
691
  const themeHint = append(wrapper, $("div.onboarding-a-theme-hint"));
693
692
  themeHint.textContent = ( localize(
694
- 17006,
693
+ 19072,
695
694
  "You can browse and install more themes later from the Extensions view."
696
695
  ));
697
696
  const themeGrid = append(wrapper, $(".onboarding-a-theme-grid"));
698
697
  themeGrid.setAttribute("role", "radiogroup");
699
- themeGrid.setAttribute("aria-label", ( localize(17007, "Choose a color theme")));
698
+ themeGrid.setAttribute("aria-label", ( localize(19073, "Choose a color theme")));
700
699
  const hasOtherEditors = this._hasOtherEditors();
701
700
  const allThemes = product.onboardingThemes ?? [];
702
701
  const themes = hasOtherEditors ? allThemes.filter(t => !t.id.startsWith("solarized")) : allThemes;
@@ -716,15 +715,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
716
715
  wrapper,
717
716
  $("div.onboarding-a-section-label.onboarding-a-section-label-keymap")
718
717
  );
719
- keymapLabel.textContent = ( localize(17008, "Keyboard Mapping"));
718
+ keymapLabel.textContent = ( localize(19074, "Keyboard Mapping"));
720
719
  const keymapHint = append(wrapper, $("div.onboarding-a-theme-hint"));
721
720
  keymapHint.textContent = ( localize(
722
- 17009,
721
+ 19075,
723
722
  "Coming from another editor? Import your keyboard mapping to feel right at home."
724
723
  ));
725
724
  const keymapList = append(wrapper, $(".onboarding-a-keymap-list"));
726
725
  keymapList.setAttribute("role", "radiogroup");
727
- keymapList.setAttribute("aria-label", ( localize(17010, "Choose a keyboard mapping")));
726
+ keymapList.setAttribute("aria-label", ( localize(19076, "Choose a keyboard mapping")));
728
727
  const keymapPills = [];
729
728
  for (const keymap of keymapOptions) {
730
729
  const pill = this._registerStepFocusable(append(keymapList, $("button.onboarding-a-keymap-pill")));
@@ -747,7 +746,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
747
746
  }
748
747
  pill.classList.add("selected");
749
748
  pill.setAttribute("aria-checked", "true");
750
- this.accessibilityService.alert(( localize(17011, "{0} keyboard mapping selected", keymap.label)));
749
+ this.accessibilityService.alert(( localize(19077, "{0} keyboard mapping selected", keymap.label)));
751
750
  }));
752
751
  }
753
752
  const selectedKeymapIndex = keymapOptions.findIndex(k => k.id === this.selectedKeymapId);
@@ -757,7 +756,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
757
756
  _renderPersonalizeSubtitle(container) {
758
757
  clearNode(container);
759
758
  const modifier = isMacintosh ? "Cmd" : "Ctrl";
760
- container.append(( localize(17012, "Tip: Press ")), this._createKbd(( localize(17013, "{0}", modifier))), "+", this._createKbd(( localize(17014, "Shift"))), "+", this._createKbd(( localize(17015, "P"))), ( localize(17016, " to access all VS Code commands.")));
759
+ container.append(( localize(19078, "Tip: Press ")), this._createKbd(( localize(19079, "{0}", modifier))), "+", this._createKbd(( localize(19080, "Shift"))), "+", this._createKbd(( localize(19081, "P"))), ( localize(19082, " to access all VS Code commands.")));
761
760
  }
762
761
  _createThemeCard(parent, theme, allCards) {
763
762
  const card = this._registerStepFocusable(append(parent, $("div.onboarding-a-theme-card")));
@@ -785,7 +784,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
785
784
  }
786
785
  card.classList.add("selected");
787
786
  card.setAttribute("aria-checked", "true");
788
- this.accessibilityService.alert(( localize(17017, "{0} theme selected", theme.label)));
787
+ this.accessibilityService.alert(( localize(19083, "{0} theme selected", theme.label)));
789
788
  }));
790
789
  this.stepDisposables.add(addDisposableListener(card, EventType.KEY_DOWN, e => {
791
790
  if (e.key === "Enter" || e.key === " ") {
@@ -822,7 +821,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
822
821
  this.notificationService.notify({
823
822
  severity: Severity.Warning,
824
823
  message: ( localize(
825
- 17018,
824
+ 19084,
826
825
  "Could not install {0} keymap. You can install it later from Extensions.",
827
826
  keymap.label
828
827
  ))
@@ -945,7 +944,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
945
944
  const wrapper = append(container, $(".onboarding-a-ai-pref"));
946
945
  const cards = append(wrapper, $(".onboarding-a-ai-pref-cards"));
947
946
  cards.setAttribute("role", "radiogroup");
948
- cards.setAttribute("aria-label", ( localize(17019, "Choose your AI collaboration style")));
947
+ cards.setAttribute("aria-label", ( localize(19085, "Choose your AI collaboration style")));
949
948
  const allCards = [];
950
949
  for (const option of ONBOARDING_AI_PREFERENCE_OPTIONS) {
951
950
  const card = this._registerStepFocusable(append(cards, $("button.onboarding-a-ai-pref-card")));
@@ -973,13 +972,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
973
972
  c.setAttribute("aria-checked", c.dataset.id === option.id ? "true" : "false");
974
973
  }
975
974
  this._applyAiPreference(option.id);
976
- this.accessibilityService.alert(( localize(17020, "{0} selected", option.label)));
975
+ this.accessibilityService.alert(( localize(19086, "{0} selected", option.label)));
977
976
  }));
978
977
  }
979
978
  const selectedAiIndex = ONBOARDING_AI_PREFERENCE_OPTIONS.findIndex(o => o.id === this.selectedAiMode);
980
979
  this._setupRadioGroupNavigation(allCards, Math.max(0, selectedAiIndex));
981
980
  const hint = append(wrapper, $("div.onboarding-a-ai-pref-hint"));
982
- hint.textContent = ( localize(17021, "You can change this anytime in Settings."));
981
+ hint.textContent = ( localize(19087, "You can change this anytime in Settings."));
983
982
  }
984
983
  _applyAiPreference(mode) {
985
984
  switch (mode) {
@@ -994,80 +993,11 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
994
993
  break;
995
994
  }
996
995
  }
997
- _renderAgentSessionsSubtitle(el) {
998
- clearNode(el);
999
- const keys = isMacintosh ?
1000
- ["⌘", "⌃", "I"] : ["Ctrl", "Alt", "I"];
1001
- const shortcut = ( keys.map(k => this._createKbd(k)));
1002
- el.append(( localize(17022, "Open Chat anytime with ")));
1003
- for (let i = 0; i < shortcut.length; i++) {
1004
- if (i > 0) {
1005
- el.append("+");
1006
- }
1007
- el.append(shortcut[i]);
1008
- }
1009
- }
1010
- _renderAgentSessionsStep(container) {
1011
- const wrapper = append(container, $(".onboarding-a-sessions"));
1012
- const features = append(wrapper, $(".onboarding-a-sessions-features"));
1013
- const chatGroup = append(features, $(".onboarding-a-sessions-group"));
1014
- const chatLabel = append(chatGroup, $("div.onboarding-a-sessions-group-label"));
1015
- chatLabel.textContent = ( localize(17023, "Agents made for the task"));
1016
- const chatGrid = append(chatGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
1017
- this._createFeatureCard(chatGrid, Codicon.listOrdered, ( localize(17024, "Plan")), ( localize(
1018
- 17025,
1019
- "Produce a structured implementation plan before any code changes, then hand it off to an agent to execute."
1020
- )));
1021
- this._createFeatureCard(chatGrid, Codicon.commentDiscussion, ( localize(17026, "Agent")), ( localize(
1022
- 17027,
1023
- "Describe a goal. The agent plans the approach, edits files, runs commands, and self-corrects. You review and approve along the way."
1024
- )));
1025
- const moreGroup = append(features, $(".onboarding-a-sessions-group"));
1026
- const moreLabel = append(moreGroup, $("div.onboarding-a-sessions-group-label"));
1027
- moreLabel.textContent = ( localize(17028, "Agents that work your way"));
1028
- const moreGrid = append(moreGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
1029
- this._createFeatureCard(moreGrid, Codicon.rocket, ( localize(17029, "Run Agents Anywhere")), ( localize(
1030
- 17030,
1031
- "Run agents locally for interactive work, in the background with Copilot CLI, or in the cloud with cloud agents that open a pull request your team can review."
1032
- )));
1033
- this._createFeatureCard(moreGrid, Codicon.settingsGear, ( localize(17031, "Customize Your Agents")), ( localize(
1034
- 17032,
1035
- "Tailor Copilot to your project with custom instructions and agents, skills, reusable prompts, and MCP servers that connect to the tools and context you rely on."
1036
- )));
1037
- const docsRow = append(wrapper, $(".onboarding-a-sessions-docs"));
1038
- this._createDocLink(docsRow, ( localize(17033, "Agents tutorial")), "https://code.visualstudio.com/docs/copilot/agents/agents-tutorial", "agentsTutorial");
1039
- }
1040
- _createFeatureCard(parent, icon, title, description) {
1041
- const card = append(parent, $("div.onboarding-a-feature-card"));
1042
- const iconCol = append(card, $("div.onboarding-a-feature-icon"));
1043
- iconCol.appendChild(renderIcon(icon));
1044
- const textCol = append(card, $("div.onboarding-a-feature-text"));
1045
- const titleEl = append(textCol, $("div.onboarding-a-feature-title"));
1046
- titleEl.textContent = title;
1047
- const descEl = append(textCol, $("div.onboarding-a-feature-desc"));
1048
- if (description) {
1049
- descEl.textContent = description;
1050
- }
1051
- return descEl;
1052
- }
1053
996
  _createKbd(label) {
1054
997
  const kbd = $("kbd.onboarding-a-kbd");
1055
998
  kbd.textContent = label;
1056
999
  return kbd;
1057
1000
  }
1058
- _createDocLink(parent, label, href, linkId) {
1059
- const link = this._registerStepFocusable(append(parent, $("a.onboarding-a-doc-link")));
1060
- link.textContent = label;
1061
- link.href = href;
1062
- link.target = "_blank";
1063
- link.rel = "noopener";
1064
- link.prepend(renderIcon(Codicon.linkExternal));
1065
- if (linkId) {
1066
- this.stepDisposables.add(addDisposableListener(link, EventType.CLICK, () => {
1067
- this._logAction("docLinkClick", undefined, linkId);
1068
- }));
1069
- }
1070
- }
1071
1001
  _createInlineLink(parent, label, href) {
1072
1002
  const link = this._registerStepFocusable(append(parent, $("a.onboarding-a-inline-link")));
1073
1003
  link.textContent = label;
@@ -13,7 +13,7 @@ registerAction2(class extends Action2 {
13
13
  constructor() {
14
14
  super({
15
15
  id: "workbench.action.welcomeOnboarding2026",
16
- title: ( localize2(17034, "Welcome Onboarding 2026")),
16
+ title: ( localize2(19088, "Welcome Onboarding 2026")),
17
17
  category: Categories.Developer,
18
18
  f1: true
19
19
  });
@@ -18,13 +18,13 @@ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/com
18
18
  import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
19
19
 
20
20
  var NewFileTemplatesManager_1;
21
- const builtInSource = ( localize(17049, "Built-In"));
22
- const category = ( localize2(17050, "Create"));
21
+ const builtInSource = ( localize(19101, "Built-In"));
22
+ const category = ( localize2(19102, "Create"));
23
23
  registerAction2(class extends Action2 {
24
24
  constructor() {
25
25
  super({
26
26
  id: "welcome.showNewFileEntries",
27
- title: ( localize2(17051, "New File...")),
27
+ title: ( localize2(19103, "New File...")),
28
28
  category,
29
29
  f1: true,
30
30
  precondition: ( IsSessionsWindowContext.negate()),
@@ -108,8 +108,8 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
108
108
  const qp = this.quickInputService.createQuickPick({
109
109
  useSeparators: true
110
110
  });
111
- qp.title = ( localize(17052, "New File..."));
112
- qp.placeholder = ( localize(17053, "Select File Type or Enter File Name..."));
111
+ qp.title = ( localize(19104, "New File..."));
112
+ qp.placeholder = ( localize(19105, "Select File Type or Enter File Name..."));
113
113
  qp.sortByLabel = false;
114
114
  qp.matchOnDetail = true;
115
115
  qp.matchOnDescription = true;
@@ -136,8 +136,8 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
136
136
  return a.from.localeCompare(b.from);
137
137
  };
138
138
  const displayCategory = {
139
- "file": ( localize(17054, "File")),
140
- "notebook": ( localize(17055, "Notebook"))
139
+ "file": ( localize(19106, "File")),
140
+ "notebook": ( localize(19107, "Notebook"))
141
141
  };
142
142
  const refreshQp = entries => {
143
143
  const items = [];
@@ -159,7 +159,7 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
159
159
  keybinding,
160
160
  buttons: command ? [{
161
161
  iconClass: "codicon codicon-gear",
162
- tooltip: ( localize(17056, "Configure Keybinding"))
162
+ tooltip: ( localize(19108, "Configure Keybinding"))
163
163
  }] : [],
164
164
  detail: "",
165
165
  description: entry.from
@@ -181,7 +181,7 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
181
181
  viewType: undefined,
182
182
  fileName: val
183
183
  },
184
- title: ( localize(17057, "Create New File ({0})", val)),
184
+ title: ( localize(19109, "Create New File ({0})", val)),
185
185
  group: "file",
186
186
  from: builtInSource
187
187
  };
@@ -215,7 +215,7 @@ MenuRegistry.appendMenuItem(MenuId.NewFile, {
215
215
  group: "file",
216
216
  command: {
217
217
  id: "workbench.action.files.newUntitledFile",
218
- title: ( localize(17058, "Text File"))
218
+ title: ( localize(19110, "Text File"))
219
219
  },
220
220
  order: 1
221
221
  });
@@ -61,9 +61,9 @@ function parseGroupAndOrder(welcome, contribution) {
61
61
  let group;
62
62
  let order;
63
63
  if (welcome.group) {
64
- if (!isProposedApiEnabled(contribution.description)) {
64
+ if (!isProposedApiEnabled(contribution.description, "contribViewsWelcome")) {
65
65
  contribution.collector.warn(( localize(
66
- 17059,
66
+ 19111,
67
67
  "The viewsWelcome contribution in '{0}' requires 'enabledApiProposals: [\"contribViewsWelcome\"]' in order to use the 'group' proposed property.",
68
68
  contribution.description.identifier.value
69
69
  )));
@@ -20,12 +20,12 @@ const ViewIdentifierMap = {
20
20
  const viewsWelcomeExtensionPointSchema = ( Object.freeze({
21
21
  type: "array",
22
22
  description: ( localize(
23
- 17060,
23
+ 19112,
24
24
  "Contributed views welcome content. Welcome content will be rendered in tree based views whenever they have no meaningful content to display, ie. the File Explorer when no folder is open. Such content is useful as in-product documentation to drive users to use certain features before they are available. A good example would be a `Clone Repository` button in the File Explorer welcome view."
25
25
  )),
26
26
  items: {
27
27
  type: "object",
28
- description: ( localize(17061, "Contributed welcome content for a specific view.")),
28
+ description: ( localize(19113, "Contributed welcome content for a specific view.")),
29
29
  required: [
30
30
  ViewsWelcomeExtensionPointFields.view,
31
31
  ViewsWelcomeExtensionPointFields.contents
@@ -35,13 +35,13 @@ const viewsWelcomeExtensionPointSchema = ( Object.freeze({
35
35
  anyOf: [{
36
36
  type: "string",
37
37
  description: ( localize(
38
- 17062,
38
+ 19114,
39
39
  "Target view identifier for this welcome content. Only tree based views are supported."
40
40
  ))
41
41
  }, {
42
42
  type: "string",
43
43
  description: ( localize(
44
- 17062,
44
+ 19114,
45
45
  "Target view identifier for this welcome content. Only tree based views are supported."
46
46
  )),
47
47
  enum: ( Object.keys(ViewIdentifierMap))
@@ -50,22 +50,22 @@ const viewsWelcomeExtensionPointSchema = ( Object.freeze({
50
50
  [ViewsWelcomeExtensionPointFields.contents]: {
51
51
  type: "string",
52
52
  description: ( localize(
53
- 17063,
53
+ 19115,
54
54
  "Welcome content to be displayed. The format of the contents is a subset of Markdown, with support for links only."
55
55
  ))
56
56
  },
57
57
  [ViewsWelcomeExtensionPointFields.when]: {
58
58
  type: "string",
59
- description: ( localize(17064, "Condition when the welcome content should be displayed."))
59
+ description: ( localize(19116, "Condition when the welcome content should be displayed."))
60
60
  },
61
61
  [ViewsWelcomeExtensionPointFields.group]: {
62
62
  type: "string",
63
- description: ( localize(17065, "Group to which this welcome content belongs. Proposed API."))
63
+ description: ( localize(19117, "Group to which this welcome content belongs. Proposed API."))
64
64
  },
65
65
  [ViewsWelcomeExtensionPointFields.enablement]: {
66
66
  type: "string",
67
67
  description: ( localize(
68
- 17066,
68
+ 19118,
69
69
  "Condition when the welcome content buttons and command links should be enabled."
70
70
  ))
71
71
  }