markdown-flow-ui 0.2.13 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/README.md +7 -0
  2. package/dist/_virtual/index.es3.js +5 -4
  3. package/dist/_virtual/index.es3.js.map +1 -1
  4. package/dist/_virtual/index.es4.js +4 -5
  5. package/dist/_virtual/index.es4.js.map +1 -1
  6. package/dist/_virtual/index3.cjs +1 -1
  7. package/dist/_virtual/index4.cjs +1 -1
  8. package/dist/assets/markdown-flow-ui.css +10 -1
  9. package/dist/components/ContentRender/CodeBlock.cjs +1 -1
  10. package/dist/components/ContentRender/CodeBlock.cjs.map +1 -1
  11. package/dist/components/ContentRender/CodeBlock.d.ts +5 -0
  12. package/dist/components/ContentRender/CodeBlock.es.js +41 -38
  13. package/dist/components/ContentRender/CodeBlock.es.js.map +1 -1
  14. package/dist/components/ContentRender/ContentRender.cjs +2 -2
  15. package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
  16. package/dist/components/ContentRender/ContentRender.d.ts +9 -4
  17. package/dist/components/ContentRender/ContentRender.es.js +389 -298
  18. package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
  19. package/dist/components/ContentRender/IframeSandbox.cjs +7 -7
  20. package/dist/components/ContentRender/IframeSandbox.cjs.map +1 -1
  21. package/dist/components/ContentRender/IframeSandbox.d.ts +5 -1
  22. package/dist/components/ContentRender/IframeSandbox.es.js +311 -266
  23. package/dist/components/ContentRender/IframeSandbox.es.js.map +1 -1
  24. package/dist/components/ContentRender/MarkdownFlowInput.cjs +1 -1
  25. package/dist/components/ContentRender/MarkdownFlowInput.cjs.map +1 -1
  26. package/dist/components/ContentRender/MarkdownFlowInput.d.ts +5 -1
  27. package/dist/components/ContentRender/MarkdownFlowInput.es.js +37 -32
  28. package/dist/components/ContentRender/MarkdownFlowInput.es.js.map +1 -1
  29. package/dist/components/ContentRender/SandboxApp.cjs +2 -2
  30. package/dist/components/ContentRender/SandboxApp.cjs.map +1 -1
  31. package/dist/components/ContentRender/SandboxApp.d.ts +5 -1
  32. package/dist/components/ContentRender/SandboxApp.es.js +108 -103
  33. package/dist/components/ContentRender/SandboxApp.es.js.map +1 -1
  34. package/dist/components/ContentRender/blackboard-vendor.d.ts +1 -1
  35. package/dist/components/ContentRender/contentRenderI18n.cjs +1 -1
  36. package/dist/components/ContentRender/contentRenderI18n.cjs.map +1 -1
  37. package/dist/components/ContentRender/contentRenderI18n.d.ts +6 -1
  38. package/dist/components/ContentRender/contentRenderI18n.es.js +5 -56
  39. package/dist/components/ContentRender/contentRenderI18n.es.js.map +1 -1
  40. package/dist/components/ContentRender/contentRenderI18n.test.d.ts +1 -0
  41. package/dist/components/ContentRender/index.cjs +1 -1
  42. package/dist/components/ContentRender/index.d.ts +11 -11
  43. package/dist/components/ContentRender/index.es.js +1 -2
  44. package/dist/components/ContentRender/index.es.js.map +1 -1
  45. package/dist/components/ContentRender/locales/contentRender.json.cjs +2 -0
  46. package/dist/components/ContentRender/locales/contentRender.json.cjs.map +1 -0
  47. package/dist/components/ContentRender/locales/contentRender.json.d.ts +90 -0
  48. package/dist/components/ContentRender/locales/contentRender.json.es.js +11 -0
  49. package/dist/components/ContentRender/locales/contentRender.json.es.js.map +1 -0
  50. package/dist/components/ContentRender/plugins/CustomVariable.cjs +1 -1
  51. package/dist/components/ContentRender/plugins/CustomVariable.cjs.map +1 -1
  52. package/dist/components/ContentRender/plugins/CustomVariable.d.ts +7 -3
  53. package/dist/components/ContentRender/plugins/CustomVariable.es.js +165 -151
  54. package/dist/components/ContentRender/plugins/CustomVariable.es.js.map +1 -1
  55. package/dist/components/ContentRender/plugins/MermaidChart.cjs +1 -1
  56. package/dist/components/ContentRender/plugins/MermaidChart.cjs.map +1 -1
  57. package/dist/components/ContentRender/plugins/MermaidChart.d.ts +1 -0
  58. package/dist/components/ContentRender/plugins/MermaidChart.es.js +68 -44
  59. package/dist/components/ContentRender/plugins/MermaidChart.es.js.map +1 -1
  60. package/dist/components/MarkdownFlow/MarkdownFlow.cjs +1 -1
  61. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.map +1 -1
  62. package/dist/components/MarkdownFlow/MarkdownFlow.d.ts +12 -4
  63. package/dist/components/MarkdownFlow/MarkdownFlow.es.js +51 -39
  64. package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
  65. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs +1 -1
  66. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs.map +1 -1
  67. package/dist/components/MarkdownFlow/ScrollToBottomButton.d.ts +31 -1
  68. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js +46 -17
  69. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js.map +1 -1
  70. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs +2 -0
  71. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs.map +1 -0
  72. package/dist/components/MarkdownFlow/ScrollToBottomControl.d.ts +18 -0
  73. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js +47 -0
  74. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js.map +1 -0
  75. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs +1 -1
  76. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.cjs.map +1 -1
  77. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.d.ts +1 -1
  78. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js +33 -52
  79. package/dist/components/MarkdownFlow/ScrollableMarkdownFlow.es.js.map +1 -1
  80. package/dist/components/MarkdownFlow/index.cjs +1 -1
  81. package/dist/components/MarkdownFlow/index.d.ts +9 -6
  82. package/dist/components/MarkdownFlow/index.es.js +6 -6
  83. package/dist/components/MarkdownFlow/index.es.js.map +1 -1
  84. package/dist/components/MarkdownFlow/useScrollToBottom.cjs +1 -1
  85. package/dist/components/MarkdownFlow/useScrollToBottom.cjs.map +1 -1
  86. package/dist/components/MarkdownFlow/useScrollToBottom.d.ts +40 -8
  87. package/dist/components/MarkdownFlow/useScrollToBottom.es.js +352 -83
  88. package/dist/components/MarkdownFlow/useScrollToBottom.es.js.map +1 -1
  89. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
  90. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
  91. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.d.ts +5 -3
  92. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +371 -324
  93. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
  94. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs +1 -1
  95. package/dist/components/MarkdownFlowEditor/components/CustomDialog.cjs.map +1 -1
  96. package/dist/components/MarkdownFlowEditor/components/CustomDialog.d.ts +10 -0
  97. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js +22 -19
  98. package/dist/components/MarkdownFlowEditor/components/CustomDialog.es.js.map +1 -1
  99. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs +1 -1
  100. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs.map +1 -1
  101. package/dist/components/MarkdownFlowEditor/components/CustomPopover.d.ts +8 -0
  102. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js +19 -15
  103. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js.map +1 -1
  104. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs +1 -1
  105. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.map +1 -1
  106. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.d.ts +4 -1
  107. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js +99 -93
  108. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
  109. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs +1 -1
  110. package/dist/components/MarkdownFlowEditor/components/ImageInject.cjs.map +1 -1
  111. package/dist/components/MarkdownFlowEditor/components/ImageInject.d.ts +1 -1
  112. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js +183 -182
  113. package/dist/components/MarkdownFlowEditor/components/ImageInject.es.js.map +1 -1
  114. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs +1 -1
  115. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs.map +1 -1
  116. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.d.ts +1 -1
  117. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js +107 -103
  118. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js.map +1 -1
  119. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +1 -1
  120. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +1 -1
  121. package/dist/components/MarkdownFlowEditor/components/VariableSelect.d.ts +1 -1
  122. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +106 -106
  123. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +1 -1
  124. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs +1 -1
  125. package/dist/components/MarkdownFlowEditor/components/VideoInject.cjs.map +1 -1
  126. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js +64 -63
  127. package/dist/components/MarkdownFlowEditor/components/VideoInject.es.js.map +1 -1
  128. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs +1 -1
  129. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.cjs.map +1 -1
  130. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js +13 -13
  131. package/dist/components/MarkdownFlowEditor/components/icons/ButtonIcon.es.js.map +1 -1
  132. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs +1 -1
  133. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs.map +1 -1
  134. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js +12 -12
  135. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js.map +1 -1
  136. package/dist/components/MarkdownFlowEditor/editor-context.d.ts +1 -1
  137. package/dist/components/MarkdownFlowEditor/editorI18n.cjs +1 -1
  138. package/dist/components/MarkdownFlowEditor/editorI18n.cjs.map +1 -1
  139. package/dist/components/MarkdownFlowEditor/editorI18n.d.ts +290 -0
  140. package/dist/components/MarkdownFlowEditor/editorI18n.es.js +12 -8
  141. package/dist/components/MarkdownFlowEditor/editorI18n.es.js.map +1 -1
  142. package/dist/components/MarkdownFlowEditor/editorI18n.test.d.ts +1 -0
  143. package/dist/components/MarkdownFlowEditor/index.d.ts +6 -6
  144. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +2 -0
  145. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs.map +1 -0
  146. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +72 -0
  147. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +140 -0
  148. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js.map +1 -0
  149. package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
  150. package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +2 -0
  151. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +118 -114
  152. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js.map +1 -1
  153. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
  154. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +2 -0
  155. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +118 -114
  156. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js.map +1 -1
  157. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +2 -0
  158. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs.map +1 -0
  159. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +72 -0
  160. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +140 -0
  161. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js.map +1 -0
  162. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
  163. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +2 -0
  164. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +70 -66
  165. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js.map +1 -1
  166. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs +1 -1
  167. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs.map +1 -1
  168. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js +40 -35
  169. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js.map +1 -1
  170. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.d.ts +1 -1
  171. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs +1 -1
  172. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs.map +1 -1
  173. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js +27 -23
  174. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js.map +1 -1
  175. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs +2 -0
  176. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.cjs.map +1 -0
  177. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.d.ts +7 -0
  178. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js +12 -0
  179. package/dist/components/MarkdownFlowEditor/plugins/mediaPlaceholderLabels.es.js.map +1 -0
  180. package/dist/components/MarkdownFlowEditor/utils.d.ts +1 -1
  181. package/dist/components/Slide/MarkdownSlideScaling.cjs +1 -1
  182. package/dist/components/Slide/MarkdownSlideScaling.cjs.map +1 -1
  183. package/dist/components/Slide/MarkdownSlideScaling.d.ts +1 -1
  184. package/dist/components/Slide/MarkdownSlideScaling.es.js +20 -20
  185. package/dist/components/Slide/MarkdownSlideScaling.es.js.map +1 -1
  186. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs +1 -1
  187. package/dist/components/Slide/MobilePlayerSettingsSheet.cjs.map +1 -1
  188. package/dist/components/Slide/MobilePlayerSettingsSheet.d.ts +7 -2
  189. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js +61 -57
  190. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js.map +1 -1
  191. package/dist/components/Slide/Player.cjs +1 -1
  192. package/dist/components/Slide/Player.cjs.map +1 -1
  193. package/dist/components/Slide/Player.d.ts +6 -6
  194. package/dist/components/Slide/Player.es.js +547 -541
  195. package/dist/components/Slide/Player.es.js.map +1 -1
  196. package/dist/components/Slide/Slide.cjs +1 -1
  197. package/dist/components/Slide/Slide.cjs.map +1 -1
  198. package/dist/components/Slide/Slide.d.ts +14 -12
  199. package/dist/components/Slide/Slide.es.js +745 -726
  200. package/dist/components/Slide/Slide.es.js.map +1 -1
  201. package/dist/components/Slide/SubtitleOverlay.cjs +1 -1
  202. package/dist/components/Slide/SubtitleOverlay.cjs.map +1 -1
  203. package/dist/components/Slide/SubtitleOverlay.d.ts +2 -2
  204. package/dist/components/Slide/SubtitleOverlay.es.js +17 -17
  205. package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
  206. package/dist/components/Slide/diff-utils.d.ts +1 -1
  207. package/dist/components/Slide/index.d.ts +12 -12
  208. package/dist/components/Slide/locales/slide.json.cjs +2 -0
  209. package/dist/components/Slide/locales/slide.json.cjs.map +1 -0
  210. package/dist/components/Slide/locales/slide.json.d.ts +205 -0
  211. package/dist/components/Slide/locales/slide.json.es.js +11 -0
  212. package/dist/components/Slide/locales/slide.json.es.js.map +1 -0
  213. package/dist/components/Slide/slideI18n.cjs +1 -1
  214. package/dist/components/Slide/slideI18n.cjs.map +1 -1
  215. package/dist/components/Slide/slideI18n.d.ts +6 -3
  216. package/dist/components/Slide/slideI18n.es.js +10 -155
  217. package/dist/components/Slide/slideI18n.es.js.map +1 -1
  218. package/dist/components/Slide/useSlide.d.ts +1 -1
  219. package/dist/components/Slide/utils/appendedMarkerAdvance.d.ts +1 -1
  220. package/dist/components/Slide/utils/audioSegments.d.ts +1 -1
  221. package/dist/components/Slide/utils/interactionResolution.d.ts +2 -2
  222. package/dist/components/Slide/utils/listenModeElementList.d.ts +2 -2
  223. package/dist/components/Slide/utils/markdownScaling.d.ts +1 -1
  224. package/dist/components/Slide/utils/playerCustomActions.d.ts +2 -2
  225. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs +1 -1
  226. package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.map +1 -1
  227. package/dist/components/Slide/utils/playerKeyboardShortcuts.d.ts +1 -1
  228. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js +20 -20
  229. package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js.map +1 -1
  230. package/dist/components/Slide/utils/runStreamFixture.d.ts +1 -1
  231. package/dist/components/Slide/utils/segmentSeek.d.ts +1 -1
  232. package/dist/components/Slide/utils/silentStepAutoAdvance.d.ts +1 -1
  233. package/dist/components/Slide/utils/streamingNavigation.d.ts +1 -1
  234. package/dist/components/Slide/utils/subtitleCue.d.ts +1 -1
  235. package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +1 -1
  236. package/dist/components/index.d.ts +22 -18
  237. package/dist/components/ui/button.cjs +1 -1
  238. package/dist/components/ui/button.cjs.map +1 -1
  239. package/dist/components/ui/button.es.js +12 -13
  240. package/dist/components/ui/button.es.js.map +1 -1
  241. package/dist/components/ui/checkbox.cjs +1 -1
  242. package/dist/components/ui/checkbox.cjs.map +1 -1
  243. package/dist/components/ui/checkbox.es.js +35 -35
  244. package/dist/components/ui/checkbox.es.js.map +1 -1
  245. package/dist/components/ui/dialog.cjs +1 -1
  246. package/dist/components/ui/dialog.cjs.map +1 -1
  247. package/dist/components/ui/dialog.d.ts +5 -1
  248. package/dist/components/ui/dialog.es.js +37 -37
  249. package/dist/components/ui/dialog.es.js.map +1 -1
  250. package/dist/components/ui/input.cjs +1 -1
  251. package/dist/components/ui/input.cjs.map +1 -1
  252. package/dist/components/ui/input.es.js +4 -4
  253. package/dist/components/ui/input.es.js.map +1 -1
  254. package/dist/components/ui/inputGroup/button.cjs +1 -1
  255. package/dist/components/ui/inputGroup/button.cjs.map +1 -1
  256. package/dist/components/ui/inputGroup/button.es.js +9 -10
  257. package/dist/components/ui/inputGroup/button.es.js.map +1 -1
  258. package/dist/components/ui/inputGroup/input-group.cjs +1 -1
  259. package/dist/components/ui/inputGroup/input-group.cjs.map +1 -1
  260. package/dist/components/ui/inputGroup/input-group.d.ts +1 -1
  261. package/dist/components/ui/inputGroup/input-group.es.js +10 -10
  262. package/dist/components/ui/inputGroup/input-group.es.js.map +1 -1
  263. package/dist/components/ui/inputGroup/textarea.cjs +1 -1
  264. package/dist/components/ui/inputGroup/textarea.cjs.map +1 -1
  265. package/dist/components/ui/inputGroup/textarea.es.js +3 -3
  266. package/dist/components/ui/inputGroup/textarea.es.js.map +1 -1
  267. package/dist/components/ui/loading-overlay-card.cjs +2 -2
  268. package/dist/components/ui/loading-overlay-card.cjs.map +1 -1
  269. package/dist/components/ui/loading-overlay-card.es.js +11 -11
  270. package/dist/components/ui/loading-overlay-card.es.js.map +1 -1
  271. package/dist/components/ui/popover.cjs +1 -1
  272. package/dist/components/ui/popover.cjs.map +1 -1
  273. package/dist/components/ui/popover.es.js +6 -6
  274. package/dist/components/ui/popover.es.js.map +1 -1
  275. package/dist/components/ui/tooltip.cjs +1 -1
  276. package/dist/components/ui/tooltip.cjs.map +1 -1
  277. package/dist/components/ui/tooltip.es.js +16 -16
  278. package/dist/components/ui/tooltip.es.js.map +1 -1
  279. package/dist/editor.d.ts +2 -2
  280. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  281. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  282. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  283. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  284. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  285. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  286. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  287. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  288. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  289. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  290. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  291. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  292. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  293. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  294. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  295. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  296. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  297. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  298. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  299. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  300. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  301. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  302. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  303. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  304. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  305. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  306. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  307. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  308. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  309. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  310. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  311. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  312. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  313. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  314. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  315. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  316. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  317. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  318. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  319. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  320. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  321. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  322. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  323. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  324. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  325. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  326. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  327. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  328. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  329. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  330. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  331. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  332. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  333. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  334. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  335. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  336. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  337. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  338. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  339. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  340. package/dist/index.cjs +1 -1
  341. package/dist/index.d.ts +2 -2
  342. package/dist/index.es.js +22 -19
  343. package/dist/index.es.js.map +1 -1
  344. package/dist/lib/locale.cjs +1 -1
  345. package/dist/lib/locale.cjs.map +1 -1
  346. package/dist/lib/locale.d.ts +5 -1
  347. package/dist/lib/locale.es.js +26 -13
  348. package/dist/lib/locale.es.js.map +1 -1
  349. package/dist/lib/locale.test.d.ts +1 -0
  350. package/dist/lib/useDetachedLanguage.cjs +2 -0
  351. package/dist/lib/useDetachedLanguage.cjs.map +1 -0
  352. package/dist/lib/useDetachedLanguage.d.ts +3 -0
  353. package/dist/lib/useDetachedLanguage.es.js +25 -0
  354. package/dist/lib/useDetachedLanguage.es.js.map +1 -0
  355. package/dist/lib/useResolvedDirection.cjs +2 -0
  356. package/dist/lib/useResolvedDirection.cjs.map +1 -0
  357. package/dist/lib/useResolvedDirection.d.ts +6 -0
  358. package/dist/lib/useResolvedDirection.es.js +37 -0
  359. package/dist/lib/useResolvedDirection.es.js.map +1 -0
  360. package/dist/markdown-flow-ui-lib.css +1 -1
  361. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -1
  362. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  363. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js +6 -6
  364. package/dist/node_modules/@radix-ui/react-arrow/dist/index.es.js.map +1 -1
  365. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -1
  366. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  367. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js +21 -21
  368. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -1
  369. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs +2 -2
  370. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs.map +1 -1
  371. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js +100 -100
  372. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js.map +1 -1
  373. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +1 -1
  374. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  375. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js +38 -38
  376. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js.map +1 -1
  377. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +1 -1
  378. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  379. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js +9 -9
  380. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js.map +1 -1
  381. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs +1 -1
  382. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs.map +1 -1
  383. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js +95 -95
  384. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js.map +1 -1
  385. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +1 -1
  386. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  387. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js +48 -48
  388. package/dist/node_modules/@radix-ui/react-popper/dist/index.es.js.map +1 -1
  389. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +1 -1
  390. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  391. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js +6 -6
  392. package/dist/node_modules/@radix-ui/react-portal/dist/index.es.js.map +1 -1
  393. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -1
  394. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  395. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js +9 -9
  396. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -1
  397. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -1
  398. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  399. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js +17 -17
  400. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -1
  401. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -1
  402. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs.map +1 -1
  403. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js +100 -100
  404. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js.map +1 -1
  405. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -1
  406. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs.map +1 -1
  407. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js +6 -6
  408. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.es.js.map +1 -1
  409. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs +1 -1
  410. package/dist/node_modules/@uiw/react-codemirror/esm/index.cjs.map +1 -1
  411. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js +27 -27
  412. package/dist/node_modules/@uiw/react-codemirror/esm/index.es.js.map +1 -1
  413. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.cjs → chevrons-down.cjs} +2 -2
  414. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.cjs.map +1 -0
  415. package/dist/node_modules/lucide-react/dist/esm/icons/{chevron-down.es.js → chevrons-down.es.js} +6 -3
  416. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-down.es.js.map +1 -0
  417. package/dist/node_modules/rc-input/es/BaseInput.cjs +1 -1
  418. package/dist/node_modules/rc-input/es/BaseInput.es.js +1 -1
  419. package/dist/node_modules/rc-textarea/es/ResizableTextArea.cjs +1 -1
  420. package/dist/node_modules/rc-textarea/es/ResizableTextArea.es.js +1 -1
  421. package/dist/node_modules/rc-textarea/es/TextArea.cjs +1 -1
  422. package/dist/node_modules/rc-textarea/es/TextArea.es.js +1 -1
  423. package/dist/node_modules/rc-textarea/es/index.cjs +1 -1
  424. package/dist/node_modules/rc-textarea/es/index.es.js +1 -1
  425. package/dist/node_modules/react-markdown/lib/index.cjs +1 -1
  426. package/dist/node_modules/react-markdown/lib/index.cjs.map +1 -1
  427. package/dist/node_modules/react-markdown/lib/index.es.js +39 -39
  428. package/dist/node_modules/react-markdown/lib/index.es.js.map +1 -1
  429. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs +1 -1
  430. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js +1 -1
  431. package/dist/renderer.cjs +1 -1
  432. package/dist/renderer.d.ts +18 -17
  433. package/dist/renderer.es.js +20 -17
  434. package/dist/renderer.es.js.map +1 -1
  435. package/dist/scroll.cjs +2 -0
  436. package/dist/scroll.cjs.map +1 -0
  437. package/dist/scroll.d.ts +6 -0
  438. package/dist/scroll.es.js +9 -0
  439. package/dist/scroll.es.js.map +1 -0
  440. package/dist/slide.d.ts +3 -3
  441. package/package.json +13 -2
  442. package/dist/_virtual/jsx-runtime.cjs +0 -2
  443. package/dist/_virtual/jsx-runtime.cjs.map +0 -1
  444. package/dist/_virtual/jsx-runtime.es.js +0 -6
  445. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  446. package/dist/_virtual/jsx-runtime.es2.js +0 -5
  447. package/dist/_virtual/jsx-runtime.es2.js.map +0 -1
  448. package/dist/_virtual/jsx-runtime2.cjs +0 -2
  449. package/dist/_virtual/jsx-runtime2.cjs.map +0 -1
  450. package/dist/_virtual/react-jsx-runtime.development.cjs +0 -2
  451. package/dist/_virtual/react-jsx-runtime.development.cjs.map +0 -1
  452. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  453. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  454. package/dist/_virtual/react-jsx-runtime.production.cjs +0 -2
  455. package/dist/_virtual/react-jsx-runtime.production.cjs.map +0 -1
  456. package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
  457. package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
  458. package/dist/lib/localeTextMap.cjs +0 -2
  459. package/dist/lib/localeTextMap.cjs.map +0 -1
  460. package/dist/lib/localeTextMap.es.js +0 -5
  461. package/dist/lib/localeTextMap.es.js.map +0 -1
  462. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.map +0 -1
  463. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.es.js.map +0 -1
  464. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -24
  465. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.map +0 -1
  466. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -409
  467. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  468. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs +0 -10
  469. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.map +0 -1
  470. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
  471. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
  472. package/dist/node_modules/react/jsx-runtime.cjs +0 -2
  473. package/dist/node_modules/react/jsx-runtime.cjs.map +0 -1
  474. package/dist/node_modules/react/jsx-runtime.es.js +0 -11
  475. package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
