@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,21 @@
1
+ import { default as React } from 'react';
2
+ import { CountdownContent, ButtonAction } from '../../types/presentationTypes';
3
+
4
+ export interface InteractiveCountdownProps {
5
+ content: CountdownContent;
6
+ /** Callback when countdown completes */
7
+ onComplete?: (action?: ButtonAction) => void;
8
+ /** Whether countdown is paused */
9
+ paused?: boolean;
10
+ /** Additional class name */
11
+ className?: string;
12
+ /** Theme from presentation */
13
+ theme?: {
14
+ primaryColor?: string;
15
+ accentColor?: string;
16
+ fontFamily?: string;
17
+ };
18
+ }
19
+ export declare const InteractiveCountdown: React.FC<InteractiveCountdownProps>;
20
+ export default InteractiveCountdown;
21
+ //# sourceMappingURL=InteractiveCountdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveCountdown.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/InteractiveCountdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGpF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,wCAAwC;IACxC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAwOpE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { PollContent } from '../../types/presentationTypes';
3
+
4
+ export interface InteractivePollProps {
5
+ content: PollContent;
6
+ /** Callback when a vote is submitted */
7
+ onVote?: (optionIds: string[]) => void;
8
+ /** Callback to update results */
9
+ onResultsUpdate?: (results: Record<string, number>) => void;
10
+ /** Whether voting is closed */
11
+ votingClosed?: boolean;
12
+ /** User's previous vote (if any) */
13
+ userVote?: string[];
14
+ /** Additional class name */
15
+ className?: string;
16
+ /** Theme from presentation */
17
+ theme?: {
18
+ primaryColor?: string;
19
+ accentColor?: string;
20
+ fontFamily?: string;
21
+ };
22
+ }
23
+ export declare const InteractivePoll: React.FC<InteractivePollProps>;
24
+ export default InteractivePoll;
25
+ //# sourceMappingURL=InteractivePoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractivePoll.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/InteractivePoll.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,+BAA+B,CAAC;AAG7E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,iCAAiC;IACjC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5D,+BAA+B;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmK1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { default as React } from 'react';
2
+ import { QnAContent, QnAQuestion } from '../../types/presentationTypes';
3
+
4
+ export interface InteractiveQnAProps {
5
+ content: QnAContent;
6
+ /** Current user name (for non-anonymous questions) */
7
+ userName?: string;
8
+ /** Callback when a question is submitted */
9
+ onSubmitQuestion?: (question: Omit<QnAQuestion, 'id' | 'timestamp' | 'upvotes'>) => void;
10
+ /** Callback when a question is upvoted */
11
+ onUpvote?: (questionId: string) => void;
12
+ /** Callback when a question is marked as answered */
13
+ onMarkAnswered?: (questionId: string) => void;
14
+ /** Whether submission is allowed */
15
+ submissionClosed?: boolean;
16
+ /** Whether user is moderator */
17
+ isModerator?: boolean;
18
+ /** Questions the user has already upvoted */
19
+ upvotedQuestions?: string[];
20
+ /** Additional class name */
21
+ className?: string;
22
+ /** Theme from presentation */
23
+ theme?: {
24
+ primaryColor?: string;
25
+ accentColor?: string;
26
+ fontFamily?: string;
27
+ };
28
+ }
29
+ export declare const InteractiveQnA: React.FC<InteractiveQnAProps>;
30
+ export default InteractiveQnA;
31
+ //# sourceMappingURL=InteractiveQnA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveQnA.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/InteractiveQnA.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG7E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC;IACzF,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoOxD,CAAC;AAiBF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { QuizContent } from '../../types/presentationTypes';
3
+
4
+ export interface InteractiveQuizProps {
5
+ content: QuizContent;
6
+ /** Callback when answer is submitted */
7
+ onSubmit?: (answerIds: string[], isCorrect: boolean, points: number) => void;
8
+ /** Whether quiz is locked (time expired or already submitted) */
9
+ locked?: boolean;
10
+ /** Additional class name */
11
+ className?: string;
12
+ /** Theme from presentation */
13
+ theme?: {
14
+ primaryColor?: string;
15
+ accentColor?: string;
16
+ fontFamily?: string;
17
+ };
18
+ }
19
+ export declare const InteractiveQuiz: React.FC<InteractiveQuizProps>;
20
+ export default InteractiveQuiz;
21
+ //# sourceMappingURL=InteractiveQuiz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveQuiz.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/InteractiveQuiz.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,+BAA+B,CAAC;AAG7E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsM1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Interactive slide elements for audience engagement
3
+ *
4
+ * Provides components for:
5
+ * - Buttons with actions (navigation, media control, custom events)
6
+ * - Live polls with real-time results
7
+ * - Quizzes with scoring and feedback
8
+ * - Countdown timers
9
+ * - Q&A submission widgets
10
+ */
11
+ export { InteractiveButton } from './InteractiveButton';
12
+ export { InteractivePoll } from './InteractivePoll';
13
+ export { InteractiveQuiz } from './InteractiveQuiz';
14
+ export { InteractiveCountdown } from './InteractiveCountdown';
15
+ export { InteractiveQnA } from './InteractiveQnA';
16
+ export type { ButtonContent, ButtonAction, PollContent, PollOption, QuizContent, QuizAnswer, CountdownContent, QnAContent, QnAQuestion, } from '../../types/presentationTypes';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,GACZ,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { NicePresentationDocument, PresentationSlide, SlideElement, ElementPosition, PresentationTheme, SlideLayout } from '../types/presentationTypes';
2
+
3
+ export declare class PresentationModel {
4
+ private doc;
5
+ private undoStack;
6
+ private redoStack;
7
+ private listeners;
8
+ private maxHistory;
9
+ constructor(doc?: NicePresentationDocument);
10
+ static createEmpty(title?: string): NicePresentationDocument;
11
+ subscribe(fn: () => void): () => void;
12
+ private notify;
13
+ private pushUndo;
14
+ undo(): void;
15
+ redo(): void;
16
+ canUndo(): boolean;
17
+ canRedo(): boolean;
18
+ getDocument(): Readonly<NicePresentationDocument>;
19
+ getSlides(): readonly PresentationSlide[];
20
+ getSlide(id: string): PresentationSlide | undefined;
21
+ getTheme(): PresentationTheme;
22
+ loadDocument(doc: NicePresentationDocument): void;
23
+ addSlide(afterIndex?: number, layout?: SlideLayout): PresentationSlide;
24
+ removeSlide(id: string): void;
25
+ moveSlide(id: string, newIndex: number): void;
26
+ duplicateSlide(id: string): PresentationSlide | null;
27
+ updateSlide(id: string, patch: Partial<Omit<PresentationSlide, 'id' | 'elements'>>): void;
28
+ addElement(slideId: string, element: Omit<SlideElement, 'id'>): SlideElement | null;
29
+ updateElement(slideId: string, elementId: string, patch: Partial<Omit<SlideElement, 'id'>>): void;
30
+ removeElement(slideId: string, elementId: string): void;
31
+ moveElement(slideId: string, elementId: string, position: ElementPosition): void;
32
+ setTheme(theme: PresentationTheme): void;
33
+ }
34
+ //# sourceMappingURL=PresentationModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresentationModel.d.ts","sourceRoot":"","sources":["../../src/core/PresentationModel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EAKZ,eAAe,EACf,iBAAiB,EACjB,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAWpC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAO;gBAEb,GAAG,CAAC,EAAE,wBAAwB;IAM1C,MAAM,CAAC,WAAW,CAAC,KAAK,SAA0B,GAAG,wBAAwB;IA2D7E,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKrC,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,QAAQ;IAMhB,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAQZ,OAAO,IAAI,OAAO;IAClB,OAAO,IAAI,OAAO;IAIlB,WAAW,IAAI,QAAQ,CAAC,wBAAwB,CAAC;IACjD,SAAS,IAAI,SAAS,iBAAiB,EAAE;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IACnD,QAAQ,IAAI,iBAAiB;IAE7B,YAAY,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAQjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,WAA4B,GAAG,iBAAiB;IAetF,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM7B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS7C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAcpD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI;IAUzF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,YAAY,GAAG,IAAI;IAUnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAUjG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQvD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAMhF,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAKzC"}
@@ -0,0 +1,53 @@
1
+ import { NicePresentationDocument, PresentationTheme } from '../types/presentationTypes';
2
+
3
+ export interface BrandKit {
4
+ /** Unique identifier */
5
+ id: string;
6
+ /** Brand / company name */
7
+ name: string;
8
+ /** Color palette */
9
+ colors: BrandColors;
10
+ /** Font configuration */
11
+ fonts: BrandFonts;
12
+ /** Logo configuration */
13
+ logo?: BrandLogo;
14
+ }
15
+ export interface BrandColors {
16
+ primary: string;
17
+ secondary: string;
18
+ accent: string;
19
+ background: string;
20
+ text: string;
21
+ heading: string;
22
+ /** Additional palette colors */
23
+ palette?: string[];
24
+ }
25
+ export interface BrandFonts {
26
+ heading: string;
27
+ body: string;
28
+ code?: string;
29
+ }
30
+ export interface BrandLogo {
31
+ url: string;
32
+ width?: number;
33
+ height?: number;
34
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
35
+ }
36
+ /**
37
+ * Convert a BrandKit to a PresentationTheme.
38
+ */
39
+ export declare function brandKitToTheme(kit: BrandKit): PresentationTheme;
40
+ /**
41
+ * Apply a brand kit to a presentation document.
42
+ * Replaces the theme and optionally inserts the logo on each slide.
43
+ * Returns a new document (does not mutate the original).
44
+ */
45
+ export declare function applyBrandKit(doc: NicePresentationDocument, kit: BrandKit): NicePresentationDocument;
46
+ /**
47
+ * Remove brand kit logos from a presentation document.
48
+ */
49
+ export declare function removeBrandKit(doc: NicePresentationDocument, kitId: string): NicePresentationDocument;
50
+ export declare const BRAND_KIT_NICE2DEV: BrandKit;
51
+ export declare const BRAND_KIT_CORPORATE: BrandKit;
52
+ export declare const BRAND_KIT_STARTUP: BrandKit;
53
+ //# sourceMappingURL=brandKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandKit.d.ts","sourceRoot":"","sources":["../../src/core/brandKit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,yBAAyB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;CACtE;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,iBAAiB,CAchE;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,wBAAwB,EAC7B,GAAG,EAAE,QAAQ,GACZ,wBAAwB,CAyC1B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,MAAM,GACZ,wBAAwB,CAc1B;AAsBD,eAAO,MAAM,kBAAkB,EAAE,QAiBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAiBjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAiB/B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ChartContent } from '../types/presentationTypes';
2
+
3
+ /** Generate SVG markup for a chart element. */
4
+ export declare function renderChartSvg(chart: ChartContent, width: number, height: number): string;
5
+ //# sourceMappingURL=chartRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartRenderer.d.ts","sourceRoot":"","sources":["../../src/core/chartRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,4BAA4B,CAAC;AAe3F,+CAA+C;AAC/C,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAgBR"}
@@ -0,0 +1,115 @@
1
+ import { TransitionEffect } from '../types/presentationTypes';
2
+
3
+ export interface CustomTransitionConfig {
4
+ /** Unique identifier for the transition */
5
+ id: string;
6
+ /** Display name */
7
+ name: string;
8
+ /** Description */
9
+ description?: string;
10
+ /** CSS for outgoing slide */
11
+ outgoingStyles: TransitionKeyframes;
12
+ /** CSS for incoming slide */
13
+ incomingStyles: TransitionKeyframes;
14
+ /** Default duration in ms */
15
+ defaultDuration: number;
16
+ /** Default easing function */
17
+ defaultEasing: string;
18
+ /** Whether this transition supports direction */
19
+ supportsDirection?: boolean;
20
+ /** Preview thumbnail URL */
21
+ previewUrl?: string;
22
+ /** Category for grouping */
23
+ category?: TransitionCategory;
24
+ }
25
+ export type TransitionCategory = 'basic' | 'slide' | 'zoom' | 'rotate' | '3d' | 'blur' | 'creative' | 'custom';
26
+ export interface TransitionKeyframes {
27
+ /** Start state (0%) */
28
+ from: React.CSSProperties;
29
+ /** End state (100%) */
30
+ to: React.CSSProperties;
31
+ /** Optional intermediate keyframes */
32
+ keyframes?: Array<{
33
+ offset: number;
34
+ style: React.CSSProperties;
35
+ }>;
36
+ }
37
+ export interface TransitionState {
38
+ /** Progress of transition (0-1) */
39
+ progress: number;
40
+ /** Current outgoing slide styles */
41
+ outgoingStyle: React.CSSProperties;
42
+ /** Current incoming slide styles */
43
+ incomingStyle: React.CSSProperties;
44
+ /** Whether transition is complete */
45
+ isComplete: boolean;
46
+ }
47
+ export interface TransitionRegistry {
48
+ /** Get a transition by ID */
49
+ get(id: string): CustomTransitionConfig | undefined;
50
+ /** Register a custom transition */
51
+ register(config: CustomTransitionConfig): void;
52
+ /** Remove a transition */
53
+ unregister(id: string): void;
54
+ /** Get all transitions */
55
+ getAll(): CustomTransitionConfig[];
56
+ /** Get transitions by category */
57
+ getByCategory(category: TransitionCategory): CustomTransitionConfig[];
58
+ }
59
+ export declare const TRANSITION_FADE: CustomTransitionConfig;
60
+ export declare const TRANSITION_SLIDE_LEFT: CustomTransitionConfig;
61
+ export declare const TRANSITION_SLIDE_RIGHT: CustomTransitionConfig;
62
+ export declare const TRANSITION_SLIDE_UP: CustomTransitionConfig;
63
+ export declare const TRANSITION_SLIDE_DOWN: CustomTransitionConfig;
64
+ export declare const TRANSITION_ZOOM_IN: CustomTransitionConfig;
65
+ export declare const TRANSITION_ZOOM_OUT: CustomTransitionConfig;
66
+ export declare const TRANSITION_FLIP_HORIZONTAL: CustomTransitionConfig;
67
+ export declare const TRANSITION_FLIP_VERTICAL: CustomTransitionConfig;
68
+ export declare const TRANSITION_CUBE_LEFT: CustomTransitionConfig;
69
+ export declare const TRANSITION_ROTATE_IN: CustomTransitionConfig;
70
+ export declare const TRANSITION_BLUR_FADE: CustomTransitionConfig;
71
+ export declare const TRANSITION_WIPE_LEFT: CustomTransitionConfig;
72
+ export declare const TRANSITION_WIPE_RIGHT: CustomTransitionConfig;
73
+ export declare const TRANSITION_CIRCLE_REVEAL: CustomTransitionConfig;
74
+ export declare const TRANSITION_GLITCH: CustomTransitionConfig;
75
+ export declare const TRANSITION_MORPH: CustomTransitionConfig;
76
+ export declare const BUILT_IN_TRANSITIONS: CustomTransitionConfig[];
77
+ /** Global transition registry */
78
+ export declare const transitionRegistry: TransitionRegistry;
79
+ /**
80
+ * Compute the current transition state at a given progress
81
+ */
82
+ export declare function computeCustomTransitionState(transitionId: string, progress: number): TransitionState;
83
+ /**
84
+ * Map a SlideTransition to a CustomTransitionConfig id
85
+ */
86
+ export declare function mapTransitionEffectToId(effect: TransitionEffect, direction?: string): string;
87
+ /**
88
+ * Apply easing function to progress
89
+ */
90
+ export declare function applyEasing(progress: number, easing: string): number;
91
+ /**
92
+ * Create a custom transition from CSS keyframes definition (like GSAP-style)
93
+ */
94
+ export declare function createCustomTransition(id: string, name: string, outgoing: {
95
+ from: React.CSSProperties;
96
+ to: React.CSSProperties;
97
+ }, incoming: {
98
+ from: React.CSSProperties;
99
+ to: React.CSSProperties;
100
+ }, options?: Partial<Omit<CustomTransitionConfig, 'id' | 'name' | 'outgoingStyles' | 'incomingStyles'>>): CustomTransitionConfig;
101
+ /**
102
+ * Generate CSS keyframes string for a transition (for use with Web Animations API)
103
+ */
104
+ export declare function transitionToKeyframes(config: CustomTransitionConfig, type: 'outgoing' | 'incoming'): Keyframe[];
105
+ declare const _default: {
106
+ transitionRegistry: TransitionRegistry;
107
+ computeCustomTransitionState: typeof computeCustomTransitionState;
108
+ mapTransitionEffectToId: typeof mapTransitionEffectToId;
109
+ applyEasing: typeof applyEasing;
110
+ createCustomTransition: typeof createCustomTransition;
111
+ transitionToKeyframes: typeof transitionToKeyframes;
112
+ BUILT_IN_TRANSITIONS: CustomTransitionConfig[];
113
+ };
114
+ export default _default;
115
+ //# sourceMappingURL=customTransitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransitions.d.ts","sourceRoot":"","sources":["../../src/core/customTransitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import { DataSource } from './liveDataSlides';
2
+
3
+ /** KPI visualization type. */
4
+ export type KPIWidgetType = 'number-tile' | 'gauge' | 'sparkline' | 'mini-bar' | 'mini-pie' | 'progress' | 'trend-indicator' | 'comparison' | 'bullet-chart' | 'traffic-light';
5
+ /** Trend direction. */
6
+ export type TrendDirection = 'up' | 'down' | 'flat' | 'unknown';
7
+ /** Threshold-based status. */
8
+ export type KPIStatus = 'good' | 'warning' | 'critical' | 'info' | 'neutral';
9
+ /** Color scheme for KPI. */
10
+ export interface KPIColorScheme {
11
+ good: string;
12
+ warning: string;
13
+ critical: string;
14
+ info: string;
15
+ neutral: string;
16
+ background: string;
17
+ text: string;
18
+ textMuted: string;
19
+ }
20
+ /** Default color scheme. */
21
+ export declare const DEFAULT_KPI_COLORS: KPIColorScheme;
22
+ /** Threshold definition. */
23
+ export interface KPIThreshold {
24
+ value: number;
25
+ status: KPIStatus;
26
+ label?: string;
27
+ }
28
+ /** A single KPI widget. */
29
+ export interface KPIWidget {
30
+ /** Unique widget ID. */
31
+ id: string;
32
+ /** Widget title. */
33
+ title: string;
34
+ /** Subtitle / description. */
35
+ subtitle?: string;
36
+ /** Widget type. */
37
+ type: KPIWidgetType;
38
+ /** Grid position: column start (1-based). */
39
+ column: number;
40
+ /** Grid position: row start (1-based). */
41
+ row: number;
42
+ /** Number of columns to span. */
43
+ colSpan?: number;
44
+ /** Number of rows to span. */
45
+ rowSpan?: number;
46
+ /** Data source binding. */
47
+ dataSource?: DataSourceBinding;
48
+ /** Static value (if no data source). */
49
+ value?: number | string;
50
+ /** Previous value for comparison. */
51
+ previousValue?: number;
52
+ /** Target value for progress / bullet chart. */
53
+ targetValue?: number;
54
+ /** Unit label (%, $, etc.). */
55
+ unit?: string;
56
+ /** Decimal precision. */
57
+ precision?: number;
58
+ /** Thresholds for color coding. */
59
+ thresholds?: KPIThreshold[];
60
+ /** Icon name. */
61
+ icon?: string;
62
+ /** Sparkline data points. */
63
+ sparklineData?: number[];
64
+ /** Mini chart data. */
65
+ chartData?: Array<{
66
+ label: string;
67
+ value: number;
68
+ }>;
69
+ /** Gauge configuration. */
70
+ gaugeConfig?: GaugeConfig;
71
+ /** Click action: drill down URL or slide ID. */
72
+ drillDownTarget?: string;
73
+ /** Custom colors. */
74
+ colors?: Partial<KPIColorScheme>;
75
+ /** Animation settings. */
76
+ animation?: KPIAnimation;
77
+ }
78
+ /** Data source binding for a widget. */
79
+ export interface DataSourceBinding {
80
+ /** Data source ID from slide context. */
81
+ sourceId: string;
82
+ /** JSONPath or property path to extract value. */
83
+ valuePath: string;
84
+ /** Path to previous value. */
85
+ previousValuePath?: string;
86
+ /** Path to sparkline data array. */
87
+ sparklineDataPath?: string;
88
+ /** Path to chart data array. */
89
+ chartDataPath?: string;
90
+ /** Refresh interval override. */
91
+ refreshInterval?: number;
92
+ }
93
+ /** Gauge widget configuration. */
94
+ export interface GaugeConfig {
95
+ /** Minimum value. */
96
+ min: number;
97
+ /** Maximum value. */
98
+ max: number;
99
+ /** Gauge style. */
100
+ style: 'semicircle' | 'full-circle' | 'linear' | 'meter';
101
+ /** Show needle. */
102
+ showNeedle?: boolean;
103
+ /** Show ticks. */
104
+ showTicks?: boolean;
105
+ /** Number of ticks. */
106
+ tickCount?: number;
107
+ /** Arc thickness. */
108
+ thickness?: number;
109
+ }
110
+ /** Animation configuration. */
111
+ export interface KPIAnimation {
112
+ /** Enable value count-up animation. */
113
+ countUp?: boolean;
114
+ /** Count-up duration in ms. */
115
+ countUpDuration?: number;
116
+ /** Pulse on threshold breach. */
117
+ pulseOnAlert?: boolean;
118
+ /** Entrance animation. */
119
+ entrance?: 'fadeIn' | 'slideUp' | 'scaleIn' | 'none';
120
+ /** Entrance delay in ms. */
121
+ entranceDelay?: number;
122
+ }
123
+ /** Dashboard slide configuration. */
124
+ export interface DashboardSlideConfig {
125
+ /** Slide ID. */
126
+ id: string;
127
+ /** Dashboard title. */
128
+ title: string;
129
+ /** Number of columns in grid. */
130
+ columns: number;
131
+ /** Number of rows in grid. */
132
+ rows: number;
133
+ /** Gap between widgets (px). */
134
+ gap?: number;
135
+ /** Padding inside slide. */
136
+ padding?: number;
137
+ /** All KPI widgets. */
138
+ widgets: KPIWidget[];
139
+ /** Data sources used by widgets. */
140
+ dataSources?: DataSource[];
141
+ /** Global refresh interval. */
142
+ refreshInterval?: number;
143
+ /** Color scheme. */
144
+ colorScheme?: Partial<KPIColorScheme>;
145
+ /** Background color. */
146
+ background?: string;
147
+ /** Show last updated timestamp. */
148
+ showLastUpdated?: boolean;
149
+ /** Auto-cycle through widgets (for TV mode). */
150
+ autoCycle?: boolean;
151
+ /** Auto-cycle interval in ms. */
152
+ autoCycleInterval?: number;
153
+ }
154
+ /**
155
+ * Generate dashboard slide from configuration.
156
+ */
157
+ export declare function createDashboardSlide(config: DashboardSlideConfig): DashboardSlide;
158
+ /** Extended dashboard slide with computed properties. */
159
+ export interface DashboardSlide {
160
+ id: string;
161
+ title: string;
162
+ type: 'dashboard';
163
+ layout: {
164
+ columns: number;
165
+ rows: number;
166
+ gap: number;
167
+ padding: number;
168
+ };
169
+ widgets: Array<KPIWidget & {
170
+ colSpan: number;
171
+ rowSpan: number;
172
+ }>;
173
+ dataSources: DataSource[];
174
+ refreshInterval: number;
175
+ colorScheme: KPIColorScheme;
176
+ background: string;
177
+ showLastUpdated: boolean;
178
+ autoCycle: boolean;
179
+ autoCycleInterval: number;
180
+ lastUpdated: string;
181
+ }
182
+ /**
183
+ * Calculate KPI status based on thresholds.
184
+ */
185
+ export declare function computeKPIStatus(value: number, thresholds: KPIThreshold[] | undefined, higherIsBetter?: boolean): KPIStatus;
186
+ /**
187
+ * Calculate trend direction.
188
+ */
189
+ export declare function computeTrend(current: number, previous: number | undefined): TrendDirection;
190
+ /**
191
+ * Calculate percentage change.
192
+ */
193
+ export declare function computePercentChange(current: number, previous: number | undefined): number | null;
194
+ /**
195
+ * Format KPI value for display.
196
+ */
197
+ export declare function formatKPIValue(value: number | string, options?: {
198
+ unit?: string;
199
+ precision?: number;
200
+ compact?: boolean;
201
+ locale?: string;
202
+ }): string;
203
+ /** Create a revenue KPI widget. */
204
+ export declare function createRevenueWidget(overrides?: Partial<KPIWidget>): KPIWidget;
205
+ /** Create a customer count widget. */
206
+ export declare function createCustomerCountWidget(overrides?: Partial<KPIWidget>): KPIWidget;
207
+ /** Create a gauge widget for percentage metrics. */
208
+ export declare function createPercentageGauge(overrides?: Partial<KPIWidget>): KPIWidget;
209
+ /** Create a sparkline trend widget. */
210
+ export declare function createSparklineTrend(overrides?: Partial<KPIWidget>): KPIWidget;
211
+ /** Create a traffic light status widget. */
212
+ export declare function createTrafficLight(overrides?: Partial<KPIWidget>): KPIWidget;
213
+ /** Create a comparison widget (actual vs target). */
214
+ export declare function createComparisonWidget(overrides?: Partial<KPIWidget>): KPIWidget;
215
+ /** Executive summary dashboard template. */
216
+ export declare function createExecutiveDashboard(): DashboardSlideConfig;
217
+ /** Operational metrics dashboard template. */
218
+ export declare function createOperationalDashboard(): DashboardSlideConfig;
219
+ declare const _default: {
220
+ createDashboardSlide: typeof createDashboardSlide;
221
+ createExecutiveDashboard: typeof createExecutiveDashboard;
222
+ createOperationalDashboard: typeof createOperationalDashboard;
223
+ computeKPIStatus: typeof computeKPIStatus;
224
+ computeTrend: typeof computeTrend;
225
+ computePercentChange: typeof computePercentChange;
226
+ formatKPIValue: typeof formatKPIValue;
227
+ };
228
+ export default _default;
229
+ //# sourceMappingURL=dashboardSlide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardSlide.d.ts","sourceRoot":"","sources":["../../src/core/dashboardSlide.ts"],"names":[],"mappings":"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"}