@nice2dev/ui-presentations 1.0.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +59 -0
  3. package/dist/__tests__/PresentationModel.test.d.ts +2 -0
  4. package/dist/__tests__/PresentationModel.test.d.ts.map +1 -0
  5. package/dist/__tests__/brandKit.test.d.ts +2 -0
  6. package/dist/__tests__/brandKit.test.d.ts.map +1 -0
  7. package/dist/__tests__/businessTemplates.test.d.ts +2 -0
  8. package/dist/__tests__/businessTemplates.test.d.ts.map +1 -0
  9. package/dist/__tests__/chartRenderer.test.d.ts +2 -0
  10. package/dist/__tests__/chartRenderer.test.d.ts.map +1 -0
  11. package/dist/__tests__/exportEngine.test.d.ts +2 -0
  12. package/dist/__tests__/exportEngine.test.d.ts.map +1 -0
  13. package/dist/__tests__/i18n-locales.test.d.ts +2 -0
  14. package/dist/__tests__/i18n-locales.test.d.ts.map +1 -0
  15. package/dist/__tests__/puppetShow.test.d.ts +6 -0
  16. package/dist/__tests__/puppetShow.test.d.ts.map +1 -0
  17. package/dist/__tests__/serialization.test.d.ts +2 -0
  18. package/dist/__tests__/serialization.test.d.ts.map +1 -0
  19. package/dist/__tests__/setup.d.ts +2 -0
  20. package/dist/__tests__/setup.d.ts.map +1 -0
  21. package/dist/__tests__/slideAnimationEngine.test.d.ts +2 -0
  22. package/dist/__tests__/slideAnimationEngine.test.d.ts.map +1 -0
  23. package/dist/__tests__/sprint24-presentations.test.d.ts +2 -0
  24. package/dist/__tests__/sprint24-presentations.test.d.ts.map +1 -0
  25. package/dist/collaborative/collaborativePresentation.d.ts +208 -0
  26. package/dist/collaborative/collaborativePresentation.d.ts.map +1 -0
  27. package/dist/components/NicePresentationEditor.d.ts +22 -0
  28. package/dist/components/NicePresentationEditor.d.ts.map +1 -0
  29. package/dist/components/NicePresentationPlayer.d.ts +26 -0
  30. package/dist/components/NicePresentationPlayer.d.ts.map +1 -0
  31. package/dist/components/PresentationToolbar.d.ts +16 -0
  32. package/dist/components/PresentationToolbar.d.ts.map +1 -0
  33. package/dist/components/SlideCanvas.d.ts +28 -0
  34. package/dist/components/SlideCanvas.d.ts.map +1 -0
  35. package/dist/components/SlidePropertyPanel.d.ts +13 -0
  36. package/dist/components/SlidePropertyPanel.d.ts.map +1 -0
  37. package/dist/components/SlideThumbnailList.d.ts +16 -0
  38. package/dist/components/SlideThumbnailList.d.ts.map +1 -0
  39. package/dist/components/interactive/InteractiveButton.d.ts +21 -0
  40. package/dist/components/interactive/InteractiveButton.d.ts.map +1 -0
  41. package/dist/components/interactive/InteractiveCountdown.d.ts +21 -0
  42. package/dist/components/interactive/InteractiveCountdown.d.ts.map +1 -0
  43. package/dist/components/interactive/InteractivePoll.d.ts +25 -0
  44. package/dist/components/interactive/InteractivePoll.d.ts.map +1 -0
  45. package/dist/components/interactive/InteractiveQnA.d.ts +31 -0
  46. package/dist/components/interactive/InteractiveQnA.d.ts.map +1 -0
  47. package/dist/components/interactive/InteractiveQuiz.d.ts +21 -0
  48. package/dist/components/interactive/InteractiveQuiz.d.ts.map +1 -0
  49. package/dist/components/interactive/index.d.ts +17 -0
  50. package/dist/components/interactive/index.d.ts.map +1 -0
  51. package/dist/core/PresentationModel.d.ts +34 -0
  52. package/dist/core/PresentationModel.d.ts.map +1 -0
  53. package/dist/core/brandKit.d.ts +53 -0
  54. package/dist/core/brandKit.d.ts.map +1 -0
  55. package/dist/core/chartRenderer.d.ts +5 -0
  56. package/dist/core/chartRenderer.d.ts.map +1 -0
  57. package/dist/core/customTransitions.d.ts +115 -0
  58. package/dist/core/customTransitions.d.ts.map +1 -0
  59. package/dist/core/dashboardSlide.d.ts +229 -0
  60. package/dist/core/dashboardSlide.d.ts.map +1 -0
  61. package/dist/core/dataGridSlide.d.ts +255 -0
  62. package/dist/core/dataGridSlide.d.ts.map +1 -0
  63. package/dist/core/exportEngine.d.ts +5 -0
  64. package/dist/core/exportEngine.d.ts.map +1 -0
  65. package/dist/core/i18n.d.ts +10 -0
  66. package/dist/core/i18n.d.ts.map +1 -0
  67. package/dist/core/liveDataSlides.d.ts +237 -0
  68. package/dist/core/liveDataSlides.d.ts.map +1 -0
  69. package/dist/core/qrCodeSlide.d.ts +310 -0
  70. package/dist/core/qrCodeSlide.d.ts.map +1 -0
  71. package/dist/core/querySlide.d.ts +196 -0
  72. package/dist/core/querySlide.d.ts.map +1 -0
  73. package/dist/core/recordingMode.d.ts +139 -0
  74. package/dist/core/recordingMode.d.ts.map +1 -0
  75. package/dist/core/serialization.d.ts +13 -0
  76. package/dist/core/serialization.d.ts.map +1 -0
  77. package/dist/core/slideAnimationEngine.d.ts +20 -0
  78. package/dist/core/slideAnimationEngine.d.ts.map +1 -0
  79. package/dist/core/slideLibrary.d.ts +311 -0
  80. package/dist/core/slideLibrary.d.ts.map +1 -0
  81. package/dist/core/versionHistory.d.ts +234 -0
  82. package/dist/core/versionHistory.d.ts.map +1 -0
  83. package/dist/hooks/usePresentationEditor.d.ts +35 -0
  84. package/dist/hooks/usePresentationEditor.d.ts.map +1 -0
  85. package/dist/index.cjs +3628 -0
  86. package/dist/index.d.ts +33 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.mjs +62231 -0
  89. package/dist/puppetShow/gameEngineIntegration.d.ts +149 -0
  90. package/dist/puppetShow/gameEngineIntegration.d.ts.map +1 -0
  91. package/dist/puppetShow/index.d.ts +17 -0
  92. package/dist/puppetShow/index.d.ts.map +1 -0
  93. package/dist/puppetShow/puppetCharacter.d.ts +96 -0
  94. package/dist/puppetShow/puppetCharacter.d.ts.map +1 -0
  95. package/dist/puppetShow/puppetPlayer.d.ts +68 -0
  96. package/dist/puppetShow/puppetPlayer.d.ts.map +1 -0
  97. package/dist/puppetShow/puppetShowConverter.d.ts +141 -0
  98. package/dist/puppetShow/puppetShowConverter.d.ts.map +1 -0
  99. package/dist/puppetShow/puppetShowTypes.d.ts +529 -0
  100. package/dist/puppetShow/puppetShowTypes.d.ts.map +1 -0
  101. package/dist/puppetShow/puppetStage.d.ts +67 -0
  102. package/dist/puppetShow/puppetStage.d.ts.map +1 -0
  103. package/dist/puppetShow/puppetTimeline.d.ts +143 -0
  104. package/dist/puppetShow/puppetTimeline.d.ts.map +1 -0
  105. package/dist/style.css +1 -0
  106. package/dist/templates/ArchitectureOverviewTemplate.d.ts +98 -0
  107. package/dist/templates/ArchitectureOverviewTemplate.d.ts.map +1 -0
  108. package/dist/templates/IncidentReportTemplate.d.ts +81 -0
  109. package/dist/templates/IncidentReportTemplate.d.ts.map +1 -0
  110. package/dist/templates/InvestorDeckTemplate.d.ts +145 -0
  111. package/dist/templates/InvestorDeckTemplate.d.ts.map +1 -0
  112. package/dist/templates/OnboardingTemplate.d.ts +106 -0
  113. package/dist/templates/OnboardingTemplate.d.ts.map +1 -0
  114. package/dist/templates/ProductPitchTemplate.d.ts +88 -0
  115. package/dist/templates/ProductPitchTemplate.d.ts.map +1 -0
  116. package/dist/templates/QuarterlyReportTemplate.d.ts +102 -0
  117. package/dist/templates/QuarterlyReportTemplate.d.ts.map +1 -0
  118. package/dist/templates/SprintReviewTemplate.d.ts +90 -0
  119. package/dist/templates/SprintReviewTemplate.d.ts.map +1 -0
  120. package/dist/templates/index.d.ts +11 -0
  121. package/dist/templates/index.d.ts.map +1 -0
  122. package/dist/types/presentationTypes.d.ts +475 -0
  123. package/dist/types/presentationTypes.d.ts.map +1 -0
  124. package/package.json +57 -0
