@bendyline/squisq-react 2.7.2 → 2.8.0

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.
package/dist/index.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import { SquisqRenderAPI, VideoPresentation as VideoPresentation$1, PipSize, PipShape, PipPosition } from './player/index.js';
2
2
  export { BlockMarker, BlockRenderer, CaptionMode, CaptionOverlay, CaptionStyle, ControlsLayout, DisplayMode, DocControlsBottom, DocControlsOverlay, DocControlsSidebar, DocControlsSlideshow, DocPlayer, DocPlayerProps, DocPlayerWithSidebar, DocProgressBar, InlineAudioPlayer, InlineAudioPlayerProps, InlineVideoPlayer, InlineVideoPlayerProps, MediaClipLayer, MediaClipLayerProps, PlaybackActions, PlaybackState, RenderAudioSegmentInfo, RenderBlockInfo, RenderCaptionInfo, RenderChapterInfo, SlideNavActions, SocialCaptionOverlay, formatTime } from './player/index.js';
3
3
  import { Theme, VideoPresentation, VideoPipSize, VideoPipShape, VideoPipPosition, Doc, ScheduledClip, MediaProvider } from '@bendyline/squisq/schemas';
4
+ import { DashboardStyleId, ViewportConfig, CoverSlideTemplate, CoverSlidePlayback } from '@bendyline/squisq/doc';
5
+ export { getAnimationStyle, getTransitionClass } from '@bendyline/squisq/doc';
4
6
  import { C as CodeBlockCopyHandler } from './MarkdownRenderer-CC9dOc6b.js';
5
7
  export { a as CodeBlockCopyContext, M as MarkdownRenderer, b as MarkdownRendererProps } from './MarkdownRenderer-CC9dOc6b.js';
6
8
  export { FenceRendererContext, MermaidDiagram, MermaidDiagramProps, useFenceRenderers } from './markdown/index.js';
7
9
  export { CanvasSection, CanvasSectionProps, ImageDisplayMode, LinearDocView, LinearDocViewProps, PageSectionView, PageSectionViewProps, PageViewContext, PageViewContextValue, usePageView } from './page/index.js';
10
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
11
  export { ImageLayer, MapLayer, MermaidLayer, PathLayer, ShapeLayer, TableLayer, TextLayer, TreeLayer, VideoLayer } from './layers/index.js';
9
- import { CoverSlideTemplate, CoverSlidePlayback } from '@bendyline/squisq/doc';
10
- export { getAnimationStyle, getTransitionClass } from '@bendyline/squisq/doc';
11
12
  export { MediaContext, MediaScheduleController, ModalDialogOptions, ResourcePolicyContext, UseDocPlaybackOptions, useAudioSync, useAutoSurface, useDocPlayback, useMediaProvider, useMediaSchedule, useMediaUrl, useModalDialog, useResourcePolicy, useViewportOrientation } from './hooks/index.js';
12
13
  export { FenceRenderContext, FenceRenderer, FenceRendererMap } from '@bendyline/squisq/fence';
13
14
  export { A as AudioActions, a as AudioController, b as AudioState } from './AudioController-DwMsPe38.js';
14
15
  export { JsonFormFenceAction, JsonFormFenceRendererOptions, JsonView, JsonViewProps, createJsonFormFenceRenderer } from './json-view/index.js';
15
- import 'react/jsx-runtime';
16
16
  import 'react';
17
17
  import '@bendyline/squisq/markdown';
18
18
  import '@bendyline/squisq/jsonForm';
@@ -42,8 +42,22 @@ import '@bendyline/squisq/jsonForm';
42
42
  */
43
43
 
