@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,13 @@
1
+ import { NicePresentationDocument } from '../types/presentationTypes';
2
+
3
+ export interface ParseResult {
4
+ ok: true;
5
+ document: NicePresentationDocument;
6
+ }
7
+ export interface ParseError {
8
+ ok: false;
9
+ error: string;
10
+ }
11
+ export declare function parseNdpJson(json: string): ParseResult | ParseError;
12
+ export declare function stringifyNdpJson(doc: NicePresentationDocument, pretty?: boolean): string;
13
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/core/serialization.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,wBAAwB,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CA+BnE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,UAAQ,GAAG,MAAM,CAEtF"}
@@ -0,0 +1,20 @@
1
+ import { ElementAnimation } from '../types/presentationTypes';
2
+
3
+ export interface ElementRenderState {
4
+ opacity: number;
5
+ transform: string;
6
+ filter: string;
7
+ visible: boolean;
8
+ }
9
+ /**
10
+ * Compute the render state for an element given the elapsed time since
11
+ * the slide became visible and the list of "build steps" already triggered.
12
+ */
13
+ export declare function computeElementState(anim: ElementAnimation | undefined, elapsedMs: number, buildTriggered: boolean): ElementRenderState;
14
+ export interface TransitionState {
15
+ outgoing: React.CSSProperties;
16
+ incoming: React.CSSProperties;
17
+ }
18
+ export declare function computeTransitionState(effect: string, progress: number, // 0→1
19
+ direction?: string): TransitionState;
20
+ //# sourceMappingURL=slideAnimationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slideAnimationEngine.d.ts","sourceRoot":"","sources":["../../src/core/slideAnimationEngine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AAqBpC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,GACtB,kBAAkB,CAqBpB;AAoFD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,MAAM;AACxB,SAAS,GAAE,MAAe,GACzB,eAAe,CAoCjB"}
@@ -0,0 +1,311 @@
1
+ import { PresentationSlide, SlideElement, SlideBackground } from '../types/presentationTypes';
2
+
3
+ /** Library item types. */
4
+ export type LibraryItemType = 'slide' | 'element' | 'template' | 'theme' | 'animation';
5
+ /** Base library item metadata. */
6
+ export interface LibraryItemMetadata {
7
+ /** Unique item ID. */
8
+ id: string;
9
+ /** Item type. */
10
+ type: LibraryItemType;
11
+ /** Display name. */
12
+ name: string;
13
+ /** Description. */
14
+ description?: string;
15
+ /** Thumbnail URL. */
16
+ thumbnailUrl?: string;
17
+ /** Tags for search/filter. */
18
+ tags?: string[];
19
+ /** Category/collection IDs. */
20
+ collectionIds?: string[];
21
+ /** Creator information. */
22
+ createdBy: LibraryAuthor;
23
+ /** Creation timestamp. */
24
+ createdAt: string;
25
+ /** Last update timestamp. */
26
+ updatedAt: string;
27
+ /** Version number. */
28
+ version: number;
29
+ /** Usage count. */
30
+ usageCount: number;
31
+ /** Is this a favorite? */
32
+ isFavorite?: boolean;
33
+ /** Visibility: private, team, public. */
34
+ visibility: 'private' | 'team' | 'public';
35
+ /** License information (for public items). */
36
+ license?: string;
37
+ }
38
+ /** Author information. */
39
+ export interface LibraryAuthor {
40
+ id: string;
41
+ name: string;
42
+ email?: string;
43
+ avatarUrl?: string;
44
+ organizationId?: string;
45
+ }
46
+ /** Slide library item. */
47
+ export interface SlideLibraryItem {
48
+ metadata: LibraryItemMetadata;
49
+ /** The slide content. */
50
+ slide: PresentationSlide;
51
+ /** Editable placeholders. */
52
+ placeholders?: SlidePlaceholder[];
53
+ /** Preview images for different themes. */
54
+ themePreviews?: Record<string, string>;
55
+ }
56
+ /** Element library item. */
57
+ export interface ElementLibraryItem {
58
+ metadata: LibraryItemMetadata;
59
+ /** The element content. */
60
+ element: SlideElement;
61
+ /** Supported element types this can replace. */
62
+ compatibleTypes?: string[];
63
+ }
64
+ /** Template library item (multi-slide). */
65
+ export interface TemplateLibraryItem {
66
+ metadata: LibraryItemMetadata;
67
+ /** Template slides. */
68
+ slides: PresentationSlide[];
69
+ /** Template variables. */
70
+ variables?: TemplateVariable[];
71
+ /** Suggested use cases. */
72
+ useCases?: string[];
73
+ }
74
+ /** Placeholder definition in a slide. */
75
+ export interface SlidePlaceholder {
76
+ /** Placeholder ID. */
77
+ id: string;
78
+ /** Element ID containing the placeholder. */
79
+ elementId: string;
80
+ /** Placeholder type. */
81
+ type: 'text' | 'image' | 'chart-data' | 'table-data' | 'color';
82
+ /** Label for UI. */
83
+ label: string;
84
+ /** Default value. */
85
+ defaultValue?: unknown;
86
+ /** Is this required? */
87
+ required?: boolean;
88
+ /** Validation rules. */
89
+ validation?: {
90
+ minLength?: number;
91
+ maxLength?: number;
92
+ pattern?: string;
93
+ };
94
+ }
95
+ /** Template variable definition. */
96
+ export interface TemplateVariable {
97
+ /** Variable name. */
98
+ name: string;
99
+ /** Display label. */
100
+ label: string;
101
+ /** Variable type. */
102
+ type: 'string' | 'number' | 'date' | 'color' | 'image' | 'data';
103
+ /** Default value. */
104
+ defaultValue?: unknown;
105
+ /** Description. */
106
+ description?: string;
107
+ /** Is required? */
108
+ required?: boolean;
109
+ }
110
+ /** Collection for organizing library items. */
111
+ export interface LibraryCollection {
112
+ id: string;
113
+ name: string;
114
+ description?: string;
115
+ icon?: string;
116
+ color?: string;
117
+ parentId?: string;
118
+ itemCount: number;
119
+ createdBy: LibraryAuthor;
120
+ createdAt: string;
121
+ visibility: 'private' | 'team' | 'public';
122
+ }
123
+ /** Linked slide instance. */
124
+ export interface LinkedSlideInstance {
125
+ /** Instance ID (unique per presentation). */
126
+ instanceId: string;
127
+ /** Library item ID this links to. */
128
+ libraryItemId: string;
129
+ /** Presentation ID containing this instance. */
130
+ presentationId: string;
131
+ /** Slide index in presentation. */
132
+ slideIndex: number;
133
+ /** Local overrides. */
134
+ overrides?: SlideOverrides;
135
+ /** Sync status. */
136
+ syncStatus: 'synced' | 'modified' | 'outdated';
137
+ /** Library version when last synced. */
138
+ syncedVersion: number;
139
+ }
140
+ /** Local overrides for a linked slide. */
141
+ export interface SlideOverrides {
142
+ /** Placeholder values. */
143
+ placeholderValues?: Record<string, unknown>;
144
+ /** Element overrides by element ID. */
145
+ elementOverrides?: Record<string, Partial<SlideElement>>;
146
+ /** Background override. */
147
+ backgroundOverride?: SlideBackground;
148
+ }
149
+ /** Search/filter options. */
150
+ export interface LibrarySearchOptions {
151
+ query?: string;
152
+ types?: LibraryItemType[];
153
+ tags?: string[];
154
+ collectionIds?: string[];
155
+ visibility?: ('private' | 'team' | 'public')[];
156
+ createdBy?: string;
157
+ sortBy?: 'name' | 'createdAt' | 'updatedAt' | 'usageCount';
158
+ sortOrder?: 'asc' | 'desc';
159
+ limit?: number;
160
+ offset?: number;
161
+ }
162
+ /** Search result. */
163
+ export interface LibrarySearchResult {
164
+ items: Array<SlideLibraryItem | ElementLibraryItem | TemplateLibraryItem>;
165
+ totalCount: number;
166
+ hasMore: boolean;
167
+ }
168
+ /**
169
+ * Manages the slide library.
170
+ */
171
+ export declare class SlideLibraryManager {
172
+ private slides;
173
+ private elements;
174
+ private templates;
175
+ private collections;
176
+ private linkedInstances;
177
+ private currentUser;
178
+ private onUpdate?;
179
+ constructor(currentUser: LibraryAuthor, onUpdate?: (type: LibraryItemType, itemId: string) => void);
180
+ /**
181
+ * Add a slide to the library.
182
+ */
183
+ addSlide(slide: PresentationSlide, options: {
184
+ name: string;
185
+ description?: string;
186
+ tags?: string[];
187
+ collectionIds?: string[];
188
+ visibility?: 'private' | 'team' | 'public';
189
+ placeholders?: SlidePlaceholder[];
190
+ }): SlideLibraryItem;
191
+ /**
192
+ * Update a slide in the library.
193
+ */
194
+ updateSlide(itemId: string, updates: {
195
+ slide?: PresentationSlide;
196
+ name?: string;
197
+ description?: string;
198
+ tags?: string[];
199
+ placeholders?: SlidePlaceholder[];
200
+ }): SlideLibraryItem | null;
201
+ /**
202
+ * Remove a slide from the library.
203
+ */
204
+ removeSlide(itemId: string): boolean;
205
+ /**
206
+ * Get a slide by ID.
207
+ */
208
+ getSlide(itemId: string): SlideLibraryItem | undefined;
209
+ /**
210
+ * Use a slide from library (creates a copy for insertion).
211
+ */
212
+ useSlide(itemId: string, overrides?: SlideOverrides): PresentationSlide | null;
213
+ /**
214
+ * Create a linked slide instance.
215
+ */
216
+ linkSlide(itemId: string, presentationId: string, slideIndex: number, overrides?: SlideOverrides): LinkedSlideInstance | null;
217
+ /**
218
+ * Sync a linked slide with library.
219
+ */
220
+ syncLinkedSlide(instanceId: string): PresentationSlide | null;
221
+ /**
222
+ * Check if linked slides need sync.
223
+ */
224
+ getOutdatedInstances(): LinkedSlideInstance[];
225
+ /**
226
+ * Add an element to the library.
227
+ */
228
+ addElement(element: SlideElement, options: {
229
+ name: string;
230
+ description?: string;
231
+ tags?: string[];
232
+ visibility?: 'private' | 'team' | 'public';
233
+ }): ElementLibraryItem;
234
+ /**
235
+ * Get an element by ID.
236
+ */
237
+ getElement(itemId: string): ElementLibraryItem | undefined;
238
+ /**
239
+ * Use an element from library.
240
+ */
241
+ useElement(itemId: string): SlideElement | null;
242
+ /**
243
+ * Add a template to the library.
244
+ */
245
+ addTemplate(slides: PresentationSlide[], options: {
246
+ name: string;
247
+ description?: string;
248
+ tags?: string[];
249
+ variables?: TemplateVariable[];
250
+ useCases?: string[];
251
+ visibility?: 'private' | 'team' | 'public';
252
+ }): TemplateLibraryItem;
253
+ /**
254
+ * Get a template by ID.
255
+ */
256
+ getTemplate(itemId: string): TemplateLibraryItem | undefined;
257
+ /**
258
+ * Use a template from library.
259
+ */
260
+ useTemplate(itemId: string, variableValues?: Record<string, unknown>): PresentationSlide[] | null;
261
+ /**
262
+ * Create a collection.
263
+ */
264
+ createCollection(options: {
265
+ name: string;
266
+ description?: string;
267
+ icon?: string;
268
+ color?: string;
269
+ parentId?: string;
270
+ visibility?: 'private' | 'team' | 'public';
271
+ }): LibraryCollection;
272
+ /**
273
+ * Get all collections.
274
+ */
275
+ getCollections(): LibraryCollection[];
276
+ /**
277
+ * Add item to collection.
278
+ */
279
+ addToCollection(itemId: string, collectionId: string): boolean;
280
+ /**
281
+ * Search the library.
282
+ */
283
+ search(options: LibrarySearchOptions): LibrarySearchResult;
284
+ /**
285
+ * Get recent items.
286
+ */
287
+ getRecent(limit?: number): Array<SlideLibraryItem | ElementLibraryItem | TemplateLibraryItem>;
288
+ /**
289
+ * Get favorites.
290
+ */
291
+ getFavorites(): Array<SlideLibraryItem | ElementLibraryItem | TemplateLibraryItem>;
292
+ /**
293
+ * Toggle favorite status.
294
+ */
295
+ toggleFavorite(itemId: string): boolean;
296
+ private generateId;
297
+ private cloneSlide;
298
+ private applyPlaceholderValues;
299
+ private applyTemplateVariables;
300
+ private updateCollectionCounts;
301
+ /**
302
+ * Export library to JSON.
303
+ */
304
+ exportLibrary(): string;
305
+ /**
306
+ * Import library from JSON.
307
+ */
308
+ importLibrary(json: string): void;
309
+ }
310
+ export default SlideLibraryManager;
311
+ //# sourceMappingURL=slideLibrary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slideLibrary.d.ts","sourceRoot":"","sources":["../../src/core/slideLibrary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ import { NicePresentationDocument } from '../types/presentationTypes';
2
+
3
+ /** Version entry in history. */
4
+ export interface PresentationVersion {
5
+ /** Unique version ID. */
6
+ versionId: string;
7
+ /** Sequential version number. */
8
+ versionNumber: number;
9
+ /** Full presentation snapshot. */
10
+ snapshot: NicePresentationDocument;
11
+ /** Timestamp of save. */
12
+ createdAt: string;
13
+ /** User who made the change. */
14
+ createdBy: VersionAuthor;
15
+ /** Version label (optional). */
16
+ label?: string;
17
+ /** Description of changes. */
18
+ description?: string;
19
+ /** Tags for categorization. */
20
+ tags?: string[];
21
+ /** Is this an auto-save? */
22
+ isAutoSave: boolean;
23
+ /** Parent version ID (for branching). */
24
+ parentVersionId?: string;
25
+ /** Branch name (if branched). */
26
+ branchName?: string;
27
+ /** Calculated diff from previous version. */
28
+ diff?: PresentationDiff;
29
+ }
30
+ /** Author information. */
31
+ export interface VersionAuthor {
32
+ id: string;
33
+ name: string;
34
+ email?: string;
35
+ avatarUrl?: string;
36
+ }
37
+ /** Diff between two versions. */
38
+ export interface PresentationDiff {
39
+ /** Summary of changes. */
40
+ summary: DiffSummary;
41
+ /** Detailed slide changes. */
42
+ slideChanges: SlideChange[];
43
+ /** Metadata changes. */
44
+ metadataChanges: MetadataChange[];
45
+ }
46
+ /** Summary of changes. */
47
+ export interface DiffSummary {
48
+ slidesAdded: number;
49
+ slidesRemoved: number;
50
+ slidesModified: number;
51
+ elementsAdded: number;
52
+ elementsRemoved: number;
53
+ elementsModified: number;
54
+ totalChanges: number;
55
+ }
56
+ /** Change to a single slide. */
57
+ export interface SlideChange {
58
+ slideId: string;
59
+ slideIndex: number;
60
+ changeType: 'added' | 'removed' | 'modified' | 'reordered';
61
+ slideTitle?: string;
62
+ /** Element-level changes for modified slides. */
63
+ elementChanges?: ElementChange[];
64
+ /** Previous index (for reordered). */
65
+ previousIndex?: number;
66
+ }
67
+ /** Change to a single element. */
68
+ export interface ElementChange {
69
+ elementId: string;
70
+ elementType: string;
71
+ changeType: 'added' | 'removed' | 'modified';
72
+ propertyChanges?: PropertyChange[];
73
+ }
74
+ /** Property-level change. */
75
+ export interface PropertyChange {
76
+ property: string;
77
+ oldValue: unknown;
78
+ newValue: unknown;
79
+ }
80
+ /** Metadata change. */
81
+ export interface MetadataChange {
82
+ property: string;
83
+ oldValue: unknown;
84
+ newValue: unknown;
85
+ }
86
+ /** Version history configuration. */
87
+ export interface VersionHistoryConfig {
88
+ /** Maximum versions to retain. */
89
+ maxVersions?: number;
90
+ /** Auto-save interval (ms). Set to 0 to disable. */
91
+ autoSaveInterval?: number;
92
+ /** Minimum time between auto-saves (ms). */
93
+ autoSaveDebounce?: number;
94
+ /** Keep all labeled versions regardless of maxVersions. */
95
+ preserveLabeledVersions?: boolean;
96
+ /** Enable branching. */
97
+ enableBranching?: boolean;
98
+ /** Current user for author info. */
99
+ currentUser: VersionAuthor;
100
+ }
101
+ /** Branch information. */
102
+ export interface VersionBranch {
103
+ name: string;
104
+ headVersionId: string;
105
+ createdAt: string;
106
+ createdBy: VersionAuthor;
107
+ description?: string;
108
+ }
109
+ /**
110
+ * Manages presentation version history.
111
+ */
112
+ export declare class PresentationVersionManager {
113
+ private versions;
114
+ private branches;
115
+ private presentationId;
116
+ private currentVersionId;
117
+ private currentBranch;
118
+ private config;
119
+ private autoSaveTimer;
120
+ private lastAutoSaveTime;
121
+ private onChange?;
122
+ constructor(presentationId: string, config: VersionHistoryConfig, onChange?: (version: PresentationVersion) => void);
123
+ /**
124
+ * Get all versions in order.
125
+ */
126
+ getVersionHistory(): PresentationVersion[];
127
+ /**
128
+ * Get a specific version.
129
+ */
130
+ getVersion(versionId: string): PresentationVersion | undefined;
131
+ /**
132
+ * Get current version.
133
+ */
134
+ getCurrentVersion(): PresentationVersion | undefined;
135
+ /**
136
+ * Save a new version.
137
+ */
138
+ saveVersion(presentation: NicePresentationDocument, options?: {
139
+ label?: string;
140
+ description?: string;
141
+ tags?: string[];
142
+ isAutoSave?: boolean;
143
+ }): PresentationVersion;
144
+ /**
145
+ * Schedule auto-save.
146
+ */
147
+ scheduleAutoSave(presentation: NicePresentationDocument): void;
148
+ /**
149
+ * Cancel pending auto-save.
150
+ */
151
+ cancelAutoSave(): void;
152
+ /**
153
+ * Restore to a previous version.
154
+ */
155
+ restoreVersion(versionId: string): NicePresentationDocument | null;
156
+ /**
157
+ * Preview a version without restoring.
158
+ */
159
+ previewVersion(versionId: string): NicePresentationDocument | null;
160
+ /**
161
+ * Label a version (add or update label).
162
+ */
163
+ labelVersion(versionId: string, label: string): boolean;
164
+ /**
165
+ * Add tags to a version.
166
+ */
167
+ tagVersion(versionId: string, tags: string[]): boolean;
168
+ /**
169
+ * Create a branch from current version.
170
+ */
171
+ createBranch(branchName: string, description?: string): VersionBranch | null;
172
+ /**
173
+ * Switch to a branch.
174
+ */
175
+ switchBranch(branchName: string): boolean;
176
+ /**
177
+ * Get all branches.
178
+ */
179
+ getBranches(): VersionBranch[];
180
+ /**
181
+ * Get current branch name.
182
+ */
183
+ getCurrentBranch(): string;
184
+ /**
185
+ * Compare two versions.
186
+ */
187
+ compareVersions(versionIdA: string, versionIdB: string): PresentationDiff | null;
188
+ /**
189
+ * Calculate diff between two presentations.
190
+ */
191
+ private calculateDiff;
192
+ /**
193
+ * Calculate element-level changes between slides.
194
+ */
195
+ private calculateElementChanges;
196
+ /**
197
+ * Calculate property-level changes between elements.
198
+ */
199
+ private calculatePropertyChanges;
200
+ /**
201
+ * Get slide title for display.
202
+ */
203
+ private getSlideTitle;
204
+ /**
205
+ * Generate auto description from diff.
206
+ */
207
+ private generateAutoDescription;
208
+ /**
209
+ * Deep clone a presentation.
210
+ */
211
+ private clonePresentation;
212
+ /**
213
+ * Generate a unique version ID.
214
+ */
215
+ private generateVersionId;
216
+ /**
217
+ * Prune old versions to stay within limit.
218
+ */
219
+ private pruneVersions;
220
+ /**
221
+ * Export version history to JSON.
222
+ */
223
+ exportHistory(): string;
224
+ /**
225
+ * Import version history from JSON.
226
+ */
227
+ importHistory(json: string): void;
228
+ /**
229
+ * Cleanup resources.
230
+ */
231
+ dispose(): void;
232
+ }
233
+ export default PresentationVersionManager;
234
+ //# sourceMappingURL=versionHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionHistory.d.ts","sourceRoot":"","sources":["../../src/core/versionHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AAM9F,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAChC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,SAAS,EAAE,aAAa,CAAC;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC7B,0BAA0B;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,wBAAwB;IACxB,eAAe,EAAE,cAAc,EAAE,CAAC;CACrC;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACtC;AAED,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,uBAAuB;AACvB,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACjC,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oCAAoC;IACpC,WAAW,EAAE,aAAa,CAAC;CAC9B;AAED,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;GAEG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAyC;gBAGtD,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI;IAsBrD;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,EAAE;IAM1C;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI9D;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,GAAG,SAAS;IAIpD;;OAEG;IACH,WAAW,CACP,YAAY,EAAE,wBAAwB,EACtC,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACnB,GACP,mBAAmB;IAsCtB;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,wBAAwB,GAAG,IAAI;IAiB9D;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAqBlE;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAKlE;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAOvD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAOtD;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgB5E;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQzC;;OAEG;IACH,WAAW,IAAI,aAAa,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAOhF;;OAEG;IACH,OAAO,CAAC,aAAa;IA2GrB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6C/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAUvB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASjC;;OAEG;IACH,OAAO,IAAI,IAAI;CAGlB;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { PresentationModel } from '../core/PresentationModel';
2
+ import { NicePresentationDocument, PresentationSlide, SlideElement, SlideLayout, PresentationTheme, ElementPosition } from '../types/presentationTypes';
3
+
4
+ export interface UsePresentationEditorReturn {
5
+ document: Readonly<NicePresentationDocument>;
6
+ slides: readonly PresentationSlide[];
7
+ theme: PresentationTheme;
8
+ /** Current slide index */
9
+ currentSlideIndex: number;
10
+ currentSlide: PresentationSlide | undefined;
11
+ setCurrentSlideIndex: (idx: number) => void;
12
+ /** Slide ops */
13
+ addSlide: (afterIndex?: number, layout?: SlideLayout) => PresentationSlide;
14
+ removeSlide: (id: string) => void;
15
+ moveSlide: (id: string, newIndex: number) => void;
16
+ duplicateSlide: (id: string) => PresentationSlide | null;
17
+ updateSlide: (id: string, patch: Partial<Omit<PresentationSlide, 'id' | 'elements'>>) => void;
18
+ /** Element ops */
19
+ addElement: (slideId: string, element: Omit<SlideElement, 'id'>) => SlideElement | null;
20
+ updateElement: (slideId: string, elementId: string, patch: Partial<Omit<SlideElement, 'id'>>) => void;
21
+ removeElement: (slideId: string, elementId: string) => void;
22
+ moveElement: (slideId: string, elementId: string, position: ElementPosition) => void;
23
+ /** Theme */
24
+ setTheme: (theme: PresentationTheme) => void;
25
+ /** Undo/Redo */
26
+ undo: () => void;
27
+ redo: () => void;
28
+ canUndo: boolean;
29
+ canRedo: boolean;
30
+ /** Load */
31
+ loadDocument: (doc: NicePresentationDocument) => void;
32
+ model: PresentationModel;
33
+ }
34
+ export declare function usePresentationEditor(initialDoc?: NicePresentationDocument): UsePresentationEditorReturn;
35
+ //# sourceMappingURL=usePresentationEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePresentationEditor.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresentationEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC7C,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,KAAK,EAAE,iBAAiB,CAAC;IAEzB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5C,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C,gBAAgB;IAChB,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,iBAAiB,CAAC;IAC3E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IACzD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC;IAE9F,kBAAkB;IAClB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;IACtG,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAErF,YAAY;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAE7C,gBAAgB;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW;IACX,YAAY,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,wBAAwB,GACpC,2BAA2B,CAmD7B"}