markdown-flow-ui 0.2.14 → 0.2.16-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/README.md +7 -0
  2. package/dist/assets/markdown-flow-ui.css +10 -1
  3. package/dist/components/ContentRender/CodeBlock.cjs +1 -1
  4. package/dist/components/ContentRender/CodeBlock.cjs.map +1 -1
  5. package/dist/components/ContentRender/CodeBlock.d.ts +5 -0
  6. package/dist/components/ContentRender/CodeBlock.es.js +41 -38
  7. package/dist/components/ContentRender/CodeBlock.es.js.map +1 -1
  8. package/dist/components/ContentRender/ContentRender.cjs +2 -2
  9. package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
  10. package/dist/components/ContentRender/ContentRender.d.ts +12 -4
  11. package/dist/components/ContentRender/ContentRender.es.js +436 -306
  12. package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
  13. package/dist/components/ContentRender/IframeSandbox.cjs +7 -7
  14. package/dist/components/ContentRender/IframeSandbox.cjs.map +1 -1
  15. package/dist/components/ContentRender/IframeSandbox.d.ts +5 -1
  16. package/dist/components/ContentRender/IframeSandbox.es.js +311 -266
  17. package/dist/components/ContentRender/IframeSandbox.es.js.map +1 -1
  18. package/dist/components/ContentRender/MarkdownFlowInput.cjs +1 -1
  19. package/dist/components/ContentRender/MarkdownFlowInput.cjs.map +1 -1
  20. package/dist/components/ContentRender/MarkdownFlowInput.d.ts +5 -1
  21. package/dist/components/ContentRender/MarkdownFlowInput.es.js +37 -32
  22. package/dist/components/ContentRender/MarkdownFlowInput.es.js.map +1 -1
  23. package/dist/components/ContentRender/SandboxApp.cjs +2 -2
  24. package/dist/components/ContentRender/SandboxApp.cjs.map +1 -1
  25. package/dist/components/ContentRender/SandboxApp.d.ts +5 -1
  26. package/dist/components/ContentRender/SandboxApp.es.js +108 -103
  27. package/dist/components/ContentRender/SandboxApp.es.js.map +1 -1
  28. package/dist/components/ContentRender/blackboard-vendor.d.ts +1 -1
  29. package/dist/components/ContentRender/contentRenderI18n.cjs +1 -1
  30. package/dist/components/ContentRender/contentRenderI18n.cjs.map +1 -1
  31. package/dist/components/ContentRender/contentRenderI18n.d.ts +6 -1
  32. package/dist/components/ContentRender/contentRenderI18n.es.js +5 -56
  33. package/dist/components/ContentRender/contentRenderI18n.es.js.map +1 -1
  34. package/dist/components/ContentRender/contentRenderI18n.test.d.ts +1 -0
  35. package/dist/components/ContentRender/index.cjs +1 -1
  36. package/dist/components/ContentRender/index.d.ts +11 -11
  37. package/dist/components/ContentRender/index.es.js +1 -2
  38. package/dist/components/ContentRender/index.es.js.map +1 -1
  39. package/dist/components/ContentRender/locales/contentRender.json.cjs +2 -0
  40. package/dist/components/ContentRender/locales/contentRender.json.cjs.map +1 -0
  41. package/dist/components/ContentRender/locales/contentRender.json.d.ts +90 -0
  42. package/dist/components/ContentRender/locales/contentRender.json.es.js +11 -0
  43. package/dist/components/ContentRender/locales/contentRender.json.es.js.map +1 -0
  44. package/dist/components/ContentRender/plugins/CustomVariable.cjs +1 -1
  45. package/dist/components/ContentRender/plugins/CustomVariable.cjs.map +1 -1
  46. package/dist/components/ContentRender/plugins/CustomVariable.d.ts +7 -3
  47. package/dist/components/ContentRender/plugins/CustomVariable.es.js +165 -151
  48. package/dist/components/ContentRender/plugins/CustomVariable.es.js.map +1 -1
  49. package/dist/components/ContentRender/plugins/MermaidChart.cjs +1 -1
  50. package/dist/components/ContentRender/plugins/MermaidChart.cjs.map +1 -1
  51. package/dist/components/ContentRender/plugins/MermaidChart.d.ts +1 -0
  52. package/dist/components/ContentRender/plugins/MermaidChart.es.js +68 -44
  53. package/dist/components/ContentRender/plugins/MermaidChart.es.js.map +1 -1
  54. package/dist/components/ContentRender/typewriterPacing.fixtures.d.ts +14 -0
  55. package/dist/components/ContentRender/utils/typewriter-pacing.cjs +3 -0
  56. package/dist/components/ContentRender/utils/typewriter-pacing.cjs.map +1 -0
  57. package/dist/components/ContentRender/utils/typewriter-pacing.d.ts +27 -0
  58. package/dist/components/ContentRender/utils/typewriter-pacing.es.js +98 -0
  59. package/dist/components/ContentRender/utils/typewriter-pacing.es.js.map +1 -0
  60. package/dist/components/ContentRender/utils/typewriter-pacing.test.d.ts +1 -0
  61. package/dist/components/MarkdownFlow/MarkdownFlow.cjs +1 -1
  62. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.map +1 -1
  63. package/dist/components/MarkdownFlow/MarkdownFlow.d.ts +12 -4
  64. package/dist/components/MarkdownFlow/MarkdownFlow.es.js +51 -39
  65. package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
  66. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs +1 -1
  67. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs.map +1 -1
  68. package/dist/components/MarkdownFlow/ScrollToBottomButton.d.ts +31 -1
  69. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js +46 -17
  70. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js.map +1 -1
  71. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs +2 -0
  72. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs.map +1 -0
  73. package/dist/components/MarkdownFlow/ScrollToBottomControl.d.ts +18 -0
  74. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js +47 -0
  75. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js.map +1 -0
  76. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs +1 -1
  77. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs.map +1 -1
  78. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.d.ts +1 -1
  79. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js +33 -52
  80. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js.map +1 -1
  81. package/dist/components/MarkdownFlow/index.cjs +1 -1
  82. package/dist/components/MarkdownFlow/index.d.ts +9 -6
  83. package/dist/components/MarkdownFlow/index.es.js +6 -6
  84. package/dist/components/MarkdownFlow/index.es.js.map +1 -1
  85. package/dist/components/MarkdownFlow/useScrollToBottom.cjs +1 -1
  86. package/dist/components/MarkdownFlow/useScrollToBottom.cjs.map +1 -1
  87. package/dist/components/MarkdownFlow/useScrollToBottom.d.ts +40 -8
  88. package/dist/components/MarkdownFlow/useScrollToBottom.es.js +352 -83
  89. package/dist/components/MarkdownFlow/useScrollToBottom.es.js.map +1 -1
  90. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
  91. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
  92. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.d.ts +5 -3
  93. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +371 -324
  94. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
  95. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs +1 -1
  96. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs.map +1 -1
  97. package/dist/components/MarkdownFlowEditor/components/CustomDialog.d.ts +10 -0
  98. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js +22 -19
  99. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js.map +1 -1
  100. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs +1 -1
  101. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs.map +1 -1
  102. package/dist/components/MarkdownFlowEditor/components/CustomPopover.d.ts +8 -0
  103. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js +19 -15
  104. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js.map +1 -1
  105. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs +1 -1
  106. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.map +1 -1
  107. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.d.ts +4 -1
  108. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js +99 -93
  109. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
  110. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs +1 -1
  111. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs.map +1 -1
  112. package/dist/components/MarkdownFlowEditor/components/ImageInject.d.ts +1 -1
  113. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js +183 -182
  114. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js.map +1 -1
  115. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs +1 -1
  116. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs.map +1 -1
  117. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.d.ts +1 -1
  118. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js +107 -103
  119. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js.map +1 -1
  120. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +1 -1
  121. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +1 -1
  122. package/dist/components/MarkdownFlowEditor/components/VariableSelect.d.ts +1 -1
  123. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +106 -106
  124. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +1 -1
  125. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs +1 -1
  126. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs.map +1 -1
  127. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js +64 -63
  128. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js.map +1 -1
  129. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs +1 -1
  130. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs.map +1 -1
  131. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js +13 -13
  132. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js.map +1 -1
  133. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs +1 -1
  134. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs.map +1 -1
  135. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js +12 -12
  136. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js.map +1 -1
  137. package/dist/components/MarkdownFlowEditor/editor-context.d.ts +1 -1
  138. package/dist/components/MarkdownFlowEditor/editorI18n.cjs +1 -1
  139. package/dist/components/MarkdownFlowEditor/editorI18n.cjs.map +1 -1
  140. package/dist/components/MarkdownFlowEditor/editorI18n.d.ts +290 -0
  141. package/dist/components/MarkdownFlowEditor/editorI18n.es.js +12 -8
  142. package/dist/components/MarkdownFlowEditor/editorI18n.es.js.map +1 -1
  143. package/dist/components/MarkdownFlowEditor/editorI18n.test.d.ts +1 -0
  144. package/dist/components/MarkdownFlowEditor/index.d.ts +6 -6
  145. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +2 -0
  146. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs.map +1 -0
  147. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +72 -0
  148. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +140 -0
  149. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js.map +1 -0
  150. package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
  151. package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +2 -0
  152. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +118 -114
  153. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js.map +1 -1
  154. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
  155. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +2 -0
  156. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +118 -114
  157. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js.map +1 -1
  158. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +2 -0
  159. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs.map +1 -0
  160. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +72 -0
  161. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +140 -0
  162. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js.map +1 -0
  163. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
  164. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +2 -0
  165. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +70 -66
  166. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js.map +1 -1
  167. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs +1 -1
  168. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs.map +1 -1
  169. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js +40 -35
  170. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js.map +1 -1
  171. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.d.ts +1 -1
  172. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs +1 -1
  173. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs.map +1 -1
  174. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js +27 -23
  175. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js.map +1 -1
  176. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs +2 -0
  177. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs.map +1 -0
  178. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.d.ts +7 -0
  179. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js +12 -0
  180. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js.map +1 -0
  181. package/dist/components/MarkdownFlowEditor/utils.d.ts +1 -1
  182. package/dist/components/Slide/MarkdownSlideScaling.cjs +1 -1
  183. package/dist/components/Slide/MarkdownSlideScaling.cjs.map +1 -1
  184. package/dist/components/Slide/MarkdownSlideScaling.d.ts +1 -1
  185. package/dist/components/Slide/MarkdownSlideScaling.es.js +20 -20
  186. package/dist/components/Slide/MarkdownSlideScaling.es.js.map +1 -1
  187. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs +1 -1
  188. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs.map +1 -1
  189. package/dist/components/Slide/MobilePlayerSettingsSheet.d.ts +7 -2
  190. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js +61 -57
  191. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js.map +1 -1
  192. package/dist/components/Slide/Player.cjs +1 -1
  193. package/dist/components/Slide/Player.cjs.map +1 -1
  194. package/dist/components/Slide/Player.d.ts +6 -6
  195. package/dist/components/Slide/Player.es.js +547 -541
  196. package/dist/components/Slide/Player.es.js.map +1 -1
  197. package/dist/components/Slide/Slide.cjs +1 -1
  198. package/dist/components/Slide/Slide.cjs.map +1 -1
  199. package/dist/components/Slide/Slide.d.ts +14 -12
  200. package/dist/components/Slide/Slide.es.js +745 -726
  201. package/dist/components/Slide/Slide.es.js.map +1 -1
  202. package/dist/components/Slide/SubtitleOverlay.cjs +1 -1
  203. package/dist/components/Slide/SubtitleOverlay.cjs.map +1 -1
  204. package/dist/components/Slide/SubtitleOverlay.d.ts +2 -2
  205. package/dist/components/Slide/SubtitleOverlay.es.js +17 -17
  206. package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
  207. package/dist/components/Slide/diff-utils.d.ts +1 -1
  208. package/dist/components/Slide/index.d.ts +12 -12
  209. package/dist/components/Slide/locales/slide.json.cjs +2 -0
  210. package/dist/components/Slide/locales/slide.json.cjs.map +1 -0
  211. package/dist/components/Slide/locales/slide.json.d.ts +205 -0
  212. package/dist/components/Slide/locales/slide.json.es.js +11 -0
  213. package/dist/components/Slide/locales/slide.json.es.js.map +1 -0
  214. package/dist/components/Slide/slideI18n.cjs +1 -1
  215. package/dist/components/Slide/slideI18n.cjs.map +1 -1
  216. package/dist/components/Slide/slideI18n.d.ts +6 -3
  217. package/dist/components/Slide/slideI18n.es.js +10 -155
  218. package/dist/components/Slide/slideI18n.es.js.map +1 -1
  219. package/dist/components/Slide/useSlide.d.ts +1 -1
  220. package/dist/components/Slide/utils/appendedMarkerAdvance.d.ts +1 -1
  221. package/dist/components/Slide/utils/audioSegments.d.ts +1 -1
  222. package/dist/components/Slide/utils/interactionResolution.d.ts +2 -2
  223. package/dist/components/Slide/utils/listenModeElementList.d.ts +2 -2
  224. package/dist/components/Slide/utils/markdownScaling.d.ts +1 -1
  225. package/dist/components/Slide/utils/playerCustomActions.d.ts +2 -2
  226. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs +1 -1
  227. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.map +1 -1
  228. package/dist/components/Slide/utils/playerKeyboardShortcuts.d.ts +1 -1
  229. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js +20 -20
  230. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js.map +1 -1
  231. package/dist/components/Slide/utils/runStreamFixture.d.ts +1 -1
  232. package/dist/components/Slide/utils/segmentSeek.d.ts +1 -1
  233. package/dist/components/Slide/utils/silentStepAutoAdvance.d.ts +1 -1
  234. package/dist/components/Slide/utils/streamingNavigation.d.ts +1 -1
  235. package/dist/components/Slide/utils/subtitleCue.d.ts +1 -1
  236. package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +1 -1
  237. package/dist/components/index.d.ts +22 -18
  238. package/dist/components/ui/button.cjs +1 -1
  239. package/dist/components/ui/button.cjs.map +1 -1
  240. package/dist/components/ui/button.es.js +12 -13
  241. package/dist/components/ui/button.es.js.map +1 -1
  242. package/dist/components/ui/checkbox.cjs +1 -1
  243. package/dist/components/ui/checkbox.cjs.map +1 -1
  244. package/dist/components/ui/checkbox.es.js +35 -35
  245. package/dist/components/ui/checkbox.es.js.map +1 -1
  246. package/dist/components/ui/dialog.cjs +1 -1
  247. package/dist/components/ui/dialog.cjs.map +1 -1
  248. package/dist/components/ui/dialog.d.ts +5 -1
  249. package/dist/components/ui/dialog.es.js +37 -37
  250. package/dist/components/ui/dialog.es.js.map +1 -1
  251. package/dist/components/ui/input.cjs +1 -1
  252. package/dist/components/ui/input.cjs.map +1 -1
  253. package/dist/components/ui/input.es.js +4 -4
  254. package/dist/components/ui/input.es.js.map +1 -1
  255. package/dist/components/ui/inputGroup/button.cjs +1 -1
  256. package/dist/components/ui/inputGroup/button.cjs.map +1 -1
  257. package/dist/components/ui/inputGroup/button.es.js +9 -10
  258. package/dist/components/ui/inputGroup/button.es.js.map +1 -1
  259. package/dist/components/ui/inputGroup/input-group.cjs +1 -1
  260. package/dist/components/ui/inputGroup/input-group.cjs.map +1 -1
  261. package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
  262. package/dist/components/ui/inputGroup/input-group.es.js +10 -10
  263. package/dist/components/ui/inputGroup/input-group.es.js.map +1 -1
  264. package/dist/components/ui/inputGroup/textarea.cjs +1 -1
  265. package/dist/components/ui/inputGroup/textarea.cjs.map +1 -1
  266. package/dist/components/ui/inputGroup/textarea.es.js +2 -2
  267. package/dist/components/ui/inputGroup/textarea.es.js.map +1 -1
  268. package/dist/components/ui/loading-overlay-card.cjs +2 -2
  269. package/dist/components/ui/loading-overlay-card.cjs.map +1 -1
  270. package/dist/components/ui/loading-overlay-card.es.js +11 -11
  271. package/dist/components/ui/loading-overlay-card.es.js.map +1 -1
  272. package/dist/components/ui/popover.cjs +1 -1
  273. package/dist/components/ui/popover.cjs.map +1 -1
  274. package/dist/components/ui/popover.es.js +6 -6
  275. package/dist/components/ui/popover.es.js.map +1 -1
  276. package/dist/components/ui/tooltip.cjs +1 -1
  277. package/dist/components/ui/tooltip.cjs.map +1 -1
  278. package/dist/components/ui/tooltip.es.js +16 -16
  279. package/dist/components/ui/tooltip.es.js.map +1 -1
  280. package/dist/editor.d.ts +2 -2
  281. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  282. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  283. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  284. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  285. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  286. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  287. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  288. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  289. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  290. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  291. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  292. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  293. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  294. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  295. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  296. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  297. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  298. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  299. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  300. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  301. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  302. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  303. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  304. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  305. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  306. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  307. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  308. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  309. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  310. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  311. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  312. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  313. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  314. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  315. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  316. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  317. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  318. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  319. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  320. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  321. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  322. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  323. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  324. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  325. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  326. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  327. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  328. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  329. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  330. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  331. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  332. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  333. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  334. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  335. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  336. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  337. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  338. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  339. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  340. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  341. package/dist/index.cjs +1 -1
  342. package/dist/index.d.ts +2 -2
  343. package/dist/index.es.js +22 -19
  344. package/dist/index.es.js.map +1 -1
  345. package/dist/lib/locale.cjs +1 -1
  346. package/dist/lib/locale.cjs.map +1 -1
  347. package/dist/lib/locale.d.ts +5 -1
  348. package/dist/lib/locale.es.js +26 -13
  349. package/dist/lib/locale.es.js.map +1 -1
  350. package/dist/lib/locale.test.d.ts +1 -0
  351. package/dist/lib/useDetachedLanguage.cjs +2 -0
  352. package/dist/lib/useDetachedLanguage.cjs.map +1 -0
  353. package/dist/lib/useDetachedLanguage.d.ts +3 -0
  354. package/dist/lib/useDetachedLanguage.es.js +25 -0
  355. package/dist/lib/useDetachedLanguage.es.js.map +1 -0
  356. package/dist/lib/useResolvedDirection.cjs +2 -0
  357. package/dist/lib/useResolvedDirection.cjs.map +1 -0
  358. package/dist/lib/useResolvedDirection.d.ts +6 -0
  359. package/dist/lib/useResolvedDirection.es.js +37 -0
  360. package/dist/lib/useResolvedDirection.es.js.map +1 -0
  361. package/dist/markdown-flow-ui-lib.css +1 -1
  362. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -1
  363. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  364. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js +6 -6
  365. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js.map +1 -1
  366. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -1
  367. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  368. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js +21 -21
  369. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -1
  370. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs +2 -2
  371. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs.map +1 -1
  372. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js +100 -100
  373. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js.map +1 -1
  374. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +1 -1
  375. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  376. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js +38 -38
  377. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js.map +1 -1
  378. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +1 -1
  379. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  380. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js +9 -9
  381. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js.map +1 -1
  382. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs +1 -1
  383. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs.map +1 -1
  384. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js +95 -95
  385. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js.map +1 -1
  386. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +1 -1
  387. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  388. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js +48 -48
  389. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js.map +1 -1
  390. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +1 -1
  391. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  392. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js +6 -6
  393. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js.map +1 -1
  394. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -1
  395. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  396. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js +9 -9
  397. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -1
  398. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -1
  399. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  400. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js +17 -17
  401. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -1
  402. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -1
  403. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs.map +1 -1
  404. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js +100 -100
  405. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js.map +1 -1
  406. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -1
  407. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs.map +1 -1
  408. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js +6 -6
  409. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js.map +1 -1
  410. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs +1 -1
  411. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs.map +1 -1
  412. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js +27 -27
  413. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js.map +1 -1
  414. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.cjs → chevrons-down.cjs} +2 -2
  415. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.cjs.map +1 -0
  416. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.es.js → chevrons-down.es.js} +6 -3
  417. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.es.js.map +1 -0
  418. package/dist/node_modules/react-markdown/lib/index.cjs +1 -1
  419. package/dist/node_modules/react-markdown/lib/index.cjs.map +1 -1
  420. package/dist/node_modules/react-markdown/lib/index.es.js +39 -39
  421. package/dist/node_modules/react-markdown/lib/index.es.js.map +1 -1
  422. package/dist/renderer.cjs +1 -1
  423. package/dist/renderer.d.ts +18 -17
  424. package/dist/renderer.es.js +20 -17
  425. package/dist/renderer.es.js.map +1 -1
  426. package/dist/scroll.cjs +1 -1
  427. package/dist/scroll.d.ts +6 -3
  428. package/dist/scroll.es.js +4 -2
  429. package/dist/scroll.es.js.map +1 -1
  430. package/dist/slide.d.ts +3 -3
  431. package/package.json +5 -2
  432. package/dist/_virtual/jsx-runtime.cjs +0 -2
  433. package/dist/_virtual/jsx-runtime.cjs.map +0 -1
  434. package/dist/_virtual/jsx-runtime.es.js +0 -6
  435. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  436. package/dist/_virtual/jsx-runtime.es2.js +0 -5
  437. package/dist/_virtual/jsx-runtime.es2.js.map +0 -1
  438. package/dist/_virtual/jsx-runtime2.cjs +0 -2
  439. package/dist/_virtual/jsx-runtime2.cjs.map +0 -1
  440. package/dist/_virtual/react-jsx-runtime.development.cjs +0 -2
  441. package/dist/_virtual/react-jsx-runtime.development.cjs.map +0 -1
  442. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  443. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  444. package/dist/_virtual/react-jsx-runtime.production.cjs +0 -2
  445. package/dist/_virtual/react-jsx-runtime.production.cjs.map +0 -1
  446. package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
  447. package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
  448. package/dist/lib/localeTextMap.cjs +0 -2
  449. package/dist/lib/localeTextMap.cjs.map +0 -1
  450. package/dist/lib/localeTextMap.es.js +0 -5
  451. package/dist/lib/localeTextMap.es.js.map +0 -1
  452. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.map +0 -1
  453. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.es.js.map +0 -1
  454. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -24
  455. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.map +0 -1
  456. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -409
  457. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  458. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs +0 -10
  459. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.map +0 -1
  460. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
  461. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
  462. package/dist/node_modules/react/jsx-runtime.cjs +0 -2
  463. package/dist/node_modules/react/jsx-runtime.cjs.map +0 -1
  464. package/dist/node_modules/react/jsx-runtime.es.js +0 -11
  465. 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":"+hBAuBMA,EAAcC,EAAM,WACxB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,YAAAC,CAAA,EAAeC,IAAQ,CACzC,KAAM,CAAE,EAAAC,CAAA,EAAMC,iBAAA,EACR,CAAE,cAAAC,CAAA,EAAkBC,EAAAA,WAAWC,SAAa,EAE5C,CAACC,EAAUC,CAAW,EAAIC,WAAwB,CACtD,YAAaX,GAAO,aAAe,GACnC,cAAeA,GAAO,eAAiB,GACvC,aAAcA,GAAO,cAAgB,GAAA,CACtC,EACK,CAACY,EAAeC,CAAgB,EAAIF,EAAAA,SACxC,EAAQX,GAAO,WAAW,EAEtB,CAACc,EAASC,CAAU,EAAIJ,EAAAA,SAAiBX,GAAO,aAAe,EAAE,EACjE,CAACgB,EAAOC,CAAQ,EAAIN,EAAAA,SACxBX,GAAO,cAAgB,GAAA,EAEnB,CAACkB,EAAiBC,CAAkB,EAAIR,EAAAA,SAC5CX,GAAO,eAAiB,OAAY,OAAOA,EAAM,YAAY,EAAI,KAAA,EAE7D,CAACoB,EAAUC,CAAW,EAAIV,EAAAA,SAAiB,EAAE,EAC7C,CAACW,EAAcC,CAAe,EAAIZ,EAAAA,SAEtC,MAAM,EACFa,EAAcF,IAAiB,UAErCG,EAAAA,UAAU,IAAM,CACd,GAAIzB,GAAO,YAAa,CACtBU,EAAagB,IAAU,CACrB,GAAGA,EACH,YAAa1B,EAAM,aAAe,GAClC,cAAeA,EAAM,eAAiB0B,EAAK,eAAiB,GAC5D,aAAc1B,EAAM,cAAgB0B,EAAK,cAAgB,GAAA,EACzD,EACFX,EAAWf,EAAM,aAAe,EAAE,EAClC,MAAM2B,EACJ3B,EAAM,eAAiB,OAAYA,EAAM,aAAe,IAC1DiB,EAASU,CAAa,EACtBR,EACEnB,EAAM,eAAiB,OACnB,OAAOA,EAAM,YAAY,EACzB,OAAO2B,CAAa,CAAA,EAE1Bd,EAAiB,EAAI,CACvB,CACAU,EAAgB,MAAM,CACxB,EAAG,CAACvB,CAAK,CAAC,EAEV,MAAM4B,EAAe,IAAM,CACrBJ,GACJlB,EAAc,EAAK,CACrB,EAEMuB,EAAa,CAACC,EAAaC,IAAkB,CACjD,MAAMC,EAAeC,EAAAA,iBAAiBH,CAAG,EACzCpB,EAAY,CACV,YAAasB,EACb,cAAeD,GAAQtB,EAAS,eAAiBL,EAAE,mBAAmB,EACtE,aAAcY,CAAA,CACf,EACDD,EAAWiB,CAAY,EACvBnB,EAAiB,EAAI,EACrBQ,EAAY,EAAE,EACVC,IAAiB,WACnBC,EAAgB,SAAS,CAE7B,EAEMW,EAAe,IAAM,CACrBV,GACCf,EAAS,cACdR,EAAS,CACP,YAAaQ,EAAS,YACtB,cACEA,EAAS,eAAiBL,EAAE,oBAAqB,YAAY,EAC/D,aAAcY,CAAA,CACf,EACDV,EAAc,EAAK,EACrB,EAEM6B,EAAmB,GAA2C,CAClE,MAAML,EAAM,EAAE,OAAO,MAAM,KAAA,EAC3Bf,EAAWe,CAAG,EACdjB,EAAiB,EAAK,EACtBQ,EAAY,EAAE,CAChB,EAEMe,EAAqB,GAA2C,CACpE1B,EAAagB,IAAU,CACrB,GAAGA,EACH,cAAe,EAAE,OAAO,KAAA,EACxB,CACJ,EAEMW,EAAqB,GAA2C,CACpE,MAAMC,EAAa,EAAE,OAAO,MAAM,QAAQ,SAAU,EAAE,EAEtD,GADAnB,EAAmBmB,CAAU,EACzB,CAACA,EAAY,CACfrB,EAAS,MAAS,EAClBP,EAAagB,IAAU,CACrB,GAAGA,EACH,aAAc,MAAA,EACd,EACF,MACF,CACA,MAAMa,EAAU,KAAK,IAAI,EAAG,KAAK,IAAI,IAAM,OAAOD,CAAU,CAAC,CAAC,EAC9DrB,EAASsB,CAAO,EAChB7B,EAAagB,IAAU,CACrB,GAAGA,EACH,aAAca,CAAA,EACd,CACJ,EAEMC,EAAY,IAAM,CACtB,GAAI,CAAAhB,EAEJ,IADAD,EAAgB,MAAM,EAClB,CAACT,EAAS,CACZO,EAAYjB,EAAE,mBAAoB,wBAAwB,CAAC,EAC3D,MACF,CACA,GAAI,CAACqC,EAAAA,gBAAgB3B,CAAO,EAAG,CAC7BO,EAAYjB,EAAE,kBAAmB,gCAAgC,CAAC,EAClE,MACF,CAEA,GADAyB,EAAWf,CAAO,EACd,CAACL,EAAS,eAAiBK,EAC7B,GAAI,CACF,MAAM4B,EAAS,IAAI,IAAI5B,CAAO,EACxBiB,EAAO,mBACXW,EAAO,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,OAAS,EAAA,EAElDX,GACFrB,EAAagB,IAAU,CACrB,GAAGA,EACH,cAAeK,CAAA,EACf,CAEN,OAASY,EAAO,CAEd,QAAQ,MAAMA,CAAK,CACrB,EAEJ,EAEMC,EAAW,CAACd,EAAae,IAAqB,CAClDtB,EAAgB,SAAS,EACzBM,EAAWC,EAAKe,CAAQ,CAC1B,EAEMC,EAAoB,CAACH,EAAYI,IAAsB,CAC3D,MAAMC,EACJL,GAAO,SAAWvC,EAAE,mBAAoB,6BAA6B,EACvEiB,EAAY2B,CAAO,EACnBzB,EAAgB,OAAO,EACvBV,EAAiB,EAAQJ,EAAS,WAAY,EAC9CP,GAAa,UAAUyC,EAAOI,CAAW,CAC3C,EAEME,EAAmB,MAAOC,GAAqB,CACnD,MAAMC,EAA+B,CACnC,KAAMD,EACN,SAAUhD,GAAa,KACvB,KACE,OAAOA,GAAa,MAAS,WACzB,MAAMA,EAAY,KAAKgD,CAAU,EACjChD,GAAa,KACnB,QAASA,GAAa,QACtB,gBAAiBA,GAAa,gBAC9B,OACE,OAAOA,GAAa,QAAW,WAC3B,MAAMA,EAAY,OAAOgD,CAAU,EACnChD,GAAa,OACnB,WAAakD,GAAUlD,GAAa,aAAakD,EAAOF,CAAU,EAClE,QAAUP,GAAUG,EAAkBH,EAAOO,CAAU,EACvD,UAAYG,GAAkB,CAC5BnD,GAAa,YAAYmD,EAAUH,CAAU,EAC7C,MAAMpB,EACJ,OAAOuB,GAAa,SAChBA,EACCA,GAAU,KAAOA,GAAU,MAAM,IACpCvB,EACFc,EAASd,EAAKoB,EAAW,IAAI,EAE7BJ,EAAkB,IAAI,MAAM,kBAAkB,EAAGI,CAAU,CAE/D,CAAA,EAEFhD,GAAa,gBAAgBiD,CAAO,CACtC,EAEMG,EAAkB,MAAOJ,GAAqB,CAClD,MAAMK,EACJ,OAAOrD,GAAa,QAAW,WAC3B,MAAMA,EAAY,OAAOgD,CAAU,EACnChD,GAAa,OACnB,GAAI,CAACqD,EAAQ,CACXX,EAAS,IAAI,gBAAgBM,CAAU,EAAGA,EAAW,IAAI,EACzD,MACF,CAEA,GAAI,CACF,MAAMM,EAAW,IAAI,SACrBA,EAAS,OAAOtD,GAAa,MAAQ,OAAQgD,CAAU,EACvD,MAAMO,EACJ,OAAOvD,GAAa,MAAS,WACzB,MAAMA,EAAY,KAAKgD,CAAU,EACjChD,GAAa,KACfuD,GACF,OAAO,QAAQA,CAAS,EAAE,QAAQ,CAAC,CAACC,EAAKC,CAAG,IAAM,CAChDH,EAAS,OAAOE,EAAKC,CAAU,CACjC,CAAC,EASH,MAAMC,EAAS,MANE,MAAM,MAAML,EAAQ,CACnC,OAAQ,OACR,KAAMC,EACN,QAAStD,GAAa,QACtB,YAAaA,GAAa,gBAAkB,UAAY,aAAA,CACzD,GAC6B,KAAA,EAC9BA,GAAa,YAAY0D,EAAQV,CAAU,EAC3C,MAAMpB,EAAM,OAAO8B,GAAW,SAAWA,EAASA,GAAQ,KAEtD9B,EACFc,EAASd,EAAKoB,EAAW,IAAI,EAE7BJ,EAAkB,IAAI,MAAM,kBAAkB,EAAGI,CAAU,CAE/D,OAASP,EAAY,CACnBG,EAAkBH,EAAOO,CAAU,CACrC,CACF,EAEMW,EAAgB,MAAOC,GAAe,CAC1C,GAAI,CACFzC,EAAY,EAAE,EACd,IAAI0C,EAA0CD,EAC9C,GAAI5D,GAAa,eACf6D,EAAY,MAAM7D,EAAY,aAAa4D,CAAI,EAC3CC,IAAc,IAChB,OAIAA,aAAqB,MAAQ,EAAEA,aAAqB,QACtDA,EAAY,IAAI,KAAK,CAACA,CAAS,EAAGD,EAAK,KAAM,CAC3C,KAAMC,EAAU,MAAQD,EAAK,IAAA,CAC9B,GAGH,MAAME,EAAYD,aAAqB,KAAOA,EAAYD,EAI1D,GAHAvC,EAAgB,SAAS,EACzBV,EAAiB,EAAK,EAElBX,GAAa,cAAe,CAC9B,MAAM+C,EAAiBe,CAAS,EAChC,MACF,CACA,GAAI9D,GAAa,OAAQ,CACvB,MAAMoD,EAAgBU,CAAS,EAC/B,MACF,CAEA,MAAMC,EAAW,IAAI,gBAAgBD,CAAS,EAC9CpB,EAASqB,EAAUD,EAAU,IAAI,EACjC9D,GAAa,YAAY,CAAE,IAAK+D,CAAA,EAAYD,CAAS,CACvD,OAASrB,EAAY,CACnBpB,EAAgB,OAAO,EACvBuB,EAAkBH,EAAOmB,CAAI,CAC/B,CACF,EAEMI,EAAoB,MACxBd,GACG,CACH,MAAMU,EAAOV,EAAM,OAAO,QAAQ,CAAC,EAC9BU,IACL,MAAMD,EAAcC,CAAI,EACxBV,EAAM,OAAO,MAAQ,GACvB,EAEMe,EAAaC,EAAAA,QACjB,IACEC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,MAAA,CACC,KAAK,OACL,MAAOrD,EACP,SAAUmB,EACV,UAAU,OACV,UAAU,UACV,QAAQ,QAAA,CAAA,EAEViC,EAAAA,kBAAAA,IAAC,QAAK,SAAA,GAAA,CAAC,CAAA,EACT,EAEF,CAACpD,CAAe,CAAA,EAGlB,OACEmD,EAAAA,kBAAAA,KAAC,MAAA,CAAI,IAAAlE,EAAU,UAAU,YACvB,SAAA,CAAAkE,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,wBAAC,SAAM,UAAU,sCACd,SAAAlE,EAAE,gBAAiB,KAAK,EAC3B,EACAiE,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,aACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,MAAA,CACC,KAAK,OACL,YAAanE,EAAE,sBAAuB,wBAAwB,EAC9D,MAAOU,EACP,SAAUqB,EACV,aAAa,KAAA,CAAA,EAEfmC,EAAAA,kBAAAA,IAACE,EAAAA,OAAA,CACC,UAAU,MACV,QAAQ,UACR,KAAK,SACL,QAAShC,EAER,SAAApC,EAAE,iBAAkB,SAAS,CAAA,CAAA,CAChC,CAAA,CACF,CAAA,EACF,EAEAiE,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,wBAAC,SAAM,UAAU,sCACd,SAAAlE,EAAE,mBAAoB,QAAQ,EACjC,EACAiE,EAAAA,kBAAAA,KAAC,QAAA,CACC,UAAW,0IACTzD,EAAgB,cAAgB,aAClC,IACEY,EACI,6CACA,gBACN,GAEC,SAAA,CAAAA,GACC6C,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,yFACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACG,EAAAA,QAAA,CAAQ,UAAU,mCAAA,CAAoC,0BACtD,OAAA,CAAK,UAAU,gCACb,SAAArE,EAAE,iBAAkB,cAAc,CAAA,CACrC,CAAA,EACF,EAEDQ,GAAiBH,EAAS,YACzB4D,EAAAA,kBAAAA,KAAAK,EAAAA,kBAAAA,SAAA,CAEE,SAAA,CAAAJ,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAK7D,EAAS,YACd,IAAKA,EAAS,eAAiB,UAC/B,UAAU,8BAAA,CAAA,EAEX,CAACe,GACA6C,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,sKACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACK,EAAAA,QAAA,CACC,UAAU,UACV,MAAO,CACL,MAAO,uCAAA,CACT,CAAA,EAEFL,EAAAA,kBAAAA,IAAC,OAAA,CACC,UAAU,UACV,MAAO,CACL,MAAO,uCAAA,EAGR,SAAAlE,EACC,yBACA,+BAAA,CACF,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAEJ,EAEAiE,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,iEACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACK,EAAAA,QAAA,CAAO,UAAU,SAAA,CAAU,EAC5BL,EAAAA,kBAAAA,IAAC,OAAA,CACE,SAAAlE,EAAE,yBAA0B,+BAA+B,CAAA,CAC9D,CAAA,EACF,EAEFkE,EAAAA,kBAAAA,IAAC,QAAA,CACC,KAAK,OACL,OAAO,UACP,UAAU,SACV,SAAU9C,EACV,SAAU0C,CAAA,CAAA,CACZ,CAAA,CAAA,EAED5C,IAAiB,WAChBgD,wBAAC,IAAA,CAAE,UAAU,gCACV,SAAAlE,EAAE,qBAAsB,iBAAiB,CAAA,CAC5C,CAAA,EAEJ,EAECQ,GAAiBH,EAAS,aACzB4D,EAAAA,kBAAAA,KAAAK,EAAAA,kBAAAA,SAAA,CACE,SAAA,CAAAL,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,wBAAC,SAAM,UAAU,sCACd,SAAAlE,EAAE,kBAAmB,aAAa,EACrC,EACAkE,EAAAA,kBAAAA,IAACC,EAAAA,MAAA,CACC,KAAK,OACL,YAAanE,EACX,wBACA,0BAAA,EAEF,MAAOK,EAAS,eAAiB,GACjC,SAAU2B,CAAA,CAAA,CACZ,EACF,EAEAiC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,wBAAC,SAAM,UAAU,sCACd,SAAAlE,EAAE,kBAAmB,OAAO,EAC/B,EACC+D,CAAA,CAAA,CACH,CAAA,EACF,EAGD,CAAC,CAAC/C,2BAAa,IAAA,CAAE,UAAU,2BAA4B,SAAAA,EAAS,EAEjEiD,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAC,EAAAA,kBAAAA,IAACE,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,UACR,QAAS5C,EACT,SAAUJ,EAET,SAAApB,EAAE,oBAAqB,QAAQ,CAAA,CAAA,EAElCkE,EAAAA,kBAAAA,IAACE,EAAAA,OAAA,CACC,UAAU,MACV,QAAStC,EACT,SAAU,CAACzB,GAAU,aAAee,EAEnC,SAAApB,EAAE,iBAAkB,WAAW,CAAA,CAAA,CAClC,CAAA,CACF,CAAA,EACF,CAEJ,CACF,EAEAN,EAAY,YAAc"}
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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"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { UploadProps } from '../uploadTypes';
2
+ import { UploadProps } from '../uploadTypes.js';
3
3
  export type ImageResource = {
4
4
  resourceUrl: string;
5
5
  resourceTitle?: string;