@thanh01.pmt/presentation-kit 0.1.1 → 0.2.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.
@@ -1,6 +1,6 @@
1
1
  import React$1 from 'react';
2
- import { B as BuiltInTheme, n as SlideTheme, q as SlideRenderResult } from '../click-css-CadkoJ_A.js';
3
- export { m as ClickCssOptions, l as ClickPostprocessResult, C as ClickPreprocessResult, M as MermaidBlock, s as SlideRenderAsyncResult, o as SlideRenderOptions, T as ThemeTokens, e as defineTheme, j as extractMaxClicks, k as generateClickCss, i as postprocessClicks, p as preprocessClicks, r as renderSlide, b as renderSlideAsync, f as resolveTheme } from '../click-css-CadkoJ_A.js';
2
+ import { B as BuiltInTheme, o as SlideTheme, s as SlideRenderResult, b as SlideLayoutData } from '../click-css-C84mdmU0.js';
3
+ export { n as ClickCssOptions, m as ClickPostprocessResult, C as ClickPreprocessResult, M as MermaidBlock, t as SlideRenderAsyncResult, q as SlideRenderOptions, T as ThemeTokens, f as defineTheme, k as extractMaxClicks, l as generateClickCss, j as postprocessClicks, p as preprocessClicks, r as renderSlide, c as renderSlideAsync, g as resolveTheme } from '../click-css-C84mdmU0.js';
4
4
 
5
5
  /** View mode for slide display */
6
6
  type SlideViewMode = 'presentation' | 'deck';
