@darshio/vivid 0.1.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.
Files changed (114) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +21 -0
  3. package/README.md +0 -0
  4. package/dist/__vite-browser-external-BcPniuRQ.cjs +2 -0
  5. package/dist/__vite-browser-external-BcPniuRQ.cjs.map +1 -0
  6. package/dist/__vite-browser-external-DYxpcVy9.js +5 -0
  7. package/dist/__vite-browser-external-DYxpcVy9.js.map +1 -0
  8. package/dist/components/ExportButton.d.ts +40 -0
  9. package/dist/components/ExportButton.d.ts.map +1 -0
  10. package/dist/components/SlideRail.d.ts +20 -0
  11. package/dist/components/SlideRail.d.ts.map +1 -0
  12. package/dist/components/SlideRenderer.d.ts +23 -0
  13. package/dist/components/SlideRenderer.d.ts.map +1 -0
  14. package/dist/components/SlideViewer.d.ts +28 -0
  15. package/dist/components/SlideViewer.d.ts.map +1 -0
  16. package/dist/components/StreamingIndicator.d.ts +21 -0
  17. package/dist/components/StreamingIndicator.d.ts.map +1 -0
  18. package/dist/components/elements/CalloutElement.d.ts +8 -0
  19. package/dist/components/elements/CalloutElement.d.ts.map +1 -0
  20. package/dist/components/elements/ChartElement.d.ts +8 -0
  21. package/dist/components/elements/ChartElement.d.ts.map +1 -0
  22. package/dist/components/elements/CodeElement.d.ts +8 -0
  23. package/dist/components/elements/CodeElement.d.ts.map +1 -0
  24. package/dist/components/elements/DividerElement.d.ts +8 -0
  25. package/dist/components/elements/DividerElement.d.ts.map +1 -0
  26. package/dist/components/elements/IconElement.d.ts +8 -0
  27. package/dist/components/elements/IconElement.d.ts.map +1 -0
  28. package/dist/components/elements/ImageElement.d.ts +8 -0
  29. package/dist/components/elements/ImageElement.d.ts.map +1 -0
  30. package/dist/components/elements/ListElement.d.ts +8 -0
  31. package/dist/components/elements/ListElement.d.ts.map +1 -0
  32. package/dist/components/elements/MetricElement.d.ts +8 -0
  33. package/dist/components/elements/MetricElement.d.ts.map +1 -0
  34. package/dist/components/elements/ProgressElement.d.ts +8 -0
  35. package/dist/components/elements/ProgressElement.d.ts.map +1 -0
  36. package/dist/components/elements/ShapeElement.d.ts +8 -0
  37. package/dist/components/elements/ShapeElement.d.ts.map +1 -0
  38. package/dist/components/elements/TableElement.d.ts +8 -0
  39. package/dist/components/elements/TableElement.d.ts.map +1 -0
  40. package/dist/components/elements/TextElement.d.ts +8 -0
  41. package/dist/components/elements/TextElement.d.ts.map +1 -0
  42. package/dist/components/elements/index.d.ts +25 -0
  43. package/dist/components/elements/index.d.ts.map +1 -0
  44. package/dist/components/index.d.ts +7 -0
  45. package/dist/components/index.d.ts.map +1 -0
  46. package/dist/context/VividContext.d.ts +68 -0
  47. package/dist/context/VividContext.d.ts.map +1 -0
  48. package/dist/context/index.d.ts +3 -0
  49. package/dist/context/index.d.ts.map +1 -0
  50. package/dist/exports/PdfExporter.d.ts +23 -0
  51. package/dist/exports/PdfExporter.d.ts.map +1 -0
  52. package/dist/exports/PngExporter.d.ts +22 -0
  53. package/dist/exports/PngExporter.d.ts.map +1 -0
  54. package/dist/exports/PptxExporter.d.ts +20 -0
  55. package/dist/exports/PptxExporter.d.ts.map +1 -0
  56. package/dist/exports/index.d.ts +10 -0
  57. package/dist/exports/index.d.ts.map +1 -0
  58. package/dist/exports/utils.d.ts +25 -0
  59. package/dist/exports/utils.d.ts.map +1 -0
  60. package/dist/hooks/index.d.ts +6 -0
  61. package/dist/hooks/index.d.ts.map +1 -0
  62. package/dist/hooks/useKeyboardNavigation.d.ts +27 -0
  63. package/dist/hooks/useKeyboardNavigation.d.ts.map +1 -0
  64. package/dist/hooks/useSlideNavigation.d.ts +32 -0
  65. package/dist/hooks/useSlideNavigation.d.ts.map +1 -0
  66. package/dist/hooks/useSlideStream.d.ts +55 -0
  67. package/dist/hooks/useSlideStream.d.ts.map +1 -0
  68. package/dist/hooks/useTheme.d.ts +23 -0
  69. package/dist/hooks/useTheme.d.ts.map +1 -0
  70. package/dist/hooks/useVivid.d.ts +13 -0
  71. package/dist/hooks/useVivid.d.ts.map +1 -0
  72. package/dist/html2canvas.esm-BA_v9SIU.cjs +23 -0
  73. package/dist/html2canvas.esm-BA_v9SIU.cjs.map +1 -0
  74. package/dist/html2canvas.esm-d2sM-0Wm.js +4871 -0
  75. package/dist/html2canvas.esm-d2sM-0Wm.js.map +1 -0
  76. package/dist/index-DGgHHr5m.cjs +8161 -0
  77. package/dist/index-DGgHHr5m.cjs.map +1 -0
  78. package/dist/index-DblpZba0.js +55050 -0
  79. package/dist/index-DblpZba0.js.map +1 -0
  80. package/dist/index.cjs +2 -0
  81. package/dist/index.cjs.map +1 -0
  82. package/dist/index.d.ts +8 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.es-BVDnfkUz.js +5632 -0
  85. package/dist/index.es-BVDnfkUz.js.map +1 -0
  86. package/dist/index.es-FGgUIeVd.cjs +19 -0
  87. package/dist/index.es-FGgUIeVd.cjs.map +1 -0
  88. package/dist/index.js +56 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/purify.es-BpFm6ZGf.js +554 -0
  91. package/dist/purify.es-BpFm6ZGf.js.map +1 -0
  92. package/dist/purify.es-Cv8QDpGd.cjs +3 -0
  93. package/dist/purify.es-Cv8QDpGd.cjs.map +1 -0
  94. package/dist/types/elements.d.ts +284 -0
  95. package/dist/types/elements.d.ts.map +1 -0
  96. package/dist/types/errors.d.ts +26 -0
  97. package/dist/types/errors.d.ts.map +1 -0
  98. package/dist/types/index.d.ts +25 -0
  99. package/dist/types/index.d.ts.map +1 -0
  100. package/dist/types/presentation.d.ts +131 -0
  101. package/dist/types/presentation.d.ts.map +1 -0
  102. package/dist/types/primitives.d.ts +173 -0
  103. package/dist/types/primitives.d.ts.map +1 -0
  104. package/dist/types/streaming.d.ts +51 -0
  105. package/dist/types/streaming.d.ts.map +1 -0
  106. package/dist/types/theme.d.ts +49 -0
  107. package/dist/types/theme.d.ts.map +1 -0
  108. package/dist/utils/cn.d.ts +7 -0
  109. package/dist/utils/cn.d.ts.map +1 -0
  110. package/dist/utils/index.d.ts +3 -0
  111. package/dist/utils/index.d.ts.map +1 -0
  112. package/dist/utils/styles.d.ts +36 -0
  113. package/dist/utils/styles.d.ts.map +1 -0
  114. package/package.json +83 -0
