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":"EditorToolbar.cjs","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"EditorToolbar.cjs","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\nimport type { MarkdownFlowDirection } from \"../../../lib/locale\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n tooltipDirection?: MarkdownFlowDirection;\n tooltipLanguage?: string;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n tooltipDirection,\n tooltipLanguage,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n const tooltipContentProps = {\n dir: tooltipDirection,\n lang: tooltipLanguage,\n side: \"top\" as const,\n };\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.search ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.image ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.video ?? \"\"}\n </TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","tooltipDirection","tooltipLanguage","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","tooltipContentProps","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { SelectedOption } from '../types';
1
+ import { SelectedOption } from '../types.js';
2
+ import { MarkdownFlowDirection } from '../../../lib/locale.js';
2
3
  type ToolbarLabels = {
3
4
  confirmOutput: string | undefined;
4
5
  insertLink: string | undefined;
@@ -15,6 +16,8 @@ type ToolbarLabels = {
15
16
  interface EditorToolbarProps {
16
17
  disabled?: boolean;
17
18
  labels: ToolbarLabels;
19
+ tooltipDirection?: MarkdownFlowDirection;
20
+ tooltipLanguage?: string;
18
21
  onSelect: (selectedOption: SelectedOption) => void;
19
22
  onInsertVariablePlaceholder?: () => void;
20
23
  onVariableSearchToggle?: (button: HTMLButtonElement) => void;
@@ -1,182 +1,188 @@
1
- import { j as t } from "../../../_virtual/jsx-runtime.es.js";
2
- import { memo as B, useCallback as c } from "react";
3
- import { SelectedOption as C } from "../types.es.js";
4
- import O from "./icons/SearchBracesIcon.es.js";
5
- import S from "./icons/ButtonIcon.es.js";
6
- import { TooltipProvider as E, Tooltip as e, TooltipTrigger as o, TooltipContent as n } from "../../ui/tooltip.es.js";
7
- import N from "../../../node_modules/lucide-react/dist/esm/icons/braces.es.js";
8
- import M from "../../../node_modules/lucide-react/dist/esm/icons/circle-check.es.js";
9
- import q from "../../../node_modules/lucide-react/dist/esm/icons/square-check.es.js";
10
- import A from "../../../node_modules/lucide-react/dist/esm/icons/text-cursor-input.es.js";
11
- import D from "../../../node_modules/lucide-react/dist/esm/icons/file-type.es.js";
12
- import F from "../../../node_modules/lucide-react/dist/esm/icons/image.es.js";
13
- import P from "../../../node_modules/lucide-react/dist/esm/icons/square-play.es.js";
14
- const s = 18, R = ({
1
+ import { jsx as t, jsxs as e } from "react/jsx-runtime";
2
+ import { memo as M, useCallback as l } from "react";
3
+ import { SelectedOption as T } from "../types.es.js";
4
+ import j from "./icons/SearchBracesIcon.es.js";
5
+ import q from "./icons/ButtonIcon.es.js";
6
+ import { TooltipProvider as P, Tooltip as o, TooltipTrigger as c, TooltipContent as h } from "../../ui/tooltip.es.js";
7
+ import A from "../../../node_modules/lucide-react/dist/esm/icons/braces.es.js";
8
+ import D from "../../../node_modules/lucide-react/dist/esm/icons/circle-check.es.js";
9
+ import F from "../../../node_modules/lucide-react/dist/esm/icons/square-check.es.js";
10
+ import Z from "../../../node_modules/lucide-react/dist/esm/icons/text-cursor-input.es.js";
11
+ import _ from "../../../node_modules/lucide-react/dist/esm/icons/file-type.es.js";
12
+ import $ from "../../../node_modules/lucide-react/dist/esm/icons/image.es.js";
13
+ import G from "../../../node_modules/lucide-react/dist/esm/icons/square-play.es.js";
14
+ const u = 18, H = ({
15
15
  disabled: r = !1,
16
16
  labels: i,
17
- onSelect: h,
18
- onInsertVariablePlaceholder: u,
19
- onVariableSearchToggle: x,
20
- onVariableSearchClose: d,
21
- onInsertConfirmOutput: j,
17
+ tooltipDirection: v,
18
+ tooltipLanguage: z,
19
+ onSelect: d,
20
+ onInsertVariablePlaceholder: m,
21
+ onVariableSearchToggle: p,
22
+ onVariableSearchClose: a,
23
+ onInsertConfirmOutput: C,
22
24
  // onInsertLink,
23
- onInsertButton: p,
24
- onInsertSingleChoice: l,
25
- onInsertMultiChoice: m,
26
- onInsertInputField: a,
27
- variableSearchActive: k = !1,
28
- rightSlot: f
25
+ onInsertButton: f,
26
+ onInsertSingleChoice: k,
27
+ onInsertMultiChoice: s,
28
+ onInsertInputField: g,
29
+ variableSearchActive: W = !1,
30
+ rightSlot: y
29
31
  }) => {
30
- const y = c(() => {
31
- r || (d?.(), u?.());
32
- }, [r, u, d]), g = c(
33
- (w) => {
34
- r || x?.(w.currentTarget);
32
+ const I = l(() => {
33
+ r || (a?.(), m?.());
34
+ }, [r, m, a]), w = l(
35
+ (E) => {
36
+ r || p?.(E.currentTarget);
35
37
  },
36
- [r, x]
37
- ), T = c(() => {
38
- r || j?.();
39
- }, [r, j]), v = c(() => {
40
- r || p?.();
41
- }, [r, p]), z = c(() => {
42
- r || l?.();
43
- }, [r, l]), W = c(() => {
44
- r || m?.();
45
- }, [r, m]), I = c(() => {
46
- r || a?.();
47
- }, [r, a]);
48
- return /* @__PURE__ */ t.jsx(E, { delayDuration: 150, children: /* @__PURE__ */ t.jsxs("div", { className: "markdown-flow-editor-toolbar", "aria-disabled": r, children: [
49
- /* @__PURE__ */ t.jsxs("div", { className: "markdown-flow-editor-toolbar-left", children: [
50
- /* @__PURE__ */ t.jsxs(e, { children: [
51
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
38
+ [r, p]
39
+ ), B = l(() => {
40
+ r || C?.();
41
+ }, [r, C]), O = l(() => {
42
+ r || f?.();
43
+ }, [r, f]), S = l(() => {
44
+ r || k?.();
45
+ }, [r, k]), x = l(() => {
46
+ r || s?.();
47
+ }, [r, s]), N = l(() => {
48
+ r || g?.();
49
+ }, [r, g]), n = {
50
+ dir: v,
51
+ lang: z,
52
+ side: "top"
53
+ };
54
+ return /* @__PURE__ */ t(P, { delayDuration: 150, children: /* @__PURE__ */ e("div", { className: "markdown-flow-editor-toolbar", "aria-disabled": r, children: [
55
+ /* @__PURE__ */ e("div", { className: "markdown-flow-editor-toolbar-left", children: [
56
+ /* @__PURE__ */ e(o, { children: [
57
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
52
58
  "button",
53
59
  {
54
60
  type: "button",
55
61
  disabled: r,
56
- onClick: y,
57
- children: /* @__PURE__ */ t.jsx(N, { strokeWidth: 1.75, size: s })
62
+ onClick: I,
63
+ children: /* @__PURE__ */ t(A, { strokeWidth: 1.75, size: u })
58
64
  }
59
65
  ) }),
60
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.addVariable ?? "" })
66
+ /* @__PURE__ */ t(h, { ...n, children: i.addVariable ?? "" })
61
67
  ] }),
62
- /* @__PURE__ */ t.jsxs(e, { children: [
63
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
68
+ /* @__PURE__ */ e(o, { children: [
69
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
64
70
  "button",
65
71
  {
66
72
  type: "button",
67
73
  disabled: r,
68
- onClick: g,
69
- "data-active": !r && k ? "true" : void 0,
74
+ onClick: w,
75
+ "data-active": !r && W ? "true" : void 0,
70
76
  "aria-label": i.search,
71
77
  title: i.search,
72
- children: /* @__PURE__ */ t.jsx(O, { strokeWidth: 1.75, size: s })
78
+ children: /* @__PURE__ */ t(j, { strokeWidth: 1.75, size: u })
73
79
  }
74
80
  ) }),
75
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.search ?? "" })
81
+ /* @__PURE__ */ t(h, { ...n, children: i.search ?? "" })
76
82
  ] }),
77
- /* @__PURE__ */ t.jsxs(e, { children: [
78
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
83
+ /* @__PURE__ */ e(o, { children: [
84
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
79
85
  "button",
80
86
  {
81
87
  type: "button",
82
88
  disabled: r,
83
- onClick: z,
89
+ onClick: S,
84
90
  "aria-label": i.insertSingleChoice,
85
91
  title: i.insertSingleChoice,
86
- children: /* @__PURE__ */ t.jsx(M, { strokeWidth: 1.75, size: s })
92
+ children: /* @__PURE__ */ t(D, { strokeWidth: 1.75, size: u })
87
93
  }
88
94
  ) }),
89
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.insertSingleChoice ?? "" })
95
+ /* @__PURE__ */ t(h, { ...n, children: i.insertSingleChoice ?? "" })
90
96
  ] }),
91
- /* @__PURE__ */ t.jsxs(e, { children: [
92
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
97
+ /* @__PURE__ */ e(o, { children: [
98
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
93
99
  "button",
94
100
  {
95
101
  type: "button",
96
102
  disabled: r,
97
- onClick: W,
103
+ onClick: x,
98
104
  "aria-label": i.insertMultiChoice,
99
105
  title: i.insertMultiChoice,
100
- children: /* @__PURE__ */ t.jsx(q, { strokeWidth: 1.75, size: s })
106
+ children: /* @__PURE__ */ t(F, { strokeWidth: 1.75, size: u })
101
107
  }
102
108
  ) }),
103
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.insertMultiChoice ?? "" })
109
+ /* @__PURE__ */ t(h, { ...n, children: i.insertMultiChoice ?? "" })
104
110
  ] }),
105
- /* @__PURE__ */ t.jsxs(e, { children: [
106
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
111
+ /* @__PURE__ */ e(o, { children: [
112
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
107
113
  "button",
108
114
  {
109
115
  type: "button",
110
116
  disabled: r,
111
- onClick: I,
117
+ onClick: N,
112
118
  "aria-label": i.insertInput,
113
119
  title: i.insertInput,
114
- children: /* @__PURE__ */ t.jsx(A, { strokeWidth: 1.75, size: s })
120
+ children: /* @__PURE__ */ t(Z, { strokeWidth: 1.75, size: u })
115
121
  }
116
122
  ) }),
117
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.insertInput ?? "" })
123
+ /* @__PURE__ */ t(h, { ...n, children: i.insertInput ?? "" })
118
124
  ] }),
119
- /* @__PURE__ */ t.jsxs(e, { children: [
120
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
125
+ /* @__PURE__ */ e(o, { children: [
126
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
121
127
  "button",
122
128
  {
123
129
  type: "button",
124
130
  disabled: r,
125
- onClick: v,
131
+ onClick: O,
126
132
  "aria-label": i.insertButton,
127
133
  title: i.insertButton,
128
- children: /* @__PURE__ */ t.jsx(S, { strokeWidth: 1.75, size: s })
134
+ children: /* @__PURE__ */ t(q, { strokeWidth: 1.75, size: u })
129
135
  }
130
136
  ) }),
131
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.insertButton ?? "" })
137
+ /* @__PURE__ */ t(h, { ...n, children: i.insertButton ?? "" })
132
138
  ] }),
133
- /* @__PURE__ */ t.jsxs(e, { children: [
134
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
139
+ /* @__PURE__ */ e(o, { children: [
140
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
135
141
  "button",
136
142
  {
137
143
  type: "button",
138
144
  disabled: r,
139
- onClick: T,
145
+ onClick: B,
140
146
  "aria-label": i.confirmOutput,
141
147
  title: i.confirmOutput,
142
- children: /* @__PURE__ */ t.jsx(D, { strokeWidth: 1.75, size: s })
148
+ children: /* @__PURE__ */ t(_, { strokeWidth: 1.75, size: u })
143
149
  }
144
150
  ) }),
145
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.confirmOutput ?? "" })
151
+ /* @__PURE__ */ t(h, { ...n, children: i.confirmOutput ?? "" })
146
152
  ] }),
147
- /* @__PURE__ */ t.jsxs(e, { children: [
148
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
153
+ /* @__PURE__ */ e(o, { children: [
154
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
149
155
  "button",
150
156
  {
151
157
  type: "button",
152
158
  disabled: r,
153
- onClick: () => h(C.Image),
159
+ onClick: () => d(T.Image),
154
160
  "aria-label": i.image,
155
161
  title: i.image,
156
- children: /* @__PURE__ */ t.jsx(F, { strokeWidth: 1.75, size: s })
162
+ children: /* @__PURE__ */ t($, { strokeWidth: 1.75, size: u })
157
163
  }
158
164
  ) }),
159
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.image ?? "" })
165
+ /* @__PURE__ */ t(h, { ...n, children: i.image ?? "" })
160
166
  ] }),
161
- /* @__PURE__ */ t.jsxs(e, { children: [
162
- /* @__PURE__ */ t.jsx(o, { asChild: !0, children: /* @__PURE__ */ t.jsx(
167
+ /* @__PURE__ */ e(o, { children: [
168
+ /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(
163
169
  "button",
164
170
  {
165
171
  type: "button",
166
172
  disabled: r,
167
- onClick: () => h(C.Video),
173
+ onClick: () => d(T.Video),
168
174
  "aria-label": i.video,
169
175
  title: i.video,
170
- children: /* @__PURE__ */ t.jsx(P, { strokeWidth: 1.75, size: s })
176
+ children: /* @__PURE__ */ t(G, { strokeWidth: 1.75, size: u })
171
177
  }
172
178
  ) }),
173
- /* @__PURE__ */ t.jsx(n, { side: "top", children: i.video ?? "" })
179
+ /* @__PURE__ */ t(h, { ...n, children: i.video ?? "" })
174
180
  ] })
175
181
  ] }),
176
- f ? /* @__PURE__ */ t.jsx("div", { className: "markdown-flow-editor-toolbar-right-wrapper", children: f }) : null
182
+ y ? /* @__PURE__ */ t("div", { className: "markdown-flow-editor-toolbar-right-wrapper", children: y }) : null
177
183
  ] }) });
178
- }, b = B(R);
184
+ }, et = M(H);
179
185
  export {
180
- b as default
186
+ et as default
181
187
  };
182
188
  //# sourceMappingURL=EditorToolbar.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\nimport type { MarkdownFlowDirection } from \"../../../lib/locale\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n tooltipDirection?: MarkdownFlowDirection;\n tooltipLanguage?: string;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n tooltipDirection,\n tooltipLanguage,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n const tooltipContentProps = {\n dir: tooltipDirection,\n lang: tooltipLanguage,\n side: \"top\" as const,\n };\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.search ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.image ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent {...tooltipContentProps}>\n {labels.video ?? \"\"}\n </TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","tooltipDirection","tooltipLanguage","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","tooltipContentProps","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../../../_virtual/jsx-runtime.cjs"),l=require("react"),b=require("../../ui/button.cjs"),N=require("../../ui/input.cjs"),X=require("../editor-context.cjs"),q=require("../utils/image.cjs"),Y=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),Z=require("../../../node_modules/lucide-react/dist/esm/icons/loader-circle.cjs"),D=require("../../../node_modules/lucide-react/dist/esm/icons/upload.cjs"),B=l.forwardRef(({value:a,onSelect:O,uploadProps:n},k)=>{const{t:c}=Y.useTranslation(),{setDialogOpen:w}=l.useContext(X.default),[i,d]=l.useState({resourceUrl:a?.resourceUrl??"",resourceTitle:a?.resourceTitle??"",scalePercent:a?.scalePercent??100}),[R,j]=l.useState(!!a?.resourceUrl),[x,U]=l.useState(a?.resourceUrl??""),[S,E]=l.useState(a?.scalePercent??100),[T,C]=l.useState(a?.scalePercent!==void 0?String(a.scalePercent):"100"),[I,f]=l.useState(""),[y,m]=l.useState("idle"),u=y==="loading";l.useEffect(()=>{if(a?.resourceUrl){d(t=>({...t,resourceUrl:a.resourceUrl??"",resourceTitle:a.resourceTitle??t.resourceTitle??"",scalePercent:a.scalePercent??t.scalePercent??100})),U(a.resourceUrl??"");const e=a.scalePercent!==void 0?a.scalePercent:100;E(e),C(a.scalePercent!==void 0?String(a.scalePercent):String(e)),j(!0)}m("idle")},[a]);const M=()=>{u||w(!1)},v=(e,t)=>{const r=q.sanitizeImageUrl(e);d({resourceUrl:r,resourceTitle:t||i.resourceTitle||c("imageDefaultTitle"),scalePercent:S}),U(r),j(!0),f(""),y==="loading"&&m("success")},V=()=>{u||i.resourceUrl&&(O({resourceUrl:i.resourceUrl,resourceTitle:i.resourceTitle||c("imageDefaultTitle","Image name"),scalePercent:S}),w(!1))},P=e=>{const t=e.target.value.trim();U(t),j(!1),f("")},z=e=>{d(t=>({...t,resourceTitle:e.target.value}))},_=e=>{const t=e.target.value.replace(/[^\d]/g,"");if(C(t),!t){E(void 0),d(o=>({...o,scalePercent:void 0}));return}const r=Math.max(1,Math.min(1e3,Number(t)));E(r),d(o=>({...o,scalePercent:r}))},A=()=>{if(!u){if(m("idle"),!x){f(c("imageUrlRequired","Please enter image URL"));return}if(!q.isValidImageUrl(x)){f(c("imageInvalidUrl","Please enter a valid image URL"));return}if(v(x),!i.resourceTitle&&x)try{const e=new URL(x),t=decodeURIComponent(e.pathname.split("/").filter(Boolean).pop()??"");t&&d(r=>({...r,resourceTitle:t}))}catch(e){console.error(e)}}},g=(e,t)=>{m("success"),v(e,t)},p=(e,t)=>{const r=e?.message||c("imageUploadError","Upload failed, please retry");f(r),m("error"),j(!!i.resourceUrl),n?.onError?.(e,t)},$=async e=>{const t={file:e,filename:n?.name,data:typeof n?.data=="function"?await n.data(e):n?.data,headers:n?.headers,withCredentials:n?.withCredentials,action:typeof n?.action=="function"?await n.action(e):n?.action,onProgress:r=>n?.onProgress?.(r,e),onError:r=>p(r,e),onSuccess:r=>{n?.onSuccess?.(r,e);const o=typeof r=="string"?r:r?.url??r?.data?.url;o?g(o,e.name):p(new Error("INVALID_RESPONSE"),e)}};n?.customRequest?.(t)},G=async e=>{const t=typeof n?.action=="function"?await n.action(e):n?.action;if(!t){g(URL.createObjectURL(e),e.name);return}try{const r=new FormData;r.append(n?.name??"file",e);const o=typeof n?.data=="function"?await n.data(e):n?.data;o&&Object.entries(o).forEach(([Q,W])=>{r.append(Q,W)});const h=await(await fetch(t,{method:"POST",body:r,headers:n?.headers,credentials:n?.withCredentials?"include":"same-origin"})).json();n?.onSuccess?.(h,e);const L=typeof h=="string"?h:h?.data;L?g(L,e.name):p(new Error("INVALID_RESPONSE"),e)}catch(r){p(r,e)}},H=async e=>{try{f("");let t=e;if(n?.beforeUpload&&(t=await n.beforeUpload(e),t===!1))return;t instanceof Blob&&!(t instanceof File)&&(t=new File([t],e.name,{type:t.type||e.type}));const r=t instanceof File?t:e;if(m("loading"),j(!1),n?.customRequest){await $(r);return}if(n?.action){await G(r);return}const o=URL.createObjectURL(r);g(o,r.name),n?.onSuccess?.({url:o},r)}catch(t){m("error"),p(t,e)}},J=async e=>{const t=e.target.files?.[0];t&&(await H(t),e.target.value="")},K=l.useMemo(()=>s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxRuntimeExports.jsx(N.Input,{type:"text",value:T,onChange:_,className:"w-24",inputMode:"numeric",pattern:"[0-9]*"}),s.jsxRuntimeExports.jsx("span",{children:"%"})]}),[T]);return s.jsxRuntimeExports.jsxs("div",{ref:k,className:"space-y-6",children:[s.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[s.jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-foreground",children:c("imageUrlLabel","URL")}),s.jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[s.jsxRuntimeExports.jsx(N.Input,{type:"text",placeholder:c("imageUrlPlaceholder","Please enter image URL"),value:x,onChange:P,autoComplete:"off"}),s.jsxRuntimeExports.jsx(b.Button,{className:"h-8",variant:"outline",type:"button",onClick:A,children:c("imageRunButton","Preview")})]})]}),s.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[s.jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-foreground",children:c("imageUploadLabel","Upload")}),s.jsxRuntimeExports.jsxs("label",{className:`relative group flex h-48 w-full flex-col items-center justify-center overflow-hidden rounded-lg border border-dashed transition-colors ${R?"bg-muted/40":"bg-muted/10"} ${u?"cursor-wait opacity-80 pointer-events-none":"cursor-pointer"}`,children:[u&&s.jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 bg-background/80",children:[s.jsxRuntimeExports.jsx(Z.default,{className:"h-6 w-6 animate-spin text-primary"}),s.jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground",children:c("imageUploading","Uploading...")})]}),R&&i.resourceUrl?s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsx("img",{src:i.resourceUrl,alt:i.resourceTitle||"preview",className:"h-full w-full object-contain"}),!u&&s.jsxRuntimeExports.jsxs("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",children:[s.jsxRuntimeExports.jsx(D.default,{className:"h-6 w-6",style:{color:"var(--base-muted-foreground, #737373)"}}),s.jsxRuntimeExports.jsx("span",{className:"text-sm",style:{color:"var(--base-muted-foreground, #737373)"},children:c("imageUploadPlaceholder","Drag files or click to upload")})]})]}):s.jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2 text-sm text-muted-foreground",children:[s.jsxRuntimeExports.jsx(D.default,{className:"h-6 w-6"}),s.jsxRuntimeExports.jsx("span",{children:c("imageUploadPlaceholder","Drag files or click to upload")})]}),s.jsxRuntimeExports.jsx("input",{type:"file",accept:"image/*",className:"hidden",disabled:u,onChange:J})]}),y==="success"&&s.jsxRuntimeExports.jsx("p",{className:"text-xs text-muted-foreground",children:c("imageUploadSuccess","Upload complete")})]}),R&&i.resourceUrl&&s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[s.jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-foreground",children:c("imageTitleLabel","Image Title")}),s.jsxRuntimeExports.jsx(N.Input,{type:"text",placeholder:c("imageTitlePlaceholder","Please enter image title"),value:i.resourceTitle||"",onChange:z})]}),s.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[s.jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-foreground",children:c("imageScaleLabel","Scale")}),K]})]}),!!I&&s.jsxRuntimeExports.jsx("p",{className:"text-xs text-destructive",children:I}),s.jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2",children:[s.jsxRuntimeExports.jsx(b.Button,{type:"button",variant:"outline",onClick:M,disabled:u,children:c("imageCancelButton","Cancel")}),s.jsxRuntimeExports.jsx(b.Button,{className:"h-8",onClick:V,disabled:!i?.resourceUrl||u,children:c("imageUseButton","Use Image")})]})]})});B.displayName="ImageInject";exports.default=B;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),o=require("react"),S=require("../../ui/button.cjs"),w=require("../../ui/input.cjs"),X=require("../editor-context.cjs"),q=require("../utils/image.cjs"),Y=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),Z=require("../../../node_modules/lucide-react/dist/esm/icons/loader-circle.cjs"),E=require("../../../node_modules/lucide-react/dist/esm/icons/upload.cjs"),B=o.forwardRef(({value:c,onSelect:O,uploadProps:r},k)=>{const{t:n}=Y.useTranslation(),{setDialogOpen:T}=o.useContext(X.default),[l,m]=o.useState({resourceUrl:c?.resourceUrl??"",resourceTitle:c?.resourceTitle??"",scalePercent:c?.scalePercent??100}),[p,h]=o.useState(!!c?.resourceUrl),[f,y]=o.useState(c?.resourceUrl??""),[C,b]=o.useState(c?.scalePercent??100),[I,R]=o.useState(c?.scalePercent!==void 0?String(c.scalePercent):"100"),[v,g]=o.useState(""),[N,d]=o.useState("idle"),u=N==="loading";o.useEffect(()=>{if(c?.resourceUrl){m(t=>({...t,resourceUrl:c.resourceUrl??"",resourceTitle:c.resourceTitle??t.resourceTitle??"",scalePercent:c.scalePercent??t.scalePercent??100})),y(c.resourceUrl??"");const e=c.scalePercent!==void 0?c.scalePercent:100;b(e),R(c.scalePercent!==void 0?String(c.scalePercent):String(e)),h(!0)}d("idle")},[c]);const M=()=>{u||T(!1)},L=(e,t)=>{const a=q.sanitizeImageUrl(e);m({resourceUrl:a,resourceTitle:t||l.resourceTitle||n("imageDefaultTitle"),scalePercent:C}),y(a),h(!0),g(""),N==="loading"&&d("success")},V=()=>{u||l.resourceUrl&&(O({resourceUrl:l.resourceUrl,resourceTitle:l.resourceTitle||n("imageDefaultTitle","Image name"),scalePercent:C}),T(!1))},P=e=>{const t=e.target.value.trim();y(t),h(!1),g("")},z=e=>{m(t=>({...t,resourceTitle:e.target.value}))},_=e=>{const t=e.target.value.replace(/[^\d]/g,"");if(R(t),!t){b(void 0),m(i=>({...i,scalePercent:void 0}));return}const a=Math.max(1,Math.min(1e3,Number(t)));b(a),m(i=>({...i,scalePercent:a}))},A=()=>{if(!u){if(d("idle"),!f){g(n("imageUrlRequired","Please enter image URL"));return}if(!q.isValidImageUrl(f)){g(n("imageInvalidUrl","Please enter a valid image URL"));return}if(L(f),!l.resourceTitle&&f)try{const e=new URL(f),t=decodeURIComponent(e.pathname.split("/").filter(Boolean).pop()??"");t&&m(a=>({...a,resourceTitle:t}))}catch(e){console.error(e)}}},U=(e,t)=>{d("success"),L(e,t)},x=(e,t)=>{const a=e?.message||n("imageUploadError","Upload failed, please retry");g(a),d("error"),h(!!l.resourceUrl),r?.onError?.(e,t)},$=async e=>{const t={file:e,filename:r?.name,data:typeof r?.data=="function"?await r.data(e):r?.data,headers:r?.headers,withCredentials:r?.withCredentials,action:typeof r?.action=="function"?await r.action(e):r?.action,onProgress:a=>r?.onProgress?.(a,e),onError:a=>x(a,e),onSuccess:a=>{r?.onSuccess?.(a,e);const i=typeof a=="string"?a:a?.url??a?.data?.url;i?U(i,e.name):x(new Error("INVALID_RESPONSE"),e)}};r?.customRequest?.(t)},G=async e=>{const t=typeof r?.action=="function"?await r.action(e):r?.action;if(!t){U(URL.createObjectURL(e),e.name);return}try{const a=new FormData;a.append(r?.name??"file",e);const i=typeof r?.data=="function"?await r.data(e):r?.data;i&&Object.entries(i).forEach(([Q,W])=>{a.append(Q,W)});const j=await(await fetch(t,{method:"POST",body:a,headers:r?.headers,credentials:r?.withCredentials?"include":"same-origin"})).json();r?.onSuccess?.(j,e);const D=typeof j=="string"?j:j?.data;D?U(D,e.name):x(new Error("INVALID_RESPONSE"),e)}catch(a){x(a,e)}},H=async e=>{try{g("");let t=e;if(r?.beforeUpload&&(t=await r.beforeUpload(e),t===!1))return;t instanceof Blob&&!(t instanceof File)&&(t=new File([t],e.name,{type:t.type||e.type}));const a=t instanceof File?t:e;if(d("loading"),h(!1),r?.customRequest){await $(a);return}if(r?.action){await G(a);return}const i=URL.createObjectURL(a);U(i,a.name),r?.onSuccess?.({url:i},a)}catch(t){d("error"),x(t,e)}},J=async e=>{const t=e.target.files?.[0];t&&(await H(t),e.target.value="")},K=o.useMemo(()=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(w.Input,{type:"text",value:I,onChange:_,className:"w-24",inputMode:"numeric",pattern:"[0-9]*"}),s.jsx("span",{children:"%"})]}),[I]);return s.jsxs("div",{ref:k,className:"space-y-6",children:[s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-sm font-medium text-foreground",children:n("imageUrlLabel","URL")}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx(w.Input,{type:"text",placeholder:n("imageUrlPlaceholder","Please enter image URL"),dir:"ltr",value:f,onChange:P,autoComplete:"off"}),s.jsx(S.Button,{className:"h-8",variant:"outline",type:"button",onClick:A,children:n("imageRunButton","Preview")})]})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-sm font-medium text-foreground",children:n("imageUploadLabel","Upload")}),s.jsxs("label",{className:`relative group flex h-48 w-full flex-col items-center justify-center overflow-hidden rounded-lg border border-dashed transition-colors ${p?"bg-muted/40":"bg-muted/10"} ${u?"cursor-wait opacity-80 pointer-events-none":"cursor-pointer"}`,children:[u&&s.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 bg-background/80",children:[s.jsx(Z.default,{className:"h-6 w-6 animate-spin text-primary"}),s.jsx("span",{className:"text-sm text-muted-foreground",children:n("imageUploading","Uploading...")})]}),p&&l.resourceUrl?s.jsxs(s.Fragment,{children:[s.jsx("img",{src:l.resourceUrl,alt:l.resourceTitle||n("imageDefaultTitle"),className:"h-full w-full object-contain"}),!u&&s.jsxs("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",children:[s.jsx(E.default,{className:"h-6 w-6",style:{color:"var(--base-muted-foreground, #737373)"}}),s.jsx("span",{className:"text-sm",style:{color:"var(--base-muted-foreground, #737373)"},children:n("imageUploadPlaceholder","Drag files or click to upload")})]})]}):s.jsxs("div",{className:"flex flex-col items-center gap-2 text-sm text-muted-foreground",children:[s.jsx(E.default,{className:"h-6 w-6"}),s.jsx("span",{children:n("imageUploadPlaceholder","Drag files or click to upload")})]}),s.jsx("input",{type:"file",accept:"image/*",className:"hidden",disabled:u,onChange:J})]}),N==="success"&&s.jsx("p",{className:"text-xs text-muted-foreground",children:n("imageUploadSuccess","Upload complete")})]}),p&&l.resourceUrl&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-sm font-medium text-foreground",children:n("imageTitleLabel","Image Title")}),s.jsx(w.Input,{type:"text",placeholder:n("imageTitlePlaceholder","Please enter image title"),value:l.resourceTitle||"",onChange:z})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-sm font-medium text-foreground",children:n("imageScaleLabel","Scale")}),K]})]}),!!v&&s.jsx("p",{className:"text-xs text-destructive",children:v}),s.jsxs("div",{className:"flex justify-end gap-2",children:[s.jsx(S.Button,{type:"button",variant:"outline",onClick:M,disabled:u,children:n("imageCancelButton","Cancel")}),s.jsx(S.Button,{className:"h-8",onClick:V,disabled:!l?.resourceUrl||u,children:n("imageUseButton","Use Image")})]})]})});B.displayName="ImageInject";exports.default=B;
2
2
  //# sourceMappingURL=ImageInject.cjs.map