@bendyline/squisq-editor-react 2.13.16 → 2.13.18

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,7 +1,7 @@
1
1
  import { C as CodeContext, P as PageTemplateSettings, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-CdtncgKy.js';
2
2
  export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, d as BlockInsertionContext, e as BlockPlacement, f as BlockRange, g as BlockSlice, h as BlockTagVisibility, i as CodeContextSection, j as CoverImageSaveOutput, D as DashboardImageSaveOutput, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, y as EditorSelectionInfo, z as EditorShell, G as EditorShellProps, H as EditorState, I as FindOptions, J as FindRequest, K as FormulaSessionOptions, L as ImageDisplayMode, M as IngestedSidecar, N as InsertBlockOptions, O as LayoutMode, Q as MentionCandidate, R as MentionProvider, T as NavigationSheetPanel, U as OutlineBlock, V as OutlineInsertion, W as PageTemplateChoice, Y as PreviewPanel, Z as PreviewPanelProps, _ as RawEditor, $ as RawEditorProps, a0 as ThemeInheritance, a1 as ViewPreferences, a2 as WriteCanvasSettings, a3 as WysiwygEditor, a4 as WysiwygEditorProps, a5 as XLSX_LOCKED_REASON, a6 as XlsxFormulaSession, a7 as applySourceEditsToText, a8 as blockInsertionPoint, a9 as createXlsxFormulaSession, aa as getBlockSlices, ab as headingDepthForInsertion, ac as ingestSidecarBytes, ad as joinBlockAt, ae as lineToOffset, af as minimalReplaceEdit, ag as normalizeSourceEdits, ah as offsetToLine, ai as resolveOutlineInsertion, aj as sliceIndexAtOffset, ak as sourceOutline, al as spliceBlock, am as useEditorContext, an as useEditorContextMenuItems, ao as useEditorInsertMenuItems } from './shell-CdtncgKy.js';
3
3
  import * as react from 'react';
4
- import { ReactNode, CSSProperties, ReactElement } from 'react';
4
+ import { ReactNode, CSSProperties, RefObject, ReactElement } from 'react';
5
5
  import { Doc, ScheduledClip, VideoPlacement, VideoPipSize, VideoPipShape, VideoPipPosition, MediaEdits, MediaProvider, Theme, CustomTemplateDefinition, ThemeSeedColors, ViewportPreset, ViewportConfig, Block, MediaEntry, DiagramEdgeAnchor } from '@bendyline/squisq/schemas';
6
6
  import { ContentContainer } from '@bendyline/squisq/storage';
7
7
  export { CanvasRect, ImageEditor, ImageEditorAction, ImageEditorProps, ImageEditorState, ImageEditorTool, ImageViewer, ImageViewerProps, UseImageEditorOptions, UseImageEditorReturn, imageEditorReducer, initialImageEditorState, useImageEditor } from './image-editor/index.js';
@@ -1064,6 +1064,19 @@ declare function VersionHistoryPanel(): react.JSX.Element | null;
1064
1064
  */
1065
1065
  declare function ViewMenuPanel(): react.JSX.Element;
1066
1066
 
1067
+ /**
1068
+ * Dropdown trigger rendered directly beside the Write tab. Selecting a layout
1069
+ * also enters the Write view, so the menu works from Source and Use too. The
1070
+ * layout still applies to Source, which scopes to the same block.
1071
+ */
1072
+ interface WriteModeMenuProps {
1073
+ /** Incremented by the parent to open the menu from another control. */
1074
+ openRequest?: number;
1075
+ /** The Write tab, which the menu lines up under. */
1076
+ alignWith?: RefObject<HTMLElement | null>;
1077
+ }
1078
+ declare function WriteModeMenu({ openRequest, alignWith }: WriteModeMenuProps): react.JSX.Element;
1079
+
1067
1080
  /**
1068
1081
  * TransformMenu
1069
1082
  *
@@ -3627,4 +3640,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3627
3640
  /** The exact label of the review-state block-timings checkbox. */
3628
3641
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3629
3642
 
