@bendyline/squisq-editor-react 1.4.0 → 1.5.1
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/DocumentSettingsDialog.d.ts +26 -0
- package/dist/DocumentSettingsDialog.d.ts.map +1 -0
- package/dist/DocumentSettingsDialog.js +115 -0
- package/dist/DocumentSettingsDialog.js.map +1 -0
- package/dist/EditorContext.d.ts +248 -4
- package/dist/EditorContext.d.ts.map +1 -1
- package/dist/EditorContext.js +248 -10
- package/dist/EditorContext.js.map +1 -1
- package/dist/EditorShell.d.ts +173 -4
- package/dist/EditorShell.d.ts.map +1 -1
- package/dist/EditorShell.js +110 -10
- package/dist/EditorShell.js.map +1 -1
- package/dist/EmojiPicker.d.ts +50 -0
- package/dist/EmojiPicker.d.ts.map +1 -0
- package/dist/EmojiPicker.js +182 -0
- package/dist/EmojiPicker.js.map +1 -0
- package/dist/ImageEditor.d.ts +68 -0
- package/dist/ImageEditor.d.ts.map +1 -0
- package/dist/ImageEditor.js +166 -0
- package/dist/ImageEditor.js.map +1 -0
- package/dist/ImageNodeView.d.ts +13 -1
- package/dist/ImageNodeView.d.ts.map +1 -1
- package/dist/ImageNodeView.js +172 -19
- package/dist/ImageNodeView.js.map +1 -1
- package/dist/ImageViewer.d.ts +26 -0
- package/dist/ImageViewer.d.ts.map +1 -0
- package/dist/ImageViewer.js +119 -0
- package/dist/ImageViewer.js.map +1 -0
- package/dist/InlineIcon.d.ts +17 -0
- package/dist/InlineIcon.d.ts.map +1 -0
- package/dist/InlineIcon.js +72 -0
- package/dist/InlineIcon.js.map +1 -0
- package/dist/InlinePreviewGutter.d.ts +52 -0
- package/dist/InlinePreviewGutter.d.ts.map +1 -0
- package/dist/InlinePreviewGutter.js +397 -0
- package/dist/InlinePreviewGutter.js.map +1 -0
- package/dist/LinkDialog.d.ts +43 -0
- package/dist/LinkDialog.d.ts.map +1 -0
- package/dist/LinkDialog.js +102 -0
- package/dist/LinkDialog.js.map +1 -0
- package/dist/MentionExtension.js +10 -7
- package/dist/MentionExtension.js.map +1 -1
- package/dist/OutlinePanel.d.ts +17 -0
- package/dist/OutlinePanel.d.ts.map +1 -0
- package/dist/OutlinePanel.js +167 -0
- package/dist/OutlinePanel.js.map +1 -0
- package/dist/PlainHtmlPreview.d.ts +50 -0
- package/dist/PlainHtmlPreview.d.ts.map +1 -0
- package/dist/PlainHtmlPreview.js +155 -0
- package/dist/PlainHtmlPreview.js.map +1 -0
- package/dist/PreviewControls.d.ts +15 -1
- package/dist/PreviewControls.d.ts.map +1 -1
- package/dist/PreviewControls.js +75 -18
- package/dist/PreviewControls.js.map +1 -1
- package/dist/PreviewPanel.d.ts +11 -10
- package/dist/PreviewPanel.d.ts.map +1 -1
- package/dist/PreviewPanel.js +20 -17
- package/dist/PreviewPanel.js.map +1 -1
- package/dist/RawEditor.d.ts.map +1 -1
- package/dist/RawEditor.js +198 -4
- package/dist/RawEditor.js.map +1 -1
- package/dist/RecorderEntry.d.ts +24 -0
- package/dist/RecorderEntry.d.ts.map +1 -0
- package/dist/RecorderEntry.js +139 -0
- package/dist/RecorderEntry.js.map +1 -0
- package/dist/TemplateAnnotation.d.ts.map +1 -1
- package/dist/TemplateAnnotation.js +32 -6
- package/dist/TemplateAnnotation.js.map +1 -1
- package/dist/TemplatePicker.d.ts +53 -0
- package/dist/TemplatePicker.d.ts.map +1 -0
- package/dist/TemplatePicker.js +388 -0
- package/dist/TemplatePicker.js.map +1 -0
- package/dist/ThemeCustomizerPanel.d.ts +32 -0
- package/dist/ThemeCustomizerPanel.d.ts.map +1 -0
- package/dist/ThemeCustomizerPanel.js +256 -0
- package/dist/ThemeCustomizerPanel.js.map +1 -0
- package/dist/ThemePicker.d.ts +33 -0
- package/dist/ThemePicker.d.ts.map +1 -0
- package/dist/ThemePicker.js +148 -0
- package/dist/ThemePicker.js.map +1 -0
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +508 -33
- package/dist/Toolbar.js.map +1 -1
- package/dist/VersionHistoryPanel.d.ts +14 -0
- package/dist/VersionHistoryPanel.d.ts.map +1 -0
- package/dist/VersionHistoryPanel.js +147 -0
- package/dist/VersionHistoryPanel.js.map +1 -0
- package/dist/ViewMenuPanel.d.ts +13 -0
- package/dist/ViewMenuPanel.d.ts.map +1 -0
- package/dist/ViewMenuPanel.js +58 -0
- package/dist/ViewMenuPanel.js.map +1 -0
- package/dist/WysiwygEditor.d.ts.map +1 -1
- package/dist/WysiwygEditor.js +198 -9
- package/dist/WysiwygEditor.js.map +1 -1
- package/dist/__tests__/detectMarkdown.test.js +0 -14
- package/dist/__tests__/detectMarkdown.test.js.map +1 -1
- package/dist/__tests__/documentSettingsDialog.test.d.ts +2 -0
- package/dist/__tests__/documentSettingsDialog.test.d.ts.map +1 -0
- package/dist/__tests__/documentSettingsDialog.test.js +132 -0
- package/dist/__tests__/documentSettingsDialog.test.js.map +1 -0
- package/dist/__tests__/emojiPicker.test.d.ts +2 -0
- package/dist/__tests__/emojiPicker.test.d.ts.map +1 -0
- package/dist/__tests__/emojiPicker.test.js +111 -0
- package/dist/__tests__/emojiPicker.test.js.map +1 -0
- package/dist/__tests__/fileKind.test.js +13 -0
- package/dist/__tests__/fileKind.test.js.map +1 -1
- package/dist/__tests__/imageEditAffordance.test.d.ts +2 -0
- package/dist/__tests__/imageEditAffordance.test.d.ts.map +1 -0
- package/dist/__tests__/imageEditAffordance.test.js +188 -0
- package/dist/__tests__/imageEditAffordance.test.js.map +1 -0
- package/dist/__tests__/imageEditorShell.test.d.ts +2 -0
- package/dist/__tests__/imageEditorShell.test.d.ts.map +1 -0
- package/dist/__tests__/imageEditorShell.test.js +52 -0
- package/dist/__tests__/imageEditorShell.test.js.map +1 -0
- package/dist/__tests__/imageEditorState.test.d.ts +3 -0
- package/dist/__tests__/imageEditorState.test.d.ts.map +1 -0
- package/dist/__tests__/imageEditorState.test.js +148 -0
- package/dist/__tests__/imageEditorState.test.js.map +1 -0
- package/dist/__tests__/inlinePreviewGutter.test.d.ts +2 -0
- package/dist/__tests__/inlinePreviewGutter.test.d.ts.map +1 -0
- package/dist/__tests__/inlinePreviewGutter.test.js +51 -0
- package/dist/__tests__/inlinePreviewGutter.test.js.map +1 -0
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts +2 -0
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts.map +1 -0
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js +63 -0
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js.map +1 -0
- package/dist/__tests__/jsonEditor.test.d.ts +2 -0
- package/dist/__tests__/jsonEditor.test.d.ts.map +1 -0
- package/dist/__tests__/jsonEditor.test.js +134 -0
- package/dist/__tests__/jsonEditor.test.js.map +1 -0
- package/dist/__tests__/layersPanel.test.d.ts +2 -0
- package/dist/__tests__/layersPanel.test.d.ts.map +1 -0
- package/dist/__tests__/layersPanel.test.js +84 -0
- package/dist/__tests__/layersPanel.test.js.map +1 -0
- package/dist/__tests__/linkDialogDocPicker.test.d.ts +7 -0
- package/dist/__tests__/linkDialogDocPicker.test.d.ts.map +1 -0
- package/dist/__tests__/linkDialogDocPicker.test.js +75 -0
- package/dist/__tests__/linkDialogDocPicker.test.js.map +1 -0
- package/dist/__tests__/outlinePanel.test.d.ts +2 -0
- package/dist/__tests__/outlinePanel.test.d.ts.map +1 -0
- package/dist/__tests__/outlinePanel.test.js +68 -0
- package/dist/__tests__/outlinePanel.test.js.map +1 -0
- package/dist/__tests__/plainHtmlPreview.test.d.ts +2 -0
- package/dist/__tests__/plainHtmlPreview.test.d.ts.map +1 -0
- package/dist/__tests__/plainHtmlPreview.test.js +87 -0
- package/dist/__tests__/plainHtmlPreview.test.js.map +1 -0
- package/dist/__tests__/propertiesPanel.test.d.ts +2 -0
- package/dist/__tests__/propertiesPanel.test.d.ts.map +1 -0
- package/dist/__tests__/propertiesPanel.test.js +64 -0
- package/dist/__tests__/propertiesPanel.test.js.map +1 -0
- package/dist/__tests__/recorderFormats.test.d.ts +2 -0
- package/dist/__tests__/recorderFormats.test.d.ts.map +1 -0
- package/dist/__tests__/recorderFormats.test.js +121 -0
- package/dist/__tests__/recorderFormats.test.js.map +1 -0
- package/dist/__tests__/recorderTimingJson.test.d.ts +2 -0
- package/dist/__tests__/recorderTimingJson.test.d.ts.map +1 -0
- package/dist/__tests__/recorderTimingJson.test.js +37 -0
- package/dist/__tests__/recorderTimingJson.test.js.map +1 -0
- package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts +2 -0
- package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts.map +1 -0
- package/dist/__tests__/templateAnnotationRoundTrip.test.js +31 -0
- package/dist/__tests__/templateAnnotationRoundTrip.test.js.map +1 -0
- package/dist/__tests__/tiptapBridge.test.js +13 -0
- package/dist/__tests__/tiptapBridge.test.js.map +1 -1
- package/dist/__tests__/useImageEditor.test.d.ts +2 -0
- package/dist/__tests__/useImageEditor.test.d.ts.map +1 -0
- package/dist/__tests__/useImageEditor.test.js +131 -0
- package/dist/__tests__/useImageEditor.test.js.map +1 -0
- package/dist/__tests__/useMediaRecorder.test.d.ts +2 -0
- package/dist/__tests__/useMediaRecorder.test.d.ts.map +1 -0
- package/dist/__tests__/useMediaRecorder.test.js +153 -0
- package/dist/__tests__/useMediaRecorder.test.js.map +1 -0
- package/dist/__tests__/versionHistory.test.d.ts +2 -0
- package/dist/__tests__/versionHistory.test.d.ts.map +1 -0
- package/dist/__tests__/versionHistory.test.js +124 -0
- package/dist/__tests__/versionHistory.test.js.map +1 -0
- package/dist/blockSlice.d.ts +24 -0
- package/dist/blockSlice.d.ts.map +1 -0
- package/dist/blockSlice.js +63 -0
- package/dist/blockSlice.js.map +1 -0
- package/dist/buildPreviewDoc.d.ts.map +1 -1
- package/dist/buildPreviewDoc.js +52 -2
- package/dist/buildPreviewDoc.js.map +1 -1
- package/dist/emojiData.d.ts +81 -0
- package/dist/emojiData.d.ts.map +1 -0
- package/dist/emojiData.js +1283 -0
- package/dist/emojiData.js.map +1 -0
- package/dist/fileKind.d.ts +6 -2
- package/dist/fileKind.d.ts.map +1 -1
- package/dist/fileKind.js +25 -4
- package/dist/fileKind.js.map +1 -1
- package/dist/hooks/useFileDrop.d.ts.map +1 -1
- package/dist/hooks/useFileDrop.js +40 -4
- package/dist/hooks/useFileDrop.js.map +1 -1
- package/dist/imageEditor/CanvasSurface.d.ts +31 -0
- package/dist/imageEditor/CanvasSurface.d.ts.map +1 -0
- package/dist/imageEditor/CanvasSurface.js +264 -0
- package/dist/imageEditor/CanvasSurface.js.map +1 -0
- package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts +39 -0
- package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts.map +1 -0
- package/dist/imageEditor/ImageVersionHistoryDropdown.js +283 -0
- package/dist/imageEditor/ImageVersionHistoryDropdown.js.map +1 -0
- package/dist/imageEditor/LayersPanel.d.ts +14 -0
- package/dist/imageEditor/LayersPanel.d.ts.map +1 -0
- package/dist/imageEditor/LayersPanel.js +43 -0
- package/dist/imageEditor/LayersPanel.js.map +1 -0
- package/dist/imageEditor/PropertiesPanel.d.ts +14 -0
- package/dist/imageEditor/PropertiesPanel.d.ts.map +1 -0
- package/dist/imageEditor/PropertiesPanel.js +97 -0
- package/dist/imageEditor/PropertiesPanel.js.map +1 -0
- package/dist/imageEditor/Toolbar.d.ts +30 -0
- package/dist/imageEditor/Toolbar.d.ts.map +1 -0
- package/dist/imageEditor/Toolbar.js +108 -0
- package/dist/imageEditor/Toolbar.js.map +1 -0
- package/dist/imageEditor/icons.d.ts +24 -0
- package/dist/imageEditor/icons.d.ts.map +1 -0
- package/dist/imageEditor/icons.js +45 -0
- package/dist/imageEditor/icons.js.map +1 -0
- package/dist/imageEditor/layers/EditorImageLayer.d.ts +16 -0
- package/dist/imageEditor/layers/EditorImageLayer.d.ts.map +1 -0
- package/dist/imageEditor/layers/EditorImageLayer.js +37 -0
- package/dist/imageEditor/layers/EditorImageLayer.js.map +1 -0
- package/dist/imageEditor/layers/EditorShapeLayer.d.ts +15 -0
- package/dist/imageEditor/layers/EditorShapeLayer.d.ts.map +1 -0
- package/dist/imageEditor/layers/EditorShapeLayer.js +20 -0
- package/dist/imageEditor/layers/EditorShapeLayer.js.map +1 -0
- package/dist/imageEditor/layers/EditorTextLayer.d.ts +18 -0
- package/dist/imageEditor/layers/EditorTextLayer.d.ts.map +1 -0
- package/dist/imageEditor/layers/EditorTextLayer.js +13 -0
- package/dist/imageEditor/layers/EditorTextLayer.js.map +1 -0
- package/dist/imageEditor/layers/SelectionHandles.d.ts +17 -0
- package/dist/imageEditor/layers/SelectionHandles.d.ts.map +1 -0
- package/dist/imageEditor/layers/SelectionHandles.js +19 -0
- package/dist/imageEditor/layers/SelectionHandles.js.map +1 -0
- package/dist/imageEditor/state.d.ts +76 -0
- package/dist/imageEditor/state.d.ts.map +1 -0
- package/dist/imageEditor/state.js +87 -0
- package/dist/imageEditor/state.js.map +1 -0
- package/dist/imageEditor/useImageEditor.d.ts +53 -0
- package/dist/imageEditor/useImageEditor.d.ts.map +1 -0
- package/dist/imageEditor/useImageEditor.js +244 -0
- package/dist/imageEditor/useImageEditor.js.map +1 -0
- package/dist/imageEditor/useImageEditorTokens.d.ts +16 -0
- package/dist/imageEditor/useImageEditorTokens.d.ts.map +1 -0
- package/dist/imageEditor/useImageEditorTokens.js +45 -0
- package/dist/imageEditor/useImageEditorTokens.js.map +1 -0
- package/dist/index.d.ts +48 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -1
- package/dist/jsonEditor/EmbeddedRichTextField.d.ts +15 -0
- package/dist/jsonEditor/EmbeddedRichTextField.d.ts.map +1 -0
- package/dist/jsonEditor/EmbeddedRichTextField.js +74 -0
- package/dist/jsonEditor/EmbeddedRichTextField.js.map +1 -0
- package/dist/jsonEditor/JsonEditor.d.ts +36 -0
- package/dist/jsonEditor/JsonEditor.d.ts.map +1 -0
- package/dist/jsonEditor/JsonEditor.js +15 -0
- package/dist/jsonEditor/JsonEditor.js.map +1 -0
- package/dist/jsonEditor/JsonEditorContext.d.ts +28 -0
- package/dist/jsonEditor/JsonEditorContext.d.ts.map +1 -0
- package/dist/jsonEditor/JsonEditorContext.js +41 -0
- package/dist/jsonEditor/JsonEditorContext.js.map +1 -0
- package/dist/jsonEditor/RenderNode.d.ts +16 -0
- package/dist/jsonEditor/RenderNode.d.ts.map +1 -0
- package/dist/jsonEditor/RenderNode.js +32 -0
- package/dist/jsonEditor/RenderNode.js.map +1 -0
- package/dist/jsonEditor/editors.d.ts +36 -0
- package/dist/jsonEditor/editors.d.ts.map +1 -0
- package/dist/jsonEditor/editors.js +347 -0
- package/dist/jsonEditor/editors.js.map +1 -0
- package/dist/jsonEditor/index.d.ts +3 -0
- package/dist/jsonEditor/index.d.ts.map +1 -0
- package/dist/jsonEditor/index.js +2 -0
- package/dist/jsonEditor/index.js.map +1 -0
- package/dist/jsonEditor/useJsonEditorTokens.d.ts +13 -0
- package/dist/jsonEditor/useJsonEditorTokens.d.ts.map +1 -0
- package/dist/jsonEditor/useJsonEditorTokens.js +38 -0
- package/dist/jsonEditor/useJsonEditorTokens.js.map +1 -0
- package/dist/recorder/RecorderButton.d.ts +31 -0
- package/dist/recorder/RecorderButton.d.ts.map +1 -0
- package/dist/recorder/RecorderButton.js +24 -0
- package/dist/recorder/RecorderButton.js.map +1 -0
- package/dist/recorder/RecorderModal.d.ts +59 -0
- package/dist/recorder/RecorderModal.d.ts.map +1 -0
- package/dist/recorder/RecorderModal.js +333 -0
- package/dist/recorder/RecorderModal.js.map +1 -0
- package/dist/recorder/RecorderPanel.d.ts +25 -0
- package/dist/recorder/RecorderPanel.d.ts.map +1 -0
- package/dist/recorder/RecorderPanel.js +30 -0
- package/dist/recorder/RecorderPanel.js.map +1 -0
- package/dist/recorder/formats.d.ts +51 -0
- package/dist/recorder/formats.d.ts.map +1 -0
- package/dist/recorder/formats.js +144 -0
- package/dist/recorder/formats.js.map +1 -0
- package/dist/recorder/hooks/useMediaRecorder.d.ts +90 -0
- package/dist/recorder/hooks/useMediaRecorder.d.ts.map +1 -0
- package/dist/recorder/hooks/useMediaRecorder.js +277 -0
- package/dist/recorder/hooks/useMediaRecorder.js.map +1 -0
- package/dist/recorder/hooks/useStreamPreview.d.ts +22 -0
- package/dist/recorder/hooks/useStreamPreview.d.ts.map +1 -0
- package/dist/recorder/hooks/useStreamPreview.js +44 -0
- package/dist/recorder/hooks/useStreamPreview.js.map +1 -0
- package/dist/recorder/sources/cameraStream.d.ts +22 -0
- package/dist/recorder/sources/cameraStream.d.ts.map +1 -0
- package/dist/recorder/sources/cameraStream.js +24 -0
- package/dist/recorder/sources/cameraStream.js.map +1 -0
- package/dist/recorder/sources/micStream.d.ts +15 -0
- package/dist/recorder/sources/micStream.d.ts.map +1 -0
- package/dist/recorder/sources/micStream.js +24 -0
- package/dist/recorder/sources/micStream.js.map +1 -0
- package/dist/recorder/sources/screenStream.d.ts +53 -0
- package/dist/recorder/sources/screenStream.d.ts.map +1 -0
- package/dist/recorder/sources/screenStream.js +114 -0
- package/dist/recorder/sources/screenStream.js.map +1 -0
- package/dist/recorder/timingJson.d.ts +51 -0
- package/dist/recorder/timingJson.d.ts.map +1 -0
- package/dist/recorder/timingJson.js +42 -0
- package/dist/recorder/timingJson.js.map +1 -0
- package/dist/tiptap/TiptapAudio.d.ts +26 -0
- package/dist/tiptap/TiptapAudio.d.ts.map +1 -0
- package/dist/tiptap/TiptapAudio.js +58 -0
- package/dist/tiptap/TiptapAudio.js.map +1 -0
- package/dist/tiptap/TiptapVideo.d.ts +30 -0
- package/dist/tiptap/TiptapVideo.d.ts.map +1 -0
- package/dist/tiptap/TiptapVideo.js +66 -0
- package/dist/tiptap/TiptapVideo.js.map +1 -0
- package/dist/tiptap/useResolvedMediaSrc.d.ts +2 -0
- package/dist/tiptap/useResolvedMediaSrc.d.ts.map +1 -0
- package/dist/tiptap/useResolvedMediaSrc.js +42 -0
- package/dist/tiptap/useResolvedMediaSrc.js.map +1 -0
- package/dist/tiptapBridge.d.ts.map +1 -1
- package/dist/tiptapBridge.js +171 -14
- package/dist/tiptapBridge.js.map +1 -1
- package/dist/useHeadingLayout.d.ts +54 -0
- package/dist/useHeadingLayout.d.ts.map +1 -0
- package/dist/useHeadingLayout.js +260 -0
- package/dist/useHeadingLayout.js.map +1 -0
- package/dist/utils/collectInlineFontAwesomeCss.d.ts +21 -0
- package/dist/utils/collectInlineFontAwesomeCss.d.ts.map +1 -0
- package/dist/utils/collectInlineFontAwesomeCss.js +68 -0
- package/dist/utils/collectInlineFontAwesomeCss.js.map +1 -0
- package/dist/utils/dropUtils.d.ts +21 -2
- package/dist/utils/dropUtils.d.ts.map +1 -1
- package/dist/utils/dropUtils.js +43 -4
- package/dist/utils/dropUtils.js.map +1 -1
- package/dist/utils/normalizeMalformedAssetUrl.d.ts +15 -0
- package/dist/utils/normalizeMalformedAssetUrl.d.ts.map +1 -0
- package/dist/utils/normalizeMalformedAssetUrl.js +27 -0
- package/dist/utils/normalizeMalformedAssetUrl.js.map +1 -0
- package/package.json +8 -5
- package/src/DocumentSettingsDialog.tsx +266 -0
- package/src/EditorContext.tsx +534 -10
- package/src/EditorShell.tsx +571 -55
- package/src/EmojiPicker.tsx +332 -0
- package/src/ImageEditor.tsx +327 -0
- package/src/ImageNodeView.tsx +222 -21
- package/src/ImageViewer.tsx +221 -0
- package/src/InlineIcon.ts +84 -0
- package/src/InlinePreviewGutter.tsx +582 -0
- package/src/LinkDialog.tsx +276 -0
- package/src/MentionExtension.tsx +10 -7
- package/src/OutlinePanel.tsx +295 -0
- package/src/PlainHtmlPreview.tsx +211 -0
- package/src/PreviewControls.tsx +130 -24
- package/src/PreviewPanel.tsx +38 -21
- package/src/RawEditor.tsx +215 -4
- package/src/RecorderEntry.tsx +164 -0
- package/src/TemplateAnnotation.ts +32 -6
- package/src/TemplatePicker.tsx +818 -0
- package/src/ThemeCustomizerPanel.tsx +595 -0
- package/src/ThemePicker.tsx +319 -0
- package/src/Toolbar.tsx +708 -111
- package/src/VersionHistoryPanel.tsx +329 -0
- package/src/ViewMenuPanel.tsx +188 -0
- package/src/WysiwygEditor.tsx +229 -9
- package/src/__tests__/detectMarkdown.test.ts +0 -15
- package/src/__tests__/documentSettingsDialog.test.tsx +147 -0
- package/src/__tests__/emojiPicker.test.tsx +133 -0
- package/src/__tests__/fileKind.test.ts +16 -0
- package/src/__tests__/imageEditAffordance.test.tsx +268 -0
- package/src/__tests__/imageEditorShell.test.tsx +57 -0
- package/src/__tests__/imageEditorState.test.ts +171 -0
- package/src/__tests__/inlinePreviewGutter.test.tsx +62 -0
- package/src/__tests__/inlinePreviewGutterAllBlocks.test.tsx +103 -0
- package/src/__tests__/jsonEditor.test.tsx +168 -0
- package/src/__tests__/layersPanel.test.tsx +97 -0
- package/src/__tests__/linkDialogDocPicker.test.tsx +137 -0
- package/src/__tests__/outlinePanel.test.tsx +79 -0
- package/src/__tests__/plainHtmlPreview.test.tsx +107 -0
- package/src/__tests__/propertiesPanel.test.tsx +69 -0
- package/src/__tests__/recorderFormats.test.ts +146 -0
- package/src/__tests__/recorderTimingJson.test.ts +41 -0
- package/src/__tests__/templateAnnotationRoundTrip.test.ts +34 -0
- package/src/__tests__/tiptapBridge.test.ts +15 -0
- package/src/__tests__/useImageEditor.test.tsx +159 -0
- package/src/__tests__/useMediaRecorder.test.ts +186 -0
- package/src/__tests__/versionHistory.test.tsx +197 -0
- package/src/blockSlice.ts +75 -0
- package/src/buildPreviewDoc.ts +61 -6
- package/src/emojiData.ts +1337 -0
- package/src/fileKind.ts +30 -6
- package/src/hooks/useFileDrop.ts +40 -4
- package/src/imageEditor/CanvasSurface.tsx +402 -0
- package/src/imageEditor/ImageVersionHistoryDropdown.tsx +396 -0
- package/src/imageEditor/LayersPanel.tsx +143 -0
- package/src/imageEditor/PropertiesPanel.tsx +428 -0
- package/src/imageEditor/Toolbar.tsx +242 -0
- package/src/imageEditor/icons.tsx +144 -0
- package/src/imageEditor/image-editor.css +450 -0
- package/src/imageEditor/layers/EditorImageLayer.tsx +45 -0
- package/src/imageEditor/layers/EditorShapeLayer.tsx +62 -0
- package/src/imageEditor/layers/EditorTextLayer.tsx +45 -0
- package/src/imageEditor/layers/SelectionHandles.tsx +86 -0
- package/src/imageEditor/state.ts +153 -0
- package/src/imageEditor/useImageEditor.ts +328 -0
- package/src/imageEditor/useImageEditorTokens.ts +70 -0
- package/src/index.ts +82 -0
- package/src/jsonEditor/EmbeddedRichTextField.tsx +81 -0
- package/src/jsonEditor/JsonEditor.tsx +81 -0
- package/src/jsonEditor/JsonEditorContext.tsx +75 -0
- package/src/jsonEditor/RenderNode.tsx +66 -0
- package/src/jsonEditor/editors.tsx +678 -0
- package/src/jsonEditor/index.ts +2 -0
- package/src/jsonEditor/json-editor.css +463 -0
- package/src/jsonEditor/useJsonEditorTokens.ts +63 -0
- package/src/recorder/RecorderButton.tsx +72 -0
- package/src/recorder/RecorderModal.tsx +596 -0
- package/src/recorder/RecorderPanel.tsx +93 -0
- package/src/recorder/formats.ts +159 -0
- package/src/recorder/hooks/useMediaRecorder.ts +378 -0
- package/src/recorder/hooks/useStreamPreview.ts +47 -0
- package/src/recorder/sources/cameraStream.ts +32 -0
- package/src/recorder/sources/micStream.ts +25 -0
- package/src/recorder/sources/screenStream.ts +162 -0
- package/src/recorder/timingJson.ts +66 -0
- package/src/styles/editor.css +2490 -51
- package/src/styles/image-edit-affordance.css +201 -0
- package/src/styles/index.css +10 -0
- package/src/tiptap/TiptapAudio.tsx +86 -0
- package/src/tiptap/TiptapVideo.tsx +119 -0
- package/src/tiptap/useResolvedMediaSrc.ts +47 -0
- package/src/tiptapBridge.ts +188 -20
- package/src/useHeadingLayout.ts +294 -0
- package/src/utils/collectInlineFontAwesomeCss.ts +69 -0
- package/src/utils/dropUtils.ts +54 -6
- package/src/utils/normalizeMalformedAssetUrl.ts +22 -0
package/dist/EditorContext.js
CHANGED
|
@@ -10,6 +10,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
10
10
|
import { createContext, useContext, useState, useCallback, useMemo, useRef, useEffect, } from 'react';
|
|
11
11
|
import { parseMarkdown, stringifyMarkdown } from '@bendyline/squisq/markdown';
|
|
12
12
|
import { markdownToDoc } from '@bendyline/squisq/doc';
|
|
13
|
+
import { DocumentVersionManager, } from '@bendyline/squisq/versions';
|
|
13
14
|
import { markdownToTiptap } from './tiptapBridge';
|
|
14
15
|
import { resolveFileKind } from './fileKind';
|
|
15
16
|
// ─── Context ─────────────────────────────────────────────
|
|
@@ -29,25 +30,161 @@ export function useEditorContext() {
|
|
|
29
30
|
* Provides shared editor state to all child components.
|
|
30
31
|
* Automatically parses markdown and generates a Doc whenever the source changes.
|
|
31
32
|
*/
|
|
32
|
-
|
|
33
|
+
const DEFAULT_PRUNE_POLICY = { type: 'keep-last-n', n: 50 };
|
|
34
|
+
const DEFAULT_AUTOSAVE_IDLE_MS = 5000;
|
|
35
|
+
export function EditorProvider({ initialMarkdown = '', initialView = 'raw', articleId = 'untitled', theme: initialTheme = 'light', workspaceContainer = null, allowVersioning = false, versionBasename, versioningPrunePolicy = DEFAULT_PRUNE_POLICY, versioningAutoSaveIdleMs = DEFAULT_AUTOSAVE_IDLE_MS, onSaveVersion, mediaProvider = null, imageDisplayMode = 'inline', mentionProvider = null, documentLinkProvider = null, allowRecording = true, fileName, language, inlinePreview = false, showStatusBar = true, outline = false, blockTags = true, themeInheritance = 'fonts', viewPreferences, onViewPreferencesChange, children, }) {
|
|
36
|
+
// Resolve effective initial values: bundled `viewPreferences` wins over
|
|
37
|
+
// individual props when both are passed. Individual props remain valid
|
|
38
|
+
// for hosts that haven't migrated to the bundled API.
|
|
39
|
+
const effectiveInlinePreview = viewPreferences?.inlinePreview ?? inlinePreview;
|
|
40
|
+
const effectiveShowStatusBar = viewPreferences?.showStatusBar ?? showStatusBar;
|
|
41
|
+
const effectiveOutline = viewPreferences?.outline ?? outline;
|
|
42
|
+
const effectiveBlockTags = viewPreferences?.blockTags ?? blockTags;
|
|
43
|
+
const effectiveThemeInheritance = viewPreferences?.themeInheritance ?? themeInheritance;
|
|
33
44
|
// Resolve once per provider mount. Changing fileName/language after mount
|
|
34
45
|
// would require recreating the Monaco model anyway, so treat it as static.
|
|
35
46
|
const { mode: editorMode, language: resolvedLanguage } = useMemo(() => resolveFileKind(fileName, language), [fileName, language]);
|
|
36
47
|
// In code mode, WYSIWYG and Preview aren't rendered — force the starting
|
|
37
|
-
// view to 'raw' so we don't boot into an unmounted surface.
|
|
48
|
+
// view to 'raw' so we don't boot into an unmounted surface. Image mode
|
|
49
|
+
// has no text-editing surface at all; keep the same fallback so that any
|
|
50
|
+
// host that switches into image mode doesn't end up in a stale view id.
|
|
38
51
|
const [markdownSource, setMarkdownSourceRaw] = useState(initialMarkdown);
|
|
39
52
|
const [markdownDoc, setMarkdownDocState] = useState(null);
|
|
40
53
|
const [doc, setDoc] = useState(null);
|
|
41
|
-
const [activeView, setActiveViewRaw] = useState(editorMode === '
|
|
54
|
+
const [activeView, setActiveViewRaw] = useState(editorMode === 'markdown' ? initialView : 'raw');
|
|
42
55
|
const setActiveView = useCallback((view) => {
|
|
43
|
-
// In code mode only the raw view is valid
|
|
56
|
+
// In code mode only the raw view is valid. In image mode no text view
|
|
57
|
+
// is valid at all — ignore any switch attempt.
|
|
44
58
|
if (editorMode === 'code' && view !== 'raw')
|
|
45
59
|
return;
|
|
60
|
+
if (editorMode === 'image')
|
|
61
|
+
return;
|
|
46
62
|
setActiveViewRaw(view);
|
|
47
63
|
}, [editorMode]);
|
|
48
64
|
const [parseError, setParseError] = useState(null);
|
|
49
65
|
const [isParsing, setIsParsing] = useState(false);
|
|
50
66
|
const [theme, setTheme] = useState(initialTheme);
|
|
67
|
+
const [inlinePreviewVisible, setInlinePreviewVisibleRaw] = useState(effectiveInlinePreview);
|
|
68
|
+
// Sync visibility when the host changes the prop (e.g., toggle from outside).
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
setInlinePreviewVisibleRaw(inlinePreview);
|
|
71
|
+
}, [inlinePreview]);
|
|
72
|
+
const [statusBarVisible, setStatusBarVisibleRaw] = useState(effectiveShowStatusBar);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
setStatusBarVisibleRaw(showStatusBar);
|
|
75
|
+
}, [showStatusBar]);
|
|
76
|
+
const [outlineVisible, setOutlineVisibleRaw] = useState(effectiveOutline);
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
setOutlineVisibleRaw(outline);
|
|
79
|
+
}, [outline]);
|
|
80
|
+
const [blockTagsVisible, setBlockTagsVisibleRaw] = useState(effectiveBlockTags);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
setBlockTagsVisibleRaw(blockTags);
|
|
83
|
+
}, [blockTags]);
|
|
84
|
+
const [themeInheritanceState, setThemeInheritanceRaw] = useState(effectiveThemeInheritance);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
setThemeInheritanceRaw(themeInheritance);
|
|
87
|
+
}, [themeInheritance]);
|
|
88
|
+
const [imageEditTarget, setImageEditTarget] = useState(null);
|
|
89
|
+
const [mediaRevision, setMediaRevision] = useState(0);
|
|
90
|
+
const openImageEdit = useCallback((relativePath) => {
|
|
91
|
+
setImageEditTarget(relativePath);
|
|
92
|
+
}, []);
|
|
93
|
+
const closeImageEdit = useCallback(() => {
|
|
94
|
+
setImageEditTarget(null);
|
|
95
|
+
}, []);
|
|
96
|
+
const bumpMediaRevision = useCallback(() => {
|
|
97
|
+
setMediaRevision((n) => n + 1);
|
|
98
|
+
}, []);
|
|
99
|
+
// Sync from the bundled `viewPreferences` prop. Runs in addition to the
|
|
100
|
+
// individual prop syncs above. When both APIs are present, the bundled
|
|
101
|
+
// values are applied here last, keeping `viewPreferences` authoritative.
|
|
102
|
+
useEffect(() => {
|
|
103
|
+
if (!viewPreferences)
|
|
104
|
+
return;
|
|
105
|
+
if (viewPreferences.inlinePreview !== undefined) {
|
|
106
|
+
setInlinePreviewVisibleRaw(viewPreferences.inlinePreview);
|
|
107
|
+
}
|
|
108
|
+
if (viewPreferences.showStatusBar !== undefined) {
|
|
109
|
+
setStatusBarVisibleRaw(viewPreferences.showStatusBar);
|
|
110
|
+
}
|
|
111
|
+
if (viewPreferences.outline !== undefined) {
|
|
112
|
+
setOutlineVisibleRaw(viewPreferences.outline);
|
|
113
|
+
}
|
|
114
|
+
if (viewPreferences.blockTags !== undefined) {
|
|
115
|
+
setBlockTagsVisibleRaw(viewPreferences.blockTags);
|
|
116
|
+
}
|
|
117
|
+
if (viewPreferences.themeInheritance !== undefined) {
|
|
118
|
+
setThemeInheritanceRaw(viewPreferences.themeInheritance);
|
|
119
|
+
}
|
|
120
|
+
}, [viewPreferences]);
|
|
121
|
+
// Wrap the three setters so user-driven toggles emit a snapshot via
|
|
122
|
+
// `onViewPreferencesChange`. Refs hold the latest values + callback so
|
|
123
|
+
// each wrapper can build a current snapshot without re-creating itself
|
|
124
|
+
// on every state change (the setters are kept referentially stable for
|
|
125
|
+
// the context value's memoization).
|
|
126
|
+
const onViewPreferencesChangeRef = useRef(onViewPreferencesChange);
|
|
127
|
+
onViewPreferencesChangeRef.current = onViewPreferencesChange;
|
|
128
|
+
const inlinePreviewRef = useRef(inlinePreviewVisible);
|
|
129
|
+
inlinePreviewRef.current = inlinePreviewVisible;
|
|
130
|
+
const statusBarRef = useRef(statusBarVisible);
|
|
131
|
+
statusBarRef.current = statusBarVisible;
|
|
132
|
+
const outlineRef = useRef(outlineVisible);
|
|
133
|
+
outlineRef.current = outlineVisible;
|
|
134
|
+
const blockTagsRef = useRef(blockTagsVisible);
|
|
135
|
+
blockTagsRef.current = blockTagsVisible;
|
|
136
|
+
const themeInheritanceRef = useRef(themeInheritanceState);
|
|
137
|
+
themeInheritanceRef.current = themeInheritanceState;
|
|
138
|
+
const setInlinePreviewVisible = useCallback((visible) => {
|
|
139
|
+
setInlinePreviewVisibleRaw(visible);
|
|
140
|
+
onViewPreferencesChangeRef.current?.({
|
|
141
|
+
inlinePreview: visible,
|
|
142
|
+
showStatusBar: statusBarRef.current,
|
|
143
|
+
outline: outlineRef.current,
|
|
144
|
+
blockTags: blockTagsRef.current,
|
|
145
|
+
themeInheritance: themeInheritanceRef.current,
|
|
146
|
+
});
|
|
147
|
+
}, []);
|
|
148
|
+
const setStatusBarVisible = useCallback((visible) => {
|
|
149
|
+
setStatusBarVisibleRaw(visible);
|
|
150
|
+
onViewPreferencesChangeRef.current?.({
|
|
151
|
+
inlinePreview: inlinePreviewRef.current,
|
|
152
|
+
showStatusBar: visible,
|
|
153
|
+
outline: outlineRef.current,
|
|
154
|
+
blockTags: blockTagsRef.current,
|
|
155
|
+
themeInheritance: themeInheritanceRef.current,
|
|
156
|
+
});
|
|
157
|
+
}, []);
|
|
158
|
+
const setOutlineVisible = useCallback((visible) => {
|
|
159
|
+
setOutlineVisibleRaw(visible);
|
|
160
|
+
onViewPreferencesChangeRef.current?.({
|
|
161
|
+
inlinePreview: inlinePreviewRef.current,
|
|
162
|
+
showStatusBar: statusBarRef.current,
|
|
163
|
+
outline: visible,
|
|
164
|
+
blockTags: blockTagsRef.current,
|
|
165
|
+
themeInheritance: themeInheritanceRef.current,
|
|
166
|
+
});
|
|
167
|
+
}, []);
|
|
168
|
+
const setBlockTagsVisible = useCallback((visible) => {
|
|
169
|
+
setBlockTagsVisibleRaw(visible);
|
|
170
|
+
onViewPreferencesChangeRef.current?.({
|
|
171
|
+
inlinePreview: inlinePreviewRef.current,
|
|
172
|
+
showStatusBar: statusBarRef.current,
|
|
173
|
+
outline: outlineRef.current,
|
|
174
|
+
blockTags: visible,
|
|
175
|
+
themeInheritance: themeInheritanceRef.current,
|
|
176
|
+
});
|
|
177
|
+
}, []);
|
|
178
|
+
const setThemeInheritance = useCallback((mode) => {
|
|
179
|
+
setThemeInheritanceRaw(mode);
|
|
180
|
+
onViewPreferencesChangeRef.current?.({
|
|
181
|
+
inlinePreview: inlinePreviewRef.current,
|
|
182
|
+
showStatusBar: statusBarRef.current,
|
|
183
|
+
outline: outlineRef.current,
|
|
184
|
+
blockTags: blockTagsRef.current,
|
|
185
|
+
themeInheritance: mode,
|
|
186
|
+
});
|
|
187
|
+
}, []);
|
|
51
188
|
const [tiptapEditor, setTiptapEditor] = useState(null);
|
|
52
189
|
const [monacoEditor, setMonacoEditor] = useState(null);
|
|
53
190
|
const articleIdRef = useRef(articleId);
|
|
@@ -86,12 +223,12 @@ export function EditorProvider({ initialMarkdown = '', initialView = 'raw', arti
|
|
|
86
223
|
setIsParsing(false);
|
|
87
224
|
}
|
|
88
225
|
}, []);
|
|
89
|
-
// Parse on source changes with debounce. Skipped in code mode —
|
|
90
|
-
// WYSIWYG/Preview surfaces that consume markdownDoc/doc aren't
|
|
91
|
-
// so there's nothing to feed and no reason to run the markdown
|
|
92
|
-
// TypeScript / JSON /
|
|
226
|
+
// Parse on source changes with debounce. Skipped in code/image mode —
|
|
227
|
+
// the WYSIWYG/Preview surfaces that consume markdownDoc/doc aren't
|
|
228
|
+
// mounted, so there's nothing to feed and no reason to run the markdown
|
|
229
|
+
// parser on TypeScript / JSON / a binary image asset.
|
|
93
230
|
useEffect(() => {
|
|
94
|
-
if (editorMode
|
|
231
|
+
if (editorMode !== 'markdown')
|
|
95
232
|
return;
|
|
96
233
|
if (parseTimeoutRef.current) {
|
|
97
234
|
clearTimeout(parseTimeoutRef.current);
|
|
@@ -107,7 +244,7 @@ export function EditorProvider({ initialMarkdown = '', initialView = 'raw', arti
|
|
|
107
244
|
}, [markdownSource, doParse, editorMode]);
|
|
108
245
|
// Initial parse
|
|
109
246
|
useEffect(() => {
|
|
110
|
-
if (editorMode
|
|
247
|
+
if (editorMode !== 'markdown')
|
|
111
248
|
return;
|
|
112
249
|
if (initialMarkdown) {
|
|
113
250
|
doParse(initialMarkdown);
|
|
@@ -158,6 +295,67 @@ export function EditorProvider({ initialMarkdown = '', initialView = 'raw', arti
|
|
|
158
295
|
monacoEditor.setValue(text);
|
|
159
296
|
}
|
|
160
297
|
}, [tiptapEditor, monacoEditor]);
|
|
298
|
+
// ── Versioning ─────────────────────────────────────────
|
|
299
|
+
// Build a manager only when versioning is opted in *and* a workspace
|
|
300
|
+
// container exists. A versioning request without one is a misconfiguration
|
|
301
|
+
// — warn once so it surfaces in dev without breaking the editor.
|
|
302
|
+
const versioningWarnedRef = useRef(false);
|
|
303
|
+
useEffect(() => {
|
|
304
|
+
if (allowVersioning && !workspaceContainer && !versioningWarnedRef.current) {
|
|
305
|
+
console.warn('[squisq-editor] allowVersioning requires a `workspaceContainer` prop; versioning is disabled.');
|
|
306
|
+
versioningWarnedRef.current = true;
|
|
307
|
+
}
|
|
308
|
+
}, [allowVersioning, workspaceContainer]);
|
|
309
|
+
const versioning = useMemo(() => {
|
|
310
|
+
if (!allowVersioning || !workspaceContainer)
|
|
311
|
+
return null;
|
|
312
|
+
return new DocumentVersionManager(workspaceContainer, { basename: versionBasename });
|
|
313
|
+
}, [allowVersioning, workspaceContainer, versionBasename]);
|
|
314
|
+
const onSaveVersionRef = useRef(onSaveVersion);
|
|
315
|
+
onSaveVersionRef.current = onSaveVersion;
|
|
316
|
+
const prunePolicyRef = useRef(versioningPrunePolicy);
|
|
317
|
+
prunePolicyRef.current = versioningPrunePolicy;
|
|
318
|
+
const saveVersion = useCallback(async (options) => {
|
|
319
|
+
if (!versioning) {
|
|
320
|
+
const skipped = { saved: false, version: null, reason: 'no-document' };
|
|
321
|
+
onSaveVersionRef.current?.(skipped);
|
|
322
|
+
return skipped;
|
|
323
|
+
}
|
|
324
|
+
const result = await versioning.saveVersion(options);
|
|
325
|
+
onSaveVersionRef.current?.(result);
|
|
326
|
+
if (result.saved) {
|
|
327
|
+
// Fire-and-forget prune. Failures here shouldn't block the save.
|
|
328
|
+
versioning.pruneVersions(prunePolicyRef.current).catch((err) => {
|
|
329
|
+
console.warn('[squisq-editor] pruneVersions failed:', err instanceof Error ? err.message : err);
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
return result;
|
|
333
|
+
}, [versioning]);
|
|
334
|
+
// Auto-save: stamp a new snapshot after `versioningAutoSaveIdleMs` of
|
|
335
|
+
// idle. The "only save if different" check inside `saveVersion` makes
|
|
336
|
+
// most ticks no-ops, so this is cheap. Disabled when the idle delay is
|
|
337
|
+
// 0 or versioning isn't active.
|
|
338
|
+
//
|
|
339
|
+
// We pass the live `markdownSource` explicitly so saveVersion never has
|
|
340
|
+
// to fall back to `container.readDocument()`. That fallback would fail
|
|
341
|
+
// in setups where the markdown file lives outside the versioning
|
|
342
|
+
// container's scope (e.g. DocBlocks, where the container points at
|
|
343
|
+
// `<basename>_files/` while the doc itself lives in the parent
|
|
344
|
+
// directory). Using the editor's live state also ensures the snapshot
|
|
345
|
+
// captures the most recent edit even if the host's autosave to the
|
|
346
|
+
// container hasn't flushed yet.
|
|
347
|
+
useEffect(() => {
|
|
348
|
+
if (!versioning)
|
|
349
|
+
return;
|
|
350
|
+
if (versioningAutoSaveIdleMs <= 0)
|
|
351
|
+
return;
|
|
352
|
+
const timer = setTimeout(() => {
|
|
353
|
+
saveVersion({ content: markdownSource }).catch((err) => {
|
|
354
|
+
console.warn('[squisq-editor] auto-save version failed:', err instanceof Error ? err.message : err);
|
|
355
|
+
});
|
|
356
|
+
}, versioningAutoSaveIdleMs);
|
|
357
|
+
return () => clearTimeout(timer);
|
|
358
|
+
}, [markdownSource, versioning, versioningAutoSaveIdleMs, saveVersion]);
|
|
161
359
|
const setMarkdownDoc = useCallback((newDoc) => {
|
|
162
360
|
setMarkdownDocState(newDoc);
|
|
163
361
|
// Stringify to update the raw source
|
|
@@ -191,19 +389,39 @@ export function EditorProvider({ initialMarkdown = '', initialView = 'raw', arti
|
|
|
191
389
|
theme,
|
|
192
390
|
editorMode,
|
|
193
391
|
language: resolvedLanguage,
|
|
392
|
+
inlinePreviewVisible,
|
|
393
|
+
statusBarVisible,
|
|
394
|
+
outlineVisible,
|
|
395
|
+
blockTagsVisible,
|
|
396
|
+
themeInheritance: themeInheritanceState,
|
|
397
|
+
imageEditTarget,
|
|
398
|
+
mediaRevision,
|
|
399
|
+
allowRecording,
|
|
194
400
|
tiptapEditor,
|
|
195
401
|
monacoEditor,
|
|
402
|
+
workspaceContainer,
|
|
403
|
+
versioning,
|
|
404
|
+
saveVersion,
|
|
196
405
|
mediaProvider,
|
|
197
406
|
imageDisplayMode,
|
|
198
407
|
mentionProvider,
|
|
408
|
+
documentLinkProvider,
|
|
199
409
|
setMarkdownSource,
|
|
200
410
|
setMarkdownDoc,
|
|
201
411
|
setActiveView,
|
|
202
412
|
setTiptapEditor,
|
|
203
413
|
setMonacoEditor,
|
|
204
414
|
setTheme,
|
|
415
|
+
setInlinePreviewVisible,
|
|
416
|
+
setStatusBarVisible,
|
|
417
|
+
setOutlineVisible,
|
|
418
|
+
setBlockTagsVisible,
|
|
419
|
+
setThemeInheritance,
|
|
205
420
|
insertAtCursor,
|
|
206
421
|
replaceAll,
|
|
422
|
+
openImageEdit,
|
|
423
|
+
closeImageEdit,
|
|
424
|
+
bumpMediaRevision,
|
|
207
425
|
}), [
|
|
208
426
|
markdownSource,
|
|
209
427
|
markdownDoc,
|
|
@@ -214,19 +432,39 @@ export function EditorProvider({ initialMarkdown = '', initialView = 'raw', arti
|
|
|
214
432
|
theme,
|
|
215
433
|
editorMode,
|
|
216
434
|
resolvedLanguage,
|
|
435
|
+
inlinePreviewVisible,
|
|
436
|
+
statusBarVisible,
|
|
437
|
+
outlineVisible,
|
|
438
|
+
blockTagsVisible,
|
|
439
|
+
themeInheritanceState,
|
|
217
440
|
tiptapEditor,
|
|
218
441
|
monacoEditor,
|
|
442
|
+
workspaceContainer,
|
|
443
|
+
versioning,
|
|
444
|
+
saveVersion,
|
|
219
445
|
mediaProvider,
|
|
220
446
|
imageDisplayMode,
|
|
221
447
|
mentionProvider,
|
|
448
|
+
documentLinkProvider,
|
|
222
449
|
setMarkdownSource,
|
|
223
450
|
setMarkdownDoc,
|
|
224
451
|
setActiveView,
|
|
225
452
|
setTiptapEditor,
|
|
226
453
|
setMonacoEditor,
|
|
227
454
|
setTheme,
|
|
455
|
+
setInlinePreviewVisible,
|
|
456
|
+
setStatusBarVisible,
|
|
457
|
+
setOutlineVisible,
|
|
458
|
+
setBlockTagsVisible,
|
|
459
|
+
setThemeInheritance,
|
|
228
460
|
insertAtCursor,
|
|
229
461
|
replaceAll,
|
|
462
|
+
imageEditTarget,
|
|
463
|
+
mediaRevision,
|
|
464
|
+
allowRecording,
|
|
465
|
+
openImageEdit,
|
|
466
|
+
closeImageEdit,
|
|
467
|
+
bumpMediaRevision,
|
|
230
468
|
]);
|
|
231
469
|
return _jsx(EditorContext.Provider, { value: value, children: children });
|
|
232
470
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorContext.js","sourceRoot":"","sources":["../src/EditorContext.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,GAEV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA4G7C,4DAA4D;AAE5D,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAErE;;GAEG;AACH,gEAAgE;AAChE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAgCD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,eAAe,GAAG,EAAE,EACpB,WAAW,GAAG,KAAK,EACnB,SAAS,GAAG,UAAU,EACtB,KAAK,EAAE,YAAY,GAAG,OAAO,EAC7B,aAAa,GAAG,IAAI,EACpB,gBAAgB,GAAG,QAAQ,EAC3B,eAAe,GAAG,IAAI,EACtB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACY;IACpB,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAC9D,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACzC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IACF,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAC7C,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAC5C,CAAC;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAAgB,EAAE,EAAE;QACnB,sEAAsE;QACtE,IAAI,UAAU,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO;QACpD,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAc,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;IAEjC,+BAA+B;IAC/B,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,4CAA4C;IAC5C,MAAM,eAAe,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,CAAC;YAEpB,oCAAoC;YACpC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE;oBACzC,SAAS,EAAE,YAAY,CAAC,OAAO;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,MAAe,EAAE,CAAC;gBACzB,uDAAuD;gBACvD,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClE,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oEAAoE;IACpE,wEAAwE;IACxE,yEAAyE;IACzE,2BAA2B;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,MAAM;YAAE,OAAO;QAClC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE;YACV,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1C,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,MAAM;YAAE,OAAO;QAClC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3B,CAAC;QACD,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QACvD,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,IAAY,EAAE,EAAE;QACf,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,EAAE,CAAC;YAC7C,4CAA4C;YAC5C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACpC,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,UAAU,KAAK,KAAK,IAAI,YAAY,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,KAAK,GAAG;wBACZ,eAAe,EAAE,QAAQ,CAAC,UAAU;wBACpC,WAAW,EAAE,QAAQ,CAAC,MAAM;wBAC5B,aAAa,EAAE,QAAQ,CAAC,UAAU;wBAClC,SAAS,EAAE,QAAQ,CAAC,MAAM;qBAC3B,CAAC;oBACF,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CACzC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAE,EAAE;QACf,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE3B,6BAA6B;QAC7B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACpC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EACD,CAAC,YAAY,EAAE,YAAY,CAAC,CAC7B,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,MAAwB,EAAE,EAAE;QAC9D,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5B,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEpB,eAAe;YACf,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE;oBACzC,SAAS,EAAE,YAAY,CAAC,OAAO;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,MAAe,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,cAAc;QACd,WAAW;QACX,GAAG;QACH,UAAU;QACV,UAAU;QACV,SAAS;QACT,KAAK;QACL,UAAU;QACV,QAAQ,EAAE,gBAAgB;QAC1B,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,eAAe;QACf,eAAe;QACf,QAAQ;QACR,cAAc;QACd,UAAU;KACX,CAAC,EACF;QACE,cAAc;QACd,WAAW;QACX,GAAG;QACH,UAAU;QACV,UAAU;QACV,SAAS;QACT,KAAK;QACL,UAAU;QACV,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,eAAe;QACf,eAAe;QACf,QAAQ;QACR,cAAc;QACd,UAAU;KACX,CACF,CAAC;IAEF,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAC;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"EditorContext.js","sourceRoot":"","sources":["../src/EditorContext.tsx"],"names":[],"mappings":"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"}
|
package/dist/EditorShell.d.ts
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* views, and StatusBar into a complete editing experience. Wraps everything
|
|
6
6
|
* in an EditorProvider for shared state.
|
|
7
7
|
*/
|
|
8
|
-
import { type EditorView, type ImageDisplayMode, type MentionProvider } from './EditorContext';
|
|
9
|
-
import type { MediaProvider } from '@bendyline/squisq/schemas';
|
|
8
|
+
import { type EditorView, type ImageDisplayMode, type MentionProvider, type DocumentLinkProvider, type ViewPreferences, type ThemeInheritance } from './EditorContext';
|
|
9
|
+
import type { MediaProvider, Theme } from '@bendyline/squisq/schemas';
|
|
10
10
|
import type { ContentContainer } from '@bendyline/squisq/storage';
|
|
11
|
+
import type { PrunePolicy, SaveVersionResult } from '@bendyline/squisq/versions';
|
|
11
12
|
import type { ReactNode } from 'react';
|
|
12
13
|
export type { EditorTheme } from './EditorContext';
|
|
13
14
|
export interface EditorShellProps {
|
|
@@ -41,8 +42,61 @@ export interface EditorShellProps {
|
|
|
41
42
|
maxHeight?: string;
|
|
42
43
|
/** Optional MediaProvider for the Files panel. When set (even to null), a Files toggle appears in the toolbar. */
|
|
43
44
|
mediaProvider?: MediaProvider | null;
|
|
44
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The workspace-scoped `ContentContainer` for this document — the
|
|
47
|
+
* folder that contains the doc, its `_files/` sidecar, sibling
|
|
48
|
+
* documents, and any version snapshots. Used for:
|
|
49
|
+
* - audio mapping (MP3 discovery + timing.json reading);
|
|
50
|
+
* - version history snapshots (when `allowVersioning` is true);
|
|
51
|
+
* - reading sibling `.md` files for the recursive HTML export;
|
|
52
|
+
* - resolving per-document scoped views (e.g. the image-edit
|
|
53
|
+
* sidecar derived via `scopeContainer`).
|
|
54
|
+
* Doc-scoped concerns (per-doc media URLs, per-doc asset writes)
|
|
55
|
+
* flow through `mediaProvider` instead — typically derived from
|
|
56
|
+
* this container via `createMediaProviderFromContainer`.
|
|
57
|
+
*/
|
|
58
|
+
workspaceContainer?: ContentContainer | null;
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Renamed to `workspaceContainer` to make the workspace-
|
|
61
|
+
* vs. doc-scoped distinction explicit. Still accepted as a fallback
|
|
62
|
+
* for now; remove in the next breaking release.
|
|
63
|
+
*/
|
|
45
64
|
container?: ContentContainer | null;
|
|
65
|
+
/**
|
|
66
|
+
* Enable version history. Snapshots are stored at
|
|
67
|
+
* `.versions/<basename>.<timestamp>.md` inside the same
|
|
68
|
+
* `workspaceContainer`, so they ride along with the document when
|
|
69
|
+
* the host serializes.
|
|
70
|
+
*
|
|
71
|
+
* Snapshots fire on idle (controlled by `versioningAutoSaveIdleMs`)
|
|
72
|
+
* and can also be triggered host-side via the manager exposed in the
|
|
73
|
+
* context (`useEditorContext().versioning`). Has no effect without a
|
|
74
|
+
* `workspaceContainer` — a `console.warn` flags the misconfiguration
|
|
75
|
+
* in dev.
|
|
76
|
+
*/
|
|
77
|
+
allowVersioning?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Override the document basename used in version filenames. Defaults
|
|
80
|
+
* to the basename of the container's primary document path.
|
|
81
|
+
*/
|
|
82
|
+
versionBasename?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Prune policy applied after each successful save. Defaults to
|
|
85
|
+
* `{ type: 'keep-last-n', n: 50 }` so the snapshot count stays bounded.
|
|
86
|
+
*/
|
|
87
|
+
versioningPrunePolicy?: PrunePolicy;
|
|
88
|
+
/**
|
|
89
|
+
* Idle delay (ms) before the editor auto-saves a version. `0` disables
|
|
90
|
+
* auto-save entirely (snapshots are then only saved when the host
|
|
91
|
+
* calls `versioning.saveVersion()` from the context). Default: 5000.
|
|
92
|
+
*/
|
|
93
|
+
versioningAutoSaveIdleMs?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Notified after each `saveVersion` attempt. Fires for both successful
|
|
96
|
+
* saves (`reason: 'saved'`) and skips (`'unchanged'`, `'no-document'`,
|
|
97
|
+
* `'empty'`). Useful for hosts that want a "Last saved" indicator.
|
|
98
|
+
*/
|
|
99
|
+
onSaveVersion?: (result: SaveVersionResult) => void;
|
|
46
100
|
/** Show the Files toggle in the toolbar. Defaults to true when mediaProvider is passed. */
|
|
47
101
|
showFilesToggle?: boolean;
|
|
48
102
|
/** Content rendered at the left edge of the toolbar, before the view tabs. */
|
|
@@ -134,6 +188,24 @@ export interface EditorShellProps {
|
|
|
134
188
|
* inline. Omit to disable mentions entirely.
|
|
135
189
|
*/
|
|
136
190
|
mentionProvider?: MentionProvider | null;
|
|
191
|
+
/**
|
|
192
|
+
* Optional async provider for sibling-document suggestions in the
|
|
193
|
+
* link insert dialog. When supplied, the dialog gains a "Browse
|
|
194
|
+
* documents" picker so authors can pick a neighbor `.md` by name and
|
|
195
|
+
* insert a relative-path link without typing the URL by hand. Hosts
|
|
196
|
+
* that organize docs in a workspace (file-system, IndexedDB slot,
|
|
197
|
+
* remote API, …) implement this; the editor stays agnostic.
|
|
198
|
+
*/
|
|
199
|
+
documentLinkProvider?: DocumentLinkProvider | null;
|
|
200
|
+
/**
|
|
201
|
+
* Whether the in-editor media recorder is surfaced in the toolbar.
|
|
202
|
+
* Defaults to true — when a `mediaProvider` is wired, a record
|
|
203
|
+
* button appears next to the version history. Pass `false` to
|
|
204
|
+
* suppress it (read-only embeds, surfaces where camera/screen
|
|
205
|
+
* permission prompts would be jarring). Without a `mediaProvider`,
|
|
206
|
+
* the button is hidden regardless of this prop.
|
|
207
|
+
*/
|
|
208
|
+
allowRecording?: boolean;
|
|
137
209
|
/**
|
|
138
210
|
* Placeholder text shown in the WYSIWYG editor while the document is
|
|
139
211
|
* empty. When omitted, the editor rotates through its own generic
|
|
@@ -150,10 +222,107 @@ export interface EditorShellProps {
|
|
|
150
222
|
* accidental edits.
|
|
151
223
|
*/
|
|
152
224
|
readOnly?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Image source URL used when the resolved file mode is `image` (PNG,
|
|
227
|
+
* JPEG, GIF, WebP, BMP, ICO, AVIF). When this prop is set, the shell
|
|
228
|
+
* replaces its text-editing surfaces with a dedicated `ImageViewer`.
|
|
229
|
+
*
|
|
230
|
+
* Lifecycle of the URL is the caller's responsibility — when fed a
|
|
231
|
+
* `blob:` URL, the host should `URL.revokeObjectURL` on unmount or
|
|
232
|
+
* src change.
|
|
233
|
+
*/
|
|
234
|
+
imageSrc?: string;
|
|
235
|
+
/** Alt text passed through to the underlying ImageViewer. */
|
|
236
|
+
imageAlt?: string;
|
|
237
|
+
/**
|
|
238
|
+
* Whether the image surface should render as a read-only viewer
|
|
239
|
+
* (`'view'`, default) or as the editable {@link ImageEditor}
|
|
240
|
+
* (`'edit'`). Editing requires {@link EditorShellProps.imageEditorContainer}
|
|
241
|
+
* — without it the shell falls back to view mode and logs a warning.
|
|
242
|
+
*/
|
|
243
|
+
imageMode?: 'view' | 'edit';
|
|
244
|
+
/**
|
|
245
|
+
* Sidecar `ContentContainer` for the image being edited. Conventionally
|
|
246
|
+
* scoped to `<basename>_files/` via
|
|
247
|
+
* `scopeContainer(parentContainer, basename + '_files')`. The image
|
|
248
|
+
* editor persists `state.json`, layer assets in `assets/`, and (when
|
|
249
|
+
* `allowVersioning` is true) snapshots in `.versions/` inside it.
|
|
250
|
+
*/
|
|
251
|
+
imageEditorContainer?: ContentContainer;
|
|
252
|
+
/**
|
|
253
|
+
* Called after the user clicks Export in the image editor and the
|
|
254
|
+
* raster blob is produced. When omitted, the editor triggers a
|
|
255
|
+
* default browser download.
|
|
256
|
+
*/
|
|
257
|
+
onImageExport?: (blob: Blob, format: 'png' | 'jpeg' | 'webp') => void;
|
|
258
|
+
/**
|
|
259
|
+
* Show an inline preview gutter to the right of the WYSIWYG editor.
|
|
260
|
+
* The gutter renders one small SVG card per template-annotated block in
|
|
261
|
+
* the document, letting authors see their rendered output without
|
|
262
|
+
* leaving Edit mode. Auto-hidden via container query when the editor
|
|
263
|
+
* body is narrower than ~720px. Defaults to `false`.
|
|
264
|
+
*/
|
|
265
|
+
inlinePreview?: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Width in pixels for the inline preview gutter. Defaults to 320.
|
|
268
|
+
* Only takes effect when {@link EditorShellProps.inlinePreview} is true.
|
|
269
|
+
*/
|
|
270
|
+
inlinePreviewWidth?: number;
|
|
271
|
+
/**
|
|
272
|
+
* Show an outline pane on the left of the WYSIWYG editor — a
|
|
273
|
+
* hierarchical tree of the document's headings (h1 → h2 → h3) with
|
|
274
|
+
* click-to-scroll. Auto-hidden via container query on narrow editors.
|
|
275
|
+
* Defaults to `false`. The toolbar's View menu can toggle this at
|
|
276
|
+
* runtime regardless of the initial value.
|
|
277
|
+
*/
|
|
278
|
+
outline?: boolean;
|
|
279
|
+
/**
|
|
280
|
+
* Width in pixels for the outline pane. Defaults to 240. Only takes
|
|
281
|
+
* effect when {@link EditorShellProps.outline} is true (or the View
|
|
282
|
+
* menu has toggled it on).
|
|
283
|
+
*/
|
|
284
|
+
outlineWidth?: number;
|
|
285
|
+
/**
|
|
286
|
+
* Initial visibility of inline block-template tags on headings — the
|
|
287
|
+
* chip rendered next to each heading in the WYSIWYG view that opens
|
|
288
|
+
* the block-template picker. Defaults to true; the View menu can
|
|
289
|
+
* toggle it at runtime regardless of the initial value.
|
|
290
|
+
*/
|
|
291
|
+
blockTags?: boolean;
|
|
292
|
+
/**
|
|
293
|
+
* How much of the active Squisq theme the WYSIWYG editing surface
|
|
294
|
+
* mirrors. Defaults to `'fonts'` — the historical behavior of
|
|
295
|
+
* inheriting body / heading fonts only. The View menu can change it
|
|
296
|
+
* at runtime.
|
|
297
|
+
*/
|
|
298
|
+
themeInheritance?: ThemeInheritance;
|
|
299
|
+
/**
|
|
300
|
+
* Bundled view preferences — a serializable JSON blob covering the
|
|
301
|
+
* runtime-toggleable view options surfaced in the View menu. When
|
|
302
|
+
* provided, fields here override the corresponding individual props
|
|
303
|
+
* (`outline`, `inlinePreview`, `showStatusBar`). Pair with
|
|
304
|
+
* {@link onViewPreferencesChange} to externalize storage of these
|
|
305
|
+
* preferences in the host.
|
|
306
|
+
*/
|
|
307
|
+
viewPreferences?: ViewPreferences;
|
|
308
|
+
/**
|
|
309
|
+
* Notified after each user-driven toggle in the View menu. The
|
|
310
|
+
* argument is a full snapshot of all view preferences — hosts can
|
|
311
|
+
* persist it as-is. Not called when {@link viewPreferences} is
|
|
312
|
+
* changed externally.
|
|
313
|
+
*/
|
|
314
|
+
onViewPreferencesChange?: (prefs: ViewPreferences) => void;
|
|
315
|
+
/**
|
|
316
|
+
* Override the preview theme with an explicit `Theme` object. When set,
|
|
317
|
+
* `Doc.themeId` and the user's theme dropdown selection are ignored for
|
|
318
|
+
* the preview surface. Used by the theme customizer to live-preview an
|
|
319
|
+
* in-progress theme without mutating the document.
|
|
320
|
+
*/
|
|
321
|
+
themeOverride?: Theme | null;
|
|
153
322
|
}
|
|
154
323
|
/**
|
|
155
324
|
* Complete markdown editor shell with toolbar, view switcher, and three
|
|
156
325
|
* editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
|
|
157
326
|
*/
|
|
158
|
-
export declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, theme, className, height, minHeight, maxHeight, mediaProvider, container, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, showPlayTab, submitOnEnter, fullWidth, uxFont, thinMargins, showStatusBar, imageDisplayMode, fileName, language, mentionProvider, placeholder, readOnly, }: EditorShellProps): import("react/jsx-runtime").JSX.Element;
|
|
327
|
+
export declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, theme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, container, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, showPlayTab, submitOnEnter, fullWidth, uxFont, thinMargins, showStatusBar, imageDisplayMode, fileName, language, mentionProvider, documentLinkProvider, allowRecording, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): import("react/jsx-runtime").JSX.Element;
|
|
159
328
|
//# sourceMappingURL=EditorShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../src/EditorShell.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../src/EditorShell.tsx"],"names":[],"mappings":"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"}
|