@bendyline/squisq-editor-react 1.6.1 → 1.6.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 (44) hide show
  1. package/dist/index.d.ts +87 -41
  2. package/dist/index.js +8263 -6705
  3. package/dist/index.js.map +1 -1
  4. package/dist/styles/index.css +841 -91
  5. package/package.json +4 -4
  6. package/src/BlockPropertiesPopover.tsx +23 -7
  7. package/src/EditorShell.tsx +65 -20
  8. package/src/MediaBin.tsx +171 -28
  9. package/src/PreviewControls.tsx +177 -44
  10. package/src/PreviewPanel.tsx +2 -0
  11. package/src/TemplateAnnotation.ts +22 -7
  12. package/src/TemplateContentPreview.tsx +56 -0
  13. package/src/TemplatePicker.tsx +295 -128
  14. package/src/ThemeCustomizerPanel.tsx +22 -15
  15. package/src/Toolbar.tsx +527 -207
  16. package/src/TransitionPicker.tsx +8 -1
  17. package/src/ViewSwitcher.tsx +4 -4
  18. package/src/WysiwygEditor.tsx +45 -3
  19. package/src/__tests__/buildPreviewDocTransition.test.ts +1 -2
  20. package/src/__tests__/editorShellProps.test.tsx +268 -1
  21. package/src/__tests__/headingTransition.test.ts +59 -9
  22. package/src/__tests__/imageEditorShell.test.tsx +23 -0
  23. package/src/__tests__/mediaReferences.test.ts +82 -0
  24. package/src/__tests__/previewControls.test.tsx +94 -1
  25. package/src/__tests__/templateAnnotationRoundTrip.test.ts +23 -2
  26. package/src/__tests__/templateContentPreview.test.ts +101 -0
  27. package/src/__tests__/tiptapBridge.test.ts +47 -0
  28. package/src/diagram/DiagramWidget.tsx +6 -4
  29. package/src/headingTransition.ts +96 -21
  30. package/src/index.ts +2 -1
  31. package/src/mediaReferences.ts +299 -0
  32. package/src/scene/Scene.tsx +53 -7
  33. package/src/scene/SceneBlockWidget.tsx +6 -3
  34. package/src/scene/SceneSelection.tsx +19 -15
  35. package/src/scene/SceneSideToolbar.tsx +89 -0
  36. package/src/scene/layers/DiagramEdges.tsx +4 -3
  37. package/src/scene/layers/edgeGeometry.ts +23 -4
  38. package/src/scene/scene.css +142 -2
  39. package/src/scene/tools/ConnectTool.ts +113 -24
  40. package/src/scene/tools/DrawingConnectTool.ts +86 -16
  41. package/src/scene/tools/SceneTool.ts +2 -0
  42. package/src/styles/editor.css +862 -101
  43. package/src/templateContentPreviewResolver.ts +353 -0
  44. package/src/tiptapBridge.ts +60 -33
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode, CSSProperties, RefObject } from 'react';
4
- import { Doc, MediaProvider, Theme, ViewportPreset, ViewportConfig, CustomTemplateDefinition, SurfaceScheme, ImageEditDoc, ImageEditLayer } from '@bendyline/squisq/schemas';
4
+ import { Doc, MediaProvider, Theme, ViewportPreset, ViewportConfig, Block, CustomTemplateDefinition, MediaEntry, SurfaceScheme, ImageEditDoc, ImageEditLayer } from '@bendyline/squisq/schemas';
5
5
  import { MarkdownDocument, HeadingAttributes } from '@bendyline/squisq/markdown';
6
6
  import { ContentContainer } from '@bendyline/squisq/storage';
7
7
  import { DocumentVersionManager, SaveVersionOptions, SaveVersionResult, PrunePolicy } from '@bendyline/squisq/versions';