3630
- export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CalcEngineFactory, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, CsvSourceMeta, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DATA_CARD_KEY, DEFAULT_MERMAID_DIAGRAM_TYPE, type DataCardBlockEntry, DataCardExtension, type DataCardExtensionOptions, type DataCardPluginState, DataCardWidget, type DataPreview, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EditorView$1 as EditorView, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, type FenceBlockEntry, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, FormulaEditRecord, type GridSaveResult, HOST_FENCE_KEY, type HeadingTransitionAttrs, type HeadingViewBinding, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MarkdownEscape, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, type MermaidValidationResult, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, PageTemplateSettings, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, SVG_ISLAND_KEY, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, type SvgIslandBlockEntry, SvgIslandExtension, type SvgIslandExtensionOptions, type SvgIslandPluginState, SvgIslandWidget, type SvgIslandWidgetProps, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VIDEO_EMBED_KEY, VersionHistoryPanel, type VideoEmbedBlockEntry, VideoEmbedDialog, type VideoEmbedDialogProps, VideoEmbedExtension, type VideoEmbedExtensionOptions, type VideoEmbedPluginState, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, convertVideoEmbedToLink, dataExtensionOf, dataLinkHrefOf, describeSvgIslandRemovals, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findSvgIslandBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, findVideoEmbedBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, insertVideoEmbedReference, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isSvgIslandNode, isSvgIslandSourceVisible, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, pasteVideoEmbedCode, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceSvgIslandText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsSvgFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, toggleSvgIslandSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, usePreviewSettingsOptional, useTimelineData, useTreeViewData, validateMermaidSource, videoEmbedMarkdown, videoEmbedOfParagraph, videoEmbedParagraphJson, viewStateFromBinding, writeHeadingViewState };
3643
+ export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CalcEngineFactory, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, CsvSourceMeta, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DATA_CARD_KEY, DEFAULT_MERMAID_DIAGRAM_TYPE, type DataCardBlockEntry, DataCardExtension, type DataCardExtensionOptions, type DataCardPluginState, DataCardWidget, type DataPreview, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EditorView$1 as EditorView, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, type FenceBlockEntry, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, FormulaEditRecord, type GridSaveResult, HOST_FENCE_KEY, type HeadingTransitionAttrs, type HeadingViewBinding, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MarkdownEscape, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, type MermaidValidationResult, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, PageTemplateSettings, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, SVG_ISLAND_KEY, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, type SvgIslandBlockEntry, SvgIslandExtension, type SvgIslandExtensionOptions, type SvgIslandPluginState, SvgIslandWidget, type SvgIslandWidgetProps, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VIDEO_EMBED_KEY, VersionHistoryPanel, type VideoEmbedBlockEntry, VideoEmbedDialog, type VideoEmbedDialogProps, VideoEmbedExtension, type VideoEmbedExtensionOptions, type VideoEmbedPluginState, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, WriteModeMenu, type WriteModeMenuProps, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, convertVideoEmbedToLink, dataExtensionOf, dataLinkHrefOf, describeSvgIslandRemovals, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findSvgIslandBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, findVideoEmbedBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, insertVideoEmbedReference, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isSvgIslandNode, isSvgIslandSourceVisible, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, pasteVideoEmbedCode, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceSvgIslandText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsSvgFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, toggleSvgIslandSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, usePreviewSettingsOptional, useTimelineData, useTreeViewData, validateMermaidSource, videoEmbedMarkdown, videoEmbedOfParagraph, videoEmbedParagraphJson, viewStateFromBinding, writeHeadingViewState };
package/dist/index.js CHANGED
@@ -96,6 +96,7 @@ import {
96
96
  VideoEmbedDialog,
97
97
  VideoEmbedExtension,
98
98
  ViewMenuPanel,
99
+ WriteModeMenu,
99
100
  WysiwygEditor,
100
101
  XLSX_LOCKED_REASON,
101
102
  adaptThemeToSurface,
@@ -243,7 +244,7 @@ import {
243
244
  videoEmbedParagraphJson,
244
245
  viewStateFromBinding,
245
246
  writeHeadingViewState
246
- } from "./chunk-54MN2HG7.js";
247
+ } from "./chunk-XUEYPMBH.js";
247
248
  import {
248
249
  EditorProvider,
249
250
  applySourceEditsToText,
@@ -264,7 +265,7 @@ import {
264
265
  useBlockNavigator,
265
266
  useEditorContext,
266
267
  useEditorInsertMenuItems
267
- } from "./chunk-UQUYPT5P.js";
268
+ } from "./chunk-MMK26QF7.js";
268
269
  import {
269
270
  SPEECH_INPUT_SAMPLE_RATE,
270
271
  isSpeechInputProviderFactory,
@@ -273,14 +274,14 @@ import {
273
274
  import "./chunk-A2H3JOA5.js";
274
275
  import {
275
276
  JsonEditor
276
- } from "./chunk-LDU3AWER.js";
277
+ } from "./chunk-6GHLTJNG.js";
277
278
  import {
278
279
  MarkdownEscape
279
- } from "./chunk-4MBH7MMU.js";
280
+ } from "./chunk-F6URHAW6.js";
280
281
  import {
281
282
  markdownToTiptap,
282
283
  tiptapToMarkdown
283
- } from "./chunk-ZLKINE4Y.js";
284
+ } from "./chunk-SSEE55FT.js";
284
285
  import {
285
286
  ImageEditor,
286
287
  ImageViewer,
@@ -906,6 +907,7 @@ export {
906
907
  VideoEmbedExtension,
907
908
  ViewMenuPanel,
908
909
  ViewSwitcher,
910
+ WriteModeMenu,
909
911
  WysiwygEditor,
910
912
  XLSX_LOCKED_REASON,
911
913
  adaptThemeToSurface,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  JsonEditor
3
- } from "../chunk-LDU3AWER.js";
4
- import "../chunk-4MBH7MMU.js";
5
- import "../chunk-ZLKINE4Y.js";
3
+ } from "../chunk-6GHLTJNG.js";
4
+ import "../chunk-F6URHAW6.js";
5
+ import "../chunk-SSEE55FT.js";
6
6
  export {
7
7
  JsonEditor
8
8
  };
