@bendyline/squisq-editor-react 1.5.1 → 1.5.3
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 +1991 -90
- package/dist/index.js +17162 -82
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/RawEditor.tsx +49 -18
- package/src/VersionHistoryPanel.tsx +59 -17
- package/src/recorder/hooks/useMediaRecorder.ts +9 -1
- package/src/useMonacoLoader.ts +83 -0
- package/dist/DocumentSettingsDialog.d.ts +0 -26
- package/dist/DocumentSettingsDialog.d.ts.map +0 -1
- package/dist/DocumentSettingsDialog.js +0 -115
- package/dist/DocumentSettingsDialog.js.map +0 -1
- package/dist/DropZoneOverlay.d.ts +0 -24
- package/dist/DropZoneOverlay.d.ts.map +0 -1
- package/dist/DropZoneOverlay.js +0 -53
- package/dist/DropZoneOverlay.js.map +0 -1
- package/dist/EditorContext.d.ts +0 -391
- package/dist/EditorContext.d.ts.map +0 -1
- package/dist/EditorContext.js +0 -471
- package/dist/EditorContext.js.map +0 -1
- package/dist/EditorShell.d.ts +0 -328
- package/dist/EditorShell.d.ts.map +0 -1
- package/dist/EditorShell.js +0 -290
- package/dist/EditorShell.js.map +0 -1
- package/dist/EmojiPicker.d.ts +0 -50
- package/dist/EmojiPicker.d.ts.map +0 -1
- package/dist/EmojiPicker.js +0 -182
- package/dist/EmojiPicker.js.map +0 -1
- package/dist/ImageEditor.d.ts +0 -68
- package/dist/ImageEditor.d.ts.map +0 -1
- package/dist/ImageEditor.js +0 -166
- package/dist/ImageEditor.js.map +0 -1
- package/dist/ImageNodeView.d.ts +0 -27
- package/dist/ImageNodeView.d.ts.map +0 -1
- package/dist/ImageNodeView.js +0 -215
- package/dist/ImageNodeView.js.map +0 -1
- package/dist/ImageViewer.d.ts +0 -26
- package/dist/ImageViewer.d.ts.map +0 -1
- package/dist/ImageViewer.js +0 -119
- package/dist/ImageViewer.js.map +0 -1
- package/dist/InlineIcon.d.ts +0 -17
- package/dist/InlineIcon.d.ts.map +0 -1
- package/dist/InlineIcon.js +0 -72
- package/dist/InlineIcon.js.map +0 -1
- package/dist/InlinePreviewGutter.d.ts +0 -52
- package/dist/InlinePreviewGutter.d.ts.map +0 -1
- package/dist/InlinePreviewGutter.js +0 -397
- package/dist/InlinePreviewGutter.js.map +0 -1
- package/dist/LinkDialog.d.ts +0 -43
- package/dist/LinkDialog.d.ts.map +0 -1
- package/dist/LinkDialog.js +0 -102
- package/dist/LinkDialog.js.map +0 -1
- package/dist/MediaBin.d.ts +0 -29
- package/dist/MediaBin.d.ts.map +0 -1
- package/dist/MediaBin.js +0 -166
- package/dist/MediaBin.js.map +0 -1
- package/dist/MentionExtension.d.ts +0 -22
- package/dist/MentionExtension.d.ts.map +0 -1
- package/dist/MentionExtension.js +0 -245
- package/dist/MentionExtension.js.map +0 -1
- package/dist/OutlinePanel.d.ts +0 -17
- package/dist/OutlinePanel.d.ts.map +0 -1
- package/dist/OutlinePanel.js +0 -167
- package/dist/OutlinePanel.js.map +0 -1
- package/dist/PlainHtmlPreview.d.ts +0 -50
- package/dist/PlainHtmlPreview.d.ts.map +0 -1
- package/dist/PlainHtmlPreview.js +0 -155
- package/dist/PlainHtmlPreview.js.map +0 -1
- package/dist/PreviewControls.d.ts +0 -55
- package/dist/PreviewControls.d.ts.map +0 -1
- package/dist/PreviewControls.js +0 -277
- package/dist/PreviewControls.js.map +0 -1
- package/dist/PreviewPanel.d.ts +0 -29
- package/dist/PreviewPanel.d.ts.map +0 -1
- package/dist/PreviewPanel.js +0 -94
- package/dist/PreviewPanel.js.map +0 -1
- package/dist/RawEditor.d.ts +0 -32
- package/dist/RawEditor.d.ts.map +0 -1
- package/dist/RawEditor.js +0 -440
- package/dist/RawEditor.js.map +0 -1
- package/dist/RecorderEntry.d.ts +0 -24
- package/dist/RecorderEntry.d.ts.map +0 -1
- package/dist/RecorderEntry.js +0 -139
- package/dist/RecorderEntry.js.map +0 -1
- package/dist/StatusBar.d.ts +0 -15
- package/dist/StatusBar.d.ts.map +0 -1
- package/dist/StatusBar.js +0 -24
- package/dist/StatusBar.js.map +0 -1
- package/dist/TemplateAnnotation.d.ts +0 -20
- package/dist/TemplateAnnotation.d.ts.map +0 -1
- package/dist/TemplateAnnotation.js +0 -97
- package/dist/TemplateAnnotation.js.map +0 -1
- package/dist/TemplatePicker.d.ts +0 -53
- package/dist/TemplatePicker.d.ts.map +0 -1
- package/dist/TemplatePicker.js +0 -388
- package/dist/TemplatePicker.js.map +0 -1
- package/dist/ThemeCustomizerPanel.d.ts +0 -32
- package/dist/ThemeCustomizerPanel.d.ts.map +0 -1
- package/dist/ThemeCustomizerPanel.js +0 -256
- package/dist/ThemeCustomizerPanel.js.map +0 -1
- package/dist/ThemePicker.d.ts +0 -33
- package/dist/ThemePicker.d.ts.map +0 -1
- package/dist/ThemePicker.js +0 -148
- package/dist/ThemePicker.js.map +0 -1
- package/dist/Toolbar.d.ts +0 -36
- package/dist/Toolbar.d.ts.map +0 -1
- package/dist/Toolbar.js +0 -1001
- package/dist/Toolbar.js.map +0 -1
- package/dist/Tooltip.d.ts +0 -10
- package/dist/Tooltip.d.ts.map +0 -1
- package/dist/Tooltip.js +0 -104
- package/dist/Tooltip.js.map +0 -1
- package/dist/VersionHistoryPanel.d.ts +0 -14
- package/dist/VersionHistoryPanel.d.ts.map +0 -1
- package/dist/VersionHistoryPanel.js +0 -147
- package/dist/VersionHistoryPanel.js.map +0 -1
- package/dist/ViewMenuPanel.d.ts +0 -13
- package/dist/ViewMenuPanel.d.ts.map +0 -1
- package/dist/ViewMenuPanel.js +0 -58
- package/dist/ViewMenuPanel.js.map +0 -1
- package/dist/ViewSwitcher.d.ts +0 -14
- package/dist/ViewSwitcher.d.ts.map +0 -1
- package/dist/ViewSwitcher.js +0 -26
- package/dist/ViewSwitcher.js.map +0 -1
- package/dist/WysiwygEditor.d.ts +0 -39
- package/dist/WysiwygEditor.d.ts.map +0 -1
- package/dist/WysiwygEditor.js +0 -537
- package/dist/WysiwygEditor.js.map +0 -1
- package/dist/__tests__/detectMarkdown.test.d.ts +0 -2
- package/dist/__tests__/detectMarkdown.test.d.ts.map +0 -1
- package/dist/__tests__/detectMarkdown.test.js +0 -55
- package/dist/__tests__/detectMarkdown.test.js.map +0 -1
- package/dist/__tests__/documentSettingsDialog.test.d.ts +0 -2
- package/dist/__tests__/documentSettingsDialog.test.d.ts.map +0 -1
- package/dist/__tests__/documentSettingsDialog.test.js +0 -132
- package/dist/__tests__/documentSettingsDialog.test.js.map +0 -1
- package/dist/__tests__/emojiPicker.test.d.ts +0 -2
- package/dist/__tests__/emojiPicker.test.d.ts.map +0 -1
- package/dist/__tests__/emojiPicker.test.js +0 -111
- package/dist/__tests__/emojiPicker.test.js.map +0 -1
- package/dist/__tests__/fileKind.test.d.ts +0 -2
- package/dist/__tests__/fileKind.test.d.ts.map +0 -1
- package/dist/__tests__/fileKind.test.js +0 -94
- package/dist/__tests__/fileKind.test.js.map +0 -1
- package/dist/__tests__/imageEditAffordance.test.d.ts +0 -2
- package/dist/__tests__/imageEditAffordance.test.d.ts.map +0 -1
- package/dist/__tests__/imageEditAffordance.test.js +0 -188
- package/dist/__tests__/imageEditAffordance.test.js.map +0 -1
- package/dist/__tests__/imageEditorShell.test.d.ts +0 -2
- package/dist/__tests__/imageEditorShell.test.d.ts.map +0 -1
- package/dist/__tests__/imageEditorShell.test.js +0 -52
- package/dist/__tests__/imageEditorShell.test.js.map +0 -1
- package/dist/__tests__/imageEditorState.test.d.ts +0 -3
- package/dist/__tests__/imageEditorState.test.d.ts.map +0 -1
- package/dist/__tests__/imageEditorState.test.js +0 -148
- package/dist/__tests__/imageEditorState.test.js.map +0 -1
- package/dist/__tests__/inlinePreviewGutter.test.d.ts +0 -2
- package/dist/__tests__/inlinePreviewGutter.test.d.ts.map +0 -1
- package/dist/__tests__/inlinePreviewGutter.test.js +0 -51
- package/dist/__tests__/inlinePreviewGutter.test.js.map +0 -1
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts +0 -2
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.d.ts.map +0 -1
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js +0 -63
- package/dist/__tests__/inlinePreviewGutterAllBlocks.test.js.map +0 -1
- package/dist/__tests__/jsonEditor.test.d.ts +0 -2
- package/dist/__tests__/jsonEditor.test.d.ts.map +0 -1
- package/dist/__tests__/jsonEditor.test.js +0 -134
- package/dist/__tests__/jsonEditor.test.js.map +0 -1
- package/dist/__tests__/layersPanel.test.d.ts +0 -2
- package/dist/__tests__/layersPanel.test.d.ts.map +0 -1
- package/dist/__tests__/layersPanel.test.js +0 -84
- package/dist/__tests__/layersPanel.test.js.map +0 -1
- package/dist/__tests__/linkDialogDocPicker.test.d.ts +0 -7
- package/dist/__tests__/linkDialogDocPicker.test.d.ts.map +0 -1
- package/dist/__tests__/linkDialogDocPicker.test.js +0 -75
- package/dist/__tests__/linkDialogDocPicker.test.js.map +0 -1
- package/dist/__tests__/mediaAttachmentFlow.test.d.ts +0 -2
- package/dist/__tests__/mediaAttachmentFlow.test.d.ts.map +0 -1
- package/dist/__tests__/mediaAttachmentFlow.test.js +0 -99
- package/dist/__tests__/mediaAttachmentFlow.test.js.map +0 -1
- package/dist/__tests__/outlinePanel.test.d.ts +0 -2
- package/dist/__tests__/outlinePanel.test.d.ts.map +0 -1
- package/dist/__tests__/outlinePanel.test.js +0 -68
- package/dist/__tests__/outlinePanel.test.js.map +0 -1
- package/dist/__tests__/plainHtmlPreview.test.d.ts +0 -2
- package/dist/__tests__/plainHtmlPreview.test.d.ts.map +0 -1
- package/dist/__tests__/plainHtmlPreview.test.js +0 -87
- package/dist/__tests__/plainHtmlPreview.test.js.map +0 -1
- package/dist/__tests__/propertiesPanel.test.d.ts +0 -2
- package/dist/__tests__/propertiesPanel.test.d.ts.map +0 -1
- package/dist/__tests__/propertiesPanel.test.js +0 -64
- package/dist/__tests__/propertiesPanel.test.js.map +0 -1
- package/dist/__tests__/recorderFormats.test.d.ts +0 -2
- package/dist/__tests__/recorderFormats.test.d.ts.map +0 -1
- package/dist/__tests__/recorderFormats.test.js +0 -121
- package/dist/__tests__/recorderFormats.test.js.map +0 -1
- package/dist/__tests__/recorderTimingJson.test.d.ts +0 -2
- package/dist/__tests__/recorderTimingJson.test.d.ts.map +0 -1
- package/dist/__tests__/recorderTimingJson.test.js +0 -37
- package/dist/__tests__/recorderTimingJson.test.js.map +0 -1
- package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts +0 -2
- package/dist/__tests__/templateAnnotationRoundTrip.test.d.ts.map +0 -1
- package/dist/__tests__/templateAnnotationRoundTrip.test.js +0 -31
- package/dist/__tests__/templateAnnotationRoundTrip.test.js.map +0 -1
- package/dist/__tests__/tiptapBridge.test.d.ts +0 -2
- package/dist/__tests__/tiptapBridge.test.d.ts.map +0 -1
- package/dist/__tests__/tiptapBridge.test.js +0 -303
- package/dist/__tests__/tiptapBridge.test.js.map +0 -1
- package/dist/__tests__/tiptapImageRoundTrip.test.d.ts +0 -2
- package/dist/__tests__/tiptapImageRoundTrip.test.d.ts.map +0 -1
- package/dist/__tests__/tiptapImageRoundTrip.test.js +0 -68
- package/dist/__tests__/tiptapImageRoundTrip.test.js.map +0 -1
- package/dist/__tests__/useImageEditor.test.d.ts +0 -2
- package/dist/__tests__/useImageEditor.test.d.ts.map +0 -1
- package/dist/__tests__/useImageEditor.test.js +0 -131
- package/dist/__tests__/useImageEditor.test.js.map +0 -1
- package/dist/__tests__/useMediaRecorder.test.d.ts +0 -2
- package/dist/__tests__/useMediaRecorder.test.d.ts.map +0 -1
- package/dist/__tests__/useMediaRecorder.test.js +0 -153
- package/dist/__tests__/useMediaRecorder.test.js.map +0 -1
- package/dist/__tests__/versionHistory.test.d.ts +0 -2
- package/dist/__tests__/versionHistory.test.d.ts.map +0 -1
- package/dist/__tests__/versionHistory.test.js +0 -124
- package/dist/__tests__/versionHistory.test.js.map +0 -1
- package/dist/blockSlice.d.ts +0 -24
- package/dist/blockSlice.d.ts.map +0 -1
- package/dist/blockSlice.js +0 -63
- package/dist/blockSlice.js.map +0 -1
- package/dist/buildPreviewDoc.d.ts +0 -22
- package/dist/buildPreviewDoc.d.ts.map +0 -1
- package/dist/buildPreviewDoc.js +0 -262
- package/dist/buildPreviewDoc.js.map +0 -1
- package/dist/detectMarkdown.d.ts +0 -20
- package/dist/detectMarkdown.d.ts.map +0 -1
- package/dist/detectMarkdown.js +0 -61
- package/dist/detectMarkdown.js.map +0 -1
- package/dist/emojiData.d.ts +0 -81
- package/dist/emojiData.d.ts.map +0 -1
- package/dist/emojiData.js +0 -1283
- package/dist/emojiData.js.map +0 -1
- package/dist/fileKind.d.ts +0 -34
- package/dist/fileKind.d.ts.map +0 -1
- package/dist/fileKind.js +0 -144
- package/dist/fileKind.js.map +0 -1
- package/dist/hooks/useFileDrop.d.ts +0 -41
- package/dist/hooks/useFileDrop.d.ts.map +0 -1
- package/dist/hooks/useFileDrop.js +0 -205
- package/dist/hooks/useFileDrop.js.map +0 -1
- package/dist/imageEditor/CanvasSurface.d.ts +0 -31
- package/dist/imageEditor/CanvasSurface.d.ts.map +0 -1
- package/dist/imageEditor/CanvasSurface.js +0 -264
- package/dist/imageEditor/CanvasSurface.js.map +0 -1
- package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts +0 -39
- package/dist/imageEditor/ImageVersionHistoryDropdown.d.ts.map +0 -1
- package/dist/imageEditor/ImageVersionHistoryDropdown.js +0 -283
- package/dist/imageEditor/ImageVersionHistoryDropdown.js.map +0 -1
- package/dist/imageEditor/LayersPanel.d.ts +0 -14
- package/dist/imageEditor/LayersPanel.d.ts.map +0 -1
- package/dist/imageEditor/LayersPanel.js +0 -43
- package/dist/imageEditor/LayersPanel.js.map +0 -1
- package/dist/imageEditor/PropertiesPanel.d.ts +0 -14
- package/dist/imageEditor/PropertiesPanel.d.ts.map +0 -1
- package/dist/imageEditor/PropertiesPanel.js +0 -97
- package/dist/imageEditor/PropertiesPanel.js.map +0 -1
- package/dist/imageEditor/Toolbar.d.ts +0 -30
- package/dist/imageEditor/Toolbar.d.ts.map +0 -1
- package/dist/imageEditor/Toolbar.js +0 -108
- package/dist/imageEditor/Toolbar.js.map +0 -1
- package/dist/imageEditor/icons.d.ts +0 -24
- package/dist/imageEditor/icons.d.ts.map +0 -1
- package/dist/imageEditor/icons.js +0 -45
- package/dist/imageEditor/icons.js.map +0 -1
- package/dist/imageEditor/layers/EditorImageLayer.d.ts +0 -16
- package/dist/imageEditor/layers/EditorImageLayer.d.ts.map +0 -1
- package/dist/imageEditor/layers/EditorImageLayer.js +0 -37
- package/dist/imageEditor/layers/EditorImageLayer.js.map +0 -1
- package/dist/imageEditor/layers/EditorShapeLayer.d.ts +0 -15
- package/dist/imageEditor/layers/EditorShapeLayer.d.ts.map +0 -1
- package/dist/imageEditor/layers/EditorShapeLayer.js +0 -20
- package/dist/imageEditor/layers/EditorShapeLayer.js.map +0 -1
- package/dist/imageEditor/layers/EditorTextLayer.d.ts +0 -18
- package/dist/imageEditor/layers/EditorTextLayer.d.ts.map +0 -1
- package/dist/imageEditor/layers/EditorTextLayer.js +0 -13
- package/dist/imageEditor/layers/EditorTextLayer.js.map +0 -1
- package/dist/imageEditor/layers/SelectionHandles.d.ts +0 -17
- package/dist/imageEditor/layers/SelectionHandles.d.ts.map +0 -1
- package/dist/imageEditor/layers/SelectionHandles.js +0 -19
- package/dist/imageEditor/layers/SelectionHandles.js.map +0 -1
- package/dist/imageEditor/state.d.ts +0 -76
- package/dist/imageEditor/state.d.ts.map +0 -1
- package/dist/imageEditor/state.js +0 -87
- package/dist/imageEditor/state.js.map +0 -1
- package/dist/imageEditor/useImageEditor.d.ts +0 -53
- package/dist/imageEditor/useImageEditor.d.ts.map +0 -1
- package/dist/imageEditor/useImageEditor.js +0 -244
- package/dist/imageEditor/useImageEditor.js.map +0 -1
- package/dist/imageEditor/useImageEditorTokens.d.ts +0 -16
- package/dist/imageEditor/useImageEditorTokens.d.ts.map +0 -1
- package/dist/imageEditor/useImageEditorTokens.js +0 -45
- package/dist/imageEditor/useImageEditorTokens.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/jsonEditor/EmbeddedRichTextField.d.ts +0 -15
- package/dist/jsonEditor/EmbeddedRichTextField.d.ts.map +0 -1
- package/dist/jsonEditor/EmbeddedRichTextField.js +0 -74
- package/dist/jsonEditor/EmbeddedRichTextField.js.map +0 -1
- package/dist/jsonEditor/JsonEditor.d.ts +0 -36
- package/dist/jsonEditor/JsonEditor.d.ts.map +0 -1
- package/dist/jsonEditor/JsonEditor.js +0 -15
- package/dist/jsonEditor/JsonEditor.js.map +0 -1
- package/dist/jsonEditor/JsonEditorContext.d.ts +0 -28
- package/dist/jsonEditor/JsonEditorContext.d.ts.map +0 -1
- package/dist/jsonEditor/JsonEditorContext.js +0 -41
- package/dist/jsonEditor/JsonEditorContext.js.map +0 -1
- package/dist/jsonEditor/RenderNode.d.ts +0 -16
- package/dist/jsonEditor/RenderNode.d.ts.map +0 -1
- package/dist/jsonEditor/RenderNode.js +0 -32
- package/dist/jsonEditor/RenderNode.js.map +0 -1
- package/dist/jsonEditor/editors.d.ts +0 -36
- package/dist/jsonEditor/editors.d.ts.map +0 -1
- package/dist/jsonEditor/editors.js +0 -347
- package/dist/jsonEditor/editors.js.map +0 -1
- package/dist/jsonEditor/index.d.ts +0 -3
- package/dist/jsonEditor/index.d.ts.map +0 -1
- package/dist/jsonEditor/index.js +0 -2
- package/dist/jsonEditor/index.js.map +0 -1
- package/dist/jsonEditor/useJsonEditorTokens.d.ts +0 -13
- package/dist/jsonEditor/useJsonEditorTokens.d.ts.map +0 -1
- package/dist/jsonEditor/useJsonEditorTokens.js +0 -38
- package/dist/jsonEditor/useJsonEditorTokens.js.map +0 -1
- package/dist/mediaDragMime.d.ts +0 -17
- package/dist/mediaDragMime.d.ts.map +0 -1
- package/dist/mediaDragMime.js +0 -22
- package/dist/mediaDragMime.js.map +0 -1
- package/dist/recorder/RecorderButton.d.ts +0 -31
- package/dist/recorder/RecorderButton.d.ts.map +0 -1
- package/dist/recorder/RecorderButton.js +0 -24
- package/dist/recorder/RecorderButton.js.map +0 -1
- package/dist/recorder/RecorderModal.d.ts +0 -59
- package/dist/recorder/RecorderModal.d.ts.map +0 -1
- package/dist/recorder/RecorderModal.js +0 -333
- package/dist/recorder/RecorderModal.js.map +0 -1
- package/dist/recorder/RecorderPanel.d.ts +0 -25
- package/dist/recorder/RecorderPanel.d.ts.map +0 -1
- package/dist/recorder/RecorderPanel.js +0 -30
- package/dist/recorder/RecorderPanel.js.map +0 -1
- package/dist/recorder/formats.d.ts +0 -51
- package/dist/recorder/formats.d.ts.map +0 -1
- package/dist/recorder/formats.js +0 -144
- package/dist/recorder/formats.js.map +0 -1
- package/dist/recorder/hooks/useMediaRecorder.d.ts +0 -90
- package/dist/recorder/hooks/useMediaRecorder.d.ts.map +0 -1
- package/dist/recorder/hooks/useMediaRecorder.js +0 -277
- package/dist/recorder/hooks/useMediaRecorder.js.map +0 -1
- package/dist/recorder/hooks/useStreamPreview.d.ts +0 -22
- package/dist/recorder/hooks/useStreamPreview.d.ts.map +0 -1
- package/dist/recorder/hooks/useStreamPreview.js +0 -44
- package/dist/recorder/hooks/useStreamPreview.js.map +0 -1
- package/dist/recorder/sources/cameraStream.d.ts +0 -22
- package/dist/recorder/sources/cameraStream.d.ts.map +0 -1
- package/dist/recorder/sources/cameraStream.js +0 -24
- package/dist/recorder/sources/cameraStream.js.map +0 -1
- package/dist/recorder/sources/micStream.d.ts +0 -15
- package/dist/recorder/sources/micStream.d.ts.map +0 -1
- package/dist/recorder/sources/micStream.js +0 -24
- package/dist/recorder/sources/micStream.js.map +0 -1
- package/dist/recorder/sources/screenStream.d.ts +0 -53
- package/dist/recorder/sources/screenStream.d.ts.map +0 -1
- package/dist/recorder/sources/screenStream.js +0 -114
- package/dist/recorder/sources/screenStream.js.map +0 -1
- package/dist/recorder/timingJson.d.ts +0 -51
- package/dist/recorder/timingJson.d.ts.map +0 -1
- package/dist/recorder/timingJson.js +0 -42
- package/dist/recorder/timingJson.js.map +0 -1
- package/dist/tiptap/TiptapAudio.d.ts +0 -26
- package/dist/tiptap/TiptapAudio.d.ts.map +0 -1
- package/dist/tiptap/TiptapAudio.js +0 -58
- package/dist/tiptap/TiptapAudio.js.map +0 -1
- package/dist/tiptap/TiptapVideo.d.ts +0 -30
- package/dist/tiptap/TiptapVideo.d.ts.map +0 -1
- package/dist/tiptap/TiptapVideo.js +0 -66
- package/dist/tiptap/TiptapVideo.js.map +0 -1
- package/dist/tiptap/useResolvedMediaSrc.d.ts +0 -2
- package/dist/tiptap/useResolvedMediaSrc.d.ts.map +0 -1
- package/dist/tiptap/useResolvedMediaSrc.js +0 -42
- package/dist/tiptap/useResolvedMediaSrc.js.map +0 -1
- package/dist/tiptapBridge.d.ts +0 -24
- package/dist/tiptapBridge.d.ts.map +0 -1
- package/dist/tiptapBridge.js +0 -749
- package/dist/tiptapBridge.js.map +0 -1
- package/dist/useHeadingLayout.d.ts +0 -54
- package/dist/useHeadingLayout.d.ts.map +0 -1
- package/dist/useHeadingLayout.js +0 -260
- package/dist/useHeadingLayout.js.map +0 -1
- package/dist/utils/collectInlineFontAwesomeCss.d.ts +0 -21
- package/dist/utils/collectInlineFontAwesomeCss.d.ts.map +0 -1
- package/dist/utils/collectInlineFontAwesomeCss.js +0 -68
- package/dist/utils/collectInlineFontAwesomeCss.js.map +0 -1
- package/dist/utils/dropUtils.d.ts +0 -55
- package/dist/utils/dropUtils.d.ts.map +0 -1
- package/dist/utils/dropUtils.js +0 -110
- package/dist/utils/dropUtils.js.map +0 -1
- package/dist/utils/normalizeMalformedAssetUrl.d.ts +0 -15
- package/dist/utils/normalizeMalformedAssetUrl.d.ts.map +0 -1
- package/dist/utils/normalizeMalformedAssetUrl.js +0 -27
- package/dist/utils/normalizeMalformedAssetUrl.js.map +0 -1
package/dist/PreviewPanel.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* PreviewPanel
|
|
4
|
-
*
|
|
5
|
-
* Renders a live preview of the current markdown document as a slideshow
|
|
6
|
-
* using the DocPlayer component from @bendyline/squisq-react. The
|
|
7
|
-
* markdown → player-Doc conversion is delegated to the shared
|
|
8
|
-
* `buildPreviewDoc` helper so live preview and the export pipeline stay
|
|
9
|
-
* in sync.
|
|
10
|
-
*/
|
|
11
|
-
import { useState, useEffect } from 'react';
|
|
12
|
-
import { DocPlayer, LinearDocView, useMediaProvider } from '@bendyline/squisq-react';
|
|
13
|
-
import { applyTransform } from '@bendyline/squisq/transform';
|
|
14
|
-
import { resolveAudioMapping } from '@bendyline/squisq/doc';
|
|
15
|
-
import { useEditorContext } from './EditorContext';
|
|
16
|
-
import { usePreviewSettings } from './PreviewControls';
|
|
17
|
-
import { buildPreviewDoc } from './buildPreviewDoc';
|
|
18
|
-
import { PlainHtmlPreview } from './PlainHtmlPreview';
|
|
19
|
-
// ── Component ──────────────────────────────────────────────────────
|
|
20
|
-
/**
|
|
21
|
-
* Live preview panel that renders the current document as a slideshow
|
|
22
|
-
* or document view. Controls (viewport, mode, theme, transform, captions)
|
|
23
|
-
* are rendered in the main toolbar via PreviewToolbarControls.
|
|
24
|
-
*/
|
|
25
|
-
export function PreviewPanel({ basePath = '/', className, workspaceContainer }) {
|
|
26
|
-
const { doc, parseError, isParsing, markdownSource, mediaRevision } = useEditorContext();
|
|
27
|
-
const mediaProvider = useMediaProvider();
|
|
28
|
-
const { activeViewport, activeDisplayMode, activeTheme, activeTransformStyle, activeCaptionStyle, } = usePreviewSettings();
|
|
29
|
-
// Build the player-ready Doc whenever the parsed doc changes.
|
|
30
|
-
// Transform runs on the ORIGINAL doc (which has block.contents with
|
|
31
|
-
// markdown body text) so the content extractor can analyze it.
|
|
32
|
-
// Then buildPreviewDoc converts the result for DocPlayer.
|
|
33
|
-
//
|
|
34
|
-
// Audio mapping is async (reads container files), so we use a two-phase
|
|
35
|
-
// approach: first build the base doc synchronously, then resolve audio
|
|
36
|
-
// in an effect and update the state.
|
|
37
|
-
const [previewDoc, setPreviewDoc] = useState(null);
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
if (!doc || !doc.blocks.length) {
|
|
40
|
-
setPreviewDoc(null);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
let sourceDoc = doc;
|
|
44
|
-
if (activeTransformStyle) {
|
|
45
|
-
const result = applyTransform(doc, activeTransformStyle);
|
|
46
|
-
sourceDoc = result.doc;
|
|
47
|
-
}
|
|
48
|
-
// If we have a workspace container, try to resolve audio mapping before building preview
|
|
49
|
-
if (workspaceContainer) {
|
|
50
|
-
let cancelled = false;
|
|
51
|
-
resolveAudioMapping(sourceDoc, workspaceContainer).then((audioDoc) => {
|
|
52
|
-
if (!cancelled) {
|
|
53
|
-
setPreviewDoc(buildPreviewDoc(audioDoc));
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
// Set an immediate preview without audio while mapping resolves
|
|
57
|
-
setPreviewDoc(buildPreviewDoc(sourceDoc));
|
|
58
|
-
return () => {
|
|
59
|
-
cancelled = true;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
setPreviewDoc(buildPreviewDoc(sourceDoc));
|
|
63
|
-
}, [doc, activeTransformStyle, workspaceContainer]);
|
|
64
|
-
// Status overlays for non-ready states
|
|
65
|
-
if (isParsing) {
|
|
66
|
-
return (_jsx("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: _jsx("p", { children: "Parsing\u2026" }) }));
|
|
67
|
-
}
|
|
68
|
-
if (parseError) {
|
|
69
|
-
return (_jsxs("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: [_jsx("h3", { children: "Parse Error" }), _jsx("pre", { children: parseError })] }));
|
|
70
|
-
}
|
|
71
|
-
// Page mode renders directly from markdown — it doesn't depend on the
|
|
72
|
-
// parsed Doc tree or the player preview build, so let it fall through
|
|
73
|
-
// even when those aren't ready yet.
|
|
74
|
-
if (!previewDoc && activeDisplayMode !== 'page') {
|
|
75
|
-
return (_jsx("div", { className: `squisq-preview-status ${className || ''}`, "data-testid": "preview-panel", children: _jsx("p", { children: "No content to preview. Start typing in the editor." }) }));
|
|
76
|
-
}
|
|
77
|
-
const fillsContainer = activeDisplayMode === 'linear' || activeDisplayMode === 'page' ? 'stretch' : 'center';
|
|
78
|
-
return (_jsx("div", { className: `squisq-preview-container ${className || ''}`, "data-testid": "preview-panel", style: {
|
|
79
|
-
width: '100%',
|
|
80
|
-
height: '100%',
|
|
81
|
-
display: 'flex',
|
|
82
|
-
flexDirection: 'column',
|
|
83
|
-
overflow: 'hidden',
|
|
84
|
-
background: 'var(--squisq-bg, #f5f5f5)',
|
|
85
|
-
}, children: _jsx("div", { className: "squisq-preview-player", style: {
|
|
86
|
-
flex: 1,
|
|
87
|
-
display: 'flex',
|
|
88
|
-
alignItems: fillsContainer,
|
|
89
|
-
justifyContent: 'center',
|
|
90
|
-
overflow: 'hidden',
|
|
91
|
-
minHeight: 0,
|
|
92
|
-
}, children: activeDisplayMode === 'page' ? (_jsx(PlainHtmlPreview, { markdown: markdownSource, title: doc?.frontmatter?.title ?? undefined, mediaProvider: mediaProvider, mediaRevision: mediaRevision, theme: activeTheme })) : activeDisplayMode === 'linear' ? (_jsx(LinearDocView, { doc: doc, basePath: basePath, viewport: activeViewport, theme: activeTheme })) : (_jsx(DocPlayer, { script: previewDoc, basePath: basePath, showControls: true, muted: true, forceViewport: activeViewport, displayMode: activeDisplayMode, theme: activeTheme, captionStyle: activeCaptionStyle })) }) }));
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=PreviewPanel.js.map
|
package/dist/PreviewPanel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPanel.js","sourceRoot":"","sources":["../src/PreviewPanel.tsx"],"names":[],"mappings":"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"}
|
package/dist/RawEditor.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RawEditor
|
|
3
|
-
*
|
|
4
|
-
* Monaco-based raw markdown editor. Provides full VS Code-like editing
|
|
5
|
-
* experience with syntax highlighting, minimap, and bracket matching.
|
|
6
|
-
* Syncs changes back to EditorContext on every keystroke (debounced).
|
|
7
|
-
*/
|
|
8
|
-
export interface RawEditorProps {
|
|
9
|
-
/** Monaco editor theme (default: 'vs-dark') */
|
|
10
|
-
theme?: string;
|
|
11
|
-
/** Show minimap (default: false) */
|
|
12
|
-
minimap?: boolean;
|
|
13
|
-
/** Font size in pixels (default: 14) */
|
|
14
|
-
fontSize?: number;
|
|
15
|
-
/** Word wrap setting (default: 'on') */
|
|
16
|
-
wordWrap?: 'on' | 'off' | 'wordWrapColumn' | 'bounded';
|
|
17
|
-
/** Additional class name for the container */
|
|
18
|
-
className?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Chat-composer mode: Enter fires this callback (submit) and Cmd/Ctrl+Enter
|
|
21
|
-
* inserts a newline. When undefined, behaves normally.
|
|
22
|
-
*/
|
|
23
|
-
submitOnEnter?: () => void;
|
|
24
|
-
/** Make Monaco read-only (no edits, no cursor blink). */
|
|
25
|
-
readOnly?: boolean;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Raw markdown editor using Monaco Editor.
|
|
29
|
-
* Binds to the shared EditorContext for source synchronization.
|
|
30
|
-
*/
|
|
31
|
-
export declare function RawEditor({ theme, minimap, fontSize, wordWrap, className, submitOnEnter, readOnly, }: RawEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
-
//# sourceMappingURL=RawEditor.d.ts.map
|
package/dist/RawEditor.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RawEditor.d.ts","sourceRoot":"","sources":["../src/RawEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4CH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAY,EACZ,OAAe,EACf,QAAa,EACb,QAAe,EACf,SAAS,EACT,aAAa,EACb,QAAgB,GACjB,EAAE,cAAc,2CA4bhB"}
|
package/dist/RawEditor.js
DELETED
|
@@ -1,440 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* RawEditor
|
|
4
|
-
*
|
|
5
|
-
* Monaco-based raw markdown editor. Provides full VS Code-like editing
|
|
6
|
-
* experience with syntax highlighting, minimap, and bracket matching.
|
|
7
|
-
* Syncs changes back to EditorContext on every keystroke (debounced).
|
|
8
|
-
*/
|
|
9
|
-
import { useRef, useCallback, useEffect } from 'react';
|
|
10
|
-
import Editor, { loader, } from '@monaco-editor/react';
|
|
11
|
-
import * as monaco from 'monaco-editor';
|
|
12
|
-
import { useEditorContext } from './EditorContext';
|
|
13
|
-
import { getAvailableTemplates } from '@bendyline/squisq/doc';
|
|
14
|
-
import { suggestIcons, resolveIcon, iconGlyph } from '@bendyline/squisq/icons';
|
|
15
|
-
import { SQUISQ_MEDIA_MIME, parseSquisqMediaPayload } from './mediaDragMime';
|
|
16
|
-
// Use locally installed monaco-editor instead of CDN.
|
|
17
|
-
//
|
|
18
|
-
// NOTE: By default this imports the full monaco-editor with all 80+ languages
|
|
19
|
-
// and workers (~9MB). Consumers can dramatically reduce bundle size by aliasing
|
|
20
|
-
// 'monaco-editor' to a slim entry in their bundler config. For example with Vite:
|
|
21
|
-
//
|
|
22
|
-
// resolve: { alias: [{ find: /^monaco-editor$/, replacement: './monaco-slim.ts' }] }
|
|
23
|
-
//
|
|
24
|
-
// Where monaco-slim.ts re-exports 'monaco-editor/esm/vs/editor/editor.api' plus
|
|
25
|
-
// only the language contributions needed (e.g. markdown, javascript, etc.).
|
|
26
|
-
loader.config({ monaco });
|
|
27
|
-
// Squisq Monaco themes: same syntax highlighting as vs / vs-dark, but with
|
|
28
|
-
// Monaco's internal gutter (line numbers + folding margin) and overview
|
|
29
|
-
// ruler tinted to match the side-pane "desk" colors so the canvas's
|
|
30
|
-
// internal furniture blends with its surroundings. The seam color is the
|
|
31
|
-
// 1px line Monaco draws between the white canvas and the overview ruler;
|
|
32
|
-
// matches the `::after` border on `.margin` so both sides of the canvas
|
|
33
|
-
// frame look the same.
|
|
34
|
-
const SQUISQ_LIGHT_GUTTER = '#dcd8d0';
|
|
35
|
-
const SQUISQ_DARK_GUTTER = '#0f1219';
|
|
36
|
-
const SQUISQ_LIGHT_SEAM = '#b0a99a';
|
|
37
|
-
const SQUISQ_DARK_SEAM = '#2a3144';
|
|
38
|
-
const SQUISQ_THEMES = {
|
|
39
|
-
vs: 'squisq-light',
|
|
40
|
-
'vs-dark': 'squisq-dark',
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Raw markdown editor using Monaco Editor.
|
|
44
|
-
* Binds to the shared EditorContext for source synchronization.
|
|
45
|
-
*/
|
|
46
|
-
export function RawEditor({ theme = 'vs', minimap = false, fontSize = 14, wordWrap = 'on', className, submitOnEnter, readOnly = false, }) {
|
|
47
|
-
const { markdownSource, setMarkdownSource, setMonacoEditor, language, mentionProvider } = useEditorContext();
|
|
48
|
-
const editorRef = useRef(null);
|
|
49
|
-
const isExternalUpdate = useRef(false);
|
|
50
|
-
const completionDisposable = useRef(null);
|
|
51
|
-
const mentionCompletionDisposable = useRef(null);
|
|
52
|
-
const iconCompletionDisposable = useRef(null);
|
|
53
|
-
const iconGlyphDecorations = useRef(null);
|
|
54
|
-
const dropCleanupRef = useRef(null);
|
|
55
|
-
const keyDisposable = useRef(null);
|
|
56
|
-
// Ref so the keydown handler always sees the latest callback.
|
|
57
|
-
const submitOnEnterRef = useRef(submitOnEnter);
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
submitOnEnterRef.current = submitOnEnter;
|
|
60
|
-
}, [submitOnEnter]);
|
|
61
|
-
// Ref so the completion provider — registered once at mount — always
|
|
62
|
-
// sees the latest mentionProvider without needing to unregister.
|
|
63
|
-
const mentionProviderRef = useRef(mentionProvider);
|
|
64
|
-
useEffect(() => {
|
|
65
|
-
mentionProviderRef.current = mentionProvider;
|
|
66
|
-
}, [mentionProvider]);
|
|
67
|
-
const handleBeforeMount = useCallback((monaco) => {
|
|
68
|
-
monaco.editor.defineTheme('squisq-light', {
|
|
69
|
-
base: 'vs',
|
|
70
|
-
inherit: true,
|
|
71
|
-
rules: [],
|
|
72
|
-
colors: {
|
|
73
|
-
'editorGutter.background': SQUISQ_LIGHT_GUTTER,
|
|
74
|
-
'editorOverviewRuler.background': SQUISQ_LIGHT_GUTTER,
|
|
75
|
-
'editorOverviewRuler.border': SQUISQ_LIGHT_SEAM,
|
|
76
|
-
'minimap.background': SQUISQ_LIGHT_GUTTER,
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
monaco.editor.defineTheme('squisq-dark', {
|
|
80
|
-
base: 'vs-dark',
|
|
81
|
-
inherit: true,
|
|
82
|
-
rules: [],
|
|
83
|
-
colors: {
|
|
84
|
-
'editorGutter.background': SQUISQ_DARK_GUTTER,
|
|
85
|
-
'editorOverviewRuler.background': SQUISQ_DARK_GUTTER,
|
|
86
|
-
'editorOverviewRuler.border': SQUISQ_DARK_SEAM,
|
|
87
|
-
'minimap.background': SQUISQ_DARK_GUTTER,
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}, []);
|
|
91
|
-
const handleMount = useCallback((editor, monaco) => {
|
|
92
|
-
editorRef.current = editor;
|
|
93
|
-
setMonacoEditor(editor);
|
|
94
|
-
editor.focus();
|
|
95
|
-
// Dispose any previous completion provider (from a prior mount)
|
|
96
|
-
completionDisposable.current?.dispose();
|
|
97
|
-
completionDisposable.current = null;
|
|
98
|
-
mentionCompletionDisposable.current?.dispose();
|
|
99
|
-
mentionCompletionDisposable.current = null;
|
|
100
|
-
iconCompletionDisposable.current?.dispose();
|
|
101
|
-
iconCompletionDisposable.current = null;
|
|
102
|
-
// Register the `{[template]}` completion provider only for markdown
|
|
103
|
-
// files — it's meaningless for TypeScript, JSON, Python, etc.
|
|
104
|
-
if (language === 'markdown') {
|
|
105
|
-
const templates = getAvailableTemplates();
|
|
106
|
-
completionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
|
|
107
|
-
triggerCharacters: ['['],
|
|
108
|
-
provideCompletionItems(model, position) {
|
|
109
|
-
const lineContent = model.getLineContent(position.lineNumber);
|
|
110
|
-
// Only trigger inside a heading line that has {[ before the cursor
|
|
111
|
-
if (!/^#{1,6}\s/.test(lineContent))
|
|
112
|
-
return { suggestions: [] };
|
|
113
|
-
const textBeforeCursor = lineContent.substring(0, position.column - 1);
|
|
114
|
-
const textAfterCursor = lineContent.substring(position.column - 1);
|
|
115
|
-
const bracketIdx = textBeforeCursor.lastIndexOf('{[');
|
|
116
|
-
if (bracketIdx === -1)
|
|
117
|
-
return { suggestions: [] };
|
|
118
|
-
// When Monaco's bracket auto-pair has already produced the
|
|
119
|
-
// closing `]}` we just leave it in place and skip the
|
|
120
|
-
// suffix — otherwise accepting `sectionHeader` on
|
|
121
|
-
// `{[gi]}` would yield `{[sectionHeader]}]}`.
|
|
122
|
-
const closingMatch = textAfterCursor.match(/^\]\}/);
|
|
123
|
-
const suffix = closingMatch ? '' : ']}';
|
|
124
|
-
const startCol = bracketIdx + 3; // after {[
|
|
125
|
-
const range = new monaco.Range(position.lineNumber, startCol, position.lineNumber, position.column);
|
|
126
|
-
const suggestions = templates.map((name) => ({
|
|
127
|
-
label: name,
|
|
128
|
-
filterText: name,
|
|
129
|
-
kind: monaco.languages.CompletionItemKind.Value,
|
|
130
|
-
insertText: name + suffix,
|
|
131
|
-
range,
|
|
132
|
-
detail: 'Block template',
|
|
133
|
-
sortText: name,
|
|
134
|
-
}));
|
|
135
|
-
return { suggestions };
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
// `@mention` completion — queries the shared MentionProvider. Keep
|
|
139
|
-
// this in its own registration so we can dispose it independently
|
|
140
|
-
// of the template provider, and so the trigger character is just
|
|
141
|
-
// `@` (not `[`).
|
|
142
|
-
mentionCompletionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
|
|
143
|
-
triggerCharacters: ['@'],
|
|
144
|
-
async provideCompletionItems(model, position) {
|
|
145
|
-
const provider = mentionProviderRef.current;
|
|
146
|
-
if (!provider)
|
|
147
|
-
return { suggestions: [] };
|
|
148
|
-
const lineContent = model.getLineContent(position.lineNumber);
|
|
149
|
-
const textBeforeCursor = lineContent.substring(0, position.column - 1);
|
|
150
|
-
const atIdx = textBeforeCursor.lastIndexOf('@');
|
|
151
|
-
if (atIdx === -1)
|
|
152
|
-
return { suggestions: [] };
|
|
153
|
-
// `@` must be at line start or preceded by whitespace/punct —
|
|
154
|
-
// skip e.g. email addresses like `foo@bar`.
|
|
155
|
-
if (atIdx > 0) {
|
|
156
|
-
const prevChar = textBeforeCursor[atIdx - 1];
|
|
157
|
-
if (!/[\s\p{P}]/u.test(prevChar))
|
|
158
|
-
return { suggestions: [] };
|
|
159
|
-
}
|
|
160
|
-
const query = textBeforeCursor.slice(atIdx + 1);
|
|
161
|
-
// Only fire for short queries — once the user has typed
|
|
162
|
-
// a full word, the popover gets noisy.
|
|
163
|
-
if (query.length > 40)
|
|
164
|
-
return { suggestions: [] };
|
|
165
|
-
if (/\s/.test(query))
|
|
166
|
-
return { suggestions: [] };
|
|
167
|
-
let candidates;
|
|
168
|
-
try {
|
|
169
|
-
candidates = await provider(query);
|
|
170
|
-
}
|
|
171
|
-
catch {
|
|
172
|
-
return { suggestions: [] };
|
|
173
|
-
}
|
|
174
|
-
const range = new monaco.Range(position.lineNumber, atIdx + 1, position.lineNumber, position.column);
|
|
175
|
-
return {
|
|
176
|
-
suggestions: candidates.map((c) => ({
|
|
177
|
-
label: `@${c.label}`,
|
|
178
|
-
kind: monaco.languages.CompletionItemKind.User,
|
|
179
|
-
insertText: `@[${c.label}](${c.scheme}:${c.id}) `,
|
|
180
|
-
range,
|
|
181
|
-
...(c.description ? { detail: c.description } : {}),
|
|
182
|
-
sortText: c.label,
|
|
183
|
-
})),
|
|
184
|
-
};
|
|
185
|
-
},
|
|
186
|
-
});
|
|
187
|
-
// FontAwesome icon completion. Fires inside any `{[…]}` opener
|
|
188
|
-
// anywhere in the doc (not just headings — icons are inline).
|
|
189
|
-
// Suggestions cover the whole FA Free catalog filtered by the
|
|
190
|
-
// partial token; we cap at 50 to keep the popup readable. The
|
|
191
|
-
// template provider above still handles heading lines, so on
|
|
192
|
-
// a `## Title {[…]}` the user sees both template names AND
|
|
193
|
-
// icons interleaved by the regular Monaco filter.
|
|
194
|
-
iconCompletionDisposable.current = monaco.languages.registerCompletionItemProvider('markdown', {
|
|
195
|
-
triggerCharacters: ['['],
|
|
196
|
-
provideCompletionItems(model, position) {
|
|
197
|
-
const lineContent = model.getLineContent(position.lineNumber);
|
|
198
|
-
const textBeforeCursor = lineContent.substring(0, position.column - 1);
|
|
199
|
-
const textAfterCursor = lineContent.substring(position.column - 1);
|
|
200
|
-
const bracketIdx = textBeforeCursor.lastIndexOf('{[');
|
|
201
|
-
if (bracketIdx === -1)
|
|
202
|
-
return { suggestions: [] };
|
|
203
|
-
// Bail if any `]` already closes this annotation between
|
|
204
|
-
// `{[` and the cursor — we'd be past the token, not in it.
|
|
205
|
-
const between = textBeforeCursor.slice(bracketIdx + 2);
|
|
206
|
-
if (between.includes(']'))
|
|
207
|
-
return { suggestions: [] };
|
|
208
|
-
// Tokens are alphanumeric + `-_:`; anything else means
|
|
209
|
-
// we're not inside an icon (probably a code/link bracket).
|
|
210
|
-
if (between && !/^[a-zA-Z0-9_:-]*$/.test(between)) {
|
|
211
|
-
return { suggestions: [] };
|
|
212
|
-
}
|
|
213
|
-
const query = between.toLowerCase();
|
|
214
|
-
// When Monaco's bracket auto-pair has already produced a
|
|
215
|
-
// closing `]}` we don't want to insert another — but we
|
|
216
|
-
// also don't want to consume the existing one, since
|
|
217
|
-
// then we'd have to re-emit it and the round-trip is
|
|
218
|
-
// brittle. Leave the closing in place and just insert
|
|
219
|
-
// the bare token; if no closing exists yet, append it.
|
|
220
|
-
const closingMatch = textAfterCursor.match(/^\]\}/);
|
|
221
|
-
const suffix = closingMatch ? '' : ']}';
|
|
222
|
-
const range = new monaco.Range(position.lineNumber, bracketIdx + 3, // after `{[`
|
|
223
|
-
position.lineNumber, position.column);
|
|
224
|
-
const top = suggestIcons(query, 50);
|
|
225
|
-
return {
|
|
226
|
-
suggestions: top.map((m, i) => ({
|
|
227
|
-
// Embed the FA codepoint as the first character of
|
|
228
|
-
// the label. CSS targets the suggest widget with
|
|
229
|
-
// FontAwesome as a font fallback, so the codepoint
|
|
230
|
-
// renders as the glyph and the name renders in the
|
|
231
|
-
// editor's normal font.
|
|
232
|
-
label: {
|
|
233
|
-
label: `${iconGlyph(m.entry)} ${m.token}`,
|
|
234
|
-
description: `fa-${m.entry.family}`,
|
|
235
|
-
},
|
|
236
|
-
// `filterText` excludes the glyph + spacing so Monaco
|
|
237
|
-
// filters against the actual icon name only.
|
|
238
|
-
filterText: m.token,
|
|
239
|
-
kind: monaco.languages.CompletionItemKind.Constant,
|
|
240
|
-
insertText: `${m.token}${suffix}`,
|
|
241
|
-
range,
|
|
242
|
-
detail: m.entry.label,
|
|
243
|
-
// Documentation pane (rendered when Monaco's
|
|
244
|
-
// suggestion preview is expanded) shows a large
|
|
245
|
-
// version of the glyph alongside the canonical token.
|
|
246
|
-
documentation: {
|
|
247
|
-
value: `<i class="fa-${m.entry.family} fa-${m.entry.name}" style="font-size: 2em; display: inline-block; margin-right: 8px; vertical-align: middle"></i> **${m.token}** *(${m.entry.label})*`,
|
|
248
|
-
isTrusted: true,
|
|
249
|
-
supportHtml: true,
|
|
250
|
-
},
|
|
251
|
-
// Sort key: 1-digit score prefix keeps "starts with"
|
|
252
|
-
// matches above "contains" / keyword matches.
|
|
253
|
-
sortText: `${m.score}${String(i).padStart(4, '0')}`,
|
|
254
|
-
})),
|
|
255
|
-
};
|
|
256
|
-
},
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
// Chat-composer mode: intercept Enter before Monaco inserts a newline.
|
|
260
|
-
// Cmd/Ctrl+Enter falls through so the native newline still works.
|
|
261
|
-
keyDisposable.current?.dispose();
|
|
262
|
-
keyDisposable.current = editor.onKeyDown((e) => {
|
|
263
|
-
if (e.keyCode !== monaco.KeyCode.Enter)
|
|
264
|
-
return;
|
|
265
|
-
if (!submitOnEnterRef.current)
|
|
266
|
-
return;
|
|
267
|
-
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
|
|
268
|
-
return;
|
|
269
|
-
e.preventDefault();
|
|
270
|
-
e.stopPropagation();
|
|
271
|
-
submitOnEnterRef.current();
|
|
272
|
-
});
|
|
273
|
-
// Attach native drop listeners for in-app MediaBin drags. Monaco's own
|
|
274
|
-
// drop handling doesn't know about our custom MIME type, so we insert
|
|
275
|
-
// markdown image syntax explicitly in the capture phase.
|
|
276
|
-
dropCleanupRef.current?.();
|
|
277
|
-
const domNode = editor.getDomNode();
|
|
278
|
-
if (domNode) {
|
|
279
|
-
const onDragOver = (e) => {
|
|
280
|
-
if (e.dataTransfer?.types.includes(SQUISQ_MEDIA_MIME)) {
|
|
281
|
-
e.preventDefault();
|
|
282
|
-
e.dataTransfer.dropEffect = 'copy';
|
|
283
|
-
}
|
|
284
|
-
};
|
|
285
|
-
const onDrop = (e) => {
|
|
286
|
-
const dt = e.dataTransfer;
|
|
287
|
-
if (!dt)
|
|
288
|
-
return;
|
|
289
|
-
const raw = dt.getData(SQUISQ_MEDIA_MIME);
|
|
290
|
-
if (!raw)
|
|
291
|
-
return;
|
|
292
|
-
const payload = parseSquisqMediaPayload(raw);
|
|
293
|
-
if (!payload || !payload.mimeType.startsWith('image/'))
|
|
294
|
-
return;
|
|
295
|
-
e.preventDefault();
|
|
296
|
-
e.stopPropagation();
|
|
297
|
-
const target = editor.getTargetAtClientPoint(e.clientX, e.clientY);
|
|
298
|
-
const position = target?.position ?? editor.getPosition();
|
|
299
|
-
if (!position)
|
|
300
|
-
return;
|
|
301
|
-
const markdown = ``;
|
|
302
|
-
editor.executeEdits('squisq-media-drop', [
|
|
303
|
-
{
|
|
304
|
-
range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
|
|
305
|
-
text: markdown,
|
|
306
|
-
forceMoveMarkers: true,
|
|
307
|
-
},
|
|
308
|
-
]);
|
|
309
|
-
editor.focus();
|
|
310
|
-
};
|
|
311
|
-
domNode.addEventListener('dragover', onDragOver, true);
|
|
312
|
-
domNode.addEventListener('drop', onDrop, true);
|
|
313
|
-
dropCleanupRef.current = () => {
|
|
314
|
-
domNode.removeEventListener('dragover', onDragOver, true);
|
|
315
|
-
domNode.removeEventListener('drop', onDrop, true);
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
}, [setMonacoEditor, language]);
|
|
319
|
-
// Unregister on unmount
|
|
320
|
-
useEffect(() => {
|
|
321
|
-
return () => {
|
|
322
|
-
setMonacoEditor(null);
|
|
323
|
-
completionDisposable.current?.dispose();
|
|
324
|
-
completionDisposable.current = null;
|
|
325
|
-
mentionCompletionDisposable.current?.dispose();
|
|
326
|
-
mentionCompletionDisposable.current = null;
|
|
327
|
-
iconCompletionDisposable.current?.dispose();
|
|
328
|
-
iconCompletionDisposable.current = null;
|
|
329
|
-
iconGlyphDecorations.current?.clear();
|
|
330
|
-
iconGlyphDecorations.current = null;
|
|
331
|
-
dropCleanupRef.current?.();
|
|
332
|
-
dropCleanupRef.current = null;
|
|
333
|
-
keyDisposable.current?.dispose();
|
|
334
|
-
keyDisposable.current = null;
|
|
335
|
-
};
|
|
336
|
-
}, [setMonacoEditor]);
|
|
337
|
-
const handleChange = useCallback((value) => {
|
|
338
|
-
if (isExternalUpdate.current)
|
|
339
|
-
return;
|
|
340
|
-
if (value !== undefined) {
|
|
341
|
-
setMarkdownSource(value);
|
|
342
|
-
}
|
|
343
|
-
}, [setMarkdownSource]);
|
|
344
|
-
// When external changes happen (e.g. from WYSIWYG), update Monaco
|
|
345
|
-
useEffect(() => {
|
|
346
|
-
const editor = editorRef.current;
|
|
347
|
-
if (editor) {
|
|
348
|
-
const currentValue = editor.getValue();
|
|
349
|
-
if (currentValue !== markdownSource) {
|
|
350
|
-
isExternalUpdate.current = true;
|
|
351
|
-
editor.setValue(markdownSource);
|
|
352
|
-
isExternalUpdate.current = false;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}, [markdownSource]);
|
|
356
|
-
// ── Inline FontAwesome glyph decorations ────────────
|
|
357
|
-
// Walk the markdown source on every change, find each resolvable
|
|
358
|
-
// `{[icon-name]}` span, and overlay the actual glyph (via Monaco's
|
|
359
|
-
// `before:` content decoration) just before the brackets. The CSS
|
|
360
|
-
// classes `.fa-glyph-decoration-<family>` set the per-family font
|
|
361
|
-
// and weight; the codepoint character is the decoration's content.
|
|
362
|
-
useEffect(() => {
|
|
363
|
-
const editor = editorRef.current;
|
|
364
|
-
if (!editor)
|
|
365
|
-
return;
|
|
366
|
-
if (language !== 'markdown')
|
|
367
|
-
return;
|
|
368
|
-
const model = editor.getModel();
|
|
369
|
-
if (!model)
|
|
370
|
-
return;
|
|
371
|
-
const decorations = [];
|
|
372
|
-
const lines = model.getLineCount();
|
|
373
|
-
const re = /\{\[([a-zA-Z0-9_:-]+)\]\}/g;
|
|
374
|
-
for (let line = 1; line <= lines; line++) {
|
|
375
|
-
const text = model.getLineContent(line);
|
|
376
|
-
re.lastIndex = 0;
|
|
377
|
-
let match;
|
|
378
|
-
while ((match = re.exec(text)) !== null) {
|
|
379
|
-
const icon = resolveIcon(match[1]);
|
|
380
|
-
if (!icon)
|
|
381
|
-
continue;
|
|
382
|
-
const glyph = iconGlyph(icon);
|
|
383
|
-
if (!glyph)
|
|
384
|
-
continue;
|
|
385
|
-
// Position the decoration as a zero-width range at the `{`
|
|
386
|
-
// of the matched token. `before.contentText` renders the
|
|
387
|
-
// glyph as content prepended visually to that position.
|
|
388
|
-
const col = match.index + 1; // Monaco columns are 1-based
|
|
389
|
-
decorations.push({
|
|
390
|
-
range: new monaco.Range(line, col, line, col),
|
|
391
|
-
options: {
|
|
392
|
-
before: {
|
|
393
|
-
content: glyph,
|
|
394
|
-
inlineClassName: `fa-glyph-decoration-${icon.family}`,
|
|
395
|
-
},
|
|
396
|
-
},
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
if (!iconGlyphDecorations.current) {
|
|
401
|
-
iconGlyphDecorations.current = editor.createDecorationsCollection(decorations);
|
|
402
|
-
}
|
|
403
|
-
else {
|
|
404
|
-
iconGlyphDecorations.current.set(decorations);
|
|
405
|
-
}
|
|
406
|
-
}, [markdownSource, language]);
|
|
407
|
-
const effectiveTheme = SQUISQ_THEMES[theme] ?? theme;
|
|
408
|
-
return (_jsx("div", { className: className, style: { width: '100%', height: '100%' }, "data-testid": "raw-editor", children: _jsx(Editor, { defaultLanguage: language, value: markdownSource, theme: effectiveTheme, beforeMount: handleBeforeMount, onMount: handleMount, onChange: handleChange, options: {
|
|
409
|
-
fontSize,
|
|
410
|
-
wordWrap,
|
|
411
|
-
minimap: { enabled: minimap },
|
|
412
|
-
lineNumbers: 'on',
|
|
413
|
-
scrollBeyondLastLine: false,
|
|
414
|
-
automaticLayout: true,
|
|
415
|
-
tabSize: 2,
|
|
416
|
-
renderWhitespace: 'selection',
|
|
417
|
-
bracketPairColorization: { enabled: true },
|
|
418
|
-
guides: { indentation: true },
|
|
419
|
-
padding: { top: 12, bottom: 12 },
|
|
420
|
-
// Markdown's tokenizer classifies most body text as "string"
|
|
421
|
-
// or "comment" context, which suppresses `quickSuggestions`
|
|
422
|
-
// by default. Enable in all three so our `{[icon]}` and
|
|
423
|
-
// `@mention` typeaheads keep firing as the user types past
|
|
424
|
-
// the trigger character.
|
|
425
|
-
quickSuggestions: { other: true, comments: true, strings: true },
|
|
426
|
-
suggestOnTriggerCharacters: true,
|
|
427
|
-
// Breathing room between the gutter and the first character.
|
|
428
|
-
// Done via Monaco's own option so cursor + hit-testing stay in
|
|
429
|
-
// sync — CSS-padding `.view-lines` shifts the text but not the
|
|
430
|
-
// cursors layer, which causes the cursor to drift left of the
|
|
431
|
-
// model column. Monaco's default is 10. We set 22 (12 extra),
|
|
432
|
-
// and CSS paints the rightmost 12px of the gutter as canvas
|
|
433
|
-
// color so the breathing room looks like it sits *inside* the
|
|
434
|
-
// canvas rather than widening the gutter.
|
|
435
|
-
lineDecorationsWidth: 22,
|
|
436
|
-
readOnly,
|
|
437
|
-
domReadOnly: readOnly,
|
|
438
|
-
} }) }));
|
|
439
|
-
}
|
|
440
|
-
//# sourceMappingURL=RawEditor.js.map
|
package/dist/RawEditor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RawEditor.js","sourceRoot":"","sources":["../src/RawEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/RecorderEntry.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RecorderEntry — toolbar slot that wires `RecorderPanel` from
|
|
3
|
-
* `@bendyline/squisq-recorder-react` into the editor.
|
|
4
|
-
*
|
|
5
|
-
* Reads `mediaProvider`, `workspaceContainer`, `activeView`,
|
|
6
|
-
* `tiptapEditor`, and the markdown editing helpers from
|
|
7
|
-
* `useEditorContext()`. On a successful save it:
|
|
8
|
-
* - inserts an HTML5 media element at the cursor — `<video>` for
|
|
9
|
-
* camera / screen recordings, `<audio>` for narration / mic
|
|
10
|
-
* recordings — which the markdown renderer turns into an inline
|
|
11
|
-
* `<InlineVideoPlayer>` / `<InlineAudioPlayer>` with native
|
|
12
|
-
* controls;
|
|
13
|
-
* - for narration, also annotates the nearest heading with
|
|
14
|
-
* `{[audio=filename]}` so `resolveAudioMapping()` continues to tie
|
|
15
|
-
* the recording to that block during slideshow playback;
|
|
16
|
-
* - bumps `mediaRevision` so any blob URLs the media bin cached for
|
|
17
|
-
* the previous file list are invalidated.
|
|
18
|
-
*
|
|
19
|
-
* The component returns `null` when no `mediaProvider` is wired —
|
|
20
|
-
* recording without a place to write the captured bytes is a
|
|
21
|
-
* misconfiguration, not a feature.
|
|
22
|
-
*/
|
|
23
|
-
export declare function RecorderEntry(): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
-
//# sourceMappingURL=RecorderEntry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RecorderEntry.d.ts","sourceRoot":"","sources":["../src/RecorderEntry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAkDH,wBAAgB,aAAa,mDA4F5B"}
|