@@ -1549,6 +1549,10 @@ interface PreviewSettings {
1549
1549
  * that style. The single entry point so the toggle buttons persist in one
1550
1550
  * frontmatter write. */
1551
1551
  setCaptionMode: (mode: CaptionMode) => void;
1552
+ /** Whether Squisq should synthesize and show its managed cover slide. */
1553
+ activeCoverSlide: boolean;
1554
+ /** Enable/disable the managed cover slide. */
1555
+ setCoverSlideEnabled: (enabled: boolean) => void;
1552
1556
  /** User-authored themes (doc + browser library) for the picker's "Custom" group. */
1553
1557
  customThemes: Theme[];
1554
1558
  /** Open the custom-theme designer for a theme (or null to create a new one). */
@@ -1586,31 +1590,29 @@ declare function PreviewSettingsProvider({ doc, children, themeOverride, }: Prev
1586
1590
  * whole row in and out at a fixed window-width breakpoint, the controls
1587
1591
  * measure how many of them actually fit in the width the toolbar gives them
1588
1592
  * and keep that many inline, folding the rest — from the low-priority end of
1589
- * {@link CONTROL_KEYS} — into a single settings (gear) button's popover. As
1593
+ * {@link CONTROL_KEYS} — into a single ellipsis button's popover. As
1590
1594
  * the toolbar widens or narrows, controls migrate one at a time between the
1591
1595
  * inline row and the menu, so the available space is always well used and the
1592
1596
  * row never wraps onto a second line.
1593
1597
  */
1594
1598
  declare function PreviewToolbarControls(): react_jsx_runtime.JSX.Element;
1595
1599
  /**
1596
- * Segmented display-mode switch (Video / Slideshow / Document / Page) rendered
1597
- * as four connected buttons on the left of the Play toolbar the prominent,
1598
- * one-click counterpart to the old "Mode:" dropdown. Reads and writes the same
1599
- * `activeDisplayMode` in preview settings.
1600
+ * Segmented display-mode switch (Video / Slideshow / Document / Page), used
1601
+ * inline in the Use toolbar and inside its overflow popover. Reads and writes
1602
+ * the same `activeDisplayMode` in preview settings.
1600
1603
  */
1601
1604
  declare function PreviewModeSwitch(): react_jsx_runtime.JSX.Element;
1602
1605
  /**
1603
- * Segmented aspect-ratio switch (16:9 / 1:1 / 9:16 / 4:3) rendered as connected
1604
- * icon buttons on the left of the Play toolbar, next to the mode switch — the
1605
- * one-click counterpart to the old "Format:" dropdown. Reads and writes the
1606
- * same `activePreset` in preview settings.
1606
+ * Segmented aspect-ratio switch (16:9 / 1:1 / 9:16 / 4:3), used inline in the
1607
+ * Use toolbar and inside its overflow popover. Reads and writes the same
1608
+ * `activePreset` in preview settings.
1607
1609
  */
1608
1610
  declare function PreviewFormatSwitch(): react_jsx_runtime.JSX.Element;
1609
1611
 
1610
1612
  /**
1611
1613
  * ViewSwitcher
1612
1614
  *
1613
- * Tab bar for switching between Raw, WYSIWYG, and Preview editor views.
1615
+ * Tab bar for switching between Write, Source, and Use editor views.
1614
1616
  */
1615
1617
  interface ViewSwitcherProps {
1616
1618
  /** Additional class name */
@@ -1626,13 +1628,15 @@ interface ToolbarProps {
1626
1628
  className?: string;
1627
1629
  /** Whether the Files panel is currently shown */
1628
1630
  showFiles?: boolean;
1631
+ /** Number of files currently available through the MediaProvider. */
1632
+ fileCount?: number;
1629
1633
  /** Toggle the Files panel. When provided, a "Files" button appears in the toolbar. */
1630
1634
  onToggleFiles?: () => void;
1631
1635
  /** Content rendered at the left edge of the toolbar, before the view tabs. */
1632
1636
  slotLeft?: ReactNode;
1633
1637
  /** Content rendered immediately after the view tabs, on the left side of the
1634
1638
  * toolbar (before the formatting controls). Used for the preview mode
1635
- * switch in Play view. */
1639
+ * switch in Use view. */
1636
1640
  slotAfterTabs?: ReactNode;
1637
1641
  /** Content rendered after the formatting controls (in the middle area). */
1638
1642
  slotAfterActions?: ReactNode;
@@ -1650,7 +1654,7 @@ interface ToolbarProps {
1650
1654
  * - WYSIWYG: calls Tiptap chain commands (toggleBold, etc.)
1651
1655
  * - Raw: appends markdown syntax to the source
1652
1656
  */
1653
- declare function Toolbar({ className, showFiles, onToggleFiles, slotLeft, slotAfterTabs, slotAfterActions, slotRight, showPlayTab, }: ToolbarProps): react_jsx_runtime.JSX.Element;
1657
+ declare function Toolbar({ className, showFiles, fileCount, onToggleFiles, slotLeft, slotAfterTabs, slotAfterActions, slotRight, showPlayTab, }: ToolbarProps): react_jsx_runtime.JSX.Element;
1654
1658
 
1655
1659
  /**
1656
1660
  * VersionHistoryPanel
@@ -1700,8 +1704,18 @@ interface ThemeCustomizerPanelProps {
1700
1704
  onSave?: (theme: Theme, json: string) => void;
1701
1705
  /** Fired when the user clicks Reset. Host typically clears its persistent storage. */
1702
1706
  onReset?: () => void;
1707
+ /** Optional text trigger. Omit to use the compact icon trigger. */
1708
+ triggerLabel?: string;
1709
+ }
1710
+ declare function ThemeCustomizerPanel({ value, onChange, onSave, onReset, triggerLabel, }: ThemeCustomizerPanelProps): react_jsx_runtime.JSX.Element;
1711
+
1712
+ interface TemplatePreviewSource {
1713
+ block: Block;
1714
+ theme: Theme;
1715
+ viewport: ViewportConfig;
1716
+ basePath?: string;
1717
+ mediaProvider?: MediaProvider | null;
1703
1718
  }
1704
- declare function ThemeCustomizerPanel({ value, onChange, onSave, onReset, }: ThemeCustomizerPanelProps): react_jsx_runtime.JSX.Element;
1705
1719
 
1706
1720
  /**
1707
1721
  * Convert a camelCase template id to a human-readable label. Accepts both
@@ -1714,6 +1728,8 @@ declare function templateLabel(name: string, customTemplates?: readonly CustomTe
1714
1728
  interface TemplatePickerProps {
1715
1729
  value: string;
1716
1730
  onChange: (name: string) => void;
1731
+ /** Active editor chrome theme, used by the portaled dialog. */
1732
+ colorScheme?: 'light' | 'dark';
1717
1733
  /** When true, shows only the trigger button (no popover) — used in the overflow menu. */
1718
1734
  compact?: boolean;
1719
1735
  /**
@@ -1729,8 +1745,14 @@ interface TemplatePickerProps {
1729
1745
  * hidden.
1730
1746
  */
1731
1747
  onOpenDesigner?: () => void;
1748
+ /**
1749
+ * Active block content used to render live template thumbnails. When omitted,
1750
+ * or when a template cannot be meaningfully derived from the block, cards use
1751
+ * their static wireframe icons.
1752
+ */
1753
+ previewSource?: TemplatePreviewSource;
1732
1754
  }
1733
- declare function TemplatePicker({ value, onChange, compact, recommended, onOpenDesigner, }: TemplatePickerProps): react_jsx_runtime.JSX.Element;
1755
+ declare function TemplatePicker({ value, onChange, colorScheme, compact, recommended, onOpenDesigner, previewSource, }: TemplatePickerProps): react_jsx_runtime.JSX.Element;
1734
1756
 
1735
1757
  /**
1736
1758
  * headingTransition
@@ -1740,16 +1762,13 @@ declare function TemplatePicker({ value, onChange, compact, recommended, onOpenD
1740
1762
  *
1741
1763
  * - Markdown (Monaco): operate on the raw heading line string.
1742
1764
  * - WYSIWYG (Tiptap): operate on the heading node's `dataBlockAttrs` string
1743
- * (the inner of the Pandoc `{…}` block, no braces matching how
1744
- * `tiptapBridge` stores and re-emits it).
1765
+ * (Pandoc `{…}` inner) and `dataTemplateParams` string (the params inside
1766
+ * the squisq-native `{[…]}` annotation).
1745
1767
  *
1746
- * Transitions are stored in the Pandoc `{#id .class key=value}` attribute
1747
- * block, NOT the `{[template …]}` annotation. That mirrors the canonical
1748
- * serializer (`core/doc/docToMarkdown.ts` `ensureTransitionAttributes`,
1749
- * which always emits the `{…}` form) and `diagram/diagramCommands.ts`, so a
1750
- * value set here round-trips through a Doc render without being duplicated
1751
- * or moved. Reads still look at the `{[…]}` params too, so a hand-typed
1752
- * `{[title transition=fade]}` shows up in the picker.
1768
+ * The editor writes transitions to the squisq-native `{[…]}` annotation by
1769
+ * default. It still reads legacy Pandoc `{transition=…}` attributes and
1770
+ * removes/migrates those keys when rewriting, so the two channels cannot drift
1771
+ * after a toolbar edit.
1753
1772
  *
1754
1773
  * All the brace-matching / tokenizing / serializing is delegated to the
1755
1774
  * shared core helpers so this stays in lockstep with the parser by import
@@ -1767,27 +1786,41 @@ interface TransitionFields {
1767
1786
  declare const EMPTY_TRANSITION: TransitionFields;
1768
1787
  /**
1769
1788
  * Read the transition fields off a heading line. Looks in both the Pandoc
1770
- * `{…}` block (canonical) and the `{[…]}` template params (hand-typed),
1789
+ * `{…}` block (legacy) and the `{[…]}` template params (canonical),
1771
1790
  * with the Pandoc block taking precedence. Returns the empty transition for
1772
1791
  * non-heading lines.
1773
1792
  */
1774
1793
  declare function readHeadingLineTransition(line: string): TransitionFields;
1775
1794
  /**
1776
1795
  * Return `line` with its transition rewritten from `next`, writing into the
1777
- * Pandoc `{…}` block and leaving the `{[…]}` template annotation untouched.
1778
- * Non-heading lines are returned unchanged.
1796
+ * squisq-native `{[]}` annotation. Legacy Pandoc transition keys are removed
1797
+ * while preserving ids, classes, and other Pandoc params. Non-heading lines are
1798
+ * returned unchanged.
1779
1799
  */
1780
1800
  declare function setHeadingLineTransition(line: string, next: TransitionFields): string;
1781
1801
  /**
1782
- * Read the transition fields from a heading node's `dataBlockAttrs` (Pandoc
1783
- * inner) plus `dataTemplateParams` (the `{[…]}` params). Pandoc wins.
1802
+ * Read the transition fields from a heading node's `dataBlockAttrs` (legacy
1803
+ * Pandoc inner) plus `dataTemplateParams` (canonical `{[…]}` params). Pandoc
1804
+ * wins so the picker mirrors the value that `markdownToDoc` will render when
1805
+ * both channels are present.
1784
1806
  */
1785
1807
  declare function readBlockAttrsTransition(blockAttrsInner: string | null | undefined, templateParams: string | null | undefined): TransitionFields;
1808
+ interface HeadingTransitionAttrs {
1809
+ /** Inner of the Pandoc `{…}` block, without braces. */
1810
+ blockAttrsInner: string | null;
1811
+ /** Param string inside the `{[…]}` annotation, without the template token. */
1812
+ templateParams: string | null;
1813
+ }
1814
+ /**
1815
+ * Rewrite a heading node's transition for Tiptap, writing the transition
1816
+ * family into `dataTemplateParams` and removing any legacy transition keys
1817
+ * from `dataBlockAttrs`.
1818
+ */
1819
+ declare function setHeadingAttrsTransition(blockAttrsInner: string | null | undefined, templateParams: string | null | undefined, next: TransitionFields): HeadingTransitionAttrs;
1786
1820
  /**
1787
- * Rewrite the transition in a heading node's `dataBlockAttrs` inner string.
1788
- * Returns the new inner (no braces), or null when the block carries no
1789
- * attributes at all matching how `tiptapBridge` stores `dataBlockAttrs`
1790
- * (absent attribute → null, not `{}`).
1821
+ * Legacy single-channel writer for callers that only own `dataBlockAttrs`.
1822
+ * Internal editor surfaces should use {@link setHeadingAttrsTransition} so new
1823
+ * transition edits land in the squisq-native `{[…]}` params.
1791
1824
  */
1792
1825
  declare function setBlockAttrsTransition(blockAttrsInner: string | null | undefined, next: TransitionFields): string | null;
1793
1826
 
@@ -1883,12 +1916,11 @@ declare function summarizeBlockProps(blockAttrs: string | null | undefined, temp
1883
1916
  *
1884
1917
  * The on-canvas "block properties" palette — the sibling of the block-template
1885
1918
  * badge. Anchored at the `.squisq-props-badge` chip on a heading, it edits the
1886
- * block's playback/animation metadata, all stored in the heading's Pandoc `{…}`
1887
- * attribute block (`dataBlockAttrs`):
1919
+ * block's playback/animation metadata:
1888
1920
  *
1889
- * - Transition (type / direction / duration) — reuses `TransitionPicker`
1890
- * - Duration (`duration`) — how long the block is shown
1891
- * - Start time (`startTime`) — timeline position
1921
+ * - Transition (type / direction / duration) — stored in `{[…]}` params
1922
+ * - Duration (`duration`) — stored in Pandoc `dataBlockAttrs`
1923
+ * - Start time (`startTime`) — stored in Pandoc `dataBlockAttrs`
1892
1924
  *
1893
1925
  * The popover holds the `dataBlockAttrs` inner string as working state and
1894
1926
  * re-derives each control from it, so successive edits compose. Every change
@@ -1905,9 +1937,14 @@ interface BlockPropertiesPopoverProps {
1905
1937
  templateParams: string | null;
1906
1938
  /** Apply a new `dataBlockAttrs` inner to the heading (null clears it). */
1907
1939
  onChange: (nextInner: string | null) => void;
1940
+ /** Apply a paired `dataBlockAttrs` / `dataTemplateParams` transition rewrite. */
1941
+ onAnnotationChange?: (next: {
1942
+ blockAttrsInner: string | null;
1943
+ templateParams: string | null;
1944
+ }) => void;
1908
1945
  onClose: () => void;
1909
1946
  }
1910
- declare function BlockPropertiesPopover({ anchorRect, blockAttrs, templateParams, onChange, onClose, }: BlockPropertiesPopoverProps): react.ReactPortal;
1947
+ declare function BlockPropertiesPopover({ anchorRect, blockAttrs, templateParams, onChange, onAnnotationChange, onClose, }: BlockPropertiesPopoverProps): react.ReactPortal;
1911
1948
 
1912
1949
  interface InlinePreviewGutterProps {
1913
1950
  /** Width of the gutter in pixels (default: 320). */
@@ -1939,6 +1976,8 @@ interface MediaBinProps {
1939
1976
  isDark: boolean;
1940
1977
  /** Incremented externally to signal a re-scan of the media list */
1941
1978
  refreshKey?: number;
1979
+ /** Relative media paths currently referenced by the document. */
1980
+ usedMediaPaths?: ReadonlySet<string>;
1942
1981
  /**
1943
1982
  * Fired after a successful upload via the MediaBin's own "+ Upload"
1944
1983
  * button. `relativePath` is what the provider returned (the same
@@ -1950,8 +1989,15 @@ interface MediaBinProps {
1950
1989
  * else, leaving the message body empty when the user hit Send.
1951
1990
  */
1952
1991
  onMediaUploaded?: (relativePath: string, name: string, mimeType: string) => void | Promise<void>;
1992
+ /**
1993
+ * Fired after a file is removed through the MediaBin context menu.
1994
+ * Hosts use this to remove matching markdown refs from the document.
1995
+ */
1996
+ onMediaRemoved?: (relativePath: string, entry: MediaEntry) => void | Promise<void>;
1997
+ /** Fired whenever the panel scans media and knows the current entry count. */
1998
+ onCountChange?: (count: number) => void;
1953
1999
  }
1954
- declare function MediaBin({ mediaProvider, isDark, refreshKey, onMediaUploaded }: MediaBinProps): react_jsx_runtime.JSX.Element;
2000
+ declare function MediaBin({ mediaProvider, isDark, refreshKey, usedMediaPaths, onMediaUploaded, onMediaRemoved, onCountChange, }: MediaBinProps): react_jsx_runtime.JSX.Element;
1955
2001
 
1956
2002
  /**
1957
2003
  * StatusBar
@@ -3057,4 +3103,4 @@ interface UseImageEditorReturn {
3057
3103
  }
3058
3104
  declare function useImageEditor(options: UseImageEditorOptions): UseImageEditorReturn;
3059
3105
 
3060
- export { ALL_EMOJIS, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, type CameraStreamOptions, type CanvasRect, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DiagramCanvas, type DiagramCommand, type DiagramData, DiagramExtension, type DiagramRFEdge, type DiagramRFNode, DiagramWidget, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMOJI_CATEGORIES, EMPTY_TRANSITION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, type EmojiCategory, type EmojiEntry, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, OutlinePanel, type OutlinePanelProps, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, TimelineTrack, type TimelineTrackProps, type TimingJson, Toolbar, type ToolbarProps, TooltipLayer, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, WysiwygEditor, type WysiwygEditorProps, addConnection, addNode, buildFilename, buildPreviewDoc, buildTimingJson, classifyFile, detectLanguageFromFileName, encodeTimingJson, findTransitionEntry, formatSeconds, getBlockSlices, getCaptureKind, imageEditorReducer, initialImageEditorState, lineToOffset, listDiagramChildren, markdownToTiptap, moveNode, offsetToLine, partitionFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, removeConnection, removeNode, renameNode, requestCameraStream, requestMicStream, requestScreenStream, resolveFileKind, resolveFormat, searchEmojis, setBlockAttrsTransition, setBlockAttrsValue, setBlockDurationInSource, setHeadingLineTransition, setMediaClipInSource, sliceIndexAtOffset, spliceBlock, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, templateLabel, timingPathFor, tiptapToMarkdown, transitionLabel, useBlockNavigator, useCustomTemplates, useCustomThemes, useDiagramData, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useImageEditor, useMediaRecorder, useMonacoLoader, usePreviewSettings, useStreamPreview };
3106
+ export { ALL_EMOJIS, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, type CameraStreamOptions, type CanvasRect, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DiagramCanvas, type DiagramCommand, type DiagramData, DiagramExtension, type DiagramRFEdge, type DiagramRFNode, DiagramWidget, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMOJI_CATEGORIES, EMPTY_TRANSITION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, type EmojiCategory, type EmojiEntry, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, type HeadingTransitionAttrs, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, OutlinePanel, type OutlinePanelProps, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, TimelineTrack, type TimelineTrackProps, type TimingJson, Toolbar, type ToolbarProps, TooltipLayer, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, WysiwygEditor, type WysiwygEditorProps, addConnection, addNode, buildFilename, buildPreviewDoc, buildTimingJson, classifyFile, detectLanguageFromFileName, encodeTimingJson, findTransitionEntry, formatSeconds, getBlockSlices, getCaptureKind, imageEditorReducer, initialImageEditorState, lineToOffset, listDiagramChildren, markdownToTiptap, moveNode, offsetToLine, partitionFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, removeConnection, removeNode, renameNode, requestCameraStream, requestMicStream, requestScreenStream, resolveFileKind, resolveFormat, searchEmojis, setBlockAttrsTransition, setBlockAttrsValue, setBlockDurationInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, sliceIndexAtOffset, spliceBlock, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, templateLabel, timingPathFor, tiptapToMarkdown, transitionLabel, useBlockNavigator, useCustomTemplates, useCustomThemes, useDiagramData, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useImageEditor, useMediaRecorder, useMonacoLoader, usePreviewSettings, useStreamPreview };