@@ -19,9 +19,9 @@ import {
19
19
  updateReviewDecorations,
20
20
  useReview,
21
21
  useReviewState
22
- } from "../chunk-UQUYPT5P.js";
22
+ } from "../chunk-MMK26QF7.js";
23
23
  import "../chunk-DNEVUOBZ.js";
24
- import "../chunk-ZLKINE4Y.js";
24
+ import "../chunk-SSEE55FT.js";
25
25
 
26
26
  // src/review/proofingAdapter.ts
27
27
  import {
@@ -5,16 +5,16 @@ import {
5
5
  RawEditor,
6
6
  WysiwygEditor,
7
7
  useEditorContextMenuItems
8
- } from "../chunk-54MN2HG7.js";
8
+ } from "../chunk-XUEYPMBH.js";
9
9
  import {
10
10
  EditorProvider,
11
11
  useEditorContext,
12
12
  useEditorInsertMenuItems
13
- } from "../chunk-UQUYPT5P.js";
13
+ } from "../chunk-MMK26QF7.js";
14
14
  import "../chunk-DNEVUOBZ.js";
15
15
  import "../chunk-A2H3JOA5.js";
16
- import "../chunk-4MBH7MMU.js";
17
- import "../chunk-ZLKINE4Y.js";
16
+ import "../chunk-F6URHAW6.js";
17
+ import "../chunk-SSEE55FT.js";
18
18
  import "../chunk-HLU6ZBS7.js";
19
19
  import "../chunk-ECS2FFXA.js";
20
20
  import "../chunk-LRZJD5YD.js";
@@ -7944,42 +7944,65 @@
7944
7944
  color: var(--squisq-text);
7945
7945
  }
7946
7946
  .squisq-toolbar-view-tabs {
7947
- display: flex;
7947
+ display: grid;
7948
+ grid-template-columns: repeat(5, auto);
7949
+ justify-content: start;
7948
7950
  gap: 0;
7949
7951
  margin-right: 0;
7950
7952
  padding: 0 16px 0 12px;
7951
7953
  background: var(--squisq-surface);
7952
7954
  border-right: 1px solid rgba(0, 0, 0, 0.12);
7953
7955
  align-self: stretch;
7954
- align-items: flex-end;
7956
+ align-items: end;
7955
7957
  box-sizing: border-box;
7956
7958
  }
