@bendyline/squisq-editor-react 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1991 -90
- package/dist/index.js +17088 -82
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayersPanel.d.ts","sourceRoot":"","sources":["../../src/imageEditor/LayersPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAWpD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAyG/E"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronDownIcon, ChevronUpIcon, CloseIcon, EyeIcon, EyeOffIcon, LockIcon, UnlockIcon, } from './icons.js';
|
|
3
|
-
export function LayersPanel({ doc, selectedLayerId, dispatch }) {
|
|
4
|
-
// Visual order: top of stack first.
|
|
5
|
-
const ordered = doc.layers.slice().reverse();
|
|
6
|
-
return (_jsxs("div", { className: "squisq-image-editor-layers", "data-testid": "image-editor-layers", children: [_jsx("div", { className: "squisq-image-editor-panel-header", children: "Layers" }), _jsxs("ul", { className: "squisq-image-editor-layer-list", children: [ordered.length === 0 && _jsx("li", { className: "squisq-image-editor-layer-empty", children: "No layers yet" }), ordered.map((layer) => {
|
|
7
|
-
const visible = layer.visible !== false;
|
|
8
|
-
const locked = !!layer.locked;
|
|
9
|
-
const stackIndex = doc.layers.findIndex((l) => l.id === layer.id);
|
|
10
|
-
const canMoveUp = stackIndex < doc.layers.length - 1;
|
|
11
|
-
const canMoveDown = stackIndex > 0;
|
|
12
|
-
const isSelected = selectedLayerId === layer.id;
|
|
13
|
-
return (_jsxs("li", { className: [
|
|
14
|
-
'squisq-image-editor-layer-item',
|
|
15
|
-
isSelected ? 'is-selected' : '',
|
|
16
|
-
visible ? '' : 'is-hidden',
|
|
17
|
-
]
|
|
18
|
-
.filter(Boolean)
|
|
19
|
-
.join(' '), children: [_jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({
|
|
20
|
-
type: 'update-layer',
|
|
21
|
-
layerId: layer.id,
|
|
22
|
-
patch: { visible: !visible },
|
|
23
|
-
}), "aria-label": visible ? 'Hide layer' : 'Show layer', title: visible ? 'Hide layer' : 'Show layer', children: visible ? _jsx(EyeIcon, {}) : _jsx(EyeOffIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({
|
|
24
|
-
type: 'update-layer',
|
|
25
|
-
layerId: layer.id,
|
|
26
|
-
patch: { locked: !locked },
|
|
27
|
-
}), "aria-label": locked ? 'Unlock layer' : 'Lock layer', title: locked ? 'Unlock layer' : 'Lock layer', children: locked ? _jsx(LockIcon, {}) : _jsx(UnlockIcon, {}) }), _jsxs("button", { type: "button", className: "squisq-image-editor-layer-name", onClick: () => dispatch({ type: 'select', layerId: layer.id }), children: [layer.name ?? defaultLayerName(layer), _jsx("span", { className: "squisq-image-editor-layer-kind", children: layer.type })] }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", disabled: !canMoveUp, onClick: () => dispatch({ type: 'reorder-layer', layerId: layer.id, toIndex: stackIndex + 1 }), "aria-label": "Move layer up", title: "Move layer up", children: _jsx(ChevronUpIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", disabled: !canMoveDown, onClick: () => dispatch({ type: 'reorder-layer', layerId: layer.id, toIndex: stackIndex - 1 }), "aria-label": "Move layer down", title: "Move layer down", children: _jsx(ChevronDownIcon, {}) }), _jsx("button", { type: "button", className: "squisq-image-editor-layer-toggle", onClick: () => dispatch({ type: 'remove-layer', layerId: layer.id }), "aria-label": "Delete layer", title: "Delete layer", children: _jsx(CloseIcon, {}) })] }, layer.id));
|
|
28
|
-
})] })] }));
|
|
29
|
-
}
|
|
30
|
-
function defaultLayerName(layer) {
|
|
31
|
-
if (layer.type === 'text') {
|
|
32
|
-
const c = layer.content;
|
|
33
|
-
return c?.text?.split('\n')[0]?.slice(0, 24) || 'Text';
|
|
34
|
-
}
|
|
35
|
-
if (layer.type === 'image')
|
|
36
|
-
return 'Image';
|
|
37
|
-
if (layer.type === 'shape') {
|
|
38
|
-
const c = layer.content;
|
|
39
|
-
return c?.shape ? c.shape[0].toUpperCase() + c.shape.slice(1) : 'Shape';
|
|
40
|
-
}
|
|
41
|
-
return layer.type;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=LayersPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayersPanel.js","sourceRoot":"","sources":["../../src/imageEditor/LayersPanel.tsx"],"names":[],"mappings":";AAQA,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAQpB,MAAM,UAAU,WAAW,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAoB;IAC9E,oCAAoC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7C,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,iBAAa,qBAAqB,aAC3E,cAAK,SAAS,EAAC,kCAAkC,uBAAa,EAC9D,cAAI,SAAS,EAAC,gCAAgC,aAC3C,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAI,SAAS,EAAC,iCAAiC,8BAAmB,EAC1F,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC;wBACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;wBAClE,MAAM,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrD,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,CAAC,EAAE,CAAC;wBAEhD,OAAO,CACL,cAEE,SAAS,EAAE;gCACT,gCAAgC;gCAChC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gCAC/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;6BAC3B;iCACE,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CAAC,GAAG,CAAC,aAEZ,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;wCACP,IAAI,EAAE,cAAc;wCACpB,OAAO,EAAE,KAAK,CAAC,EAAE;wCACjB,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;qCAC7B,CAAC,gBAEQ,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,YAE3C,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GAChC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;wCACP,IAAI,EAAE,cAAc;wCACpB,OAAO,EAAE,KAAK,CAAC,EAAE;wCACjB,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE;qCAC3B,CAAC,gBAEQ,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,EAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,YAE5C,MAAM,CAAC,CAAC,CAAC,KAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GAChC,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAE7D,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,EACtC,eAAM,SAAS,EAAC,gCAAgC,YAAE,KAAK,CAAC,IAAI,GAAQ,IAC7D,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,gBAEtE,eAAe,EAC1B,KAAK,EAAC,eAAe,YAErB,KAAC,aAAa,KAAG,GACV,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,QAAQ,EAAE,CAAC,WAAW,EACtB,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,gBAEtE,iBAAiB,EAC5B,KAAK,EAAC,iBAAiB,YAEvB,KAAC,eAAe,KAAG,GACZ,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,gBACzD,cAAc,EACzB,KAAK,EAAC,cAAc,YAEpB,KAAC,SAAS,KAAG,GACN,KA/EJ,KAAK,CAAC,EAAE,CAgFV,CACN,CAAC;oBACJ,CAAC,CAAC,IACC,IACD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA0C;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAwC,CAAC;QACzD,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAyC,CAAC;QAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PropertiesPanel — kind-aware editors for the canvas and the selected
|
|
3
|
-
* layer. Plain controls only (no JsonEditor dependency) so the panel
|
|
4
|
-
* stays focused on the image-editing vocabulary.
|
|
5
|
-
*/
|
|
6
|
-
import type { ImageEditDoc } from '@bendyline/squisq/schemas';
|
|
7
|
-
import type { ImageEditorAction } from './state.js';
|
|
8
|
-
export interface PropertiesPanelProps {
|
|
9
|
-
doc: ImageEditDoc;
|
|
10
|
-
selectedLayerId: string | null;
|
|
11
|
-
dispatch: (action: ImageEditorAction) => void;
|
|
12
|
-
}
|
|
13
|
-
export declare function PropertiesPanel({ doc, selectedLayerId, dispatch }: PropertiesPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
//# sourceMappingURL=PropertiesPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../src/imageEditor/PropertiesPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAgBvF"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { NoneIcon } from './icons.js';
|
|
3
|
-
export function PropertiesPanel({ doc, selectedLayerId, dispatch }) {
|
|
4
|
-
const selected = selectedLayerId
|
|
5
|
-
? (doc.layers.find((l) => l.id === selectedLayerId) ?? null)
|
|
6
|
-
: null;
|
|
7
|
-
return (_jsxs("div", { className: "squisq-image-editor-properties", "data-testid": "image-editor-properties", children: [_jsx("div", { className: "squisq-image-editor-panel-header", children: "Properties" }), _jsx(CanvasSection, { doc: doc, dispatch: dispatch }), selected ? (_jsx(LayerSection, { layer: selected, dispatch: dispatch })) : (_jsx("div", { className: "squisq-image-editor-properties-empty", children: "No layer selected" }))] }));
|
|
8
|
-
}
|
|
9
|
-
// ============================================
|
|
10
|
-
// Canvas section
|
|
11
|
-
// ============================================
|
|
12
|
-
function CanvasSection({ doc, dispatch, }) {
|
|
13
|
-
const setCanvas = (patch) => {
|
|
14
|
-
dispatch({ type: 'set-canvas', canvas: { ...doc.canvas, ...patch } });
|
|
15
|
-
};
|
|
16
|
-
return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Canvas" }), _jsx(NumberField, { label: "Width", value: doc.canvas.width, min: 1, onChange: (v) => setCanvas({ width: Math.round(v) }) }), _jsx(NumberField, { label: "Height", value: doc.canvas.height, min: 1, onChange: (v) => setCanvas({ height: Math.round(v) }) }), _jsx(ColorField, { label: "Background", value: doc.canvas.background ?? 'transparent', allowTransparent: true, onChange: (v) => setCanvas({ background: v }) })] }));
|
|
17
|
-
}
|
|
18
|
-
// ============================================
|
|
19
|
-
// Layer section
|
|
20
|
-
// ============================================
|
|
21
|
-
function LayerSection({ layer, dispatch, }) {
|
|
22
|
-
const update = (patch) => dispatch({ type: 'update-layer', layerId: layer.id, patch });
|
|
23
|
-
return (_jsxs(_Fragment, { children: [_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Layer" }), _jsx(TextField, { label: "Name", value: layer.name ?? '', onChange: (name) => update({ name }) }), _jsx(NumberField, { label: "Opacity", value: layer.opacity ?? 1, min: 0, max: 1, step: 0.05, onChange: (opacity) => update({ opacity }) })] }), _jsx(PositionFields, { layer: layer, update: update }), layer.type === 'image' && _jsx(ImageFields, { layer: layer, update: update }), layer.type === 'text' && _jsx(TextFields, { layer: layer, update: update }), layer.type === 'shape' && _jsx(ShapeFields, { layer: layer, update: update })] }));
|
|
24
|
-
}
|
|
25
|
-
function PositionFields({ layer, update, }) {
|
|
26
|
-
const p = layer.position;
|
|
27
|
-
const setPos = (patch) => update({ position: { ...p, ...patch } });
|
|
28
|
-
return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Position" }), _jsx(NumberField, { label: "X", value: typeof p.x === 'number' ? p.x : 0, onChange: (x) => setPos({ x: Math.round(x) }) }), _jsx(NumberField, { label: "Y", value: typeof p.y === 'number' ? p.y : 0, onChange: (y) => setPos({ y: Math.round(y) }) }), _jsx(NumberField, { label: "Width", value: typeof p.width === 'number' ? p.width : 0, onChange: (width) => setPos({ width: Math.round(width) }) }), _jsx(NumberField, { label: "Height", value: typeof p.height === 'number' ? p.height : 0, onChange: (height) => setPos({ height: Math.round(height) }) })] }));
|
|
29
|
-
}
|
|
30
|
-
function ImageFields({ layer, update, }) {
|
|
31
|
-
const c = layer.content;
|
|
32
|
-
const setContent = (patch) => update({ content: { ...c, ...patch } });
|
|
33
|
-
return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Image" }), _jsx(TextField, { label: "Alt", value: c.alt ?? '', onChange: (alt) => setContent({ alt }) }), _jsx(SelectField, { label: "Fit", value: c.fit ?? 'fill', options: [
|
|
34
|
-
['fill', 'Fill'],
|
|
35
|
-
['contain', 'Contain'],
|
|
36
|
-
['cover', 'Cover'],
|
|
37
|
-
], onChange: (fit) => setContent({ fit: fit }) })] }));
|
|
38
|
-
}
|
|
39
|
-
function TextFields({ layer, update, }) {
|
|
40
|
-
const c = layer.content;
|
|
41
|
-
const setContent = (patch) => update({ content: { ...c, ...patch } });
|
|
42
|
-
const setStyle = (patch) => setContent({ style: { ...c.style, ...patch } });
|
|
43
|
-
return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Text" }), _jsx(TextAreaField, { label: "Text", value: c.text, onChange: (text) => setContent({ text }) }), _jsx(NumberField, { label: "Font size", value: c.style.fontSize, min: 1, onChange: (fontSize) => setStyle({ fontSize: Math.round(fontSize) }) }), _jsx(ColorField, { label: "Color", value: c.style.color, onChange: (color) => setStyle({ color }) }), _jsx(SelectField, { label: "Weight", value: c.style.fontWeight ?? 'normal', options: [
|
|
44
|
-
['normal', 'Normal'],
|
|
45
|
-
['bold', 'Bold'],
|
|
46
|
-
], onChange: (fontWeight) => setStyle({ fontWeight: fontWeight }) }), _jsx(SelectField, { label: "Align", value: c.style.textAlign ?? 'left', options: [
|
|
47
|
-
['left', 'Left'],
|
|
48
|
-
['center', 'Center'],
|
|
49
|
-
['right', 'Right'],
|
|
50
|
-
], onChange: (textAlign) => setStyle({ textAlign: textAlign }) })] }));
|
|
51
|
-
}
|
|
52
|
-
function ShapeFields({ layer, update, }) {
|
|
53
|
-
const c = layer.content;
|
|
54
|
-
const setContent = (patch) => update({ content: { ...c, ...patch } });
|
|
55
|
-
return (_jsxs("fieldset", { className: "squisq-image-editor-fieldset", children: [_jsx("legend", { children: "Shape" }), _jsx(SelectField, { label: "Shape", value: c.shape, options: [
|
|
56
|
-
['rect', 'Rectangle'],
|
|
57
|
-
['circle', 'Circle'],
|
|
58
|
-
['line', 'Line'],
|
|
59
|
-
], onChange: (shape) => setContent({ shape: shape }) }), _jsx(ColorField, { label: "Fill", value: c.fill ?? '#000000', allowTransparent: true, onChange: (fill) => setContent({ fill }) }), _jsx(ColorField, { label: "Stroke", value: c.stroke ?? '#000000', allowTransparent: true, onChange: (stroke) => setContent({ stroke }) }), _jsx(NumberField, { label: "Stroke width", value: c.strokeWidth ?? 0, min: 0, onChange: (strokeWidth) => setContent({ strokeWidth }) }), c.shape === 'rect' && (_jsx(NumberField, { label: "Corner radius", value: c.borderRadius ?? 0, min: 0, onChange: (borderRadius) => setContent({ borderRadius: Math.round(borderRadius) }) }))] }));
|
|
60
|
-
}
|
|
61
|
-
// ============================================
|
|
62
|
-
// Field primitives
|
|
63
|
-
// ============================================
|
|
64
|
-
function NumberField({ label, value, min, max, step, onChange, }) {
|
|
65
|
-
return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("input", { type: "number", value: Number.isFinite(value) ? value : 0, min: min, max: max, step: step ?? 1, onChange: (e) => {
|
|
66
|
-
const n = Number(e.target.value);
|
|
67
|
-
if (Number.isFinite(n))
|
|
68
|
-
onChange(n);
|
|
69
|
-
} })] }));
|
|
70
|
-
}
|
|
71
|
-
function TextField({ label, value, onChange, }) {
|
|
72
|
-
return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value) })] }));
|
|
73
|
-
}
|
|
74
|
-
function TextAreaField({ label, value, onChange, }) {
|
|
75
|
-
return (_jsxs("label", { className: "squisq-image-editor-field squisq-image-editor-field--multiline", children: [_jsx("span", { children: label }), _jsx("textarea", { rows: 3, value: value, onChange: (e) => onChange(e.target.value) })] }));
|
|
76
|
-
}
|
|
77
|
-
function SelectField({ label, value, options, onChange, }) {
|
|
78
|
-
return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsx("select", { value: value, onChange: (e) => onChange(e.target.value), children: options.map(([v, l]) => (_jsx("option", { value: v, children: l }, v))) })] }));
|
|
79
|
-
}
|
|
80
|
-
function ColorField({ label, value, allowTransparent, onChange, }) {
|
|
81
|
-
const isTransparent = value === 'transparent' || value === 'none';
|
|
82
|
-
return (_jsxs("label", { className: "squisq-image-editor-field", children: [_jsx("span", { children: label }), _jsxs("span", { className: "squisq-image-editor-color-row", children: [_jsx("input", { type: "color", value: isTransparent ? '#000000' : normalizeColor(value), onChange: (e) => onChange(e.target.value) }), _jsx("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value), spellCheck: false }), allowTransparent && (_jsx("button", { type: "button", onClick: () => onChange('transparent'), title: "Set transparent", "aria-label": "Set transparent", className: "squisq-image-editor-color-clear", children: _jsx(NoneIcon, {}) }))] })] }));
|
|
83
|
-
}
|
|
84
|
-
function normalizeColor(v) {
|
|
85
|
-
if (/^#[0-9a-f]{6}$/i.test(v))
|
|
86
|
-
return v;
|
|
87
|
-
if (/^#[0-9a-f]{3}$/i.test(v)) {
|
|
88
|
-
return ('#' +
|
|
89
|
-
v
|
|
90
|
-
.slice(1)
|
|
91
|
-
.split('')
|
|
92
|
-
.map((c) => c + c)
|
|
93
|
-
.join(''));
|
|
94
|
-
}
|
|
95
|
-
return '#000000';
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=PropertiesPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PropertiesPanel.js","sourceRoot":"","sources":["../../src/imageEditor/PropertiesPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Toolbar — tool selector, layer-creation buttons, file-bin uploader,
|
|
3
|
-
* and a Save/Export button. Versioning controls live in
|
|
4
|
-
* `<ImageEditor>` so the toolbar stays purely about authoring tools.
|
|
5
|
-
*/
|
|
6
|
-
import type { ImageEditDoc } from '@bendyline/squisq/schemas';
|
|
7
|
-
import type { ImageEditorAction, ImageEditorTool } from './state.js';
|
|
8
|
-
export interface ToolbarProps {
|
|
9
|
-
doc: ImageEditDoc;
|
|
10
|
-
tool: ImageEditorTool;
|
|
11
|
-
dispatch: (a: ImageEditorAction) => void;
|
|
12
|
-
/** Upload an image asset and return its sidecar-relative path. */
|
|
13
|
-
uploadAsset: (file: Blob, suggestedName?: string) => Promise<string>;
|
|
14
|
-
/** Trigger an export (PNG/JPEG/WebP) of the flattened canvas. */
|
|
15
|
-
onExport: (format: 'png' | 'jpeg' | 'webp') => void;
|
|
16
|
-
/** Force-flush the state.json (host's "save" button). */
|
|
17
|
-
onSave?: () => void;
|
|
18
|
-
/** Override the Save button label. Default: "Save". */
|
|
19
|
-
saveLabel?: string;
|
|
20
|
-
/** Override the Save button tooltip. Default: "Save state.json". */
|
|
21
|
-
saveTitle?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Optional extra controls rendered just before the Save / Export
|
|
24
|
-
* buttons in the right-aligned tool group. Used by `<ImageEditor>` to
|
|
25
|
-
* mount the version-history dropdown when versioning is enabled.
|
|
26
|
-
*/
|
|
27
|
-
extraTools?: React.ReactNode;
|
|
28
|
-
}
|
|
29
|
-
export declare function Toolbar({ doc, tool, dispatch, uploadAsset, onExport, onSave, saveLabel, saveTitle, extraTools, }: ToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
-
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/imageEditor/Toolbar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACzC,kEAAkE;IAClE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,iEAAiE;IACjE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACpD,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAaD,wBAAgB,OAAO,CAAC,EACtB,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAkB,EAClB,SAA6B,EAC7B,UAAU,GACX,EAAE,YAAY,2CA6Fd"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Toolbar — tool selector, layer-creation buttons, file-bin uploader,
|
|
4
|
-
* and a Save/Export button. Versioning controls live in
|
|
5
|
-
* `<ImageEditor>` so the toolbar stays purely about authoring tools.
|
|
6
|
-
*/
|
|
7
|
-
import { useRef, useState, useEffect } from 'react';
|
|
8
|
-
import { CropIcon, CursorIcon, PlusIcon, ShapeIcon, TextIcon } from './icons.js';
|
|
9
|
-
const TOOLS = [
|
|
10
|
-
{ id: 'select', icon: _jsx(CursorIcon, {}), title: 'Select / move (V)' },
|
|
11
|
-
{ id: 'text', icon: _jsx(TextIcon, {}), title: 'Add text (T)' },
|
|
12
|
-
{ id: 'shape', icon: _jsx(ShapeIcon, {}), title: 'Add shape (S)' },
|
|
13
|
-
{ id: 'crop', icon: _jsx(CropIcon, {}), title: 'Crop (C)' },
|
|
14
|
-
];
|
|
15
|
-
export function Toolbar({ doc, tool, dispatch, uploadAsset, onExport, onSave, saveLabel = 'Save', saveTitle = 'Save state.json', extraTools, }) {
|
|
16
|
-
const fileInputRef = useRef(null);
|
|
17
|
-
const onFilePicked = async (file) => {
|
|
18
|
-
try {
|
|
19
|
-
const path = await uploadAsset(file, file.name);
|
|
20
|
-
// Place the imported image centered at its native size up to canvas.
|
|
21
|
-
const dims = await probeDims(file);
|
|
22
|
-
const w = Math.min(dims.width, doc.canvas.width);
|
|
23
|
-
const h = Math.min(dims.height, doc.canvas.height);
|
|
24
|
-
dispatch({
|
|
25
|
-
type: 'add-layer',
|
|
26
|
-
layer: {
|
|
27
|
-
type: 'image',
|
|
28
|
-
name: file.name,
|
|
29
|
-
position: {
|
|
30
|
-
x: Math.round((doc.canvas.width - w) / 2),
|
|
31
|
-
y: Math.round((doc.canvas.height - h) / 2),
|
|
32
|
-
width: w,
|
|
33
|
-
height: h,
|
|
34
|
-
},
|
|
35
|
-
content: { src: path, alt: file.name, fit: 'fill' },
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
console.warn('[squisq-editor] image upload failed:', err instanceof Error ? err.message : err);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
return (_jsxs("div", { className: "squisq-image-editor-toolbar", "data-testid": "image-editor-toolbar", children: [_jsx("div", { className: "squisq-image-editor-tool-group", role: "radiogroup", "aria-label": "Tools", children: TOOLS.map((t) => (_jsx("button", { type: "button", role: "radio", "aria-checked": tool === t.id, className: ['squisq-image-editor-tool-button', tool === t.id ? 'is-active' : '']
|
|
44
|
-
.filter(Boolean)
|
|
45
|
-
.join(' '), onClick: () => dispatch({ type: 'set-tool', tool: t.id }), title: t.title, "aria-label": t.title, children: t.icon }, t.id))) }), _jsxs("div", { className: "squisq-image-editor-tool-group", children: [_jsxs("button", { type: "button", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--with-label", onClick: () => fileInputRef.current?.click(), title: "Import image as new layer", "aria-label": "Import image as new layer", children: [_jsx(PlusIcon, {}), _jsx("span", { children: "Image" })] }), _jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", hidden: true, onChange: (e) => {
|
|
46
|
-
const file = e.target.files?.[0];
|
|
47
|
-
if (file)
|
|
48
|
-
void onFilePicked(file);
|
|
49
|
-
e.target.value = '';
|
|
50
|
-
} })] }), _jsxs("div", { className: "squisq-image-editor-tool-group squisq-image-editor-tool-group--right", children: [extraTools, onSave && (_jsx("button", { type: "button", className: "squisq-image-editor-tool-button", onClick: onSave, title: saveTitle, children: saveLabel })), _jsx(ExportDropdown, { onExport: onExport })] })] }));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Single export dropdown listing all output formats. Replaces the
|
|
54
|
-
* earlier split "Export PNG / Other format…" pair so the toolbar reads
|
|
55
|
-
* as one Export control with a stable label and consistent sizing.
|
|
56
|
-
*/
|
|
57
|
-
function ExportDropdown({ onExport }) {
|
|
58
|
-
const [open, setOpen] = useState(false);
|
|
59
|
-
const wrapRef = useRef(null);
|
|
60
|
-
const triggerRef = useRef(null);
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
if (!open)
|
|
63
|
-
return;
|
|
64
|
-
function onDocClick(e) {
|
|
65
|
-
const t = e.target;
|
|
66
|
-
if (!t)
|
|
67
|
-
return;
|
|
68
|
-
if (wrapRef.current?.contains(t))
|
|
69
|
-
return;
|
|
70
|
-
setOpen(false);
|
|
71
|
-
}
|
|
72
|
-
function onKey(e) {
|
|
73
|
-
if (e.key === 'Escape')
|
|
74
|
-
setOpen(false);
|
|
75
|
-
}
|
|
76
|
-
document.addEventListener('mousedown', onDocClick);
|
|
77
|
-
document.addEventListener('keydown', onKey);
|
|
78
|
-
return () => {
|
|
79
|
-
document.removeEventListener('mousedown', onDocClick);
|
|
80
|
-
document.removeEventListener('keydown', onKey);
|
|
81
|
-
};
|
|
82
|
-
}, [open]);
|
|
83
|
-
const pick = (f) => {
|
|
84
|
-
setOpen(false);
|
|
85
|
-
onExport(f);
|
|
86
|
-
};
|
|
87
|
-
return (_jsxs("span", { ref: wrapRef, className: "squisq-image-editor-version-dropdown", children: [_jsxs("button", { ref: triggerRef, type: "button", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--with-label", onClick: () => setOpen((o) => !o), "aria-haspopup": "menu", "aria-expanded": open, title: "Export image", children: [_jsx("span", { children: "Export" }), _jsx("span", { "aria-hidden": "true", style: { fontSize: '0.8em' }, children: "\u25BE" })] }), open && (_jsx("div", { className: "squisq-image-editor-version-popover", role: "menu", style: { minWidth: 160 }, children: _jsx("ul", { className: "squisq-image-editor-version-popover__list", style: { maxHeight: 'none' }, children: [
|
|
88
|
-
{ f: 'png', label: 'PNG' },
|
|
89
|
-
{ f: 'jpeg', label: 'JPEG' },
|
|
90
|
-
{ f: 'webp', label: 'WebP' },
|
|
91
|
-
].map(({ f, label }) => (_jsx("li", { className: "squisq-image-editor-version-popover__row", children: _jsxs("button", { type: "button", role: "menuitem", className: "squisq-image-editor-tool-button squisq-image-editor-tool-button--menu", onClick: () => pick(f), children: ["Export as ", label] }) }, f))) }) }))] }));
|
|
92
|
-
}
|
|
93
|
-
function probeDims(file) {
|
|
94
|
-
return new Promise((resolve) => {
|
|
95
|
-
const url = URL.createObjectURL(file);
|
|
96
|
-
const img = new Image();
|
|
97
|
-
img.onload = () => {
|
|
98
|
-
URL.revokeObjectURL(url);
|
|
99
|
-
resolve({ width: img.naturalWidth, height: img.naturalHeight });
|
|
100
|
-
};
|
|
101
|
-
img.onerror = () => {
|
|
102
|
-
URL.revokeObjectURL(url);
|
|
103
|
-
resolve({ width: 200, height: 200 });
|
|
104
|
-
};
|
|
105
|
-
img.src = url;
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../src/imageEditor/Toolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inline SVG line icons for the image editor chrome. Stroke-based,
|
|
3
|
-
* `currentColor`-driven so they pick up `--squisq-image-editor-text` etc.
|
|
4
|
-
* automatically. Sized via `font-size`/`em` so they scale with their
|
|
5
|
-
* button label. Kept inline (no sprite, no font) so the package has zero
|
|
6
|
-
* extra runtime cost and tree-shakes per-icon.
|
|
7
|
-
*/
|
|
8
|
-
import type { SVGProps } from 'react';
|
|
9
|
-
type IconProps = Omit<SVGProps<SVGSVGElement>, 'children'>;
|
|
10
|
-
export declare function EyeIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export declare function EyeOffIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export declare function LockIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export declare function UnlockIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
export declare function ChevronUpIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
export declare function ChevronDownIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export declare function CloseIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
export declare function CursorIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export declare function TextIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
-
export declare function ShapeIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
export declare function CropIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
export declare function PlusIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
-
export declare function NoneIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/imageEditor/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;AAsB3D,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,2CAOvC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAS1C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOxC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAO1C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,2CAM7C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,2CAM/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAM1C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAQxC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
function Svg({ children, ...rest }) {
|
|
3
|
-
return (_jsx("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", ...rest, children: children }));
|
|
4
|
-
}
|
|
5
|
-
export function EyeIcon(props) {
|
|
6
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M2.5 12s3.5-6.5 9.5-6.5S21.5 12 21.5 12s-3.5 6.5-9.5 6.5S2.5 12 2.5 12Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.75" })] }));
|
|
7
|
-
}
|
|
8
|
-
export function EyeOffIcon(props) {
|
|
9
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M3.5 3.5l17 17" }), _jsx("path", { d: "M9.5 5.7A10.6 10.6 0 0 1 12 5.5c6 0 9.5 6.5 9.5 6.5a17 17 0 0 1-3.2 4" }), _jsx("path", { d: "M6.2 7.6A17 17 0 0 0 2.5 12s3.5 6.5 9.5 6.5a10.6 10.6 0 0 0 4.3-.9" }), _jsx("path", { d: "M9.9 9.9a3 3 0 0 0 4.2 4.2" })] }));
|
|
10
|
-
}
|
|
11
|
-
export function LockIcon(props) {
|
|
12
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("rect", { x: "5", y: "11", width: "14", height: "9", rx: "1.5" }), _jsx("path", { d: "M8 11V8a4 4 0 0 1 8 0v3" })] }));
|
|
13
|
-
}
|
|
14
|
-
export function UnlockIcon(props) {
|
|
15
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("rect", { x: "5", y: "11", width: "14", height: "9", rx: "1.5" }), _jsx("path", { d: "M8 11V8a4 4 0 0 1 7.6-1.7" })] }));
|
|
16
|
-
}
|
|
17
|
-
export function ChevronUpIcon(props) {
|
|
18
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 14l6-6 6 6" }) }));
|
|
19
|
-
}
|
|
20
|
-
export function ChevronDownIcon(props) {
|
|
21
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 10l6 6 6-6" }) }));
|
|
22
|
-
}
|
|
23
|
-
export function CloseIcon(props) {
|
|
24
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M6 6l12 12M18 6L6 18" }) }));
|
|
25
|
-
}
|
|
26
|
-
export function CursorIcon(props) {
|
|
27
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M5 4l6.5 14.5 2.2-6 6-2.2L5 4Z" }) }));
|
|
28
|
-
}
|
|
29
|
-
export function TextIcon(props) {
|
|
30
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M5 6h14M12 6v13M9 19h6" }) }));
|
|
31
|
-
}
|
|
32
|
-
export function ShapeIcon(props) {
|
|
33
|
-
return (_jsx(Svg, { ...props, children: _jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2" }) }));
|
|
34
|
-
}
|
|
35
|
-
export function CropIcon(props) {
|
|
36
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("path", { d: "M7 2v15a1 1 0 0 0 1 1h15" }), _jsx("path", { d: "M2 7h15a1 1 0 0 1 1 1v15" })] }));
|
|
37
|
-
}
|
|
38
|
-
export function PlusIcon(props) {
|
|
39
|
-
return (_jsx(Svg, { ...props, children: _jsx("path", { d: "M12 5v14M5 12h14" }) }));
|
|
40
|
-
}
|
|
41
|
-
export function NoneIcon(props) {
|
|
42
|
-
// Used for "no fill / transparent" affordance.
|
|
43
|
-
return (_jsxs(Svg, { ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "8" }), _jsx("path", { d: "M6.3 6.3l11.4 11.4" })] }));
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=icons.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/imageEditor/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SVG renderer for an `ImageEditLayer` of kind `image` inside the editor.
|
|
3
|
-
* Resolves the asset path to a blob URL via the host-supplied
|
|
4
|
-
* `resolveAssetUrl` (typically backed by the sidecar container).
|
|
5
|
-
*/
|
|
6
|
-
import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
|
|
7
|
-
interface Props {
|
|
8
|
-
layer: ImageEditLayer & {
|
|
9
|
-
type: 'image';
|
|
10
|
-
};
|
|
11
|
-
canvas: ImageEditCanvas;
|
|
12
|
-
resolveAssetUrl: (path: string) => Promise<string>;
|
|
13
|
-
}
|
|
14
|
-
export declare function EditorImageLayer({ layer, canvas, resolveAssetUrl }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=EditorImageLayer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorImageLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorImageLayer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,kDA6BzE"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* SVG renderer for an `ImageEditLayer` of kind `image` inside the editor.
|
|
4
|
-
* Resolves the asset path to a blob URL via the host-supplied
|
|
5
|
-
* `resolveAssetUrl` (typically backed by the sidecar container).
|
|
6
|
-
*/
|
|
7
|
-
import { useEffect, useState } from 'react';
|
|
8
|
-
export function EditorImageLayer({ layer, canvas, resolveAssetUrl }) {
|
|
9
|
-
const [href, setHref] = useState(null);
|
|
10
|
-
const src = layer.content.src;
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
let cancelled = false;
|
|
13
|
-
resolveAssetUrl(src)
|
|
14
|
-
.then((url) => {
|
|
15
|
-
if (!cancelled)
|
|
16
|
-
setHref(url);
|
|
17
|
-
})
|
|
18
|
-
.catch(() => {
|
|
19
|
-
if (!cancelled)
|
|
20
|
-
setHref(null);
|
|
21
|
-
});
|
|
22
|
-
return () => {
|
|
23
|
-
cancelled = true;
|
|
24
|
-
};
|
|
25
|
-
}, [src, resolveAssetUrl]);
|
|
26
|
-
if (!href)
|
|
27
|
-
return null;
|
|
28
|
-
const p = layer.position;
|
|
29
|
-
const x = typeof p.x === 'number' ? p.x : 0;
|
|
30
|
-
const y = typeof p.y === 'number' ? p.y : 0;
|
|
31
|
-
const width = typeof p.width === 'number' ? p.width : canvas.width;
|
|
32
|
-
const height = typeof p.height === 'number' ? p.height : canvas.height;
|
|
33
|
-
const fit = layer.content.fit ?? 'fill';
|
|
34
|
-
const par = fit === 'cover' ? 'xMidYMid slice' : fit === 'contain' ? 'xMidYMid meet' : 'none';
|
|
35
|
-
return _jsx("image", { href: href, x: x, y: y, width: width, height: height, preserveAspectRatio: par });
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=EditorImageLayer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorImageLayer.js","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorImageLayer.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5C,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAS;IACxE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,eAAe,CAAC,GAAG,CAAC;aACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9F,OAAO,gBAAO,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,GAAI,CAAC;AACnG,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SVG renderer for an `ImageEditLayer` of kind `shape` inside the editor.
|
|
3
|
-
* Mirrors `react/src/layers/ShapeLayer.tsx` minus the animation/anchor
|
|
4
|
-
* logic since the editor authors layers with numeric, top-left positions.
|
|
5
|
-
*/
|
|
6
|
-
import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
|
|
7
|
-
interface Props {
|
|
8
|
-
layer: ImageEditLayer & {
|
|
9
|
-
type: 'shape';
|
|
10
|
-
};
|
|
11
|
-
canvas: ImageEditCanvas;
|
|
12
|
-
}
|
|
13
|
-
export declare function EditorShapeLayer({ layer, canvas: _canvas }: Props): import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=EditorShapeLayer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorShapeLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorShapeLayer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,2CAgDjE"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export function EditorShapeLayer({ layer, canvas: _canvas }) {
|
|
3
|
-
const p = layer.position;
|
|
4
|
-
const x = typeof p.x === 'number' ? p.x : 0;
|
|
5
|
-
const y = typeof p.y === 'number' ? p.y : 0;
|
|
6
|
-
const width = typeof p.width === 'number' ? p.width : 100;
|
|
7
|
-
const height = typeof p.height === 'number' ? p.height : 100;
|
|
8
|
-
const c = layer.content;
|
|
9
|
-
const fill = c.fill ?? 'none';
|
|
10
|
-
const stroke = c.stroke;
|
|
11
|
-
const strokeWidth = c.strokeWidth;
|
|
12
|
-
if (c.shape === 'rect') {
|
|
13
|
-
return (_jsx("rect", { x: x, y: y, width: width, height: height, rx: c.borderRadius, ry: c.borderRadius, fill: fill, stroke: stroke, strokeWidth: strokeWidth }));
|
|
14
|
-
}
|
|
15
|
-
if (c.shape === 'circle') {
|
|
16
|
-
return (_jsx("circle", { cx: x + width / 2, cy: y + height / 2, r: Math.min(width, height) / 2, fill: fill, stroke: stroke, strokeWidth: strokeWidth }));
|
|
17
|
-
}
|
|
18
|
-
return (_jsx("line", { x1: x, y1: y, x2: x + width, y2: y + height, stroke: stroke ?? '#000', strokeWidth: strokeWidth ?? 1 }));
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=EditorShapeLayer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorShapeLayer.js","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorShapeLayer.tsx"],"names":[],"mappings":";AAaA,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAS;IAChE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IACxB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAElC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CACL,eACE,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,CAAC,YAAY,EAClB,EAAE,EAAE,CAAC,CAAC,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,iBACE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EACjB,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAClB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAC9B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IACJ,CAAC;IACD,OAAO,CACL,eACE,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,GAAG,KAAK,EACb,EAAE,EAAE,CAAC,GAAG,MAAM,EACd,MAAM,EAAE,MAAM,IAAI,MAAM,EACxB,WAAW,EAAE,WAAW,IAAI,CAAC,GAC7B,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SVG renderer for an `ImageEditLayer` of kind `text` inside the editor.
|
|
3
|
-
*
|
|
4
|
-
* Multi-line text is laid out as a `<text>` element with one `<tspan>`
|
|
5
|
-
* per line. The first line sits at `y + fontSize` so the visible top
|
|
6
|
-
* of the glyph block aligns with the layer's `y` coordinate (matches
|
|
7
|
-
* what users expect from a top-anchored bounding box).
|
|
8
|
-
*/
|
|
9
|
-
import type { ImageEditCanvas, ImageEditLayer } from '@bendyline/squisq/schemas';
|
|
10
|
-
interface Props {
|
|
11
|
-
layer: ImageEditLayer & {
|
|
12
|
-
type: 'text';
|
|
13
|
-
};
|
|
14
|
-
canvas: ImageEditCanvas;
|
|
15
|
-
}
|
|
16
|
-
export declare function EditorTextLayer({ layer, canvas: _canvas }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=EditorTextLayer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditorTextLayer.d.ts","sourceRoot":"","sources":["../../../src/imageEditor/layers/EditorTextLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,2CA4BhE"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export function EditorTextLayer({ layer, canvas: _canvas }) {
|
|
3
|
-
const p = layer.position;
|
|
4
|
-
const x = typeof p.x === 'number' ? p.x : 0;
|
|
5
|
-
const y = typeof p.y === 'number' ? p.y : 0;
|
|
6
|
-
const { text, style } = layer.content;
|
|
7
|
-
const lineHeight = style.lineHeight ?? 1.4;
|
|
8
|
-
const lineHeightPx = style.fontSize * lineHeight;
|
|
9
|
-
const lines = (text ?? '').split('\n');
|
|
10
|
-
const textAnchor = style.textAlign === 'center' ? 'middle' : style.textAlign === 'right' ? 'end' : 'start';
|
|
11
|
-
return (_jsx("text", { x: x, y: y + style.fontSize, fontFamily: style.fontFamily ?? 'sans-serif', fontSize: style.fontSize, fontWeight: style.fontWeight ?? 'normal', fill: style.color, textAnchor: textAnchor, children: lines.map((line, i) => (_jsx("tspan", { x: x, dy: i === 0 ? 0 : lineHeightPx, children: line || '\u00A0' }, i))) }));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=EditorTextLayer.js.map
|