@open-slide/core 1.2.0 → 1.3.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/dist/{build-6BeQ3cxb.js → build-_276DMmJ.js} +2 -2
- package/dist/cli/bin.js +5 -5
- package/dist/{config-AxZ5OE1u.js → config-BAwKWNtW.js} +215 -18
- package/dist/{config-CtT8K4VF.d.ts → config-D9cZ1A0X.d.ts} +2 -1
- package/dist/{dev-C9eLmUEq.js → dev-BoqeVXVq.js} +2 -2
- package/dist/en-CDKzoZvf.js +351 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +229 -39
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.js +97 -333
- package/dist/{preview-Cunm-f4i.js → preview-BLPxspc9.js} +2 -2
- package/dist/sync-j9_QPovT.js +3 -0
- package/dist/{types-CRHIeoNq.d.ts → types-JYG1cmwC.d.ts} +31 -1
- package/dist/vite/index.d.ts +2 -2
- package/dist/vite/index.js +2 -2
- package/package.json +9 -1
- package/skills/create-slide/SKILL.md +1 -1
- package/skills/create-theme/SKILL.md +60 -12
- package/skills/slide-authoring/SKILL.md +11 -0
- package/src/app/app.tsx +11 -1
- package/src/app/components/asset-view.tsx +1 -13
- package/src/app/components/image-placeholder.tsx +123 -1
- package/src/app/components/inspector/inspector-panel.tsx +123 -10
- package/src/app/components/sidebar/folder-item.tsx +16 -5
- package/src/app/components/sidebar/mobile-pill.tsx +34 -0
- package/src/app/components/sidebar/sidebar.tsx +10 -0
- package/src/app/components/themes/theme-detail.tsx +300 -0
- package/src/app/components/themes/themes-gallery.tsx +146 -0
- package/src/app/components/thumbnail-rail.tsx +17 -5
- package/src/app/lib/assets.ts +55 -2
- package/src/app/lib/sdk.ts +1 -0
- package/src/app/lib/slides.ts +10 -1
- package/src/app/lib/themes.ts +22 -0
- package/src/app/lib/use-agent-socket.ts +18 -0
- package/src/app/routes/home-shell.tsx +173 -0
- package/src/app/routes/home.tsx +89 -207
- package/src/app/routes/slide.tsx +144 -14
- package/src/app/routes/themes.tsx +34 -0
- package/src/app/virtual.d.ts +20 -0
- package/src/locale/en.ts +35 -3
- package/src/locale/ja.ts +36 -3
- package/src/locale/types.ts +33 -1
- package/src/locale/zh-cn.ts +35 -3
- package/src/locale/zh-tw.ts +35 -3
- package/dist/sync-B4eLo2H6.js +0 -3
- /package/dist/{design-C13iz9_4.js → design-cpzS8aud.js} +0 -0
- /package/dist/{sync-3oqN1WyK.js → sync-BCJDRIqo.js} +0 -0
package/dist/locale/index.js
CHANGED
|
@@ -1,325 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
const en = {
|
|
3
|
-
id: "en",
|
|
4
|
-
common: {
|
|
5
|
-
cancel: "Cancel",
|
|
6
|
-
save: "Save",
|
|
7
|
-
saving: "Saving",
|
|
8
|
-
saved: "Saved",
|
|
9
|
-
discard: "Discard",
|
|
10
|
-
delete: "Delete",
|
|
11
|
-
rename: "Rename",
|
|
12
|
-
move: "Move",
|
|
13
|
-
close: "Close",
|
|
14
|
-
loading: "Loading",
|
|
15
|
-
loadFailed: "Load failed",
|
|
16
|
-
failedToLoadSlide: "Failed to load slide",
|
|
17
|
-
home: "Home",
|
|
18
|
-
backToHome: "Back to home",
|
|
19
|
-
preview: "Preview",
|
|
20
|
-
add: "Add",
|
|
21
|
-
done: "Done",
|
|
22
|
-
tryAgain: "Try again",
|
|
23
|
-
undo: "Undo",
|
|
24
|
-
redo: "Redo",
|
|
25
|
-
light: "Light",
|
|
26
|
-
dark: "Dark",
|
|
27
|
-
system: "System",
|
|
28
|
-
selected: "Selected"
|
|
29
|
-
},
|
|
30
|
-
notFound: {
|
|
31
|
-
eyebrow: "404 · not found",
|
|
32
|
-
title: "Page not found"
|
|
33
|
-
},
|
|
34
|
-
home: {
|
|
35
|
-
appTitle: "open-slide",
|
|
36
|
-
draft: "Draft",
|
|
37
|
-
folders: "Folders",
|
|
38
|
-
newFolder: "New folder",
|
|
39
|
-
folderName: "Folder name",
|
|
40
|
-
changeIcon: "Change icon",
|
|
41
|
-
iconEmojiTab: "Emoji",
|
|
42
|
-
iconColorTab: "Color",
|
|
43
|
-
folderActions: "Folder actions",
|
|
44
|
-
searchPlaceholder: "Search slides",
|
|
45
|
-
clearSearch: "Clear search",
|
|
46
|
-
noMatches: "No matches",
|
|
47
|
-
nothingMatchesPrefix: "Nothing matches ",
|
|
48
|
-
nothingMatchesSuffix: " in this folder.",
|
|
49
|
-
noSlidesYet: "No slides yet",
|
|
50
|
-
createSlideHintPrefix: "Create ",
|
|
51
|
-
createSlideHintMid: " that ",
|
|
52
|
-
createSlideHintSuffix: ".",
|
|
53
|
-
folderEmptyTitle: "{name} is empty",
|
|
54
|
-
folderEmptyHint: "Drag a slide from Draft into this folder in the sidebar.",
|
|
55
|
-
slideActions: "Slide actions",
|
|
56
|
-
moveToFolder: "Move to folder…",
|
|
57
|
-
renameDialogEyebrow: "Rename",
|
|
58
|
-
renameDialogTitle: "Rename slide",
|
|
59
|
-
renameDialogDescription: "Give this slide a new display name.",
|
|
60
|
-
slideNamePlaceholder: "Slide name",
|
|
61
|
-
moveDialogEyebrow: "Move",
|
|
62
|
-
moveDialogTitle: "Move slide",
|
|
63
|
-
moveDialogDescriptionPrefix: "Choose a folder for ",
|
|
64
|
-
moveDialogDescriptionSuffix: ".",
|
|
65
|
-
deleteDialogEyebrow: "Destructive",
|
|
66
|
-
deleteDialogTitle: "Delete slide?",
|
|
67
|
-
deleteDialogDescriptionPrefix: "This permanently removes ",
|
|
68
|
-
deleteDialogDescriptionMid: " and its files from disk. ",
|
|
69
|
-
deleteDialogDescriptionSuffix: "This action cannot be undone.",
|
|
70
|
-
toastFolderCreated: "Created folder “{name}”",
|
|
71
|
-
toastFolderCreateFailed: "Failed to create folder",
|
|
72
|
-
toastSlideMoved: "Moved “{slide}” to {folder}",
|
|
73
|
-
toastSlideMoveFailed: "Failed to move slide",
|
|
74
|
-
toastFolderDeleted: "Deleted folder “{name}”",
|
|
75
|
-
toastFolderDeleteFailed: "Failed to delete folder",
|
|
76
|
-
pickIcon: "Pick icon"
|
|
77
|
-
},
|
|
78
|
-
slide: {
|
|
79
|
-
home: "Home",
|
|
80
|
-
backToHome: "Back to home",
|
|
81
|
-
agentConnected: "Agent connected",
|
|
82
|
-
agentConnectedTooltip: "The dev server is publishing your current slide and inspector selection to your agent. Ask \"this slide\" or \"this element\" in chat and it will resolve. Disappears in production builds.",
|
|
83
|
-
download: "Download",
|
|
84
|
-
exportAsHtml: "Export as HTML",
|
|
85
|
-
exportAsPdf: "Export as PDF",
|
|
86
|
-
pdfExportFailed: "PDF export failed",
|
|
87
|
-
present: "Present",
|
|
88
|
-
slidesTab: "Slides",
|
|
89
|
-
assetsTab: "Assets",
|
|
90
|
-
renameSlide: "Rename slide",
|
|
91
|
-
loadingEyebrow: "Loading",
|
|
92
|
-
emptyEyebrow: "Empty",
|
|
93
|
-
nothingToShow: "Nothing to show.",
|
|
94
|
-
emptyHintPrefix: "",
|
|
95
|
-
emptyHintMust: " must ",
|
|
96
|
-
emptyHintSuffix: " a non-empty array of components."
|
|
97
|
-
},
|
|
98
|
-
presenter: {
|
|
99
|
-
eyebrow: "Presenter",
|
|
100
|
-
notLinked: "Not linked",
|
|
101
|
-
nowShowing: "Now showing",
|
|
102
|
-
upNext: "Up next",
|
|
103
|
-
lastSlide: "Last slide",
|
|
104
|
-
endOfDeck: "End of deck",
|
|
105
|
-
speakerNotes: "Speaker notes",
|
|
106
|
-
noNotesPrefix: "No speaker notes for this slide. Add ",
|
|
107
|
-
noNotesSuffix: " to your slide module to see notes here.",
|
|
108
|
-
blackScreen: "Black screen",
|
|
109
|
-
whiteScreen: "White screen",
|
|
110
|
-
prev: "Prev",
|
|
111
|
-
next: "Next",
|
|
112
|
-
black: "Black",
|
|
113
|
-
white: "White",
|
|
114
|
-
reset: "Reset",
|
|
115
|
-
resetTimer: "Reset timer",
|
|
116
|
-
currentTime: "Current time",
|
|
117
|
-
elapsed: "Elapsed",
|
|
118
|
-
jump: "Jump",
|
|
119
|
-
loadingSlide: "Loading {slideId}…"
|
|
120
|
-
},
|
|
121
|
-
present: {
|
|
122
|
-
prevSlideAria: "Previous slide (←)",
|
|
123
|
-
nextSlideAria: "Next slide (→)",
|
|
124
|
-
overviewAria: "Slide overview (O)",
|
|
125
|
-
blackoutAria: "Black screen (B)",
|
|
126
|
-
whiteoutAria: "White screen (W)",
|
|
127
|
-
laserAria: "Laser pointer (L)",
|
|
128
|
-
presenterAria: "Presenter view (P)",
|
|
129
|
-
helpAria: "Keyboard shortcuts (?)",
|
|
130
|
-
exitAria: "Exit (Esc)",
|
|
131
|
-
elapsedTime: "Elapsed time",
|
|
132
|
-
helpEyebrow: "Present mode",
|
|
133
|
-
helpTitle: "Keyboard shortcuts",
|
|
134
|
-
shortcutNext: "Next slide",
|
|
135
|
-
shortcutPrev: "Previous slide",
|
|
136
|
-
shortcutFirstLast: "First / last slide",
|
|
137
|
-
shortcutJump: "Jump to slide",
|
|
138
|
-
shortcutOverview: "Slide overview",
|
|
139
|
-
shortcutBlack: "Black screen",
|
|
140
|
-
shortcutWhite: "White screen",
|
|
141
|
-
shortcutLaser: "Laser pointer",
|
|
142
|
-
shortcutPresenter: "Open Presenter View",
|
|
143
|
-
shortcutToggleHelp: "Toggle this help",
|
|
144
|
-
shortcutCloseExit: "Close overlay / exit",
|
|
145
|
-
overviewDialogAria: "Slide overview",
|
|
146
|
-
overviewEyebrow: "Overview",
|
|
147
|
-
overviewGoToAria: "Go to slide {n}",
|
|
148
|
-
nowBadge: "Now"
|
|
149
|
-
},
|
|
150
|
-
inspector: {
|
|
151
|
-
inspect: "Inspect",
|
|
152
|
-
deselect: "Deselect",
|
|
153
|
-
agentWatching: "Agent is watching",
|
|
154
|
-
agentWatchingTooltip: "Your agent already sees the selected element via the dev server — just ask it in chat. Leave comments here only when you want to queue a few before asking.",
|
|
155
|
-
contentSection: "Content",
|
|
156
|
-
typographySection: "Typography",
|
|
157
|
-
colorSection: "Color",
|
|
158
|
-
textColor: "Text",
|
|
159
|
-
backgroundColor: "Background",
|
|
160
|
-
imageSection: "Image",
|
|
161
|
-
imagePlaceholderSection: "Image placeholder",
|
|
162
|
-
elementTextPlaceholder: "Element text",
|
|
163
|
-
sizeLabel: "Size",
|
|
164
|
-
weightLabel: "Weight",
|
|
165
|
-
weightLight: "Light · 300",
|
|
166
|
-
weightRegular: "Regular · 400",
|
|
167
|
-
weightMedium: "Medium · 500",
|
|
168
|
-
weightSemibold: "Semibold · 600",
|
|
169
|
-
weightBold: "Bold · 700",
|
|
170
|
-
weightExtrabold: "Extrabold · 800",
|
|
171
|
-
styleLabel: "Style",
|
|
172
|
-
boldAria: "Bold",
|
|
173
|
-
italicAria: "Italic",
|
|
174
|
-
lineHeightLabel: "Line height",
|
|
175
|
-
trackingLabel: "Tracking",
|
|
176
|
-
alignLabel: "Align",
|
|
177
|
-
clearAria: "Clear",
|
|
178
|
-
replace: "Replace…",
|
|
179
|
-
replaceImageDialogTitle: "Replace image",
|
|
180
|
-
replaceImageDescription: "Pick an asset from {path}.",
|
|
181
|
-
pickerLoading: "Loading…",
|
|
182
|
-
pickerEmpty: "No images in this slide's assets folder yet. Add some from the Assets tab.",
|
|
183
|
-
placeholderHintLabel: "Hint:",
|
|
184
|
-
crop: "Crop…",
|
|
185
|
-
cropDialogTitle: "Crop image",
|
|
186
|
-
cropDialogDescription: "Drag the frame to choose what stays visible.",
|
|
187
|
-
cropFitCover: "Fill",
|
|
188
|
-
cropFitContain: "Fit",
|
|
189
|
-
cropApply: "Apply",
|
|
190
|
-
cropResetAria: "Reset crop",
|
|
191
|
-
leaveComment: "Leave a comment",
|
|
192
|
-
commentPlaceholder: "Describe a change for the agent…",
|
|
193
|
-
commentShortcutHint: "⌘↵ to add",
|
|
194
|
-
addComment: "Add comment",
|
|
195
|
-
unsavedChanges: {
|
|
196
|
-
one: "{count} unsaved change",
|
|
197
|
-
other: "{count} unsaved changes"
|
|
198
|
-
},
|
|
199
|
-
commentsCount: {
|
|
200
|
-
one: "{count} comment",
|
|
201
|
-
other: "{count} comments"
|
|
202
|
-
},
|
|
203
|
-
commentLineLabel: "line {n}",
|
|
204
|
-
commentsEmpty: "No comments yet. Toggle Inspect and click a slide element.",
|
|
205
|
-
commentsApplyHintPrefix: "Run ",
|
|
206
|
-
commentsApplyHintSuffix: " in your agent to apply these.",
|
|
207
|
-
commentDeleteAria: "Delete",
|
|
208
|
-
saveFailed: "Couldn't save:"
|
|
209
|
-
},
|
|
210
|
-
stylePanel: {
|
|
211
|
-
designTokens: "Design tokens",
|
|
212
|
-
draftBadge: "draft",
|
|
213
|
-
unsavedTitle: "Unsaved",
|
|
214
|
-
closePanelAria: "Close design panel",
|
|
215
|
-
colorsSection: "Colors",
|
|
216
|
-
typographySection: "Typography",
|
|
217
|
-
shapeSection: "Shape",
|
|
218
|
-
backgroundLabel: "Background",
|
|
219
|
-
textLabel: "Text",
|
|
220
|
-
accentLabel: "Accent",
|
|
221
|
-
displayFontLabel: "Display",
|
|
222
|
-
bodyFontLabel: "Body",
|
|
223
|
-
heroLabel: "Hero",
|
|
224
|
-
bodyLabel: "Body",
|
|
225
|
-
radiusLabel: "Radius",
|
|
226
|
-
designToggle: "Design",
|
|
227
|
-
designToggleTitle: "Design tokens",
|
|
228
|
-
fontPresetCustom: "Custom…",
|
|
229
|
-
shuffleAria: "Shuffle design",
|
|
230
|
-
shuffleTitle: "Shuffle for inspiration"
|
|
231
|
-
},
|
|
232
|
-
asset: {
|
|
233
|
-
devOnlyMessage: "Asset management is only available in dev mode.",
|
|
234
|
-
sectionAria: "Slide assets",
|
|
235
|
-
eyebrow: "Assets",
|
|
236
|
-
fileCount: {
|
|
237
|
-
one: "{count} file",
|
|
238
|
-
other: "{count} files"
|
|
239
|
-
},
|
|
240
|
-
searchLogos: "Search logos",
|
|
241
|
-
upload: "Upload",
|
|
242
|
-
dropToUpload: "Drop to upload",
|
|
243
|
-
loading: "Loading…",
|
|
244
|
-
noAssetsYet: "No assets yet",
|
|
245
|
-
noAssetsHintPrefix: "Drop files anywhere here, or use ",
|
|
246
|
-
noAssetsHintSuffix: ".",
|
|
247
|
-
nameAlreadyExists: "A file with that name already exists.",
|
|
248
|
-
previewAria: "Preview {name}",
|
|
249
|
-
actionsAria: "Actions for {name}",
|
|
250
|
-
previewMenuItem: "Preview",
|
|
251
|
-
renameMenuItem: "Rename",
|
|
252
|
-
deleteMenuItem: "Delete",
|
|
253
|
-
conflictTitle: "File already exists",
|
|
254
|
-
conflictDescription: "{name} is already in this slide's assets folder.",
|
|
255
|
-
conflictReplace: "Replace",
|
|
256
|
-
conflictRenameCopy: "Rename copy",
|
|
257
|
-
deleteAssetTitle: "Delete asset",
|
|
258
|
-
deleteAssetDescription: "Delete {name}? Imports referencing this file in the slide will break.",
|
|
259
|
-
noPreview: "No preview available",
|
|
260
|
-
importHintComment: "import asset from ",
|
|
261
|
-
importHintSemi: ";",
|
|
262
|
-
logoSearchTitle: "Search logos",
|
|
263
|
-
logoSearchPoweredByPrefix: "Powered by ",
|
|
264
|
-
logoSearchPlaceholder: "Search by brand…",
|
|
265
|
-
logoSearchErrorTitle: "Couldn't reach svgl",
|
|
266
|
-
logoSearchErrorBody: "Check your connection and try again.",
|
|
267
|
-
logoSearchNoResults: "No logos for \"{query}\"",
|
|
268
|
-
logoSearchEmpty: "No logos available",
|
|
269
|
-
logoSearchEmptyHintPrefix: "Try a different brand name, or browse the full catalog at ",
|
|
270
|
-
logoSearchEmptyHintSuffix: ".",
|
|
271
|
-
logoVariantLight: "Light",
|
|
272
|
-
logoVariantDark: "Dark",
|
|
273
|
-
toastUploadFailed: "Upload failed ({status})",
|
|
274
|
-
toastReplaced: "Replaced {name}",
|
|
275
|
-
toastUploadedAs: "Uploaded as {name}",
|
|
276
|
-
toastUploaded: "Uploaded {name}",
|
|
277
|
-
toastRenameFailed: "Rename failed ({status})",
|
|
278
|
-
toastRenamed: "Renamed to {name}",
|
|
279
|
-
toastDeleteFailed: "Delete failed ({status})",
|
|
280
|
-
toastDeleted: "Deleted {name}",
|
|
281
|
-
toastDownloadFailed: "Failed to download logo",
|
|
282
|
-
toastSearchFailed: "Search failed"
|
|
283
|
-
},
|
|
284
|
-
thumbnailRail: {
|
|
285
|
-
pages: "Pages",
|
|
286
|
-
goToPageAria: "Go to page {n}",
|
|
287
|
-
duplicatePage: "Duplicate",
|
|
288
|
-
deletePage: "Delete",
|
|
289
|
-
pageActionsAria: "Page {n} actions",
|
|
290
|
-
toastDuplicated: "Duplicated page {n}",
|
|
291
|
-
toastDeleted: "Deleted page {n}",
|
|
292
|
-
toastDuplicateFailed: "Could not duplicate page",
|
|
293
|
-
toastDeleteFailed: "Could not delete page"
|
|
294
|
-
},
|
|
295
|
-
pdfToast: {
|
|
296
|
-
title: "Exporting PDF",
|
|
297
|
-
processing: "Processing page {current} of {total}",
|
|
298
|
-
printing: "Opening print dialog…",
|
|
299
|
-
done: "Done"
|
|
300
|
-
},
|
|
301
|
-
themeToggle: {
|
|
302
|
-
toggleAria: "Toggle theme",
|
|
303
|
-
title: "Theme",
|
|
304
|
-
light: "Light",
|
|
305
|
-
dark: "Dark",
|
|
306
|
-
system: "System"
|
|
307
|
-
},
|
|
308
|
-
clickNav: {
|
|
309
|
-
prevAria: "Previous page",
|
|
310
|
-
nextAria: "Next page"
|
|
311
|
-
},
|
|
312
|
-
notesDrawer: {
|
|
313
|
-
toggle: "Notes",
|
|
314
|
-
pageLabel: "page {n}/{total}",
|
|
315
|
-
placeholder: "Write speaker notes for this slide…",
|
|
316
|
-
statusSaving: "Saving…",
|
|
317
|
-
statusSaved: "Saved",
|
|
318
|
-
statusError: "Save failed: {msg}"
|
|
319
|
-
}
|
|
320
|
-
};
|
|
1
|
+
import { en } from "../en-CDKzoZvf.js";
|
|
321
2
|
|
|
322
|
-
//#endregion
|
|
323
3
|
//#region src/locale/format.ts
|
|
324
4
|
function format(template, vars) {
|
|
325
5
|
return template.replace(/\{(\w+)\}/g, (m, key) => {
|
|
@@ -368,6 +48,7 @@ const ja = {
|
|
|
368
48
|
home: {
|
|
369
49
|
appTitle: "open-slide",
|
|
370
50
|
draft: "下書き",
|
|
51
|
+
themes: "テーマ",
|
|
371
52
|
folders: "フォルダ",
|
|
372
53
|
newFolder: "新規フォルダ",
|
|
373
54
|
folderName: "フォルダ名",
|
|
@@ -381,9 +62,8 @@ const ja = {
|
|
|
381
62
|
nothingMatchesPrefix: "このフォルダ内に ",
|
|
382
63
|
nothingMatchesSuffix: " に一致する項目はありません。",
|
|
383
64
|
noSlidesYet: "スライドはまだありません",
|
|
384
|
-
createSlideHintPrefix: "",
|
|
385
|
-
|
|
386
|
-
createSlideHintSuffix: " してください。",
|
|
65
|
+
createSlideHintPrefix: "エージェントで ",
|
|
66
|
+
createSlideHintSuffix: " を実行してスライドを作成しましょう。",
|
|
387
67
|
folderEmptyTitle: "{name} は空です",
|
|
388
68
|
folderEmptyHint: "サイドバーから下書きのスライドをこのフォルダにドラッグしてください。",
|
|
389
69
|
slideActions: "スライド操作",
|
|
@@ -412,6 +92,8 @@ const ja = {
|
|
|
412
92
|
slide: {
|
|
413
93
|
agentConnected: "エージェント接続中",
|
|
414
94
|
agentConnectedTooltip: "現在のスライドと Inspector の選択状態を dev server がエージェントに公開しています。チャットで「このスライド」「この要素」と言えば認識されます。本番ビルドでは表示されません。",
|
|
95
|
+
agentDisconnected: "エージェント切断",
|
|
96
|
+
agentDisconnectedTooltip: "dev server との接続が切れたため、現在のスライドや Inspector の選択がエージェントに届かなくなっています。dev server を再起動して接続を復旧してください。",
|
|
415
97
|
home: "ホーム",
|
|
416
98
|
backToHome: "ホームへ戻る",
|
|
417
99
|
download: "ダウンロード",
|
|
@@ -522,6 +204,8 @@ const ja = {
|
|
|
522
204
|
cropResetAria: "トリミングをリセット",
|
|
523
205
|
agentWatching: "エージェント監視中",
|
|
524
206
|
agentWatchingTooltip: "エージェントは選択中の要素を dev server 経由で把握しています。直接チャットで頼めます。ここにコメントを残すのは、複数の依頼をまとめて出したいときだけで OK。",
|
|
207
|
+
agentNotWatching: "エージェント未接続",
|
|
208
|
+
agentNotWatchingTooltip: "dev server との接続が切れたため、選択中の要素がエージェントに見えなくなっています。dev server を再起動して接続を復旧してください。",
|
|
525
209
|
leaveComment: "コメントを残す",
|
|
526
210
|
commentPlaceholder: "エージェントに依頼する変更を記述…",
|
|
527
211
|
commentShortcutHint: "⌘↵ で追加",
|
|
@@ -624,7 +308,8 @@ const ja = {
|
|
|
624
308
|
toastDuplicated: "ページ {n} を複製しました",
|
|
625
309
|
toastDeleted: "ページ {n} を削除しました",
|
|
626
310
|
toastDuplicateFailed: "ページを複製できませんでした",
|
|
627
|
-
toastDeleteFailed: "ページを削除できませんでした"
|
|
311
|
+
toastDeleteFailed: "ページを削除できませんでした",
|
|
312
|
+
resizeRail: "サムネイル幅を調整"
|
|
628
313
|
},
|
|
629
314
|
pdfToast: {
|
|
630
315
|
title: "PDF を書き出し中",
|
|
@@ -643,6 +328,11 @@ const ja = {
|
|
|
643
328
|
prevAria: "前のページ",
|
|
644
329
|
nextAria: "次のページ"
|
|
645
330
|
},
|
|
331
|
+
imagePlaceholder: {
|
|
332
|
+
dropOverlay: "ここにドロップして使用",
|
|
333
|
+
uploading: "アップロード中…",
|
|
334
|
+
uploadFailed: "画像のアップロードに失敗しました"
|
|
335
|
+
},
|
|
646
336
|
notesDrawer: {
|
|
647
337
|
toggle: "発表者ノート",
|
|
648
338
|
pageLabel: "{n} / {total} ページ",
|
|
@@ -650,6 +340,24 @@ const ja = {
|
|
|
650
340
|
statusSaving: "保存中…",
|
|
651
341
|
statusSaved: "保存済み",
|
|
652
342
|
statusError: "保存に失敗しました: {msg}"
|
|
343
|
+
},
|
|
344
|
+
themes: {
|
|
345
|
+
title: "テーマ",
|
|
346
|
+
noThemesTitle: "テーマがまだありません",
|
|
347
|
+
noThemesHintPrefix: "",
|
|
348
|
+
noThemesHintSuffix: " を実行して作成 — themes/ に markdown ファイルと同名の demo スライドを置きます。",
|
|
349
|
+
noDemoYet: "デモがまだありません",
|
|
350
|
+
noDemoHintPrefix: "このテーマで ",
|
|
351
|
+
noDemoHintSuffix: " を再実行するとプレビュー用スライドが生成されます。",
|
|
352
|
+
backToGallery: "テーマ一覧へ戻る",
|
|
353
|
+
pageOf: "{n}/{total} ページ",
|
|
354
|
+
nextPageAria: "次のページ",
|
|
355
|
+
prevPageAria: "前のページ",
|
|
356
|
+
openThemeAria: "テーマ {name} を開く",
|
|
357
|
+
usedBy: "このテーマを使うスライド",
|
|
358
|
+
usedByEmpty: "このテーマを使うスライドはまだありません。",
|
|
359
|
+
expandPromptAria: "プロンプトを展開",
|
|
360
|
+
collapsePromptAria: "プロンプトを折りたたむ"
|
|
653
361
|
}
|
|
654
362
|
};
|
|
655
363
|
|
|
@@ -690,6 +398,7 @@ const zhCN = {
|
|
|
690
398
|
home: {
|
|
691
399
|
appTitle: "open-slide",
|
|
692
400
|
draft: "草稿",
|
|
401
|
+
themes: "主题",
|
|
693
402
|
folders: "文件夹",
|
|
694
403
|
newFolder: "新建文件夹",
|
|
695
404
|
folderName: "文件夹名称",
|
|
@@ -703,9 +412,8 @@ const zhCN = {
|
|
|
703
412
|
nothingMatchesPrefix: "该文件夹中没有匹配 ",
|
|
704
413
|
nothingMatchesSuffix: " 的内容。",
|
|
705
414
|
noSlidesYet: "尚无幻灯片",
|
|
706
|
-
createSlideHintPrefix: "
|
|
707
|
-
|
|
708
|
-
createSlideHintSuffix: "。",
|
|
415
|
+
createSlideHintPrefix: "在 agent 中执行 ",
|
|
416
|
+
createSlideHintSuffix: " 开始创建。",
|
|
709
417
|
folderEmptyTitle: "{name} 为空",
|
|
710
418
|
folderEmptyHint: "从侧边栏将幻灯片从草稿拖入此文件夹。",
|
|
711
419
|
slideActions: "幻灯片操作",
|
|
@@ -734,6 +442,8 @@ const zhCN = {
|
|
|
734
442
|
slide: {
|
|
735
443
|
agentConnected: "Agent 已连接",
|
|
736
444
|
agentConnectedTooltip: "Dev server 正在把你目前在哪张 slide、Inspector 选了哪个元素发布给 agent。直接到聊天说\"这张 slide\"或\"这个元素\"就行。Production build 不会出现。",
|
|
445
|
+
agentDisconnected: "Agent 已断开",
|
|
446
|
+
agentDisconnectedTooltip: "已和 dev server 断开连接,agent 没办法再看到你目前的 slide 或 Inspector 选择。请重新启动 dev server 来恢复连接。",
|
|
737
447
|
home: "首页",
|
|
738
448
|
backToHome: "返回首页",
|
|
739
449
|
download: "下载",
|
|
@@ -844,6 +554,8 @@ const zhCN = {
|
|
|
844
554
|
cropResetAria: "重置裁剪",
|
|
845
555
|
agentWatching: "Agent 正在关注",
|
|
846
556
|
agentWatchingTooltip: "Agent 已经通过 dev server 看到你选的元素了,直接到聊天请它修改就行。想累积几个再一次问才需要在这里留 comments。",
|
|
557
|
+
agentNotWatching: "Agent 没在关注",
|
|
558
|
+
agentNotWatchingTooltip: "已和 dev server 断开连接,agent 看不到你选的元素了。请重新启动 dev server 来恢复连接。",
|
|
847
559
|
leaveComment: "留个 comment",
|
|
848
560
|
commentPlaceholder: "描述你希望代理执行的更改…",
|
|
849
561
|
commentShortcutHint: "⌘↵ 添加",
|
|
@@ -946,7 +658,8 @@ const zhCN = {
|
|
|
946
658
|
toastDuplicated: "已复制第 {n} 页",
|
|
947
659
|
toastDeleted: "已删除第 {n} 页",
|
|
948
660
|
toastDuplicateFailed: "无法复制页面",
|
|
949
|
-
toastDeleteFailed: "无法删除页面"
|
|
661
|
+
toastDeleteFailed: "无法删除页面",
|
|
662
|
+
resizeRail: "调整缩略图栏宽度"
|
|
950
663
|
},
|
|
951
664
|
pdfToast: {
|
|
952
665
|
title: "导出 PDF",
|
|
@@ -965,6 +678,11 @@ const zhCN = {
|
|
|
965
678
|
prevAria: "上一页",
|
|
966
679
|
nextAria: "下一页"
|
|
967
680
|
},
|
|
681
|
+
imagePlaceholder: {
|
|
682
|
+
dropOverlay: "拖入图片以使用",
|
|
683
|
+
uploading: "上传中…",
|
|
684
|
+
uploadFailed: "图片上传失败"
|
|
685
|
+
},
|
|
968
686
|
notesDrawer: {
|
|
969
687
|
toggle: "演讲备注",
|
|
970
688
|
pageLabel: "第 {n} / {total} 页",
|
|
@@ -972,6 +690,24 @@ const zhCN = {
|
|
|
972
690
|
statusSaving: "保存中…",
|
|
973
691
|
statusSaved: "已保存",
|
|
974
692
|
statusError: "保存失败:{msg}"
|
|
693
|
+
},
|
|
694
|
+
themes: {
|
|
695
|
+
title: "主题",
|
|
696
|
+
noThemesTitle: "尚无主题",
|
|
697
|
+
noThemesHintPrefix: "运行 ",
|
|
698
|
+
noThemesHintSuffix: " 来创建一个 — 一个位于 themes/ 的 markdown 文件,加上同名的 demo slide。",
|
|
699
|
+
noDemoYet: "尚无 demo",
|
|
700
|
+
noDemoHintPrefix: "对此主题重新运行 ",
|
|
701
|
+
noDemoHintSuffix: " 即可生成预览用的 slide。",
|
|
702
|
+
backToGallery: "返回主题列表",
|
|
703
|
+
pageOf: "第 {n}/{total} 页",
|
|
704
|
+
nextPageAria: "下一页",
|
|
705
|
+
prevPageAria: "上一页",
|
|
706
|
+
openThemeAria: "打开主题 {name}",
|
|
707
|
+
usedBy: "使用此主题的 slides",
|
|
708
|
+
usedByEmpty: "尚未有 slides 使用此主题。",
|
|
709
|
+
expandPromptAria: "展开 prompt",
|
|
710
|
+
collapsePromptAria: "收起 prompt"
|
|
975
711
|
}
|
|
976
712
|
};
|
|
977
713
|
|
|
@@ -1012,6 +748,7 @@ const zhTW = {
|
|
|
1012
748
|
home: {
|
|
1013
749
|
appTitle: "open-slide",
|
|
1014
750
|
draft: "草稿",
|
|
751
|
+
themes: "主題",
|
|
1015
752
|
folders: "資料夾",
|
|
1016
753
|
newFolder: "新增資料夾",
|
|
1017
754
|
folderName: "資料夾名稱",
|
|
@@ -1025,9 +762,8 @@ const zhTW = {
|
|
|
1025
762
|
nothingMatchesPrefix: "此資料夾中沒有相符 ",
|
|
1026
763
|
nothingMatchesSuffix: " 的項目。",
|
|
1027
764
|
noSlidesYet: "尚無投影片",
|
|
1028
|
-
createSlideHintPrefix: "
|
|
1029
|
-
|
|
1030
|
-
createSlideHintSuffix: "。",
|
|
765
|
+
createSlideHintPrefix: "在 agent 中執行 ",
|
|
766
|
+
createSlideHintSuffix: " 開始建立。",
|
|
1031
767
|
folderEmptyTitle: "{name} 為空",
|
|
1032
768
|
folderEmptyHint: "從側邊欄將投影片從草稿拖入此資料夾。",
|
|
1033
769
|
slideActions: "投影片操作",
|
|
@@ -1056,6 +792,8 @@ const zhTW = {
|
|
|
1056
792
|
slide: {
|
|
1057
793
|
agentConnected: "Agent 已連線",
|
|
1058
794
|
agentConnectedTooltip: "Dev server 正在把你目前在哪張 slide、Inspector 選了哪個元素發布給 agent。直接到聊天說「這張 slide」或「這個元素」就行。Production build 不會出現。",
|
|
795
|
+
agentDisconnected: "Agent 已斷線",
|
|
796
|
+
agentDisconnectedTooltip: "已和 dev server 斷線,agent 沒辦法再看到你目前的 slide 或 Inspector 選擇。請重新啟動 dev server 來恢復連線。",
|
|
1059
797
|
home: "首頁",
|
|
1060
798
|
backToHome: "返回首頁",
|
|
1061
799
|
download: "下載",
|
|
@@ -1166,6 +904,8 @@ const zhTW = {
|
|
|
1166
904
|
cropResetAria: "重設裁切",
|
|
1167
905
|
agentWatching: "Agent 正在關注",
|
|
1168
906
|
agentWatchingTooltip: "Agent 已經透過 dev server 看到你選的元素了,直接到聊天請它修改就行。想累積幾個再一次問才需要在這裡留 comments。",
|
|
907
|
+
agentNotWatching: "Agent 沒在關注",
|
|
908
|
+
agentNotWatchingTooltip: "已和 dev server 斷線,agent 看不到你選的元素了。請重新啟動 dev server 來恢復連線。",
|
|
1169
909
|
leaveComment: "留個 comment",
|
|
1170
910
|
commentPlaceholder: "描述你希望代理進行的修改…",
|
|
1171
911
|
commentShortcutHint: "⌘↵ 新增",
|
|
@@ -1268,7 +1008,8 @@ const zhTW = {
|
|
|
1268
1008
|
toastDuplicated: "已複製第 {n} 頁",
|
|
1269
1009
|
toastDeleted: "已刪除第 {n} 頁",
|
|
1270
1010
|
toastDuplicateFailed: "無法複製頁面",
|
|
1271
|
-
toastDeleteFailed: "無法刪除頁面"
|
|
1011
|
+
toastDeleteFailed: "無法刪除頁面",
|
|
1012
|
+
resizeRail: "調整縮圖欄寬度"
|
|
1272
1013
|
},
|
|
1273
1014
|
pdfToast: {
|
|
1274
1015
|
title: "匯出 PDF",
|
|
@@ -1287,6 +1028,11 @@ const zhTW = {
|
|
|
1287
1028
|
prevAria: "上一頁",
|
|
1288
1029
|
nextAria: "下一頁"
|
|
1289
1030
|
},
|
|
1031
|
+
imagePlaceholder: {
|
|
1032
|
+
dropOverlay: "拖入圖片以使用",
|
|
1033
|
+
uploading: "上傳中…",
|
|
1034
|
+
uploadFailed: "圖片上傳失敗"
|
|
1035
|
+
},
|
|
1290
1036
|
notesDrawer: {
|
|
1291
1037
|
toggle: "講稿",
|
|
1292
1038
|
pageLabel: "第 {n} / {total} 頁",
|
|
@@ -1294,6 +1040,24 @@ const zhTW = {
|
|
|
1294
1040
|
statusSaving: "儲存中…",
|
|
1295
1041
|
statusSaved: "已儲存",
|
|
1296
1042
|
statusError: "儲存失敗:{msg}"
|
|
1043
|
+
},
|
|
1044
|
+
themes: {
|
|
1045
|
+
title: "主題",
|
|
1046
|
+
noThemesTitle: "尚無主題",
|
|
1047
|
+
noThemesHintPrefix: "執行 ",
|
|
1048
|
+
noThemesHintSuffix: " 來建立一個 — 一個位於 themes/ 的 markdown 檔案,加上同名的 demo slide。",
|
|
1049
|
+
noDemoYet: "尚無 demo",
|
|
1050
|
+
noDemoHintPrefix: "對此主題重新執行 ",
|
|
1051
|
+
noDemoHintSuffix: " 即可產生預覽用的 slide。",
|
|
1052
|
+
backToGallery: "返回主題列表",
|
|
1053
|
+
pageOf: "第 {n}/{total} 頁",
|
|
1054
|
+
nextPageAria: "下一頁",
|
|
1055
|
+
prevPageAria: "上一頁",
|
|
1056
|
+
openThemeAria: "開啟主題 {name}",
|
|
1057
|
+
usedBy: "使用此主題的 slides",
|
|
1058
|
+
usedByEmpty: "尚未有 slides 使用此主題。",
|
|
1059
|
+
expandPromptAria: "展開 prompt",
|
|
1060
|
+
collapsePromptAria: "收合 prompt"
|
|
1297
1061
|
}
|
|
1298
1062
|
};
|
|
1299
1063
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./design-
|
|
2
|
-
import { createViteConfig } from "./config-
|
|
1
|
+
import "./design-cpzS8aud.js";
|
|
2
|
+
import { createViteConfig } from "./config-BAwKWNtW.js";
|
|
3
3
|
import { mergeConfig, preview as preview$1 } from "vite";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/preview.ts
|
|
@@ -38,6 +38,7 @@ type Locale = {
|
|
|
38
38
|
home: {
|
|
39
39
|
appTitle: string;
|
|
40
40
|
draft: string;
|
|
41
|
+
themes: string;
|
|
41
42
|
folders: string;
|
|
42
43
|
newFolder: string;
|
|
43
44
|
folderName: string;
|
|
@@ -52,7 +53,6 @@ type Locale = {
|
|
|
52
53
|
nothingMatchesSuffix: string;
|
|
53
54
|
noSlidesYet: string;
|
|
54
55
|
createSlideHintPrefix: string;
|
|
55
|
-
createSlideHintMid: string;
|
|
56
56
|
createSlideHintSuffix: string;
|
|
57
57
|
folderEmptyTitle: string;
|
|
58
58
|
folderEmptyHint: string;
|
|
@@ -87,6 +87,8 @@ type Locale = {
|
|
|
87
87
|
backToHome: string;
|
|
88
88
|
agentConnected: string;
|
|
89
89
|
agentConnectedTooltip: string;
|
|
90
|
+
agentDisconnected: string;
|
|
91
|
+
agentDisconnectedTooltip: string;
|
|
90
92
|
download: string;
|
|
91
93
|
exportAsHtml: string;
|
|
92
94
|
exportAsPdf: string;
|
|
@@ -161,6 +163,8 @@ type Locale = {
|
|
|
161
163
|
deselect: string;
|
|
162
164
|
agentWatching: string;
|
|
163
165
|
agentWatchingTooltip: string;
|
|
166
|
+
agentNotWatching: string;
|
|
167
|
+
agentNotWatchingTooltip: string;
|
|
164
168
|
contentSection: string;
|
|
165
169
|
typographySection: string;
|
|
166
170
|
colorSection: string;
|
|
@@ -314,6 +318,7 @@ type Locale = {
|
|
|
314
318
|
toastDeleted: string;
|
|
315
319
|
toastDuplicateFailed: string;
|
|
316
320
|
toastDeleteFailed: string;
|
|
321
|
+
resizeRail: string;
|
|
317
322
|
};
|
|
318
323
|
pdfToast: {
|
|
319
324
|
title: string;
|
|
@@ -333,6 +338,11 @@ type Locale = {
|
|
|
333
338
|
prevAria: string;
|
|
334
339
|
nextAria: string;
|
|
335
340
|
};
|
|
341
|
+
imagePlaceholder: {
|
|
342
|
+
dropOverlay: string;
|
|
343
|
+
uploading: string;
|
|
344
|
+
uploadFailed: string;
|
|
345
|
+
};
|
|
336
346
|
notesDrawer: {
|
|
337
347
|
toggle: string;
|
|
338
348
|
/** template: "page {n}/{total}" */
|
|
@@ -343,5 +353,25 @@ type Locale = {
|
|
|
343
353
|
/** template: "Save failed: {msg}" */
|
|
344
354
|
statusError: string;
|
|
345
355
|
};
|
|
356
|
+
themes: {
|
|
357
|
+
title: string;
|
|
358
|
+
noThemesTitle: string;
|
|
359
|
+
noThemesHintPrefix: string;
|
|
360
|
+
noThemesHintSuffix: string;
|
|
361
|
+
noDemoYet: string;
|
|
362
|
+
noDemoHintPrefix: string;
|
|
363
|
+
noDemoHintSuffix: string;
|
|
364
|
+
backToGallery: string;
|
|
365
|
+
/** template: "page {n}/{total}" */
|
|
366
|
+
pageOf: string;
|
|
367
|
+
nextPageAria: string;
|
|
368
|
+
prevPageAria: string;
|
|
369
|
+
/** template: "Open theme {name}" */
|
|
370
|
+
openThemeAria: string;
|
|
371
|
+
usedBy: string;
|
|
372
|
+
usedByEmpty: string;
|
|
373
|
+
expandPromptAria: string;
|
|
374
|
+
collapsePromptAria: string;
|
|
375
|
+
};
|
|
346
376
|
}; //#endregion
|
|
347
377
|
export { Locale, Plural };
|
package/dist/vite/index.d.ts
CHANGED
package/dist/vite/index.js
CHANGED