7957
- .squisq-toolbar-view-tab-list,
7959
+ .squisq-toolbar-view-tab-list {
7960
+ grid-row: 1;
7961
+ grid-column: 1 / 5;
7962
+ display: grid;
7963
+ grid-template-columns: subgrid;
7964
+ align-self: stretch;
7965
+ }
7958
7966
  .squisq-toolbar-view-tab-wrap,
7959
- .squisq-toolbar-use-menu {
7967
+ .squisq-toolbar-mode-menu {
7968
+ grid-row: 1;
7960
7969
  display: flex;
7961
7970
  align-items: flex-end;
7962
7971
  align-self: stretch;
7963
7972
  }
7964
- .squisq-toolbar-use-tab,
7973
+ .squisq-toolbar-view-tab-wrap--wysiwyg {
7974
+ grid-column: 1;
7975
+ }
7976
+ .squisq-toolbar-write-menu {
7977
+ grid-column: 2;
7978
+ }
7979
+ .squisq-toolbar-view-tab-wrap--raw {
7980
+ grid-column: 3;
7981
+ }
7982
+ .squisq-toolbar-view-tab-wrap--preview {
7983
+ grid-column: 4;
7984
+ }
7965
7985
  .squisq-toolbar-use-menu {
7986
+ grid-column: 5;
7987
+ }
7988
+ .squisq-toolbar-mode-tab,
7989
+ .squisq-toolbar-mode-menu {
7966
7990
  position: relative;
7967
7991
  border-bottom: 2px solid transparent;
7968
7992
  }
7969
- .squisq-toolbar-use-tab > .squisq-toolbar-view-tab {
7993
+ .squisq-toolbar-mode-tab > .squisq-toolbar-view-tab {
7970
7994
  padding-right: 4px;
7971
7995
  padding-bottom: 4px;
7972
7996
  border-bottom: 0;
7973
7997
  }
7974
- .squisq-toolbar-use-tab--active {
7998
+ .squisq-toolbar-mode-tab--active {
7975
7999
  border-bottom-color: var(--squisq-accent);
7976
8000
  }
7977
- .squisq-toolbar-use-tab > .squisq-toolbar-view-tab:focus-visible,
7978
- .squisq-toolbar-use-menu > .squisq-use-mode-trigger:focus-visible {
8001
+ .squisq-toolbar-mode-tab > .squisq-toolbar-view-tab:focus-visible,
8002
+ .squisq-toolbar-mode-menu > .squisq-view-mode-trigger:focus-visible {
7979
8003
  outline: none;
7980
8004
  }
7981
- .squisq-toolbar-use-tab:has(> .squisq-toolbar-view-tab:focus-visible)::after,
7982
- .squisq-toolbar-use-menu:has(> .squisq-use-mode-trigger:focus-visible)::after {
8005
+ .squisq-toolbar-mode-tab:has(> .squisq-toolbar-view-tab:focus-visible)::after {
7983
8006
  content: "";
7984
8007
  position: absolute;
7985
8008
  inset: 2px 0 4px;
@@ -7988,31 +8011,61 @@
7988
8011
  box-sizing: border-box;
7989
8012
  pointer-events: none;
7990
8013
  }
7991
- .squisq-use-mode-trigger {
8014
+ .squisq-view-mode-trigger {
7992
8015
  align-self: stretch;
7993
8016
  display: inline-flex;
7994
8017
  align-items: flex-end;
7995
8018
  justify-content: center;
7996
- width: 20px;
7997
- padding: 0 6px 9px 0;
8019
+ padding: 0 6px 2px 2px;
7998
8020
  border: 0;
7999
8021
  background: transparent;
8000
8022
  color: var(--squisq-text-soft);
8001
8023
  cursor: pointer;
8002
- box-sizing: content-box;
8003
8024
  }
8004
- .squisq-use-mode-trigger > svg {
8025
+ .squisq-view-mode-trigger-face {
8026
+ display: inline-flex;
8027
+ align-items: center;
8028
+ justify-content: center;
8029
+ width: 24px;
8030
+ height: 24px;
8031
+ border: 1px solid var(--squisq-border);
8032
+ border-radius: 5px;
8033
+ background: var(--squisq-input-bg);
8034
+ box-sizing: border-box;
8035
+ transition:
8036
+ background 0.12s ease,
8037
+ border-color 0.12s ease,
8038
+ color 0.12s ease;
8039
+ }
8040
+ .squisq-view-mode-trigger-face > svg {
8005
8041
  display: block;
8006
- transform: translateY(-1px);
8007
8042
  }
8008
- .squisq-use-mode-trigger:hover,
8009
- .squisq-use-mode-trigger--open {
8043
+ .squisq-view-mode-trigger:hover > .squisq-view-mode-trigger-face {
8044
+ border-color: var(--squisq-border-strong);
8045
+ background: var(--squisq-surface-hover);
8010
8046
  color: var(--squisq-text-strong);
8011
8047
  }
8012
- .squisq-toolbar-use-tab--active .squisq-use-mode-trigger {
8048
+ .squisq-toolbar-mode-tab--active .squisq-view-mode-trigger-face {
8049
+ border-color: var(--squisq-accent-border);
8050
+ background: var(--squisq-accent-subtle);
8013
8051
  color: var(--squisq-accent-strong);
8014
8052
  }
8015
- .squisq-use-mode-menu {
8053
+ .squisq-view-mode-trigger--open > .squisq-view-mode-trigger-face,
8054
+ .squisq-toolbar-mode-tab--active .squisq-view-mode-trigger:hover > .squisq-view-mode-trigger-face {
8055
+ border-color: var(--squisq-accent);
8056
+ background: var(--squisq-accent-soft);
8057
+ color: var(--squisq-accent-strong);
8058
+ }
8059
+ .squisq-view-mode-trigger:focus-visible > .squisq-view-mode-trigger-face {
8060
+ outline: 2px solid var(--squisq-focus-ring);
8061
+ outline-offset: 1px;
8062
+ }
8063
+ @media (pointer: coarse) {
8064
+ .squisq-view-mode-trigger {
8065
+ padding: 0 10px 2px 6px;
8066
+ }
8067
+ }
8068
+ .squisq-view-mode-menu {
8016
8069
  position: fixed;
8017
8070
  z-index: 120;
8018
8071
  width: min(340px, calc(100vw - 16px));
@@ -8023,9 +8076,9 @@
8023
8076
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.2), 0 2px 6px rgba(15, 23, 42, 0.08);
8024
8077
  box-sizing: border-box;
8025
8078
  font-family: var( --squisq-ux-font, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif );
8026
- animation: squisq-use-mode-menu-in 0.12s ease-out;
8079
+ animation: squisq-view-mode-menu-in 0.12s ease-out;
8027
8080
  }
8028
- .squisq-use-mode-menu-item {
8081
+ .squisq-view-mode-menu-item {
8029
8082
  display: flex;
8030
8083
  align-items: center;
8031
8084
  gap: 10px;
@@ -8041,17 +8094,17 @@
8041
8094
  cursor: pointer;
8042
8095
  transition: background 0.12s ease, color 0.12s ease;
8043
8096
  }
8044
- .squisq-use-mode-menu-item:hover,
8045
- .squisq-use-mode-menu-item:focus-visible {
8097
+ .squisq-view-mode-menu-item:hover,
8098
+ .squisq-view-mode-menu-item:focus-visible {
8046
8099
  outline: none;
8047
8100
  background: var(--squisq-surface-hover);
8048
8101
  color: var(--squisq-text-strong);
8049
8102
  }
8050
- .squisq-use-mode-menu-item--selected {
8103
+ .squisq-view-mode-menu-item--selected {
8051
8104
  background: var(--squisq-accent-subtle);
8052
8105
  color: var(--squisq-accent-strong);
8053
8106
  }
8054
- .squisq-use-mode-menu-icon {
8107
+ .squisq-view-mode-menu-icon {
8055
8108
  display: inline-flex;
8056
8109
  align-items: center;
8057
8110
  justify-content: center;
@@ -8063,24 +8116,24 @@
8063
8116
  color: var(--squisq-text-muted);
8064
8117
  font-size: 14px;
8065
8118
  }
8066
- .squisq-use-mode-menu-item--selected .squisq-use-mode-menu-icon {
8119
+ .squisq-view-mode-menu-item--selected .squisq-view-mode-menu-icon {
8067
8120
  background: var(--squisq-accent-soft);
8068
8121
  color: var(--squisq-accent);
8069
8122
  }
8070
- .squisq-use-mode-menu-copy {
8123
+ .squisq-view-mode-menu-copy {
8071
8124
  display: flex;
8072
8125
  flex: 1 1 auto;
8073
8126
  min-width: 0;
8074
8127
  flex-direction: column;
8075
8128
  gap: 2px;
8076
8129
  }
8077
- .squisq-use-mode-menu-label {
8130
+ .squisq-view-mode-menu-label {
8078
8131
  color: inherit;
8079
8132
  font-size: 12.5px;
8080
8133
  font-weight: 650;
8081
8134
  line-height: 1.2;
8082
8135
  }
8083
- .squisq-use-mode-menu-summary {
8136
+ .squisq-view-mode-menu-summary {
8084
8137
  overflow: hidden;
8085
8138
  color: var(--squisq-text-muted);
8086
8139
  font-size: 11.5px;
@@ -8089,7 +8142,7 @@
8089
8142
  text-overflow: ellipsis;
8090
8143
  white-space: nowrap;
8091
8144
  }
8092
- .squisq-use-mode-menu-check {
8145
+ .squisq-view-mode-menu-check {
8093
8146
  display: inline-flex;
8094
8147
  align-items: center;
8095
8148
  justify-content: center;
@@ -8099,7 +8152,7 @@
8099
8152
  font-size: 11px;
8100
8153
  text-align: center;
8101
8154
  }
8102
- @keyframes squisq-use-mode-menu-in {
8155
+ @keyframes squisq-view-mode-menu-in {
8103
8156
  from {
8104
8157
  opacity: 0;
8105
8158
  transform: translateY(-3px) scale(0.99);
@@ -8110,23 +8163,23 @@
8110
8163
  }
8111
8164
  }
8112
8165
  @media (prefers-reduced-motion: reduce) {
8113
- .squisq-use-mode-menu {
8166
+ .squisq-view-mode-menu {
8114
8167
  animation: none;
8115
8168
  }
8116
8169
  }
8117
- .squisq-use-mode-menu[data-theme=dark] {
8170
+ .squisq-view-mode-menu[data-theme=dark] {
8118
8171
  border-color: var(--squisq-border);
8119
8172
  background: var(--squisq-surface-overlay);
8120
8173
  }
8121
- .squisq-use-mode-menu[data-theme=dark] .squisq-use-mode-menu-icon {
8174
+ .squisq-view-mode-menu[data-theme=dark] .squisq-view-mode-menu-icon {
8122
8175
  background: var(--squisq-surface-hover);
8123
8176
  color: var(--squisq-text-soft);
8124
8177
  }
8125
- .squisq-use-mode-menu[data-theme=dark] .squisq-use-mode-menu-item--selected .squisq-use-mode-menu-icon {
8178
+ .squisq-view-mode-menu[data-theme=dark] .squisq-view-mode-menu-item--selected .squisq-view-mode-menu-icon {
8126
8179
  background: var(--squisq-accent-soft);
8127
8180
  color: var(--squisq-accent-strong);
8128
8181
  }
8129
- .squisq-use-mode-menu[data-theme=dark] .squisq-use-mode-menu-check {
8182
+ .squisq-view-mode-menu[data-theme=dark] .squisq-view-mode-menu-check {
8130
8183
  color: var(--squisq-accent-strong);
8131
8184
  }
8132
8185
  .squisq-cover-slide-trigger {
@@ -10768,6 +10821,17 @@
10768
10821
  overflow: auto;
10769
10822
  color: var(--squisq-danger);
10770
10823
  }
10824
+ .squisq-preview-notice {
10825
+ flex: none;
10826
+ margin: 8px 12px 0;
10827
+ padding: 6px 10px;
10828
+ border: 1px solid var(--squisq-border);
10829
+ border-left: 3px solid var(--squisq-accent);
10830
+ border-radius: 6px;
10831
+ background: var(--squisq-input-bg);
10832
+ color: var(--squisq-text);
10833
+ font-size: 13px;
10834
+ }
10771
10835
  .squisq-editor-shell[data-presentation-mode=control],
10772
10836
  .squisq-editor-shell[data-presentation-mode=fullscreen] {
10773
10837
  position: relative;
@@ -10945,17 +11009,9 @@
10945
11009
  color: var(--squisq-accent-strong);
10946
11010
  border-bottom-color: var(--squisq-accent);
10947
11011
  }
10948
- .squisq-editor-shell[data-theme=dark] .squisq-toolbar-use-tab--active {
11012
+ .squisq-editor-shell[data-theme=dark] .squisq-toolbar-mode-tab--active {
10949
11013
  border-bottom-color: var(--squisq-accent);
10950
11014
  }
10951
- .squisq-editor-shell[data-theme=dark] .squisq-use-mode-trigger {
10952
- color: var(--squisq-text-soft);
10953
- }
10954
- .squisq-editor-shell[data-theme=dark] .squisq-use-mode-trigger:hover,
10955
- .squisq-editor-shell[data-theme=dark] .squisq-use-mode-trigger--open,
10956
- .squisq-editor-shell[data-theme=dark] .squisq-toolbar-use-tab--active .squisq-use-mode-trigger {
10957
- color: var(--squisq-accent-strong);
10958
- }
10959
11015
  .squisq-editor-shell[data-theme=dark] .squisq-toolbar-button {
10960
11016
  color: var(--squisq-text-soft);
10961
11017
  }
@@ -15324,6 +15380,18 @@ button.squisq-view-menu-radio-row:focus-visible {
15324
15380
  .squisq-wysiwyg-editor .squisq-document-tray-source {
15325
15381
  display: none !important;
15326
15382
  }
15383
+ .squisq-wysiwyg-editor .squisq-document-tray-body-start {
15384
+ min-height: 1lh;
15385
+ cursor: text;
15386
+ }
15387
+ .squisq-wysiwyg-editor .squisq-document-tray-body-start::before {
15388
+ content: attr(data-placeholder);
15389
+ color: var(--squisq-text-faint);
15390
+ pointer-events: none;
15391
+ }
15392
+ .squisq-wysiwyg-editor[contenteditable=false] .squisq-document-tray-body-start {
15393
+ display: none;
15394
+ }
15327
15395
  .squisq-document-tray {
15328
15396
  max-width: 800px;
15329
15397
  margin: 0 auto;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq-editor-react",
3
- "version": "2.13.16",
3
+ "version": "2.13.18",
4
4
  "description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -86,8 +86,8 @@
86
86
  }
87
87
  },
88
88
  "scripts": {
89
- "build": "tsup && node ../../scripts/build-styles.mjs && node ../../scripts/generate-bundle-licenses.mjs . @fortawesome/fontawesome-free && node ../../scripts/remove-empty-chunks.mjs dist",
90
- "dev": "concurrently -n js,dts -c blue,gray -r \"tsup --watch --no-dts --no-clean\" \"tsup --watch --dts-only --no-clean\"",
89
+ "build": "tsup && tsup --config tsup.worker.config.ts && node ../../scripts/build-styles.mjs && node ../../scripts/generate-bundle-licenses.mjs . @fortawesome/fontawesome-free && node ../../scripts/remove-empty-chunks.mjs dist",
90
+ "dev": "concurrently -n js,dts,parser -c blue,gray,cyan -r \"tsup --watch --no-dts --no-clean\" \"tsup --watch --dts-only --no-clean\" \"tsup --config tsup.worker.config.ts --watch\"",
91
91
  "typecheck": "tsc --noEmit"
92
92
  },
93
93
  "peerDependencies": {
@@ -102,12 +102,12 @@
102
102
  }
103
103
  },
104
104
  "dependencies": {
105
- "@bendyline/squisq": "2.13.10",
105
+ "@bendyline/squisq": "2.13.11",
106
106
  "@bendyline/squisq-calc": "2.11.2",
107
- "@bendyline/squisq-formats": "2.8.12",
108
- "@bendyline/squisq-grid-react": "2.11.39",
109
- "@bendyline/squisq-react": "2.12.22",
110
- "@bendyline/squisq-video-react": "2.5.23",
107
+ "@bendyline/squisq-formats": "2.8.13",
108
+ "@bendyline/squisq-grid-react": "2.11.40",
109
+ "@bendyline/squisq-react": "2.12.23",
110
+ "@bendyline/squisq-video-react": "2.5.24",
111
111
  "@fortawesome/fontawesome-free": "7.3.1",
112
112
  "@tiptap/core": "2.27.3",
113
113
  "@tiptap/extension-heading": "2.27.3",