@nice2dev/ui-presentations 1.0.29 → 1.1.5

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 (48) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/__tests__/setup.d.ts +0 -1
  3. package/dist/collaborative/collaborativePresentation.d.ts +0 -1
  4. package/dist/components/NicePresentationEditor.d.ts +0 -1
  5. package/dist/components/NicePresentationPlayer.d.ts +0 -1
  6. package/dist/components/PresentationToolbar.d.ts +0 -1
  7. package/dist/components/SlideCanvas.d.ts +0 -1
  8. package/dist/components/SlidePropertyPanel.d.ts +0 -1
  9. package/dist/components/SlideThumbnailList.d.ts +0 -1
  10. package/dist/components/interactive/InteractiveButton.d.ts +0 -1
  11. package/dist/components/interactive/InteractiveCountdown.d.ts +0 -1
  12. package/dist/components/interactive/InteractivePoll.d.ts +0 -1
  13. package/dist/components/interactive/InteractiveQnA.d.ts +0 -1
  14. package/dist/components/interactive/InteractiveQuiz.d.ts +0 -1
  15. package/dist/core/PresentationModel.d.ts +0 -1
  16. package/dist/core/brandKit.d.ts +0 -1
  17. package/dist/core/chartRenderer.d.ts +0 -1
  18. package/dist/core/customTransitions.d.ts +0 -1
  19. package/dist/core/dashboardSlide.d.ts +0 -1
  20. package/dist/core/dataGridSlide.d.ts +0 -1
  21. package/dist/core/exportEngine.d.ts +0 -1
  22. package/dist/core/i18n.d.ts +0 -1
  23. package/dist/core/liveDataSlides.d.ts +0 -1
  24. package/dist/core/querySlide.d.ts +0 -1
  25. package/dist/core/recordingMode.d.ts +0 -1
  26. package/dist/core/serialization.d.ts +0 -1
  27. package/dist/core/slideAnimationEngine.d.ts +0 -1
  28. package/dist/core/slideLibrary.d.ts +0 -1
  29. package/dist/core/versionHistory.d.ts +0 -1
  30. package/dist/hooks/usePresentationEditor.d.ts +0 -1
  31. package/dist/index.cjs +1 -1
  32. package/dist/index.d.ts +0 -1
  33. package/dist/index.mjs +1 -1
  34. package/dist/puppetShow/gameEngineIntegration.d.ts +0 -1
  35. package/dist/puppetShow/puppetCharacter.d.ts +0 -1
  36. package/dist/puppetShow/puppetPlayer.d.ts +0 -1
  37. package/dist/puppetShow/puppetShowConverter.d.ts +0 -1
  38. package/dist/puppetShow/puppetStage.d.ts +0 -1
  39. package/dist/puppetShow/puppetTimeline.d.ts +0 -1
  40. package/dist/templates/ArchitectureOverviewTemplate.d.ts +0 -1
  41. package/dist/templates/IncidentReportTemplate.d.ts +0 -1
  42. package/dist/templates/InvestorDeckTemplate.d.ts +0 -1
  43. package/dist/templates/OnboardingTemplate.d.ts +0 -1
  44. package/dist/templates/ProductPitchTemplate.d.ts +0 -1
  45. package/dist/templates/QuarterlyReportTemplate.d.ts +0 -1
  46. package/dist/templates/SprintReviewTemplate.d.ts +0 -1
  47. package/dist/ui-presentations.css +1 -0
  48. package/package.json +14 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @nice2dev/ui-presentations — Changelog
2
2
 
3
+ ## 1.1.5
4
+
5
+ No changes in this release.
6
+
3
7
  ## 1.0.29
4
8
 
5
9
  ### Patch Changes
