@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,310 @@
1
+ /**
2
+ * QR Code Slide — Auto-generate QR codes for presentations.
3
+ *
4
+ * Features:
5
+ * - Generate QR codes from URLs, text, contact info
6
+ * - Link to live presentation / audience interaction
7
+ * - Dynamic QR codes with tracking
8
+ * - Customizable styling (colors, logo embedding)
9
+ * - Multiple QR code types (URL, vCard, WiFi, etc.)
10
+ */
11
+ /** QR code content types. */
12
+ export type QRContentType = 'url' | 'text' | 'email' | 'phone' | 'sms' | 'vcard' | 'wifi' | 'geo' | 'calendar' | 'presentation-link' | 'feedback-form' | 'poll';
13
+ /** Base QR code configuration. */
14
+ export interface QRCodeConfig {
15
+ /** Unique ID. */
16
+ id: string;
17
+ /** Content type. */
18
+ type: QRContentType;
19
+ /** Raw content/data. */
20
+ data: string | QRContentData;
21
+ /** Display label. */
22
+ label?: string;
23
+ /** Description text. */
24
+ description?: string;
25
+ /** QR code styling. */
26
+ style?: QRCodeStyle;
27
+ /** Size in pixels. */
28
+ size?: number;
29
+ /** Error correction level. */
30
+ errorCorrection?: 'L' | 'M' | 'Q' | 'H';
31
+ /** Enable tracking (for dynamic QR codes). */
32
+ enableTracking?: boolean;
33
+ /** Short URL for tracking. */
34
+ shortUrl?: string;
35
+ }
36
+ /** QR code content data structures. */
37
+ export type QRContentData = UrlContent | EmailContent | PhoneContent | SMSContent | VCardContent | WiFiContent | GeoContent | CalendarContent | PresentationLinkContent | FeedbackFormContent | QRPollContent;
38
+ /** URL content. */
39
+ export interface UrlContent {
40
+ type: 'url';
41
+ url: string;
42
+ }
43
+ /** Email content. */
44
+ export interface EmailContent {
45
+ type: 'email';
46
+ to: string;
47
+ subject?: string;
48
+ body?: string;
49
+ }
50
+ /** Phone content. */
51
+ export interface PhoneContent {
52
+ type: 'phone';
53
+ number: string;
54
+ }
55
+ /** SMS content. */
56
+ export interface SMSContent {
57
+ type: 'sms';
58
+ number: string;
59
+ message?: string;
60
+ }
61
+ /** vCard contact content. */
62
+ export interface VCardContent {
63
+ type: 'vcard';
64
+ firstName: string;
65
+ lastName: string;
66
+ organization?: string;
67
+ title?: string;
68
+ email?: string;
69
+ phone?: string;
70
+ mobile?: string;
71
+ address?: {
72
+ street?: string;
73
+ city?: string;
74
+ state?: string;
75
+ postalCode?: string;
76
+ country?: string;
77
+ };
78
+ website?: string;
79
+ note?: string;
80
+ }
81
+ /** WiFi network content. */
82
+ export interface WiFiContent {
83
+ type: 'wifi';
84
+ ssid: string;
85
+ password?: string;
86
+ encryption: 'WPA' | 'WEP' | 'nopass';
87
+ hidden?: boolean;
88
+ }
89
+ /** Geographic location content. */
90
+ export interface GeoContent {
91
+ type: 'geo';
92
+ latitude: number;
93
+ longitude: number;
94
+ altitude?: number;
95
+ label?: string;
96
+ }
97
+ /** Calendar event content. */
98
+ export interface CalendarContent {
99
+ type: 'calendar';
100
+ title: string;
101
+ description?: string;
102
+ location?: string;
103
+ startDate: string;
104
+ endDate: string;
105
+ allDay?: boolean;
106
+ }
107
+ /** Presentation link content. */
108
+ export interface PresentationLinkContent {
109
+ type: 'presentation-link';
110
+ presentationId: string;
111
+ slideIndex?: number;
112
+ accessCode?: string;
113
+ expiresAt?: string;
114
+ allowDownload?: boolean;
115
+ }
116
+ /** Feedback form content. */
117
+ export interface FeedbackFormContent {
118
+ type: 'feedback-form';
119
+ formId: string;
120
+ presentationId: string;
121
+ questions?: FeedbackQuestion[];
122
+ anonymous?: boolean;
123
+ }
124
+ /** Feedback question. */
125
+ export interface FeedbackQuestion {
126
+ id: string;
127
+ type: 'rating' | 'text' | 'choice' | 'scale';
128
+ question: string;
129
+ options?: string[];
130
+ required?: boolean;
131
+ }
132
+ /** Poll content for QR codes. */
133
+ export interface QRPollContent {
134
+ type: 'poll';
135
+ pollId: string;
136
+ question: string;
137
+ options: string[];
138
+ allowMultiple?: boolean;
139
+ showResults?: boolean;
140
+ closesAt?: string;
141
+ }
142
+ /** QR code styling options. */
143
+ export interface QRCodeStyle {
144
+ /** Foreground color. */
145
+ foregroundColor?: string;
146
+ /** Background color. */
147
+ backgroundColor?: string;
148
+ /** Corner square style. */
149
+ cornerSquareStyle?: 'square' | 'dot' | 'rounded';
150
+ /** Corner dot style. */
151
+ cornerDotStyle?: 'square' | 'dot';
152
+ /** Dot style for data modules. */
153
+ dotStyle?: 'square' | 'dots' | 'rounded' | 'classy' | 'classy-rounded';
154
+ /** Logo/image to embed in center. */
155
+ logo?: {
156
+ src: string;
157
+ size?: number;
158
+ margin?: number;
159
+ borderRadius?: number;
160
+ };
161
+ /** Gradient for foreground. */
162
+ gradient?: {
163
+ type: 'linear' | 'radial';
164
+ colors: string[];
165
+ rotation?: number;
166
+ };
167
+ /** Border/frame styling. */
168
+ frame?: {
169
+ style: 'none' | 'simple' | 'rounded' | 'banner';
170
+ color?: string;
171
+ text?: string;
172
+ textColor?: string;
173
+ fontSize?: number;
174
+ };
175
+ }
176
+ /** QR code slide configuration. */
177
+ export interface QRCodeSlideConfig {
178
+ /** Slide ID. */
179
+ id: string;
180
+ /** Slide title. */
181
+ title: string;
182
+ /** Subtitle. */
183
+ subtitle?: string;
184
+ /** QR codes on this slide. */
185
+ qrCodes: QRCodeConfig[];
186
+ /** Layout mode. */
187
+ layout: 'single' | 'side-by-side' | 'grid';
188
+ /** Call-to-action text. */
189
+ callToAction?: string;
190
+ /** Instructions for scanning. */
191
+ instructions?: string;
192
+ /** Background styling. */
193
+ background?: {
194
+ color?: string;
195
+ gradient?: {
196
+ colors: string[];
197
+ direction?: string;
198
+ };
199
+ image?: string;
200
+ };
201
+ /** Show QR code labels. */
202
+ showLabels?: boolean;
203
+ /** Animate QR codes on enter. */
204
+ animate?: boolean;
205
+ }
206
+ /** Generated QR code result. */
207
+ export interface GeneratedQRCode {
208
+ id: string;
209
+ dataUrl: string;
210
+ rawData: string;
211
+ svgString?: string;
212
+ size: number;
213
+ config: QRCodeConfig;
214
+ }
215
+ /** QR code tracking data. */
216
+ export interface QRCodeScanEvent {
217
+ qrCodeId: string;
218
+ scannedAt: string;
219
+ userAgent?: string;
220
+ ipAddress?: string;
221
+ location?: {
222
+ country?: string;
223
+ city?: string;
224
+ };
225
+ referrer?: string;
226
+ }
227
+ /** QR code analytics. */
228
+ export interface QRCodeAnalytics {
229
+ qrCodeId: string;
230
+ totalScans: number;
231
+ uniqueScans: number;
232
+ scansByDate: Array<{
233
+ date: string;
234
+ count: number;
235
+ }>;
236
+ scansByLocation: Array<{
237
+ location: string;
238
+ count: number;
239
+ }>;
240
+ scansByDevice: Array<{
241
+ device: string;
242
+ count: number;
243
+ }>;
244
+ lastScanAt?: string;
245
+ }
246
+ /**
247
+ * Encode content to QR code data string.
248
+ */
249
+ export declare function encodeQRContent(config: QRCodeConfig): string;
250
+ /** Generated QR code slide. */
251
+ export interface QRCodeSlide {
252
+ id: string;
253
+ type: 'qrcode';
254
+ title: string;
255
+ subtitle?: string;
256
+ config: QRCodeSlideConfig;
257
+ qrCodes: GeneratedQRCode[];
258
+ }
259
+ /**
260
+ * Create a QR code slide.
261
+ */
262
+ export declare function createQRCodeSlide(config: QRCodeSlideConfig): QRCodeSlide;
263
+ /**
264
+ * Create a presentation link QR slide.
265
+ */
266
+ export declare function createPresentationLinkSlide(presentationId: string, options?: {
267
+ title?: string;
268
+ accessCode?: string;
269
+ expiresIn?: number;
270
+ }): QRCodeSlideConfig;
271
+ /**
272
+ * Create a feedback QR slide.
273
+ */
274
+ export declare function createFeedbackSlide(presentationId: string, questions?: FeedbackQuestion[]): QRCodeSlideConfig;
275
+ /**
276
+ * Create a poll QR slide.
277
+ */
278
+ export declare function createPollSlide(question: string, options: string[], settings?: {
279
+ allowMultiple?: boolean;
280
+ showResults?: boolean;
281
+ closesIn?: number;
282
+ }): QRCodeSlideConfig;
283
+ /**
284
+ * Create a contact info QR slide.
285
+ */
286
+ export declare function createContactSlide(contact: Omit<VCardContent, 'type'>): QRCodeSlideConfig;
287
+ /**
288
+ * Create a WiFi QR slide.
289
+ */
290
+ export declare function createWiFiSlide(ssid: string, password: string, encryption?: 'WPA' | 'WEP' | 'nopass'): QRCodeSlideConfig;
291
+ /**
292
+ * Create a multi-QR slide with multiple codes.
293
+ */
294
+ export declare function createMultiQRSlide(qrCodes: Array<{
295
+ label: string;
296
+ url: string;
297
+ color?: string;
298
+ }>): QRCodeSlideConfig;
299
+ declare const _default: {
300
+ encodeQRContent: typeof encodeQRContent;
301
+ createQRCodeSlide: typeof createQRCodeSlide;
302
+ createPresentationLinkSlide: typeof createPresentationLinkSlide;
303
+ createFeedbackSlide: typeof createFeedbackSlide;
304
+ createPollSlide: typeof createPollSlide;
305
+ createContactSlide: typeof createContactSlide;
306
+ createWiFiSlide: typeof createWiFiSlide;
307
+ createMultiQRSlide: typeof createMultiQRSlide;
308
+ };
309
+ export default _default;
310
+ //# sourceMappingURL=qrCodeSlide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qrCodeSlide.d.ts","sourceRoot":"","sources":["../../src/core/qrCodeSlide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,6BAA6B;AAC7B,MAAM,MAAM,aAAa,GACnB,KAAK,GACL,MAAM,GACN,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,GACN,KAAK,GACL,UAAU,GACV,mBAAmB,GACnB,eAAe,GACf,MAAM,CAAC;AAEb,kCAAkC;AAClC,MAAM,WAAW,YAAY;IACzB,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;IAC7B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,eAAe,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACxC,8CAA8C;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uCAAuC;AACvC,MAAM,MAAM,aAAa,GACnB,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,GACV,eAAe,GACf,uBAAuB,GACvB,mBAAmB,GACnB,aAAa,CAAC;AAEpB,mBAAmB;AACnB,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,mBAAmB;AACnB,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,yBAAyB;AACzB,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACjD,wBAAwB;IACxB,cAAc,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IACvE,qCAAqC;IACrC,IAAI,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,+BAA+B;IAC/B,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,4BAA4B;IAC5B,KAAK,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,mBAAmB;IACnB,MAAM,EAAE,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;IAC3C,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,UAAU,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACpD,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;CACxB;AAED,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4C5D;AAyFD,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAgCxE;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,iBAAiB,CAoCnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAC/B,iBAAiB,CAmDnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,CAAC,EAAE;IACP,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GACF,iBAAiB,CAqCnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,iBAAiB,CA+BzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,KAAK,GAAG,KAAK,GAAG,QAAgB,GAC7C,iBAAiB,CA4BnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,GACH,iBAAiB,CAoBnB;;;;;;;;;;;AAED,wBASE"}
@@ -0,0 +1,196 @@
1
+ import { DataSource } from './liveDataSlides';
2
+
3
+ /** Supported query languages. */
4
+ export type QueryLanguage = 'sql' | 'odata' | 'graphql' | 'kql' | 'dax';
5
+ /** Query parameter definition. */
6
+ export interface QueryParameter {
7
+ name: string;
8
+ label: string;
9
+ type: 'string' | 'number' | 'date' | 'datetime' | 'boolean' | 'select';
10
+ defaultValue?: unknown;
11
+ required?: boolean;
12
+ placeholder?: string;
13
+ options?: Array<{
14
+ value: unknown;
15
+ label: string;
16
+ }>;
17
+ validation?: {
18
+ min?: number;
19
+ max?: number;
20
+ pattern?: string;
21
+ message?: string;
22
+ };
23
+ }
24
+ /** Query execution result. */
25
+ export interface QueryResult {
26
+ success: boolean;
27
+ columns: Array<{
28
+ name: string;
29
+ type: 'string' | 'number' | 'date' | 'boolean' | 'object' | 'array';
30
+ }>;
31
+ data: Record<string, unknown>[];
32
+ rowCount: number;
33
+ executionTimeMs: number;
34
+ error?: string;
35
+ warnings?: string[];
36
+ metadata?: Record<string, unknown>;
37
+ }
38
+ /** Query history entry. */
39
+ export interface QueryHistoryEntry {
40
+ id: string;
41
+ query: string;
42
+ language: QueryLanguage;
43
+ parameters: Record<string, unknown>;
44
+ executedAt: string;
45
+ executionTimeMs: number;
46
+ rowCount: number;
47
+ success: boolean;
48
+ error?: string;
49
+ }
50
+ /** Saved query / favorite. */
51
+ export interface SavedQuery {
52
+ id: string;
53
+ name: string;
54
+ description?: string;
55
+ query: string;
56
+ language: QueryLanguage;
57
+ parameters: QueryParameter[];
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ tags?: string[];
61
+ isFavorite?: boolean;
62
+ }
63
+ /** Result visualization mode. */
64
+ export type ResultVisualizationMode = 'table' | 'bar-chart' | 'line-chart' | 'pie-chart' | 'area-chart' | 'metrics' | 'json';
65
+ /** Visualization configuration. */
66
+ export interface ResultVisualizationConfig {
67
+ mode: ResultVisualizationMode;
68
+ tableConfig?: {
69
+ pageSize?: number;
70
+ sortable?: boolean;
71
+ filterable?: boolean;
72
+ showRowNumbers?: boolean;
73
+ };
74
+ chartConfig?: {
75
+ xAxis?: string;
76
+ yAxis?: string | string[];
77
+ seriesField?: string;
78
+ colorScheme?: string[];
79
+ showLegend?: boolean;
80
+ showGrid?: boolean;
81
+ title?: string;
82
+ };
83
+ metricsConfig?: {
84
+ columns: Array<{
85
+ field: string;
86
+ label: string;
87
+ aggregation: 'sum' | 'avg' | 'min' | 'max' | 'count' | 'first' | 'last';
88
+ format?: 'number' | 'currency' | 'percent';
89
+ precision?: number;
90
+ }>;
91
+ };
92
+ }
93
+ /** Query slide configuration. */
94
+ export interface QuerySlideConfig {
95
+ id: string;
96
+ title: string;
97
+ subtitle?: string;
98
+ /** Query language. */
99
+ language: QueryLanguage;
100
+ /** The query text. */
101
+ query: string;
102
+ /** Query parameters. */
103
+ parameters?: QueryParameter[];
104
+ /** Data source connection. */
105
+ dataSource: DataSource;
106
+ /** Visualization settings. */
107
+ visualization: ResultVisualizationConfig;
108
+ /** Auto-execute on slide enter. */
109
+ autoExecute?: boolean;
110
+ /** Show query editor in presentation mode. */
111
+ showQueryEditor?: boolean;
112
+ /** Allow editing query during presentation. */
113
+ allowQueryEdit?: boolean;
114
+ /** Show execution stats. */
115
+ showExecutionStats?: boolean;
116
+ /** Cache results duration (seconds). */
117
+ cacheDuration?: number;
118
+ /** Query description for audience. */
119
+ description?: string;
120
+ /** Slide styling. */
121
+ style?: QuerySlideStyle;
122
+ }
123
+ /** Query slide styling. */
124
+ export interface QuerySlideStyle {
125
+ editorTheme?: 'light' | 'dark' | 'monokai' | 'github';
126
+ editorFontSize?: number;
127
+ resultBackground?: string;
128
+ accentColor?: string;
129
+ borderRadius?: number;
130
+ }
131
+ /** Generated Query Slide. */
132
+ export interface QuerySlide {
133
+ id: string;
134
+ type: 'query';
135
+ title: string;
136
+ subtitle?: string;
137
+ config: QuerySlideConfig;
138
+ state: QuerySlideState;
139
+ }
140
+ /** Runtime state of Query Slide. */
141
+ export interface QuerySlideState {
142
+ currentQuery: string;
143
+ currentParameters: Record<string, unknown>;
144
+ result: QueryResult | null;
145
+ isExecuting: boolean;
146
+ lastExecutedAt: string | null;
147
+ error: string | null;
148
+ visualizationMode: ResultVisualizationMode;
149
+ history: QueryHistoryEntry[];
150
+ }
151
+ /**
152
+ * Create a Query Slide.
153
+ */
154
+ export declare function createQuerySlide(config: QuerySlideConfig): QuerySlide;
155
+ /**
156
+ * Parse query to extract parameter placeholders.
157
+ */
158
+ export declare function extractQueryParameters(query: string, language: QueryLanguage): string[];
159
+ /**
160
+ * Substitute parameters into query.
161
+ */
162
+ export declare function substituteParameters(query: string, language: QueryLanguage, parameters: Record<string, unknown>): string;
163
+ /**
164
+ * Validate query parameters.
165
+ */
166
+ export declare function validateParameters(parameters: QueryParameter[], values: Record<string, unknown>): {
167
+ valid: boolean;
168
+ errors: Record<string, string>;
169
+ };
170
+ /**
171
+ * Auto-detect best visualization mode based on result data.
172
+ */
173
+ export declare function detectBestVisualization(result: QueryResult): ResultVisualizationMode;
174
+ /**
175
+ * Generate chart config from query result.
176
+ */
177
+ export declare function generateChartConfig(result: QueryResult, mode: ResultVisualizationMode): ResultVisualizationConfig['chartConfig'];
178
+ /** SQL sales summary query template. */
179
+ export declare function createSalesQuerySlide(): QuerySlideConfig;
180
+ /** OData product catalog query template. */
181
+ export declare function createODataQuerySlide(): QuerySlideConfig;
182
+ /** KQL Azure Monitor query template. */
183
+ export declare function createKQLQuerySlide(): QuerySlideConfig;
184
+ declare const _default: {
185
+ createQuerySlide: typeof createQuerySlide;
186
+ extractQueryParameters: typeof extractQueryParameters;
187
+ substituteParameters: typeof substituteParameters;
188
+ validateParameters: typeof validateParameters;
189
+ detectBestVisualization: typeof detectBestVisualization;
190
+ generateChartConfig: typeof generateChartConfig;
191
+ createSalesQuerySlide: typeof createSalesQuerySlide;
192
+ createODataQuerySlide: typeof createODataQuerySlide;
193
+ createKQLQuerySlide: typeof createKQLQuerySlide;
194
+ };
195
+ export default _default;
196
+ //# sourceMappingURL=querySlide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"querySlide.d.ts","sourceRoot":"","sources":["../../src/core/querySlide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface RecordingConfig {
4
+ video: VideoConfig;
5
+ audio: AudioConfig;
6
+ webcam: WebcamConfig;
7
+ output: OutputConfig;
8
+ presentation: PresentationRecordingConfig;
9
+ }
10
+ export interface VideoConfig {
11
+ width: number;
12
+ height: number;
13
+ frameRate: number;
14
+ videoBitsPerSecond?: number;
15
+ codec?: string;
16
+ }
17
+ export interface AudioConfig {
18
+ enabled: boolean;
19
+ sampleRate?: number;
20
+ audioBitsPerSecond?: number;
21
+ echoCancellation?: boolean;
22
+ noiseSuppression?: boolean;
23
+ autoGainControl?: boolean;
24
+ channelCount?: number;
25
+ }
26
+ export interface WebcamConfig {
27
+ enabled: boolean;
28
+ deviceId?: string;
29
+ position: WebcamPosition;
30
+ size: WebcamSize;
31
+ shape: 'circle' | 'rectangle' | 'rounded';
32
+ borderWidth?: number;
33
+ borderColor?: string;
34
+ shadow?: boolean;
35
+ mirror?: boolean;
36
+ greenScreen?: {
37
+ enabled: boolean;
38
+ color?: string;
39
+ threshold?: number;
40
+ };
41
+ }
42
+ export type WebcamPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'custom';
43
+ export type WebcamSize = 'small' | 'medium' | 'large' | {
44
+ width: number;
45
+ height: number;
46
+ };
47
+ export interface OutputConfig {
48
+ format: 'webm' | 'mp4';
49
+ filename?: string;
50
+ quality: 'low' | 'medium' | 'high' | 'ultra';
51
+ includeTimestamps?: boolean;
52
+ }
53
+ export interface PresentationRecordingConfig {
54
+ slideChanges: boolean;
55
+ animations: boolean;
56
+ transitions: boolean;
57
+ laserPointer: boolean;
58
+ cursorVisible: boolean;
59
+ annotations: boolean;
60
+ }
61
+ export type RecordingStatus = 'idle' | 'requesting-permissions' | 'ready' | 'countdown' | 'recording' | 'paused' | 'stopping' | 'processing' | 'complete' | 'error';
62
+ export interface RecordingState {
63
+ status: RecordingStatus;
64
+ error?: string;
65
+ duration: number;
66
+ currentSlide: number;
67
+ slideTimestamps: SlideTimestamp[];
68
+ blob?: Blob;
69
+ url?: string;
70
+ }
71
+ export interface SlideTimestamp {
72
+ slideIndex: number;
73
+ time: number;
74
+ title?: string;
75
+ }
76
+ export interface MediaDevice {
77
+ deviceId: string;
78
+ label: string;
79
+ kind: 'videoinput' | 'audioinput' | 'audiooutput';
80
+ }
81
+ export interface AvailableDevices {
82
+ cameras: MediaDevice[];
83
+ microphones: MediaDevice[];
84
+ speakers: MediaDevice[];
85
+ }
86
+ export interface RecordingContextValue {
87
+ state: RecordingState;
88
+ config: RecordingConfig;
89
+ devices: AvailableDevices;
90
+ setConfig: (config: Partial<RecordingConfig>) => void;
91
+ setWebcamConfig: (config: Partial<WebcamConfig>) => void;
92
+ setAudioConfig: (config: Partial<AudioConfig>) => void;
93
+ requestPermissions: () => Promise<boolean>;
94
+ startRecording: (countdownSeconds?: number) => Promise<void>;
95
+ pauseRecording: () => void;
96
+ resumeRecording: () => void;
97
+ stopRecording: () => Promise<Blob>;
98
+ cancelRecording: () => void;
99
+ markSlideChange: (slideIndex: number, title?: string) => void;
100
+ webcamStream: MediaStream | null;
101
+ downloadRecording: (filename?: string) => void;
102
+ exportTimestamps: () => SlideTimestamp[];
103
+ }
104
+ export interface RecordingProviderProps {
105
+ children: React.ReactNode;
106
+ slideContainer?: HTMLElement | null;
107
+ initialConfig?: Partial<RecordingConfig>;
108
+ }
109
+ export declare function RecordingProvider({ children, slideContainer, initialConfig, }: RecordingProviderProps): React.ReactElement;
110
+ export declare function useRecording(): RecordingContextValue;
111
+ export declare function useRecordingStatus(): RecordingStatus;
112
+ export declare function useRecordingDuration(): number;
113
+ export interface WebcamPreviewProps {
114
+ className?: string;
115
+ style?: React.CSSProperties;
116
+ }
117
+ export declare function WebcamPreview({ className, style, }: WebcamPreviewProps): React.ReactElement | null;
118
+ export interface RecordingControlsProps {
119
+ className?: string;
120
+ style?: React.CSSProperties;
121
+ onComplete?: (blob: Blob) => void;
122
+ }
123
+ export declare function RecordingControls({ className, style, onComplete, }: RecordingControlsProps): React.ReactElement;
124
+ export interface RecordingIndicatorProps {
125
+ className?: string;
126
+ style?: React.CSSProperties;
127
+ }
128
+ export declare function RecordingIndicator({ className, style, }: RecordingIndicatorProps): React.ReactElement | null;
129
+ declare const _default: {
130
+ RecordingProvider: typeof RecordingProvider;
131
+ useRecording: typeof useRecording;
132
+ useRecordingStatus: typeof useRecordingStatus;
133
+ useRecordingDuration: typeof useRecordingDuration;
134
+ WebcamPreview: typeof WebcamPreview;
135
+ RecordingControls: typeof RecordingControls;
136
+ RecordingIndicator: typeof RecordingIndicator;
137
+ };
138
+ export default _default;
139
+ //# sourceMappingURL=recordingMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordingMode.d.ts","sourceRoot":"","sources":["../../src/core/recordingMode.ts"],"names":[],"mappings":"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"}