@@ -0,0 +1,529 @@
1
+ /**
2
+ * @file puppetShowTypes.ts
3
+ * @description Puppet Show format - animated episodes compatible with NicePresentations
4
+ *
5
+ * Puppet Shows are essentially animated presentations with:
6
+ * - Animated characters (puppets) with sprite-based animations
7
+ * - Scene-based timeline with keyframes
8
+ * - Audio/voice tracks synchronized to animations
9
+ * - Limited playback interaction (play, pause, speed control)
10
+ * - Full compatibility with NicePresentations for editing
11
+ */
12
+ export interface NicePuppetShowDocument {
13
+ /** Format version */
14
+ version: '1.0';
15
+ /** Unique document ID */
16
+ id: string;
17
+ /** Show title */
18
+ title: string;
19
+ /** Author/creator */
20
+ author?: string;
21
+ /** Stage dimensions */
22
+ stageSize: StageSize;
23
+ /** All scenes in order */
24
+ scenes: PuppetScene[];
25
+ /** Character library */
26
+ characters: PuppetCharacterDef[];
27
+ /** Prop/asset library */
28
+ props: PuppetPropDef[];
29
+ /** Audio tracks library */
30
+ audioTracks: AudioTrackDef[];
31
+ /** Global settings */
32
+ settings: PuppetShowSettings;
33
+ /** Metadata */
34
+ metadata: PuppetShowMetadata;
35
+ }
36
+ export interface StageSize {
37
+ width: number;
38
+ height: number;
39
+ aspectRatio?: '16:9' | '4:3' | '21:9' | 'custom';
40
+ }
41
+ export interface PuppetShowSettings {
42
+ /** Default animation FPS */
43
+ defaultFps: number;
44
+ /** Allow viewer speed control */
45
+ allowSpeedControl: boolean;
46
+ /** Allow skip/seek */
47
+ allowSeek: boolean;
48
+ /** Auto-play on load */
49
+ autoPlay: boolean;
50
+ /** Show playback controls */
51
+ showControls: boolean;
52
+ /** Loop entire show */
53
+ loop: boolean;
54
+ /** Theme/style preset */
55
+ theme?: 'classic' | 'modern' | 'cartoon' | 'realistic' | 'custom';
56
+ }
57
+ export interface PuppetShowMetadata {
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ duration: number;
61
+ sceneCount: number;
62
+ characterCount: number;
63
+ tags?: string[];
64
+ description?: string;
65
+ thumbnail?: string;
66
+ author?: string;
67
+ /** Link to source NiceGameEngine project */
68
+ gameEngineProjectId?: string;
69
+ /** Source presentation ID (when converted from slides) */
70
+ sourcePresentation?: string;
71
+ /** IDs of shows that were merged into this one */
72
+ mergedFrom?: string[];
73
+ /** When merged/converted */
74
+ mergedAt?: string;
75
+ convertedAt?: string;
76
+ }
77
+ export interface PuppetCharacterDef {
78
+ /** Unique character ID */
79
+ id: string;
80
+ /** Display name */
81
+ name: string;
82
+ /** Character type */
83
+ type: CharacterType;
84
+ /** Sprite sheet or vector definition */
85
+ visual: CharacterVisual;
86
+ /** Available animations */
87
+ animations: CharacterAnimation[];
88
+ /** Available expressions/emotions */
89
+ expressions: CharacterExpression[];
90
+ /** Voice settings */
91
+ voice?: CharacterVoice;
92
+ /** Default scale */
93
+ defaultScale: number;
94
+ /** Anchor point for positioning */
95
+ anchor: {
96
+ x: number;
97
+ y: number;
98
+ };
99
+ }
100
+ export type CharacterType = 'sprite' | 'vector' | 'skeletal' | 'live2d' | 'cutout';
101
+ export interface CharacterVisual {
102
+ type: CharacterType;
103
+ /** For sprites: sprite sheet URL */
104
+ spriteSheet?: string;
105
+ /** For sprites: atlas JSON */
106
+ atlas?: SpriteAtlas;
107
+ /** For vector: SVG content or URL */
108
+ svg?: string;
109
+ /** For skeletal: skeleton data URL */
110
+ skeletonData?: string;
111
+ /** Base dimensions */
112
+ width: number;
113
+ height: number;
114
+ }
115
+ export interface SpriteAtlas {
116
+ frames: Record<string, SpriteFrame>;
117
+ meta: {
118
+ image: string;
119
+ size: {
120
+ w: number;
121
+ h: number;
122
+ };
123
+ scale: number;
124
+ };
125
+ }
126
+ export interface SpriteFrame {
127
+ frame: {
128
+ x: number;
129
+ y: number;
130
+ w: number;
131
+ h: number;
132
+ };
133
+ rotated: boolean;
134
+ trimmed: boolean;
135
+ spriteSourceSize: {
136
+ x: number;
137
+ y: number;
138
+ w: number;
139
+ h: number;
140
+ };
141
+ sourceSize: {
142
+ w: number;
143
+ h: number;
144
+ };
145
+ }
146
+ export interface CharacterAnimation {
147
+ /** Animation ID */
148
+ id: string;
149
+ /** Display name */
150
+ name: string;
151
+ /** Animation category */
152
+ category: AnimationCategory;
153
+ /** Frames */
154
+ frames: AnimationFrameDef[];
155
+ /** FPS for this animation */
156
+ fps: number;
157
+ /** Loop this animation */
158
+ loop: boolean;
159
+ /** Duration in ms (calculated) */
160
+ duration: number;
161
+ }
162
+ export type AnimationCategory = 'idle' | 'walk' | 'run' | 'talk' | 'gesture' | 'emotion' | 'action' | 'entrance' | 'exit' | 'custom';
163
+ export interface AnimationFrameDef {
164
+ /** Frame identifier (sprite name or index) */
165
+ frameId: string;
166
+ /** Duration override in ms (optional) */
167
+ duration?: number;
168
+ /** Transform offset for this frame */
169
+ offset?: {
170
+ x: number;
171
+ y: number;
172
+ };
173
+ /** Trigger event at this frame */
174
+ event?: string;
175
+ }
176
+ export interface CharacterExpression {
177
+ id: string;
178
+ name: string;
179
+ /** Emotion category */
180
+ emotion: EmotionType;
181
+ /** Frame or overlay to use */
182
+ frameId?: string;
183
+ /** Facial overlay image */
184
+ overlay?: string;
185
+ /** Blend mode for overlay */
186
+ blendMode?: 'normal' | 'multiply' | 'overlay';
187
+ }
188
+ export type EmotionType = 'neutral' | 'happy' | 'sad' | 'angry' | 'surprised' | 'scared' | 'confused' | 'thinking' | 'laughing' | 'crying' | 'custom';
189
+ export interface CharacterVoice {
190
+ /** Voice synthesizer preset */
191
+ synthesizer?: 'tts' | 'custom';
192
+ /** Voice pitch */
193
+ pitch?: number;
194
+ /** Voice speed */
195
+ rate?: number;
196
+ /** Voice ID for TTS */
197
+ voiceId?: string;
198
+ /** Pre-recorded audio clips */
199
+ audioClips?: Record<string, string>;
200
+ }
201
+ export interface PuppetPropDef {
202
+ id: string;
203
+ name: string;
204
+ type: 'image' | 'sprite' | 'vector' | 'text' | 'shape';
205
+ /** Asset URL or content */
206
+ asset: string;
207
+ /** Dimensions */
208
+ width: number;
209
+ height: number;
210
+ /** Anchor point */
211
+ anchor: {
212
+ x: number;
213
+ y: number;
214
+ };
215
+ /** Available animations */
216
+ animations?: CharacterAnimation[];
217
+ /** Is this a background? */
218
+ isBackground?: boolean;
219
+ /** Z-layer hint */
220
+ layer?: number;
221
+ }
222
+ export interface SceneBackground {
223
+ type: 'solid' | 'gradient' | 'image' | 'video' | 'parallax';
224
+ color?: string;
225
+ gradient?: GradientDef;
226
+ image?: string;
227
+ video?: string;
228
+ parallaxLayers?: ParallaxLayer[];
229
+ /** Transition effect when entering scene */
230
+ transition?: BackgroundTransition;
231
+ }
232
+ export interface GradientDef {
233
+ type: 'linear' | 'radial';
234
+ stops: Array<{
235
+ color: string;
236
+ position: number;
237
+ }>;
238
+ angle?: number;
239
+ }
240
+ export interface ParallaxLayer {
241
+ image: string;
242
+ speed: number;
243
+ repeat?: boolean;
244
+ offset?: {
245
+ x: number;
246
+ y: number;
247
+ };
248
+ }
249
+ export interface BackgroundTransition {
250
+ type: 'fade' | 'slide' | 'zoom' | 'dissolve' | 'none';
251
+ duration: number;
252
+ easing?: string;
253
+ }
254
+ export interface AudioTrackDef {
255
+ id: string;
256
+ name: string;
257
+ type: AudioTrackType;
258
+ /** Audio file URL */
259
+ src: string;
260
+ /** Duration in ms */
261
+ duration: number;
262
+ /** Default volume 0-1 */
263
+ volume: number;
264
+ /** Is this music or sfx? */
265
+ category: 'music' | 'sfx' | 'voice' | 'ambient';
266
+ }
267
+ export type AudioTrackType = 'mp3' | 'ogg' | 'wav' | 'webm';
268
+ export interface PuppetScene {
269
+ id: string;
270
+ /** Scene title */
271
+ title: string;
272
+ /** Scene duration in ms */
273
+ duration: number;
274
+ /** Background settings */
275
+ background: SceneBackground;
276
+ /** Characters on stage */
277
+ cast: SceneCastMember[];
278
+ /** Props on stage */
279
+ scenery: SceneProps[];
280
+ /** Timeline of actions */
281
+ timeline: TimelineTrack[];
282
+ /** Scene-level audio */
283
+ audio?: SceneAudio;
284
+ /** Transition to next scene */
285
+ transition?: SceneTransition;
286
+ /** Camera settings */
287
+ camera?: SceneCamera;
288
+ }
289
+ export interface SceneCastMember {
290
+ /** Reference to character def */
291
+ characterId: string;
292
+ /** Instance ID for this scene */
293
+ instanceId: string;
294
+ /** Starting position */
295
+ position: {
296
+ x: number;
297
+ y: number;
298
+ };
299
+ /** Starting scale */
300
+ scale: number;
301
+ /** Starting rotation */
302
+ rotation: number;
303
+ /** Starting opacity */
304
+ opacity: number;
305
+ /** Facing direction */
306
+ flipX: boolean;
307
+ /** Initial animation */
308
+ initialAnimation?: string;
309
+ /** Initial expression */
310
+ initialExpression?: string;
311
+ /** Z-order */
312
+ zIndex: number;
313
+ /** Enter/appear delay (ms from scene start) */
314
+ enterDelay?: number;
315
+ /** Exit time (ms from scene start) */
316
+ exitTime?: number;
317
+ }
318
+ export interface SceneProps {
319
+ /** Reference to prop def */
320
+ propId: string;
321
+ /** Instance ID */
322
+ instanceId: string;
323
+ position: {
324
+ x: number;
325
+ y: number;
326
+ };
327
+ scale: number;
328
+ rotation: number;
329
+ opacity: number;
330
+ zIndex: number;
331
+ }
332
+ export interface SceneAudio {
333
+ /** Background music track ID */
334
+ music?: string;
335
+ /** Music volume override */
336
+ musicVolume?: number;
337
+ /** Ambient sound track ID */
338
+ ambient?: string;
339
+ /** Ambient volume */
340
+ ambientVolume?: number;
341
+ }
342
+ export interface SceneTransition {
343
+ type: 'cut' | 'fade' | 'slideLeft' | 'slideRight' | 'slideUp' | 'slideDown' | 'zoom' | 'dissolve' | 'wipe';
344
+ duration: number;
345
+ easing?: string;
346
+ }
347
+ export interface SceneCamera {
348
+ /** Camera position (center point) */
349
+ position: {
350
+ x: number;
351
+ y: number;
352
+ };
353
+ /** Zoom level (1 = 100%) */
354
+ zoom: number;
355
+ /** Camera rotation */
356
+ rotation: number;
357
+ }
358
+ export interface TimelineTrack {
359
+ /** Track ID */
360
+ id: string;
361
+ /** Track type */
362
+ type: TimelineTrackType;
363
+ /** Target instance ID (character or prop) */
364
+ targetId: string;
365
+ /** Keyframes on this track */
366
+ keyframes: Keyframe[];
367
+ /** Track is muted/disabled */
368
+ muted?: boolean;
369
+ /** Track label */
370
+ label?: string;
371
+ }
372
+ export type TimelineTrackType = 'animation' | 'transform' | 'expression' | 'dialogue' | 'audio' | 'camera' | 'effect';
373
+ export interface Keyframe {
374
+ /** Time position in ms from scene start */
375
+ time: number;
376
+ /** Keyframe data based on track type */
377
+ value: KeyframeValue;
378
+ /** Easing to next keyframe */
379
+ easing?: EasingType;
380
+ /** Duration (for non-instant actions) */
381
+ duration?: number;
382
+ }
383
+ export type KeyframeValue = AnimationKeyframe | TransformKeyframe | ExpressionKeyframe | DialogueKeyframe | AudioKeyframe | CameraKeyframe | EffectKeyframe;
384
+ export interface AnimationKeyframe {
385
+ type: 'animation';
386
+ animationId: string;
387
+ /** Start from specific frame */
388
+ startFrame?: number;
389
+ /** Play speed multiplier */
390
+ speed?: number;
391
+ }
392
+ export interface TransformKeyframe {
393
+ type: 'transform';
394
+ position?: {
395
+ x: number;
396
+ y: number;
397
+ };
398
+ scale?: number;
399
+ rotation?: number;
400
+ opacity?: number;
401
+ flipX?: boolean;
402
+ }
403
+ export interface ExpressionKeyframe {
404
+ type: 'expression';
405
+ expressionId: string;
406
+ /** Blend intensity 0-1 */
407
+ intensity?: number;
408
+ }
409
+ export interface DialogueKeyframe {
410
+ type: 'dialogue';
411
+ /** Text to display */
412
+ text: string;
413
+ /** Dialogue display style */
414
+ style?: DialogueStyle;
415
+ /** Voice audio clip ID */
416
+ audioClip?: string;
417
+ /** Auto-advance after audio */
418
+ autoAdvance?: boolean;
419
+ }
420
+ export interface DialogueStyle {
421
+ position: 'bubble' | 'bottom' | 'top' | 'side' | 'center';
422
+ backgroundColor?: string;
423
+ textColor?: string;
424
+ fontSize?: number;
425
+ fontFamily?: string;
426
+ bubbleTail?: 'left' | 'right' | 'bottom' | 'none';
427
+ maxWidth?: number;
428
+ animation?: 'typewriter' | 'fade' | 'pop' | 'none';
429
+ }
430
+ export interface AudioKeyframe {
431
+ type: 'audio';
432
+ trackId: string;
433
+ action: 'play' | 'stop' | 'pause' | 'fadeIn' | 'fadeOut' | 'setVolume';
434
+ volume?: number;
435
+ fadeDuration?: number;
436
+ }
437
+ export interface CameraKeyframe {
438
+ type: 'camera';
439
+ position?: {
440
+ x: number;
441
+ y: number;
442
+ };
443
+ zoom?: number;
444
+ rotation?: number;
445
+ /** Shake effect */
446
+ shake?: {
447
+ intensity: number;
448
+ duration: number;
449
+ };
450
+ /** Follow target */
451
+ followTarget?: string;
452
+ }
453
+ export interface EffectKeyframe {
454
+ type: 'effect';
455
+ effectType: VisualEffectType;
456
+ params: Record<string, unknown>;
457
+ duration?: number;
458
+ }
459
+ export type VisualEffectType = 'flash' | 'shake' | 'blur' | 'vignette' | 'colorFilter' | 'particles' | 'rain' | 'snow' | 'fog' | 'lightning' | 'spotlight';
460
+ export type EasingType = 'linear' | 'easeIn' | 'easeOut' | 'easeInOut' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInElastic' | 'easeOutElastic' | 'easeInOutElastic' | 'easeInBounce' | 'easeOutBounce' | 'easeInOutBounce' | 'step';
461
+ export interface PresentationConversionOptions {
462
+ /** Convert scenes to slides */
463
+ scenesAsSlides?: boolean;
464
+ /** Include animation preview frames */
465
+ includeAnimationPreviews?: boolean;
466
+ /** Flatten timeline to simple animations */
467
+ flattenTimeline?: boolean;
468
+ /** Export dialogue as text elements */
469
+ exportDialogue?: boolean;
470
+ /** Include speaker notes from dialogue */
471
+ dialogueAsNotes?: boolean;
472
+ /** Flatten scenes into multiple slides per scene */
473
+ flattenScenes?: boolean;
474
+ /** Include character sprite images */
475
+ includeCharacterSprites?: boolean;
476
+ /** Include dialogue text */
477
+ includeDialogue?: boolean;
478
+ /** Default slide duration in ms */
479
+ slideDuration?: number;
480
+ }
481
+ export interface GameEngineImportOptions {
482
+ /** Import sprite sheets */
483
+ importSprites: boolean;
484
+ /** Import animations */
485
+ importAnimations: boolean;
486
+ /** Character entity filter */
487
+ characterFilter?: (entityId: string) => boolean;
488
+ /** Scene/level to import from */
489
+ sourceScene?: string;
490
+ }
491
+ export interface PuppetShowPlayerState {
492
+ isPlaying: boolean;
493
+ isPaused: boolean;
494
+ currentSceneIndex: number;
495
+ currentTime: number;
496
+ totalDuration: number;
497
+ playbackSpeed: number;
498
+ volume: number;
499
+ isMuted: boolean;
500
+ characterStates: Map<string, CharacterRuntimeState>;
501
+ activeEffects: ActiveEffect[];
502
+ loop: boolean;
503
+ }
504
+ export interface CharacterRuntimeState {
505
+ instanceId: string;
506
+ characterId: string;
507
+ position: {
508
+ x: number;
509
+ y: number;
510
+ };
511
+ scale: number;
512
+ rotation: number;
513
+ opacity: number;
514
+ flipX: boolean;
515
+ currentAnimation: string;
516
+ animationFrame: number;
517
+ animationStartTime: number;
518
+ currentExpression: string;
519
+ visible: boolean;
520
+ }
521
+ export interface ActiveEffect {
522
+ effectId: string;
523
+ type: VisualEffectType;
524
+ startTime: number;
525
+ duration: number;
526
+ params: Record<string, unknown>;
527
+ progress: number;
528
+ }
529
+ //# sourceMappingURL=puppetShowTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puppetShowTypes.d.ts","sourceRoot":"","sources":["../../src/puppetShow/puppetShowTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { default as React } from 'react';
2
+ import { NicePuppetShowDocument, PuppetScene, SceneBackground, SceneCamera, CharacterRuntimeState, ActiveEffect } from './puppetShowTypes';
3
+ import { CharacterRegistry } from './puppetCharacter';
4
+
5
+ export interface PuppetStageContextValue {
6
+ document: NicePuppetShowDocument | null;
7
+ currentScene: PuppetScene | null;
8
+ currentSceneIndex: number;
9
+ camera: SceneCamera;
10
+ characterStates: Map<string, CharacterRuntimeState>;
11
+ activeEffects: ActiveEffect[];
12
+ stageSize: {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ scale: number;
17
+ setCamera: (camera: Partial<SceneCamera>) => void;
18
+ updateCharacterState: (instanceId: string, state: Partial<CharacterRuntimeState>) => void;
19
+ }
20
+ export declare function usePuppetStage(): PuppetStageContextValue;
21
+ export interface BackgroundRendererProps {
22
+ background: SceneBackground;
23
+ width: number;
24
+ height: number;
25
+ }
26
+ export declare function BackgroundRenderer({ background, width, height, }: BackgroundRendererProps): React.ReactElement;
27
+ export interface EffectRendererProps {
28
+ effects: ActiveEffect[];
29
+ width: number;
30
+ height: number;
31
+ }
32
+ export declare function EffectRenderer({ effects, width, height, }: EffectRendererProps): React.ReactElement | null;
33
+ export interface PuppetStageProps {
34
+ document: NicePuppetShowDocument;
35
+ scene: PuppetScene;
36
+ characterStates: Map<string, CharacterRuntimeState>;
37
+ camera: SceneCamera;
38
+ activeEffects: ActiveEffect[];
39
+ characterRegistry: CharacterRegistry;
40
+ className?: string;
41
+ style?: React.CSSProperties;
42
+ onCharacterClick?: (instanceId: string) => void;
43
+ }
44
+ export declare function PuppetStage({ document, scene, characterStates, camera, activeEffects, characterRegistry, className, style, onCharacterClick, }: PuppetStageProps): React.ReactElement;
45
+ export interface DialogueBoxProps {
46
+ text: string;
47
+ speakerName?: string;
48
+ style?: {
49
+ position?: 'bubble' | 'bottom' | 'top' | 'center';
50
+ backgroundColor?: string;
51
+ textColor?: string;
52
+ fontSize?: number;
53
+ maxWidth?: number;
54
+ };
55
+ targetPosition?: {
56
+ x: number;
57
+ y: number;
58
+ };
59
+ visible: boolean;
60
+ typewriterProgress?: number;
61
+ }
62
+ export declare function DialogueBox({ text, speakerName, style, targetPosition, visible, typewriterProgress, }: DialogueBoxProps): React.ReactElement | null;
63
+ export declare function useCameraShake(intensity: number, duration: number, active: boolean): {
64
+ offsetX: number;
65
+ offsetY: number;
66
+ };
67
+ //# sourceMappingURL=puppetStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puppetStage.d.ts","sourceRoot":"","sources":["../../src/puppetShow/puppetStage.ts"],"names":[],"mappings":"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"}