@thanh01.pmt/presentation-kit 0.2.10 → 0.2.11

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.
@@ -151,4 +151,70 @@ interface SlideEngine {
151
151
  getThemeCss: (theme: BuiltInTheme | SlideTheme, containerId?: string) => string;
152
152
  }
153
153
 
154
- 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 };
154
+ type HtmlThemeName = 'blue-professional' | 'editorial-forest' | 'cobalt-grid' | 'studio' | 'monochrome';
155
+ interface HtmlDeckTheme {
156
+ id: HtmlThemeName;
157
+ name: string;
158
+ scheme: 'light' | 'dark';
159
+ palette: {
160
+ bg: string;
161
+ bgSecondary?: string;
162
+ primary: string;
163
+ accent?: string;
164
+ text: string;
165
+ textMuted: string;
166
+ border?: string;
167
+ };
168
+ typography: {
169
+ display: string;
170
+ body: string;
171
+ code?: string;
172
+ };
173
+ customCss?: string;
174
+ }
175
+ type HtmlLayoutPresetId = 'hero-cover' | 'split-concept-code' | 'two-columns-compare' | 'three-cards-grid' | 'timeline-steps' | 'metric-callout' | 'checkpoint-quiz' | 'summary-takeaways';
176
+ interface HtmlSlotDefinition {
177
+ name: string;
178
+ label: string;
179
+ type: 'text' | 'multiline' | 'code' | 'list' | 'badge' | 'metric' | 'options';
180
+ description: string;
181
+ required?: boolean;
182
+ default?: any;
183
+ }
184
+ interface HtmlSlidePreset {
185
+ id: HtmlLayoutPresetId;
186
+ name: string;
187
+ category: 'cover' | 'content' | 'split' | 'grid' | 'timeline' | 'callout' | 'assessment';
188
+ description: string;
189
+ slots: HtmlSlotDefinition[];
190
+ template: (slots: Record<string, any>, theme: HtmlDeckTheme) => string;
191
+ }
192
+ interface HtmlSlideSlotData {
193
+ layoutId: HtmlLayoutPresetId;
194
+ slots: Record<string, any>;
195
+ notes?: string;
196
+ customClass?: string;
197
+ }
198
+ interface HtmlDeckData {
199
+ title: string;
200
+ subtitle?: string;
201
+ author?: string;
202
+ theme?: HtmlThemeName;
203
+ slides: HtmlSlideSlotData[];
204
+ aspectRatio?: '16:9' | '4:3';
205
+ metadata?: Record<string, any>;
206
+ }
207
+ interface HtmlCompileOptions {
208
+ themeOverride?: HtmlDeckTheme;
209
+ minify?: boolean;
210
+ inlineFonts?: boolean;
211
+ customHeadTags?: string;
212
+ }
213
+ interface CompiledHtmlDeckResult {
214
+ html: string;
215
+ slideCount: number;
216
+ theme: HtmlDeckTheme;
217
+ title: string;
218
+ }
219
+
220
+ export type { BuiltInTheme as B, CompiledHtmlDeckResult as C, HtmlThemeName as H, LayoutBoxConfig as L, MermaidBlock as M, SlideEngineConfig as S, ThemeTokens as T, SlideEngine as a, SlideLayoutData as b, HtmlDeckTheme as c, HtmlLayoutPresetId as d, HtmlSlidePreset as e, HtmlDeckData as f, HtmlCompileOptions as g, SlideTheme as h, SlideRenderOptions as i, SlideRenderResult as j, SlideRenderAsyncResult as k, HtmlSlotDefinition as l, HtmlSlideSlotData as m };
@@ -151,4 +151,70 @@ interface SlideEngine {
151
151
  getThemeCss: (theme: BuiltInTheme | SlideTheme, containerId?: string) => string;
152
152
  }
153
153
 
154
- 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 };
154
+ type HtmlThemeName = 'blue-professional' | 'editorial-forest' | 'cobalt-grid' | 'studio' | 'monochrome';
155
+ interface HtmlDeckTheme {
156
+ id: HtmlThemeName;
157
+ name: string;
158
+ scheme: 'light' | 'dark';
159
+ palette: {
160
+ bg: string;
161
+ bgSecondary?: string;
162
+ primary: string;
163
+ accent?: string;
164
+ text: string;
165
+ textMuted: string;
166
+ border?: string;
167
+ };
168
+ typography: {
169
+ display: string;
170
+ body: string;
171
+ code?: string;
172
+ };
173
+ customCss?: string;
174
+ }
175
+ type HtmlLayoutPresetId = 'hero-cover' | 'split-concept-code' | 'two-columns-compare' | 'three-cards-grid' | 'timeline-steps' | 'metric-callout' | 'checkpoint-quiz' | 'summary-takeaways';
176
+ interface HtmlSlotDefinition {
177
+ name: string;
178
+ label: string;
179
+ type: 'text' | 'multiline' | 'code' | 'list' | 'badge' | 'metric' | 'options';
180
+ description: string;
181
+ required?: boolean;
182
+ default?: any;
183
+ }
184
+ interface HtmlSlidePreset {
185
+ id: HtmlLayoutPresetId;
186
+ name: string;
187
+ category: 'cover' | 'content' | 'split' | 'grid' | 'timeline' | 'callout' | 'assessment';
188
+ description: string;
189
+ slots: HtmlSlotDefinition[];
190
+ template: (slots: Record<string, any>, theme: HtmlDeckTheme) => string;
191
+ }
192
+ interface HtmlSlideSlotData {
193
+ layoutId: HtmlLayoutPresetId;
194
+ slots: Record<string, any>;
195
+ notes?: string;
196
+ customClass?: string;
197
+ }
198
+ interface HtmlDeckData {
199
+ title: string;
200
+ subtitle?: string;
201
+ author?: string;
202
+ theme?: HtmlThemeName;
203
+ slides: HtmlSlideSlotData[];
204
+ aspectRatio?: '16:9' | '4:3';
205
+ metadata?: Record<string, any>;
206
+ }
207
+ interface HtmlCompileOptions {
208
+ themeOverride?: HtmlDeckTheme;
209
+ minify?: boolean;
210
+ inlineFonts?: boolean;
211
+ customHeadTags?: string;
212
+ }
213
+ interface CompiledHtmlDeckResult {
214
+ html: string;
215
+ slideCount: number;
216
+ theme: HtmlDeckTheme;
217
+ title: string;
218
+ }
219
+
220
+ export type { BuiltInTheme as B, CompiledHtmlDeckResult as C, HtmlThemeName as H, LayoutBoxConfig as L, MermaidBlock as M, SlideEngineConfig as S, ThemeTokens as T, SlideEngine as a, SlideLayoutData as b, HtmlDeckTheme as c, HtmlLayoutPresetId as d, HtmlSlidePreset as e, HtmlDeckData as f, HtmlCompileOptions as g, SlideTheme as h, SlideRenderOptions as i, SlideRenderResult as j, SlideRenderAsyncResult as k, HtmlSlotDefinition as l, HtmlSlideSlotData as m };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thanh01.pmt/presentation-kit",
3
- "version": "0.2.10",
3
+ "version": "0.2.11",
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",
@@ -50,7 +50,7 @@
50
50
  "clean": "rm -rf dist",
51
51
  "build": "npm run clean && tsup",
52
52
  "dev": "tsup --watch",
53
- "test": "node --test test/layout-and-notes.test.mjs",
53
+ "test": "node --test test/*.test.mjs",
54
54
  "typecheck": "tsc --noEmit",
55
55
  "lint": "eslint . --ext .ts",
56
56
  "prepublishOnly": "npm run build"