markdown-flow-ui 0.2.13 → 0.2.15
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/README.md +7 -0
- package/dist/_virtual/index.es3.js +5 -4
- package/dist/_virtual/index.es3.js.map +1 -1
- package/dist/_virtual/index.es4.js +4 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index3.cjs +1 -1
- package/dist/_virtual/index4.cjs +1 -1
- package/dist/assets/markdown-flow-ui.css +10 -1
- package/dist/components/ContentRender/CodeBlock.cjs +1 -1
- package/dist/components/ContentRender/CodeBlock.cjs.map +1 -1
- package/dist/components/ContentRender/CodeBlock.d.ts +5 -0
- package/dist/components/ContentRender/CodeBlock.es.js +41 -38
- package/dist/components/ContentRender/CodeBlock.es.js.map +1 -1
- package/dist/components/ContentRender/ContentRender.cjs +2 -2
- package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
- package/dist/components/ContentRender/ContentRender.d.ts +9 -4
- package/dist/components/ContentRender/ContentRender.es.js +389 -298
- package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
- package/dist/components/ContentRender/IframeSandbox.cjs +7 -7
- package/dist/components/ContentRender/IframeSandbox.cjs.map +1 -1
- package/dist/components/ContentRender/IframeSandbox.d.ts +5 -1
- package/dist/components/ContentRender/IframeSandbox.es.js +311 -266
- package/dist/components/ContentRender/IframeSandbox.es.js.map +1 -1
- package/dist/components/ContentRender/MarkdownFlowInput.cjs +1 -1
- package/dist/components/ContentRender/MarkdownFlowInput.cjs.map +1 -1
- package/dist/components/ContentRender/MarkdownFlowInput.d.ts +5 -1
- package/dist/components/ContentRender/MarkdownFlowInput.es.js +37 -32
- package/dist/components/ContentRender/MarkdownFlowInput.es.js.map +1 -1
- package/dist/components/ContentRender/SandboxApp.cjs +2 -2
- package/dist/components/ContentRender/SandboxApp.cjs.map +1 -1
- package/dist/components/ContentRender/SandboxApp.d.ts +5 -1
- package/dist/components/ContentRender/SandboxApp.es.js +108 -103
- package/dist/components/ContentRender/SandboxApp.es.js.map +1 -1
- package/dist/components/ContentRender/blackboard-vendor.d.ts +1 -1
- package/dist/components/ContentRender/contentRenderI18n.cjs +1 -1
- package/dist/components/ContentRender/contentRenderI18n.cjs.map +1 -1
- package/dist/components/ContentRender/contentRenderI18n.d.ts +6 -1
- package/dist/components/ContentRender/contentRenderI18n.es.js +5 -56
- package/dist/components/ContentRender/contentRenderI18n.es.js.map +1 -1
- package/dist/components/ContentRender/contentRenderI18n.test.d.ts +1 -0
- package/dist/components/ContentRender/index.cjs +1 -1
- package/dist/components/ContentRender/index.d.ts +11 -11
- package/dist/components/ContentRender/index.es.js +1 -2
- package/dist/components/ContentRender/index.es.js.map +1 -1
- package/dist/components/ContentRender/locales/contentRender.json.cjs +2 -0
- package/dist/components/ContentRender/locales/contentRender.json.cjs.map +1 -0
- package/dist/components/ContentRender/locales/contentRender.json.d.ts +90 -0
- package/dist/components/ContentRender/locales/contentRender.json.es.js +11 -0
- package/dist/components/ContentRender/locales/contentRender.json.es.js.map +1 -0
- package/dist/components/ContentRender/plugins/CustomVariable.cjs +1 -1
- package/dist/components/ContentRender/plugins/CustomVariable.cjs.map +1 -1
- package/dist/components/ContentRender/plugins/CustomVariable.d.ts +7 -3
- package/dist/components/ContentRender/plugins/CustomVariable.es.js +165 -151
- package/dist/components/ContentRender/plugins/CustomVariable.es.js.map +1 -1
- package/dist/components/ContentRender/plugins/MermaidChart.cjs +1 -1
- package/dist/components/ContentRender/plugins/MermaidChart.cjs.map +1 -1
- package/dist/components/ContentRender/plugins/MermaidChart.d.ts +1 -0
- package/dist/components/ContentRender/plugins/MermaidChart.es.js +68 -44
- package/dist/components/ContentRender/plugins/MermaidChart.es.js.map +1 -1
- package/dist/components/MarkdownFlow/MarkdownFlow.cjs +1 -1
- package/dist/components/MarkdownFlow/MarkdownFlow.cjs.map +1 -1
- package/dist/components/MarkdownFlow/MarkdownFlow.d.ts +12 -4
- package/dist/components/MarkdownFlow/MarkdownFlow.es.js +51 -39
- package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
- package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs +1 -1
- package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs.map +1 -1
- package/dist/components/MarkdownFlow/ScrollToBottomButton.d.ts +31 -1
- package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js +46 -17
- package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js.map +1 -1
- package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs +2 -0
- package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs.map +1 -0
- package/dist/components/MarkdownFlow/ScrollToBottomControl.d.ts +18 -0
- package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js +47 -0
- package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js.map +1 -0
- package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs +1 -1
- package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs.map +1 -1
- package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.d.ts +1 -1
- package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js +33 -52
- package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js.map +1 -1
- package/dist/components/MarkdownFlow/index.cjs +1 -1
- package/dist/components/MarkdownFlow/index.d.ts +9 -6
- package/dist/components/MarkdownFlow/index.es.js +6 -6
- package/dist/components/MarkdownFlow/index.es.js.map +1 -1
- package/dist/components/MarkdownFlow/useScrollToBottom.cjs +1 -1
- package/dist/components/MarkdownFlow/useScrollToBottom.cjs.map +1 -1
- package/dist/components/MarkdownFlow/useScrollToBottom.d.ts +40 -8
- package/dist/components/MarkdownFlow/useScrollToBottom.es.js +352 -83
- package/dist/components/MarkdownFlow/useScrollToBottom.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.d.ts +5 -3
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +371 -324
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomDialog.d.ts +10 -0
- package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js +22 -19
- package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/CustomPopover.d.ts +8 -0
- package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js +19 -15
- package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.d.ts +4 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js +99 -93
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/ImageInject.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js +183 -182
- package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js +107 -103
- package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +106 -106
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js +64 -63
- package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js +13 -13
- package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js +12 -12
- package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/editor-context.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/editorI18n.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/editorI18n.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/editorI18n.d.ts +290 -0
- package/dist/components/MarkdownFlowEditor/editorI18n.es.js +12 -8
- package/dist/components/MarkdownFlowEditor/editorI18n.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/editorI18n.test.d.ts +1 -0
- package/dist/components/MarkdownFlowEditor/index.d.ts +6 -6
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +2 -0
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs.map +1 -0
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +72 -0
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +140 -0
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js.map +1 -0
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +2 -0
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +118 -114
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +2 -0
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +118 -114
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +2 -0
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs.map +1 -0
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +72 -0
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +140 -0
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js.map +1 -0
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +2 -0
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +70 -66
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js +40 -35
- package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js +27 -23
- package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs +2 -0
- package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs.map +1 -0
- package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.d.ts +7 -0
- package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js +12 -0
- package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js.map +1 -0
- package/dist/components/MarkdownFlowEditor/utils.d.ts +1 -1
- package/dist/components/Slide/MarkdownSlideScaling.cjs +1 -1
- package/dist/components/Slide/MarkdownSlideScaling.cjs.map +1 -1
- package/dist/components/Slide/MarkdownSlideScaling.d.ts +1 -1
- package/dist/components/Slide/MarkdownSlideScaling.es.js +20 -20
- package/dist/components/Slide/MarkdownSlideScaling.es.js.map +1 -1
- package/dist/components/Slide/MobilePlayerSettingsSheet.cjs +1 -1
- package/dist/components/Slide/MobilePlayerSettingsSheet.cjs.map +1 -1
- package/dist/components/Slide/MobilePlayerSettingsSheet.d.ts +7 -2
- package/dist/components/Slide/MobilePlayerSettingsSheet.es.js +61 -57
- package/dist/components/Slide/MobilePlayerSettingsSheet.es.js.map +1 -1
- package/dist/components/Slide/Player.cjs +1 -1
- package/dist/components/Slide/Player.cjs.map +1 -1
- package/dist/components/Slide/Player.d.ts +6 -6
- package/dist/components/Slide/Player.es.js +547 -541
- package/dist/components/Slide/Player.es.js.map +1 -1
- package/dist/components/Slide/Slide.cjs +1 -1
- package/dist/components/Slide/Slide.cjs.map +1 -1
- package/dist/components/Slide/Slide.d.ts +14 -12
- package/dist/components/Slide/Slide.es.js +745 -726
- package/dist/components/Slide/Slide.es.js.map +1 -1
- package/dist/components/Slide/SubtitleOverlay.cjs +1 -1
- package/dist/components/Slide/SubtitleOverlay.cjs.map +1 -1
- package/dist/components/Slide/SubtitleOverlay.d.ts +2 -2
- package/dist/components/Slide/SubtitleOverlay.es.js +17 -17
- package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
- package/dist/components/Slide/diff-utils.d.ts +1 -1
- package/dist/components/Slide/index.d.ts +12 -12
- package/dist/components/Slide/locales/slide.json.cjs +2 -0
- package/dist/components/Slide/locales/slide.json.cjs.map +1 -0
- package/dist/components/Slide/locales/slide.json.d.ts +205 -0
- package/dist/components/Slide/locales/slide.json.es.js +11 -0
- package/dist/components/Slide/locales/slide.json.es.js.map +1 -0
- package/dist/components/Slide/slideI18n.cjs +1 -1
- package/dist/components/Slide/slideI18n.cjs.map +1 -1
- package/dist/components/Slide/slideI18n.d.ts +6 -3
- package/dist/components/Slide/slideI18n.es.js +10 -155
- package/dist/components/Slide/slideI18n.es.js.map +1 -1
- package/dist/components/Slide/useSlide.d.ts +1 -1
- package/dist/components/Slide/utils/appendedMarkerAdvance.d.ts +1 -1
- package/dist/components/Slide/utils/audioSegments.d.ts +1 -1
- package/dist/components/Slide/utils/interactionResolution.d.ts +2 -2
- package/dist/components/Slide/utils/listenModeElementList.d.ts +2 -2
- package/dist/components/Slide/utils/markdownScaling.d.ts +1 -1
- package/dist/components/Slide/utils/playerCustomActions.d.ts +2 -2
- package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.map +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.d.ts +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js +20 -20
- package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js.map +1 -1
- package/dist/components/Slide/utils/runStreamFixture.d.ts +1 -1
- package/dist/components/Slide/utils/segmentSeek.d.ts +1 -1
- package/dist/components/Slide/utils/silentStepAutoAdvance.d.ts +1 -1
- package/dist/components/Slide/utils/streamingNavigation.d.ts +1 -1
- package/dist/components/Slide/utils/subtitleCue.d.ts +1 -1
- package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +1 -1
- package/dist/components/index.d.ts +22 -18
- package/dist/components/ui/button.cjs +1 -1
- package/dist/components/ui/button.cjs.map +1 -1
- package/dist/components/ui/button.es.js +12 -13
- package/dist/components/ui/button.es.js.map +1 -1
- package/dist/components/ui/checkbox.cjs +1 -1
- package/dist/components/ui/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox.es.js +35 -35
- package/dist/components/ui/checkbox.es.js.map +1 -1
- package/dist/components/ui/dialog.cjs +1 -1
- package/dist/components/ui/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog.d.ts +5 -1
- package/dist/components/ui/dialog.es.js +37 -37
- package/dist/components/ui/dialog.es.js.map +1 -1
- package/dist/components/ui/input.cjs +1 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.es.js +4 -4
- package/dist/components/ui/input.es.js.map +1 -1
- package/dist/components/ui/inputGroup/button.cjs +1 -1
- package/dist/components/ui/inputGroup/button.cjs.map +1 -1
- package/dist/components/ui/inputGroup/button.es.js +9 -10
- package/dist/components/ui/inputGroup/button.es.js.map +1 -1
- package/dist/components/ui/inputGroup/input-group.cjs +1 -1
- package/dist/components/ui/inputGroup/input-group.cjs.map +1 -1
- package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
- package/dist/components/ui/inputGroup/input-group.es.js +10 -10
- package/dist/components/ui/inputGroup/input-group.es.js.map +1 -1
- package/dist/components/ui/inputGroup/textarea.cjs +1 -1
- package/dist/components/ui/inputGroup/textarea.cjs.map +1 -1
- package/dist/components/ui/inputGroup/textarea.es.js +3 -3
- package/dist/components/ui/inputGroup/textarea.es.js.map +1 -1
- package/dist/components/ui/loading-overlay-card.cjs +2 -2
- package/dist/components/ui/loading-overlay-card.cjs.map +1 -1
- package/dist/components/ui/loading-overlay-card.es.js +11 -11
- package/dist/components/ui/loading-overlay-card.es.js.map +1 -1
- package/dist/components/ui/popover.cjs +1 -1
- package/dist/components/ui/popover.cjs.map +1 -1
- package/dist/components/ui/popover.es.js +6 -6
- package/dist/components/ui/popover.es.js.map +1 -1
- package/dist/components/ui/tooltip.cjs +1 -1
- package/dist/components/ui/tooltip.cjs.map +1 -1
- package/dist/components/ui/tooltip.es.js +16 -16
- package/dist/components/ui/tooltip.es.js.map +1 -1
- package/dist/editor.d.ts +2 -2
- package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.es.js +22 -19
- package/dist/index.es.js.map +1 -1
- package/dist/lib/locale.cjs +1 -1
- package/dist/lib/locale.cjs.map +1 -1
- package/dist/lib/locale.d.ts +5 -1
- package/dist/lib/locale.es.js +26 -13
- package/dist/lib/locale.es.js.map +1 -1
- package/dist/lib/locale.test.d.ts +1 -0
- package/dist/lib/useDetachedLanguage.cjs +2 -0
- package/dist/lib/useDetachedLanguage.cjs.map +1 -0
- package/dist/lib/useDetachedLanguage.d.ts +3 -0
- package/dist/lib/useDetachedLanguage.es.js +25 -0
- package/dist/lib/useDetachedLanguage.es.js.map +1 -0
- package/dist/lib/useResolvedDirection.cjs +2 -0
- package/dist/lib/useResolvedDirection.cjs.map +1 -0
- package/dist/lib/useResolvedDirection.d.ts +6 -0
- package/dist/lib/useResolvedDirection.es.js +37 -0
- package/dist/lib/useResolvedDirection.es.js.map +1 -0
- package/dist/markdown-flow-ui-lib.css +1 -1
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js +6 -6
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-context/dist/index.es.js +21 -21
- package/dist/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs +2 -2
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js +100 -100
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js +38 -38
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js +9 -9
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js +95 -95
- package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js +48 -48
- package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js +6 -6
- package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js +9 -9
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js +17 -17
- package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js +100 -100
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -1
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs.map +1 -1
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js +6 -6
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js.map +1 -1
- package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs +1 -1
- package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs.map +1 -1
- package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js +27 -27
- package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js.map +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.cjs → chevrons-down.cjs} +2 -2
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.cjs.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.es.js → chevrons-down.es.js} +6 -3
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.es.js.map +1 -0
- package/dist/node_modules/rc-input/es/BaseInput.cjs +1 -1
- package/dist/node_modules/rc-input/es/BaseInput.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/ResizableTextArea.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/ResizableTextArea.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/TextArea.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/TextArea.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/index.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/index.es.js +1 -1
- package/dist/node_modules/react-markdown/lib/index.cjs +1 -1
- package/dist/node_modules/react-markdown/lib/index.cjs.map +1 -1
- package/dist/node_modules/react-markdown/lib/index.es.js +39 -39
- package/dist/node_modules/react-markdown/lib/index.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js +1 -1
- package/dist/renderer.cjs +1 -1
- package/dist/renderer.d.ts +18 -17
- package/dist/renderer.es.js +20 -17
- package/dist/renderer.es.js.map +1 -1
- package/dist/scroll.cjs +2 -0
- package/dist/scroll.cjs.map +1 -0
- package/dist/scroll.d.ts +6 -0
- package/dist/scroll.es.js +9 -0
- package/dist/scroll.es.js.map +1 -0
- package/dist/slide.d.ts +3 -3
- package/package.json +13 -2
- package/dist/_virtual/jsx-runtime.cjs +0 -2
- package/dist/_virtual/jsx-runtime.cjs.map +0 -1
- package/dist/_virtual/jsx-runtime.es.js +0 -6
- package/dist/_virtual/jsx-runtime.es.js.map +0 -1
- package/dist/_virtual/jsx-runtime.es2.js +0 -5
- package/dist/_virtual/jsx-runtime.es2.js.map +0 -1
- package/dist/_virtual/jsx-runtime2.cjs +0 -2
- package/dist/_virtual/jsx-runtime2.cjs.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.cjs +0 -2
- package/dist/_virtual/react-jsx-runtime.development.cjs.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
- package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.cjs +0 -2
- package/dist/_virtual/react-jsx-runtime.production.cjs.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
- package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
- package/dist/lib/localeTextMap.cjs +0 -2
- package/dist/lib/localeTextMap.cjs.map +0 -1
- package/dist/lib/localeTextMap.es.js +0 -5
- package/dist/lib/localeTextMap.es.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.es.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -24
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -409
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs +0 -10
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
- package/dist/node_modules/react/jsx-runtime.cjs +0 -2
- package/dist/node_modules/react/jsx-runtime.cjs.map +0 -1
- package/dist/node_modules/react/jsx-runtime.es.js +0 -11
- package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageInject.cjs","sources":["../../../../src/components/MarkdownFlowEditor/components/ImageInject.tsx"],"sourcesContent":["/** inject image to mc-editor */\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { Button } from \"../../ui/button\";\nimport { Input } from \"../../ui/input\";\nimport { useTranslation } from \"react-i18next\";\nimport { Loader2, Upload } from \"lucide-react\";\n\nimport EditorContext from \"../editor-context\";\nimport { isValidImageUrl, sanitizeImageUrl } from \"../utils/image\";\nimport { UploadProps, UploadRequestOption } from \"../uploadTypes\";\n\nexport type ImageResource = {\n resourceUrl: string;\n resourceTitle?: string;\n scalePercent?: number;\n};\n\nexport interface ImageInjectProps {\n value?: Partial<ImageResource>;\n onSelect: (resource: ImageResource) => void;\n uploadProps?: UploadProps;\n}\n\nconst ImageInject = React.forwardRef<HTMLDivElement, ImageInjectProps>(\n ({ value, onSelect, uploadProps }, ref) => {\n const { t } = useTranslation();\n const { setDialogOpen } = useContext(EditorContext);\n\n const [resource, setResource] = useState<ImageResource>({\n resourceUrl: value?.resourceUrl ?? \"\",\n resourceTitle: value?.resourceTitle ?? \"\",\n scalePercent: value?.scalePercent ?? 100,\n });\n const [previewLoaded, setPreviewLoaded] = useState<boolean>(\n Boolean(value?.resourceUrl)\n );\n const [tempUrl, setTempUrl] = useState<string>(value?.resourceUrl ?? \"\");\n const [scale, setScale] = useState<number | undefined>(\n value?.scalePercent ?? 100\n );\n const [scaleInputValue, setScaleInputValue] = useState<string>(\n value?.scalePercent !== undefined ? String(value.scalePercent) : \"100\"\n );\n const [errorTip, setErrorTip] = useState<string>(\"\");\n const [uploadStatus, setUploadStatus] = useState<\n \"idle\" | \"loading\" | \"success\" | \"error\"\n >(\"idle\");\n const isUploading = uploadStatus === \"loading\";\n\n useEffect(() => {\n if (value?.resourceUrl) {\n setResource((prev) => ({\n ...prev,\n resourceUrl: value.resourceUrl ?? \"\",\n resourceTitle: value.resourceTitle ?? prev.resourceTitle ?? \"\",\n scalePercent: value.scalePercent ?? prev.scalePercent ?? 100,\n }));\n setTempUrl(value.resourceUrl ?? \"\");\n const resolvedScale =\n value.scalePercent !== undefined ? value.scalePercent : 100;\n setScale(resolvedScale);\n setScaleInputValue(\n value.scalePercent !== undefined\n ? String(value.scalePercent)\n : String(resolvedScale)\n );\n setPreviewLoaded(true);\n }\n setUploadStatus(\"idle\");\n }, [value]);\n\n const handleCancel = () => {\n if (isUploading) return;\n setDialogOpen(false);\n };\n\n const applyImage = (url: string, name?: string) => {\n const sanitizedUrl = sanitizeImageUrl(url);\n setResource({\n resourceUrl: sanitizedUrl,\n resourceTitle: name || resource.resourceTitle || t(\"imageDefaultTitle\"),\n scalePercent: scale,\n });\n setTempUrl(sanitizedUrl);\n setPreviewLoaded(true);\n setErrorTip(\"\");\n if (uploadStatus === \"loading\") {\n setUploadStatus(\"success\");\n }\n };\n\n const handleSelect = () => {\n if (isUploading) return;\n if (!resource.resourceUrl) return;\n onSelect({\n resourceUrl: resource.resourceUrl,\n resourceTitle:\n resource.resourceTitle || t(\"imageDefaultTitle\", \"Image name\"),\n scalePercent: scale,\n });\n setDialogOpen(false);\n };\n\n const handleUrlChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const url = e.target.value.trim();\n setTempUrl(url);\n setPreviewLoaded(false);\n setErrorTip(\"\");\n };\n\n const handleTitleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setResource((prev) => ({\n ...prev,\n resourceTitle: e.target.value,\n }));\n };\n\n const handleScaleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value.replace(/[^\\d]/g, \"\");\n setScaleInputValue(inputValue);\n if (!inputValue) {\n setScale(undefined);\n setResource((prev) => ({\n ...prev,\n scalePercent: undefined,\n }));\n return;\n }\n const numeric = Math.max(1, Math.min(1000, Number(inputValue)));\n setScale(numeric);\n setResource((prev) => ({\n ...prev,\n scalePercent: numeric,\n }));\n };\n\n const handleRun = () => {\n if (isUploading) return;\n setUploadStatus(\"idle\");\n if (!tempUrl) {\n setErrorTip(t(\"imageUrlRequired\", \"Please enter image URL\"));\n return;\n }\n if (!isValidImageUrl(tempUrl)) {\n setErrorTip(t(\"imageInvalidUrl\", \"Please enter a valid image URL\"));\n return;\n }\n applyImage(tempUrl);\n if (!resource.resourceTitle && tempUrl) {\n try {\n const parsed = new URL(tempUrl);\n const name = decodeURIComponent(\n parsed.pathname.split(\"/\").filter(Boolean).pop() ?? \"\"\n );\n if (name) {\n setResource((prev) => ({\n ...prev,\n resourceTitle: name,\n }));\n }\n } catch (error) {\n // ignore\n console.error(error);\n }\n }\n };\n\n const finalize = (url: string, fileName: string) => {\n setUploadStatus(\"success\");\n applyImage(url, fileName);\n };\n\n const handleUploadError = (error: any, currentFile: File) => {\n const message =\n error?.message || t(\"imageUploadError\", \"Upload failed, please retry\");\n setErrorTip(message);\n setUploadStatus(\"error\");\n setPreviewLoaded(Boolean(resource.resourceUrl));\n uploadProps?.onError?.(error, currentFile);\n };\n\n const runCustomRequest = async (targetFile: File) => {\n const options: UploadRequestOption = {\n file: targetFile,\n filename: uploadProps?.name,\n data:\n typeof uploadProps?.data === \"function\"\n ? await uploadProps.data(targetFile)\n : uploadProps?.data,\n headers: uploadProps?.headers,\n withCredentials: uploadProps?.withCredentials,\n action:\n typeof uploadProps?.action === \"function\"\n ? await uploadProps.action(targetFile)\n : uploadProps?.action,\n onProgress: (event) => uploadProps?.onProgress?.(event, targetFile),\n onError: (error) => handleUploadError(error, targetFile),\n onSuccess: (response: any) => {\n uploadProps?.onSuccess?.(response, targetFile);\n const url =\n typeof response === \"string\"\n ? response\n : (response?.url ?? response?.data?.url);\n if (url) {\n finalize(url, targetFile.name);\n } else {\n handleUploadError(new Error(\"INVALID_RESPONSE\"), targetFile);\n }\n },\n };\n uploadProps?.customRequest?.(options);\n };\n\n const runActionUpload = async (targetFile: File) => {\n const action =\n typeof uploadProps?.action === \"function\"\n ? await uploadProps.action(targetFile)\n : uploadProps?.action;\n if (!action) {\n finalize(URL.createObjectURL(targetFile), targetFile.name);\n return;\n }\n\n try {\n const formData = new FormData();\n formData.append(uploadProps?.name ?? \"file\", targetFile);\n const extraData =\n typeof uploadProps?.data === \"function\"\n ? await uploadProps.data(targetFile)\n : uploadProps?.data;\n if (extraData) {\n Object.entries(extraData).forEach(([key, val]) => {\n formData.append(key, val as any);\n });\n }\n\n const response = await fetch(action, {\n method: \"POST\",\n body: formData,\n headers: uploadProps?.headers,\n credentials: uploadProps?.withCredentials ? \"include\" : \"same-origin\",\n });\n const result = await response.json();\n uploadProps?.onSuccess?.(result, targetFile);\n const url = typeof result === \"string\" ? result : result?.data;\n\n if (url) {\n finalize(url, targetFile.name);\n } else {\n handleUploadError(new Error(\"INVALID_RESPONSE\"), targetFile);\n }\n } catch (error: any) {\n handleUploadError(error, targetFile);\n }\n };\n\n const triggerUpload = async (file: File) => {\n try {\n setErrorTip(\"\");\n let candidate: File | Blob | boolean | void = file;\n if (uploadProps?.beforeUpload) {\n candidate = await uploadProps.beforeUpload(file);\n if (candidate === false) {\n return;\n }\n }\n\n if (candidate instanceof Blob && !(candidate instanceof File)) {\n candidate = new File([candidate], file.name, {\n type: candidate.type || file.type,\n });\n }\n\n const finalFile = candidate instanceof File ? candidate : file;\n setUploadStatus(\"loading\");\n setPreviewLoaded(false);\n\n if (uploadProps?.customRequest) {\n await runCustomRequest(finalFile);\n return;\n }\n if (uploadProps?.action) {\n await runActionUpload(finalFile);\n return;\n }\n\n const localUrl = URL.createObjectURL(finalFile);\n finalize(localUrl, finalFile.name);\n uploadProps?.onSuccess?.({ url: localUrl }, finalFile);\n } catch (error: any) {\n setUploadStatus(\"error\");\n handleUploadError(error, file);\n }\n };\n\n const onFileInputChange = async (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const file = event.target.files?.[0];\n if (!file) return;\n await triggerUpload(file);\n event.target.value = \"\";\n };\n\n const scaleInput = useMemo(\n () => (\n <div className=\"flex items-center gap-2\">\n <Input\n type=\"text\"\n value={scaleInputValue}\n onChange={handleScaleChange}\n className=\"w-24\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n />\n <span>%</span>\n </div>\n ),\n [scaleInputValue]\n );\n\n return (\n <div ref={ref} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageUrlLabel\", \"URL\")}\n </label>\n <div className=\"flex gap-2\">\n <Input\n type=\"text\"\n placeholder={t(\"imageUrlPlaceholder\", \"Please enter image URL\")}\n value={tempUrl}\n onChange={handleUrlChange}\n autoComplete=\"off\"\n />\n <Button\n className=\"h-8\"\n variant=\"outline\"\n type=\"button\"\n onClick={handleRun}\n >\n {t(\"imageRunButton\", \"Preview\")}\n </Button>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageUploadLabel\", \"Upload\")}\n </label>\n <label\n className={`relative group flex h-48 w-full flex-col items-center justify-center overflow-hidden rounded-lg border border-dashed transition-colors ${\n previewLoaded ? \"bg-muted/40\" : \"bg-muted/10\"\n } ${\n isUploading\n ? \"cursor-wait opacity-80 pointer-events-none\"\n : \"cursor-pointer\"\n }`}\n >\n {isUploading && (\n <div className=\"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 bg-background/80\">\n <Loader2 className=\"h-6 w-6 animate-spin text-primary\" />\n <span className=\"text-sm text-muted-foreground\">\n {t(\"imageUploading\", \"Uploading...\")}\n </span>\n </div>\n )}\n {previewLoaded && resource.resourceUrl ? (\n <>\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={resource.resourceUrl}\n alt={resource.resourceTitle || \"preview\"}\n className=\"h-full w-full object-contain\"\n />\n {!isUploading && (\n <div className=\"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-2 bg-[#D7D7D7] opacity-0 transition-opacity duration-200 group-hover:opacity-100\">\n <Upload\n className=\"h-6 w-6\"\n style={{\n color: \"var(--base-muted-foreground, #737373)\",\n }}\n />\n <span\n className=\"text-sm\"\n style={{\n color: \"var(--base-muted-foreground, #737373)\",\n }}\n >\n {t(\n \"imageUploadPlaceholder\",\n \"Drag files or click to upload\"\n )}\n </span>\n </div>\n )}\n </>\n ) : (\n <div className=\"flex flex-col items-center gap-2 text-sm text-muted-foreground\">\n <Upload className=\"h-6 w-6\" />\n <span>\n {t(\"imageUploadPlaceholder\", \"Drag files or click to upload\")}\n </span>\n </div>\n )}\n <input\n type=\"file\"\n accept=\"image/*\"\n className=\"hidden\"\n disabled={isUploading}\n onChange={onFileInputChange}\n />\n </label>\n {uploadStatus === \"success\" && (\n <p className=\"text-xs text-muted-foreground\">\n {t(\"imageUploadSuccess\", \"Upload complete\")}\n </p>\n )}\n </div>\n\n {previewLoaded && resource.resourceUrl && (\n <>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageTitleLabel\", \"Image Title\")}\n </label>\n <Input\n type=\"text\"\n placeholder={t(\n \"imageTitlePlaceholder\",\n \"Please enter image title\"\n )}\n value={resource.resourceTitle || \"\"}\n onChange={handleTitleChange}\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageScaleLabel\", \"Scale\")}\n </label>\n {scaleInput}\n </div>\n </>\n )}\n\n {!!errorTip && <p className=\"text-xs text-destructive\">{errorTip}</p>}\n\n <div className=\"flex justify-end gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleCancel}\n disabled={isUploading}\n >\n {t(\"imageCancelButton\", \"Cancel\")}\n </Button>\n <Button\n className=\"h-8\"\n onClick={handleSelect}\n disabled={!resource?.resourceUrl || isUploading}\n >\n {t(\"imageUseButton\", \"Use Image\")}\n </Button>\n </div>\n </div>\n );\n }\n);\n\nImageInject.displayName = \"ImageInject\";\n\nexport default ImageInject;\n"],"names":["ImageInject","React","value","onSelect","uploadProps","ref","t","useTranslation","setDialogOpen","useContext","EditorContext","resource","setResource","useState","previewLoaded","setPreviewLoaded","tempUrl","setTempUrl","scale","setScale","scaleInputValue","setScaleInputValue","errorTip","setErrorTip","uploadStatus","setUploadStatus","isUploading","useEffect","prev","resolvedScale","handleCancel","applyImage","url","name","sanitizedUrl","sanitizeImageUrl","handleSelect","handleUrlChange","handleTitleChange","handleScaleChange","inputValue","numeric","handleRun","isValidImageUrl","parsed","error","finalize","fileName","handleUploadError","currentFile","message","runCustomRequest","targetFile","options","event","response","runActionUpload","action","formData","extraData","key","val","result","triggerUpload","file","candidate","finalFile","localUrl","onFileInputChange","scaleInput","useMemo","jsxs","jsx","Input","Button","Loader2","Fragment","Upload"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImageInject.cjs","sources":["../../../../src/components/MarkdownFlowEditor/components/ImageInject.tsx"],"sourcesContent":["/** inject image to mc-editor */\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { Button } from \"../../ui/button\";\nimport { Input } from \"../../ui/input\";\nimport { useTranslation } from \"react-i18next\";\nimport { Loader2, Upload } from \"lucide-react\";\n\nimport EditorContext from \"../editor-context\";\nimport { isValidImageUrl, sanitizeImageUrl } from \"../utils/image\";\nimport { UploadProps, UploadRequestOption } from \"../uploadTypes\";\n\nexport type ImageResource = {\n resourceUrl: string;\n resourceTitle?: string;\n scalePercent?: number;\n};\n\nexport interface ImageInjectProps {\n value?: Partial<ImageResource>;\n onSelect: (resource: ImageResource) => void;\n uploadProps?: UploadProps;\n}\n\nconst ImageInject = React.forwardRef<HTMLDivElement, ImageInjectProps>(\n ({ value, onSelect, uploadProps }, ref) => {\n const { t } = useTranslation();\n const { setDialogOpen } = useContext(EditorContext);\n\n const [resource, setResource] = useState<ImageResource>({\n resourceUrl: value?.resourceUrl ?? \"\",\n resourceTitle: value?.resourceTitle ?? \"\",\n scalePercent: value?.scalePercent ?? 100,\n });\n const [previewLoaded, setPreviewLoaded] = useState<boolean>(\n Boolean(value?.resourceUrl)\n );\n const [tempUrl, setTempUrl] = useState<string>(value?.resourceUrl ?? \"\");\n const [scale, setScale] = useState<number | undefined>(\n value?.scalePercent ?? 100\n );\n const [scaleInputValue, setScaleInputValue] = useState<string>(\n value?.scalePercent !== undefined ? String(value.scalePercent) : \"100\"\n );\n const [errorTip, setErrorTip] = useState<string>(\"\");\n const [uploadStatus, setUploadStatus] = useState<\n \"idle\" | \"loading\" | \"success\" | \"error\"\n >(\"idle\");\n const isUploading = uploadStatus === \"loading\";\n\n useEffect(() => {\n if (value?.resourceUrl) {\n setResource((prev) => ({\n ...prev,\n resourceUrl: value.resourceUrl ?? \"\",\n resourceTitle: value.resourceTitle ?? prev.resourceTitle ?? \"\",\n scalePercent: value.scalePercent ?? prev.scalePercent ?? 100,\n }));\n setTempUrl(value.resourceUrl ?? \"\");\n const resolvedScale =\n value.scalePercent !== undefined ? value.scalePercent : 100;\n setScale(resolvedScale);\n setScaleInputValue(\n value.scalePercent !== undefined\n ? String(value.scalePercent)\n : String(resolvedScale)\n );\n setPreviewLoaded(true);\n }\n setUploadStatus(\"idle\");\n }, [value]);\n\n const handleCancel = () => {\n if (isUploading) return;\n setDialogOpen(false);\n };\n\n const applyImage = (url: string, name?: string) => {\n const sanitizedUrl = sanitizeImageUrl(url);\n setResource({\n resourceUrl: sanitizedUrl,\n resourceTitle: name || resource.resourceTitle || t(\"imageDefaultTitle\"),\n scalePercent: scale,\n });\n setTempUrl(sanitizedUrl);\n setPreviewLoaded(true);\n setErrorTip(\"\");\n if (uploadStatus === \"loading\") {\n setUploadStatus(\"success\");\n }\n };\n\n const handleSelect = () => {\n if (isUploading) return;\n if (!resource.resourceUrl) return;\n onSelect({\n resourceUrl: resource.resourceUrl,\n resourceTitle:\n resource.resourceTitle || t(\"imageDefaultTitle\", \"Image name\"),\n scalePercent: scale,\n });\n setDialogOpen(false);\n };\n\n const handleUrlChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const url = e.target.value.trim();\n setTempUrl(url);\n setPreviewLoaded(false);\n setErrorTip(\"\");\n };\n\n const handleTitleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setResource((prev) => ({\n ...prev,\n resourceTitle: e.target.value,\n }));\n };\n\n const handleScaleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value.replace(/[^\\d]/g, \"\");\n setScaleInputValue(inputValue);\n if (!inputValue) {\n setScale(undefined);\n setResource((prev) => ({\n ...prev,\n scalePercent: undefined,\n }));\n return;\n }\n const numeric = Math.max(1, Math.min(1000, Number(inputValue)));\n setScale(numeric);\n setResource((prev) => ({\n ...prev,\n scalePercent: numeric,\n }));\n };\n\n const handleRun = () => {\n if (isUploading) return;\n setUploadStatus(\"idle\");\n if (!tempUrl) {\n setErrorTip(t(\"imageUrlRequired\", \"Please enter image URL\"));\n return;\n }\n if (!isValidImageUrl(tempUrl)) {\n setErrorTip(t(\"imageInvalidUrl\", \"Please enter a valid image URL\"));\n return;\n }\n applyImage(tempUrl);\n if (!resource.resourceTitle && tempUrl) {\n try {\n const parsed = new URL(tempUrl);\n const name = decodeURIComponent(\n parsed.pathname.split(\"/\").filter(Boolean).pop() ?? \"\"\n );\n if (name) {\n setResource((prev) => ({\n ...prev,\n resourceTitle: name,\n }));\n }\n } catch (error) {\n // ignore\n console.error(error);\n }\n }\n };\n\n const finalize = (url: string, fileName: string) => {\n setUploadStatus(\"success\");\n applyImage(url, fileName);\n };\n\n const handleUploadError = (error: any, currentFile: File) => {\n const message =\n error?.message || t(\"imageUploadError\", \"Upload failed, please retry\");\n setErrorTip(message);\n setUploadStatus(\"error\");\n setPreviewLoaded(Boolean(resource.resourceUrl));\n uploadProps?.onError?.(error, currentFile);\n };\n\n const runCustomRequest = async (targetFile: File) => {\n const options: UploadRequestOption = {\n file: targetFile,\n filename: uploadProps?.name,\n data:\n typeof uploadProps?.data === \"function\"\n ? await uploadProps.data(targetFile)\n : uploadProps?.data,\n headers: uploadProps?.headers,\n withCredentials: uploadProps?.withCredentials,\n action:\n typeof uploadProps?.action === \"function\"\n ? await uploadProps.action(targetFile)\n : uploadProps?.action,\n onProgress: (event) => uploadProps?.onProgress?.(event, targetFile),\n onError: (error) => handleUploadError(error, targetFile),\n onSuccess: (response: any) => {\n uploadProps?.onSuccess?.(response, targetFile);\n const url =\n typeof response === \"string\"\n ? response\n : (response?.url ?? response?.data?.url);\n if (url) {\n finalize(url, targetFile.name);\n } else {\n handleUploadError(new Error(\"INVALID_RESPONSE\"), targetFile);\n }\n },\n };\n uploadProps?.customRequest?.(options);\n };\n\n const runActionUpload = async (targetFile: File) => {\n const action =\n typeof uploadProps?.action === \"function\"\n ? await uploadProps.action(targetFile)\n : uploadProps?.action;\n if (!action) {\n finalize(URL.createObjectURL(targetFile), targetFile.name);\n return;\n }\n\n try {\n const formData = new FormData();\n formData.append(uploadProps?.name ?? \"file\", targetFile);\n const extraData =\n typeof uploadProps?.data === \"function\"\n ? await uploadProps.data(targetFile)\n : uploadProps?.data;\n if (extraData) {\n Object.entries(extraData).forEach(([key, val]) => {\n formData.append(key, val as any);\n });\n }\n\n const response = await fetch(action, {\n method: \"POST\",\n body: formData,\n headers: uploadProps?.headers,\n credentials: uploadProps?.withCredentials ? \"include\" : \"same-origin\",\n });\n const result = await response.json();\n uploadProps?.onSuccess?.(result, targetFile);\n const url = typeof result === \"string\" ? result : result?.data;\n\n if (url) {\n finalize(url, targetFile.name);\n } else {\n handleUploadError(new Error(\"INVALID_RESPONSE\"), targetFile);\n }\n } catch (error: any) {\n handleUploadError(error, targetFile);\n }\n };\n\n const triggerUpload = async (file: File) => {\n try {\n setErrorTip(\"\");\n let candidate: File | Blob | boolean | void = file;\n if (uploadProps?.beforeUpload) {\n candidate = await uploadProps.beforeUpload(file);\n if (candidate === false) {\n return;\n }\n }\n\n if (candidate instanceof Blob && !(candidate instanceof File)) {\n candidate = new File([candidate], file.name, {\n type: candidate.type || file.type,\n });\n }\n\n const finalFile = candidate instanceof File ? candidate : file;\n setUploadStatus(\"loading\");\n setPreviewLoaded(false);\n\n if (uploadProps?.customRequest) {\n await runCustomRequest(finalFile);\n return;\n }\n if (uploadProps?.action) {\n await runActionUpload(finalFile);\n return;\n }\n\n const localUrl = URL.createObjectURL(finalFile);\n finalize(localUrl, finalFile.name);\n uploadProps?.onSuccess?.({ url: localUrl }, finalFile);\n } catch (error: any) {\n setUploadStatus(\"error\");\n handleUploadError(error, file);\n }\n };\n\n const onFileInputChange = async (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const file = event.target.files?.[0];\n if (!file) return;\n await triggerUpload(file);\n event.target.value = \"\";\n };\n\n const scaleInput = useMemo(\n () => (\n <div className=\"flex items-center gap-2\">\n <Input\n type=\"text\"\n value={scaleInputValue}\n onChange={handleScaleChange}\n className=\"w-24\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n />\n <span>%</span>\n </div>\n ),\n [scaleInputValue]\n );\n\n return (\n <div ref={ref} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageUrlLabel\", \"URL\")}\n </label>\n <div className=\"flex gap-2\">\n <Input\n type=\"text\"\n placeholder={t(\"imageUrlPlaceholder\", \"Please enter image URL\")}\n dir=\"ltr\"\n value={tempUrl}\n onChange={handleUrlChange}\n autoComplete=\"off\"\n />\n <Button\n className=\"h-8\"\n variant=\"outline\"\n type=\"button\"\n onClick={handleRun}\n >\n {t(\"imageRunButton\", \"Preview\")}\n </Button>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageUploadLabel\", \"Upload\")}\n </label>\n <label\n className={`relative group flex h-48 w-full flex-col items-center justify-center overflow-hidden rounded-lg border border-dashed transition-colors ${\n previewLoaded ? \"bg-muted/40\" : \"bg-muted/10\"\n } ${\n isUploading\n ? \"cursor-wait opacity-80 pointer-events-none\"\n : \"cursor-pointer\"\n }`}\n >\n {isUploading && (\n <div className=\"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 bg-background/80\">\n <Loader2 className=\"h-6 w-6 animate-spin text-primary\" />\n <span className=\"text-sm text-muted-foreground\">\n {t(\"imageUploading\", \"Uploading...\")}\n </span>\n </div>\n )}\n {previewLoaded && resource.resourceUrl ? (\n <>\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={resource.resourceUrl}\n alt={resource.resourceTitle || t(\"imageDefaultTitle\")}\n className=\"h-full w-full object-contain\"\n />\n {!isUploading && (\n <div className=\"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-2 bg-[#D7D7D7] opacity-0 transition-opacity duration-200 group-hover:opacity-100\">\n <Upload\n className=\"h-6 w-6\"\n style={{\n color: \"var(--base-muted-foreground, #737373)\",\n }}\n />\n <span\n className=\"text-sm\"\n style={{\n color: \"var(--base-muted-foreground, #737373)\",\n }}\n >\n {t(\n \"imageUploadPlaceholder\",\n \"Drag files or click to upload\"\n )}\n </span>\n </div>\n )}\n </>\n ) : (\n <div className=\"flex flex-col items-center gap-2 text-sm text-muted-foreground\">\n <Upload className=\"h-6 w-6\" />\n <span>\n {t(\"imageUploadPlaceholder\", \"Drag files or click to upload\")}\n </span>\n </div>\n )}\n <input\n type=\"file\"\n accept=\"image/*\"\n className=\"hidden\"\n disabled={isUploading}\n onChange={onFileInputChange}\n />\n </label>\n {uploadStatus === \"success\" && (\n <p className=\"text-xs text-muted-foreground\">\n {t(\"imageUploadSuccess\", \"Upload complete\")}\n </p>\n )}\n </div>\n\n {previewLoaded && resource.resourceUrl && (\n <>\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageTitleLabel\", \"Image Title\")}\n </label>\n <Input\n type=\"text\"\n placeholder={t(\n \"imageTitlePlaceholder\",\n \"Please enter image title\"\n )}\n value={resource.resourceTitle || \"\"}\n onChange={handleTitleChange}\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\">\n {t(\"imageScaleLabel\", \"Scale\")}\n </label>\n {scaleInput}\n </div>\n </>\n )}\n\n {!!errorTip && <p className=\"text-xs text-destructive\">{errorTip}</p>}\n\n <div className=\"flex justify-end gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleCancel}\n disabled={isUploading}\n >\n {t(\"imageCancelButton\", \"Cancel\")}\n </Button>\n <Button\n className=\"h-8\"\n onClick={handleSelect}\n disabled={!resource?.resourceUrl || isUploading}\n >\n {t(\"imageUseButton\", \"Use Image\")}\n </Button>\n </div>\n </div>\n );\n }\n);\n\nImageInject.displayName = \"ImageInject\";\n\nexport default ImageInject;\n"],"names":["ImageInject","React","value","onSelect","uploadProps","ref","t","useTranslation","setDialogOpen","useContext","EditorContext","resource","setResource","useState","previewLoaded","setPreviewLoaded","tempUrl","setTempUrl","scale","setScale","scaleInputValue","setScaleInputValue","errorTip","setErrorTip","uploadStatus","setUploadStatus","isUploading","useEffect","prev","resolvedScale","handleCancel","applyImage","url","name","sanitizedUrl","sanitizeImageUrl","handleSelect","handleUrlChange","handleTitleChange","handleScaleChange","inputValue","numeric","handleRun","isValidImageUrl","parsed","error","finalize","fileName","handleUploadError","currentFile","message","runCustomRequest","targetFile","options","event","response","runActionUpload","action","formData","extraData","key","val","result","triggerUpload","file","candidate","finalFile","localUrl","onFileInputChange","scaleInput","useMemo","jsxs","jsx","Input","Button","Loader2","Fragment","Upload"],"mappings":"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"}
|