@@ -1,2 +1 @@
1
-
2
1
  //# sourceMappingURL=setup.d.ts.map
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument, PresentationSlide, SlideElement, PresentationTheme, PresentationMetadata } from '../types/presentationTypes';
2
-
3
2
  export interface YDoc {
4
3
  getMap<T>(name: string): YMap<T>;
5
4
  getArray<T>(name: string): YArray<T>;
@@ -1,7 +1,6 @@
1
1
  import { NiceComponentTutorial } from '@nice2dev/ui';
2
2
  import { default as React } from 'react';
3
3
  import { NicePresentationDocument } from '../types/presentationTypes';
4
-
5
4
  export interface NicePresentationEditorProps {
6
5
  /** Initial document (optional) */
7
6
  initialDocument?: NicePresentationDocument;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { NicePresentationDocument } from '../types/presentationTypes';
3
-
4
3
  export interface NicePresentationPlayerProps {
5
4
  /** The presentation document to play */
6
5
  document: NicePresentationDocument;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { SlideElementType, SlideLayout } from '../types/presentationTypes';
3
-
4
3
  export interface PresentationToolbarProps {
5
4
  onAddElement?: (type: SlideElementType) => void;
6
5
  onAddSlide?: (layout?: SlideLayout) => void;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { PresentationSlide as _PresentationSlide, PresentationTheme as _PresentationTheme, SlideSize as _SlideSize } from '../types/presentationTypes';
3
-
4
3
  export interface SlideCanvasProps {
5
4
  slide: _PresentationSlide;
6
5
  slideSize: _SlideSize;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { PresentationSlide as _PresentationSlide, SlideElement } from '../types/presentationTypes';
3
-
4
3
  export interface SlidePropertyPanelProps {
5
4
  slide?: _PresentationSlide | null;
6
5
  selectedElement?: SlideElement | null;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { PresentationSlide as _PresentationSlide, SlideSize as _SlideSize, PresentationTheme as _PresentationTheme } from '../types/presentationTypes';
3
-
4
3
  export interface SlideThumbnailListProps {
5
4
  slides: readonly _PresentationSlide[];
6
5
  slideSize: _SlideSize;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { ButtonContent, ButtonAction } from '../../types/presentationTypes';
3
-
4
3
  export interface InteractiveButtonProps {
5
4
  content: ButtonContent;
6
5
  /** Callback when button action is triggered */
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { CountdownContent, ButtonAction } from '../../types/presentationTypes';
3
-
4
3
  export interface InteractiveCountdownProps {
5
4
  content: CountdownContent;
6
5
  /** Callback when countdown completes */
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { PollContent } from '../../types/presentationTypes';
3
-
4
3
  export interface InteractivePollProps {
5
4
  content: PollContent;
6
5
  /** Callback when a vote is submitted */
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { QnAContent, QnAQuestion } from '../../types/presentationTypes';
3
-
4
3
  export interface InteractiveQnAProps {
5
4
  content: QnAContent;
6
5
  /** Current user name (for non-anonymous questions) */
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { QuizContent } from '../../types/presentationTypes';
3
-
4
3
  export interface InteractiveQuizProps {
5
4
  content: QuizContent;
6
5
  /** Callback when answer is submitted */
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument, PresentationSlide as _PresentationSlide, SlideElement, ElementPosition, PresentationTheme as _PresentationTheme, SlideLayout } from '../types/presentationTypes';
2
-
3
2
  export declare class PresentationModel {
4
3
  private doc;
5
4
  private undoStack;
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument, PresentationTheme } from '../types/presentationTypes';
2
-
3
2
  export interface BrandKit {
4
3
  /** Unique identifier */
5
4
  id: string;
@@ -1,5 +1,4 @@
1
1
  import { ChartContent } from '../types/presentationTypes';
2
-
3
2
  /** Generate SVG markup for a chart element. */
4
3
  export declare function renderChartSvg(chart: ChartContent, width: number, height: number): string;
5
4
  //# sourceMappingURL=chartRenderer.d.ts.map
@@ -1,5 +1,4 @@
1
1
  import { TransitionEffect } from '../types/presentationTypes';
2
-
3
2
  export interface CustomTransitionConfig {
4
3
  /** Unique identifier for the transition */
5
4
  id: string;
@@ -1,5 +1,4 @@
1
1
  import { DataSource } from './liveDataSlides';
2
-
3
2
  /** KPI visualization type. */
4
3
  export type KPIWidgetType = 'number-tile' | 'gauge' | 'sparkline' | 'mini-bar' | 'mini-pie' | 'progress' | 'trend-indicator' | 'comparison' | 'bullet-chart' | 'traffic-light';
5
4
  /** Trend direction. */
@@ -1,5 +1,4 @@
1
1
  import { DataSource } from './liveDataSlides';
2
-
3
2
  /** Column definition for slide DataGrid. */
4
3
  export interface SlideGridColumn {
5
4
  /** Unique column ID. */
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  /** Export a full self-contained HTML presentation. */
4
3
  export declare function exportToHtml(doc: NicePresentationDocument): string;
5
4
  //# sourceMappingURL=exportEngine.d.ts.map
@@ -1,5 +1,4 @@
1
1
  import { default as React, ReactNode } from 'react';
2
-
3
2
  export type NiceTranslateFn = (key: string) => string;
4
3
  export interface NiceI18nProviderProps {
5
4
  lang?: 'en' | 'pl' | 'de' | 'fr' | 'es';
@@ -1,5 +1,4 @@
1
1
  import { default as React } from 'react';
2
-
3
2
  export interface DataSource {
4
3
  id: string;
5
4
  name: string;
@@ -1,5 +1,4 @@
1
1
  import { DataSource } from './liveDataSlides';
2
-
3
2
  /** Supported query languages. */
4
3
  export type QueryLanguage = 'sql' | 'odata' | 'graphql' | 'kql' | 'dax';
5
4
  /** Query parameter definition. */
@@ -1,5 +1,4 @@
1
1
  import { default as React } from 'react';
2
-
3
2
  export interface RecordingConfig {
4
3
  video: VideoConfig;
5
4
  audio: AudioConfig;
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface ParseResult {
4
3
  ok: true;
5
4
  document: NicePresentationDocument;
@@ -1,5 +1,4 @@
1
1
  import { ElementAnimation as _ElementAnimation } from '../types/presentationTypes';
2
-
3
2
  export interface ElementRenderState {
4
3
  opacity: number;
5
4
  transform: string;
@@ -1,5 +1,4 @@
1
1
  import { PresentationSlide, SlideElement, SlideBackground } from '../types/presentationTypes';
2
-
3
2
  /** Library item types. */
4
3
  export type LibraryItemType = 'slide' | 'element' | 'template' | 'theme' | 'animation';
5
4
  /** Base library item metadata. */
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  /** Version entry in history. */
4
3
  export interface PresentationVersion {
5
4
  /** Unique version ID. */
@@ -1,6 +1,5 @@
1
1
  import { PresentationModel } from '../core/PresentationModel';
2
2
  import { NicePresentationDocument, PresentationSlide, SlideElement, SlideLayout, PresentationTheme, ElementPosition } from '../types/presentationTypes';
3
-
4
3
  export interface UsePresentationEditorReturn {
5
4
  document: Readonly<NicePresentationDocument>;
6
5
  slides: readonly PresentationSlide[];
package/dist/index.cjs CHANGED
@@ -137,7 +137,7 @@ SLA Violation`,style:{fontSize:18,color:e.impact.slaViolation?"var(--nice-danger
137
137
  FROM Sales
138
138
  WHERE OrderDate >= @startDate AND OrderDate <= @endDate
139
139
  GROUP BY Region, ProductCategory
140
- ORDER BY TotalRevenue DESC`,parameters:[{name:"startDate",label:"Start Date",type:"date",required:!0,defaultValue:new Date(Date.now()-30*24*60*60*1e3).toISOString().split("T")[0]},{name:"endDate",label:"End Date",type:"date",required:!0,defaultValue:new Date().toISOString().split("T")[0]}],dataSource:{id:"sales-query-ds",name:"Sales Query Source",type:"rest-api",config:{type:"rest-api",url:"/api/query",method:"POST"},status:"idle"},visualization:{mode:"bar-chart",chartConfig:{xAxis:"Region",yAxis:"TotalRevenue",seriesField:"ProductCategory",showLegend:!0}},showQueryEditor:!0,showExecutionStats:!0}}function Pa(){return{id:"odata-query",title:"Product Catalog",subtitle:"OData Query Example",language:"odata",query:"Products?$filter=Category eq '{category}' and Price gt {minPrice}&$orderby=Price desc&$top=20&$select=Name,Category,Price,Stock",parameters:[{name:"category",label:"Category",type:"select",required:!0,defaultValue:"Electronics",options:[{value:"Electronics",label:"Electronics"},{value:"Clothing",label:"Clothing"},{value:"Books",label:"Books"}]},{name:"minPrice",label:"Minimum Price",type:"number",defaultValue:0,validation:{min:0}}],dataSource:{id:"odata-query-ds",name:"OData Query Source",type:"rest-api",config:{type:"rest-api",url:"https://api.example.com/odata",method:"GET"},status:"idle"},visualization:{mode:"table",tableConfig:{pageSize:10,sortable:!0}}}}function Da(){return{id:"kql-query",title:"Application Insights",subtitle:"Request Performance Analysis",language:"kql",query:`requests
140
+ ORDER BY TotalRevenue DESC`,parameters:[{name:"startDate",label:"Start Date",type:"date",required:!0,defaultValue:new Date(Date.now()-720*60*60*1e3).toISOString().split("T")[0]},{name:"endDate",label:"End Date",type:"date",required:!0,defaultValue:new Date().toISOString().split("T")[0]}],dataSource:{id:"sales-query-ds",name:"Sales Query Source",type:"rest-api",config:{type:"rest-api",url:"/api/query",method:"POST"},status:"idle"},visualization:{mode:"bar-chart",chartConfig:{xAxis:"Region",yAxis:"TotalRevenue",seriesField:"ProductCategory",showLegend:!0}},showQueryEditor:!0,showExecutionStats:!0}}function Pa(){return{id:"odata-query",title:"Product Catalog",subtitle:"OData Query Example",language:"odata",query:"Products?$filter=Category eq '{category}' and Price gt {minPrice}&$orderby=Price desc&$top=20&$select=Name,Category,Price,Stock",parameters:[{name:"category",label:"Category",type:"select",required:!0,defaultValue:"Electronics",options:[{value:"Electronics",label:"Electronics"},{value:"Clothing",label:"Clothing"},{value:"Books",label:"Books"}]},{name:"minPrice",label:"Minimum Price",type:"number",defaultValue:0,validation:{min:0}}],dataSource:{id:"odata-query-ds",name:"OData Query Source",type:"rest-api",config:{type:"rest-api",url:"https://api.example.com/odata",method:"GET"},status:"idle"},visualization:{mode:"table",tableConfig:{pageSize:10,sortable:!0}}}}function Da(){return{id:"kql-query",title:"Application Insights",subtitle:"Request Performance Analysis",language:"kql",query:`requests
141
141
  | where timestamp > ago({timeRange})
142
142
  | summarize
143
143
  RequestCount = count(),
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  export { NicePresentationEditor, type NicePresentationEditorProps } from './components/NicePresentationEditor';
3
2
  export { NicePresentationPlayer, type NicePresentationPlayerProps } from './components/NicePresentationPlayer';
4
3
  export { SlideCanvas as NiceSlideCanvas, SlideCanvas, type SlideCanvasProps } from './components/SlideCanvas';
package/dist/index.mjs CHANGED
@@ -11738,7 +11738,7 @@ ORDER BY TotalRevenue DESC`,
11738
11738
  label: "Start Date",
11739
11739
  type: "date",
11740
11740
  required: !0,
11741
- defaultValue: new Date(Date.now() - 30 * 24 * 60 * 60 * 1e3).toISOString().split("T")[0]
11741
+ defaultValue: new Date(Date.now() - 720 * 60 * 60 * 1e3).toISOString().split("T")[0]
11742
11742
  },
11743
11743
  {
11744
11744
  name: "endDate",
@@ -1,5 +1,4 @@
1
1
  import { PuppetCharacterDef, SpriteAtlas, PuppetPropDef, GameEngineImportOptions } from './puppetShowTypes';
2
-
3
2
  export interface GameEngineSpriteAnimation {
4
3
  frames: GameEngineAnimationFrame[];
5
4
  fps: number;
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { PuppetCharacterDef, CharacterAnimation, CharacterExpression, CharacterRuntimeState, AnimationFrameDef } from './puppetShowTypes';
3
-
4
3
  export interface AnimationControllerOptions {
5
4
  fps?: number;
6
5
  onAnimationComplete?: (animationId: string) => void;
@@ -2,7 +2,6 @@ import { default as React } from 'react';
2
2
  import { CharacterRegistry } from './puppetCharacter';
3
3
  import { NicePuppetShowDocument, PuppetScene, PuppetShowPlayerState } from './puppetShowTypes';
4
4
  import { TimelineState } from './puppetTimeline';
5
-
6
5
  export interface PuppetPlayerContextValue {
7
6
  document: NicePuppetShowDocument | null;
8
7
  playerState: PuppetShowPlayerState;
@@ -1,5 +1,4 @@
1
1
  import { NicePuppetShowDocument, PresentationConversionOptions } from './puppetShowTypes';
2
-
3
2
  export interface NicePresentationDocument {
4
3
  version: string;
5
4
  id: string;
@@ -1,7 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { CharacterRegistry } from './puppetCharacter';
3
3
  import { NicePuppetShowDocument, PuppetScene, SceneBackground, SceneCamera as _SceneCamera, CharacterRuntimeState as _CharacterRuntimeState, ActiveEffect as _ActiveEffect } from './puppetShowTypes';
4
-
5
4
  export interface PuppetStageContextValue {
6
5
  document: NicePuppetShowDocument | null;
7
6
  currentScene: PuppetScene | null;
@@ -1,5 +1,4 @@
1
1
  import { PuppetScene, TimelineTrack, DialogueKeyframe, EffectKeyframe, CharacterRuntimeState, SceneAudio, SceneCamera, ActiveEffect, EasingType, TimelineTrackType, PuppetCharacterDef } from './puppetShowTypes';
2
-
3
2
  export type EasingFunction = (t: number) => number;
4
3
  export declare const easingFunctions: Record<EasingType, EasingFunction>;
5
4
  export declare function getEasingFunction(easing: EasingType): EasingFunction;
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface ArchitectureOverviewData {
4
3
  /** Project info */
5
4
  project: {
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface IncidentReportData {
4
3
  /** Incident metadata */
5
4
  incident: {
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface InvestorDeckData {
4
3
  /** Company info */
5
4
  companyName: string;
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface OnboardingData {
4
3
  /** Company/Team info */
5
4
  company: {
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface ProductPitchData {
4
3
  /** Product info */
5
4
  productName: string;
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface QuarterlyReportData {
4
3
  /** Report metadata */
5
4
  quarter: 'Q1' | 'Q2' | 'Q3' | 'Q4';
@@ -1,5 +1,4 @@
1
1
  import { NicePresentationDocument } from '../types/presentationTypes';
2
-
3
2
  export interface SprintReviewData {
4
3
  /** Sprint info */
5
4
  sprint: {
@@ -0,0 +1 @@
1
+ .nice-pres-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;color:var(--nice-text, #222);background:#f4f4f4}.nice-pres-toolbar{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);background:var(--nice-bg, #FFF);border-bottom:1px solid var(--nice-border, #ddd);flex-wrap:wrap}.nice-pres-toolbar__group{display:flex;align-items:center;gap:var(--nice-space-1, 4px)}.nice-pres-toolbar__separator{width:1px;height:24px;background:var(--nice-border, #ddd);margin:0 var(--nice-space-1-5, 6px)}.nice-pres-toolbar button,.nice-pres-toolbar select{height:32px;padding:0 var(--nice-space-2-5, 10px);border:1px solid var(--nice-border, #ccc);border-radius:var(--nice-radius-sm, 4px);background:var(--nice-bg, #FFF);font-size:13px;cursor:pointer;line-height:30px;white-space:nowrap}.nice-pres-toolbar button:hover:not(:disabled){background:var(--nice-primary-bg, #eef)}.nice-pres-toolbar button:disabled{opacity:.4;cursor:default}.nice-pres-toolbar button.primary{background:var(--nice-info, #6366f1);color:var(--nice-bg, #FFF);border-color:var(--nice-accent, #5558e6)}.nice-pres-toolbar button.primary:hover{background:var(--nice-accent, #4f46e5)}.nice-pres-toolbar__dropdown{position:relative}.nice-pres-toolbar__dropdown-menu{position:absolute;top:100%;left:0;z-index:20;min-width:160px;background:var(--nice-bg, #FFF);border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-md, 6px);box-shadow:0 4px 12px var(--nice-overlay-12, rgba(0, 0, 0, .12));padding:var(--nice-space-1, 4px) 0;margin-top:var(--nice-space-0-5, 2px)}.nice-pres-toolbar__dropdown-item{display:block;width:100%;padding:var(--nice-space-1-5, 6px) var(--nice-space-3-5, 14px);border:none;background:none;text-align:left;font-size:13px;cursor:pointer;color:var(--nice-text, #333)}.nice-pres-toolbar__dropdown-item:hover{background:var(--nice-primary-bg, #eef)}.nice-pres-thumbnails{padding:var(--nice-space-2, 8px);overflow-y:auto;max-height:100%;display:flex;flex-direction:column;gap:var(--nice-space-2, 8px)}.nice-pres-thumbnail{position:relative;border:2px solid transparent;border-radius:var(--nice-radius-sm, 4px);cursor:pointer;overflow:hidden;background:var(--nice-bg, #FFF);box-shadow:0 1px 3px var(--nice-overlay-10, rgba(0, 0, 0, .1));transition:border-color .15s}.nice-pres-thumbnail:hover{border-color:var(--nice-accent, #a5b4fc)}.nice-pres-thumbnail--active{border-color:var(--nice-info, #6366f1)!important}.nice-pres-thumbnail__number{position:absolute;top:2px;left:4px;font-size:10px;color:var(--nice-text-secondary, #888);font-weight:600}.nice-pres-thumbnail__actions{position:absolute;top:2px;right:4px;display:none;gap:var(--nice-space-0-5, 2px)}.nice-pres-thumbnail:hover .nice-pres-thumbnail__actions{display:flex}.nice-pres-thumbnail__actions button{width:20px;height:20px;border:none;border-radius:var(--nice-radius-sm, 3px);background:var(--nice-overlay-45, rgba(0, 0, 0, .45));color:var(--nice-bg, #FFF);font-size:11px;line-height:20px;cursor:pointer;padding:0;text-align:center}.nice-pres-thumbnail__actions button:hover{background:var(--nice-overlay-70, rgba(0, 0, 0, .7))}.nice-pres-thumbnails__add-btn{width:100%;height:34px;border:2px dashed var(--nice-border, #ccc);border-radius:var(--nice-radius-sm, 4px);background:none;color:var(--nice-text-secondary, #888);font-size:13px;cursor:pointer}.nice-pres-thumbnails__add-btn:hover{border-color:var(--nice-info, #6366f1);color:var(--nice-info, #6366f1)}.nice-pres-canvas{box-shadow:0 2px 12px var(--nice-overlay-20, rgba(0, 0, 0, .18));position:relative;overflow:hidden}.nice-pres-canvas__element{position:absolute;box-sizing:border-box;cursor:default}.nice-pres-canvas__element--interactive{cursor:move}.nice-pres-canvas__element--selected{outline:2px solid var(--nice-info, #6366f1);outline-offset:2px}.nice-pres-canvas__text{-webkit-user-select:none;user-select:none;word-wrap:break-word;overflow:hidden}.nice-pres-canvas__image{display:flex;align-items:center;justify-content:center}.nice-pres-canvas__image img{max-width:100%;max-height:100%}.nice-pres-canvas__shape{display:flex;align-items:center;justify-content:center}.nice-pres-canvas__code{overflow:auto;border-radius:var(--nice-radius-md, 6px)}.nice-pres-canvas__code pre{margin:0;padding:var(--nice-space-3, 12px) var(--nice-space-4, 16px);font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:14px;line-height:1.5;white-space:pre-wrap}.nice-pres-canvas__chart svg{width:100%;height:100%}.nice-pres-canvas__table{overflow:auto}.nice-pres-canvas__table table{width:100%;border-collapse:collapse;font-size:14px}.nice-pres-canvas__table th{background:var(--nice-info, #6366f1);color:var(--nice-bg, #FFF);padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);text-align:left;font-weight:600}.nice-pres-canvas__table td{padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);border-bottom:1px solid var(--nice-border, #eee)}.nice-pres-canvas__table tr:nth-child(2n) td{background:var(--nice-bg-secondary, #f8f8f8)}.nice-pres-props{padding:var(--nice-space-3, 12px);font-size:13px}.nice-pres-props h3{font-size:14px;font-weight:600;margin:0 0 var(--nice-space-2-5, 10px);padding-bottom:var(--nice-space-1-5, 6px);border-bottom:1px solid var(--nice-border, #eee)}.nice-pres-props__row{display:flex;align-items:center;margin-bottom:var(--nice-space-2, 8px);gap:var(--nice-space-1-5, 6px)}.nice-pres-props__label{flex:0 0 70px;font-size:12px;color:var(--nice-text-secondary, #666)}.nice-pres-props__input{flex:1;height:28px;border:1px solid var(--nice-border, #ccc);border-radius:var(--nice-radius-sm, 4px);padding:0 var(--nice-space-2, 8px);font-size:12px;background:var(--nice-bg, #FFF)}.nice-pres-props__input:focus{outline:none;border-color:var(--nice-info, #6366f1)}.nice-pres-props select.nice-pres-props__input{padding-right:var(--nice-space-6, 24px)}.nice-pres-props textarea.nice-pres-props__input{height:auto;min-height:60px;padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px);resize:vertical}.nice-pres-props__section{margin-top:var(--nice-space-4, 16px)}.nice-pres-props__color-swatch{width:28px;height:28px;border:1px solid var(--nice-border, #ccc);border-radius:var(--nice-radius-sm, 4px);cursor:pointer;padding:0}.nice-pres-props button.nice-pres-props__remove-btn{width:100%;height:30px;margin-top:var(--nice-space-3, 12px);border:1px solid var(--nice-danger, #ef4444);border-radius:var(--nice-radius-sm, 4px);background:var(--nice-danger-bg, #fef2f2);color:var(--nice-danger, #ef4444);font-size:12px;cursor:pointer}.nice-pres-props button.nice-pres-props__remove-btn:hover{background:var(--nice-danger, #ef4444);color:var(--nice-bg, #FFF)}.nice-pres-player{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.nice-pres-player-controls{transition:opacity .2s}.nice-pres-player-controls button:hover{background:var(--nice-overlay-light-30, rgba(255, 255, 255, .3))!important}@media(max-width:768px){.nice-pres-toolbar{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);gap:var(--nice-space-1, 4px)}.nice-pres-toolbar button,.nice-pres-toolbar select{height:28px;font-size:12px;padding:0 var(--nice-space-1-5, 6px)}.nice-pres-props{padding:var(--nice-space-2, 8px)}}._interactiveElement_1hnm5_13{font-family:inherit;box-sizing:border-box}._interactiveButton_1hnm5_27{display:inline-flex;align-items:center;justify-content:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-3, 12px) var(--nice-space-6, 24px);font-weight:600;border-radius:var(--nice-radius-lg, 8px);border:2px solid transparent;cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:1rem}._interactiveButton_1hnm5_27:hover:not(._disabled_1hnm5_57){transform:translateY(-2px);box-shadow:0 4px 12px var(--nice-overlay-15, rgba(0, 0, 0, .15))}._interactiveButton_1hnm5_27:active:not(._disabled_1hnm5_57){transform:translateY(0)}._interactiveButton_1hnm5_27._disabled_1hnm5_57{opacity:.5;cursor:not-allowed}._variant_primary_1hnm5_87{background:var(--nice-primary, #6366f1);color:#fff}._variant_secondary_1hnm5_97{background:var(--nice-secondary, #64748b);color:#fff}._variant_outline_1hnm5_107{background:transparent;border-color:currentColor;color:var(--nice-primary, #6366f1)}._variant_ghost_1hnm5_119{background:transparent;color:var(--nice-primary, #6366f1)}._variant_ghost_1hnm5_119:hover:not(._disabled_1hnm5_57){background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1))}._size_small_1hnm5_139{padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);font-size:.875rem}._size_medium_1hnm5_149{padding:var(--nice-space-3, 12px) var(--nice-space-6, 24px);font-size:1rem}._size_large_1hnm5_159{padding:var(--nice-space-4, 16px) var(--nice-space-8, 32px);font-size:1.125rem}._buttonIcon_1hnm5_169{font-size:1.2em}._buttonLabel_1hnm5_177{white-space:nowrap}._interactivePoll_1hnm5_189{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px);padding:var(--nice-space-5, 20px);background:var(--nice-overlay-light-95, rgba(255, 255, 255, .95));border-radius:var(--nice-radius-xl, 12px);box-shadow:0 4px 20px var(--nice-overlay-10, rgba(0, 0, 0, .1))}._pollQuestion_1hnm5_209{margin:0;font-size:1.25rem;font-weight:600;color:var(--nice-text, #1e293b)}._pollOptions_1hnm5_223{display:flex;flex-direction:column;gap:var(--nice-space-2-5, 10px)}._pollOption_1hnm5_223{display:flex;flex-direction:column;gap:var(--nice-space-2, 8px);padding:var(--nice-space-3-5, 14px) 18px;background:var(--nice-bg-secondary, #f8fafc);border:2px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 10px);cursor:pointer;transition:all .2s ease;text-align:left}._pollOption_1hnm5_223:hover:not(._pollOptionDisabled_1hnm5_261){border-color:var(--poll-option-color, #6366f1);background:var(--nice-bg-secondary, #f1f5f9)}._pollOptionSelected_1hnm5_271{border-color:var(--poll-option-color, #6366f1);background:var(--nice-accent-tint-8, rgba(99, 102, 241, .08))}._pollOptionDisabled_1hnm5_261{cursor:default}._pollOptionContent_1hnm5_289{display:flex;align-items:center;gap:var(--nice-space-2-5, 10px);font-size:1rem;color:var(--nice-text, #334155)}._pollOptionIcon_1hnm5_305{font-size:1.25rem}._pollOptionText_1hnm5_313{flex:1}._pollCheckbox_1hnm5_321{font-size:1.2rem;color:var(--poll-option-color, #6366f1)}._pollResultBar_1hnm5_331{display:flex;align-items:center;gap:var(--nice-space-2-5, 10px);height:26px;background:var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);overflow:hidden;position:relative}._pollResultFill_1hnm5_353{height:100%;border-radius:var(--nice-radius-md, 6px);transition:width .5s ease}._pollResultPercent_1hnm5_365{position:absolute;right:60px;font-weight:600;font-size:.875rem;color:var(--nice-text-secondary, #475569)}._pollResultCount_1hnm5_381{position:absolute;right:10px;font-size:.75rem;color:var(--nice-text-secondary, #64748b)}._pollSubmitBtn_1hnm5_395{align-self:flex-start;padding:var(--nice-space-3, 12px) var(--nice-space-7, 28px);background:var(--nice-primary, #6366f1);color:#fff;border:none;border-radius:var(--nice-radius-lg, 8px);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}._pollSubmitBtn_1hnm5_395:hover{filter:brightness(1.1);transform:translateY(-1px)}._pollTotalVotes_1hnm5_431{font-size:.875rem;color:var(--nice-text-secondary, #64748b);text-align:center}._pollVotedMessage_1hnm5_443{padding:var(--nice-space-3, 12px);background:var(--nice-success-bg, #dcfce7);border-radius:var(--nice-radius-lg, 8px);color:var(--nice-success-dark, #166534);text-align:center;font-weight:500}._pollStyle_horizontal-bar_1hnm5_463 ._pollOptions_1hnm5_223{gap:var(--nice-space-2, 8px)}._pollStyle_horizontal-bar_1hnm5_463 ._pollOption_1hnm5_223{flex-direction:row;padding:var(--nice-space-2-5, 10px) var(--nice-space-3-5, 14px)}._interactiveQuiz_1hnm5_485{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px);padding:var(--nice-space-6, 24px);background:var(--nice-overlay-light-95, rgba(255, 255, 255, .95));border-radius:var(--nice-radius-xl, 12px);box-shadow:0 4px 20px var(--nice-overlay-10, rgba(0, 0, 0, .1))}._quizHeader_1hnm5_505{display:flex;align-items:flex-start;gap:var(--nice-space-4, 16px);flex-wrap:wrap}._quizQuestion_1hnm5_519{margin:0;flex:1;font-size:1.25rem;font-weight:600;color:var(--nice-text, #1e293b);min-width:200px}._quizTimer_1hnm5_537{padding:var(--nice-space-2, 8px) var(--nice-space-3-5, 14px);background:var(--nice-bg-secondary, #f1f5f9);border-radius:var(--nice-radius-md, 6px);font-weight:600;font-size:1rem;color:var(--nice-text-secondary, #475569)}._quizTimerWarning_1hnm5_555{background:var(--nice-danger-bg, #fef2f2);color:var(--nice-danger-dark, #dc2626);animation:_timerPulse_1hnm5_1 .5s ease infinite}@keyframes _timerPulse_1hnm5_1{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}._quizPoints_1hnm5_577{padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);background:var(--nice-primary-bg, #dbeafe);border-radius:var(--nice-radius-xl, 20px);font-weight:600;font-size:.875rem;color:var(--nice-primary-dark, #1d4ed8)}._quizAnswers_1hnm5_595{display:flex;flex-direction:column;gap:var(--nice-space-2-5, 10px)}._quizAnswer_1hnm5_595{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-3-5, 14px) 18px;background:var(--nice-bg-secondary, #f8fafc);border:2px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 10px);cursor:pointer;transition:all .2s ease;text-align:left}._quizAnswer_1hnm5_595:hover:not(._quizAnswerDisabled_1hnm5_633){border-color:var(--nice-info, #6366f1);background:var(--nice-bg-secondary, #f1f5f9)}._quizAnswerSelected_1hnm5_643{border-color:var(--nice-info, #6366f1);background:var(--nice-accent-tint-8, rgba(99, 102, 241, .08))}._quizAnswerDisabled_1hnm5_633{cursor:default}._quizAnswerCorrect_1hnm5_661{border-color:var(--nice-success, #22c55e)!important;background:var(--nice-success-tint-10, rgba(34, 197, 94, .1))!important}._quizAnswerIncorrect_1hnm5_671{border-color:var(--nice-danger, #ef4444)!important;background:var(--nice-danger-tint-10, rgba(239, 68, 68, .1))!important}._quizAnswerMarker_1hnm5_681{font-size:1.25rem;color:var(--nice-info, #6366f1)}._quizAnswerText_1hnm5_691{flex:1;font-size:1rem;color:var(--nice-text, #334155)}._quizCorrectMark_1hnm5_703{font-size:1.25rem;color:var(--nice-success, #22c55e);font-weight:700}._quizIncorrectMark_1hnm5_715{font-size:1.25rem;color:var(--nice-danger, #ef4444);font-weight:700}._quizSubmitBtn_1hnm5_727{align-self:flex-start;padding:var(--nice-space-3, 12px) var(--nice-space-7, 28px);background:var(--nice-primary, #6366f1);color:#fff;border:none;border-radius:var(--nice-radius-lg, 8px);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}._quizSubmitBtn_1hnm5_727:hover{filter:brightness(1.1);transform:translateY(-1px)}._quizSubmitBtn_1hnm5_727:disabled{opacity:.5;cursor:not-allowed;transform:none}._quizFeedback_1hnm5_775{margin-top:var(--nice-space-2, 8px)}._quizFeedbackMessage_1hnm5_783{padding:var(--nice-space-3-5, 14px) 18px;border-radius:var(--nice-radius-lg, 10px);font-weight:500;font-size:1rem}._quizFeedbackCorrect_1hnm5_797{background:var(--nice-success-bg, #dcfce7);color:var(--nice-success-dark, #166534)}._quizFeedbackIncorrect_1hnm5_807{background:var(--nice-danger-bg, #fef2f2);color:var(--nice-danger-dark, #991b1b)}._quizExplanation_1hnm5_817{margin-top:var(--nice-space-3, 12px);padding:var(--nice-space-3-5, 14px);background:var(--nice-bg-secondary, #f8fafc);border-radius:var(--nice-radius-lg, 8px);color:var(--nice-text-secondary, #475569);font-size:.9375rem;line-height:1.6}._interactiveCountdown_1hnm5_841{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--nice-space-5, 20px)}._countdownWarning_1hnm5_857{animation:_countdownPulse_1hnm5_1 1s ease infinite}@keyframes _countdownPulse_1hnm5_1{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}._countdownComplete_1hnm5_875{opacity:.75}._countdownDigital_1hnm5_885{display:flex;align-items:center;gap:var(--nice-space-1, 4px);font-size:3rem;font-weight:700;font-variant-numeric:tabular-nums}._countdownSeparator_1hnm5_903{opacity:.6}._countdownDigit_1hnm5_885{min-width:1.2em;text-align:center}._countdownCircular_1hnm5_923{position:relative;width:150px;height:150px}._countdownCircleSvg_1hnm5_935{width:100%;height:100%;transform:rotateY(180deg)}._countdownProgressRing_1hnm5_947{transition:stroke-dashoffset .5s ease}._countdownCircleText_1hnm5_955{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums}._countdownLargeSeconds_1hnm5_975{font-size:2.5rem}._countdownFlip_1hnm5_985{display:flex;align-items:center;gap:var(--nice-space-2, 8px)}._flipCardContainer_1hnm5_997{display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-1-5, 6px)}._flipCard_1hnm5_997{padding:var(--nice-space-4, 16px) var(--nice-space-5, 20px);background:linear-gradient(180deg,var(--nice-text, #1e293b) 0%,var(--nice-text, #334155) 100%);border-radius:var(--nice-radius-lg, 8px);color:#fff;font-size:2.5rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 4px 12px var(--nice-overlay-30, rgba(0, 0, 0, .3))}._flipLabel_1hnm5_1033{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--nice-text-secondary, #64748b)}._flipSeparator_1hnm5_1047{font-size:2rem;font-weight:700;opacity:.5;margin-bottom:var(--nice-space-5, 20px)}._countdownMinimal_1hnm5_1063{font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums}._countdownCompleteMessage_1hnm5_1075{margin-top:var(--nice-space-3, 12px);font-size:1.25rem;font-weight:600;color:var(--nice-danger-dark, #dc2626)}._interactiveQnA_1hnm5_1093{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px);padding:var(--nice-space-5, 20px);background:var(--nice-overlay-light-95, rgba(255, 255, 255, .95));border-radius:var(--nice-radius-xl, 12px);box-shadow:0 4px 20px var(--nice-overlay-10, rgba(0, 0, 0, .1));max-height:500px;overflow:hidden}._qnaHeader_1hnm5_1117{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--nice-space-3, 12px);border-bottom:1px solid var(--nice-border, #e2e8f0)}._qnaTitle_1hnm5_1133{margin:0;font-size:1.125rem;font-weight:600;color:var(--nice-text, #1e293b)}._qnaCount_1hnm5_1147{font-size:.875rem;color:var(--nice-text-secondary, #64748b)}._qnaInputForm_1hnm5_1157{display:flex;flex-direction:column;gap:var(--nice-space-3, 12px)}._qnaInputWrapper_1hnm5_1169{position:relative}._qnaInput_1hnm5_1157{width:100%;padding:var(--nice-space-3, 12px) var(--nice-space-3-5, 14px);padding-bottom:var(--nice-space-7, 28px);border:2px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 10px);font-size:.9375rem;resize:none;transition:border-color .2s ease}._qnaInput_1hnm5_1157:focus{outline:none;border-color:var(--nice-info, #6366f1)}._qnaInput_1hnm5_1157:disabled{background:var(--nice-bg-secondary, #f8fafc);cursor:not-allowed}._qnaCharCount_1hnm5_1219{position:absolute;bottom:8px;right:12px;font-size:.75rem;color:var(--nice-text-muted, #94a3b8)}._qnaInputActions_1hnm5_1235{display:flex;align-items:center;justify-content:space-between;gap:var(--nice-space-4, 16px)}._qnaAnonymousToggle_1hnm5_1249{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);font-size:.875rem;color:var(--nice-text-secondary, #475569);cursor:pointer}._qnaAnonymousToggle_1hnm5_1249 input{width:16px;height:16px;cursor:pointer}._qnaSubmitBtn_1hnm5_1279{padding:var(--nice-space-2-5, 10px) var(--nice-space-5, 20px);background:var(--nice-primary, #6366f1);color:#fff;border:none;border-radius:var(--nice-radius-lg, 8px);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease}._qnaSubmitBtn_1hnm5_1279:hover:not(:disabled){filter:brightness(1.1)}._qnaSubmitBtn_1hnm5_1279:disabled{opacity:.5;cursor:not-allowed}._qnaClosedMessage_1hnm5_1321{padding:var(--nice-space-3, 12px);background:var(--nice-bg-secondary, #f8fafc);border-radius:var(--nice-radius-lg, 8px);color:var(--nice-text-secondary, #64748b);text-align:center;font-size:.875rem}._qnaQuestionsList_1hnm5_1339{display:flex;flex-direction:column;gap:var(--nice-space-2-5, 10px);overflow-y:auto;flex:1}._qnaQuestion_1hnm5_1339{display:flex;gap:var(--nice-space-3, 12px);padding:var(--nice-space-3-5, 14px);background:var(--nice-bg-secondary, #f8fafc);border-radius:var(--nice-radius-lg, 10px);transition:background .2s ease}._qnaQuestion_1hnm5_1339:hover{background:var(--nice-bg-secondary, #f1f5f9)}._qnaQuestionAnswered_1hnm5_1381{background:var(--nice-success-bg, #dcfce7);border-left:4px solid var(--nice-success, #22c55e)}._qnaQuestionContent_1hnm5_1391{flex:1;display:flex;flex-direction:column;gap:var(--nice-space-1-5, 6px)}._qnaQuestionText_1hnm5_1405{font-size:.9375rem;color:var(--nice-text, #1e293b);line-height:1.5}._qnaQuestionMeta_1hnm5_1417{display:flex;gap:var(--nice-space-3, 12px);font-size:.75rem;color:var(--nice-text-secondary, #64748b)}._qnaAuthor_1hnm5_1431{font-weight:500}._qnaQuestionActions_1hnm5_1439{display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-2, 8px)}._qnaUpvoteBtn_1hnm5_1453{display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-0-5, 2px);padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);background:transparent;border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 8px);cursor:pointer;transition:all .2s ease}._qnaUpvoteBtn_1hnm5_1453:hover:not(:disabled){border-color:var(--nice-info, #6366f1);color:var(--nice-info, #6366f1)}._qnaUpvoted_1hnm5_1489{background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1));border-color:var(--nice-info, #6366f1);color:var(--nice-info, #6366f1)}._qnaUpvoteBtn_1hnm5_1453:disabled{cursor:default}._qnaUpvoteIcon_1hnm5_1509{font-size:1rem}._qnaUpvoteCount_1hnm5_1517{font-size:.75rem;font-weight:600}._qnaAnsweredBtn_1hnm5_1527{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);background:transparent;border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:.875rem;cursor:pointer;transition:all .2s ease}._qnaAnsweredBtn_1hnm5_1527:hover{background:var(--nice-bg-secondary, #f1f5f9)}._qnaMarkedAnswered_1hnm5_1555{background:var(--nice-success-bg, #dcfce7);border-color:var(--nice-success, #22c55e);color:var(--nice-success, #22c55e)}._qnaEmptyState_1hnm5_1567{padding:var(--nice-space-10, 40px) var(--nice-space-5, 20px);text-align:center;color:var(--nice-text-muted, #94a3b8);font-size:.9375rem}._qnaMoreQuestions_1hnm5_1581{padding:var(--nice-space-2-5, 10px);text-align:center;font-size:.875rem;color:var(--nice-text-secondary, #64748b);border-top:1px solid var(--nice-border, #e2e8f0)}._qnaStyle_stack_1hnm5_1599 ._qnaQuestionsList_1hnm5_1339{flex-direction:column-reverse}._qnaStyle_floating_1hnm5_1609{position:fixed;bottom:20px;right:20px;width:360px;max-height:450px;z-index:1000}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/ui-presentations",
3
- "version": "1.0.29",
3
+ "version": "1.1.5",
4
4
  "description": "Nice2Dev Presentation Editor & Player — animated slides with data binding, charts, diagram embedding, and custom .ndp.json format",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -39,17 +39,19 @@
39
39
  "@nice2dev/ui": "^1.0.20"
40
40
  },
41
41
  "devDependencies": {
42
- "@testing-library/jest-dom": "^6.9.1",
43
- "@testing-library/react": "^14.0.0",
44
- "@types/react": "^18.2.0",
45
- "@types/react-dom": "^18.2.0",
46
- "@vitejs/plugin-react": "^4.2.0",
47
- "react": "^18.2.0",
48
- "react-dom": "^18.2.0",
49
- "typescript": "^5.3.0",
50
- "vite": "^5.0.0",
51
- "vite-plugin-dts": "^3.7.0",
52
- "vitest": "^4.1.0"
42
+ "@nice2dev/ui": "^1.1.5",
43
+ "@testing-library/jest-dom": "^7.0.1",
44
+ "@testing-library/react": "^16.3.3",
45
+ "@types/react": "^19.2.18",
46
+ "@types/react-dom": "^19.2.7",
47
+ "@vitejs/plugin-react": "^4.7.0",
48
+ "jsdom": "^29.0.0",
49
+ "react": "^19.2.8",
50
+ "react-dom": "^19.2.8",
51
+ "typescript": "^5.9.3",
52
+ "vite": "^6.4.1",
53
+ "vite-plugin-dts": "^4.5.4",
54
+ "vitest": "^4.1.11"
53
55
  },
54
56
  "keywords": [
55
57
  "nice2dev",