@thanh01.pmt/presentation-kit 0.2.1 → 0.2.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 +427 -0
- package/dist/ai/index.cjs.map +1 -0
- package/dist/ai/index.d.cts +206 -0
- package/dist/ai/index.d.ts +206 -0
- package/dist/ai/index.js +415 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/chunk-HBMXEPZJ.js +745 -0
- package/dist/chunk-HBMXEPZJ.js.map +1 -0
- package/dist/{chunk-PAHIW5IX.js → chunk-JOW4QWKF.js} +3 -741
- package/dist/chunk-JOW4QWKF.js.map +1 -0
- package/dist/chunk-OEAOYF7C.cjs +756 -0
- package/dist/chunk-OEAOYF7C.cjs.map +1 -0
- package/dist/{chunk-RJMPTRL3.cjs → chunk-VLAPHJOC.cjs} +2 -746
- package/dist/chunk-VLAPHJOC.cjs.map +1 -0
- package/dist/click-css-BGZI3XKk.d.cts +124 -0
- package/dist/click-css-eWONB-hS.d.ts +124 -0
- package/dist/index.cjs +51 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -22
- package/dist/index.d.ts +5 -22
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/presets-B1N2_jKl.d.ts +22 -0
- package/dist/presets-JpoJbNKE.d.cts +22 -0
- package/dist/react/index.cjs +15 -14
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +3 -2
- package/dist/react/index.d.ts +3 -2
- package/dist/react/index.js +3 -2
- package/dist/react/index.js.map +1 -1
- package/dist/{click-css-C84mdmU0.d.cts → types-DnR81ReX.d.cts} +1 -122
- package/dist/{click-css-C84mdmU0.d.ts → types-DnR81ReX.d.ts} +1 -122
- package/package.json +10 -3
- package/dist/chunk-PAHIW5IX.js.map +0 -1
- package/dist/chunk-RJMPTRL3.cjs.map +0 -1
|
@@ -149,125 +149,4 @@ interface SlideEngine {
|
|
|
149
149
|
getThemeCss: (theme: BuiltInTheme | SlideTheme, containerId?: string) => string;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
html: string;
|
|
154
|
-
css: string;
|
|
155
|
-
comments: (string[] | undefined)[];
|
|
156
|
-
maxClicks: number;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Low-level synchronous Marp render.
|
|
160
|
-
* Preprocesses clicks, converts arrows, renders Marp, postprocesses clicks.
|
|
161
|
-
*/
|
|
162
|
-
declare function renderMarp(markdown: string, containerId?: string, enableClicks?: boolean): RenderMarpResult;
|
|
163
|
-
/**
|
|
164
|
-
* Count slides in rendered Marp HTML by detecting <svg data-marpit-svg> elements.
|
|
165
|
-
*/
|
|
166
|
-
declare function countSlides(html: string): number;
|
|
167
|
-
/**
|
|
168
|
-
* High-level synchronous render — resolves theme, generates scoped CSS,
|
|
169
|
-
* detects mermaid blocks. Does NOT apply Shiki or Mermaid rendering.
|
|
170
|
-
*/
|
|
171
|
-
declare function renderSlide(markdown: string, options?: SlideRenderOptions): SlideRenderResult;
|
|
172
|
-
/**
|
|
173
|
-
* High-level async render — applies Shiki syntax highlighting.
|
|
174
|
-
* Mermaid blocks are returned separately (DOM-based, consumer renders them).
|
|
175
|
-
*/
|
|
176
|
-
declare function renderSlideAsync(markdown: string, options?: SlideRenderOptions): Promise<SlideRenderAsyncResult>;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Get theme tokens by built-in name.
|
|
180
|
-
*/
|
|
181
|
-
declare function getThemeTokens(theme: BuiltInTheme): ThemeTokens;
|
|
182
|
-
/**
|
|
183
|
-
* Resolve a theme (built-in name or custom SlideTheme) to a full SlideTheme object.
|
|
184
|
-
*/
|
|
185
|
-
declare function resolveTheme(theme: BuiltInTheme | SlideTheme | undefined): SlideTheme;
|
|
186
|
-
/**
|
|
187
|
-
* Define a custom theme with full token control.
|
|
188
|
-
*/
|
|
189
|
-
declare function defineTheme(definition: {
|
|
190
|
-
name: string;
|
|
191
|
-
tokens: ThemeTokens;
|
|
192
|
-
}): SlideTheme;
|
|
193
|
-
/**
|
|
194
|
-
* Generate scoped CSS for a theme.
|
|
195
|
-
*/
|
|
196
|
-
declare function generateScopedCss(theme: SlideTheme, containerId?: string): string;
|
|
197
|
-
|
|
198
|
-
interface ClickPreprocessResult {
|
|
199
|
-
/** Processed markdown with HTML click markers */
|
|
200
|
-
markdown: string;
|
|
201
|
-
/** Total number of click groups assigned */
|
|
202
|
-
totalClicks: number;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Preprocess markdown to convert click directives to HTML wrappers.
|
|
206
|
-
*
|
|
207
|
-
* Syntax:
|
|
208
|
-
* - `<!-- click -->` → Block-level: wraps next block in data-click-group="N"
|
|
209
|
-
* - `<!-- clicks -->` → Item-level: marks list for auto-expansion in postprocessor
|
|
210
|
-
*
|
|
211
|
-
* Auto-assigns sequential indices (1, 2, 3, ...) based on order of appearance.
|
|
212
|
-
*
|
|
213
|
-
* IMPORTANT: Skips code fences (``` ... ```) to avoid converting directives
|
|
214
|
-
* inside code blocks.
|
|
215
|
-
*
|
|
216
|
-
* Strategy: Each `<!-- click -->` opens a `<div data-click-group="N">` that wraps
|
|
217
|
-
* all content until the next `<!-- click -->` / `<!-- clicks -->` or end of slide.
|
|
218
|
-
* The postprocessor only needs to handle `<!-- clicks -->` (list expansion).
|
|
219
|
-
*/
|
|
220
|
-
declare function preprocessClicks(markdown: string): ClickPreprocessResult;
|
|
221
|
-
|
|
222
|
-
interface ClickPostprocessResult {
|
|
223
|
-
/** HTML with click groups applied */
|
|
224
|
-
html: string;
|
|
225
|
-
/** Total number of individual click groups (after expanding clicks) */
|
|
226
|
-
totalClicks: number;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Post-process rendered Marp HTML to expand clicks (item-level) list items.
|
|
230
|
-
*
|
|
231
|
-
* The preprocessor wraps <!-- click --> blocks in <div data-click-group="N">.
|
|
232
|
-
* This postprocessor handles <!-- clicks --> by splitting list items into
|
|
233
|
-
* individual click groups.
|
|
234
|
-
*
|
|
235
|
-
* Pattern: <div data-clicks="N">...<ul><li>...</li></ul>...</div>
|
|
236
|
-
* Becomes: multiple <div data-click-group="N">...<ul><li>...</li></ul>...</div>
|
|
237
|
-
*
|
|
238
|
-
* @param html - Raw Marp-rendered HTML (with click-group and clicks markers)
|
|
239
|
-
* @returns HTML with all click groups expanded
|
|
240
|
-
*/
|
|
241
|
-
declare function postprocessClicks(html: string): ClickPostprocessResult;
|
|
242
|
-
/**
|
|
243
|
-
* Extract max click index from rendered HTML.
|
|
244
|
-
* Scans for all data-click-group="N" attributes and returns the max N.
|
|
245
|
-
*/
|
|
246
|
-
declare function extractMaxClicks(html: string): number;
|
|
247
|
-
|
|
248
|
-
interface ClickCssOptions {
|
|
249
|
-
/** Container ID to scope CSS (default: no scope, global) */
|
|
250
|
-
containerId?: string;
|
|
251
|
-
/** Animation duration in ms (default: 300) */
|
|
252
|
-
duration?: number;
|
|
253
|
-
/** Animation easing (default: 'ease') */
|
|
254
|
-
easing?: string;
|
|
255
|
-
/** Y offset for slide-up animation in px (default: 8) */
|
|
256
|
-
offsetY?: number;
|
|
257
|
-
/** Use slide-up animation (default: true) */
|
|
258
|
-
slideUp?: boolean;
|
|
259
|
-
/** Use fade animation (default: true) */
|
|
260
|
-
fade?: boolean;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Generate CSS for click-to-reveal system.
|
|
264
|
-
*
|
|
265
|
-
* Elements with `data-click-group="N"` are hidden by default.
|
|
266
|
-
* Adding class `visible` reveals them with animation.
|
|
267
|
-
*
|
|
268
|
-
* @param options - Animation options
|
|
269
|
-
* @returns CSS string to inject via <style>
|
|
270
|
-
*/
|
|
271
|
-
declare function generateClickCss(options?: ClickCssOptions): string;
|
|
272
|
-
|
|
273
|
-
export { type BuiltInTheme as B, type ClickPreprocessResult as C, type LayoutBoxConfig as L, type MermaidBlock as M, type SlideEngineConfig as S, type ThemeTokens as T, type SlideEngine as a, type SlideLayoutData as b, renderSlideAsync as c, renderMarp as d, countSlides as e, defineTheme as f, resolveTheme as g, getThemeTokens as h, generateScopedCss as i, postprocessClicks as j, extractMaxClicks as k, generateClickCss as l, type ClickPostprocessResult as m, type ClickCssOptions as n, type SlideTheme as o, preprocessClicks as p, type SlideRenderOptions as q, renderSlide as r, type SlideRenderResult as s, type SlideRenderAsyncResult as t };
|
|
152
|
+
export type { BuiltInTheme as B, LayoutBoxConfig as L, MermaidBlock as M, SlideEngineConfig as S, ThemeTokens as T, SlideEngine as a, SlideLayoutData as b, SlideTheme as c, SlideRenderOptions as d, SlideRenderResult as e, SlideRenderAsyncResult as f };
|
|
@@ -149,125 +149,4 @@ interface SlideEngine {
|
|
|
149
149
|
getThemeCss: (theme: BuiltInTheme | SlideTheme, containerId?: string) => string;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
html: string;
|
|
154
|
-
css: string;
|
|
155
|
-
comments: (string[] | undefined)[];
|
|
156
|
-
maxClicks: number;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Low-level synchronous Marp render.
|
|
160
|
-
* Preprocesses clicks, converts arrows, renders Marp, postprocesses clicks.
|
|
161
|
-
*/
|
|
162
|
-
declare function renderMarp(markdown: string, containerId?: string, enableClicks?: boolean): RenderMarpResult;
|
|
163
|
-
/**
|
|
164
|
-
* Count slides in rendered Marp HTML by detecting <svg data-marpit-svg> elements.
|
|
165
|
-
*/
|
|
166
|
-
declare function countSlides(html: string): number;
|
|
167
|
-
/**
|
|
168
|
-
* High-level synchronous render — resolves theme, generates scoped CSS,
|
|
169
|
-
* detects mermaid blocks. Does NOT apply Shiki or Mermaid rendering.
|
|
170
|
-
*/
|
|
171
|
-
declare function renderSlide(markdown: string, options?: SlideRenderOptions): SlideRenderResult;
|
|
172
|
-
/**
|
|
173
|
-
* High-level async render — applies Shiki syntax highlighting.
|
|
174
|
-
* Mermaid blocks are returned separately (DOM-based, consumer renders them).
|
|
175
|
-
*/
|
|
176
|
-
declare function renderSlideAsync(markdown: string, options?: SlideRenderOptions): Promise<SlideRenderAsyncResult>;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Get theme tokens by built-in name.
|
|
180
|
-
*/
|
|
181
|
-
declare function getThemeTokens(theme: BuiltInTheme): ThemeTokens;
|
|
182
|
-
/**
|
|
183
|
-
* Resolve a theme (built-in name or custom SlideTheme) to a full SlideTheme object.
|
|
184
|
-
*/
|
|
185
|
-
declare function resolveTheme(theme: BuiltInTheme | SlideTheme | undefined): SlideTheme;
|
|
186
|
-
/**
|
|
187
|
-
* Define a custom theme with full token control.
|
|
188
|
-
*/
|
|
189
|
-
declare function defineTheme(definition: {
|
|
190
|
-
name: string;
|
|
191
|
-
tokens: ThemeTokens;
|
|
192
|
-
}): SlideTheme;
|
|
193
|
-
/**
|
|
194
|
-
* Generate scoped CSS for a theme.
|
|
195
|
-
*/
|
|
196
|
-
declare function generateScopedCss(theme: SlideTheme, containerId?: string): string;
|
|
197
|
-
|
|
198
|
-
interface ClickPreprocessResult {
|
|
199
|
-
/** Processed markdown with HTML click markers */
|
|
200
|
-
markdown: string;
|
|
201
|
-
/** Total number of click groups assigned */
|
|
202
|
-
totalClicks: number;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Preprocess markdown to convert click directives to HTML wrappers.
|
|
206
|
-
*
|
|
207
|
-
* Syntax:
|
|
208
|
-
* - `<!-- click -->` → Block-level: wraps next block in data-click-group="N"
|
|
209
|
-
* - `<!-- clicks -->` → Item-level: marks list for auto-expansion in postprocessor
|
|
210
|
-
*
|
|
211
|
-
* Auto-assigns sequential indices (1, 2, 3, ...) based on order of appearance.
|
|
212
|
-
*
|
|
213
|
-
* IMPORTANT: Skips code fences (``` ... ```) to avoid converting directives
|
|
214
|
-
* inside code blocks.
|
|
215
|
-
*
|
|
216
|
-
* Strategy: Each `<!-- click -->` opens a `<div data-click-group="N">` that wraps
|
|
217
|
-
* all content until the next `<!-- click -->` / `<!-- clicks -->` or end of slide.
|
|
218
|
-
* The postprocessor only needs to handle `<!-- clicks -->` (list expansion).
|
|
219
|
-
*/
|
|
220
|
-
declare function preprocessClicks(markdown: string): ClickPreprocessResult;
|
|
221
|
-
|
|
222
|
-
interface ClickPostprocessResult {
|
|
223
|
-
/** HTML with click groups applied */
|
|
224
|
-
html: string;
|
|
225
|
-
/** Total number of individual click groups (after expanding clicks) */
|
|
226
|
-
totalClicks: number;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Post-process rendered Marp HTML to expand clicks (item-level) list items.
|
|
230
|
-
*
|
|
231
|
-
* The preprocessor wraps <!-- click --> blocks in <div data-click-group="N">.
|
|
232
|
-
* This postprocessor handles <!-- clicks --> by splitting list items into
|
|
233
|
-
* individual click groups.
|
|
234
|
-
*
|
|
235
|
-
* Pattern: <div data-clicks="N">...<ul><li>...</li></ul>...</div>
|
|
236
|
-
* Becomes: multiple <div data-click-group="N">...<ul><li>...</li></ul>...</div>
|
|
237
|
-
*
|
|
238
|
-
* @param html - Raw Marp-rendered HTML (with click-group and clicks markers)
|
|
239
|
-
* @returns HTML with all click groups expanded
|
|
240
|
-
*/
|
|
241
|
-
declare function postprocessClicks(html: string): ClickPostprocessResult;
|
|
242
|
-
/**
|
|
243
|
-
* Extract max click index from rendered HTML.
|
|
244
|
-
* Scans for all data-click-group="N" attributes and returns the max N.
|
|
245
|
-
*/
|
|
246
|
-
declare function extractMaxClicks(html: string): number;
|
|
247
|
-
|
|
248
|
-
interface ClickCssOptions {
|
|
249
|
-
/** Container ID to scope CSS (default: no scope, global) */
|
|
250
|
-
containerId?: string;
|
|
251
|
-
/** Animation duration in ms (default: 300) */
|
|
252
|
-
duration?: number;
|
|
253
|
-
/** Animation easing (default: 'ease') */
|
|
254
|
-
easing?: string;
|
|
255
|
-
/** Y offset for slide-up animation in px (default: 8) */
|
|
256
|
-
offsetY?: number;
|
|
257
|
-
/** Use slide-up animation (default: true) */
|
|
258
|
-
slideUp?: boolean;
|
|
259
|
-
/** Use fade animation (default: true) */
|
|
260
|
-
fade?: boolean;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Generate CSS for click-to-reveal system.
|
|
264
|
-
*
|
|
265
|
-
* Elements with `data-click-group="N"` are hidden by default.
|
|
266
|
-
* Adding class `visible` reveals them with animation.
|
|
267
|
-
*
|
|
268
|
-
* @param options - Animation options
|
|
269
|
-
* @returns CSS string to inject via <style>
|
|
270
|
-
*/
|
|
271
|
-
declare function generateClickCss(options?: ClickCssOptions): string;
|
|
272
|
-
|
|
273
|
-
export { type BuiltInTheme as B, type ClickPreprocessResult as C, type LayoutBoxConfig as L, type MermaidBlock as M, type SlideEngineConfig as S, type ThemeTokens as T, type SlideEngine as a, type SlideLayoutData as b, renderSlideAsync as c, renderMarp as d, countSlides as e, defineTheme as f, resolveTheme as g, getThemeTokens as h, generateScopedCss as i, postprocessClicks as j, extractMaxClicks as k, generateClickCss as l, type ClickPostprocessResult as m, type ClickCssOptions as n, type SlideTheme as o, preprocessClicks as p, type SlideRenderOptions as q, renderSlide as r, type SlideRenderResult as s, type SlideRenderAsyncResult as t };
|
|
152
|
+
export type { BuiltInTheme as B, LayoutBoxConfig as L, MermaidBlock as M, SlideEngineConfig as S, ThemeTokens as T, SlideEngine as a, SlideLayoutData as b, SlideTheme as c, SlideRenderOptions as d, SlideRenderResult as e, SlideRenderAsyncResult as f };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thanh01.pmt/presentation-kit",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Standalone client-side slide rendering engine with Marp, Shiki syntax highlighting, Mermaid diagrams, and
|
|
3
|
+
"version": "0.2.2",
|
|
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",
|
|
7
7
|
"type": "module",
|
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
"import": "./dist/react/index.js",
|
|
21
21
|
"require": "./dist/react/index.cjs",
|
|
22
22
|
"default": "./dist/react/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./ai": {
|
|
25
|
+
"types": "./dist/ai/index.d.ts",
|
|
26
|
+
"import": "./dist/ai/index.js",
|
|
27
|
+
"require": "./dist/ai/index.cjs",
|
|
28
|
+
"default": "./dist/ai/index.js"
|
|
23
29
|
}
|
|
24
30
|
},
|
|
25
31
|
"peerDependencies": {
|
|
@@ -54,7 +60,8 @@
|
|
|
54
60
|
"js-yaml": "^4.1.0",
|
|
55
61
|
"mermaid": "^11.17.1",
|
|
56
62
|
"pptxgenjs": "^3.12.0",
|
|
57
|
-
"shiki": "^3.0.0"
|
|
63
|
+
"shiki": "^3.0.0",
|
|
64
|
+
"zod": "^3.23.8"
|
|
58
65
|
},
|
|
59
66
|
"devDependencies": {
|
|
60
67
|
"@types/js-yaml": "^4.0.9",
|