@@ -31,6 +31,10 @@ interface SlideViewerProps {
31
31
  enableClicks?: boolean;
32
32
  /** Enable fullscreen button + ESC to exit (default: false) */
33
33
  fullscreen?: boolean;
34
+ /** Show teacher/presenter notes button & drawer (default: true) */
35
+ showNotes?: boolean;
36
+ /** Show visual design mode button (default: false) */
37
+ showDesignMode?: boolean;
34
38
  /** Custom theme options for ThemeSwitcher */
35
39
  themeOptions?: ThemeOption[];
36
40
  /** Callback when theme changes */
@@ -41,6 +45,8 @@ interface SlideViewerProps {
41
45
  onModeChange?: (mode: SlideViewMode) => void;
42
46
  /** Callback when render completes */
43
47
  onRenderComplete?: (result: SlideRenderResult) => void;
48
+ /** Callback when markdown is updated in design mode */
49
+ onSaveMarkdown?: (updatedMarkdown: string) => void;
44
50
  }
45
51
  /** Props for PresentationView */
46
52
  interface PresentationViewProps {
@@ -50,6 +56,8 @@ interface PresentationViewProps {
50
56
  css: string;
51
57
  /** Theme scoped CSS */
52
58
  themeCss: string;
59
+ /** Layout scoped CSS */
60
+ layoutCss?: string;
53
61
  /** Current slide index (0-based) */
54
62
  currentIndex: number;
55
63
  /** Total number of slides */
@@ -65,6 +73,8 @@ interface DeckViewProps {
65
73
  css: string;
66
74
  /** Theme scoped CSS */
67
75
  themeCss: string;
76
+ /** Layout scoped CSS */
77
+ layoutCss?: string;
68
78
  /** Total number of slides */
69
79
  slideCount: number;
70
80
  /** Container CSS class */
@@ -154,9 +164,11 @@ interface SlideActions {
154
164
  * - Click-to-reveal (<!-- click --> / <!-- clicks -->)
155
165
  * - Fullscreen mode (ESC to exit)
156
166
  * - Mermaid diagram rendering
167
+ * - Teacher/Presenter notes drawer
168
+ * - Visual design mode (Google Slides-style positioning & resizing)
157
169
  * - Copy markdown button
158
170
  */
159
- declare function SlideViewer({ markdown, initialTheme, initialMode, className, showThemeSwitcher, showNavigation, enableKeyboard, enableClicks, fullscreen, themeOptions, onThemeChange, onSlideChange, onModeChange, onRenderComplete, }: SlideViewerProps): React$1.JSX.Element;
171
+ declare function SlideViewer({ markdown, initialTheme, initialMode, className, showThemeSwitcher, showNavigation, enableKeyboard, enableClicks, fullscreen, showNotes, showDesignMode, themeOptions, onThemeChange, onSlideChange, onModeChange, onRenderComplete, onSaveMarkdown, }: SlideViewerProps): React$1.JSX.Element;
160
172
 
161
173
  /**
162
174
  * PresentationView — Renders a single slide at a time.
@@ -175,7 +187,7 @@ declare function SlideViewer({ markdown, initialTheme, initialMode, className, s
175
187
  * />
176
188
  * ```
177
189
  */
178
- declare function PresentationView({ html, css, themeCss, currentIndex, slideCount, className, }: PresentationViewProps): React$1.JSX.Element;
190
+ declare function PresentationView({ html, css, themeCss, layoutCss, currentIndex, slideCount, className, }: PresentationViewProps): React$1.JSX.Element;
179
191
 
180
192
  /**
181
193
  * DeckView — Renders all slides vertically in a scrollable list.
@@ -192,7 +204,7 @@ declare function PresentationView({ html, css, themeCss, currentIndex, slideCoun
192
204
  * />
193
205
  * ```
194
206
  */
195
- declare function DeckView({ html, css, themeCss, slideCount, className, }: DeckViewProps): React$1.JSX.Element;
207
+ declare function DeckView({ html, css, themeCss, layoutCss, slideCount, className, }: DeckViewProps): React$1.JSX.Element;
196
208
 
197
209
  /**
198
210
  * ThemeSwitcher — Renders a row of theme toggle buttons.
@@ -220,6 +232,38 @@ declare function ThemeSwitcher({ currentTheme, onThemeChange, themes, className,
220
232
  */
221
233
  declare function NavigationBar({ currentIndex, slideCount, onNavigate, mode, onModeChange, className, showCopy, markdown, }: NavigationBarProps): React$1.JSX.Element;
222
234
 
235
+ interface PresenterNotesDrawerProps {
236
+ /** Notes for current slide */
237
+ notes: string[];
238
+ /** Current slide index (0-based) */
239
+ currentIndex: number;
240
+ /** Total number of slides */
241
+ slideCount: number;
242
+ /** Whether the drawer is open */
243
+ isOpen: boolean;
244
+ /** Callback to close the drawer */
245
+ onClose: () => void;
246
+ /** Theme mode for color styling */
247
+ isDark?: boolean;
248
+ }
249
+ declare function PresenterNotesDrawer({ notes, currentIndex, slideCount, isOpen, onClose, isDark, }: PresenterNotesDrawerProps): React$1.JSX.Element | null;
250
+
251
+ interface SlideDesignOverlayProps {
252
+ /** Current slide index (0-based) */
253
+ slideIndex: number;
254
+ /** Current layout data for this slide */
255
+ layout: SlideLayoutData | null;
256
+ /** Callback when layout changes in real-time */
257
+ onLayoutChange: (layout: SlideLayoutData) => void;
258
+ /** Callback when user explicitly clicks Save */
259
+ onSave?: (layout: SlideLayoutData) => void;
260
+ /** Callback when user cancels or closes design mode */
261
+ onClose?: () => void;
262
+ /** Whether design mode is active */
263
+ isActive: boolean;
264
+ }
265
+ declare function SlideDesignOverlay({ slideIndex, layout, onLayoutChange, onSave, onClose, isActive, }: SlideDesignOverlayProps): React$1.JSX.Element | null;
266
+
223
267
  interface UseSlideStateOptions {
224
268
  markdown: string;
225
269
  initialTheme?: BuiltInTheme | SlideTheme;
@@ -266,4 +310,4 @@ interface UseSlideStateReturn {
266
310
  */
267
311
  declare function useSlideState(options: UseSlideStateOptions): UseSlideStateReturn;
268
312
 
269
- export { BuiltInTheme, DeckView, type DeckViewProps, NavigationBar, type NavigationBarProps, PresentationView, type PresentationViewProps, type SlideActions, SlideRenderResult, type SlideState, SlideTheme, type SlideViewMode, SlideViewer, type SlideViewerProps, type ThemeOption, ThemeSwitcher, type ThemeSwitcherProps, type UseSlideStateOptions, type UseSlideStateReturn, useSlideState };
313
+ export { BuiltInTheme, DeckView, type DeckViewProps, NavigationBar, type NavigationBarProps, PresentationView, type PresentationViewProps, PresenterNotesDrawer, type PresenterNotesDrawerProps, type SlideActions, SlideDesignOverlay, type SlideDesignOverlayProps, SlideRenderResult, type SlideState, SlideTheme, type SlideViewMode, SlideViewer, type SlideViewerProps, type ThemeOption, ThemeSwitcher, type ThemeSwitcherProps, type UseSlideStateOptions, type UseSlideStateReturn, useSlideState };