@codingame/monaco-vscode-walkthrough-service-override 30.0.0 → 31.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 +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsBanner.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsBanner.js +34 -0
- package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcome.js +31 -20
- package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcomeInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/media/agentSessionsWelcome.css +30 -6
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +33 -20
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +52 -43
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css +19 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +31 -4
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +156 -156
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
|
@@ -72,6 +72,7 @@ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
72
72
|
import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
|
|
73
73
|
import { IWorkbenchThemeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
|
|
74
74
|
import { GettingStartedIndexList } from './gettingStartedList.js';
|
|
75
|
+
import { canShowAgentsBanner, createAgentsBanner } from '../../chat/browser/agentSessions/agentSessionsBanner.js';
|
|
75
76
|
import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
76
77
|
import { AccessibleViewAction } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
|
|
77
78
|
import { KeybindingLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/keybindingLabel/keybindingLabel';
|
|
@@ -174,7 +175,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
174
175
|
this.container = $(".gettingStartedContainer", {
|
|
175
176
|
role: "document",
|
|
176
177
|
tabindex: 0,
|
|
177
|
-
"aria-label": ( localize(
|
|
178
|
+
"aria-label": ( localize(15390, "Overview of how to get up to speed with your editor."))
|
|
178
179
|
});
|
|
179
180
|
this.stepMediaComponent = $(".getting-started-media");
|
|
180
181
|
this.stepMediaComponent.id = generateUuid();
|
|
@@ -248,17 +249,17 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
248
249
|
badgeelement.parentElement?.setAttribute("aria-checked", "true");
|
|
249
250
|
badgeelement.classList.remove(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
250
251
|
badgeelement.classList.add("complete", ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
251
|
-
badgeelement.setAttribute("aria-label", ( localize(
|
|
252
|
+
badgeelement.setAttribute("aria-label", ( localize(15391, "{0}: Completed", step.title)));
|
|
252
253
|
} else {
|
|
253
254
|
badgeelement.setAttribute("aria-checked", "false");
|
|
254
255
|
badgeelement.parentElement?.setAttribute("aria-checked", "false");
|
|
255
256
|
badgeelement.classList.remove("complete", ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
256
257
|
badgeelement.classList.add(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
257
|
-
badgeelement.setAttribute("aria-label", ( localize(
|
|
258
|
+
badgeelement.setAttribute("aria-label", ( localize(15392, "{0}: Not completed", step.title)));
|
|
258
259
|
}
|
|
259
260
|
});
|
|
260
261
|
if (step.done) {
|
|
261
|
-
status(( localize(
|
|
262
|
+
status(( localize(15393, "Step {0} completed", step.title)));
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
265
|
this.updateCategoryProgress();
|
|
@@ -515,7 +516,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
515
516
|
canPickMany: false,
|
|
516
517
|
matchOnDescription: true,
|
|
517
518
|
matchOnDetail: true,
|
|
518
|
-
title: ( localize(
|
|
519
|
+
title: ( localize(15394, "Open Walkthrough..."))
|
|
519
520
|
});
|
|
520
521
|
if (selection) {
|
|
521
522
|
this.runDispatchCommand("selectCategory", selection.id);
|
|
@@ -746,7 +747,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
746
747
|
const themeType = this.themeService.getColorTheme().type;
|
|
747
748
|
const videoPath = media.path[themeType];
|
|
748
749
|
const videoPoster = media.poster ? media.poster[themeType] : undefined;
|
|
749
|
-
const altText = media.altText ? media.altText : ( localize(
|
|
750
|
+
const altText = media.altText ? media.altText : ( localize(15395, "Video for {0}", stepToExpand.title));
|
|
750
751
|
const rawHTML = await this.detailsRenderer.renderVideo(videoPath, videoPoster, altText);
|
|
751
752
|
this.webview.setHtml(rawHTML);
|
|
752
753
|
let isDisposed = false;
|
|
@@ -778,8 +779,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
778
779
|
provideScreenReaderUpdate() {
|
|
779
780
|
if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
|
|
780
781
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
|
|
781
|
-
return kbLabel ? ( localize(
|
|
782
|
-
|
|
782
|
+
return kbLabel ? ( localize(15396, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
|
|
783
|
+
15397,
|
|
783
784
|
"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
|
|
784
785
|
));
|
|
785
786
|
}
|
|
@@ -848,7 +849,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
848
849
|
this.categoriesSlide = $(".gettingStartedSlideCategories.gettingStartedSlide");
|
|
849
850
|
const prevButton = $("button.prev-button.button-link", {
|
|
850
851
|
"x-dispatch": "scrollPrev"
|
|
851
|
-
}, $("span.scroll-button.codicon.codicon-chevron-left"), $("span.moreText", {}, ( localize(
|
|
852
|
+
}, $("span.scroll-button.codicon.codicon-chevron-left"), $("span.moreText", {}, ( localize(15398, "Go Back"))));
|
|
852
853
|
this.stepsSlide = $(".gettingStartedSlideDetails.gettingStartedSlide", {}, prevButton);
|
|
853
854
|
this.stepsContent = $(".gettingStartedDetailsContent", {});
|
|
854
855
|
this.detailsPageScrollbar = this._register(( new DomScrollableElement(this.stepsContent, {
|
|
@@ -877,13 +878,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
877
878
|
icon: Codicon.check,
|
|
878
879
|
actionClassName: "getting-started-checkbox",
|
|
879
880
|
isChecked: this.configurationService.getValue(configurationKey) === "welcomePage",
|
|
880
|
-
title: ( localize(
|
|
881
|
+
title: ( localize(15399, "When checked, this page will be shown on startup.")),
|
|
881
882
|
...defaultToggleStyles
|
|
882
883
|
}));
|
|
883
884
|
showOnStartupCheckbox.domNode.id = "showOnStartup";
|
|
884
885
|
const showOnStartupLabel = $("label.caption", {
|
|
885
886
|
for: "showOnStartup"
|
|
886
|
-
}, ( localize(
|
|
887
|
+
}, ( localize(15400, "Show welcome page on startup")));
|
|
887
888
|
const onShowOnStartupChanged = () => {
|
|
888
889
|
if (showOnStartupCheckbox.checked) {
|
|
889
890
|
this.telemetryService.publicLog2("gettingStarted.ActionExecuted", {
|
|
@@ -913,18 +914,26 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
913
914
|
".header",
|
|
914
915
|
{},
|
|
915
916
|
$("h1.product-name.caption", {}, this.productService.nameLong),
|
|
916
|
-
$("p.subtitle.description", {}, ( localize(
|
|
917
|
+
$("p.subtitle.description", {}, ( localize(15401, "Editing evolved")))
|
|
917
918
|
);
|
|
918
919
|
const leftColumn = $(".categories-column.categories-column-left", {});
|
|
919
920
|
const rightColumn = $(".categories-column.categories-column-right", {});
|
|
920
921
|
const startList = this.buildStartList();
|
|
921
922
|
const recentList = this.buildRecentlyOpenedList();
|
|
922
923
|
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
|
|
923
|
-
const
|
|
924
|
-
|
|
925
|
-
{
|
|
924
|
+
const footerChildren = [];
|
|
925
|
+
if (canShowAgentsBanner(this.productService)) {
|
|
926
|
+
const agentsBanner = createAgentsBanner({
|
|
927
|
+
cssClass: "getting-started-category.agents-banner",
|
|
928
|
+
source: "welcomePage"
|
|
929
|
+
}, this.commandService, this.telemetryService);
|
|
930
|
+
this.categoriesSlideDisposables.add(agentsBanner.disposables);
|
|
931
|
+
footerChildren.push(agentsBanner.element);
|
|
932
|
+
}
|
|
933
|
+
footerChildren.push(
|
|
926
934
|
$("p.showOnStartup", {}, showOnStartupCheckbox.domNode, showOnStartupLabel)
|
|
927
935
|
);
|
|
936
|
+
const footer = $(".footer", {}, ...footerChildren);
|
|
928
937
|
const layoutLists = () => {
|
|
929
938
|
if (gettingStartedList.itemCount) {
|
|
930
939
|
this.container.classList.remove("noWalkthroughs");
|
|
@@ -980,7 +989,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
980
989
|
const telemetryNotice = $("p.telemetry-notice");
|
|
981
990
|
this.buildTelemetryFooter(telemetryNotice);
|
|
982
991
|
footer.appendChild(telemetryNotice);
|
|
983
|
-
} else if (!this.productService.openToWelcomeMainPage && this.showFeaturedWalkthrough && this.storageService.isNew(StorageScope.APPLICATION)) {
|
|
992
|
+
} else if (!this.productService.openToWelcomeMainPage && this.showFeaturedWalkthrough && this.storageService.isNew(StorageScope.APPLICATION) && !this.configurationService.getValue("workbench.welcomePage.experimentalOnboarding")) {
|
|
984
993
|
const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION) || ( new Date()).toUTCString();
|
|
985
994
|
const daysSinceFirstSession = ((+( new Date())) - (+( new Date(firstSessionDateString)))) / 1000 / 60 / 60 / 24;
|
|
986
995
|
const fistContentBehaviour = daysSinceFirstSession < 1 ? "openToFirstCategory" : "index";
|
|
@@ -1028,7 +1037,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1028
1037
|
const link = $("button.button-link");
|
|
1029
1038
|
link.innerText = name;
|
|
1030
1039
|
link.title = fullPath;
|
|
1031
|
-
link.setAttribute("aria-label", ( localize(
|
|
1040
|
+
link.setAttribute("aria-label", ( localize(15402, "Open folder {0} with path {1}", name, parentPath)));
|
|
1032
1041
|
link.addEventListener("click", e => {
|
|
1033
1042
|
this.telemetryService.publicLog2("gettingStarted.ActionExecuted", {
|
|
1034
1043
|
command: "openRecent",
|
|
@@ -1054,8 +1063,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1054
1063
|
{
|
|
1055
1064
|
"tabindex": 0,
|
|
1056
1065
|
"role": "button",
|
|
1057
|
-
"title": ( localize(
|
|
1058
|
-
"aria-label": ( localize(
|
|
1066
|
+
"title": ( localize(15403, "Remove from Recently Opened")),
|
|
1067
|
+
"aria-label": ( localize(15404, "Remove {0} from Recently Opened", name))
|
|
1059
1068
|
}
|
|
1060
1069
|
);
|
|
1061
1070
|
const handleDelete = async e => {
|
|
@@ -1077,20 +1086,20 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1077
1086
|
this.recentlyOpenedList.dispose();
|
|
1078
1087
|
}
|
|
1079
1088
|
const recentlyOpenedList = this.recentlyOpenedList = ( new GettingStartedIndexList({
|
|
1080
|
-
title: ( localize(
|
|
1089
|
+
title: ( localize(15405, "Recent")),
|
|
1081
1090
|
klass: "recently-opened",
|
|
1082
1091
|
limit: 5,
|
|
1083
|
-
empty: $(".empty-recent", {}, ( localize(
|
|
1092
|
+
empty: $(".empty-recent", {}, ( localize(15406, "You have no recent folders,")), $("button.button-link", {
|
|
1084
1093
|
"x-dispatch": "openFolder"
|
|
1085
|
-
}, ( localize(
|
|
1094
|
+
}, ( localize(15407, "open a folder"))), ( localize(15408, "to start."))),
|
|
1086
1095
|
more: $(".more", {}, $("button.button-link", {
|
|
1087
1096
|
"x-dispatch": "showMoreRecents",
|
|
1088
1097
|
title: ( localize(
|
|
1089
|
-
|
|
1098
|
+
15409,
|
|
1090
1099
|
"Show All Recent Folders {0}",
|
|
1091
1100
|
this.getKeybindingLabel(OpenRecentAction.ID)
|
|
1092
1101
|
))
|
|
1093
|
-
}, ( localize(
|
|
1102
|
+
}, ( localize(15410, "More...")))),
|
|
1094
1103
|
renderElement: renderRecent,
|
|
1095
1104
|
contextService: this.contextService
|
|
1096
1105
|
}));
|
|
@@ -1139,7 +1148,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1139
1148
|
this.startList.dispose();
|
|
1140
1149
|
}
|
|
1141
1150
|
const startList = this.startList = ( new GettingStartedIndexList({
|
|
1142
|
-
title: ( localize(
|
|
1151
|
+
title: ( localize(15411, "Start")),
|
|
1143
1152
|
klass: "start-container",
|
|
1144
1153
|
limit: 10,
|
|
1145
1154
|
renderElement: renderStartEntry,
|
|
@@ -1155,9 +1164,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1155
1164
|
const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
|
|
1156
1165
|
const newBadge = $(".new-badge", {});
|
|
1157
1166
|
if (category.newEntry) {
|
|
1158
|
-
reset(newBadge, $(".new-category", {}, ( localize(
|
|
1167
|
+
reset(newBadge, $(".new-category", {}, ( localize(15412, "New"))));
|
|
1159
1168
|
} else if (category.newItems) {
|
|
1160
|
-
reset(newBadge, $(".new-items", {}, ( localize(
|
|
1169
|
+
reset(newBadge, $(".new-items", {}, ( localize(15413, "Updated"))));
|
|
1161
1170
|
}
|
|
1162
1171
|
const featuredBadge = $(".featured-badge", {});
|
|
1163
1172
|
const descriptionContent = $(".description-content", {});
|
|
@@ -1188,9 +1197,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1188
1197
|
$("a.codicon.codicon-close.hide-category-button", {
|
|
1189
1198
|
"tabindex": 0,
|
|
1190
1199
|
"x-dispatch": "hideCategory:" + category.id,
|
|
1191
|
-
"title": ( localize(
|
|
1200
|
+
"title": ( localize(15414, "Hide")),
|
|
1192
1201
|
"role": "button",
|
|
1193
|
-
"aria-label": ( localize(
|
|
1202
|
+
"aria-label": ( localize(15415, "Hide"))
|
|
1194
1203
|
})
|
|
1195
1204
|
),
|
|
1196
1205
|
descriptionContent,
|
|
@@ -1224,13 +1233,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1224
1233
|
return rank;
|
|
1225
1234
|
};
|
|
1226
1235
|
const gettingStartedList = this.gettingStartedList = ( new GettingStartedIndexList({
|
|
1227
|
-
title: ( localize(
|
|
1236
|
+
title: ( localize(15416, "Walkthroughs")),
|
|
1228
1237
|
klass: "getting-started",
|
|
1229
1238
|
limit: 5,
|
|
1230
1239
|
footer: $("span.button-link.see-all-walkthroughs", {
|
|
1231
1240
|
"x-dispatch": "seeAllWalkthroughs",
|
|
1232
1241
|
"tabindex": 0
|
|
1233
|
-
}, ( localize(
|
|
1242
|
+
}, ( localize(15410, "More..."))),
|
|
1234
1243
|
renderElement: renderGetttingStaredWalkthrough,
|
|
1235
1244
|
rankElement: rankWalkthrough,
|
|
1236
1245
|
contextService: this.contextService
|
|
@@ -1283,9 +1292,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1283
1292
|
bar.style.width = `${progress}%`;
|
|
1284
1293
|
element.parentElement.classList.toggle("no-progress", stats.stepsComplete === 0);
|
|
1285
1294
|
if (stats.stepsTotal === stats.stepsComplete) {
|
|
1286
|
-
bar.title = ( localize(
|
|
1295
|
+
bar.title = ( localize(15417, "All {0} steps complete!", stats.stepsComplete));
|
|
1287
1296
|
} else {
|
|
1288
|
-
bar.title = ( localize(
|
|
1297
|
+
bar.title = ( localize(15418, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
|
|
1289
1298
|
}
|
|
1290
1299
|
});
|
|
1291
1300
|
}
|
|
@@ -1436,7 +1445,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1436
1445
|
if (isCommand) {
|
|
1437
1446
|
const keybinding = this.getKeyBinding(command);
|
|
1438
1447
|
if (keybinding) {
|
|
1439
|
-
const shortcutMessage = $("span.shortcut-message", {}, ( localize(
|
|
1448
|
+
const shortcutMessage = $("span.shortcut-message", {}, ( localize(15419, "Tip: Use keyboard shortcut ")));
|
|
1440
1449
|
container.appendChild(shortcutMessage);
|
|
1441
1450
|
const label = ( new KeybindingLabel(shortcutMessage, OS, {
|
|
1442
1451
|
...defaultKeybindingLabelStyles
|
|
@@ -1545,7 +1554,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1545
1554
|
"x-dispatch": "toggleStepCompletion:" + step.id,
|
|
1546
1555
|
"role": "checkbox",
|
|
1547
1556
|
"aria-checked": step.done ? "true" : "false",
|
|
1548
|
-
"aria-label": step.done ? ( localize(
|
|
1557
|
+
"aria-label": step.done ? ( localize(15391, "{0}: Completed", step.title)) : ( localize(15392, "{0}: Not completed", step.title))
|
|
1549
1558
|
}
|
|
1550
1559
|
);
|
|
1551
1560
|
const container = $(".step-description-container", {
|
|
@@ -1559,11 +1568,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1559
1568
|
const stepDescription = $(".step-container", {}, stepTitle, container);
|
|
1560
1569
|
if (step.media.type === "image") {
|
|
1561
1570
|
stepDescription.appendChild($(".image-description", {
|
|
1562
|
-
"aria-label": ( localize(
|
|
1571
|
+
"aria-label": ( localize(15420, "Image showing {0}", step.media.altText))
|
|
1563
1572
|
}));
|
|
1564
1573
|
} else if (step.media.type === "video") {
|
|
1565
1574
|
stepDescription.appendChild($(".video-description", {
|
|
1566
|
-
"aria-label": ( localize(
|
|
1575
|
+
"aria-label": ( localize(15421, "Video showing {0}", step.media.altText))
|
|
1567
1576
|
}));
|
|
1568
1577
|
}
|
|
1569
1578
|
return $("button.getting-started-step", {
|
|
@@ -1588,9 +1597,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1588
1597
|
"role": "list"
|
|
1589
1598
|
}, stepListContainer, $(".done-next-container", {}, $("button.button-link.all-done", {
|
|
1590
1599
|
"x-dispatch": "allDone"
|
|
1591
|
-
}, $("span.codicon.codicon-check-all"), ( localize(
|
|
1600
|
+
}, $("span.codicon.codicon-check-all"), ( localize(15422, "Mark Done"))), ...(showNextCategory ? [$("button.button-link.next", {
|
|
1592
1601
|
"x-dispatch": "nextSection"
|
|
1593
|
-
}, ( localize(
|
|
1602
|
+
}, ( localize(15423, "Next Section")), $("span.codicon.codicon-arrow-right"))] : [])));
|
|
1594
1603
|
this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, {
|
|
1595
1604
|
className: "steps-container"
|
|
1596
1605
|
})));
|
|
@@ -1613,12 +1622,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1613
1622
|
this.registerDispatchListeners();
|
|
1614
1623
|
}
|
|
1615
1624
|
buildTelemetryFooter(parent) {
|
|
1616
|
-
const privacyStatementCopy = ( localize(
|
|
1625
|
+
const privacyStatementCopy = ( localize(15424, "privacy statement"));
|
|
1617
1626
|
const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
|
|
1618
|
-
const optOutCopy = ( localize(
|
|
1627
|
+
const optOutCopy = ( localize(15425, "opt out"));
|
|
1619
1628
|
const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
|
|
1620
1629
|
const text = ( localize(
|
|
1621
|
-
|
|
1630
|
+
15426,
|
|
1622
1631
|
"{0} collects usage data. Read our {1} and learn how to {2}.",
|
|
1623
1632
|
this.productService.nameShort,
|
|
1624
1633
|
privacyStatementButton,
|
|
@@ -1693,7 +1702,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1693
1702
|
const prevButton = this.container.querySelector(".prev-button.button-link");
|
|
1694
1703
|
prevButton.style.display = this.editorInput?.showWelcome || this.editorInput?.returnToCommand || this.prevWalkthrough ? "block" : "none";
|
|
1695
1704
|
const moreTextElement = prevButton.querySelector(".moreText");
|
|
1696
|
-
moreTextElement.textContent = firstLaunch ? ( localize(
|
|
1705
|
+
moreTextElement.textContent = firstLaunch ? ( localize(15427, "Welcome")) : ( localize(15398, "Go Back"));
|
|
1697
1706
|
this.container.querySelector(".gettingStartedSlideDetails").querySelectorAll("button").forEach(button => button.disabled = false);
|
|
1698
1707
|
this.container.querySelector(".gettingStartedSlideCategories").querySelectorAll("button").forEach(button => button.disabled = true);
|
|
1699
1708
|
this.container.querySelector(".gettingStartedSlideCategories").querySelectorAll("input").forEach(button => button.disabled = true);
|
|
@@ -130,9 +130,9 @@ class GettingStartedAccessibleProvider extends Disposable {
|
|
|
130
130
|
}
|
|
131
131
|
_getContent(waltkrough, step, includeTitle) {
|
|
132
132
|
const description = ( step.description.map(lt => lt.nodes.filter(node => typeof node === "string"))).join("\n");
|
|
133
|
-
const stepsContent = ( localize(
|
|
133
|
+
const stepsContent = ( localize(15428, "{0}\n{1}", step.title, description));
|
|
134
134
|
if (includeTitle) {
|
|
135
|
-
return [( localize(
|
|
135
|
+
return [( localize(15429, "Title: {0}", waltkrough.title)), ( localize(15430, "Description: {0}", waltkrough.description)), stepsContent].join("\n");
|
|
136
136
|
} else {
|
|
137
137
|
return stepsContent;
|
|
138
138
|
}
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js
CHANGED
|
@@ -12,30 +12,30 @@ 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(
|
|
15
|
+
registerColor("welcomePage.background", null, ( localize(15431, "Background color for the Welcome page.")));
|
|
16
16
|
registerColor("welcomePage.tileBackground", {
|
|
17
17
|
dark: editorWidgetBackground,
|
|
18
18
|
light: editorWidgetBackground,
|
|
19
19
|
hcDark: "#000",
|
|
20
20
|
hcLight: editorWidgetBackground
|
|
21
|
-
}, ( localize(
|
|
21
|
+
}, ( localize(15432, "Background color for the tiles on the Welcome page.")));
|
|
22
22
|
registerColor("welcomePage.tileHoverBackground", {
|
|
23
23
|
dark: ( lighten(editorWidgetBackground, .2)),
|
|
24
24
|
light: ( darken(editorWidgetBackground, .1)),
|
|
25
25
|
hcDark: null,
|
|
26
26
|
hcLight: null
|
|
27
|
-
}, ( localize(
|
|
27
|
+
}, ( localize(15433, "Hover background color for the tiles on the Welcome.")));
|
|
28
28
|
registerColor("welcomePage.tileBorder", {
|
|
29
29
|
dark: "#ffffff1a",
|
|
30
30
|
light: "#0000001a",
|
|
31
31
|
hcDark: contrastBorder,
|
|
32
32
|
hcLight: contrastBorder
|
|
33
|
-
}, ( localize(
|
|
34
|
-
registerColor("welcomePage.progress.background", inputBackground, ( localize(
|
|
35
|
-
registerColor("welcomePage.progress.foreground", textLinkForeground, ( localize(
|
|
33
|
+
}, ( localize(15434, "Border color for the tiles on the Welcome page.")));
|
|
34
|
+
registerColor("welcomePage.progress.background", inputBackground, ( localize(15435, "Foreground color for the Welcome page progress bars.")));
|
|
35
|
+
registerColor("welcomePage.progress.foreground", textLinkForeground, ( localize(15436, "Background color for the Welcome page progress bars.")));
|
|
36
36
|
registerColor("walkthrough.stepTitle.foreground", {
|
|
37
37
|
light: "#000000",
|
|
38
38
|
dark: "#ffffff",
|
|
39
39
|
hcDark: null,
|
|
40
40
|
hcLight: null
|
|
41
|
-
}, ( localize(
|
|
41
|
+
}, ( localize(15437, "Foreground color of the heading of each walkthrough step")));
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
3
3
|
import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
4
4
|
|
|
5
|
-
const titleTranslated = ( localize(
|
|
5
|
+
const titleTranslated = ( localize(15438, "Title"));
|
|
6
6
|
const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
7
7
|
extensionPoint: "walkthroughs",
|
|
8
8
|
jsonSchema: {
|
|
9
9
|
description: ( localize(
|
|
10
|
-
|
|
10
|
+
15439,
|
|
11
11
|
"Contribute walkthroughs to help users getting started with your extension."
|
|
12
12
|
)),
|
|
13
13
|
type: "array",
|
|
@@ -25,27 +25,27 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
25
25
|
properties: {
|
|
26
26
|
id: {
|
|
27
27
|
type: "string",
|
|
28
|
-
description: ( localize(
|
|
28
|
+
description: ( localize(15440, "Unique identifier for this walkthrough."))
|
|
29
29
|
},
|
|
30
30
|
title: {
|
|
31
31
|
type: "string",
|
|
32
|
-
description: ( localize(
|
|
32
|
+
description: ( localize(15441, "Title of walkthrough."))
|
|
33
33
|
},
|
|
34
34
|
icon: {
|
|
35
35
|
type: "string",
|
|
36
36
|
description: ( localize(
|
|
37
|
-
|
|
37
|
+
15442,
|
|
38
38
|
"Relative path to the icon of the walkthrough. The path is relative to the extension location. If not specified, the icon defaults to the extension icon if available."
|
|
39
39
|
))
|
|
40
40
|
},
|
|
41
41
|
description: {
|
|
42
42
|
type: "string",
|
|
43
|
-
description: ( localize(
|
|
43
|
+
description: ( localize(15443, "Description of walkthrough."))
|
|
44
44
|
},
|
|
45
45
|
featuredFor: {
|
|
46
46
|
type: "array",
|
|
47
47
|
description: ( localize(
|
|
48
|
-
|
|
48
|
+
15444,
|
|
49
49
|
"Walkthroughs that match one of these glob patterns appear as 'featured' in workspaces with the specified files. For example, a walkthrough for TypeScript projects might specify `tsconfig.json` here."
|
|
50
50
|
)),
|
|
51
51
|
items: {
|
|
@@ -55,13 +55,13 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
55
55
|
when: {
|
|
56
56
|
type: "string",
|
|
57
57
|
description: ( localize(
|
|
58
|
-
|
|
58
|
+
15445,
|
|
59
59
|
"Context key expression to control the visibility of this walkthrough."
|
|
60
60
|
))
|
|
61
61
|
},
|
|
62
62
|
steps: {
|
|
63
63
|
type: "array",
|
|
64
|
-
description: ( localize(
|
|
64
|
+
description: ( localize(15446, "Steps to complete as part of this walkthrough.")),
|
|
65
65
|
items: {
|
|
66
66
|
type: "object",
|
|
67
67
|
required: ["id", "title", "media"],
|
|
@@ -78,18 +78,18 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
78
78
|
id: {
|
|
79
79
|
type: "string",
|
|
80
80
|
description: ( localize(
|
|
81
|
-
|
|
81
|
+
15447,
|
|
82
82
|
"Unique identifier for this step. This is used to keep track of which steps have been completed."
|
|
83
83
|
))
|
|
84
84
|
},
|
|
85
85
|
title: {
|
|
86
86
|
type: "string",
|
|
87
|
-
description: ( localize(
|
|
87
|
+
description: ( localize(15448, "Title of step."))
|
|
88
88
|
},
|
|
89
89
|
description: {
|
|
90
90
|
type: "string",
|
|
91
91
|
description: ( localize(
|
|
92
|
-
|
|
92
|
+
15449,
|
|
93
93
|
"Description of step. Supports ``preformatted``, __italic__, and **bold** text. Use markdown-style links for commands or external links: {0}, {1}, or {2}. Links on their own line will be rendered as buttons.",
|
|
94
94
|
`[${titleTranslated}](command:myext.command)`,
|
|
95
95
|
`[${titleTranslated}](command:toSide:myext.command)`,
|
|
@@ -98,7 +98,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
98
98
|
},
|
|
99
99
|
button: {
|
|
100
100
|
deprecationMessage: ( localize(
|
|
101
|
-
|
|
101
|
+
15450,
|
|
102
102
|
"Deprecated. Use markdown links in the description instead, i.e. {0}, {1}, or {2}",
|
|
103
103
|
`[${titleTranslated}](command:myext.command)`,
|
|
104
104
|
`[${titleTranslated}](command:toSide:myext.command)`,
|
|
@@ -108,7 +108,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
108
108
|
media: {
|
|
109
109
|
type: "object",
|
|
110
110
|
description: ( localize(
|
|
111
|
-
|
|
111
|
+
15451,
|
|
112
112
|
"Media to show alongside this step, either an image or markdown content."
|
|
113
113
|
)),
|
|
114
114
|
oneOf: [{
|
|
@@ -116,11 +116,11 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
116
116
|
additionalProperties: false,
|
|
117
117
|
properties: {
|
|
118
118
|
path: {
|
|
119
|
-
deprecationMessage: ( localize(
|
|
119
|
+
deprecationMessage: ( localize(15452, "Deprecated. Please use `image` or `markdown` instead"))
|
|
120
120
|
},
|
|
121
121
|
image: {
|
|
122
122
|
description: ( localize(
|
|
123
|
-
|
|
123
|
+
15453,
|
|
124
124
|
"Path to an image - or object consisting of paths to light, dark, and hc images - relative to extension directory. Depending on context, the image will be displayed from 400px to 800px wide, with similar bounds on height. To support HIDPI displays, the image will be rendered at 1.5x scaling, for example a 900 physical pixels wide image will be displayed as 600 logical pixels wide."
|
|
125
125
|
)),
|
|
126
126
|
oneOf: [{
|
|
@@ -131,25 +131,25 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
131
131
|
properties: {
|
|
132
132
|
dark: {
|
|
133
133
|
description: ( localize(
|
|
134
|
-
|
|
134
|
+
15454,
|
|
135
135
|
"Path to the image for dark themes, relative to extension directory."
|
|
136
136
|
)),
|
|
137
137
|
type: "string"
|
|
138
138
|
},
|
|
139
139
|
light: {
|
|
140
140
|
description: ( localize(
|
|
141
|
-
|
|
141
|
+
15455,
|
|
142
142
|
"Path to the image for light themes, relative to extension directory."
|
|
143
143
|
)),
|
|
144
144
|
type: "string"
|
|
145
145
|
},
|
|
146
146
|
hc: {
|
|
147
|
-
description: ( localize(
|
|
147
|
+
description: ( localize(15456, "Path to the image for hc themes, relative to extension directory.")),
|
|
148
148
|
type: "string"
|
|
149
149
|
},
|
|
150
150
|
hcLight: {
|
|
151
151
|
description: ( localize(
|
|
152
|
-
|
|
152
|
+
15457,
|
|
153
153
|
"Path to the image for hc light themes, relative to extension directory."
|
|
154
154
|
)),
|
|
155
155
|
type: "string"
|
|
@@ -160,7 +160,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
160
160
|
altText: {
|
|
161
161
|
type: "string",
|
|
162
162
|
description: ( localize(
|
|
163
|
-
|
|
163
|
+
15458,
|
|
164
164
|
"Alternate text to display when the image cannot be loaded or in screen readers."
|
|
165
165
|
))
|
|
166
166
|
}
|
|
@@ -171,7 +171,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
171
171
|
properties: {
|
|
172
172
|
svg: {
|
|
173
173
|
description: ( localize(
|
|
174
|
-
|
|
174
|
+
15459,
|
|
175
175
|
"Path to an svg, color tokens are supported in variables to support theming to match the workbench."
|
|
176
176
|
)),
|
|
177
177
|
type: "string"
|
|
@@ -179,7 +179,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
179
179
|
altText: {
|
|
180
180
|
type: "string",
|
|
181
181
|
description: ( localize(
|
|
182
|
-
|
|
182
|
+
15458,
|
|
183
183
|
"Alternate text to display when the image cannot be loaded or in screen readers."
|
|
184
184
|
))
|
|
185
185
|
}
|
|
@@ -189,10 +189,10 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
189
189
|
additionalProperties: false,
|
|
190
190
|
properties: {
|
|
191
191
|
path: {
|
|
192
|
-
deprecationMessage: ( localize(
|
|
192
|
+
deprecationMessage: ( localize(15452, "Deprecated. Please use `image` or `markdown` instead"))
|
|
193
193
|
},
|
|
194
194
|
markdown: {
|
|
195
|
-
description: ( localize(
|
|
195
|
+
description: ( localize(15460, "Path to the markdown document, relative to extension directory.")),
|
|
196
196
|
type: "string"
|
|
197
197
|
}
|
|
198
198
|
}
|
|
@@ -200,7 +200,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
200
200
|
},
|
|
201
201
|
completionEvents: {
|
|
202
202
|
description: ( localize(
|
|
203
|
-
|
|
203
|
+
15461,
|
|
204
204
|
"Events that should trigger this step to become checked off. If empty or not defined, the step will check off when any of the step's buttons or links are clicked; if the step has no buttons or links it will check on when it is selected."
|
|
205
205
|
)),
|
|
206
206
|
type: "array",
|
|
@@ -209,47 +209,47 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
209
209
|
defaultSnippets: [{
|
|
210
210
|
label: "onCommand",
|
|
211
211
|
description: ( localize(
|
|
212
|
-
|
|
212
|
+
15462,
|
|
213
213
|
"Check off step when a given command is executed anywhere in VS Code."
|
|
214
214
|
)),
|
|
215
215
|
body: "onCommand:${1:commandId}"
|
|
216
216
|
}, {
|
|
217
217
|
label: "onLink",
|
|
218
218
|
description: ( localize(
|
|
219
|
-
|
|
219
|
+
15463,
|
|
220
220
|
"Check off step when a given link is opened via a walkthrough step."
|
|
221
221
|
)),
|
|
222
222
|
body: "onLink:${2:linkId}"
|
|
223
223
|
}, {
|
|
224
224
|
label: "onView",
|
|
225
|
-
description: ( localize(
|
|
225
|
+
description: ( localize(15464, "Check off step when a given view is opened")),
|
|
226
226
|
body: "onView:${2:viewId}"
|
|
227
227
|
}, {
|
|
228
228
|
label: "onSettingChanged",
|
|
229
|
-
description: ( localize(
|
|
229
|
+
description: ( localize(15465, "Check off step when a given setting is changed")),
|
|
230
230
|
body: "onSettingChanged:${2:settingName}"
|
|
231
231
|
}, {
|
|
232
232
|
label: "onContext",
|
|
233
|
-
description: ( localize(
|
|
233
|
+
description: ( localize(15466, "Check off step when a context key expression is true.")),
|
|
234
234
|
body: "onContext:${2:key}"
|
|
235
235
|
}, {
|
|
236
236
|
label: "onExtensionInstalled",
|
|
237
237
|
description: ( localize(
|
|
238
|
-
|
|
238
|
+
15467,
|
|
239
239
|
"Check off step when an extension with the given id is installed. If the extension is already installed, the step will start off checked."
|
|
240
240
|
)),
|
|
241
241
|
body: "onExtensionInstalled:${3:extensionId}"
|
|
242
242
|
}, {
|
|
243
243
|
label: "onStepSelected",
|
|
244
|
-
description: ( localize(
|
|
244
|
+
description: ( localize(15468, "Check off step as soon as it is selected.")),
|
|
245
245
|
body: "onStepSelected"
|
|
246
246
|
}]
|
|
247
247
|
}
|
|
248
248
|
},
|
|
249
249
|
doneOn: {
|
|
250
|
-
description: ( localize(
|
|
250
|
+
description: ( localize(15469, "Signal to mark step as complete.")),
|
|
251
251
|
deprecationMessage: ( localize(
|
|
252
|
-
|
|
252
|
+
15470,
|
|
253
253
|
"doneOn is deprecated. By default steps will be checked off when their buttons are clicked, to configure further use completionEvents"
|
|
254
254
|
)),
|
|
255
255
|
type: "object",
|
|
@@ -261,14 +261,14 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
261
261
|
}],
|
|
262
262
|
properties: {
|
|
263
263
|
"command": {
|
|
264
|
-
description: ( localize(
|
|
264
|
+
description: ( localize(15471, "Mark step done when the specified command is executed.")),
|
|
265
265
|
type: "string"
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
},
|
|
269
269
|
when: {
|
|
270
270
|
type: "string",
|
|
271
|
-
description: ( localize(
|
|
271
|
+
description: ( localize(15472, "Context key expression to control the visibility of this step."))
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
}
|