@thanh01.pmt/presentation-kit 0.3.0 → 0.3.2
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/ai/index.cjs +22 -22
- package/dist/ai/index.js +2 -2
- package/dist/{chunk-JBGGQGSQ.cjs → chunk-2FJGU32M.cjs} +4 -4
- package/dist/{chunk-JBGGQGSQ.cjs.map → chunk-2FJGU32M.cjs.map} +1 -1
- package/dist/{chunk-HSVXH7DD.cjs → chunk-EAPUC5BA.cjs} +3 -2
- package/dist/chunk-EAPUC5BA.cjs.map +1 -0
- package/dist/{chunk-I5RG2L3M.js → chunk-FIBXWRWQ.js} +3 -3
- package/dist/{chunk-I5RG2L3M.js.map → chunk-FIBXWRWQ.js.map} +1 -1
- package/dist/{chunk-OCP2TAY2.js → chunk-LVSQN2VI.js} +58 -2
- package/dist/chunk-LVSQN2VI.js.map +1 -0
- package/dist/{chunk-VRXEXUHR.js → chunk-WNPKREEW.js} +3 -2
- package/dist/chunk-WNPKREEW.js.map +1 -0
- package/dist/{chunk-INAOTYLK.cjs → chunk-YO6TN5TA.cjs} +58 -2
- package/dist/chunk-YO6TN5TA.cjs.map +1 -0
- package/dist/index.cjs +61 -61
- package/dist/index.js +4 -4
- package/dist/node/index.cjs +2 -2
- package/dist/node/index.js +1 -1
- package/dist/react/index.cjs +13 -13
- package/dist/react/index.js +3 -3
- package/dist/skills/index.cjs +13 -13
- package/dist/skills/index.d.cts +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-HSVXH7DD.cjs.map +0 -1
- package/dist/chunk-INAOTYLK.cjs.map +0 -1
- package/dist/chunk-OCP2TAY2.js.map +0 -1
- package/dist/chunk-VRXEXUHR.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk2FJGU32M_cjs = require('./chunk-2FJGU32M.cjs');
|
|
4
4
|
var chunk3Q4RMZVQ_cjs = require('./chunk-3Q4RMZVQ.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkYO6TN5TA_cjs = require('./chunk-YO6TN5TA.cjs');
|
|
6
|
+
var chunkEAPUC5BA_cjs = require('./chunk-EAPUC5BA.cjs');
|
|
7
7
|
|
|
8
8
|
// src/engine.ts
|
|
9
9
|
function createEngine(config = {}) {
|
|
@@ -20,14 +20,14 @@ function createEngine(config = {}) {
|
|
|
20
20
|
}
|
|
21
21
|
return {
|
|
22
22
|
render: (markdown, options) => {
|
|
23
|
-
return
|
|
23
|
+
return chunk2FJGU32M_cjs.renderSlide(markdown, mergeOptions(options));
|
|
24
24
|
},
|
|
25
25
|
renderAsync: async (markdown, options) => {
|
|
26
|
-
return
|
|
26
|
+
return chunk2FJGU32M_cjs.renderSlideAsync(markdown, mergeOptions(options));
|
|
27
27
|
},
|
|
28
28
|
getThemeCss: (theme, containerId) => {
|
|
29
|
-
const resolved =
|
|
30
|
-
return
|
|
29
|
+
const resolved = chunk2FJGU32M_cjs.resolveTheme(theme);
|
|
30
|
+
return chunk2FJGU32M_cjs.generateScopedCss2(resolved, containerId);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
}
|
|
@@ -103,7 +103,7 @@ async function convertMarkdownToPptx(markdown, options) {
|
|
|
103
103
|
pptx.layout = "LAYOUT_WIDE";
|
|
104
104
|
if (options?.title) pptx.title = options.title;
|
|
105
105
|
if (options?.author) pptx.author = options.author;
|
|
106
|
-
const renderResult =
|
|
106
|
+
const renderResult = chunk2FJGU32M_cjs.renderSlide(markdown);
|
|
107
107
|
const { slides } = chunk3Q4RMZVQ_cjs.splitMarkdownSlides(markdown);
|
|
108
108
|
const isDark = options?.theme !== "light";
|
|
109
109
|
const defaultBg = isDark ? "14151B" : "FFFFFF";
|
|
@@ -203,107 +203,107 @@ async function convertMarkdownToPptx(markdown, options) {
|
|
|
203
203
|
|
|
204
204
|
Object.defineProperty(exports, "convertTextArrows", {
|
|
205
205
|
enumerable: true,
|
|
206
|
-
get: function () { return
|
|
206
|
+
get: function () { return chunk2FJGU32M_cjs.convertTextArrows; }
|
|
207
207
|
});
|
|
208
208
|
Object.defineProperty(exports, "countSlides", {
|
|
209
209
|
enumerable: true,
|
|
210
|
-
get: function () { return
|
|
210
|
+
get: function () { return chunk2FJGU32M_cjs.countSlides; }
|
|
211
211
|
});
|
|
212
212
|
Object.defineProperty(exports, "darkThemeTokens", {
|
|
213
213
|
enumerable: true,
|
|
214
|
-
get: function () { return
|
|
214
|
+
get: function () { return chunk2FJGU32M_cjs.darkThemeTokens; }
|
|
215
215
|
});
|
|
216
216
|
Object.defineProperty(exports, "defineTheme", {
|
|
217
217
|
enumerable: true,
|
|
218
|
-
get: function () { return
|
|
218
|
+
get: function () { return chunk2FJGU32M_cjs.defineTheme; }
|
|
219
219
|
});
|
|
220
220
|
Object.defineProperty(exports, "detectMermaidBlocks", {
|
|
221
221
|
enumerable: true,
|
|
222
|
-
get: function () { return
|
|
222
|
+
get: function () { return chunk2FJGU32M_cjs.detectMermaidBlocks; }
|
|
223
223
|
});
|
|
224
224
|
Object.defineProperty(exports, "extractLayoutsAndNotes", {
|
|
225
225
|
enumerable: true,
|
|
226
|
-
get: function () { return
|
|
226
|
+
get: function () { return chunk2FJGU32M_cjs.extractLayoutsAndNotes; }
|
|
227
227
|
});
|
|
228
228
|
Object.defineProperty(exports, "extractMarpSource", {
|
|
229
229
|
enumerable: true,
|
|
230
|
-
get: function () { return
|
|
230
|
+
get: function () { return chunk2FJGU32M_cjs.extractMarpSource; }
|
|
231
231
|
});
|
|
232
232
|
Object.defineProperty(exports, "extractMaxClicks", {
|
|
233
233
|
enumerable: true,
|
|
234
|
-
get: function () { return
|
|
234
|
+
get: function () { return chunk2FJGU32M_cjs.extractMaxClicks; }
|
|
235
235
|
});
|
|
236
236
|
Object.defineProperty(exports, "filterPresenterNotes", {
|
|
237
237
|
enumerable: true,
|
|
238
|
-
get: function () { return
|
|
238
|
+
get: function () { return chunk2FJGU32M_cjs.filterPresenterNotes; }
|
|
239
239
|
});
|
|
240
240
|
Object.defineProperty(exports, "generateClickCss", {
|
|
241
241
|
enumerable: true,
|
|
242
|
-
get: function () { return
|
|
242
|
+
get: function () { return chunk2FJGU32M_cjs.generateClickCss; }
|
|
243
243
|
});
|
|
244
244
|
Object.defineProperty(exports, "generateLayoutCss", {
|
|
245
245
|
enumerable: true,
|
|
246
|
-
get: function () { return
|
|
246
|
+
get: function () { return chunk2FJGU32M_cjs.generateLayoutCss; }
|
|
247
247
|
});
|
|
248
248
|
Object.defineProperty(exports, "generateScopedCss", {
|
|
249
249
|
enumerable: true,
|
|
250
|
-
get: function () { return
|
|
250
|
+
get: function () { return chunk2FJGU32M_cjs.generateScopedCss2; }
|
|
251
251
|
});
|
|
252
252
|
Object.defineProperty(exports, "generateScopedCssFromTokens", {
|
|
253
253
|
enumerable: true,
|
|
254
|
-
get: function () { return
|
|
254
|
+
get: function () { return chunk2FJGU32M_cjs.generateScopedCss; }
|
|
255
255
|
});
|
|
256
256
|
Object.defineProperty(exports, "getThemeTokens", {
|
|
257
257
|
enumerable: true,
|
|
258
|
-
get: function () { return
|
|
258
|
+
get: function () { return chunk2FJGU32M_cjs.getThemeTokens; }
|
|
259
259
|
});
|
|
260
260
|
Object.defineProperty(exports, "isLayoutComment", {
|
|
261
261
|
enumerable: true,
|
|
262
|
-
get: function () { return
|
|
262
|
+
get: function () { return chunk2FJGU32M_cjs.isLayoutComment; }
|
|
263
263
|
});
|
|
264
264
|
Object.defineProperty(exports, "lightThemeTokens", {
|
|
265
265
|
enumerable: true,
|
|
266
|
-
get: function () { return
|
|
266
|
+
get: function () { return chunk2FJGU32M_cjs.lightThemeTokens; }
|
|
267
267
|
});
|
|
268
268
|
Object.defineProperty(exports, "navyThemeTokens", {
|
|
269
269
|
enumerable: true,
|
|
270
|
-
get: function () { return
|
|
270
|
+
get: function () { return chunk2FJGU32M_cjs.navyThemeTokens; }
|
|
271
271
|
});
|
|
272
272
|
Object.defineProperty(exports, "parseLayoutFromComment", {
|
|
273
273
|
enumerable: true,
|
|
274
|
-
get: function () { return
|
|
274
|
+
get: function () { return chunk2FJGU32M_cjs.parseLayoutFromComment; }
|
|
275
275
|
});
|
|
276
276
|
Object.defineProperty(exports, "postprocessClicks", {
|
|
277
277
|
enumerable: true,
|
|
278
|
-
get: function () { return
|
|
278
|
+
get: function () { return chunk2FJGU32M_cjs.postprocessClicks; }
|
|
279
279
|
});
|
|
280
280
|
Object.defineProperty(exports, "preprocessClicks", {
|
|
281
281
|
enumerable: true,
|
|
282
|
-
get: function () { return
|
|
282
|
+
get: function () { return chunk2FJGU32M_cjs.preprocessClicks; }
|
|
283
283
|
});
|
|
284
284
|
Object.defineProperty(exports, "renderMarp", {
|
|
285
285
|
enumerable: true,
|
|
286
|
-
get: function () { return
|
|
286
|
+
get: function () { return chunk2FJGU32M_cjs.renderMarp; }
|
|
287
287
|
});
|
|
288
288
|
Object.defineProperty(exports, "renderMermaidDiagrams", {
|
|
289
289
|
enumerable: true,
|
|
290
|
-
get: function () { return
|
|
290
|
+
get: function () { return chunk2FJGU32M_cjs.renderMermaidDiagrams; }
|
|
291
291
|
});
|
|
292
292
|
Object.defineProperty(exports, "renderSlide", {
|
|
293
293
|
enumerable: true,
|
|
294
|
-
get: function () { return
|
|
294
|
+
get: function () { return chunk2FJGU32M_cjs.renderSlide; }
|
|
295
295
|
});
|
|
296
296
|
Object.defineProperty(exports, "renderSlideAsync", {
|
|
297
297
|
enumerable: true,
|
|
298
|
-
get: function () { return
|
|
298
|
+
get: function () { return chunk2FJGU32M_cjs.renderSlideAsync; }
|
|
299
299
|
});
|
|
300
300
|
Object.defineProperty(exports, "resolveTheme", {
|
|
301
301
|
enumerable: true,
|
|
302
|
-
get: function () { return
|
|
302
|
+
get: function () { return chunk2FJGU32M_cjs.resolveTheme; }
|
|
303
303
|
});
|
|
304
304
|
Object.defineProperty(exports, "sanitizeMermaidCode", {
|
|
305
305
|
enumerable: true,
|
|
306
|
-
get: function () { return
|
|
306
|
+
get: function () { return chunk2FJGU32M_cjs.sanitizeMermaidCode; }
|
|
307
307
|
});
|
|
308
308
|
Object.defineProperty(exports, "SLIDE_LAYOUT_PRESETS", {
|
|
309
309
|
enumerable: true,
|
|
@@ -339,111 +339,111 @@ Object.defineProperty(exports, "updateSlideTextInMarkdown", {
|
|
|
339
339
|
});
|
|
340
340
|
Object.defineProperty(exports, "HTML_SLIDE_PRESETS", {
|
|
341
341
|
enumerable: true,
|
|
342
|
-
get: function () { return
|
|
342
|
+
get: function () { return chunkYO6TN5TA_cjs.HTML_SLIDE_PRESETS; }
|
|
343
343
|
});
|
|
344
344
|
Object.defineProperty(exports, "HTML_THEMES", {
|
|
345
345
|
enumerable: true,
|
|
346
|
-
get: function () { return
|
|
346
|
+
get: function () { return chunkYO6TN5TA_cjs.HTML_THEMES; }
|
|
347
347
|
});
|
|
348
348
|
Object.defineProperty(exports, "SLIDE_UTILITY_CSS", {
|
|
349
349
|
enumerable: true,
|
|
350
|
-
get: function () { return
|
|
350
|
+
get: function () { return chunkYO6TN5TA_cjs.SLIDE_UTILITY_CSS; }
|
|
351
351
|
});
|
|
352
352
|
Object.defineProperty(exports, "buildBespokeSlideMarkup", {
|
|
353
353
|
enumerable: true,
|
|
354
|
-
get: function () { return
|
|
354
|
+
get: function () { return chunkYO6TN5TA_cjs.buildBespokeSlideMarkup; }
|
|
355
355
|
});
|
|
356
356
|
Object.defineProperty(exports, "compileHtmlDeck", {
|
|
357
357
|
enumerable: true,
|
|
358
|
-
get: function () { return
|
|
358
|
+
get: function () { return chunkYO6TN5TA_cjs.compileHtmlDeck; }
|
|
359
359
|
});
|
|
360
360
|
Object.defineProperty(exports, "compileHtmlDeckAsync", {
|
|
361
361
|
enumerable: true,
|
|
362
|
-
get: function () { return
|
|
362
|
+
get: function () { return chunkYO6TN5TA_cjs.compileHtmlDeckAsync; }
|
|
363
363
|
});
|
|
364
364
|
Object.defineProperty(exports, "generateHtmlShell", {
|
|
365
365
|
enumerable: true,
|
|
366
|
-
get: function () { return
|
|
366
|
+
get: function () { return chunkYO6TN5TA_cjs.generateHtmlShell; }
|
|
367
367
|
});
|
|
368
368
|
Object.defineProperty(exports, "getHighlighter", {
|
|
369
369
|
enumerable: true,
|
|
370
|
-
get: function () { return
|
|
370
|
+
get: function () { return chunkYO6TN5TA_cjs.getHighlighter; }
|
|
371
371
|
});
|
|
372
372
|
Object.defineProperty(exports, "highlightCodeBlocks", {
|
|
373
373
|
enumerable: true,
|
|
374
|
-
get: function () { return
|
|
374
|
+
get: function () { return chunkYO6TN5TA_cjs.highlightCodeBlocks; }
|
|
375
375
|
});
|
|
376
376
|
Object.defineProperty(exports, "highlightDeckCodeBlocks", {
|
|
377
377
|
enumerable: true,
|
|
378
|
-
get: function () { return
|
|
378
|
+
get: function () { return chunkYO6TN5TA_cjs.highlightDeckCodeBlocks; }
|
|
379
379
|
});
|
|
380
380
|
Object.defineProperty(exports, "listUtilityClasses", {
|
|
381
381
|
enumerable: true,
|
|
382
|
-
get: function () { return
|
|
382
|
+
get: function () { return chunkYO6TN5TA_cjs.listUtilityClasses; }
|
|
383
383
|
});
|
|
384
384
|
Object.defineProperty(exports, "normalizeSlideSlots", {
|
|
385
385
|
enumerable: true,
|
|
386
|
-
get: function () { return
|
|
386
|
+
get: function () { return chunkYO6TN5TA_cjs.normalizeSlideSlots; }
|
|
387
387
|
});
|
|
388
388
|
Object.defineProperty(exports, "resolveHtmlTheme", {
|
|
389
389
|
enumerable: true,
|
|
390
|
-
get: function () { return
|
|
390
|
+
get: function () { return chunkYO6TN5TA_cjs.resolveHtmlTheme; }
|
|
391
391
|
});
|
|
392
392
|
Object.defineProperty(exports, "sanitizeSlideHtml", {
|
|
393
393
|
enumerable: true,
|
|
394
|
-
get: function () { return
|
|
394
|
+
get: function () { return chunkYO6TN5TA_cjs.sanitizeSlideHtml; }
|
|
395
395
|
});
|
|
396
396
|
Object.defineProperty(exports, "validateBespokeSlideHtml", {
|
|
397
397
|
enumerable: true,
|
|
398
|
-
get: function () { return
|
|
398
|
+
get: function () { return chunkYO6TN5TA_cjs.validateBespokeSlideHtml; }
|
|
399
399
|
});
|
|
400
400
|
Object.defineProperty(exports, "FRONTEND_SLIDES_CORE_RULES", {
|
|
401
401
|
enumerable: true,
|
|
402
|
-
get: function () { return
|
|
402
|
+
get: function () { return chunkEAPUC5BA_cjs.FRONTEND_SLIDES_CORE_RULES; }
|
|
403
403
|
});
|
|
404
404
|
Object.defineProperty(exports, "STYLE_PRESETS", {
|
|
405
405
|
enumerable: true,
|
|
406
|
-
get: function () { return
|
|
406
|
+
get: function () { return chunkEAPUC5BA_cjs.STYLE_PRESETS; }
|
|
407
407
|
});
|
|
408
408
|
Object.defineProperty(exports, "TEMPLATES_CATALOG", {
|
|
409
409
|
enumerable: true,
|
|
410
|
-
get: function () { return
|
|
410
|
+
get: function () { return chunkEAPUC5BA_cjs.TEMPLATES_CATALOG; }
|
|
411
411
|
});
|
|
412
412
|
Object.defineProperty(exports, "VIEWPORT_BASE_CSS", {
|
|
413
413
|
enumerable: true,
|
|
414
|
-
get: function () { return
|
|
414
|
+
get: function () { return chunkEAPUC5BA_cjs.VIEWPORT_BASE_CSS; }
|
|
415
415
|
});
|
|
416
416
|
Object.defineProperty(exports, "frontendSlidesTools", {
|
|
417
417
|
enumerable: true,
|
|
418
|
-
get: function () { return
|
|
418
|
+
get: function () { return chunkEAPUC5BA_cjs.frontendSlidesTools; }
|
|
419
419
|
});
|
|
420
420
|
Object.defineProperty(exports, "getFrontendSlidesSkillPrompt", {
|
|
421
421
|
enumerable: true,
|
|
422
|
-
get: function () { return
|
|
422
|
+
get: function () { return chunkEAPUC5BA_cjs.getFrontendSlidesSkillPrompt; }
|
|
423
423
|
});
|
|
424
424
|
Object.defineProperty(exports, "getSlideStylePresetSchema", {
|
|
425
425
|
enumerable: true,
|
|
426
|
-
get: function () { return
|
|
426
|
+
get: function () { return chunkEAPUC5BA_cjs.getSlideStylePresetSchema; }
|
|
427
427
|
});
|
|
428
428
|
Object.defineProperty(exports, "getStylePreset", {
|
|
429
429
|
enumerable: true,
|
|
430
|
-
get: function () { return
|
|
430
|
+
get: function () { return chunkEAPUC5BA_cjs.getStylePreset; }
|
|
431
431
|
});
|
|
432
432
|
Object.defineProperty(exports, "getStylePresetById", {
|
|
433
433
|
enumerable: true,
|
|
434
|
-
get: function () { return
|
|
434
|
+
get: function () { return chunkEAPUC5BA_cjs.getStylePresetById; }
|
|
435
435
|
});
|
|
436
436
|
Object.defineProperty(exports, "getTemplatesCatalog", {
|
|
437
437
|
enumerable: true,
|
|
438
|
-
get: function () { return
|
|
438
|
+
get: function () { return chunkEAPUC5BA_cjs.getTemplatesCatalog; }
|
|
439
439
|
});
|
|
440
440
|
Object.defineProperty(exports, "querySlideTemplatesSchema", {
|
|
441
441
|
enumerable: true,
|
|
442
|
-
get: function () { return
|
|
442
|
+
get: function () { return chunkEAPUC5BA_cjs.querySlideTemplatesSchema; }
|
|
443
443
|
});
|
|
444
444
|
Object.defineProperty(exports, "searchTemplates", {
|
|
445
445
|
enumerable: true,
|
|
446
|
-
get: function () { return
|
|
446
|
+
get: function () { return chunkEAPUC5BA_cjs.searchTemplates; }
|
|
447
447
|
});
|
|
448
448
|
exports.cleanHexColor = cleanHexColor;
|
|
449
449
|
exports.convertMarkdownToPptx = convertMarkdownToPptx;
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { resolveTheme, generateScopedCss2, renderSlideAsync, renderSlide } from './chunk-
|
|
2
|
-
export { convertTextArrows, countSlides, darkThemeTokens, defineTheme, detectMermaidBlocks, extractLayoutsAndNotes, extractMarpSource, extractMaxClicks, filterPresenterNotes, generateClickCss, generateLayoutCss, generateScopedCss2 as generateScopedCss, generateScopedCss as generateScopedCssFromTokens, getThemeTokens, isLayoutComment, lightThemeTokens, navyThemeTokens, parseLayoutFromComment, postprocessClicks, preprocessClicks, renderMarp, renderMermaidDiagrams, renderSlide, renderSlideAsync, resolveTheme, sanitizeMermaidCode } from './chunk-
|
|
1
|
+
import { resolveTheme, generateScopedCss2, renderSlideAsync, renderSlide } from './chunk-FIBXWRWQ.js';
|
|
2
|
+
export { convertTextArrows, countSlides, darkThemeTokens, defineTheme, detectMermaidBlocks, extractLayoutsAndNotes, extractMarpSource, extractMaxClicks, filterPresenterNotes, generateClickCss, generateLayoutCss, generateScopedCss2 as generateScopedCss, generateScopedCss as generateScopedCssFromTokens, getThemeTokens, isLayoutComment, lightThemeTokens, navyThemeTokens, parseLayoutFromComment, postprocessClicks, preprocessClicks, renderMarp, renderMermaidDiagrams, renderSlide, renderSlideAsync, resolveTheme, sanitizeMermaidCode } from './chunk-FIBXWRWQ.js';
|
|
3
3
|
import { splitMarkdownSlides } from './chunk-V6X7D44H.js';
|
|
4
4
|
export { SLIDE_LAYOUT_PRESETS, getSlideLayoutPresetById, getSlideLayoutPresetsByCategory, removeSlideElementFromMarkdown, serializeLayoutToComment, splitMarkdownSlides, updateSlideLayoutInMarkdown, updateSlideTextInMarkdown } from './chunk-V6X7D44H.js';
|
|
5
|
-
export { HTML_SLIDE_PRESETS, HTML_THEMES, SLIDE_UTILITY_CSS, buildBespokeSlideMarkup, compileHtmlDeck, compileHtmlDeckAsync, generateHtmlShell, getHighlighter, highlightCodeBlocks, highlightDeckCodeBlocks, listUtilityClasses, normalizeSlideSlots, resolveHtmlTheme, sanitizeSlideHtml, validateBespokeSlideHtml } from './chunk-
|
|
6
|
-
export { FRONTEND_SLIDES_CORE_RULES, STYLE_PRESETS, TEMPLATES_CATALOG, VIEWPORT_BASE_CSS, frontendSlidesTools, getFrontendSlidesSkillPrompt, getSlideStylePresetSchema, getStylePreset, getStylePresetById, getTemplatesCatalog, querySlideTemplatesSchema, searchTemplates } from './chunk-
|
|
5
|
+
export { HTML_SLIDE_PRESETS, HTML_THEMES, SLIDE_UTILITY_CSS, buildBespokeSlideMarkup, compileHtmlDeck, compileHtmlDeckAsync, generateHtmlShell, getHighlighter, highlightCodeBlocks, highlightDeckCodeBlocks, listUtilityClasses, normalizeSlideSlots, resolveHtmlTheme, sanitizeSlideHtml, validateBespokeSlideHtml } from './chunk-LVSQN2VI.js';
|
|
6
|
+
export { FRONTEND_SLIDES_CORE_RULES, STYLE_PRESETS, TEMPLATES_CATALOG, VIEWPORT_BASE_CSS, frontendSlidesTools, getFrontendSlidesSkillPrompt, getSlideStylePresetSchema, getStylePreset, getStylePresetById, getTemplatesCatalog, querySlideTemplatesSchema, searchTemplates } from './chunk-WNPKREEW.js';
|
|
7
7
|
|
|
8
8
|
// src/engine.ts
|
|
9
9
|
function createEngine(config = {}) {
|
package/dist/node/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYO6TN5TA_cjs = require('../chunk-YO6TN5TA.cjs');
|
|
4
4
|
var fs = require('fs');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var url = require('url');
|
|
@@ -82,7 +82,7 @@ function collectDeckFontFamilies(html, theme) {
|
|
|
82
82
|
return Array.from(found);
|
|
83
83
|
}
|
|
84
84
|
function compileStandaloneHtmlDeck(deckData, options = {}) {
|
|
85
|
-
const base =
|
|
85
|
+
const base = chunkYO6TN5TA_cjs.compileHtmlDeck(deckData, options);
|
|
86
86
|
if (options.embedFonts === false) return { ...base, embeddedFonts: [] };
|
|
87
87
|
const families = collectDeckFontFamilies(base.html, base.theme);
|
|
88
88
|
const fontFaceCss = loadEmbeddedFontFaceCss(families);
|
package/dist/node/index.js
CHANGED
package/dist/react/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk2FJGU32M_cjs = require('../chunk-2FJGU32M.cjs');
|
|
4
4
|
var chunk3Q4RMZVQ_cjs = require('../chunk-3Q4RMZVQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkYO6TN5TA_cjs = require('../chunk-YO6TN5TA.cjs');
|
|
6
6
|
var React2 = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
|
|
@@ -26,7 +26,7 @@ function useSlideState(options) {
|
|
|
26
26
|
const result = React2.useMemo(() => {
|
|
27
27
|
if (!markdown || !markdown.trim()) return null;
|
|
28
28
|
renderCountRef.current++;
|
|
29
|
-
return
|
|
29
|
+
return chunk2FJGU32M_cjs.renderSlide(markdown, {
|
|
30
30
|
theme,
|
|
31
31
|
enableMermaid: true,
|
|
32
32
|
enableClicks,
|
|
@@ -1338,7 +1338,7 @@ function SlideViewer({
|
|
|
1338
1338
|
containers.forEach((container) => {
|
|
1339
1339
|
if (container instanceof HTMLElement) {
|
|
1340
1340
|
const themeName2 = typeof theme === "string" ? theme : "dark";
|
|
1341
|
-
|
|
1341
|
+
chunk2FJGU32M_cjs.renderMermaidDiagrams(container, themeName2).catch(() => {
|
|
1342
1342
|
});
|
|
1343
1343
|
}
|
|
1344
1344
|
});
|
|
@@ -1622,7 +1622,7 @@ var HtmlSlideViewer = ({
|
|
|
1622
1622
|
const fullHtml = React2.useMemo(() => {
|
|
1623
1623
|
if (initialHtml) return initialHtml;
|
|
1624
1624
|
if (deckData) {
|
|
1625
|
-
return
|
|
1625
|
+
return chunkYO6TN5TA_cjs.compileHtmlDeck(deckData).html;
|
|
1626
1626
|
}
|
|
1627
1627
|
return "";
|
|
1628
1628
|
}, [initialHtml, deckData]);
|
|
@@ -1778,35 +1778,35 @@ var HtmlSlideViewer = ({
|
|
|
1778
1778
|
|
|
1779
1779
|
Object.defineProperty(exports, "defineTheme", {
|
|
1780
1780
|
enumerable: true,
|
|
1781
|
-
get: function () { return
|
|
1781
|
+
get: function () { return chunk2FJGU32M_cjs.defineTheme; }
|
|
1782
1782
|
});
|
|
1783
1783
|
Object.defineProperty(exports, "extractMaxClicks", {
|
|
1784
1784
|
enumerable: true,
|
|
1785
|
-
get: function () { return
|
|
1785
|
+
get: function () { return chunk2FJGU32M_cjs.extractMaxClicks; }
|
|
1786
1786
|
});
|
|
1787
1787
|
Object.defineProperty(exports, "generateClickCss", {
|
|
1788
1788
|
enumerable: true,
|
|
1789
|
-
get: function () { return
|
|
1789
|
+
get: function () { return chunk2FJGU32M_cjs.generateClickCss; }
|
|
1790
1790
|
});
|
|
1791
1791
|
Object.defineProperty(exports, "postprocessClicks", {
|
|
1792
1792
|
enumerable: true,
|
|
1793
|
-
get: function () { return
|
|
1793
|
+
get: function () { return chunk2FJGU32M_cjs.postprocessClicks; }
|
|
1794
1794
|
});
|
|
1795
1795
|
Object.defineProperty(exports, "preprocessClicks", {
|
|
1796
1796
|
enumerable: true,
|
|
1797
|
-
get: function () { return
|
|
1797
|
+
get: function () { return chunk2FJGU32M_cjs.preprocessClicks; }
|
|
1798
1798
|
});
|
|
1799
1799
|
Object.defineProperty(exports, "renderSlide", {
|
|
1800
1800
|
enumerable: true,
|
|
1801
|
-
get: function () { return
|
|
1801
|
+
get: function () { return chunk2FJGU32M_cjs.renderSlide; }
|
|
1802
1802
|
});
|
|
1803
1803
|
Object.defineProperty(exports, "renderSlideAsync", {
|
|
1804
1804
|
enumerable: true,
|
|
1805
|
-
get: function () { return
|
|
1805
|
+
get: function () { return chunk2FJGU32M_cjs.renderSlideAsync; }
|
|
1806
1806
|
});
|
|
1807
1807
|
Object.defineProperty(exports, "resolveTheme", {
|
|
1808
1808
|
enumerable: true,
|
|
1809
|
-
get: function () { return
|
|
1809
|
+
get: function () { return chunk2FJGU32M_cjs.resolveTheme; }
|
|
1810
1810
|
});
|
|
1811
1811
|
exports.DeckView = DeckView;
|
|
1812
1812
|
exports.HtmlSlideViewer = HtmlSlideViewer;
|
package/dist/react/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { renderSlide, renderMermaidDiagrams } from '../chunk-
|
|
2
|
-
export { defineTheme, extractMaxClicks, generateClickCss, postprocessClicks, preprocessClicks, renderSlide, renderSlideAsync, resolveTheme } from '../chunk-
|
|
1
|
+
import { renderSlide, renderMermaidDiagrams } from '../chunk-FIBXWRWQ.js';
|
|
2
|
+
export { defineTheme, extractMaxClicks, generateClickCss, postprocessClicks, preprocessClicks, renderSlide, renderSlideAsync, resolveTheme } from '../chunk-FIBXWRWQ.js';
|
|
3
3
|
import { SLIDE_LAYOUT_PRESETS, updateSlideLayoutInMarkdown } from '../chunk-V6X7D44H.js';
|
|
4
|
-
import { compileHtmlDeck } from '../chunk-
|
|
4
|
+
import { compileHtmlDeck } from '../chunk-LVSQN2VI.js';
|
|
5
5
|
import React2, { useState, useRef, useMemo, useEffect, useCallback } from 'react';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
|
package/dist/skills/index.cjs
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEAPUC5BA_cjs = require('../chunk-EAPUC5BA.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "FRONTEND_SLIDES_CORE_RULES", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkEAPUC5BA_cjs.FRONTEND_SLIDES_CORE_RULES; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "STYLE_PRESETS", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkEAPUC5BA_cjs.STYLE_PRESETS; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "TEMPLATES_CATALOG", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkEAPUC5BA_cjs.TEMPLATES_CATALOG; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "VIEWPORT_BASE_CSS", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkEAPUC5BA_cjs.VIEWPORT_BASE_CSS; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "frontendSlidesTools", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkEAPUC5BA_cjs.frontendSlidesTools; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "getFrontendSlidesSkillPrompt", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkEAPUC5BA_cjs.getFrontendSlidesSkillPrompt; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "getSlideStylePresetSchema", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkEAPUC5BA_cjs.getSlideStylePresetSchema; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "getStylePreset", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkEAPUC5BA_cjs.getStylePreset; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "getStylePresetById", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkEAPUC5BA_cjs.getStylePresetById; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "getTemplatesCatalog", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkEAPUC5BA_cjs.getTemplatesCatalog; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "querySlideTemplatesSchema", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkEAPUC5BA_cjs.querySlideTemplatesSchema; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "searchTemplates", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkEAPUC5BA_cjs.searchTemplates; }
|
|
54
54
|
});
|
|
55
55
|
//# sourceMappingURL=index.cjs.map
|
|
56
56
|
//# sourceMappingURL=index.cjs.map
|
package/dist/skills/index.d.cts
CHANGED
|
@@ -38,7 +38,7 @@ declare const TEMPLATES_CATALOG: TemplateCatalogItem[];
|
|
|
38
38
|
declare const STYLE_PRESETS: StylePresetItem[];
|
|
39
39
|
|
|
40
40
|
declare const VIEWPORT_BASE_CSS = "/* ===========================================\n FIXED 16:9 STAGE: MANDATORY BASE STYLES\n Slides are authored at 1920\u00D71080 and scaled as a whole.\n =========================================== */\n\nhtml, body {\n width: 100%;\n height: 100%;\n margin: 0;\n overflow: hidden;\n background: var(--stage-bg, #000);\n}\n\n.deck-viewport {\n position: fixed;\n inset: 0;\n overflow: hidden;\n background: var(--stage-bg, #000);\n}\n\n.deck-stage {\n position: absolute;\n left: 0;\n top: 0;\n width: 1920px;\n height: 1080px;\n overflow: hidden;\n transform-origin: 0 0;\n background: var(--slide-bg, #fff);\n}\n\n.slide {\n position: absolute;\n inset: 0;\n width: 1920px;\n height: 1080px;\n overflow: hidden;\n display: block;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n background: var(--slide-bg, #fff);\n}\n\n.slide.active,\n.slide.visible {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n z-index: 1;\n}\n\nimg, video, canvas, svg {\n max-width: 100%;\n max-height: 100%;\n}\n\n.reveal {\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),\n transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.slide.visible .reveal,\n.slide.active .reveal {\n opacity: 1;\n transform: translateY(0);\n}\n\n.reveal:nth-child(1) { transition-delay: 0.08s; }\n.reveal:nth-child(2) { transition-delay: 0.16s; }\n.reveal:nth-child(3) { transition-delay: 0.24s; }\n.reveal:nth-child(4) { transition-delay: 0.32s; }\n.reveal:nth-child(5) { transition-delay: 0.40s; }\n\n@media (prefers-reduced-motion: reduce) {\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n transition-duration: 0.1s !important;\n }\n}\n";
|
|
41
|
-
declare const FRONTEND_SLIDES_CORE_RULES = "\n# FRONTEND SLIDES SKILL & QUALITY INVARIANTS\n\n## 1. Core Principles (Non-Negotiable)\n1. **Zero Dependencies** \u2014 Single HTML presentation with inline scoped CSS and JS.\n2. **Fixed 16:9 Stage Canvas** \u2014 Every slide is strictly authored inside a fixed 1920\u00D71080 stage canvas (.deck-stage) scaled to the browser viewport. Never reflow slide content for different screen ratios.\n3. **No AI-Slop Design** \u2014 Never use generic purple gradients, clich\u00E9 fonts (Arial, Roboto), or boring corporate bullets. Use curated palettes (Electric Studio, Blue Professional, Cobalt Grid) and distinctive typography (Space Grotesk, Inter, Syne, JetBrains Mono).\n4. **Staggered Reveals** \u2014 Use the .reveal class on key elements with transition delays for smooth, cinematic entrance animations.\n5. **No Pixel Coordinates** \u2014 NEVER output free-form bounding-box coordinates like \"position\": { \"x\", \"y\" } or \"layout\": \"title_and_content\". Always populate semantic layout slots.\n\n## 2. Pacing & Pedagogical Structure\nA complete lesson deck MUST have 8 to 12 slides following the Chunky Micro-Cycle:\n1. **Cover (hero-cover):** Lesson title, topic badge, learning goal, author/date.\n2. **Agenda & Roadmap (two-columns-compare or timeline-steps):** Milestones and timing.\n3. **Core Mental Model (split-concept-code):** Definition, analogy, and runnable starter code.\n4. **Visual Architecture (three-cards-grid):** 3-pillar breakdown of mechanisms.\n5. **Syntax & Deep Dive (split-concept-code):** Concrete language syntax, gotchas, and annotated snippet.\n6. **Timeline Execution (timeline-steps):** Step-by-step pipeline or algorithmic flow.\n7. **Interactive Formative Check (checkpoint-quiz):** Multiple-choice diagnostic question with explanation.\n8. **Summary & Next Milestone (summary-takeaways):** 3-4 golden takeaways and preview of next lesson.\n";
|
|
41
|
+
declare const FRONTEND_SLIDES_CORE_RULES = "\n# FRONTEND SLIDES SKILL & QUALITY INVARIANTS\n\n## 1. Core Principles (Non-Negotiable)\n1. **Zero Dependencies** \u2014 Single HTML presentation with inline scoped CSS and JS.\n2. **Fixed 16:9 Stage Canvas** \u2014 Every slide is strictly authored inside a fixed 1920\u00D71080 stage canvas (.deck-stage) scaled to the browser viewport. Never reflow slide content for different screen ratios.\n3. **No AI-Slop Design** \u2014 Never use generic purple gradients, clich\u00E9 fonts (Arial, Roboto), or boring corporate bullets. Use curated palettes (Electric Studio, Blue Professional, Cobalt Grid) and distinctive typography (Space Grotesk, Inter, Syne, JetBrains Mono).\n4. **Staggered Reveals** \u2014 Use the .reveal class on key elements with transition delays for smooth, cinematic entrance animations.\n5. **No Pixel Coordinates** \u2014 NEVER output free-form bounding-box coordinates like \"position\": { \"x\", \"y\" } or \"layout\": \"title_and_content\". Always populate semantic layout slots.\n6. **Full-Stage Composition** \u2014 The composition must occupy the full 1920\u00D71080 stage height. No vertical dead band taller than ~150px between blocks: if content is light, scale the type and spacing up or center the whole composition as a hero; never bottom-anchor content under a header (space-between on a full-height root with few children pools all leftover height into one hole).\n\n## 2. Pacing & Pedagogical Structure\nA complete lesson deck MUST have 8 to 12 slides following the Chunky Micro-Cycle:\n1. **Cover (hero-cover):** Lesson title, topic badge, learning goal, author/date.\n2. **Agenda & Roadmap (two-columns-compare or timeline-steps):** Milestones and timing.\n3. **Core Mental Model (split-concept-code):** Definition, analogy, and runnable starter code.\n4. **Visual Architecture (three-cards-grid):** 3-pillar breakdown of mechanisms.\n5. **Syntax & Deep Dive (split-concept-code):** Concrete language syntax, gotchas, and annotated snippet.\n6. **Timeline Execution (timeline-steps):** Step-by-step pipeline or algorithmic flow.\n7. **Interactive Formative Check (checkpoint-quiz):** Multiple-choice diagnostic question with explanation.\n8. **Summary & Next Milestone (summary-takeaways):** 3-4 golden takeaways and preview of next lesson.\n";
|
|
42
42
|
|
|
43
43
|
interface FrontendSlidesSkillOptions {
|
|
44
44
|
mood?: string;
|
package/dist/skills/index.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ declare const TEMPLATES_CATALOG: TemplateCatalogItem[];
|
|
|
38
38
|
declare const STYLE_PRESETS: StylePresetItem[];
|
|
39
39
|
|
|
40
40
|
declare const VIEWPORT_BASE_CSS = "/* ===========================================\n FIXED 16:9 STAGE: MANDATORY BASE STYLES\n Slides are authored at 1920\u00D71080 and scaled as a whole.\n =========================================== */\n\nhtml, body {\n width: 100%;\n height: 100%;\n margin: 0;\n overflow: hidden;\n background: var(--stage-bg, #000);\n}\n\n.deck-viewport {\n position: fixed;\n inset: 0;\n overflow: hidden;\n background: var(--stage-bg, #000);\n}\n\n.deck-stage {\n position: absolute;\n left: 0;\n top: 0;\n width: 1920px;\n height: 1080px;\n overflow: hidden;\n transform-origin: 0 0;\n background: var(--slide-bg, #fff);\n}\n\n.slide {\n position: absolute;\n inset: 0;\n width: 1920px;\n height: 1080px;\n overflow: hidden;\n display: block;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n background: var(--slide-bg, #fff);\n}\n\n.slide.active,\n.slide.visible {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n z-index: 1;\n}\n\nimg, video, canvas, svg {\n max-width: 100%;\n max-height: 100%;\n}\n\n.reveal {\n opacity: 0;\n transform: translateY(30px);\n transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),\n transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.slide.visible .reveal,\n.slide.active .reveal {\n opacity: 1;\n transform: translateY(0);\n}\n\n.reveal:nth-child(1) { transition-delay: 0.08s; }\n.reveal:nth-child(2) { transition-delay: 0.16s; }\n.reveal:nth-child(3) { transition-delay: 0.24s; }\n.reveal:nth-child(4) { transition-delay: 0.32s; }\n.reveal:nth-child(5) { transition-delay: 0.40s; }\n\n@media (prefers-reduced-motion: reduce) {\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n transition-duration: 0.1s !important;\n }\n}\n";
|
|
41
|
-
declare const FRONTEND_SLIDES_CORE_RULES = "\n# FRONTEND SLIDES SKILL & QUALITY INVARIANTS\n\n## 1. Core Principles (Non-Negotiable)\n1. **Zero Dependencies** \u2014 Single HTML presentation with inline scoped CSS and JS.\n2. **Fixed 16:9 Stage Canvas** \u2014 Every slide is strictly authored inside a fixed 1920\u00D71080 stage canvas (.deck-stage) scaled to the browser viewport. Never reflow slide content for different screen ratios.\n3. **No AI-Slop Design** \u2014 Never use generic purple gradients, clich\u00E9 fonts (Arial, Roboto), or boring corporate bullets. Use curated palettes (Electric Studio, Blue Professional, Cobalt Grid) and distinctive typography (Space Grotesk, Inter, Syne, JetBrains Mono).\n4. **Staggered Reveals** \u2014 Use the .reveal class on key elements with transition delays for smooth, cinematic entrance animations.\n5. **No Pixel Coordinates** \u2014 NEVER output free-form bounding-box coordinates like \"position\": { \"x\", \"y\" } or \"layout\": \"title_and_content\". Always populate semantic layout slots.\n\n## 2. Pacing & Pedagogical Structure\nA complete lesson deck MUST have 8 to 12 slides following the Chunky Micro-Cycle:\n1. **Cover (hero-cover):** Lesson title, topic badge, learning goal, author/date.\n2. **Agenda & Roadmap (two-columns-compare or timeline-steps):** Milestones and timing.\n3. **Core Mental Model (split-concept-code):** Definition, analogy, and runnable starter code.\n4. **Visual Architecture (three-cards-grid):** 3-pillar breakdown of mechanisms.\n5. **Syntax & Deep Dive (split-concept-code):** Concrete language syntax, gotchas, and annotated snippet.\n6. **Timeline Execution (timeline-steps):** Step-by-step pipeline or algorithmic flow.\n7. **Interactive Formative Check (checkpoint-quiz):** Multiple-choice diagnostic question with explanation.\n8. **Summary & Next Milestone (summary-takeaways):** 3-4 golden takeaways and preview of next lesson.\n";
|
|
41
|
+
declare const FRONTEND_SLIDES_CORE_RULES = "\n# FRONTEND SLIDES SKILL & QUALITY INVARIANTS\n\n## 1. Core Principles (Non-Negotiable)\n1. **Zero Dependencies** \u2014 Single HTML presentation with inline scoped CSS and JS.\n2. **Fixed 16:9 Stage Canvas** \u2014 Every slide is strictly authored inside a fixed 1920\u00D71080 stage canvas (.deck-stage) scaled to the browser viewport. Never reflow slide content for different screen ratios.\n3. **No AI-Slop Design** \u2014 Never use generic purple gradients, clich\u00E9 fonts (Arial, Roboto), or boring corporate bullets. Use curated palettes (Electric Studio, Blue Professional, Cobalt Grid) and distinctive typography (Space Grotesk, Inter, Syne, JetBrains Mono).\n4. **Staggered Reveals** \u2014 Use the .reveal class on key elements with transition delays for smooth, cinematic entrance animations.\n5. **No Pixel Coordinates** \u2014 NEVER output free-form bounding-box coordinates like \"position\": { \"x\", \"y\" } or \"layout\": \"title_and_content\". Always populate semantic layout slots.\n6. **Full-Stage Composition** \u2014 The composition must occupy the full 1920\u00D71080 stage height. No vertical dead band taller than ~150px between blocks: if content is light, scale the type and spacing up or center the whole composition as a hero; never bottom-anchor content under a header (space-between on a full-height root with few children pools all leftover height into one hole).\n\n## 2. Pacing & Pedagogical Structure\nA complete lesson deck MUST have 8 to 12 slides following the Chunky Micro-Cycle:\n1. **Cover (hero-cover):** Lesson title, topic badge, learning goal, author/date.\n2. **Agenda & Roadmap (two-columns-compare or timeline-steps):** Milestones and timing.\n3. **Core Mental Model (split-concept-code):** Definition, analogy, and runnable starter code.\n4. **Visual Architecture (three-cards-grid):** 3-pillar breakdown of mechanisms.\n5. **Syntax & Deep Dive (split-concept-code):** Concrete language syntax, gotchas, and annotated snippet.\n6. **Timeline Execution (timeline-steps):** Step-by-step pipeline or algorithmic flow.\n7. **Interactive Formative Check (checkpoint-quiz):** Multiple-choice diagnostic question with explanation.\n8. **Summary & Next Milestone (summary-takeaways):** 3-4 golden takeaways and preview of next lesson.\n";
|
|
42
42
|
|
|
43
43
|
interface FrontendSlidesSkillOptions {
|
|
44
44
|
mood?: string;
|
package/dist/skills/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { FRONTEND_SLIDES_CORE_RULES, STYLE_PRESETS, TEMPLATES_CATALOG, VIEWPORT_BASE_CSS, frontendSlidesTools, getFrontendSlidesSkillPrompt, getSlideStylePresetSchema, getStylePreset, getStylePresetById, getTemplatesCatalog, querySlideTemplatesSchema, searchTemplates } from '../chunk-
|
|
1
|
+
export { FRONTEND_SLIDES_CORE_RULES, STYLE_PRESETS, TEMPLATES_CATALOG, VIEWPORT_BASE_CSS, frontendSlidesTools, getFrontendSlidesSkillPrompt, getSlideStylePresetSchema, getStylePreset, getStylePresetById, getTemplatesCatalog, querySlideTemplatesSchema, searchTemplates } from '../chunk-WNPKREEW.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thanh01.pmt/presentation-kit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Standalone client-side slide rendering engine with Marp, Shiki syntax highlighting, Mermaid diagrams, custom themes, and AI slide authoring tools.",
|
|
5
5
|
"author": "Thanh Pham <https://github.com/thanh01pmt>",
|
|
6
6
|
"license": "MIT",
|