@@ -0,0 +1,20 @@
1
+ import { Presentation, Slide } from '../types';
2
+
3
+ export interface PptxExportOptions {
4
+ /** Output filename (without extension) */
5
+ filename?: string;
6
+ /** Author name */
7
+ author?: string;
8
+ /** Company name */
9
+ company?: string;
10
+ }
11
+ /**
12
+ * Export presentation to PPTX and return as Blob
13
+ */
14
+ export declare function exportToPptxBlob(presentation: Presentation, slides: Slide[], options?: PptxExportOptions): Promise<Blob>;
15
+ /**
16
+ * Export presentation to PPTX and trigger download
17
+ */
18
+ export declare function exportToPptx(presentation: Presentation, slides: Slide[], options?: PptxExportOptions): Promise<void>;
19
+ export default exportToPptx;
20
+ //# sourceMappingURL=PptxExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PptxExporter.d.ts","sourceRoot":"","sources":["../../src/exports/PptxExporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EACV,YAAY,EACZ,KAAK,EAYN,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAef;AAypBD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @darshio/vivid - Export Services
3
+ * Built-in exporters for PDF, PPTX, PNG, and JSON formats
4
+ */
5
+ export { exportToPdf, exportToPdfBlob, type PdfExportOptions, } from './PdfExporter';
6
+ export { exportToPptx, exportToPptxBlob, type PptxExportOptions, } from './PptxExporter';
7
+ export { exportToPng, exportToPngBlob, type PngExportOptions, } from './PngExporter';
8
+ export { sanitizeFilename, stripHtml, formatColor, toInches, SLIDE_WIDTH_PX, SLIDE_HEIGHT_PX, PPTX_WIDTH_IN, PPTX_HEIGHT_IN, } from './utils';
9
+ export type { Presentation, Slide } from '../types';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,WAAW,EACX,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Export Utilities
3
+ * Shared helper functions for PDF and PPTX export
4
+ */
5
+ export declare const SLIDE_WIDTH_PX = 960;
6
+ export declare const SLIDE_HEIGHT_PX = 540;
7
+ export declare const PPTX_WIDTH_IN = 10;
8
+ export declare const PPTX_HEIGHT_IN = 5.625;
9
+ /**
10
+ * Convert pixels to inches for PPTX
11
+ */
12
+ export declare const toInches: (px: number, isWidth?: boolean) => number;
13
+ /**
14
+ * Convert hex color to PPTX format (without #)
15
+ */
16
+ export declare const formatColor: (hex: string) => string;
17
+ /**
18
+ * Strip HTML tags and decode entities
19
+ */
20
+ export declare const stripHtml: (html: string) => string;
21
+ /**
22
+ * Sanitize filename for saving
23
+ */
24
+ export declare const sanitizeFilename: (name: string) => string;
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/exports/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,EAAE,UAAS,OAAc,KAAG,MAK9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAaxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAM/C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { useVivid } from './useVivid';
2
+ export { useSlideNavigation, type SlideNavigationResult, } from './useSlideNavigation';
3
+ export { useTheme, type ThemeResult } from './useTheme';
4
+ export { useKeyboardNavigation, type KeyboardNavigationOptions, } from './useKeyboardNavigation';
5
+ export { useSlideStream, type UseSlideStreamOptions, type SlideStreamResult, } from './useSlideStream';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface KeyboardNavigationOptions {
2
+ /** Enable keyboard navigation (default: true) */
3
+ enabled?: boolean;
4
+ /** Enable arrow key navigation (default: true) */
5
+ arrows?: boolean;
6
+ /** Enable space/enter for next slide (default: true) */
7
+ spaceEnter?: boolean;
8
+ /** Enable home/end for first/last slide (default: true) */
9
+ homeEnd?: boolean;
10
+ /** Enable escape key callback */
11
+ onEscape?: () => void;
12
+ /** Enable F key for fullscreen callback */
13
+ onFullscreen?: () => void;
14
+ }
15
+ /**
16
+ * Hook for keyboard-based slide navigation.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * useKeyboardNavigation({
21
+ * onEscape: () => setFullscreen(false),
22
+ * onFullscreen: () => setFullscreen(true),
23
+ * });
24
+ * ```
25
+ */
26
+ export declare function useKeyboardNavigation(options?: KeyboardNavigationOptions): void;
27
+ //# sourceMappingURL=useKeyboardNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardNavigation.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,yBAAyB;IACxC,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,yBAA8B,GACtC,IAAI,CAsGN"}
@@ -0,0 +1,32 @@
1
+ export interface SlideNavigationResult {
2
+ /** Current slide index (0-based) */
3
+ currentIndex: number;
4
+ /** Total number of slides */
5
+ totalSlides: number;
6
+ /** Whether there's a previous slide */
7
+ hasPrevious: boolean;
8
+ /** Whether there's a next slide */
9
+ hasNext: boolean;
10
+ /** Go to specific slide by index */
11
+ goToSlide: (index: number) => void;
12
+ /** Go to next slide */
13
+ nextSlide: () => void;
14
+ /** Go to previous slide */
15
+ previousSlide: () => void;
16
+ /** Go to first slide */
17
+ firstSlide: () => void;
18
+ /** Go to last slide */
19
+ lastSlide: () => void;
20
+ /** Navigation progress (0-1) */
21
+ progress: number;
22
+ }
23
+ /**
24
+ * Hook for slide navigation with helper methods.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const { currentIndex, totalSlides, nextSlide, previousSlide } = useSlideNavigation();
29
+ * ```
30
+ */
31
+ export declare function useSlideNavigation(): SlideNavigationResult;
32
+ //# sourceMappingURL=useSlideNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSlideNavigation.d.ts","sourceRoot":"","sources":["../../src/hooks/useSlideNavigation.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,wBAAwB;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,qBAAqB,CAwD1D"}
@@ -0,0 +1,55 @@
1
+ import { Slide, Presentation, GenerationEvent, StreamingStatus } from '../types';
2
+
3
+ export interface UseSlideStreamOptions {
4
+ /** Callback when a new slide is received */
5
+ onSlide?: (slide: Slide, index: number) => void;
6
+ /** Callback when generation completes */
7
+ onComplete?: (slides: Slide[]) => void;
8
+ /** Callback on error */
9
+ onError?: (error: Error) => void;
10
+ /** Callback on progress update */
11
+ onProgress?: (current: number, total: number) => void;
12
+ /** Whether to auto-navigate to new slides */
13
+ autoNavigate?: boolean;
14
+ }
15
+ export interface SlideStreamResult {
16
+ /** Current streaming status */
17
+ status: StreamingStatus;
18
+ /** Start streaming from async generator */
19
+ streamFromGenerator: (generator: AsyncGenerator<GenerationEvent>) => Promise<void>;
20
+ /** Start streaming from ReadableStream (for fetch responses) */
21
+ streamFromReadable: (stream: ReadableStream<Uint8Array>) => Promise<void>;
22
+ /** Parse and add slides from complete JSON */
23
+ loadFromJSON: (data: Presentation | Slide[]) => void;
24
+ /** Add a single slide */
25
+ addSlide: (slide: Slide) => void;
26
+ /** Cancel ongoing stream */
27
+ cancel: () => void;
28
+ /** Reset to idle state */
29
+ reset: () => void;
30
+ /** Current progress (0-1) */
31
+ progress: number;
32
+ /** Error if any */
33
+ error: Error | null;
34
+ }
35
+ /**
36
+ * Hook for streaming slide generation from AI.
37
+ * Supports async generators and ReadableStreams.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * const { streamFromGenerator, status } = useSlideStream({
42
+ * onSlide: (slide) => console.log('New slide:', slide.title),
43
+ * autoNavigate: true,
44
+ * });
45
+ *
46
+ * // From async generator
47
+ * await streamFromGenerator(aiService.generateSlides(prompt));
48
+ *
49
+ * // Or from fetch response
50
+ * const response = await fetch('/api/generate');
51
+ * await streamFromReadable(response.body);
52
+ * ```
53
+ */
54
+ export declare function useSlideStream(options?: UseSlideStreamOptions): SlideStreamResult;
55
+ //# sourceMappingURL=useSlideStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSlideStream.d.ts","sourceRoot":"","sources":["../../src/hooks/useSlideStream.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,yCAAyC;IACzC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACvC,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,kCAAkC;IAClC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,2CAA2C;IAC3C,mBAAmB,EAAE,CACnB,SAAS,EAAE,cAAc,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,gEAAgE;IAChE,kBAAkB,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,8CAA8C;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC;IACrD,yBAAyB;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,GAAE,qBAA0B,GAClC,iBAAiB,CA0RnB"}
@@ -0,0 +1,23 @@
1
+ import { DesignSystem } from '../types';
2
+
3
+ export interface ThemeResult {
4
+ /** Current theme */
5
+ theme: DesignSystem;
6
+ /** Update theme */
7
+ setTheme: (theme: DesignSystem) => void;
8
+ /** Get color from palette */
9
+ getColor: (path: string) => string | undefined;
10
+ /** Check if theme is dark mode (based on background color) */
11
+ isDark: boolean;
12
+ }
13
+ /**
14
+ * Hook for accessing and manipulating theme.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * const { theme, getColor, isDark } = useTheme();
19
+ * const primaryColor = getColor('brand.primary');
20
+ * ```
21
+ */
22
+ export declare function useTheme(): ThemeResult;
23
+ //# sourceMappingURL=useTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,mBAAmB;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,6BAA6B;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/C,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CA8CtC"}
@@ -0,0 +1,13 @@
1
+ import { VividContextValue } from '../context';
2
+
3
+ /**
4
+ * Main hook for accessing Vivid Slides context.
5
+ * Must be used within a VividProvider.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const { presentation, currentSlide, goToSlide } = useVivid();
10
+ * ```
11
+ */
12
+ export declare function useVivid(): VividContextValue;
13
+ //# sourceMappingURL=useVivid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVivid.d.ts","sourceRoot":"","sources":["../../src/hooks/useVivid.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAE5C"}