@bendyline/squisq-react 0.1.3 → 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.
- package/dist/BlockRenderer.d.ts +37 -0
- package/dist/BlockRenderer.d.ts.map +1 -0
- package/dist/BlockRenderer.js +51 -0
- package/dist/BlockRenderer.js.map +1 -0
- package/dist/CaptionOverlay.d.ts +24 -0
- package/dist/CaptionOverlay.d.ts.map +1 -0
- package/dist/CaptionOverlay.js +40 -0
- package/dist/CaptionOverlay.js.map +1 -0
- package/dist/DocControlsBottom.d.ts +28 -0
- package/dist/DocControlsBottom.d.ts.map +1 -0
- package/dist/DocControlsBottom.js +23 -0
- package/dist/DocControlsBottom.js.map +1 -0
- package/dist/DocControlsOverlay.d.ts +28 -0
- package/dist/DocControlsOverlay.d.ts.map +1 -0
- package/dist/DocControlsOverlay.js +75 -0
- package/dist/DocControlsOverlay.js.map +1 -0
- package/dist/DocControlsSidebar.d.ts +27 -0
- package/dist/DocControlsSidebar.d.ts.map +1 -0
- package/dist/DocControlsSidebar.js +6 -0
- package/dist/DocControlsSidebar.js.map +1 -0
- package/dist/DocControlsSlideshow.d.ts +20 -0
- package/dist/DocControlsSlideshow.d.ts.map +1 -0
- package/dist/DocControlsSlideshow.js +69 -0
- package/dist/DocControlsSlideshow.js.map +1 -0
- package/dist/DocPlayer.d.ts +87 -0
- package/dist/DocPlayer.d.ts.map +1 -0
- package/dist/DocPlayer.js +604 -0
- package/dist/DocPlayer.js.map +1 -0
- package/dist/DocPlayerWithSidebar.d.ts +41 -0
- package/dist/DocPlayerWithSidebar.d.ts.map +1 -0
- package/dist/DocPlayerWithSidebar.js +68 -0
- package/dist/DocPlayerWithSidebar.js.map +1 -0
- package/dist/DocProgressBar.d.ts +31 -0
- package/dist/DocProgressBar.d.ts.map +1 -0
- package/dist/DocProgressBar.js +122 -0
- package/dist/DocProgressBar.js.map +1 -0
- package/dist/LinearDocView.d.ts +47 -0
- package/dist/LinearDocView.d.ts.map +1 -0
- package/dist/LinearDocView.js +184 -0
- package/dist/LinearDocView.js.map +1 -0
- package/dist/MarkdownRenderer.d.ts +32 -0
- package/dist/MarkdownRenderer.d.ts.map +1 -0
- package/dist/MarkdownRenderer.js +133 -0
- package/dist/MarkdownRenderer.js.map +1 -0
- package/dist/__tests__/BlockRenderer.test.d.ts +2 -0
- package/dist/__tests__/BlockRenderer.test.d.ts.map +1 -0
- package/dist/__tests__/BlockRenderer.test.js +82 -0
- package/dist/__tests__/BlockRenderer.test.js.map +1 -0
- package/dist/__tests__/DocControlsSlideshow.test.d.ts +2 -0
- package/dist/__tests__/DocControlsSlideshow.test.d.ts.map +1 -0
- package/dist/__tests__/DocControlsSlideshow.test.js +88 -0
- package/dist/__tests__/DocControlsSlideshow.test.js.map +1 -0
- package/dist/__tests__/LinearDocView.test.d.ts +2 -0
- package/dist/__tests__/LinearDocView.test.d.ts.map +1 -0
- package/dist/__tests__/LinearDocView.test.js +160 -0
- package/dist/__tests__/LinearDocView.test.js.map +1 -0
- package/dist/__tests__/MarkdownRenderer.test.d.ts +2 -0
- package/dist/__tests__/MarkdownRenderer.test.d.ts.map +1 -0
- package/dist/__tests__/MarkdownRenderer.test.js +208 -0
- package/dist/__tests__/MarkdownRenderer.test.js.map +1 -0
- package/dist/__tests__/exports.test.d.ts +2 -0
- package/dist/__tests__/exports.test.d.ts.map +1 -0
- package/dist/__tests__/exports.test.js +48 -0
- package/dist/__tests__/exports.test.js.map +1 -0
- package/dist/hooks/AudioProvider.d.ts +71 -0
- package/dist/hooks/AudioProvider.d.ts.map +1 -0
- package/dist/hooks/AudioProvider.js +52 -0
- package/dist/hooks/AudioProvider.js.map +1 -0
- package/dist/hooks/MediaContext.d.ts +35 -0
- package/dist/hooks/MediaContext.d.ts.map +1 -0
- package/dist/hooks/MediaContext.js +66 -0
- package/dist/hooks/MediaContext.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAudioSync.d.ts +18 -0
- package/dist/hooks/useAudioSync.d.ts.map +1 -0
- package/dist/hooks/useAudioSync.js +338 -0
- package/dist/hooks/useAudioSync.js.map +1 -0
- package/dist/hooks/useDocPlayback.d.ts +47 -0
- package/dist/hooks/useDocPlayback.d.ts.map +1 -0
- package/dist/hooks/useDocPlayback.js +176 -0
- package/dist/hooks/useDocPlayback.js.map +1 -0
- package/dist/hooks/useViewportOrientation.d.ts +31 -0
- package/dist/hooks/useViewportOrientation.d.ts.map +1 -0
- package/dist/hooks/useViewportOrientation.js +92 -0
- package/dist/hooks/useViewportOrientation.js.map +1 -0
- package/dist/index.d.ts +25 -563
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -3179
- package/dist/index.js.map +1 -1
- package/dist/layers/ImageLayer.d.ts +23 -0
- package/dist/layers/ImageLayer.d.ts.map +1 -0
- package/dist/layers/ImageLayer.js +104 -0
- package/dist/layers/ImageLayer.js.map +1 -0
- package/dist/layers/MapLayer.d.ts +29 -0
- package/dist/layers/MapLayer.d.ts.map +1 -0
- package/dist/layers/MapLayer.js +97 -0
- package/dist/layers/MapLayer.js.map +1 -0
- package/dist/layers/ShapeLayer.d.ts +20 -0
- package/dist/layers/ShapeLayer.d.ts.map +1 -0
- package/dist/layers/ShapeLayer.js +35 -0
- package/dist/layers/ShapeLayer.js.map +1 -0
- package/dist/layers/TextLayer.d.ts +23 -0
- package/dist/layers/TextLayer.d.ts.map +1 -0
- package/dist/layers/TextLayer.js +126 -0
- package/dist/layers/TextLayer.js.map +1 -0
- package/dist/layers/VideoLayer.d.ts +40 -0
- package/dist/layers/VideoLayer.d.ts.map +1 -0
- package/dist/layers/VideoLayer.js +105 -0
- package/dist/layers/VideoLayer.js.map +1 -0
- package/dist/layers/index.d.ts +6 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +6 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/squisq-player.global.js +1 -1
- package/dist/standalone-entry.d.ts +61 -0
- package/dist/standalone-entry.d.ts.map +1 -0
- package/dist/standalone-entry.js +169 -0
- package/dist/standalone-entry.js.map +1 -0
- package/dist/standalone-source.js +1 -1
- package/dist/types.d.ts +131 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/animationUtils.d.ts +8 -0
- package/dist/utils/animationUtils.d.ts.map +1 -0
- package/dist/utils/animationUtils.js +8 -0
- package/dist/utils/animationUtils.js.map +1 -0
- package/dist/utils/layerUtils.d.ts +17 -0
- package/dist/utils/layerUtils.d.ts.map +1 -0
- package/dist/utils/layerUtils.js +37 -0
- package/dist/utils/layerUtils.js.map +1 -0
- package/dist/utils/mapTileUtils.d.ts +105 -0
- package/dist/utils/mapTileUtils.d.ts.map +1 -0
- package/dist/utils/mapTileUtils.js +268 -0
- package/dist/utils/mapTileUtils.js.map +1 -0
- package/package.json +3 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocPlayer.js","sourceRoot":"","sources":["../src/DocPlayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DocPlayerWithSidebar Component
|
|
3
|
+
*
|
|
4
|
+
* Wrapper that composes DocPlayer + DocControlsSidebar in a horizontal
|
|
5
|
+
* flex layout. The video renders on the left with only a scrubber at the
|
|
6
|
+
* bottom, and playback controls render in a vertical sidebar on the right.
|
|
7
|
+
*
|
|
8
|
+
* This layout eliminates black bars for portrait (9:16) video in portrait
|
|
9
|
+
* viewports by placing controls in the space that would otherwise be unused.
|
|
10
|
+
*
|
|
11
|
+
* Uses refs + forceUpdate pattern to avoid infinite render loops between
|
|
12
|
+
* the DocPlayer's callbacks and this component's state. The DocPlayer
|
|
13
|
+
* fires onPlaybackStateChange frequently (every currentTime tick), so we
|
|
14
|
+
* store state in a ref and only trigger re-renders at controlled intervals.
|
|
15
|
+
*
|
|
16
|
+
* Related Files:
|
|
17
|
+
* - DocPlayer.tsx -- Core player (renders with showControls=false, showScrubber=true)
|
|
18
|
+
* - DocControlsSidebar.tsx -- Vertical sidebar controls
|
|
19
|
+
*/
|
|
20
|
+
import type { Doc } from '@bendyline/squisq/schemas';
|
|
21
|
+
import type { ViewportConfig } from '@bendyline/squisq/schemas';
|
|
22
|
+
import type { AudioProvider } from './hooks/AudioProvider';
|
|
23
|
+
interface DocPlayerWithSidebarProps {
|
|
24
|
+
script: Doc;
|
|
25
|
+
basePath: string;
|
|
26
|
+
autoPlay?: boolean;
|
|
27
|
+
onEnded?: () => void;
|
|
28
|
+
onTimeUpdate?: (time: number) => void;
|
|
29
|
+
audioProvider?: AudioProvider;
|
|
30
|
+
muted?: boolean;
|
|
31
|
+
captionsEnabled?: boolean;
|
|
32
|
+
isFullscreen?: boolean;
|
|
33
|
+
onFullscreenToggle?: () => void;
|
|
34
|
+
/** Force a specific viewport preset, bypassing window-based orientation detection. */
|
|
35
|
+
forceViewport?: ViewportConfig;
|
|
36
|
+
/** Called when playing state changes */
|
|
37
|
+
onPlayingChange?: (isPlaying: boolean) => void;
|
|
38
|
+
}
|
|
39
|
+
export declare function DocPlayerWithSidebar({ script, basePath, autoPlay, onEnded, onTimeUpdate, audioProvider, muted, captionsEnabled, isFullscreen, onFullscreenToggle, forceViewport, onPlayingChange, }: DocPlayerWithSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=DocPlayerWithSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocPlayerWithSidebar.d.ts","sourceRoot":"","sources":["../src/DocPlayerWithSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,UAAU,yBAAyB;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,sFAAsF;IACtF,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,wCAAwC;IACxC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAgBD,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,KAAK,EACL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,EAAE,yBAAyB,2CAiE3B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* DocPlayerWithSidebar Component
|
|
4
|
+
*
|
|
5
|
+
* Wrapper that composes DocPlayer + DocControlsSidebar in a horizontal
|
|
6
|
+
* flex layout. The video renders on the left with only a scrubber at the
|
|
7
|
+
* bottom, and playback controls render in a vertical sidebar on the right.
|
|
8
|
+
*
|
|
9
|
+
* This layout eliminates black bars for portrait (9:16) video in portrait
|
|
10
|
+
* viewports by placing controls in the space that would otherwise be unused.
|
|
11
|
+
*
|
|
12
|
+
* Uses refs + forceUpdate pattern to avoid infinite render loops between
|
|
13
|
+
* the DocPlayer's callbacks and this component's state. The DocPlayer
|
|
14
|
+
* fires onPlaybackStateChange frequently (every currentTime tick), so we
|
|
15
|
+
* store state in a ref and only trigger re-renders at controlled intervals.
|
|
16
|
+
*
|
|
17
|
+
* Related Files:
|
|
18
|
+
* - DocPlayer.tsx -- Core player (renders with showControls=false, showScrubber=true)
|
|
19
|
+
* - DocControlsSidebar.tsx -- Vertical sidebar controls
|
|
20
|
+
*/
|
|
21
|
+
import { useRef, useState, useCallback, useEffect } from 'react';
|
|
22
|
+
import { DocPlayer } from './DocPlayer';
|
|
23
|
+
import { DocControlsSidebar } from './DocControlsSidebar';
|
|
24
|
+
const DEFAULT_STATE = {
|
|
25
|
+
isPlaying: false,
|
|
26
|
+
currentTime: 0,
|
|
27
|
+
totalDuration: 0,
|
|
28
|
+
currentBlockIndex: 0,
|
|
29
|
+
totalBlocks: 0,
|
|
30
|
+
docProgress: 0,
|
|
31
|
+
hasCaptions: false,
|
|
32
|
+
captionsEnabled: false,
|
|
33
|
+
currentSegmentIndex: 0,
|
|
34
|
+
currentSegmentName: null,
|
|
35
|
+
currentBlock: null,
|
|
36
|
+
};
|
|
37
|
+
export function DocPlayerWithSidebar({ script, basePath, autoPlay = false, onEnded, onTimeUpdate, audioProvider, muted, captionsEnabled, isFullscreen, onFullscreenToggle, forceViewport, onPlayingChange, }) {
|
|
38
|
+
// Store playback state in a ref to avoid triggering re-renders from DocPlayer callbacks
|
|
39
|
+
const stateRef = useRef(DEFAULT_STATE);
|
|
40
|
+
const actionsRef = useRef(null);
|
|
41
|
+
const wasPlayingRef = useRef(false);
|
|
42
|
+
// Use a counter to force sidebar re-renders at controlled intervals
|
|
43
|
+
const [, setTick] = useState(0);
|
|
44
|
+
// Update ref without triggering re-render
|
|
45
|
+
const handleStateChange = useCallback((state) => {
|
|
46
|
+
stateRef.current = state;
|
|
47
|
+
if (onPlayingChange && state.isPlaying !== wasPlayingRef.current) {
|
|
48
|
+
wasPlayingRef.current = state.isPlaying;
|
|
49
|
+
onPlayingChange(state.isPlaying);
|
|
50
|
+
}
|
|
51
|
+
}, [onPlayingChange]);
|
|
52
|
+
const handleControlsReady = useCallback((controls) => {
|
|
53
|
+
const isFirst = !actionsRef.current;
|
|
54
|
+
actionsRef.current = controls;
|
|
55
|
+
// Force one re-render on first call to show the sidebar
|
|
56
|
+
if (isFirst)
|
|
57
|
+
setTick((t) => t + 1);
|
|
58
|
+
}, []);
|
|
59
|
+
// Periodically sync the ref to trigger sidebar UI updates
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
const interval = setInterval(() => {
|
|
62
|
+
setTick((t) => t + 1);
|
|
63
|
+
}, 250); // 4 updates per second is smooth enough for time/progress display
|
|
64
|
+
return () => clearInterval(interval);
|
|
65
|
+
}, []);
|
|
66
|
+
return (_jsxs("div", { className: "doc-player-sidebar-layout", children: [_jsx("div", { className: "doc-player-sidebar-layout__video", children: _jsx(DocPlayer, { script: script, basePath: basePath, autoPlay: autoPlay, onEnded: onEnded, onTimeUpdate: onTimeUpdate, audioProvider: audioProvider, muted: muted, captionsEnabled: captionsEnabled, showControls: isFullscreen, showScrubber: !isFullscreen, onPlaybackStateChange: handleStateChange, onControlsReady: handleControlsReady, isFullscreen: isFullscreen, onFullscreenToggle: onFullscreenToggle, forceViewport: forceViewport }) }), actionsRef.current && (_jsx(DocControlsSidebar, { state: stateRef.current, actions: actionsRef.current }))] }));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=DocPlayerWithSidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocPlayerWithSidebar.js","sourceRoot":"","sources":["../src/DocPlayerWithSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DocProgressBar Component
|
|
3
|
+
*
|
|
4
|
+
* Interactive progress/scrubber bar for doc playback. Shows a track with
|
|
5
|
+
* progress fill, block markers as clickable dots, hover tooltip with time
|
|
6
|
+
* and block title, and a hover line indicator.
|
|
7
|
+
*
|
|
8
|
+
* Extracted from DocPlayer to enable reuse across different control layouts
|
|
9
|
+
* (overlay, sidebar, bottom). When used in sidebar/bottom layouts, this
|
|
10
|
+
* component renders at the bottom of the video while other controls are
|
|
11
|
+
* externalized.
|
|
12
|
+
*
|
|
13
|
+
* Related Files:
|
|
14
|
+
* - DocPlayer.tsx -- Parent component
|
|
15
|
+
* - DocControlsOverlay.tsx -- Uses this within the overlay
|
|
16
|
+
* - types.ts -- Shared type definitions
|
|
17
|
+
*/
|
|
18
|
+
import type { PlaybackState, PlaybackActions, BlockMarker } from './types';
|
|
19
|
+
import type { Block } from '@bendyline/squisq/schemas';
|
|
20
|
+
interface DocProgressBarProps {
|
|
21
|
+
state: PlaybackState;
|
|
22
|
+
actions: PlaybackActions;
|
|
23
|
+
blockMarkers: BlockMarker[];
|
|
24
|
+
/** All expanded blocks for hover lookup */
|
|
25
|
+
expandedBlocks: Block[];
|
|
26
|
+
/** Optional: get block title for hover tooltip */
|
|
27
|
+
getBlockTitle?: (block: Block) => string;
|
|
28
|
+
}
|
|
29
|
+
export declare function DocProgressBar({ state, actions, blockMarkers, expandedBlocks, getBlockTitle, }: DocProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=DocProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocProgressBar.d.ts","sourceRoot":"","sources":["../src/DocProgressBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;CAC1C;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,YAAY,EACZ,cAAc,EACd,aAAa,GACd,EAAE,mBAAmB,2CAgKrB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* DocProgressBar Component
|
|
4
|
+
*
|
|
5
|
+
* Interactive progress/scrubber bar for doc playback. Shows a track with
|
|
6
|
+
* progress fill, block markers as clickable dots, hover tooltip with time
|
|
7
|
+
* and block title, and a hover line indicator.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from DocPlayer to enable reuse across different control layouts
|
|
10
|
+
* (overlay, sidebar, bottom). When used in sidebar/bottom layouts, this
|
|
11
|
+
* component renders at the bottom of the video while other controls are
|
|
12
|
+
* externalized.
|
|
13
|
+
*
|
|
14
|
+
* Related Files:
|
|
15
|
+
* - DocPlayer.tsx -- Parent component
|
|
16
|
+
* - DocControlsOverlay.tsx -- Uses this within the overlay
|
|
17
|
+
* - types.ts -- Shared type definitions
|
|
18
|
+
*/
|
|
19
|
+
import { useRef, useState, useCallback } from 'react';
|
|
20
|
+
import { formatTime } from './types';
|
|
21
|
+
export function DocProgressBar({ state, actions, blockMarkers, expandedBlocks, getBlockTitle, }) {
|
|
22
|
+
const progressBarRef = useRef(null);
|
|
23
|
+
const [hoverPosition, setHoverPosition] = useState(null);
|
|
24
|
+
const handleProgressHover = useCallback((e) => {
|
|
25
|
+
const bar = progressBarRef.current;
|
|
26
|
+
if (!bar)
|
|
27
|
+
return;
|
|
28
|
+
const rect = bar.getBoundingClientRect();
|
|
29
|
+
const x = e.clientX - rect.left;
|
|
30
|
+
const progress = Math.max(0, Math.min(1, x / rect.width));
|
|
31
|
+
setHoverPosition(progress);
|
|
32
|
+
}, []);
|
|
33
|
+
const handleProgressLeave = useCallback(() => {
|
|
34
|
+
setHoverPosition(null);
|
|
35
|
+
}, []);
|
|
36
|
+
const getBlockAtTimeLocal = useCallback((time) => {
|
|
37
|
+
for (let i = expandedBlocks.length - 1; i >= 0; i--) {
|
|
38
|
+
const blk = expandedBlocks[i];
|
|
39
|
+
if (time >= blk.startTime) {
|
|
40
|
+
return { block: blk, index: i };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return expandedBlocks.length > 0 ? { block: expandedBlocks[0], index: 0 } : null;
|
|
44
|
+
}, [expandedBlocks]);
|
|
45
|
+
return (_jsxs("div", { ref: progressBarRef, style: {
|
|
46
|
+
flex: 1,
|
|
47
|
+
height: '24px',
|
|
48
|
+
cursor: 'pointer',
|
|
49
|
+
position: 'relative',
|
|
50
|
+
display: 'flex',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
}, onClick: (e) => {
|
|
53
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
54
|
+
const x = e.clientX - rect.left;
|
|
55
|
+
const progress = x / rect.width;
|
|
56
|
+
actions.seekTo(progress * state.totalDuration);
|
|
57
|
+
}, onMouseMove: handleProgressHover, onMouseLeave: handleProgressLeave, children: [_jsx("div", { style: {
|
|
58
|
+
position: 'absolute',
|
|
59
|
+
left: 0,
|
|
60
|
+
right: 0,
|
|
61
|
+
height: '6px',
|
|
62
|
+
background: 'rgba(255,255,255,0.2)',
|
|
63
|
+
borderRadius: '3px',
|
|
64
|
+
} }), _jsx("div", { style: {
|
|
65
|
+
position: 'absolute',
|
|
66
|
+
left: 0,
|
|
67
|
+
width: `${state.docProgress * 100}%`,
|
|
68
|
+
height: '6px',
|
|
69
|
+
background: '#3d5a80',
|
|
70
|
+
borderRadius: '3px',
|
|
71
|
+
transition: 'width 0.1s',
|
|
72
|
+
} }), blockMarkers.map((marker, i) => (_jsx("div", { style: {
|
|
73
|
+
position: 'absolute',
|
|
74
|
+
left: `${marker.position}%`,
|
|
75
|
+
transform: 'translateX(-50%)',
|
|
76
|
+
width: '10px',
|
|
77
|
+
height: '10px',
|
|
78
|
+
borderRadius: '50%',
|
|
79
|
+
background: marker.index === state.currentBlockIndex ? '#ffffff' : 'rgba(255,255,255,0.5)',
|
|
80
|
+
border: '2px solid #3d5a80',
|
|
81
|
+
cursor: 'pointer',
|
|
82
|
+
zIndex: 2,
|
|
83
|
+
transition: 'transform 0.15s, background 0.15s',
|
|
84
|
+
}, title: marker.title, onClick: (e) => {
|
|
85
|
+
e.stopPropagation();
|
|
86
|
+
actions.seekTo(marker.block.startTime);
|
|
87
|
+
}, onMouseEnter: (e) => {
|
|
88
|
+
e.currentTarget.style.transform = 'translateX(-50%) scale(1.3)';
|
|
89
|
+
}, onMouseLeave: (e) => {
|
|
90
|
+
e.currentTarget.style.transform = 'translateX(-50%)';
|
|
91
|
+
} }, `${marker.block.id}-${i}`))), hoverPosition !== null && (_jsxs("div", { style: {
|
|
92
|
+
position: 'absolute',
|
|
93
|
+
left: `${hoverPosition * 100}%`,
|
|
94
|
+
bottom: '100%',
|
|
95
|
+
transform: 'translateX(-50%)',
|
|
96
|
+
marginBottom: '8px',
|
|
97
|
+
padding: '6px 10px',
|
|
98
|
+
background: 'rgba(0,0,0,0.9)',
|
|
99
|
+
borderRadius: '4px',
|
|
100
|
+
whiteSpace: 'nowrap',
|
|
101
|
+
pointerEvents: 'none',
|
|
102
|
+
zIndex: 10,
|
|
103
|
+
}, children: [_jsx("div", { style: { color: 'white', fontSize: '12px', fontFamily: 'monospace' }, children: formatTime(hoverPosition * state.totalDuration) }), (() => {
|
|
104
|
+
const hoverTime = hoverPosition * state.totalDuration;
|
|
105
|
+
const slideInfo = getBlockAtTimeLocal(hoverTime);
|
|
106
|
+
if (slideInfo && getBlockTitle) {
|
|
107
|
+
return (_jsx("div", { style: { color: 'rgba(255,255,255,0.7)', fontSize: '11px', marginTop: '2px' }, children: getBlockTitle(slideInfo.block) }));
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
})()] })), hoverPosition !== null && (_jsx("div", { style: {
|
|
111
|
+
position: 'absolute',
|
|
112
|
+
left: `${hoverPosition * 100}%`,
|
|
113
|
+
top: '50%',
|
|
114
|
+
transform: 'translate(-50%, -50%)',
|
|
115
|
+
width: '2px',
|
|
116
|
+
height: '16px',
|
|
117
|
+
background: 'rgba(255,255,255,0.6)',
|
|
118
|
+
pointerEvents: 'none',
|
|
119
|
+
zIndex: 1,
|
|
120
|
+
} }))] }));
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=DocProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocProgressBar.js","sourceRoot":"","sources":["../src/DocProgressBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinearDocView Component
|
|
3
|
+
*
|
|
4
|
+
* Renders a Doc as a long-scrolling document view. Each block is displayed
|
|
5
|
+
* as a readable section: non-annotated blocks render their markdown content
|
|
6
|
+
* as HTML, while template-annotated blocks render as inline SVG visual cards
|
|
7
|
+
* via BlockRenderer.
|
|
8
|
+
*
|
|
9
|
+
* This is the view used when `displayMode === 'linear'` in DocPlayer.
|
|
10
|
+
*
|
|
11
|
+
* Layout:
|
|
12
|
+
* - Scrollable container with max-width for readability
|
|
13
|
+
* - Headings from the block hierarchy rendered as HTML headings
|
|
14
|
+
* - Body content rendered via MarkdownRenderer
|
|
15
|
+
* - Template-annotated sections show an SVG card (BlockRenderer)
|
|
16
|
+
* using `getLayers()` for on-demand layer computation
|
|
17
|
+
* - Blocks are rendered recursively to preserve the heading hierarchy
|
|
18
|
+
*/
|
|
19
|
+
import type { Doc } from '@bendyline/squisq/schemas';
|
|
20
|
+
import type { ViewportConfig } from '@bendyline/squisq/schemas';
|
|
21
|
+
import type { Theme } from '@bendyline/squisq/schemas';
|
|
22
|
+
export interface LinearDocViewProps {
|
|
23
|
+
/** The Doc to render */
|
|
24
|
+
doc: Doc;
|
|
25
|
+
/** Base path for resolving media URLs (images, etc.) */
|
|
26
|
+
basePath?: string;
|
|
27
|
+
/** Viewport config for SVG card rendering (default: landscape) */
|
|
28
|
+
viewport?: ViewportConfig;
|
|
29
|
+
/** Optional CSS class for the outer container */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** Theme to use for rendering (default: DEFAULT_THEME from the theme library) */
|
|
32
|
+
theme?: Theme;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Renders a Doc as a long-scrolling, readable document.
|
|
36
|
+
*
|
|
37
|
+
* Non-annotated blocks are rendered as HTML text (headings, paragraphs,
|
|
38
|
+
* lists, etc.) via MarkdownRenderer. Template-annotated blocks are
|
|
39
|
+
* rendered as inline SVG visual cards via BlockRenderer.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <LinearDocView doc={doc} basePath="/media/" />
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function LinearDocView({ doc, basePath, viewport, className, theme, }: LinearDocViewProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=LinearDocView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearDocView.d.ts","sourceRoot":"","sources":["../src/LinearDocView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAmB,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAWvD,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AA2MD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,QAAc,EACd,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,2CA+CpB"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* LinearDocView Component
|
|
4
|
+
*
|
|
5
|
+
* Renders a Doc as a long-scrolling document view. Each block is displayed
|
|
6
|
+
* as a readable section: non-annotated blocks render their markdown content
|
|
7
|
+
* as HTML, while template-annotated blocks render as inline SVG visual cards
|
|
8
|
+
* via BlockRenderer.
|
|
9
|
+
*
|
|
10
|
+
* This is the view used when `displayMode === 'linear'` in DocPlayer.
|
|
11
|
+
*
|
|
12
|
+
* Layout:
|
|
13
|
+
* - Scrollable container with max-width for readability
|
|
14
|
+
* - Headings from the block hierarchy rendered as HTML headings
|
|
15
|
+
* - Body content rendered via MarkdownRenderer
|
|
16
|
+
* - Template-annotated sections show an SVG card (BlockRenderer)
|
|
17
|
+
* using `getLayers()` for on-demand layer computation
|
|
18
|
+
* - Blocks are rendered recursively to preserve the heading hierarchy
|
|
19
|
+
*/
|
|
20
|
+
import { useMemo } from 'react';
|
|
21
|
+
import { VIEWPORT_PRESETS } from '@bendyline/squisq/schemas';
|
|
22
|
+
import { getLayers, hasTemplate, DEFAULT_THEME } from '@bendyline/squisq/doc';
|
|
23
|
+
import { extractPlainText } from '@bendyline/squisq/markdown';
|
|
24
|
+
import { BlockRenderer } from './BlockRenderer';
|
|
25
|
+
import { MarkdownRenderer } from './MarkdownRenderer';
|
|
26
|
+
// ── Helpers ────────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* Determine whether a block has a template annotation that should be
|
|
29
|
+
* rendered as a visual SVG card. A block is "annotated" when:
|
|
30
|
+
* 1. Its sourceHeading has a templateAnnotation, AND
|
|
31
|
+
* 2. The annotated template exists in the registry
|
|
32
|
+
*/
|
|
33
|
+
function isAnnotatedBlock(block) {
|
|
34
|
+
const annotation = block.sourceHeading?.templateAnnotation;
|
|
35
|
+
if (!annotation)
|
|
36
|
+
return false;
|
|
37
|
+
return hasTemplate(annotation.template);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Count total blocks in a hierarchy (for RenderContext.totalBlocks).
|
|
41
|
+
*/
|
|
42
|
+
function countAll(blocks) {
|
|
43
|
+
let count = 0;
|
|
44
|
+
for (const b of blocks) {
|
|
45
|
+
count++;
|
|
46
|
+
if (b.children)
|
|
47
|
+
count += countAll(b.children);
|
|
48
|
+
}
|
|
49
|
+
return count;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Render a single block section: heading + body content or SVG card.
|
|
53
|
+
* Recurses into children to render the full heading tree.
|
|
54
|
+
*/
|
|
55
|
+
function BlockSection({ block, basePath, viewport, renderContext, blockIndex }) {
|
|
56
|
+
const isAnnotated = isAnnotatedBlock(block);
|
|
57
|
+
// For annotated blocks, compute layers and build a Block with them
|
|
58
|
+
const visualBlock = useMemo(() => {
|
|
59
|
+
if (!isAnnotated)
|
|
60
|
+
return null;
|
|
61
|
+
const annotation = block.sourceHeading.templateAnnotation;
|
|
62
|
+
const headingText = extractPlainText(block.sourceHeading);
|
|
63
|
+
const bodyText = extractBodyPlainText(block.contents);
|
|
64
|
+
// Build a TemplateBlock-compatible object
|
|
65
|
+
const templateBlock = {
|
|
66
|
+
id: block.id,
|
|
67
|
+
template: annotation.template,
|
|
68
|
+
startTime: 0,
|
|
69
|
+
duration: 1,
|
|
70
|
+
audioSegment: 0,
|
|
71
|
+
title: headingText,
|
|
72
|
+
...getTemplateDefaults(annotation.template, headingText, bodyText, block.contents),
|
|
73
|
+
...annotation.params,
|
|
74
|
+
...block.templateOverrides,
|
|
75
|
+
};
|
|
76
|
+
// Compute layers via getLayers
|
|
77
|
+
const ctx = {
|
|
78
|
+
...renderContext,
|
|
79
|
+
blockIndex,
|
|
80
|
+
};
|
|
81
|
+
const layers = getLayers(templateBlock, ctx);
|
|
82
|
+
return {
|
|
83
|
+
...block,
|
|
84
|
+
layers,
|
|
85
|
+
template: annotation.template,
|
|
86
|
+
};
|
|
87
|
+
}, [block, isAnnotated, renderContext, blockIndex]);
|
|
88
|
+
return (_jsxs("div", { className: "squisq-linear-section", "data-block-id": block.id, "data-template": isAnnotated ? block.sourceHeading?.templateAnnotation?.template : undefined, children: [block.sourceHeading && !isAnnotated && _jsx(MarkdownRenderer, { nodes: [block.sourceHeading] }), isAnnotated && visualBlock && (_jsxs("div", { className: "squisq-linear-card", children: [block.sourceHeading && (_jsx("div", { className: "squisq-linear-card-label squisq-md", children: _jsx(MarkdownRenderer, { nodes: [block.sourceHeading] }) })), _jsx("div", { className: "squisq-linear-card-svg", style: {
|
|
89
|
+
width: '100%',
|
|
90
|
+
aspectRatio: `${viewport.width} / ${viewport.height}`,
|
|
91
|
+
overflow: 'hidden',
|
|
92
|
+
borderRadius: '8px',
|
|
93
|
+
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.12)',
|
|
94
|
+
marginBottom: '1em',
|
|
95
|
+
}, children: _jsx(BlockRenderer, { block: visualBlock, blockTime: 0, basePath: basePath, viewport: viewport }) })] })), !isAnnotated && block.contents && block.contents.length > 0 && (_jsx(MarkdownRenderer, { nodes: block.contents })), block.children && block.children.length > 0 && (_jsx("div", { className: "squisq-linear-children", children: block.children.map((child, i) => (_jsx(BlockSection, { block: child, basePath: basePath, viewport: viewport, renderContext: renderContext, blockIndex: blockIndex + i + 1 }, child.id))) }))] }));
|
|
96
|
+
}
|
|
97
|
+
// ── Template Defaults (mirrored from PreviewPanel) ─────────────────
|
|
98
|
+
/** Extract plain text from block contents. */
|
|
99
|
+
function extractBodyPlainText(contents) {
|
|
100
|
+
if (!contents || contents.length === 0)
|
|
101
|
+
return '';
|
|
102
|
+
return contents
|
|
103
|
+
.map((n) => extractPlainText(n))
|
|
104
|
+
.join('\n')
|
|
105
|
+
.trim();
|
|
106
|
+
}
|
|
107
|
+
/** Extract list items as plain text. */
|
|
108
|
+
function extractListItems(contents) {
|
|
109
|
+
if (!contents)
|
|
110
|
+
return [];
|
|
111
|
+
const items = [];
|
|
112
|
+
for (const node of contents) {
|
|
113
|
+
if (node.type === 'list') {
|
|
114
|
+
for (const item of node.children) {
|
|
115
|
+
const text = extractPlainText(item).trim();
|
|
116
|
+
if (text)
|
|
117
|
+
items.push(text);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return items;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Provide sensible default fields for templates that require more than
|
|
125
|
+
* just a `title`. Prevents crashes from undefined required fields.
|
|
126
|
+
*/
|
|
127
|
+
function getTemplateDefaults(templateName, headingText, bodyText, contents) {
|
|
128
|
+
switch (templateName) {
|
|
129
|
+
case 'statHighlight':
|
|
130
|
+
return { stat: headingText, description: bodyText || headingText };
|
|
131
|
+
case 'quoteBlock':
|
|
132
|
+
case 'fullBleedQuote':
|
|
133
|
+
case 'pullQuote':
|
|
134
|
+
return { quote: bodyText || headingText };
|
|
135
|
+
case 'factCard':
|
|
136
|
+
return { fact: headingText, explanation: bodyText || headingText };
|
|
137
|
+
case 'comparisonBar':
|
|
138
|
+
return { leftLabel: 'A', leftValue: 60, rightLabel: 'B', rightValue: 40 };
|
|
139
|
+
case 'listBlock':
|
|
140
|
+
return { items: extractListItems(contents) || ['Item 1', 'Item 2', 'Item 3'] };
|
|
141
|
+
case 'definitionCard':
|
|
142
|
+
return { term: headingText, definition: bodyText || headingText };
|
|
143
|
+
case 'dateEvent':
|
|
144
|
+
return { date: headingText, description: bodyText || headingText };
|
|
145
|
+
default:
|
|
146
|
+
return {};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// ── Main Component ─────────────────────────────────────────────────
|
|
150
|
+
/**
|
|
151
|
+
* Renders a Doc as a long-scrolling, readable document.
|
|
152
|
+
*
|
|
153
|
+
* Non-annotated blocks are rendered as HTML text (headings, paragraphs,
|
|
154
|
+
* lists, etc.) via MarkdownRenderer. Template-annotated blocks are
|
|
155
|
+
* rendered as inline SVG visual cards via BlockRenderer.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```tsx
|
|
159
|
+
* <LinearDocView doc={doc} basePath="/media/" />
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export function LinearDocView({ doc, basePath = '/', viewport, className, theme, }) {
|
|
163
|
+
const activeViewport = viewport ?? VIEWPORT_PRESETS.landscape;
|
|
164
|
+
const totalBlocks = useMemo(() => countAll(doc.blocks), [doc.blocks]);
|
|
165
|
+
const renderContext = useMemo(() => ({
|
|
166
|
+
theme: theme ?? DEFAULT_THEME,
|
|
167
|
+
viewport: activeViewport,
|
|
168
|
+
totalBlocks,
|
|
169
|
+
}), [activeViewport, totalBlocks, theme]);
|
|
170
|
+
return (_jsx("div", { className: `squisq-linear ${className || ''}`, style: {
|
|
171
|
+
width: '100%',
|
|
172
|
+
height: '100%',
|
|
173
|
+
overflowY: 'auto',
|
|
174
|
+
overflowX: 'hidden',
|
|
175
|
+
}, children: _jsx("div", { className: "squisq-linear-content", style: {
|
|
176
|
+
maxWidth: '720px',
|
|
177
|
+
margin: '0 auto',
|
|
178
|
+
padding: '24px 16px',
|
|
179
|
+
lineHeight: 1.7,
|
|
180
|
+
fontSize: '16px',
|
|
181
|
+
color: 'var(--squisq-text, #1f2937)',
|
|
182
|
+
}, children: doc.blocks.map((block, i) => (_jsx(BlockSection, { block: block, basePath: basePath, viewport: activeViewport, renderContext: renderContext, blockIndex: i }, block.id))) }) }));
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=LinearDocView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearDocView.js","sourceRoot":"","sources":["../src/LinearDocView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownRenderer Component
|
|
3
|
+
*
|
|
4
|
+
* Converts a MarkdownBlockNode[] AST into React elements for rendering
|
|
5
|
+
* markdown content as readable HTML. Used by LinearDocView to display
|
|
6
|
+
* non-annotated document sections as flowing text.
|
|
7
|
+
*
|
|
8
|
+
* Supports all block and inline node types from the markdown DOM:
|
|
9
|
+
* - Block: paragraph, heading, blockquote, list, code, table,
|
|
10
|
+
* thematicBreak, math, htmlBlock, definitionList, directives
|
|
11
|
+
* - Inline: text, emphasis, strong, delete, inlineCode, link,
|
|
12
|
+
* image, break, inlineMath, htmlInline, footnoteReference
|
|
13
|
+
*
|
|
14
|
+
* All elements use the `squisq-md-*` CSS class prefix for styling.
|
|
15
|
+
*/
|
|
16
|
+
import type { MarkdownBlockNode } from '@bendyline/squisq/markdown';
|
|
17
|
+
export interface MarkdownRendererProps {
|
|
18
|
+
/** Block-level AST nodes to render */
|
|
19
|
+
nodes: MarkdownBlockNode[];
|
|
20
|
+
/** Optional CSS class for the wrapper element */
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Renders MarkdownBlockNode[] AST as React HTML elements.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <MarkdownRenderer nodes={block.contents} />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function MarkdownRenderer({ nodes, className }: MarkdownRendererProps): import("react/jsx-runtime").JSX.Element | null;
|
|
32
|
+
//# sourceMappingURL=MarkdownRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../src/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2TD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,qBAAqB,kDAI3E"}
|