44
44
  interface MountOptions {
45
- /** Rendering mode: 'slideshow' (interactive, default) or 'static' (scrollable) */
46
- mode?: 'slideshow' | 'static';
45
+ /**
46
+ * Rendering mode: 'slideshow' (interactive, default), 'static'
47
+ * (scrollable page), or 'dashboard' (one canvas of arranged blocks).
48
+ */
49
+ mode?: 'slideshow' | 'static' | 'dashboard';
50
+ /** Dashboard-mode options (ignored by the other modes). */
51
+ dashboard?: {
52
+ /** Layout id or 'auto'. Overrides doc frontmatter. */
53
+ layout?: string;
54
+ /** Title-band override. Overrides doc frontmatter. */
55
+ title?: boolean;
56
+ /** Cell style variant ('basic' | 'card' | 'panel' | 'accent'). */
57
+ style?: DashboardStyleId;
58
+ /** Host-supplied title fallback (typically the file name). */
59
+ documentTitle?: string;
60
+ };
47
61
  /** Base path for resolving relative media URLs */
48
62
  basePath?: string;
49
63
  /**
@@ -104,6 +118,37 @@ interface SquisqPlayerHandle {
104
118
  unmount(): void;
105
119
  }
106
120
 
121
+ interface DashboardViewProps {
122
+ doc: Doc;
123
+ /** Resolved theme; defaults to the doc's own theme resolution. */
124
+ theme?: Theme;
125
+ /** Canvas viewport (default: the landscape preset). */
126
+ viewport?: ViewportConfig;
127
+ /** Layout override: an id or `'auto'`. Overrides doc frontmatter. */
128
+ layout?: string;
129
+ /** Title-band override. Overrides doc frontmatter (default true). */
130
+ showTitle?: boolean;
131
+ /**
132
+ * Cell style variant (`basic` | `card` | `panel` | `accent`). Overrides
133
+ * doc frontmatter; all variants take their colors from the active theme.
134
+ */
135
+ style?: DashboardStyleId;
136
+ /** Host-supplied title fallback (typically the file name). */
137
+ documentTitle?: string;
138
+ /** Base path for resolving media URLs (default `'.'`). */
139
+ basePath?: string;
140
+ /** Render ambient/authored layer animations (default true). */
141
+ animationsEnabled?: boolean;
142
+ /** Silence audio carried by cell video layers (default true). */
143
+ muted?: boolean;
144
+ /** Publish the capture-readiness render API (headless export). */
145
+ renderMode?: boolean;
146
+ /** Receives the minimal render API, and `null` on cleanup. */
147
+ onRenderAPIReady?: (api: SquisqRenderAPI | null) => void;
148
+ className?: string;
149
+ }
150
+ declare function DashboardView({ doc, theme, viewport, layout, showTitle, style, documentTitle, basePath, animationsEnabled, muted, renderMode, onRenderAPIReady, className, }: DashboardViewProps): react_jsx_runtime.JSX.Element;
151
+
107
152
  interface DocPlayerAppearanceOverrides {
108
153
  theme?: Theme;
109
154
  videoPresentation?: VideoPresentation$1;
@@ -154,4 +199,4 @@ declare function resolveDocPlayerAppearance(doc: Doc, overrides?: DocPlayerAppea
154
199
  */
155
200
  declare function useMediaClipDurations(schedule: ScheduledClip[], basePath: string, mediaProviderOverride?: MediaProvider | null): Map<string, number>;
156
201
 
157
- export { CodeBlockCopyHandler, type DocPlayerAppearanceOverrides, type MountOptions, PipPosition, PipShape, PipSize, type ResolvedDocPlayerAppearance, type SquisqPlayerHandle, SquisqRenderAPI, VideoPresentation$1 as VideoPresentation, resolveDocPlayerAppearance, useMediaClipDurations };
202
+ export { CodeBlockCopyHandler, DashboardView, type DashboardViewProps, type DocPlayerAppearanceOverrides, type MountOptions, PipPosition, PipShape, PipSize, type ResolvedDocPlayerAppearance, type SquisqPlayerHandle, SquisqRenderAPI, VideoPresentation$1 as VideoPresentation, resolveDocPlayerAppearance, useMediaClipDurations };
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  CaptionOverlay,
3
+ DashboardView,
3
4
  DocControlsBottom,
4
5
  DocControlsOverlay,
5
6
  DocControlsSidebar,
@@ -12,7 +13,7 @@ import {
12
13
  formatTime,
13
14
  resolveDocPlayerAppearance,
14
15
  useMediaClipDurations
15
- } from "./chunk-KXYE4AGL.js";
16
+ } from "./chunk-LAL43UUN.js";
16
17
  import {
17
18
  BlockRenderer,
18
19
  CanvasSection,
@@ -71,6 +72,7 @@ export {
71
72
  BlockRenderer,
72
73
  CanvasSection,
73
74
  CaptionOverlay,
75
+ DashboardView,
74
76
  DocControlsBottom,
75
77
  DocControlsOverlay,
76
78
  DocControlsSidebar,
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Block, VideoPresentation as VideoPresentation$1, VideoPipSize, VideoPipShape, VideoPipPosition, Doc, Theme, SurfaceScheme, Transition, CaptionTrack, ViewportConfig as ViewportConfig$1, ScheduledClip } from '@bendyline/squisq/schemas';
3
- import { ViewportConfig, CoverSlideTemplate, CoverSlidePlayback } from '@bendyline/squisq/doc';
3
+ import { ViewportConfig, DashboardStyleId, CoverSlideTemplate, CoverSlidePlayback } from '@bendyline/squisq/doc';
4
4
  import { FenceRendererMap } from '@bendyline/squisq/fence';
5
5
  import { a as AudioController } from '../AudioController-DwMsPe38.js';
6
6
  import { C as CodeBlockCopyHandler } from '../MarkdownRenderer-CC9dOc6b.js';
@@ -57,8 +57,11 @@ type PipPosition = VideoPipPosition;
57
57
  * implement this mode; it is owned by the editor package
58
58
  * (`@bendyline/squisq-editor-react`), which renders its own
59
59
  * voice-paced teleprompter view for it.
60
+ * - `'dashboard'` — One static canvas that arranges every block into a
61
+ * layout's cells (grids, hero mosaics). No timeline, no navigation;
62
+ * overflow blocks beyond the layout's capacity are not rendered.
60
63
  */
61
- type DisplayMode = 'video' | 'slideshow' | 'linear' | 'page' | 'narrate';
64
+ type DisplayMode = 'video' | 'slideshow' | 'linear' | 'page' | 'narrate' | 'dashboard';
62
65
  /**
63
66
  * Caption display style.
64
67
  *
@@ -223,8 +226,16 @@ interface DocPlayerProps {
223
226
  forceViewport?: ViewportConfig;
224
227
  theme?: Theme;
225
228
  surface?: SurfaceScheme | 'auto';
226
- /** Video, manual slideshow, or long-scrolling linear rendition. */
229
+ /** Video, manual slideshow, long-scrolling linear, or dashboard rendition. */
227
230
  displayMode?: DisplayMode;
231
+ /** Dashboard mode: layout id or `'auto'`. Overrides doc frontmatter. */
232
+ dashboardLayout?: string;
233
+ /** Dashboard mode: title-band override. Overrides doc frontmatter. */
234
+ dashboardShowTitle?: boolean;
235
+ /** Dashboard mode: cell style variant. Overrides doc frontmatter. */
236
+ dashboardStyle?: DashboardStyleId;
237
+ /** Dashboard mode: host-supplied title fallback (typically the file name). */
238
+ dashboardDocumentTitle?: string;
228
239
  showCoverSlide?: boolean;
229
240
  /** Visual template used to materialize the managed cover. */
230
241
  coverSlideTemplate?: CoverSlideTemplate;
@@ -10,7 +10,7 @@ import {
10
10
  MediaClipLayer,
11
11
  SocialCaptionOverlay,
12
12
  formatTime
13
- } from "../chunk-KXYE4AGL.js";
13
+ } from "../chunk-LAL43UUN.js";
14
14
  import {
15
15
  BlockRenderer
16
16
  } from "../chunk-IQGW6SA6.js";