@bendyline/squisq-editor-react 2.1.0 → 2.3.0
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/LICENSE +21 -0
- package/NOTICE.md +40 -0
- package/dist/chunk-54UGTQBO.js +862 -0
- package/dist/chunk-5JMHFAVW.js +2408 -0
- package/dist/chunk-5Q4JN4I5.js +132 -0
- package/dist/chunk-6VDYKI3L.js +49 -0
- package/dist/chunk-GS7QWYFT.js +9 -0
- package/dist/chunk-MJJK7YQB.js +949 -0
- package/dist/chunk-NITZVAXL.js +986 -0
- package/dist/chunk-TRCKHRBS.js +35234 -0
- package/dist/chunk-V44VP242.js +3256 -0
- package/dist/image-editor/index.d.ts +223 -0
- package/dist/image-editor/index.js +15 -0
- package/dist/index.d.ts +2060 -4040
- package/dist/index.js +496 -40014
- package/dist/json-editor/index.d.ts +27 -0
- package/dist/json-editor/index.js +7 -0
- package/dist/monaco.d.ts +1 -1
- package/dist/monaco.js +1 -2
- package/dist/recorder/index.d.ts +407 -0
- package/dist/recorder/index.js +43 -0
- package/dist/shell/index.d.ts +9 -0
- package/dist/shell/index.js +22 -0
- package/dist/shell-BxSCBm4H.d.ts +1064 -0
- package/dist/styles/index.css +598 -161
- package/dist/teleprompter/index.d.ts +497 -0
- package/dist/teleprompter/index.js +57 -0
- package/package.json +34 -8
- package/dist/index.js.map +0 -1
- package/dist/monaco.js.map +0 -1
- package/src/BlockCardView.tsx +0 -121
- package/src/BlockPreviewPanel.tsx +0 -69
- package/src/BlockPropertiesPopover.tsx +0 -222
- package/src/DocumentSettingsDialog.tsx +0 -272
- package/src/DropZoneOverlay.tsx +0 -137
- package/src/EditorContext.tsx +0 -1274
- package/src/EditorShell.tsx +0 -1358
- package/src/EmojiPicker.tsx +0 -332
- package/src/FolderView.tsx +0 -131
- package/src/Icon.tsx +0 -26
- package/src/ImageEditor.tsx +0 -395
- package/src/ImageNodeView.tsx +0 -284
- package/src/ImageViewer.tsx +0 -221
- package/src/InlineIcon.ts +0 -84
- package/src/InlinePreviewGutter.tsx +0 -590
- package/src/LinkDialog.tsx +0 -276
- package/src/MediaBin.tsx +0 -500
- package/src/MentionExtension.tsx +0 -261
- package/src/OutlinePanel.tsx +0 -547
- package/src/PlainHtmlPreview.tsx +0 -277
- package/src/PreviewControls.tsx +0 -1265
- package/src/PreviewPanel.tsx +0 -426
- package/src/RawEditor.tsx +0 -743
- package/src/RecorderEntry.tsx +0 -162
- package/src/StatusBar.tsx +0 -51
- package/src/TemplateAnnotation.ts +0 -167
- package/src/TemplateContentPreview.tsx +0 -56
- package/src/TemplatePicker.tsx +0 -1314
- package/src/ThemeCustomizerPanel.tsx +0 -304
- package/src/ThemePicker.tsx +0 -433
- package/src/TimelineBlockPreview.tsx +0 -37
- package/src/TimelineTrack.tsx +0 -671
- package/src/Toolbar.tsx +0 -2885
- package/src/Tooltip.tsx +0 -142
- package/src/TransitionPicker.tsx +0 -390
- package/src/VersionHistoryPanel.tsx +0 -359
- package/src/ViewMenuPanel.tsx +0 -189
- package/src/ViewSwitcher.tsx +0 -56
- package/src/WysiwygEditor.tsx +0 -806
- package/src/__tests__/blockProperties.test.ts +0 -92
- package/src/__tests__/blockPropertiesPopoverTheme.test.tsx +0 -33
- package/src/__tests__/blockRange.test.ts +0 -105
- package/src/__tests__/blockTagActivity.test.ts +0 -183
- package/src/__tests__/buildDocumentPreviewMarkdown.test.ts +0 -75
- package/src/__tests__/buildPreviewDocContent.test.ts +0 -65
- package/src/__tests__/buildPreviewDocTransition.test.ts +0 -92
- package/src/__tests__/canvasSurfaceTextEditing.test.tsx +0 -60
- package/src/__tests__/codeContextSectionView.test.tsx +0 -97
- package/src/__tests__/codeContextZoneManager.test.ts +0 -127
- package/src/__tests__/createShapeLayer.test.ts +0 -46
- package/src/__tests__/customLayoutManagerTheme.test.tsx +0 -34
- package/src/__tests__/detectMarkdown.test.ts +0 -73
- package/src/__tests__/diffContextSections.test.ts +0 -39
- package/src/__tests__/documentSettingsDialog.test.tsx +0 -197
- package/src/__tests__/drawingShapeRoundTrip.test.ts +0 -49
- package/src/__tests__/editorScrollHandoff.test.tsx +0 -102
- package/src/__tests__/editorScrollSync.test.ts +0 -65
- package/src/__tests__/editorShellCodeContext.test.tsx +0 -86
- package/src/__tests__/editorShellProps.test.tsx +0 -550
- package/src/__tests__/embeddedMedia.test.ts +0 -48
- package/src/__tests__/emojiPicker.test.tsx +0 -93
- package/src/__tests__/fileKind.test.ts +0 -112
- package/src/__tests__/findMode.test.tsx +0 -104
- package/src/__tests__/findModel.test.ts +0 -55
- package/src/__tests__/headingTransition.test.ts +0 -176
- package/src/__tests__/imageEditAffordance.test.tsx +0 -272
- package/src/__tests__/imageEditModalContract.test.tsx +0 -119
- package/src/__tests__/imageEditorShell.test.tsx +0 -94
- package/src/__tests__/imageEditorState.test.ts +0 -171
- package/src/__tests__/inlinePreviewGutter.test.tsx +0 -62
- package/src/__tests__/inlinePreviewGutterAllBlocks.test.tsx +0 -103
- package/src/__tests__/jsonEditor.test.tsx +0 -223
- package/src/__tests__/layersPanel.test.tsx +0 -167
- package/src/__tests__/layoutChildRoundTrip.test.ts +0 -71
- package/src/__tests__/linkDialogDocPicker.test.tsx +0 -137
- package/src/__tests__/majorApiTypes.test.ts +0 -26
- package/src/__tests__/markdownCodeFence.test.ts +0 -45
- package/src/__tests__/mediaAttachmentFlow.test.ts +0 -110
- package/src/__tests__/mediaBinDrop.test.tsx +0 -90
- package/src/__tests__/mediaReferences.test.ts +0 -97
- package/src/__tests__/narrationSave.test.ts +0 -148
- package/src/__tests__/outlinePanel.test.tsx +0 -169
- package/src/__tests__/outlineSource.test.ts +0 -217
- package/src/__tests__/plainHtmlPreview.test.tsx +0 -125
- package/src/__tests__/presentationMode.test.tsx +0 -290
- package/src/__tests__/previewControls.test.tsx +0 -571
- package/src/__tests__/previewPanelAudioFailure.test.tsx +0 -46
- package/src/__tests__/previewPanelPresentation.test.tsx +0 -126
- package/src/__tests__/previewPanelTransforms.test.tsx +0 -117
- package/src/__tests__/propertiesPanel.test.tsx +0 -69
- package/src/__tests__/rawEditorModelIsolation.test.ts +0 -19
- package/src/__tests__/recorderFormats.test.ts +0 -146
- package/src/__tests__/recorderMediaInsert.test.ts +0 -86
- package/src/__tests__/recorderTheme.test.tsx +0 -42
- package/src/__tests__/recorderTimingJson.test.ts +0 -41
- package/src/__tests__/resolveBlockVisual.test.ts +0 -43
- package/src/__tests__/selectionConversions.test.ts +0 -80
- package/src/__tests__/statusBar.test.tsx +0 -27
- package/src/__tests__/teleprompter.test.tsx +0 -190
- package/src/__tests__/templateAnnotationRoundTrip.test.ts +0 -99
- package/src/__tests__/templateContentPreview.test.ts +0 -101
- package/src/__tests__/templatePickerMetadata.test.ts +0 -32
- package/src/__tests__/templatePickerPortal.test.tsx +0 -62
- package/src/__tests__/timelineSource.test.ts +0 -134
- package/src/__tests__/tiptapBridge.test.ts +0 -575
- package/src/__tests__/tiptapBridgeConformance.test.ts +0 -47
- package/src/__tests__/tiptapCodeBlockRoundTrip.test.ts +0 -109
- package/src/__tests__/tiptapImageRoundTrip.test.ts +0 -73
- package/src/__tests__/toolbarSelectionConversion.test.tsx +0 -190
- package/src/__tests__/tooltip.test.tsx +0 -72
- package/src/__tests__/transformStyleId.test.ts +0 -13
- package/src/__tests__/transitionCatalog.test.ts +0 -64
- package/src/__tests__/useBlockNavigator.test.tsx +0 -67
- package/src/__tests__/useImageEditor.test.tsx +0 -226
- package/src/__tests__/useJsonEditorTokens.test.ts +0 -59
- package/src/__tests__/useMediaRecorder.test.ts +0 -302
- package/src/__tests__/useTimelineClock.test.ts +0 -21
- package/src/__tests__/versionHistory.test.tsx +0 -197
- package/src/__tests__/viewMenuPanel.test.tsx +0 -130
- package/src/__tests__/writeCanvasSettings.test.ts +0 -15
- package/src/__tests__/wysiwygImageUpload.test.ts +0 -69
- package/src/__tests__/wysiwygTemplateBadgeFocus.test.tsx +0 -56
- package/src/asciiDiagram/AsciiDiagramExtension.ts +0 -343
- package/src/asciiDiagram/AsciiDiagramWidget.tsx +0 -254
- package/src/asciiDiagram/RepairableDiagramExtension.ts +0 -200
- package/src/asciiDiagram/__tests__/AsciiDiagramExtension.test.ts +0 -164
- package/src/asciiDiagram/__tests__/RepairableDiagramExtension.test.ts +0 -159
- package/src/asciiDiagram/__tests__/asciiDiagramCommands.test.ts +0 -284
- package/src/asciiDiagram/__tests__/asciiDiagramOps.test.ts +0 -114
- package/src/asciiDiagram/__tests__/asciiPaste.test.ts +0 -43
- package/src/asciiDiagram/asciiDiagramCommands.ts +0 -174
- package/src/asciiDiagram/asciiDiagramData.ts +0 -149
- package/src/asciiDiagram/asciiDiagramOps.ts +0 -238
- package/src/asciiDiagram/asciiPaste.ts +0 -19
- package/src/blockProperties.ts +0 -88
- package/src/blockRange.ts +0 -132
- package/src/blockSlice.ts +0 -75
- package/src/blockTagActivity.ts +0 -233
- package/src/buildDocumentPreviewMarkdown.ts +0 -168
- package/src/buildPreviewDoc.ts +0 -407
- package/src/codeContext/CodeContextSectionView.tsx +0 -124
- package/src/codeContext/CodeContextZoneManager.ts +0 -149
- package/src/codeContext/CodeContextZones.tsx +0 -121
- package/src/codeContext/diffContextSections.ts +0 -38
- package/src/codeContext/types.ts +0 -75
- package/src/codeSnippet/CodeSnippetExtension.ts +0 -205
- package/src/codeSnippet/CodeSnippetWidget.tsx +0 -109
- package/src/codeSnippet/__tests__/CodeSnippetExtension.test.ts +0 -95
- package/src/codeSnippet/__tests__/codeSnippetLanguages.test.ts +0 -50
- package/src/codeSnippet/codeSnippetCommands.ts +0 -21
- package/src/codeSnippet/codeSnippetData.ts +0 -43
- package/src/codeSnippet/codeSnippetLanguages.ts +0 -216
- package/src/customTemplates/AddBin.tsx +0 -126
- package/src/customTemplates/CustomLayoutManager.tsx +0 -234
- package/src/customTemplates/CustomTemplateContext.tsx +0 -188
- package/src/customTemplates/LayerToolbar.tsx +0 -580
- package/src/customTemplates/ShapeGlyph.tsx +0 -47
- package/src/customTemplates/TemplateDesigner.tsx +0 -433
- package/src/customTemplates/__tests__/library.test.ts +0 -96
- package/src/customTemplates/__tests__/normalizePositions.test.ts +0 -109
- package/src/customTemplates/__tests__/shapeDefs.test.ts +0 -49
- package/src/customTemplates/__tests__/useMemoryLayerAdapter.test.ts +0 -108
- package/src/customTemplates/designer.css +0 -732
- package/src/customTemplates/index.ts +0 -31
- package/src/customTemplates/library.ts +0 -110
- package/src/customTemplates/normalizePositions.ts +0 -75
- package/src/customTemplates/shapeDefs.ts +0 -131
- package/src/customTemplates/thumbnail.tsx +0 -63
- package/src/customTemplates/tokenDefs.ts +0 -60
- package/src/customTemplates/useDocCustomTemplates.ts +0 -52
- package/src/customTemplates/useMemoryLayerAdapter.ts +0 -129
- package/src/customThemes/CustomThemeContext.tsx +0 -185
- package/src/customThemes/CustomThemeDialog.tsx +0 -316
- package/src/customThemes/ImportThemeSection.tsx +0 -178
- package/src/customThemes/__tests__/CustomThemeContext.test.tsx +0 -64
- package/src/customThemes/__tests__/CustomThemeDialog.test.tsx +0 -47
- package/src/customThemes/__tests__/customThemeLibrary.test.ts +0 -60
- package/src/customThemes/__tests__/importThemeSection.test.tsx +0 -192
- package/src/customThemes/customThemeLibrary.ts +0 -100
- package/src/customThemes/index.ts +0 -37
- package/src/customThemes/themeControls.tsx +0 -229
- package/src/customThemes/themeDraft.ts +0 -288
- package/src/customThemes/useDocCustomThemes.ts +0 -49
- package/src/detectMarkdown.ts +0 -62
- package/src/diagram/DiagramCanvas.tsx +0 -260
- package/src/diagram/DiagramMaximizedOverlay.tsx +0 -46
- package/src/diagram/diagramCommands.ts +0 -604
- package/src/diagram/diagramConstants.ts +0 -17
- package/src/diagram/types.ts +0 -35
- package/src/editorScrollSync.ts +0 -73
- package/src/embeddedMedia.ts +0 -78
- package/src/emojiData.ts +0 -1317
- package/src/fileKind.ts +0 -158
- package/src/find/FindHighlightExtension.ts +0 -81
- package/src/find/FindToolbar.tsx +0 -314
- package/src/find/findModel.ts +0 -77
- package/src/frontmatter.ts +0 -29
- package/src/frontmatterSettings.ts +0 -23
- package/src/headingTransition.ts +0 -291
- package/src/hooks/useFileDrop.ts +0 -266
- package/src/imageEditor/CanvasSurface.tsx +0 -703
- package/src/imageEditor/ImageVersionHistoryDropdown.tsx +0 -396
- package/src/imageEditor/LayersPanel.tsx +0 -218
- package/src/imageEditor/PropertiesPanel.tsx +0 -474
- package/src/imageEditor/Toolbar.tsx +0 -459
- package/src/imageEditor/createShapeLayer.ts +0 -280
- package/src/imageEditor/icons.tsx +0 -68
- package/src/imageEditor/image-editor.css +0 -574
- package/src/imageEditor/layers/EditorImageLayer.tsx +0 -45
- package/src/imageEditor/layers/EditorShapeLayer.tsx +0 -62
- package/src/imageEditor/layers/EditorTextLayer.tsx +0 -45
- package/src/imageEditor/layers/SelectionHandles.tsx +0 -86
- package/src/imageEditor/state.ts +0 -173
- package/src/imageEditor/useImageEditor.ts +0 -385
- package/src/imageEditor/useImageEditorTokens.ts +0 -70
- package/src/index.ts +0 -559
- package/src/jsonEditor/EmbeddedRichTextField.tsx +0 -81
- package/src/jsonEditor/JsonEditor.tsx +0 -81
- package/src/jsonEditor/JsonEditorContext.tsx +0 -81
- package/src/jsonEditor/RenderNode.tsx +0 -87
- package/src/jsonEditor/editors.tsx +0 -745
- package/src/jsonEditor/index.ts +0 -2
- package/src/jsonEditor/json-editor.css +0 -463
- package/src/jsonEditor/useJsonEditorTokens.ts +0 -33
- package/src/markdownCodeFence.ts +0 -72
- package/src/mediaDragMime.ts +0 -32
- package/src/mediaEntries.ts +0 -12
- package/src/mediaReferences.ts +0 -301
- package/src/mermaid/MermaidDiagramCanvas.tsx +0 -693
- package/src/mermaid/MermaidDiagramExtension.ts +0 -243
- package/src/mermaid/MermaidDiagramTypeThumbnail.tsx +0 -184
- package/src/mermaid/MermaidDiagramWidget.tsx +0 -653
- package/src/mermaid/MermaidShapePalette.tsx +0 -245
- package/src/mermaid/__tests__/MermaidDiagramExtension.test.ts +0 -361
- package/src/mermaid/__tests__/mermaidDiagramTypes.test.ts +0 -35
- package/src/mermaid/__tests__/mermaidRenderer.test.ts +0 -49
- package/src/mermaid/__tests__/mermaidSourceOps.test.ts +0 -213
- package/src/mermaid/__tests__/mermaidSyntax.test.ts +0 -71
- package/src/mermaid/mermaidCommands.ts +0 -34
- package/src/mermaid/mermaidData.ts +0 -31
- package/src/mermaid/mermaidDiagramTypes.ts +0 -325
- package/src/mermaid/mermaidModel.ts +0 -31
- package/src/mermaid/mermaidRenderer.ts +0 -181
- package/src/mermaid/mermaidShapes.ts +0 -113
- package/src/mermaid/mermaidSourceOps.ts +0 -454
- package/src/monaco.ts +0 -35
- package/src/monacoWorkers.ts +0 -89
- package/src/outlineSource.ts +0 -171
- package/src/presentation/PresentationMode.tsx +0 -596
- package/src/rawEditorIsolation.ts +0 -18
- package/src/recorder/RecorderButton.tsx +0 -80
- package/src/recorder/RecorderModal.tsx +0 -706
- package/src/recorder/RecorderPanel.tsx +0 -77
- package/src/recorder/formats.ts +0 -159
- package/src/recorder/hooks/useMediaRecorder.ts +0 -436
- package/src/recorder/hooks/useStreamPreview.ts +0 -47
- package/src/recorder/insertMediaBlock.ts +0 -30
- package/src/recorder/sources/cameraStream.ts +0 -32
- package/src/recorder/sources/micStream.ts +0 -25
- package/src/recorder/sources/screenStream.ts +0 -162
- package/src/recorder/timingJson.ts +0 -66
- package/src/resolveBlockVisual.ts +0 -39
- package/src/scene/Scene.tsx +0 -647
- package/src/scene/SceneBlockExtension.ts +0 -205
- package/src/scene/SceneBlockToolbar.tsx +0 -216
- package/src/scene/SceneBlockWidget.tsx +0 -441
- package/src/scene/ScenePropsBar.tsx +0 -85
- package/src/scene/SceneSelection.tsx +0 -111
- package/src/scene/SceneSideToolbar.tsx +0 -89
- package/src/scene/SceneViewControls.tsx +0 -43
- package/src/scene/SceneViewport.tsx +0 -106
- package/src/scene/ShapePalette.tsx +0 -196
- package/src/scene/__tests__/DiagramAdapter.test.ts +0 -142
- package/src/scene/__tests__/SceneBlockExtension.test.ts +0 -33
- package/src/scene/__tests__/bezierEdit.test.ts +0 -85
- package/src/scene/__tests__/blockLayers.test.ts +0 -57
- package/src/scene/__tests__/fitScale.test.ts +0 -19
- package/src/scene/__tests__/sceneIsolation.test.tsx +0 -119
- package/src/scene/__tests__/shapeLayers.test.ts +0 -106
- package/src/scene/__tests__/useSceneHitTest.test.ts +0 -90
- package/src/scene/__tests__/useScenePanZoom.test.ts +0 -130
- package/src/scene/adapters/DiagramAdapter.ts +0 -79
- package/src/scene/adapters/DrawingAdapter.ts +0 -420
- package/src/scene/adapters/LayoutAdapter.ts +0 -313
- package/src/scene/adapters/blockLayers.ts +0 -159
- package/src/scene/commands/SceneCommand.ts +0 -84
- package/src/scene/commands/drawingCommands.ts +0 -318
- package/src/scene/commands/layoutCommands.ts +0 -301
- package/src/scene/fitScale.ts +0 -17
- package/src/scene/hooks/useSceneHitTest.ts +0 -105
- package/src/scene/hooks/useScenePanZoom.ts +0 -154
- package/src/scene/hooks/useSceneSelection.ts +0 -62
- package/src/scene/index.ts +0 -90
- package/src/scene/layers/DiagramEdges.tsx +0 -142
- package/src/scene/layers/edgeGeometry.ts +0 -104
- package/src/scene/layers/nodeCard.tsx +0 -164
- package/src/scene/layers/renderLayer.tsx +0 -70
- package/src/scene/layers/shapeLayers.ts +0 -201
- package/src/scene/paths/bezierEdit.ts +0 -208
- package/src/scene/scene.css +0 -874
- package/src/scene/text/SceneTextOverlay.tsx +0 -161
- package/src/scene/text/sceneTextChannel.ts +0 -46
- package/src/scene/text/sceneTextConfig.ts +0 -31
- package/src/scene/text/sceneTiptap.ts +0 -36
- package/src/scene/text/useSceneTextEditing.ts +0 -39
- package/src/scene/tools/ConnectTool.ts +0 -209
- package/src/scene/tools/DrawingConnectTool.ts +0 -231
- package/src/scene/tools/PathTool.ts +0 -158
- package/src/scene/tools/PlaceTool.ts +0 -47
- package/src/scene/tools/SceneTool.ts +0 -85
- package/src/scene/tools/SelectTool.ts +0 -300
- package/src/scene/tools/ShapeTool.ts +0 -143
- package/src/scene/tools/TextTool.ts +0 -72
- package/src/scene/tools/TokenTool.ts +0 -95
- package/src/scene/tools/createDrawShapeTool.ts +0 -82
- package/src/selectionConversions.ts +0 -155
- package/src/styles/ascii-diagram.css +0 -79
- package/src/styles/ascii-timeline.css +0 -596
- package/src/styles/code-context.css +0 -155
- package/src/styles/code-snippet.css +0 -76
- package/src/styles/diagram.css +0 -183
- package/src/styles/editor.css +0 -7131
- package/src/styles/folder-view.css +0 -210
- package/src/styles/image-edit-affordance.css +0 -201
- package/src/styles/index.css +0 -20
- package/src/styles/mermaid-diagram.css +0 -487
- package/src/styles/tree-view.css +0 -189
- package/src/teleprompter/TeleprompterControls.tsx +0 -218
- package/src/teleprompter/TeleprompterSelfView.tsx +0 -22
- package/src/teleprompter/TeleprompterSurface.tsx +0 -267
- package/src/teleprompter/TeleprompterView.tsx +0 -338
- package/src/teleprompter/canvasRenderer.ts +0 -161
- package/src/teleprompter/floatingWindow.ts +0 -352
- package/src/teleprompter/index.ts +0 -61
- package/src/teleprompter/pcmWorklet.ts +0 -62
- package/src/teleprompter/recording/insertPreamble.ts +0 -80
- package/src/teleprompter/recording/narrationSave.ts +0 -134
- package/src/teleprompter/recording/useNarrationRecorder.ts +0 -367
- package/src/teleprompter/scrollModel.ts +0 -85
- package/src/teleprompter/teleprompterTheme.ts +0 -303
- package/src/teleprompter/types.ts +0 -38
- package/src/teleprompter/useFloatingWindow.ts +0 -74
- package/src/teleprompter/useMicAnalysis.ts +0 -211
- package/src/teleprompter/useTeleprompter.ts +0 -421
- package/src/templateContentPreviewResolver.ts +0 -360
- package/src/timeline/TimelineEditorWidget.tsx +0 -861
- package/src/timeline/TimelineViewExtension.ts +0 -252
- package/src/timeline/__tests__/TimelineEditorWidget.test.tsx +0 -414
- package/src/timeline/__tests__/TimelineViewExtension.test.ts +0 -163
- package/src/timeline/__tests__/timelineCommands.test.ts +0 -359
- package/src/timeline/__tests__/timelineOps.test.ts +0 -277
- package/src/timeline/__tests__/timelinePaste.test.ts +0 -34
- package/src/timeline/timelineCommands.ts +0 -421
- package/src/timeline/timelineData.ts +0 -54
- package/src/timeline/timelineOps.ts +0 -381
- package/src/timeline/timelinePaste.ts +0 -8
- package/src/timelineSource.ts +0 -244
- package/src/tiptap/TiptapAudio.tsx +0 -86
- package/src/tiptap/TiptapVideo.tsx +0 -119
- package/src/tiptap/useResolvedMediaSrc.ts +0 -47
- package/src/tiptapBridge.ts +0 -986
- package/src/tooltipPlacement.ts +0 -13
- package/src/transformStyleId.ts +0 -17
- package/src/transitionCatalog.ts +0 -159
- package/src/treeview/TreeOutlineWidget.tsx +0 -390
- package/src/treeview/TreeViewExtension.ts +0 -250
- package/src/treeview/__tests__/TreeOutlineWidget.test.tsx +0 -156
- package/src/treeview/__tests__/TreeViewExtension.test.ts +0 -122
- package/src/treeview/__tests__/treeOps.test.ts +0 -177
- package/src/treeview/__tests__/treePaste.test.ts +0 -40
- package/src/treeview/__tests__/treeViewCommands.test.ts +0 -179
- package/src/treeview/treeOps.ts +0 -231
- package/src/treeview/treePaste.ts +0 -13
- package/src/treeview/treeViewCommands.ts +0 -99
- package/src/treeview/treeViewData.ts +0 -41
- package/src/types/monaco-shims.d.ts +0 -10
- package/src/useBlockNavigator.ts +0 -153
- package/src/useHeadingLayout.ts +0 -294
- package/src/useMonacoLoader.ts +0 -82
- package/src/useTimelineClock.ts +0 -76
- package/src/utils/collectInlineFontAwesomeCss.ts +0 -69
- package/src/utils/dropUtils.ts +0 -136
- package/src/utils/normalizeMalformedAssetUrl.ts +0 -22
- package/src/writeCanvasSettings.ts +0 -30
- package/src/wysiwygImageUpload.ts +0 -113
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { MermaidFlowchartShapeId } from './mermaidShapes';
|
|
2
|
-
|
|
3
|
-
export type MermaidFlowchartDirection = 'TB' | 'TD' | 'BT' | 'RL' | 'LR';
|
|
4
|
-
|
|
5
|
-
export interface MermaidEditableNode {
|
|
6
|
-
id: string;
|
|
7
|
-
domId: string;
|
|
8
|
-
label: string;
|
|
9
|
-
shape: MermaidFlowchartShapeId;
|
|
10
|
-
classes: readonly string[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface MermaidEditableEdge {
|
|
14
|
-
id: string;
|
|
15
|
-
source: string;
|
|
16
|
-
target: string;
|
|
17
|
-
label: string;
|
|
18
|
-
type?: string;
|
|
19
|
-
stroke?: string;
|
|
20
|
-
userDefinedId?: boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface MermaidFlowchartModel {
|
|
24
|
-
kind: 'flowchart';
|
|
25
|
-
direction: MermaidFlowchartDirection;
|
|
26
|
-
nodes: readonly MermaidEditableNode[];
|
|
27
|
-
edges: readonly MermaidEditableEdge[];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Structured editing is additive to full Mermaid rendering, never required by it. */
|
|
31
|
-
export type MermaidEditableModel = MermaidFlowchartModel;
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/** Browser-only, lazy Mermaid renderer shared by all complex-diagram widgets. */
|
|
2
|
-
|
|
3
|
-
import type { RenderResult } from 'mermaid';
|
|
4
|
-
import type {
|
|
5
|
-
MermaidEditableEdge,
|
|
6
|
-
MermaidEditableModel,
|
|
7
|
-
MermaidEditableNode,
|
|
8
|
-
MermaidFlowchartDirection,
|
|
9
|
-
} from './mermaidModel';
|
|
10
|
-
import { normalizeMermaidFlowchartShape } from './mermaidShapes';
|
|
11
|
-
|
|
12
|
-
let mermaidPromise: Promise<typeof import('mermaid').default> | null = null;
|
|
13
|
-
|
|
14
|
-
interface MermaidQueueHost {
|
|
15
|
-
__squisqMermaidWorkQueue?: Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function enqueueMermaidWork<T>(run: () => Promise<T>): Promise<T> {
|
|
19
|
-
// Mermaid shares mutable diagram databases across imports. The React
|
|
20
|
-
// rendition package uses this same global queue so an editor widget cannot
|
|
21
|
-
// inspect while Page or Slideshow is rendering (or vice versa).
|
|
22
|
-
const host = globalThis as typeof globalThis & MermaidQueueHost;
|
|
23
|
-
const previous = host.__squisqMermaidWorkQueue ?? Promise.resolve();
|
|
24
|
-
const result = previous.then(run, run);
|
|
25
|
-
host.__squisqMermaidWorkQueue = result.then(
|
|
26
|
-
() => undefined,
|
|
27
|
-
() => undefined,
|
|
28
|
-
);
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
interface FlowVertexLike {
|
|
33
|
-
id?: unknown;
|
|
34
|
-
domId?: unknown;
|
|
35
|
-
text?: unknown;
|
|
36
|
-
type?: unknown;
|
|
37
|
-
classes?: unknown;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
interface FlowEdgeLike {
|
|
41
|
-
id?: unknown;
|
|
42
|
-
start?: unknown;
|
|
43
|
-
end?: unknown;
|
|
44
|
-
text?: unknown;
|
|
45
|
-
type?: unknown;
|
|
46
|
-
stroke?: unknown;
|
|
47
|
-
isUserDefinedId?: unknown;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
interface FlowDbLike {
|
|
51
|
-
getVertices?: () => Map<string, FlowVertexLike>;
|
|
52
|
-
getEdges?: () => FlowEdgeLike[];
|
|
53
|
-
getDirection?: () => string | undefined;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export interface MermaidRenderResult extends Pick<RenderResult, 'svg' | 'diagramType'> {
|
|
57
|
-
/** Present for flowchart/graph sources that Mermaid exposes as editable nodes and edges. */
|
|
58
|
-
model?: MermaidEditableModel;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async function loadMermaid(): Promise<typeof import('mermaid').default> {
|
|
62
|
-
if (!mermaidPromise) {
|
|
63
|
-
mermaidPromise = import('mermaid')
|
|
64
|
-
.then(({ default: mermaid }) => {
|
|
65
|
-
mermaid.initialize({
|
|
66
|
-
startOnLoad: false,
|
|
67
|
-
securityLevel: 'strict',
|
|
68
|
-
suppressErrorRendering: true,
|
|
69
|
-
deterministicIds: false,
|
|
70
|
-
logLevel: 'error',
|
|
71
|
-
});
|
|
72
|
-
return mermaid;
|
|
73
|
-
})
|
|
74
|
-
.catch((error: unknown) => {
|
|
75
|
-
// A transient chunk-load failure should not poison every diagram for
|
|
76
|
-
// the rest of the editor session.
|
|
77
|
-
mermaidPromise = null;
|
|
78
|
-
throw error;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
return mermaidPromise;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Render through Mermaid's public API so all diagram types supported by the
|
|
86
|
-
* pinned Mermaid release share the same path. The caller owns insertion of
|
|
87
|
-
* the returned SVG; interactive `bindFunctions` are intentionally not run in
|
|
88
|
-
* the editor, preventing authored links/callbacks from hijacking editing.
|
|
89
|
-
*/
|
|
90
|
-
export async function renderMermaidDiagram(
|
|
91
|
-
id: string,
|
|
92
|
-
source: string,
|
|
93
|
-
container?: Element,
|
|
94
|
-
): Promise<MermaidRenderResult> {
|
|
95
|
-
const run = async (): Promise<MermaidRenderResult> => {
|
|
96
|
-
const mermaid = await loadMermaid();
|
|
97
|
-
const model = await inspectMermaidSourceWith(mermaid, source);
|
|
98
|
-
const { svg, diagramType } = await mermaid.render(id, source, container);
|
|
99
|
-
return model ? { svg, diagramType, model } : { svg, diagramType };
|
|
100
|
-
};
|
|
101
|
-
// `getDiagramFromText` and `render` share Mermaid diagram databases. Keep
|
|
102
|
-
// each inspect+render pair together when several widgets mount at once.
|
|
103
|
-
return enqueueMermaidWork(run);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/** Inspect the subset Mermaid exposes as structured flowchart nodes/edges. */
|
|
107
|
-
export function inspectMermaidSource(source: string): Promise<MermaidEditableModel | null> {
|
|
108
|
-
return enqueueMermaidWork(async () => inspectMermaidSourceWith(await loadMermaid(), source));
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
async function inspectMermaidSourceWith(
|
|
112
|
-
mermaid: typeof import('mermaid').default,
|
|
113
|
-
source: string,
|
|
114
|
-
): Promise<MermaidEditableModel | null> {
|
|
115
|
-
const getDiagramFromText = mermaid.mermaidAPI?.getDiagramFromText;
|
|
116
|
-
if (typeof getDiagramFromText !== 'function') return null;
|
|
117
|
-
try {
|
|
118
|
-
const diagram = await getDiagramFromText(source);
|
|
119
|
-
if (diagram.type !== 'flowchart' && diagram.type !== 'flowchart-v2') return null;
|
|
120
|
-
const db = diagram.db as FlowDbLike;
|
|
121
|
-
if (typeof db.getVertices !== 'function' || typeof db.getEdges !== 'function') return null;
|
|
122
|
-
|
|
123
|
-
const nodes: MermaidEditableNode[] = [];
|
|
124
|
-
for (const [fallbackId, vertex] of db.getVertices()) {
|
|
125
|
-
const nodeId = typeof vertex.id === 'string' ? vertex.id : fallbackId;
|
|
126
|
-
if (!nodeId) continue;
|
|
127
|
-
nodes.push({
|
|
128
|
-
id: nodeId,
|
|
129
|
-
domId: typeof vertex.domId === 'string' ? vertex.domId : nodeId,
|
|
130
|
-
label: typeof vertex.text === 'string' ? vertex.text : nodeId,
|
|
131
|
-
shape: normalizeMermaidFlowchartShape(
|
|
132
|
-
typeof vertex.type === 'string' ? vertex.type : undefined,
|
|
133
|
-
),
|
|
134
|
-
classes: Array.isArray(vertex.classes)
|
|
135
|
-
? vertex.classes.filter((value): value is string => typeof value === 'string')
|
|
136
|
-
: [],
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const edges: MermaidEditableEdge[] = db
|
|
141
|
-
.getEdges()
|
|
142
|
-
.map((edge, index) => ({
|
|
143
|
-
id: typeof edge.id === 'string' ? edge.id : `edge-${index}`,
|
|
144
|
-
source: typeof edge.start === 'string' ? edge.start : '',
|
|
145
|
-
target: typeof edge.end === 'string' ? edge.end : '',
|
|
146
|
-
label: typeof edge.text === 'string' ? edge.text : '',
|
|
147
|
-
...(typeof edge.type === 'string' ? { type: edge.type } : {}),
|
|
148
|
-
...(typeof edge.stroke === 'string' ? { stroke: edge.stroke } : {}),
|
|
149
|
-
...(typeof edge.isUserDefinedId === 'boolean'
|
|
150
|
-
? { userDefinedId: edge.isUserDefinedId }
|
|
151
|
-
: {}),
|
|
152
|
-
}))
|
|
153
|
-
.filter((edge) => edge.source && edge.target);
|
|
154
|
-
|
|
155
|
-
const rawDirection = db.getDirection?.();
|
|
156
|
-
const direction: MermaidFlowchartDirection =
|
|
157
|
-
rawDirection === 'TB' ||
|
|
158
|
-
rawDirection === 'TD' ||
|
|
159
|
-
rawDirection === 'BT' ||
|
|
160
|
-
rawDirection === 'RL' ||
|
|
161
|
-
rawDirection === 'LR'
|
|
162
|
-
? rawDirection
|
|
163
|
-
: 'TB';
|
|
164
|
-
return { kind: 'flowchart', direction, nodes, edges };
|
|
165
|
-
} catch {
|
|
166
|
-
// Rendering still owns the user-facing syntax error. Inspection is an
|
|
167
|
-
// optional enhancement and must never prevent full Mermaid rendering.
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
export function mermaidErrorMessage(error: unknown): string {
|
|
173
|
-
const raw = error instanceof Error ? error.message : String(error);
|
|
174
|
-
const message = raw
|
|
175
|
-
.split(/\r?\n/)
|
|
176
|
-
.map((line) => line.trimEnd())
|
|
177
|
-
.filter(Boolean)
|
|
178
|
-
.slice(0, 8)
|
|
179
|
-
.join('\n');
|
|
180
|
-
return message || 'Unknown Mermaid rendering error.';
|
|
181
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/** Mermaid 11.16 flowchart shape catalog used by the structured editor. */
|
|
2
|
-
|
|
3
|
-
export interface MermaidFlowchartShape {
|
|
4
|
-
id: string;
|
|
5
|
-
label: string;
|
|
6
|
-
category: 'Basic' | 'Process' | 'Data' | 'Documents' | 'Symbols';
|
|
7
|
-
aliases?: readonly string[];
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Every non-asset shape in Mermaid 11.16's expanded flowchart catalog.
|
|
12
|
-
* `icon` and `image` are deliberately excluded: they require additional
|
|
13
|
-
* asset-specific fields and, for icons, a host-registered icon pack.
|
|
14
|
-
*/
|
|
15
|
-
export const MERMAID_FLOWCHART_SHAPES = [
|
|
16
|
-
{ id: 'rect', label: 'Process', category: 'Basic', aliases: ['rectangle', 'proc'] },
|
|
17
|
-
{ id: 'rounded', label: 'Event', category: 'Basic', aliases: ['event'] },
|
|
18
|
-
{ id: 'stadium', label: 'Terminal', category: 'Basic', aliases: ['pill'] },
|
|
19
|
-
{ id: 'circle', label: 'Circle', category: 'Basic', aliases: ['circ'] },
|
|
20
|
-
{ id: 'dbl-circ', label: 'Double circle', category: 'Basic', aliases: ['double-circle'] },
|
|
21
|
-
{ id: 'diam', label: 'Decision', category: 'Basic', aliases: ['diamond', 'question'] },
|
|
22
|
-
{ id: 'hex', label: 'Preparation', category: 'Basic', aliases: ['hexagon', 'prepare'] },
|
|
23
|
-
{ id: 'tri', label: 'Extract', category: 'Basic', aliases: ['triangle'] },
|
|
24
|
-
{ id: 'odd', label: 'Odd', category: 'Basic' },
|
|
25
|
-
|
|
26
|
-
{ id: 'notch-rect', label: 'Card', category: 'Process', aliases: ['card'] },
|
|
27
|
-
{ id: 'delay', label: 'Delay', category: 'Process' },
|
|
28
|
-
{ id: 'div-rect', label: 'Divided process', category: 'Process', aliases: ['div-proc'] },
|
|
29
|
-
{ id: 'fork', label: 'Fork / join', category: 'Process', aliases: ['join'] },
|
|
30
|
-
{ id: 'lin-rect', label: 'Lined process', category: 'Process', aliases: ['lin-proc'] },
|
|
31
|
-
{ id: 'st-rect', label: 'Multi-process', category: 'Process', aliases: ['processes'] },
|
|
32
|
-
{ id: 'fr-rect', label: 'Subprocess', category: 'Process', aliases: ['subprocess'] },
|
|
33
|
-
{ id: 'tag-rect', label: 'Tagged process', category: 'Process', aliases: ['tag-proc'] },
|
|
34
|
-
|
|
35
|
-
{ id: 'lean-r', label: 'Input / output', category: 'Data', aliases: ['in-out'] },
|
|
36
|
-
{ id: 'lean-l', label: 'Output / input', category: 'Data', aliases: ['out-in'] },
|
|
37
|
-
{ id: 'datastore', label: 'Data store', category: 'Data', aliases: ['data-store'] },
|
|
38
|
-
{ id: 'cyl', label: 'Database', category: 'Data', aliases: ['database', 'db'] },
|
|
39
|
-
{ id: 'h-cyl', label: 'Direct access storage', category: 'Data', aliases: ['das'] },
|
|
40
|
-
{ id: 'lin-cyl', label: 'Disk storage', category: 'Data', aliases: ['disk'] },
|
|
41
|
-
{ id: 'bow-rect', label: 'Stored data', category: 'Data', aliases: ['stored-data'] },
|
|
42
|
-
{ id: 'win-pane', label: 'Internal storage', category: 'Data', aliases: ['window-pane'] },
|
|
43
|
-
|
|
44
|
-
{ id: 'doc', label: 'Document', category: 'Documents' },
|
|
45
|
-
{ id: 'docs', label: 'Multi-document', category: 'Documents', aliases: ['documents'] },
|
|
46
|
-
{ id: 'lin-doc', label: 'Lined document', category: 'Documents' },
|
|
47
|
-
{ id: 'tag-doc', label: 'Tagged document', category: 'Documents' },
|
|
48
|
-
{ id: 'flag', label: 'Paper tape', category: 'Documents', aliases: ['paper-tape'] },
|
|
49
|
-
|
|
50
|
-
{ id: 'bang', label: 'Bang', category: 'Symbols' },
|
|
51
|
-
{ id: 'cloud', label: 'Cloud', category: 'Symbols' },
|
|
52
|
-
{ id: 'hourglass', label: 'Collate', category: 'Symbols', aliases: ['collate'] },
|
|
53
|
-
{ id: 'bolt', label: 'Communication link', category: 'Symbols', aliases: ['com-link'] },
|
|
54
|
-
{ id: 'brace', label: 'Comment left', category: 'Symbols', aliases: ['comment'] },
|
|
55
|
-
{ id: 'brace-r', label: 'Comment right', category: 'Symbols' },
|
|
56
|
-
{ id: 'braces', label: 'Comment both', category: 'Symbols' },
|
|
57
|
-
{ id: 'curv-trap', label: 'Display', category: 'Symbols', aliases: ['display'] },
|
|
58
|
-
{ id: 'notch-pent', label: 'Loop limit', category: 'Symbols', aliases: ['loop-limit'] },
|
|
59
|
-
{ id: 'flip-tri', label: 'Manual file', category: 'Symbols', aliases: ['manual-file'] },
|
|
60
|
-
{ id: 'sl-rect', label: 'Manual input', category: 'Symbols', aliases: ['manual-input'] },
|
|
61
|
-
{ id: 'trap-t', label: 'Manual operation', category: 'Symbols', aliases: ['manual'] },
|
|
62
|
-
{ id: 'trap-b', label: 'Priority action', category: 'Symbols', aliases: ['priority'] },
|
|
63
|
-
{ id: 'f-circ', label: 'Junction', category: 'Symbols', aliases: ['junction'] },
|
|
64
|
-
{ id: 'sm-circ', label: 'Start', category: 'Symbols', aliases: ['start'] },
|
|
65
|
-
{ id: 'fr-circ', label: 'Stop', category: 'Symbols', aliases: ['stop'] },
|
|
66
|
-
{ id: 'cross-circ', label: 'Summary', category: 'Symbols', aliases: ['summary'] },
|
|
67
|
-
{ id: 'text', label: 'Text block', category: 'Symbols' },
|
|
68
|
-
] as const satisfies readonly MermaidFlowchartShape[];
|
|
69
|
-
|
|
70
|
-
export type MermaidFlowchartShapeId = (typeof MERMAID_FLOWCHART_SHAPES)[number]['id'];
|
|
71
|
-
|
|
72
|
-
const SHAPE_IDS = new Set<string>(MERMAID_FLOWCHART_SHAPES.map((shape) => shape.id));
|
|
73
|
-
|
|
74
|
-
const LEGACY_SHAPE_IDS: Readonly<Record<string, MermaidFlowchartShapeId>> = {
|
|
75
|
-
square: 'rect',
|
|
76
|
-
rectangle: 'rect',
|
|
77
|
-
proc: 'rect',
|
|
78
|
-
round: 'rounded',
|
|
79
|
-
event: 'rounded',
|
|
80
|
-
pill: 'stadium',
|
|
81
|
-
subroutine: 'fr-rect',
|
|
82
|
-
cylinder: 'cyl',
|
|
83
|
-
database: 'cyl',
|
|
84
|
-
db: 'cyl',
|
|
85
|
-
diamond: 'diam',
|
|
86
|
-
question: 'diam',
|
|
87
|
-
hexagon: 'hex',
|
|
88
|
-
prepare: 'hex',
|
|
89
|
-
doublecircle: 'dbl-circ',
|
|
90
|
-
'double-circle': 'dbl-circ',
|
|
91
|
-
trapezoid: 'trap-b',
|
|
92
|
-
inv_trapezoid: 'trap-t',
|
|
93
|
-
lean_right: 'lean-r',
|
|
94
|
-
lean_left: 'lean-l',
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export function isMermaidFlowchartShapeId(value: string): value is MermaidFlowchartShapeId {
|
|
98
|
-
return SHAPE_IDS.has(value);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/** Normalize legacy parser names and documented aliases to the general-syntax id. */
|
|
102
|
-
export function normalizeMermaidFlowchartShape(
|
|
103
|
-
value: string | null | undefined,
|
|
104
|
-
): MermaidFlowchartShapeId {
|
|
105
|
-
if (!value) return 'rect';
|
|
106
|
-
if (isMermaidFlowchartShapeId(value)) return value;
|
|
107
|
-
const legacy = LEGACY_SHAPE_IDS[value];
|
|
108
|
-
if (legacy) return legacy;
|
|
109
|
-
for (const shape of MERMAID_FLOWCHART_SHAPES) {
|
|
110
|
-
if ('aliases' in shape && (shape.aliases as readonly string[]).includes(value)) return shape.id;
|
|
111
|
-
}
|
|
112
|
-
return 'rect';
|
|
113
|
-
}
|