@@ -1,70 +1,94 @@
1
- import { j as e } from "../../../_virtual/jsx-runtime.es.js";
2
- import v, { useState as i, useEffect as w } from "react";
3
- import d from "../../../node_modules/mermaid/dist/mermaid.core.es.js";
4
- import { CJK_SAFE_SANS_FONT_FAMILY as h } from "../cjkFontFamily.es.js";
5
- const c = {
1
+ import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
+ import S, { useState as l, useEffect as _ } from "react";
3
+ import c from "../../../node_modules/mermaid/dist/mermaid.core.es.js";
4
+ import { CJK_SAFE_SANS_FONT_FAMILY as p } from "../cjkFontFamily.es.js";
5
+ const d = {
6
6
  emptyChart: "Empty chart content",
7
7
  loading: "Loading Mermaid chart...",
8
+ error: "Unable to display the Mermaid chart",
8
9
  badge: "mermaid"
9
- }, g = (r) => r.trim().replace(/^_streaming\s*/i, ""), N = ({
10
- chart: r,
11
- messages: a,
12
- frozen: l
10
+ }, f = (e) => e.trim().replace(/^_streaming\s*/i, ""), v = ({
11
+ chart: e,
12
+ messages: r,
13
+ frozen: g
13
14
  }) => {
14
- const [m, s] = i(""), [p, n] = i(""), [y, x] = i(!1), f = async () => {
15
+ const [h, s] = l(""), [y, o] = l(""), [u, b] = l(!1), C = async () => {
15
16
  try {
16
- const t = g(r);
17
- if (!t) {
18
- n(a?.emptyChart ?? c.emptyChart), s("");
17
+ const a = f(e);
18
+ if (!a) {
19
+ o(""), s("");
19
20
  return;
20
21
  }
21
- d.initialize({
22
+ c.initialize({
22
23
  startOnLoad: !1,
23
24
  theme: "default",
24
25
  securityLevel: "loose",
25
- fontFamily: h,
26
+ fontFamily: p,
26
27
  themeVariables: {
27
- fontFamily: h
28
+ fontFamily: p
28
29
  }
29
30
  });
30
31
  try {
31
- await d.parse(t);
32
- } catch (b) {
33
- const j = String(b).toLowerCase();
34
- n(j), s(""), x(!0);
32
+ await c.parse(a);
33
+ } catch (x) {
34
+ const N = String(x).toLowerCase();
35
+ o(N), s(""), b(!0);
35
36
  return;
36
37
  }
37
- const o = `mermaid-${Date.now()}`, { svg: u } = await d.render(o, t);
38
- s(u), n("");
39
- } catch (t) {
40
- const o = String(t).toLowerCase();
41
- n(o), s("");
38
+ const n = `mermaid-${Date.now()}`, { svg: w } = await c.render(n, a);
39
+ s(w), o("");
40
+ } catch (a) {
41
+ const n = String(a).toLowerCase();
42
+ o(n), s("");
42
43
  }
43
44
  };
44
- if (w(() => {
45
- l && y || f();
46
- }, [r, l]), p) {
47
- const t = g(r) || r.trim();
48
- return /* @__PURE__ */ e.jsxs("div", { className: "my-4 border border-gray-200 rounded-lg bg-gray-50", children: [
49
- /* @__PURE__ */ e.jsxs("div", { className: "px-4 py-3 bg-gray-100 border-b border-gray-200 flex items-center gap-2", children: [
50
- /* @__PURE__ */ e.jsx("span", { className: "text-yellow-600", children: "⚠️" }),
51
- /* @__PURE__ */ e.jsx("span", { className: "text-sm text-yellow-700 font-medium whitespace-pre-wrap", children: p })
52
- ] }),
53
- /* @__PURE__ */ e.jsxs("div", { className: "relative", children: [
54
- /* @__PURE__ */ e.jsx("pre", { className: "p-4 text-sm font-mono text-yellow-800", children: /* @__PURE__ */ e.jsx("code", { children: t }) }),
55
- /* @__PURE__ */ e.jsx("div", { className: "absolute top-2 right-2 px-2 py-1 text-xs text-yellow-700 bg-white/90 rounded border border-gray-200", children: a?.badge ?? c.badge })
56
- ] })
57
- ] });
45
+ _(() => {
46
+ g && u || C();
47
+ }, [e, g]);
48
+ const i = f(e);
49
+ if (y || !i) {
50
+ const a = i || e.trim();
51
+ return /* @__PURE__ */ m(
52
+ "div",
53
+ {
54
+ className: "my-4 border border-gray-200 rounded-lg bg-gray-50",
55
+ "data-mermaid-error": y || void 0,
56
+ children: [
57
+ /* @__PURE__ */ m("div", { className: "px-4 py-3 bg-gray-100 border-b border-gray-200 flex items-center gap-2", children: [
58
+ /* @__PURE__ */ t("span", { className: "text-yellow-600", children: "⚠️" }),
59
+ /* @__PURE__ */ t(
60
+ "span",
61
+ {
62
+ dir: "auto",
63
+ className: "text-sm text-yellow-700 font-medium whitespace-pre-wrap",
64
+ children: i ? r?.error ?? d.error : r?.emptyChart ?? d.emptyChart
65
+ }
66
+ )
67
+ ] }),
68
+ /* @__PURE__ */ m("div", { className: "relative", children: [
69
+ /* @__PURE__ */ t(
70
+ "pre",
71
+ {
72
+ dir: "ltr",
73
+ className: "p-4 text-sm font-mono text-yellow-800 text-start [unicode-bidi:isolate]",
74
+ children: /* @__PURE__ */ t("code", { children: a })
75
+ }
76
+ ),
77
+ /* @__PURE__ */ t("div", { className: "absolute top-2 right-2 px-2 py-1 text-xs text-yellow-700 bg-white/90 rounded border border-gray-200", children: r?.badge ?? d.badge })
78
+ ] })
79
+ ]
80
+ }
81
+ );
58
82
  }
59
- return /* @__PURE__ */ e.jsx("div", { className: "my-4 text-center overflow-auto content-render-mermaid", children: m ? /* @__PURE__ */ e.jsx(
83
+ return /* @__PURE__ */ t("div", { className: "my-4 text-center overflow-auto content-render-mermaid", children: h ? /* @__PURE__ */ t(
60
84
  "div",
61
85
  {
62
86
  className: "content-render-mermaid-inner",
63
- dangerouslySetInnerHTML: { __html: m }
87
+ dangerouslySetInnerHTML: { __html: h }
64
88
  }
65
- ) : /* @__PURE__ */ e.jsx("div", { className: "py-8 text-gray-500 italic", children: a?.loading ?? c.loading }) });
66
- }, L = v.memo(N, (r, a) => r.chart === a.chart && r.frozen === a.frozen);
89
+ ) : /* @__PURE__ */ t("div", { className: "py-8 text-gray-500 italic", children: r?.loading ?? d.loading }) });
90
+ }, A = S.memo(v, (e, r) => e.chart === r.chart && e.frozen === r.frozen && e.messages?.emptyChart === r.messages?.emptyChart && e.messages?.loading === r.messages?.loading && e.messages?.error === r.messages?.error && e.messages?.badge === r.messages?.badge);
67
91
  export {
68
- L as default
92
+ A as default
69
93
  };
70
94
  //# sourceMappingURL=MermaidChart.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MermaidChart.es.js","sources":["../../../../src/components/ContentRender/plugins/MermaidChart.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport mermaid from \"mermaid\";\nimport { CJK_SAFE_SANS_FONT_FAMILY } from \"../cjkFontFamily\";\n\nexport interface MermaidChartProps {\n chart: string;\n messages?: {\n emptyChart?: string;\n loading?: string;\n badge?: string;\n };\n frozen?: boolean;\n}\n\nconst DEFAULT_MESSAGES = {\n emptyChart: \"Empty chart content\",\n loading: \"Loading Mermaid chart...\",\n badge: \"mermaid\",\n} as const;\n\nconst preprocessChart = (raw: string) =>\n raw.trim().replace(/^_streaming\\s*/i, \"\");\n\nconst MermaidChart: React.FC<MermaidChartProps> = ({\n chart,\n messages,\n frozen,\n}) => {\n const [svg, setSvg] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [hasRendered, setHasRendered] = useState(false);\n\n const renderChart = async () => {\n try {\n const cleaned = preprocessChart(chart);\n\n if (!cleaned) {\n setError(messages?.emptyChart ?? DEFAULT_MESSAGES.emptyChart);\n setSvg(\"\");\n return;\n }\n\n // Initialize Mermaid with an explicit CJK-safe font stack.\n // Using a concrete stack avoids clipping caused by `inherit` resolving to\n // Storybook's default font during off-screen rendering.\n mermaid.initialize({\n startOnLoad: false,\n theme: \"default\",\n securityLevel: \"loose\",\n fontFamily: CJK_SAFE_SANS_FONT_FAMILY,\n themeVariables: {\n fontFamily: CJK_SAFE_SANS_FONT_FAMILY,\n },\n });\n\n // use mermaid.parse to check for errors\n try {\n await mermaid.parse(cleaned);\n } catch (parseErr) {\n const parseErrorMsg = String(parseErr).toLowerCase();\n setError(parseErrorMsg);\n setSvg(\"\");\n // once render success, setHasRendered flag\n setHasRendered(true);\n return;\n }\n\n const id = `mermaid-${Date.now()}`;\n\n // Render the chart\n const { svg: renderedSvg } = await mermaid.render(id, cleaned);\n setSvg(renderedSvg);\n setError(\"\");\n } catch (err) {\n const errorMsg = String(err).toLowerCase();\n setError(errorMsg);\n setSvg(\"\");\n }\n };\n\n useEffect(() => {\n if (frozen && hasRendered) return; // 核心:被冻结就不渲染\n renderChart();\n }, [chart, frozen]);\n\n if (error) {\n const displayChart = preprocessChart(chart) || chart.trim();\n return (\n <div className=\"my-4 border border-gray-200 rounded-lg bg-gray-50\">\n <div className=\"px-4 py-3 bg-gray-100 border-b border-gray-200 flex items-center gap-2\">\n <span className=\"text-yellow-600\">⚠️</span>\n <span className=\"text-sm text-yellow-700 font-medium whitespace-pre-wrap\">\n {error}\n </span>\n </div>\n <div className=\"relative\">\n <pre className=\"p-4 text-sm font-mono text-yellow-800\">\n <code>{displayChart}</code>\n </pre>\n <div className=\"absolute top-2 right-2 px-2 py-1 text-xs text-yellow-700 bg-white/90 rounded border border-gray-200\">\n {messages?.badge ?? DEFAULT_MESSAGES.badge}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"my-4 text-center overflow-auto content-render-mermaid\">\n {svg ? (\n <div\n className=\"content-render-mermaid-inner\"\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n ) : (\n <div className=\"py-8 text-gray-500 italic\">\n {messages?.loading ?? DEFAULT_MESSAGES.loading}\n </div>\n )}\n </div>\n );\n};\n\nexport default React.memo(MermaidChart, (prev, next) => {\n return prev.chart === next.chart && prev.frozen === next.frozen;\n});\n"],"names":["DEFAULT_MESSAGES","preprocessChart","raw","MermaidChart","chart","messages","frozen","svg","setSvg","useState","error","setError","hasRendered","setHasRendered","renderChart","cleaned","mermaid","CJK_SAFE_SANS_FONT_FAMILY","parseErr","parseErrorMsg","id","renderedSvg","err","errorMsg","useEffect","displayChart","jsxs","jsx","MermaidChart$1","React","prev","next"],"mappings":"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"}
1
+ {"version":3,"file":"MermaidChart.es.js","sources":["../../../../src/components/ContentRender/plugins/MermaidChart.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport mermaid from \"mermaid\";\nimport { CJK_SAFE_SANS_FONT_FAMILY } from \"../cjkFontFamily\";\n\nexport interface MermaidChartProps {\n chart: string;\n messages?: {\n emptyChart?: string;\n loading?: string;\n error?: string;\n badge?: string;\n };\n frozen?: boolean;\n}\n\nconst DEFAULT_MESSAGES = {\n emptyChart: \"Empty chart content\",\n loading: \"Loading Mermaid chart...\",\n error: \"Unable to display the Mermaid chart\",\n badge: \"mermaid\",\n} as const;\n\nconst preprocessChart = (raw: string) =>\n raw.trim().replace(/^_streaming\\s*/i, \"\");\n\nconst MermaidChart: React.FC<MermaidChartProps> = ({\n chart,\n messages,\n frozen,\n}) => {\n const [svg, setSvg] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [hasRendered, setHasRendered] = useState(false);\n\n const renderChart = async () => {\n try {\n const cleaned = preprocessChart(chart);\n\n if (!cleaned) {\n setError(\"\");\n setSvg(\"\");\n return;\n }\n\n // Initialize Mermaid with an explicit CJK-safe font stack.\n // Using a concrete stack avoids clipping caused by `inherit` resolving to\n // Storybook's default font during off-screen rendering.\n mermaid.initialize({\n startOnLoad: false,\n theme: \"default\",\n securityLevel: \"loose\",\n fontFamily: CJK_SAFE_SANS_FONT_FAMILY,\n themeVariables: {\n fontFamily: CJK_SAFE_SANS_FONT_FAMILY,\n },\n });\n\n // use mermaid.parse to check for errors\n try {\n await mermaid.parse(cleaned);\n } catch (parseErr) {\n const parseErrorMsg = String(parseErr).toLowerCase();\n setError(parseErrorMsg);\n setSvg(\"\");\n // once render success, setHasRendered flag\n setHasRendered(true);\n return;\n }\n\n const id = `mermaid-${Date.now()}`;\n\n // Render the chart\n const { svg: renderedSvg } = await mermaid.render(id, cleaned);\n setSvg(renderedSvg);\n setError(\"\");\n } catch (err) {\n const errorMsg = String(err).toLowerCase();\n setError(errorMsg);\n setSvg(\"\");\n }\n };\n\n useEffect(() => {\n if (frozen && hasRendered) return; // 核心:被冻结就不渲染\n renderChart();\n }, [chart, frozen]);\n\n const cleanedChart = preprocessChart(chart);\n if (error || !cleanedChart) {\n const displayChart = cleanedChart || chart.trim();\n return (\n <div\n className=\"my-4 border border-gray-200 rounded-lg bg-gray-50\"\n data-mermaid-error={error || undefined}\n >\n <div className=\"px-4 py-3 bg-gray-100 border-b border-gray-200 flex items-center gap-2\">\n <span className=\"text-yellow-600\">⚠️</span>\n <span\n dir=\"auto\"\n className=\"text-sm text-yellow-700 font-medium whitespace-pre-wrap\"\n >\n {cleanedChart\n ? (messages?.error ?? DEFAULT_MESSAGES.error)\n : (messages?.emptyChart ?? DEFAULT_MESSAGES.emptyChart)}\n </span>\n </div>\n <div className=\"relative\">\n <pre\n dir=\"ltr\"\n className=\"p-4 text-sm font-mono text-yellow-800 text-start [unicode-bidi:isolate]\"\n >\n <code>{displayChart}</code>\n </pre>\n <div className=\"absolute top-2 right-2 px-2 py-1 text-xs text-yellow-700 bg-white/90 rounded border border-gray-200\">\n {messages?.badge ?? DEFAULT_MESSAGES.badge}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"my-4 text-center overflow-auto content-render-mermaid\">\n {svg ? (\n <div\n className=\"content-render-mermaid-inner\"\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n ) : (\n <div className=\"py-8 text-gray-500 italic\">\n {messages?.loading ?? DEFAULT_MESSAGES.loading}\n </div>\n )}\n </div>\n );\n};\n\nexport default React.memo(MermaidChart, (prev, next) => {\n return (\n prev.chart === next.chart &&\n prev.frozen === next.frozen &&\n prev.messages?.emptyChart === next.messages?.emptyChart &&\n prev.messages?.loading === next.messages?.loading &&\n prev.messages?.error === next.messages?.error &&\n prev.messages?.badge === next.messages?.badge\n );\n});\n"],"names":["DEFAULT_MESSAGES","preprocessChart","raw","MermaidChart","chart","messages","frozen","svg","setSvg","useState","error","setError","hasRendered","setHasRendered","renderChart","cleaned","mermaid","CJK_SAFE_SANS_FONT_FAMILY","parseErr","parseErrorMsg","id","renderedSvg","err","errorMsg","useEffect","cleanedChart","displayChart","jsxs","jsx","MermaidChart$1","React","prev","next"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("../../_virtual/jsx-runtime.cjs"),p=require("../ContentRender/ContentRender.cjs");require("react");require("react-dom/client");require("../ContentRender/contentRenderI18n.cjs");require("../ui/inputGroup/input-group.cjs");;/* empty css */const S=({initialContentList:r=[],locale:u,customRenderBar:s,onSend:d,confirmButtonText:i,copyButtonText:a,copiedButtonText:n,beforeSend:l,interactionDefaultValueOptions:o})=>t.jsxRuntimeExports.jsx("div",{className:"markdown-flow",children:r.map((e,m)=>{const c=e.isFinished??!1?void 0:d,x=l??(()=>!0);return t.jsxRuntimeExports.jsx(p.default,{content:e.content,userInput:e.userInput,defaultInputText:e.defaultInputText,defaultButtonText:e.defaultButtonText,defaultSelectedValues:e.defaultSelectedValues,readonly:e.readonly,customRenderBar:e.customRenderBar||s,onSend:c,beforeSend:x,locale:u,interactionDefaultValueOptions:o,onClickCustomButtonAfterContent:e.onClickCustomButtonAfterContent,confirmButtonText:i,copyButtonText:a,copiedButtonText:n,dynamicInteractionFormat:e.dynamicInteractionFormat},m)})});exports.default=S;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),d=require("../../lib/locale.cjs"),x=require("../ContentRender/ContentRender.cjs");require("react");require("react-dom/client");require("../ui/inputGroup/input-group.cjs");;/* empty css */const C=({initialContentList:i=[],locale:t,lang:r,dir:u,customRenderBar:n,onSend:s,confirmButtonText:l,copyButtonText:o,copiedButtonText:c,beforeSend:m,interactionDefaultValueOptions:w})=>a.jsx("div",{className:"markdown-flow",dir:u??d.getMarkdownFlowDirection(t),lang:r??d.getMarkdownFlowLanguage(t),children:i.map((e,F)=>{const S=e.isFinished??!1?void 0:s,q=m??(()=>!0);return a.jsx(x.default,{content:e.content,userInput:e.userInput,defaultInputText:e.defaultInputText,defaultButtonText:e.defaultButtonText,defaultSelectedValues:e.defaultSelectedValues,readonly:e.readonly,customRenderBar:e.customRenderBar||n,onSend:S,beforeSend:q,locale:t,lang:r,dir:u,interactionDefaultValueOptions:w,onClickCustomButtonAfterContent:e.onClickCustomButtonAfterContent,confirmButtonText:l,copyButtonText:o,copiedButtonText:c,dynamicInteractionFormat:e.dynamicInteractionFormat},F)})});exports.default=C;
2
2
  //# sourceMappingURL=MarkdownFlow.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownFlow.cjs","sources":["../../../src/components/MarkdownFlow/MarkdownFlow.tsx"],"sourcesContent":["import React from \"react\";\nimport type { InteractionDefaultValueOptions } from \"../../lib/interaction-defaults\";\nimport type { MarkdownFlowLocale } from \"../../lib/locale\";\nimport ContentRender from \"../ContentRender\";\nimport { CustomRenderBarProps, OnSendContentParams } from \"../types\";\nimport \"./markdownFlow.css\";\n\nexport interface MarkdownFlowProps {\n initialContentList?: {\n content: string;\n isFinished?: boolean;\n userInput?: string;\n defaultInputText?: string;\n defaultButtonText?: string;\n defaultSelectedValues?: string[];\n readonly?: boolean;\n customRenderBar?: CustomRenderBarProps;\n onClickCustomButtonAfterContent?: () => void;\n dynamicInteractionFormat?: string;\n }[];\n /** Locale used for built-in UI text when a more specific text prop is not provided. */\n locale?: MarkdownFlowLocale;\n customRenderBar?: CustomRenderBarProps;\n onSend?: (content: OnSendContentParams) => void;\n // Multi-select confirm button text (i18n support)\n confirmButtonText?: string;\n // Copy button text for code blocks\n copyButtonText?: string;\n // Copied state text for code blocks\n copiedButtonText?: string;\n beforeSend?: (content: OnSendContentParams) => boolean;\n interactionDefaultValueOptions?: InteractionDefaultValueOptions;\n}\n\nconst MarkdownFlow: React.FC<MarkdownFlowProps> = ({\n initialContentList = [],\n locale,\n customRenderBar,\n onSend: onSendProp,\n confirmButtonText,\n copyButtonText,\n copiedButtonText,\n beforeSend: beforeSendProp,\n interactionDefaultValueOptions,\n}) => {\n return (\n <div className=\"markdown-flow\">\n {initialContentList.map((contentInfo, index) => {\n const isFinished = contentInfo.isFinished ?? false;\n const onSend = isFinished ? undefined : onSendProp;\n const beforeSend = beforeSendProp ?? (() => true);\n return (\n <ContentRender\n key={index}\n content={contentInfo.content}\n userInput={contentInfo.userInput}\n defaultInputText={contentInfo.defaultInputText}\n defaultButtonText={contentInfo.defaultButtonText}\n defaultSelectedValues={contentInfo.defaultSelectedValues}\n readonly={contentInfo.readonly}\n customRenderBar={contentInfo.customRenderBar || customRenderBar}\n onSend={onSend}\n beforeSend={beforeSend}\n locale={locale}\n interactionDefaultValueOptions={interactionDefaultValueOptions}\n onClickCustomButtonAfterContent={\n contentInfo.onClickCustomButtonAfterContent\n }\n confirmButtonText={confirmButtonText}\n copyButtonText={copyButtonText}\n copiedButtonText={copiedButtonText}\n dynamicInteractionFormat={contentInfo.dynamicInteractionFormat}\n />\n );\n })}\n </div>\n );\n};\n\nexport default MarkdownFlow;\n"],"names":["MarkdownFlow","initialContentList","locale","customRenderBar","onSendProp","confirmButtonText","copyButtonText","copiedButtonText","beforeSendProp","interactionDefaultValueOptions","jsx","contentInfo","index","onSend","beforeSend","ContentRender"],"mappings":"2XAkCA,MAAMA,EAA4C,CAAC,CACjD,mBAAAC,EAAqB,CAAA,EACrB,OAAAC,EACA,gBAAAC,EACA,OAAQC,EACR,kBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,WAAYC,EACZ,+BAAAC,CACF,IAEIC,wBAAC,OAAI,UAAU,gBACZ,WAAmB,IAAI,CAACC,EAAaC,IAAU,CAE9C,MAAMC,EADaF,EAAY,YAAc,GACjB,OAAYP,EAClCU,EAAaN,IAAmB,IAAM,IAC5C,OACEE,EAAAA,kBAAAA,IAACK,EAAAA,QAAA,CAEC,QAASJ,EAAY,QACrB,UAAWA,EAAY,UACvB,iBAAkBA,EAAY,iBAC9B,kBAAmBA,EAAY,kBAC/B,sBAAuBA,EAAY,sBACnC,SAAUA,EAAY,SACtB,gBAAiBA,EAAY,iBAAmBR,EAChD,OAAAU,EACA,WAAAC,EACA,OAAAZ,EACA,+BAAAO,EACA,gCACEE,EAAY,gCAEd,kBAAAN,EACA,eAAAC,EACA,iBAAAC,EACA,yBAA0BI,EAAY,wBAAA,EAlBjCC,CAAA,CAqBX,CAAC,CAAA,CACH"}
1
+ {"version":3,"file":"MarkdownFlow.cjs","sources":["../../../src/components/MarkdownFlow/MarkdownFlow.tsx"],"sourcesContent":["import React from \"react\";\nimport type { InteractionDefaultValueOptions } from \"../../lib/interaction-defaults\";\nimport {\n getMarkdownFlowDirection,\n getMarkdownFlowLanguage,\n type MarkdownFlowLocale,\n} from \"../../lib/locale\";\nimport ContentRender from \"../ContentRender\";\nimport { CustomRenderBarProps, OnSendContentParams } from \"../types\";\nimport \"./markdownFlow.css\";\n\nexport interface MarkdownFlowProps {\n initialContentList?: {\n content: string;\n isFinished?: boolean;\n userInput?: string;\n defaultInputText?: string;\n defaultButtonText?: string;\n defaultSelectedValues?: string[];\n readonly?: boolean;\n customRenderBar?: CustomRenderBarProps;\n onClickCustomButtonAfterContent?: () => void;\n dynamicInteractionFormat?: string;\n }[];\n /**\n * Locale used for built-in UI text when a more specific text prop is not provided.\n * Arabic sets RTL direction; other supported locales set LTR direction.\n * When omitted, direction is inherited from the host and UI text uses the default locale.\n */\n locale?: MarkdownFlowLocale;\n /** Overrides the locale-derived language. */\n lang?: string;\n /** Overrides the locale-derived direction. */\n dir?: React.HTMLAttributes<HTMLDivElement>[\"dir\"];\n customRenderBar?: CustomRenderBarProps;\n onSend?: (content: OnSendContentParams) => void;\n // Multi-select confirm button text (i18n support)\n confirmButtonText?: string;\n // Copy button text for code blocks\n copyButtonText?: string;\n // Copied state text for code blocks\n copiedButtonText?: string;\n beforeSend?: (content: OnSendContentParams) => boolean;\n interactionDefaultValueOptions?: InteractionDefaultValueOptions;\n}\n\nconst MarkdownFlow: React.FC<MarkdownFlowProps> = ({\n initialContentList = [],\n locale,\n lang,\n dir,\n customRenderBar,\n onSend: onSendProp,\n confirmButtonText,\n copyButtonText,\n copiedButtonText,\n beforeSend: beforeSendProp,\n interactionDefaultValueOptions,\n}) => {\n return (\n <div\n className=\"markdown-flow\"\n dir={dir ?? getMarkdownFlowDirection(locale)}\n lang={lang ?? getMarkdownFlowLanguage(locale)}\n >\n {initialContentList.map((contentInfo, index) => {\n const isFinished = contentInfo.isFinished ?? false;\n const onSend = isFinished ? undefined : onSendProp;\n const beforeSend = beforeSendProp ?? (() => true);\n return (\n <ContentRender\n key={index}\n content={contentInfo.content}\n userInput={contentInfo.userInput}\n defaultInputText={contentInfo.defaultInputText}\n defaultButtonText={contentInfo.defaultButtonText}\n defaultSelectedValues={contentInfo.defaultSelectedValues}\n readonly={contentInfo.readonly}\n customRenderBar={contentInfo.customRenderBar || customRenderBar}\n onSend={onSend}\n beforeSend={beforeSend}\n locale={locale}\n lang={lang}\n dir={dir}\n interactionDefaultValueOptions={interactionDefaultValueOptions}\n onClickCustomButtonAfterContent={\n contentInfo.onClickCustomButtonAfterContent\n }\n confirmButtonText={confirmButtonText}\n copyButtonText={copyButtonText}\n copiedButtonText={copiedButtonText}\n dynamicInteractionFormat={contentInfo.dynamicInteractionFormat}\n />\n );\n })}\n </div>\n );\n};\n\nexport default MarkdownFlow;\n"],"names":["MarkdownFlow","initialContentList","locale","lang","dir","customRenderBar","onSendProp","confirmButtonText","copyButtonText","copiedButtonText","beforeSendProp","interactionDefaultValueOptions","jsx","getMarkdownFlowDirection","getMarkdownFlowLanguage","contentInfo","index","onSend","beforeSend","ContentRender"],"mappings":"8VA8CA,MAAMA,EAA4C,CAAC,CACjD,mBAAAC,EAAqB,CAAA,EAAC,OACtBC,EACA,KAAAC,EACA,IAAAC,EACA,gBAAAC,EACA,OAAQC,EACR,kBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,WAAYC,EACZ,+BAAAC,CACF,IAEIC,EAAAA,IAAC,MAAA,CACC,UAAU,gBACV,IAAKR,GAAOS,EAAAA,yBAAyBX,CAAM,EAC3C,KAAMC,GAAQW,EAAAA,wBAAwBZ,CAAM,EAE3C,SAAAD,EAAmB,IAAI,CAACc,EAAaC,IAAU,CAE9C,MAAMC,EADaF,EAAY,YAAc,GACjB,OAAYT,EAClCY,EAAaR,IAAmB,IAAM,IAC5C,OACEE,EAAAA,IAACO,EAAAA,QAAA,CAEC,QAASJ,EAAY,QACrB,UAAWA,EAAY,UACvB,iBAAkBA,EAAY,iBAC9B,kBAAmBA,EAAY,kBAC/B,sBAAuBA,EAAY,sBACnC,SAAUA,EAAY,SACtB,gBAAiBA,EAAY,iBAAmBV,EAChD,OAAAY,EACA,WAAAC,EAAA,OACAhB,EACA,KAAAC,EACA,IAAAC,EACA,+BAAAO,EACA,gCACEI,EAAY,gCAEd,kBAAAR,EACA,eAAAC,EACA,iBAAAC,EACA,yBAA0BM,EAAY,wBAAA,EApBjCC,CAAA,CAuBX,CAAC,CAAA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
- import { InteractionDefaultValueOptions } from '../../lib/interaction-defaults';
3
- import { MarkdownFlowLocale } from '../../lib/locale';
4
- import { CustomRenderBarProps, OnSendContentParams } from '../types';
2
+ import { InteractionDefaultValueOptions } from '../../lib/interaction-defaults.js';
3
+ import { MarkdownFlowLocale } from '../../lib/locale.js';
4
+ import { CustomRenderBarProps, OnSendContentParams } from '../types.js';
5
5
  export interface MarkdownFlowProps {
6
6
  initialContentList?: {
7
7
  content: string;
@@ -15,8 +15,16 @@ export interface MarkdownFlowProps {
15
15
  onClickCustomButtonAfterContent?: () => void;
16
16
  dynamicInteractionFormat?: string;
17
17
  }[];
18
- /** Locale used for built-in UI text when a more specific text prop is not provided. */
18
+ /**
19
+ * Locale used for built-in UI text when a more specific text prop is not provided.
20
+ * Arabic sets RTL direction; other supported locales set LTR direction.
21
+ * When omitted, direction is inherited from the host and UI text uses the default locale.
22
+ */
19
23
  locale?: MarkdownFlowLocale;
24
+ /** Overrides the locale-derived language. */
25
+ lang?: string;
26
+ /** Overrides the locale-derived direction. */
27
+ dir?: React.HTMLAttributes<HTMLDivElement>["dir"];
20
28
  customRenderBar?: CustomRenderBarProps;
21
29
  onSend?: (content: OnSendContentParams) => void;
22
30
  confirmButtonText?: string;
@@ -1,46 +1,58 @@
1
- import { j as t } from "../../_virtual/jsx-runtime.es.js";
2
- import x from "../ContentRender/ContentRender.es.js";
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { getMarkdownFlowLanguage as f, getMarkdownFlowDirection as C } from "../../lib/locale.es.js";
3
+ import k from "../ContentRender/ContentRender.es.js";
3
4
  import "react";
4
5
  import "react-dom/client";
5
- import "../ContentRender/contentRenderI18n.es.js";
6
6
  import "../ui/inputGroup/input-group.es.js";
7
7
  /* empty css */
8
- const w = ({
9
- initialContentList: r = [],
10
- locale: d,
11
- customRenderBar: a,
12
- onSend: o,
13
- confirmButtonText: s,
14
- copyButtonText: u,
15
- copiedButtonText: i,
16
- beforeSend: n,
17
- interactionDefaultValueOptions: m
18
- }) => /* @__PURE__ */ t.jsx("div", { className: "markdown-flow", children: r.map((e, l) => {
19
- const p = e.isFinished ?? !1 ? void 0 : o, c = n ?? (() => !0);
20
- return /* @__PURE__ */ t.jsx(
21
- x,
22
- {
23
- content: e.content,
24
- userInput: e.userInput,
25
- defaultInputText: e.defaultInputText,
26
- defaultButtonText: e.defaultButtonText,
27
- defaultSelectedValues: e.defaultSelectedValues,
28
- readonly: e.readonly,
29
- customRenderBar: e.customRenderBar || a,
30
- onSend: p,
31
- beforeSend: c,
32
- locale: d,
33
- interactionDefaultValueOptions: m,
34
- onClickCustomButtonAfterContent: e.onClickCustomButtonAfterContent,
35
- confirmButtonText: s,
36
- copyButtonText: u,
37
- copiedButtonText: i,
38
- dynamicInteractionFormat: e.dynamicInteractionFormat
39
- },
40
- l
41
- );
42
- }) });
8
+ const R = ({
9
+ initialContentList: a = [],
10
+ locale: t,
11
+ lang: r,
12
+ dir: d,
13
+ customRenderBar: i,
14
+ onSend: u,
15
+ confirmButtonText: n,
16
+ copyButtonText: s,
17
+ copiedButtonText: m,
18
+ beforeSend: l,
19
+ interactionDefaultValueOptions: p
20
+ }) => /* @__PURE__ */ o(
21
+ "div",
22
+ {
23
+ className: "markdown-flow",
24
+ dir: d ?? C(t),
25
+ lang: r ?? f(t),
26
+ children: a.map((e, c) => {
27
+ const w = e.isFinished ?? !1 ? void 0 : u, F = l ?? (() => !0);
28
+ return /* @__PURE__ */ o(
29
+ k,
30
+ {
31
+ content: e.content,
32
+ userInput: e.userInput,
33
+ defaultInputText: e.defaultInputText,
34
+ defaultButtonText: e.defaultButtonText,
35
+ defaultSelectedValues: e.defaultSelectedValues,
36
+ readonly: e.readonly,
37
+ customRenderBar: e.customRenderBar || i,
38
+ onSend: w,
39
+ beforeSend: F,
40
+ locale: t,
41
+ lang: r,
42
+ dir: d,
43
+ interactionDefaultValueOptions: p,
44
+ onClickCustomButtonAfterContent: e.onClickCustomButtonAfterContent,
45
+ confirmButtonText: n,
46
+ copyButtonText: s,
47
+ copiedButtonText: m,
48
+ dynamicInteractionFormat: e.dynamicInteractionFormat
49
+ },
50
+ c
51
+ );
52
+ })
53
+ }
54
+ );
43
55
  export {
44
- w as default
56
+ R as default
45
57
  };
46
58
  //# sourceMappingURL=MarkdownFlow.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownFlow.es.js","sources":["../../../src/components/MarkdownFlow/MarkdownFlow.tsx"],"sourcesContent":["import React from \"react\";\nimport type { InteractionDefaultValueOptions } from \"../../lib/interaction-defaults\";\nimport type { MarkdownFlowLocale } from \"../../lib/locale\";\nimport ContentRender from \"../ContentRender\";\nimport { CustomRenderBarProps, OnSendContentParams } from \"../types\";\nimport \"./markdownFlow.css\";\n\nexport interface MarkdownFlowProps {\n initialContentList?: {\n content: string;\n isFinished?: boolean;\n userInput?: string;\n defaultInputText?: string;\n defaultButtonText?: string;\n defaultSelectedValues?: string[];\n readonly?: boolean;\n customRenderBar?: CustomRenderBarProps;\n onClickCustomButtonAfterContent?: () => void;\n dynamicInteractionFormat?: string;\n }[];\n /** Locale used for built-in UI text when a more specific text prop is not provided. */\n locale?: MarkdownFlowLocale;\n customRenderBar?: CustomRenderBarProps;\n onSend?: (content: OnSendContentParams) => void;\n // Multi-select confirm button text (i18n support)\n confirmButtonText?: string;\n // Copy button text for code blocks\n copyButtonText?: string;\n // Copied state text for code blocks\n copiedButtonText?: string;\n beforeSend?: (content: OnSendContentParams) => boolean;\n interactionDefaultValueOptions?: InteractionDefaultValueOptions;\n}\n\nconst MarkdownFlow: React.FC<MarkdownFlowProps> = ({\n initialContentList = [],\n locale,\n customRenderBar,\n onSend: onSendProp,\n confirmButtonText,\n copyButtonText,\n copiedButtonText,\n beforeSend: beforeSendProp,\n interactionDefaultValueOptions,\n}) => {\n return (\n <div className=\"markdown-flow\">\n {initialContentList.map((contentInfo, index) => {\n const isFinished = contentInfo.isFinished ?? false;\n const onSend = isFinished ? undefined : onSendProp;\n const beforeSend = beforeSendProp ?? (() => true);\n return (\n <ContentRender\n key={index}\n content={contentInfo.content}\n userInput={contentInfo.userInput}\n defaultInputText={contentInfo.defaultInputText}\n defaultButtonText={contentInfo.defaultButtonText}\n defaultSelectedValues={contentInfo.defaultSelectedValues}\n readonly={contentInfo.readonly}\n customRenderBar={contentInfo.customRenderBar || customRenderBar}\n onSend={onSend}\n beforeSend={beforeSend}\n locale={locale}\n interactionDefaultValueOptions={interactionDefaultValueOptions}\n onClickCustomButtonAfterContent={\n contentInfo.onClickCustomButtonAfterContent\n }\n confirmButtonText={confirmButtonText}\n copyButtonText={copyButtonText}\n copiedButtonText={copiedButtonText}\n dynamicInteractionFormat={contentInfo.dynamicInteractionFormat}\n />\n );\n })}\n </div>\n );\n};\n\nexport default MarkdownFlow;\n"],"names":["MarkdownFlow","initialContentList","locale","customRenderBar","onSendProp","confirmButtonText","copyButtonText","copiedButtonText","beforeSendProp","interactionDefaultValueOptions","jsx","contentInfo","index","onSend","beforeSend","ContentRender"],"mappings":";;;;;;;AAkCA,MAAMA,IAA4C,CAAC;AAAA,EACjD,oBAAAC,IAAqB,CAAA;AAAA,EACrB,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,QAAQC;AAAA,EACR,mBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAYC;AAAA,EACZ,gCAAAC;AACF,MAEIC,gBAAAA,MAAC,SAAI,WAAU,iBACZ,YAAmB,IAAI,CAACC,GAAaC,MAAU;AAE9C,QAAMC,IADaF,EAAY,cAAc,KACjB,SAAYP,GAClCU,IAAaN,MAAmB,MAAM;AAC5C,SACEE,gBAAAA,EAAAA;AAAAA,IAACK;AAAA,IAAA;AAAA,MAEC,SAASJ,EAAY;AAAA,MACrB,WAAWA,EAAY;AAAA,MACvB,kBAAkBA,EAAY;AAAA,MAC9B,mBAAmBA,EAAY;AAAA,MAC/B,uBAAuBA,EAAY;AAAA,MACnC,UAAUA,EAAY;AAAA,MACtB,iBAAiBA,EAAY,mBAAmBR;AAAA,MAChD,QAAAU;AAAA,MACA,YAAAC;AAAA,MACA,QAAAZ;AAAA,MACA,gCAAAO;AAAA,MACA,iCACEE,EAAY;AAAA,MAEd,mBAAAN;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,0BAA0BI,EAAY;AAAA,IAAA;AAAA,IAlBjCC;AAAA,EAAA;AAqBX,CAAC,EAAA,CACH;"}
1
+ {"version":3,"file":"MarkdownFlow.es.js","sources":["../../../src/components/MarkdownFlow/MarkdownFlow.tsx"],"sourcesContent":["import React from \"react\";\nimport type { InteractionDefaultValueOptions } from \"../../lib/interaction-defaults\";\nimport {\n getMarkdownFlowDirection,\n getMarkdownFlowLanguage,\n type MarkdownFlowLocale,\n} from \"../../lib/locale\";\nimport ContentRender from \"../ContentRender\";\nimport { CustomRenderBarProps, OnSendContentParams } from \"../types\";\nimport \"./markdownFlow.css\";\n\nexport interface MarkdownFlowProps {\n initialContentList?: {\n content: string;\n isFinished?: boolean;\n userInput?: string;\n defaultInputText?: string;\n defaultButtonText?: string;\n defaultSelectedValues?: string[];\n readonly?: boolean;\n customRenderBar?: CustomRenderBarProps;\n onClickCustomButtonAfterContent?: () => void;\n dynamicInteractionFormat?: string;\n }[];\n /**\n * Locale used for built-in UI text when a more specific text prop is not provided.\n * Arabic sets RTL direction; other supported locales set LTR direction.\n * When omitted, direction is inherited from the host and UI text uses the default locale.\n */\n locale?: MarkdownFlowLocale;\n /** Overrides the locale-derived language. */\n lang?: string;\n /** Overrides the locale-derived direction. */\n dir?: React.HTMLAttributes<HTMLDivElement>[\"dir\"];\n customRenderBar?: CustomRenderBarProps;\n onSend?: (content: OnSendContentParams) => void;\n // Multi-select confirm button text (i18n support)\n confirmButtonText?: string;\n // Copy button text for code blocks\n copyButtonText?: string;\n // Copied state text for code blocks\n copiedButtonText?: string;\n beforeSend?: (content: OnSendContentParams) => boolean;\n interactionDefaultValueOptions?: InteractionDefaultValueOptions;\n}\n\nconst MarkdownFlow: React.FC<MarkdownFlowProps> = ({\n initialContentList = [],\n locale,\n lang,\n dir,\n customRenderBar,\n onSend: onSendProp,\n confirmButtonText,\n copyButtonText,\n copiedButtonText,\n beforeSend: beforeSendProp,\n interactionDefaultValueOptions,\n}) => {\n return (\n <div\n className=\"markdown-flow\"\n dir={dir ?? getMarkdownFlowDirection(locale)}\n lang={lang ?? getMarkdownFlowLanguage(locale)}\n >\n {initialContentList.map((contentInfo, index) => {\n const isFinished = contentInfo.isFinished ?? false;\n const onSend = isFinished ? undefined : onSendProp;\n const beforeSend = beforeSendProp ?? (() => true);\n return (\n <ContentRender\n key={index}\n content={contentInfo.content}\n userInput={contentInfo.userInput}\n defaultInputText={contentInfo.defaultInputText}\n defaultButtonText={contentInfo.defaultButtonText}\n defaultSelectedValues={contentInfo.defaultSelectedValues}\n readonly={contentInfo.readonly}\n customRenderBar={contentInfo.customRenderBar || customRenderBar}\n onSend={onSend}\n beforeSend={beforeSend}\n locale={locale}\n lang={lang}\n dir={dir}\n interactionDefaultValueOptions={interactionDefaultValueOptions}\n onClickCustomButtonAfterContent={\n contentInfo.onClickCustomButtonAfterContent\n }\n confirmButtonText={confirmButtonText}\n copyButtonText={copyButtonText}\n copiedButtonText={copiedButtonText}\n dynamicInteractionFormat={contentInfo.dynamicInteractionFormat}\n />\n );\n })}\n </div>\n );\n};\n\nexport default MarkdownFlow;\n"],"names":["MarkdownFlow","initialContentList","locale","lang","dir","customRenderBar","onSendProp","confirmButtonText","copyButtonText","copiedButtonText","beforeSendProp","interactionDefaultValueOptions","jsx","getMarkdownFlowDirection","getMarkdownFlowLanguage","contentInfo","index","onSend","beforeSend","ContentRender"],"mappings":";;;;;;;AA8CA,MAAMA,IAA4C,CAAC;AAAA,EACjD,oBAAAC,IAAqB,CAAA;AAAA,EACrB,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,KAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,QAAQC;AAAA,EACR,mBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAYC;AAAA,EACZ,gCAAAC;AACF,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,KAAKR,KAAOS,EAAyBX,CAAM;AAAA,IAC3C,MAAMC,KAAQW,EAAwBZ,CAAM;AAAA,IAE3C,UAAAD,EAAmB,IAAI,CAACc,GAAaC,MAAU;AAE9C,YAAMC,IADaF,EAAY,cAAc,KACjB,SAAYT,GAClCY,IAAaR,MAAmB,MAAM;AAC5C,aACE,gBAAAE;AAAA,QAACO;AAAA,QAAA;AAAA,UAEC,SAASJ,EAAY;AAAA,UACrB,WAAWA,EAAY;AAAA,UACvB,kBAAkBA,EAAY;AAAA,UAC9B,mBAAmBA,EAAY;AAAA,UAC/B,uBAAuBA,EAAY;AAAA,UACnC,UAAUA,EAAY;AAAA,UACtB,iBAAiBA,EAAY,mBAAmBV;AAAA,UAChD,QAAAY;AAAA,UACA,YAAAC;AAAA,UACA,QAAAhB;AAAA,UACA,MAAAC;AAAA,UACA,KAAAC;AAAA,UACA,gCAAAO;AAAA,UACA,iCACEI,EAAY;AAAA,UAEd,mBAAAR;AAAA,UACA,gBAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,0BAA0BM,EAAY;AAAA,QAAA;AAAA,QApBjCC;AAAA,MAAA;AAAA,IAuBX,CAAC;AAAA,EAAA;AAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.cjs"),c=require("react-dom"),i=require("../../node_modules/lucide-react/dist/esm/icons/chevron-down.cjs"),u=({visible:n,ariaLabel:l,portalTarget:t,className:s="",...e})=>{if(!n)return null;const o=r.jsxRuntimeExports.jsx("button",{...e,type:e.type||"button",className:`scroll-to-bottom-btn ${s}`.trim(),"aria-label":l,children:r.jsxRuntimeExports.jsx(i.default,{"aria-hidden":"true",focusable:"false"})});return t?c.createPortal(o,t):o};exports.ScrollToBottomButton=u;exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),y=require("react"),j=require("react-dom"),D=require("../../lib/utils.cjs"),M=require("../../node_modules/lucide-react/dist/esm/icons/chevrons-down.cjs"),s=t=>typeof t=="number"?`${t}px`:t,e=({visible:t,ariaLabel:c,portalTarget:r,placement:a="bottom-center",position:u="absolute",bottomOffset:d=20,horizontalOffset:i=20,zIndex:m=1,className:b="",style:f,tabIndex:h,disabled:B,type:S="button",...p})=>{const q=y.useCallback(o=>{!t&&o&&o.ownerDocument.activeElement===o&&o.blur()},[t]),x={"--scroll-to-bottom-bottom":s(d),"--scroll-to-bottom-horizontal":s(i),"--scroll-to-bottom-position":u,zIndex:m,...f},n=l.jsx("button",{...p,ref:q,disabled:!t||B,type:S,className:D.cn("scroll-to-bottom-btn",b),style:x,"aria-label":c,"aria-hidden":t?void 0:!0,"data-placement":a,"data-visible":t?"true":"false",tabIndex:t?h:-1,children:l.jsx(M.default,{size:20,"aria-hidden":"true",focusable:"false"})});return r?j.createPortal(n,r):n};e.displayName="ScrollToBottomButton";exports.ScrollToBottomButton=e;exports.default=e;
2
2
  //# sourceMappingURL=ScrollToBottomButton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollToBottomButton.cjs","sources":["../../../src/components/MarkdownFlow/ScrollToBottomButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronDown } from \"lucide-react\";\n\nexport interface ScrollToBottomButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visible: boolean;\n ariaLabel: string;\n portalTarget?: HTMLElement | null;\n}\n\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = ({\n visible,\n ariaLabel,\n portalTarget,\n className = \"\",\n ...props\n}) => {\n if (!visible) return null;\n const button = (\n <button\n {...props}\n type={props.type || \"button\"}\n className={`scroll-to-bottom-btn ${className}`.trim()}\n aria-label={ariaLabel}\n >\n <ChevronDown aria-hidden=\"true\" focusable=\"false\" />\n </button>\n );\n return portalTarget ? createPortal(button, portalTarget) : button;\n};\n\nexport default ScrollToBottomButton;\n"],"names":["ScrollToBottomButton","visible","ariaLabel","portalTarget","className","props","button","jsx","ChevronDown","createPortal"],"mappings":"kQAWaA,EAA4D,CAAC,CACxE,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,IAAM,CACJ,GAAI,CAACJ,EAAS,OAAO,KACrB,MAAMK,EACJC,EAAAA,kBAAAA,IAAC,SAAA,CACE,GAAGF,EACJ,KAAMA,EAAM,MAAQ,SACpB,UAAW,wBAAwBD,CAAS,GAAG,KAAA,EAC/C,aAAYF,EAEZ,SAAAK,EAAAA,kBAAAA,IAACC,UAAA,CAAY,cAAY,OAAO,UAAU,OAAA,CAAQ,CAAA,CAAA,EAGtD,OAAOL,EAAeM,EAAAA,aAAaH,EAAQH,CAAY,EAAIG,CAC7D"}
1
+ {"version":3,"file":"ScrollToBottomButton.cjs","sources":["../../../src/components/MarkdownFlow/ScrollToBottomButton.tsx"],"sourcesContent":["import React, { useCallback, type CSSProperties } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronsDown } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ScrollToBottomPlacement = \"bottom-center\" | \"bottom-right\";\nexport type ScrollToBottomPosition = \"absolute\" | \"fixed\";\n\n/** Presentation and native button props for a localized scroll-to-bottom control. */\nexport interface ScrollToBottomButtonProps\n extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"aria-label\" | \"children\"\n > {\n /** Whether the control is visible and keyboard-focusable. */\n visible: boolean;\n /** Localized accessible name for the icon-only button. */\n ariaLabel: string;\n /** Optional host element in which the library renders the button. */\n portalTarget?: HTMLElement | null;\n /** Horizontal placement within the positioning context. Defaults to bottom-center. */\n placement?: ScrollToBottomPlacement;\n /** CSS positioning model supplied by the host layout. */\n position?: ScrollToBottomPosition;\n /** Bottom offset in pixels, or any valid CSS length. */\n bottomOffset?: number | string;\n /** Right offset for bottom-right placement, in pixels or a CSS length. */\n horizontalOffset?: number | string;\n /** Stacking level within the host layout. */\n zIndex?: number;\n}\n\ntype ScrollToBottomButtonStyle = CSSProperties & {\n \"--scroll-to-bottom-bottom\"?: string;\n \"--scroll-to-bottom-horizontal\"?: string;\n \"--scroll-to-bottom-position\"?: ScrollToBottomPosition;\n};\n\nconst toCssLength = (value: number | string) =>\n typeof value === \"number\" ? `${value}px` : value;\n\n/**\n * Render the scroll control without owning scroll detection or follow state.\n *\n * @param props Visibility, localized accessible name, host layout and button events.\n * @returns A native icon button, optionally rendered into the supplied portal host.\n * @example\n * ```tsx\n * <ScrollToBottomButton\n * visible={showScrollToBottom}\n * ariaLabel=\"Scroll to bottom\"\n * onClick={scrollToBottom}\n * />\n * ```\n */\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = ({\n visible,\n ariaLabel,\n portalTarget,\n placement = \"bottom-center\",\n position = \"absolute\",\n bottomOffset = 20,\n horizontalOffset = 20,\n zIndex = 1,\n className = \"\",\n style,\n tabIndex,\n disabled,\n type = \"button\",\n ...props\n}) => {\n const releaseHiddenFocus = useCallback(\n (button: HTMLButtonElement | null) => {\n if (!visible && button && button.ownerDocument.activeElement === button) {\n button.blur();\n }\n },\n [visible]\n );\n const buttonStyle: ScrollToBottomButtonStyle = {\n \"--scroll-to-bottom-bottom\": toCssLength(bottomOffset),\n \"--scroll-to-bottom-horizontal\": toCssLength(horizontalOffset),\n \"--scroll-to-bottom-position\": position,\n zIndex,\n ...style,\n };\n const button = (\n <button\n {...props}\n ref={releaseHiddenFocus}\n disabled={!visible || disabled}\n type={type}\n className={cn(\"scroll-to-bottom-btn\", className)}\n style={buttonStyle}\n aria-label={ariaLabel}\n aria-hidden={visible ? undefined : true}\n data-placement={placement}\n data-visible={visible ? \"true\" : \"false\"}\n tabIndex={visible ? tabIndex : -1}\n >\n <ChevronsDown size={20} aria-hidden=\"true\" focusable=\"false\" />\n </button>\n );\n return portalTarget ? createPortal(button, portalTarget) : button;\n};\n\nScrollToBottomButton.displayName = \"ScrollToBottomButton\";\n\nexport default ScrollToBottomButton;\n"],"names":["toCssLength","value","ScrollToBottomButton","visible","ariaLabel","portalTarget","placement","position","bottomOffset","horizontalOffset","zIndex","className","style","tabIndex","disabled","type","props","releaseHiddenFocus","useCallback","button","buttonStyle","jsx","cn","ChevronsDown","createPortal"],"mappings":"0SAsCMA,EAAeC,GACnB,OAAOA,GAAU,SAAW,GAAGA,CAAK,KAAOA,EAgBhCC,EAA4D,CAAC,CACxE,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,UAAAC,EAAY,gBACZ,SAAAC,EAAW,WACX,aAAAC,EAAe,GACf,iBAAAC,EAAmB,GACnB,OAAAC,EAAS,EACT,UAAAC,EAAY,GACZ,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EAAO,SACP,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAqBC,EAAAA,YACxBC,GAAqC,CAChC,CAAChB,GAAWgB,GAAUA,EAAO,cAAc,gBAAkBA,GAC/DA,EAAO,KAAA,CAEX,EACA,CAAChB,CAAO,CAAA,EAEJiB,EAAyC,CAC7C,4BAA6BpB,EAAYQ,CAAY,EACrD,gCAAiCR,EAAYS,CAAgB,EAC7D,8BAA+BF,EAC/B,OAAAG,EACA,GAAGE,CAAA,EAECO,EACJE,EAAAA,IAAC,SAAA,CACE,GAAGL,EACJ,IAAKC,EACL,SAAU,CAACd,GAAWW,EACtB,KAAAC,EACA,UAAWO,EAAAA,GAAG,uBAAwBX,CAAS,EAC/C,MAAOS,EACP,aAAYhB,EACZ,cAAaD,EAAU,OAAY,GACnC,iBAAgBG,EAChB,eAAcH,EAAU,OAAS,QACjC,SAAUA,EAAUU,EAAW,GAE/B,eAACU,EAAAA,QAAA,CAAa,KAAM,GAAI,cAAY,OAAO,UAAU,OAAA,CAAQ,CAAA,CAAA,EAGjE,OAAOlB,EAAemB,EAAAA,aAAaL,EAAQd,CAAY,EAAIc,CAC7D,EAEAjB,EAAqB,YAAc"}
@@ -1,8 +1,38 @@
1
1
  import { default as React } from 'react';
2
- export interface ScrollToBottomButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
2
+ export type ScrollToBottomPlacement = "bottom-center" | "bottom-right";
3
+ export type ScrollToBottomPosition = "absolute" | "fixed";
4
+ /** Presentation and native button props for a localized scroll-to-bottom control. */
5
+ export interface ScrollToBottomButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "children"> {
6
+ /** Whether the control is visible and keyboard-focusable. */
3
7
  visible: boolean;
8
+ /** Localized accessible name for the icon-only button. */
4
9
  ariaLabel: string;
10
+ /** Optional host element in which the library renders the button. */
5
11
  portalTarget?: HTMLElement | null;
12
+ /** Horizontal placement within the positioning context. Defaults to bottom-center. */
13
+ placement?: ScrollToBottomPlacement;
14
+ /** CSS positioning model supplied by the host layout. */
15
+ position?: ScrollToBottomPosition;
16
+ /** Bottom offset in pixels, or any valid CSS length. */
17
+ bottomOffset?: number | string;
18
+ /** Right offset for bottom-right placement, in pixels or a CSS length. */
19
+ horizontalOffset?: number | string;
20
+ /** Stacking level within the host layout. */
21
+ zIndex?: number;
6
22
  }
23
+ /**
24
+ * Render the scroll control without owning scroll detection or follow state.
25
+ *
26
+ * @param props Visibility, localized accessible name, host layout and button events.
27
+ * @returns A native icon button, optionally rendered into the supplied portal host.
28
+ * @example
29
+ * ```tsx
30
+ * <ScrollToBottomButton
31
+ * visible={showScrollToBottom}
32
+ * ariaLabel="Scroll to bottom"
33
+ * onClick={scrollToBottom}
34
+ * />
35
+ * ```
36
+ */
7
37
  export declare const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps>;
8
38
  export default ScrollToBottomButton;
@@ -1,28 +1,57 @@
1
- import { j as e } from "../../_virtual/jsx-runtime.es.js";
2
- import { createPortal as s } from "react-dom";
3
- import m from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.es.js";
4
- const b = ({
5
- visible: n,
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { useCallback as C } from "react";
3
+ import { createPortal as S } from "react-dom";
4
+ import { cn as w } from "../../lib/utils.es.js";
5
+ import z from "../../node_modules/lucide-react/dist/esm/icons/chevrons-down.es.js";
6
+ const n = (o) => typeof o == "number" ? `${o}px` : o, D = ({
7
+ visible: o,
6
8
  ariaLabel: l,
7
- portalTarget: t,
8
- className: a = "",
9
- ...o
9
+ portalTarget: e,
10
+ placement: m = "bottom-center",
11
+ position: s = "absolute",
12
+ bottomOffset: c = 20,
13
+ horizontalOffset: d = 20,
14
+ zIndex: i = 1,
15
+ className: u = "",
16
+ style: b,
17
+ tabIndex: f,
18
+ disabled: p,
19
+ type: h = "button",
20
+ ...x
10
21
  }) => {
11
- if (!n) return null;
12
- const r = /* @__PURE__ */ e.jsx(
22
+ const y = C(
23
+ (t) => {
24
+ !o && t && t.ownerDocument.activeElement === t && t.blur();
25
+ },
26
+ [o]
27
+ ), B = {
28
+ "--scroll-to-bottom-bottom": n(c),
29
+ "--scroll-to-bottom-horizontal": n(d),
30
+ "--scroll-to-bottom-position": s,
31
+ zIndex: i,
32
+ ...b
33
+ }, r = /* @__PURE__ */ a(
13
34
  "button",
14
35
  {
15
- ...o,
16
- type: o.type || "button",
17
- className: `scroll-to-bottom-btn ${a}`.trim(),
36
+ ...x,
37
+ ref: y,
38
+ disabled: !o || p,
39
+ type: h,
40
+ className: w("scroll-to-bottom-btn", u),
41
+ style: B,
18
42
  "aria-label": l,
19
- children: /* @__PURE__ */ e.jsx(m, { "aria-hidden": "true", focusable: "false" })
43
+ "aria-hidden": o ? void 0 : !0,
44
+ "data-placement": m,
45
+ "data-visible": o ? "true" : "false",
46
+ tabIndex: o ? f : -1,
47
+ children: /* @__PURE__ */ a(z, { size: 20, "aria-hidden": "true", focusable: "false" })
20
48
  }
21
49
  );
22
- return t ? s(r, t) : r;
50
+ return e ? S(r, e) : r;
23
51
  };
52
+ D.displayName = "ScrollToBottomButton";
24
53
  export {
25
- b as ScrollToBottomButton,
26
- b as default
54
+ D as ScrollToBottomButton,
55
+ D as default
27
56
  };
28
57
  //# sourceMappingURL=ScrollToBottomButton.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollToBottomButton.es.js","sources":["../../../src/components/MarkdownFlow/ScrollToBottomButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronDown } from \"lucide-react\";\n\nexport interface ScrollToBottomButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visible: boolean;\n ariaLabel: string;\n portalTarget?: HTMLElement | null;\n}\n\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = ({\n visible,\n ariaLabel,\n portalTarget,\n className = \"\",\n ...props\n}) => {\n if (!visible) return null;\n const button = (\n <button\n {...props}\n type={props.type || \"button\"}\n className={`scroll-to-bottom-btn ${className}`.trim()}\n aria-label={ariaLabel}\n >\n <ChevronDown aria-hidden=\"true\" focusable=\"false\" />\n </button>\n );\n return portalTarget ? createPortal(button, portalTarget) : button;\n};\n\nexport default ScrollToBottomButton;\n"],"names":["ScrollToBottomButton","visible","ariaLabel","portalTarget","className","props","button","jsx","ChevronDown","createPortal"],"mappings":";;;AAWO,MAAMA,IAA4D,CAAC;AAAA,EACxE,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,MAAI,CAACJ,EAAS,QAAO;AACrB,QAAMK,IACJC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,MAAMA,EAAM,QAAQ;AAAA,MACpB,WAAW,wBAAwBD,CAAS,GAAG,KAAA;AAAA,MAC/C,cAAYF;AAAA,MAEZ,UAAAK,gBAAAA,EAAAA,IAACC,GAAA,EAAY,eAAY,QAAO,WAAU,QAAA,CAAQ;AAAA,IAAA;AAAA,EAAA;AAGtD,SAAOL,IAAeM,EAAaH,GAAQH,CAAY,IAAIG;AAC7D;"}
1
+ {"version":3,"file":"ScrollToBottomButton.es.js","sources":["../../../src/components/MarkdownFlow/ScrollToBottomButton.tsx"],"sourcesContent":["import React, { useCallback, type CSSProperties } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronsDown } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ScrollToBottomPlacement = \"bottom-center\" | \"bottom-right\";\nexport type ScrollToBottomPosition = \"absolute\" | \"fixed\";\n\n/** Presentation and native button props for a localized scroll-to-bottom control. */\nexport interface ScrollToBottomButtonProps\n extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"aria-label\" | \"children\"\n > {\n /** Whether the control is visible and keyboard-focusable. */\n visible: boolean;\n /** Localized accessible name for the icon-only button. */\n ariaLabel: string;\n /** Optional host element in which the library renders the button. */\n portalTarget?: HTMLElement | null;\n /** Horizontal placement within the positioning context. Defaults to bottom-center. */\n placement?: ScrollToBottomPlacement;\n /** CSS positioning model supplied by the host layout. */\n position?: ScrollToBottomPosition;\n /** Bottom offset in pixels, or any valid CSS length. */\n bottomOffset?: number | string;\n /** Right offset for bottom-right placement, in pixels or a CSS length. */\n horizontalOffset?: number | string;\n /** Stacking level within the host layout. */\n zIndex?: number;\n}\n\ntype ScrollToBottomButtonStyle = CSSProperties & {\n \"--scroll-to-bottom-bottom\"?: string;\n \"--scroll-to-bottom-horizontal\"?: string;\n \"--scroll-to-bottom-position\"?: ScrollToBottomPosition;\n};\n\nconst toCssLength = (value: number | string) =>\n typeof value === \"number\" ? `${value}px` : value;\n\n/**\n * Render the scroll control without owning scroll detection or follow state.\n *\n * @param props Visibility, localized accessible name, host layout and button events.\n * @returns A native icon button, optionally rendered into the supplied portal host.\n * @example\n * ```tsx\n * <ScrollToBottomButton\n * visible={showScrollToBottom}\n * ariaLabel=\"Scroll to bottom\"\n * onClick={scrollToBottom}\n * />\n * ```\n */\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = ({\n visible,\n ariaLabel,\n portalTarget,\n placement = \"bottom-center\",\n position = \"absolute\",\n bottomOffset = 20,\n horizontalOffset = 20,\n zIndex = 1,\n className = \"\",\n style,\n tabIndex,\n disabled,\n type = \"button\",\n ...props\n}) => {\n const releaseHiddenFocus = useCallback(\n (button: HTMLButtonElement | null) => {\n if (!visible && button && button.ownerDocument.activeElement === button) {\n button.blur();\n }\n },\n [visible]\n );\n const buttonStyle: ScrollToBottomButtonStyle = {\n \"--scroll-to-bottom-bottom\": toCssLength(bottomOffset),\n \"--scroll-to-bottom-horizontal\": toCssLength(horizontalOffset),\n \"--scroll-to-bottom-position\": position,\n zIndex,\n ...style,\n };\n const button = (\n <button\n {...props}\n ref={releaseHiddenFocus}\n disabled={!visible || disabled}\n type={type}\n className={cn(\"scroll-to-bottom-btn\", className)}\n style={buttonStyle}\n aria-label={ariaLabel}\n aria-hidden={visible ? undefined : true}\n data-placement={placement}\n data-visible={visible ? \"true\" : \"false\"}\n tabIndex={visible ? tabIndex : -1}\n >\n <ChevronsDown size={20} aria-hidden=\"true\" focusable=\"false\" />\n </button>\n );\n return portalTarget ? createPortal(button, portalTarget) : button;\n};\n\nScrollToBottomButton.displayName = \"ScrollToBottomButton\";\n\nexport default ScrollToBottomButton;\n"],"names":["toCssLength","value","ScrollToBottomButton","visible","ariaLabel","portalTarget","placement","position","bottomOffset","horizontalOffset","zIndex","className","style","tabIndex","disabled","type","props","releaseHiddenFocus","useCallback","button","buttonStyle","jsx","cn","ChevronsDown","createPortal"],"mappings":";;;;;AAsCA,MAAMA,IAAc,CAACC,MACnB,OAAOA,KAAU,WAAW,GAAGA,CAAK,OAAOA,GAgBhCC,IAA4D,CAAC;AAAA,EACxE,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,kBAAAC,IAAmB;AAAA,EACnB,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAqBC;AAAA,IACzB,CAACC,MAAqC;AACpC,MAAI,CAAChB,KAAWgB,KAAUA,EAAO,cAAc,kBAAkBA,KAC/DA,EAAO,KAAA;AAAA,IAEX;AAAA,IACA,CAAChB,CAAO;AAAA,EAAA,GAEJiB,IAAyC;AAAA,IAC7C,6BAA6BpB,EAAYQ,CAAY;AAAA,IACrD,iCAAiCR,EAAYS,CAAgB;AAAA,IAC7D,+BAA+BF;AAAA,IAC/B,QAAAG;AAAA,IACA,GAAGE;AAAA,EAAA,GAECO,IACJ,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGL;AAAA,MACJ,KAAKC;AAAA,MACL,UAAU,CAACd,KAAWW;AAAA,MACtB,MAAAC;AAAA,MACA,WAAWO,EAAG,wBAAwBX,CAAS;AAAA,MAC/C,OAAOS;AAAA,MACP,cAAYhB;AAAA,MACZ,eAAaD,IAAU,SAAY;AAAA,MACnC,kBAAgBG;AAAA,MAChB,gBAAcH,IAAU,SAAS;AAAA,MACjC,UAAUA,IAAUU,IAAW;AAAA,MAE/B,4BAACU,GAAA,EAAa,MAAM,IAAI,eAAY,QAAO,WAAU,QAAA,CAAQ;AAAA,IAAA;AAAA,EAAA;AAGjE,SAAOlB,IAAemB,EAAaL,GAAQd,CAAY,IAAIc;AAC7D;AAEAjB,EAAqB,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react/jsx-runtime"),b=require("./ScrollToBottomButton.cjs"),j=require("./useScrollToBottom.cjs"),o=({viewportRef:t,contentRef:l,endRef:e,scrollTarget:r,pageScrollFallback:c,scrollThreshold:s,contentVersion:u,followNewContent:n,autoScrollOnInit:i,behavior:m,onScrollToBottom:B,...S})=>{const{showScrollToBottom:T,scrollToBottom:a}=j.useScrollToBottom(t,{contentRef:l,endRef:e,scrollTarget:r,pageScrollFallback:c,scrollThreshold:s,contentVersion:u,followNewContent:n,autoScrollOnInit:i,behavior:m});return d.jsx(b.ScrollToBottomButton,{...S,visible:T,onClick:()=>{a(),B?.()}})};exports.ScrollToBottomControl=o;exports.default=o;
2
+ //# sourceMappingURL=ScrollToBottomControl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToBottomControl.cjs","sources":["../../../src/components/MarkdownFlow/ScrollToBottomControl.tsx"],"sourcesContent":["import React, { type RefObject } from \"react\";\nimport ScrollToBottomButton, {\n type ScrollToBottomButtonProps,\n} from \"./ScrollToBottomButton\";\nimport useScrollToBottom, {\n type UseScrollToBottomOptions,\n} from \"./useScrollToBottom\";\n\nexport interface ScrollToBottomControlProps\n extends UseScrollToBottomOptions,\n Omit<ScrollToBottomButtonProps, \"onClick\" | \"visible\"> {\n /** Existing host viewport; no wrapper or content ownership is required. */\n viewportRef: RefObject<HTMLElement | null>;\n /** Optional notification after the control requests a scroll to the end. */\n onScrollToBottom?: () => void;\n}\n\n/**\n * Complete scroll-to-bottom control for streaming or asynchronously growing content.\n *\n * The control owns target resolution, follow state, visibility, click behavior,\n * the accessible icon button, and optional portal rendering. Consumers only\n * provide host refs, localized text, and layout inputs.\n */\nexport const ScrollToBottomControl: React.FC<ScrollToBottomControlProps> = ({\n viewportRef,\n contentRef,\n endRef,\n scrollTarget,\n pageScrollFallback,\n scrollThreshold,\n contentVersion,\n followNewContent,\n autoScrollOnInit,\n behavior,\n onScrollToBottom,\n ...buttonProps\n}) => {\n const { showScrollToBottom, scrollToBottom } = useScrollToBottom(\n viewportRef,\n {\n contentRef,\n endRef,\n scrollTarget,\n pageScrollFallback,\n scrollThreshold,\n contentVersion,\n followNewContent,\n autoScrollOnInit,\n behavior,\n }\n );\n\n return (\n <ScrollToBottomButton\n {...buttonProps}\n visible={showScrollToBottom}\n onClick={() => {\n scrollToBottom();\n onScrollToBottom?.();\n }}\n />\n );\n};\n\nexport default ScrollToBottomControl;\n"],"names":["ScrollToBottomControl","viewportRef","contentRef","endRef","scrollTarget","pageScrollFallback","scrollThreshold","contentVersion","followNewContent","autoScrollOnInit","behavior","onScrollToBottom","buttonProps","showScrollToBottom","scrollToBottom","useScrollToBottom","jsx","ScrollToBottomButton"],"mappings":"8NAwBaA,EAA8D,CAAC,CAC1E,YAAAC,EACA,WAAAC,EACA,OAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAM,CACJ,KAAM,CAAE,mBAAAC,EAAoB,eAAAC,CAAA,EAAmBC,EAAAA,kBAC7Cd,EACA,CACE,WAAAC,EACA,OAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,SAAAC,CAAA,CACF,EAGF,OACEM,EAAAA,IAACC,EAAAA,qBAAA,CACE,GAAGL,EACJ,QAASC,EACT,QAAS,IAAM,CACbC,EAAA,EACAH,IAAA,CACF,CAAA,CAAA,CAGN"}
@@ -0,0 +1,18 @@
1
+ import { default as React, RefObject } from 'react';
2
+ import { ScrollToBottomButtonProps } from './ScrollToBottomButton.js';
3
+ import { UseScrollToBottomOptions } from './useScrollToBottom.js';
4
+ export interface ScrollToBottomControlProps extends UseScrollToBottomOptions, Omit<ScrollToBottomButtonProps, "onClick" | "visible"> {
5
+ /** Existing host viewport; no wrapper or content ownership is required. */
6
+ viewportRef: RefObject<HTMLElement | null>;
7
+ /** Optional notification after the control requests a scroll to the end. */
8
+ onScrollToBottom?: () => void;
9
+ }
10
+ /**
11
+ * Complete scroll-to-bottom control for streaming or asynchronously growing content.
12
+ *
13
+ * The control owns target resolution, follow state, visibility, click behavior,
14
+ * the accessible icon button, and optional portal rendering. Consumers only
15
+ * provide host refs, localized text, and layout inputs.
16
+ */
17
+ export declare const ScrollToBottomControl: React.FC<ScrollToBottomControlProps>;
18
+ export default ScrollToBottomControl;