@lobehub/ui 5.20.3 → 5.21.0

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 (1468) hide show
  1. package/es/A/index.d.mts +1 -2
  2. package/es/A/index.mjs.map +1 -1
  3. package/es/Accordion/Accordion.d.mts +2 -4
  4. package/es/Accordion/Accordion.mjs.map +1 -1
  5. package/es/Accordion/AccordionItem.d.mts +2 -4
  6. package/es/Accordion/AccordionItem.mjs.map +1 -1
  7. package/es/Accordion/ArrowIcon.mjs.map +1 -1
  8. package/es/Accordion/context.mjs +18 -17
  9. package/es/Accordion/context.mjs.map +1 -1
  10. package/es/Accordion/index.d.mts +2 -2
  11. package/es/Accordion/style.mjs.map +1 -1
  12. package/es/Accordion/type.d.mts +1 -1
  13. package/es/ActionIcon/ActionIcon.d.mts +2 -4
  14. package/es/ActionIcon/ActionIcon.mjs +1 -1
  15. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  16. package/es/ActionIcon/components/utils.mjs.map +1 -1
  17. package/es/ActionIcon/index.d.mts +2 -2
  18. package/es/ActionIcon/style.mjs +1 -1
  19. package/es/ActionIcon/style.mjs.map +1 -1
  20. package/es/ActionIcon/type.d.mts +3 -1
  21. package/es/ActionIconGroup/ActionIconGroup.d.mts +1 -2
  22. package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  23. package/es/ActionIconGroup/index.d.mts +2 -2
  24. package/es/ActionIconGroup/style.mjs +1 -1
  25. package/es/ActionIconGroup/style.mjs.map +1 -1
  26. package/es/ActionIconGroup/type.d.mts +9 -2
  27. package/es/Alert/Alert.d.mts +2 -4
  28. package/es/Alert/Alert.mjs.map +1 -1
  29. package/es/Alert/index.d.mts +2 -2
  30. package/es/Alert/style.mjs +1 -1
  31. package/es/Alert/style.mjs.map +1 -1
  32. package/es/Alert/type.d.mts +1 -1
  33. package/es/AutoComplete/Select.d.mts +2 -4
  34. package/es/AutoComplete/Select.mjs.map +1 -1
  35. package/es/AutoComplete/index.d.mts +2 -2
  36. package/es/AutoComplete/style.mjs +1 -1
  37. package/es/AutoComplete/style.mjs.map +1 -1
  38. package/es/AutoComplete/type.d.mts +0 -1
  39. package/es/Avatar/Avatar.mjs.map +1 -1
  40. package/es/Avatar/AvatarGroup/index.d.mts +2 -4
  41. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  42. package/es/Avatar/AvatarGroup/style.mjs.map +1 -1
  43. package/es/Avatar/index.d.mts +2 -3
  44. package/es/Avatar/style.mjs.map +1 -1
  45. package/es/Avatar/type.d.mts +2 -1
  46. package/es/Avatar/utils.mjs.map +1 -1
  47. package/es/Block/Block.d.mts +1 -2
  48. package/es/Block/Block.mjs.map +1 -1
  49. package/es/Block/index.d.mts +2 -2
  50. package/es/Block/style.mjs +1 -1
  51. package/es/Block/style.mjs.map +1 -1
  52. package/es/Block/type.d.mts +1 -1
  53. package/es/Burger/Burger.d.mts +2 -4
  54. package/es/Burger/Burger.mjs.map +1 -1
  55. package/es/Burger/index.d.mts +2 -2
  56. package/es/Burger/style.mjs.map +1 -1
  57. package/es/Burger/type.d.mts +1 -1
  58. package/es/Button/Button.d.mts +1 -2
  59. package/es/Button/Button.mjs.map +1 -1
  60. package/es/Button/index.d.mts +2 -2
  61. package/es/Button/style.mjs +1 -1
  62. package/es/Button/style.mjs.map +1 -1
  63. package/es/Button/type.d.mts +1 -1
  64. package/es/Checkbox/Checkbox.mjs.map +1 -1
  65. package/es/Checkbox/CheckboxGroup.d.mts +1 -2
  66. package/es/Checkbox/CheckboxGroup.mjs +2 -1
  67. package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
  68. package/es/Checkbox/index.d.mts +2 -3
  69. package/es/Checkbox/style.mjs.map +1 -1
  70. package/es/Checkbox/type.d.mts +2 -1
  71. package/es/CodeDiff/CodeDiff.d.mts +2 -4
  72. package/es/CodeDiff/CodeDiff.mjs +1 -1
  73. package/es/CodeDiff/CodeDiff.mjs.map +1 -1
  74. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  75. package/es/CodeDiff/PatchDiff.d.mts +2 -4
  76. package/es/CodeDiff/PatchDiff.mjs +1 -1
  77. package/es/CodeDiff/PatchDiff.mjs.map +1 -1
  78. package/es/CodeDiff/index.d.mts +1 -1
  79. package/es/CodeDiff/index.mjs +2 -2
  80. package/es/CodeDiff/style.mjs +1 -1
  81. package/es/CodeDiff/style.mjs.map +1 -1
  82. package/es/CodeDiff/theme.mjs.map +1 -1
  83. package/es/CodeDiff/type.d.mts +1 -1
  84. package/es/CodeEditor/CodeEditor.d.mts +2 -4
  85. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  86. package/es/CodeEditor/index.d.mts +2 -2
  87. package/es/CodeEditor/style.mjs.map +1 -1
  88. package/es/CodeEditor/type.d.mts +1 -1
  89. package/es/Collapse/Collapse.d.mts +2 -4
  90. package/es/Collapse/Collapse.mjs.map +1 -1
  91. package/es/Collapse/index.d.mts +1 -1
  92. package/es/Collapse/style.mjs.map +1 -1
  93. package/es/Collapse/type.d.mts +1 -1
  94. package/es/ColorSwatches/ColorSwatches.d.mts +1 -2
  95. package/es/ColorSwatches/ColorSwatches.mjs +1 -1
  96. package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
  97. package/es/ColorSwatches/index.d.mts +1 -1
  98. package/es/ColorSwatches/style.mjs.map +1 -1
  99. package/es/ColorSwatches/type.d.mts +1 -1
  100. package/es/ConfigProvider/index.d.mts +3 -9
  101. package/es/ConfigProvider/index.mjs +11 -10
  102. package/es/ConfigProvider/index.mjs.map +1 -1
  103. package/es/ContextMenu/index.d.mts +2 -1
  104. package/es/CopyButton/CopyButton.d.mts +2 -4
  105. package/es/CopyButton/CopyButton.mjs.map +1 -1
  106. package/es/CopyButton/index.d.mts +1 -1
  107. package/es/CopyButton/type.d.mts +1 -0
  108. package/es/DatePicker/DatePicker.d.mts +2 -4
  109. package/es/DatePicker/DatePicker.mjs.map +1 -1
  110. package/es/DatePicker/index.d.mts +2 -2
  111. package/es/DatePicker/style.mjs +1 -1
  112. package/es/DatePicker/style.mjs.map +1 -1
  113. package/es/DatePicker/type.d.mts +0 -1
  114. package/es/DownloadButton/DownloadButton.d.mts +1 -2
  115. package/es/DownloadButton/DownloadButton.mjs.map +1 -1
  116. package/es/DownloadButton/index.d.mts +1 -1
  117. package/es/DownloadButton/type.d.mts +1 -0
  118. package/es/DraggablePanel/DraggablePanel.mjs +2 -1
  119. package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
  120. package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -4
  121. package/es/DraggablePanel/components/DraggablePanelBody.mjs.map +1 -1
  122. package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -4
  123. package/es/DraggablePanel/components/DraggablePanelContainer.mjs.map +1 -1
  124. package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -4
  125. package/es/DraggablePanel/components/DraggablePanelFooter.mjs.map +1 -1
  126. package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -4
  127. package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
  128. package/es/DraggablePanel/components/style.mjs.map +1 -1
  129. package/es/DraggablePanel/index.d.mts +5 -6
  130. package/es/DraggablePanel/style.mjs.map +1 -1
  131. package/es/DraggablePanel/type.d.mts +0 -1
  132. package/es/DraggablePanel/utils.mjs.map +1 -1
  133. package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -4
  134. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  135. package/es/DraggableSideNav/index.d.mts +2 -2
  136. package/es/DraggableSideNav/style.mjs.map +1 -1
  137. package/es/DraggableSideNav/type.d.mts +0 -1
  138. package/es/Drawer/Drawer.d.mts +2 -4
  139. package/es/Drawer/Drawer.mjs.map +1 -1
  140. package/es/Drawer/index.d.mts +2 -2
  141. package/es/Drawer/type.d.mts +1 -1
  142. package/es/Dropdown/Dropdown.d.mts +2 -4
  143. package/es/Dropdown/Dropdown.mjs.map +1 -1
  144. package/es/Dropdown/index.d.mts +2 -2
  145. package/es/Dropdown/type.d.mts +3 -2
  146. package/es/DropdownMenu/index.d.mts +3 -2
  147. package/es/EditableText/ControlInput.d.mts +2 -0
  148. package/es/EditableText/ControlInput.mjs.map +1 -1
  149. package/es/EditableText/EditableText.d.mts +2 -4
  150. package/es/EditableText/EditableText.mjs.map +1 -1
  151. package/es/EditableText/index.d.mts +2 -2
  152. package/es/EditableText/type.d.mts +9 -1
  153. package/es/EditorSlashMenu/EditorSlashMenu.d.mts +23 -13
  154. package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
  155. package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
  156. package/es/EditorSlashMenu/atoms.d.mts +14 -59
  157. package/es/EditorSlashMenu/atoms.mjs.map +1 -1
  158. package/es/EditorSlashMenu/index.d.mts +2 -2
  159. package/es/EditorSlashMenu/style.mjs.map +1 -1
  160. package/es/EditorSlashMenu/type.d.mts +16 -9
  161. package/es/EditorSlashMenu/useKeyboardNavigation.mjs.map +1 -1
  162. package/es/EditorSlashMenu/useNormalizedItems.mjs.map +1 -1
  163. package/es/EditorSlashMenu/utils.mjs.map +1 -1
  164. package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
  165. package/es/EmojiPicker/EmojiPicker.d.mts +2 -4
  166. package/es/EmojiPicker/EmojiPicker.mjs +5 -2
  167. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  168. package/es/EmojiPicker/index.d.mts +2 -2
  169. package/es/EmojiPicker/style.mjs.map +1 -1
  170. package/es/EmojiPicker/type.d.mts +1 -1
  171. package/es/Empty/Empty.d.mts +1 -2
  172. package/es/Empty/Empty.mjs.map +1 -1
  173. package/es/Empty/index.d.mts +2 -2
  174. package/es/Empty/type.d.mts +4 -1
  175. package/es/FileTypeIcon/FileTypeIcon.d.mts +1 -2
  176. package/es/FileTypeIcon/FileTypeIcon.mjs.map +1 -1
  177. package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
  178. package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
  179. package/es/FileTypeIcon/index.d.mts +2 -2
  180. package/es/FileTypeIcon/style.mjs.map +1 -1
  181. package/es/FileTypeIcon/type.d.mts +0 -1
  182. package/es/Flex/Center.d.mts +1 -2
  183. package/es/Flex/Center.mjs.map +1 -1
  184. package/es/Flex/FlexBasic.d.mts +2 -4
  185. package/es/Flex/FlexBasic.mjs.map +1 -1
  186. package/es/Flex/Flexbox.d.mts +2 -1
  187. package/es/Flex/index.d.mts +3 -2
  188. package/es/Flex/type.d.mts +1 -2
  189. package/es/Flex/utils.mjs.map +1 -1
  190. package/es/FluentEmoji/FluentEmoji.d.mts +1 -2
  191. package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
  192. package/es/FluentEmoji/index.d.mts +2 -2
  193. package/es/FluentEmoji/style.mjs.map +1 -1
  194. package/es/FluentEmoji/type.d.mts +0 -1
  195. package/es/FluentEmoji/utils.mjs +1 -1
  196. package/es/FluentEmoji/utils.mjs.map +1 -1
  197. package/es/FontLoader/index.d.mts +2 -4
  198. package/es/FontLoader/index.mjs.map +1 -1
  199. package/es/Footer/Footer.d.mts +2 -4
  200. package/es/Footer/Footer.mjs.map +1 -1
  201. package/es/Footer/index.d.mts +2 -2
  202. package/es/Footer/style.mjs.map +1 -1
  203. package/es/Footer/type.d.mts +1 -1
  204. package/es/Form/Form.mjs.map +1 -1
  205. package/es/Form/components/FormDivider.mjs.map +1 -1
  206. package/es/Form/components/FormFlatGroup.mjs.map +1 -1
  207. package/es/Form/components/FormGroup.d.mts +2 -4
  208. package/es/Form/components/FormGroup.mjs.map +1 -1
  209. package/es/Form/components/FormItem.d.mts +2 -4
  210. package/es/Form/components/FormItem.mjs.map +1 -1
  211. package/es/Form/components/FormProvider.mjs +1 -1
  212. package/es/Form/components/FormProvider.mjs.map +1 -1
  213. package/es/Form/components/FormSubmitFooter.d.mts +2 -4
  214. package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
  215. package/es/Form/components/FormTitle.d.mts +1 -2
  216. package/es/Form/components/FormTitle.mjs.map +1 -1
  217. package/es/Form/components/merge.mjs.map +1 -1
  218. package/es/Form/index.d.mts +5 -6
  219. package/es/Form/style.mjs +1 -1
  220. package/es/Form/style.mjs.map +1 -1
  221. package/es/Form/type.d.mts +5 -1
  222. package/es/FormModal/FormModal.d.mts +2 -4
  223. package/es/FormModal/FormModal.mjs.map +1 -1
  224. package/es/FormModal/index.d.mts +2 -2
  225. package/es/FormModal/style.mjs.map +1 -1
  226. package/es/FormModal/type.d.mts +3 -1
  227. package/es/Freeze/Freeze.d.mts +2 -7
  228. package/es/Freeze/Freeze.mjs +1 -1
  229. package/es/Freeze/Freeze.mjs.map +1 -1
  230. package/es/Freeze/index.d.mts +2 -2
  231. package/es/Freeze/type.d.mts +0 -1
  232. package/es/Grid/Grid.d.mts +1 -2
  233. package/es/Grid/Grid.mjs.map +1 -1
  234. package/es/Grid/index.d.mts +2 -2
  235. package/es/Grid/style.mjs.map +1 -1
  236. package/es/Grid/type.d.mts +1 -1
  237. package/es/GroupAvatar/GroupAvatar.d.mts +1 -2
  238. package/es/GroupAvatar/GroupAvatar.mjs.map +1 -1
  239. package/es/GroupAvatar/index.d.mts +2 -2
  240. package/es/GroupAvatar/style.mjs +1 -1
  241. package/es/GroupAvatar/style.mjs.map +1 -1
  242. package/es/GroupAvatar/type.d.mts +0 -1
  243. package/es/GuideCard/GuideCard.d.mts +2 -4
  244. package/es/GuideCard/GuideCard.mjs.map +1 -1
  245. package/es/GuideCard/index.d.mts +2 -1
  246. package/es/GuideCard/style.mjs.map +1 -1
  247. package/es/GuideCard/type.d.mts +2 -1
  248. package/es/Header/Header.d.mts +2 -4
  249. package/es/Header/Header.mjs.map +1 -1
  250. package/es/Header/index.d.mts +2 -2
  251. package/es/Header/style.mjs.map +1 -1
  252. package/es/Header/type.d.mts +1 -1
  253. package/es/Highlighter/FullFeatured.mjs +2 -2
  254. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  255. package/es/Highlighter/Highlighter.d.mts +2 -4
  256. package/es/Highlighter/Highlighter.mjs +2 -2
  257. package/es/Highlighter/Highlighter.mjs.map +1 -1
  258. package/es/Highlighter/LangSelect.mjs +1 -1
  259. package/es/Highlighter/LangSelect.mjs.map +1 -1
  260. package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
  261. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -1
  262. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
  263. package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -4
  264. package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
  265. package/es/Highlighter/SyntaxHighlighter/style.mjs +1 -1
  266. package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
  267. package/es/Highlighter/const.mjs.map +1 -1
  268. package/es/Highlighter/index.d.mts +2 -2
  269. package/es/Highlighter/index.mjs +1 -1
  270. package/es/Highlighter/style.mjs +1 -1
  271. package/es/Highlighter/style.mjs.map +1 -1
  272. package/es/Highlighter/theme/lobe-theme.d.mts +1 -1
  273. package/es/Highlighter/theme/lobe-theme.mjs.map +1 -1
  274. package/es/Highlighter/type.d.mts +2 -1
  275. package/es/Hotkey/Hotkey.d.mts +2 -4
  276. package/es/Hotkey/Hotkey.mjs +2 -1
  277. package/es/Hotkey/Hotkey.mjs.map +1 -1
  278. package/es/Hotkey/const.mjs.map +1 -1
  279. package/es/Hotkey/index.d.mts +2 -2
  280. package/es/Hotkey/style.mjs +1 -1
  281. package/es/Hotkey/style.mjs.map +1 -1
  282. package/es/Hotkey/type.d.mts +1 -1
  283. package/es/Hotkey/utils.mjs.map +1 -1
  284. package/es/HotkeyInput/HotkeyInput.d.mts +2 -4
  285. package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
  286. package/es/HotkeyInput/index.d.mts +1 -1
  287. package/es/HotkeyInput/style.mjs.map +1 -1
  288. package/es/HotkeyInput/type.d.mts +0 -1
  289. package/es/HtmlPreview/HtmlPreview.d.mts +2 -4
  290. package/es/HtmlPreview/HtmlPreview.mjs +1 -1
  291. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  292. package/es/HtmlPreview/Iframe.d.mts +2 -4
  293. package/es/HtmlPreview/Iframe.mjs +1 -1
  294. package/es/HtmlPreview/Iframe.mjs.map +1 -1
  295. package/es/HtmlPreview/buildShellSrcDoc.mjs.map +1 -1
  296. package/es/HtmlPreview/buildStaticSrcDoc.mjs.map +1 -1
  297. package/es/HtmlPreview/const.mjs.map +1 -1
  298. package/es/HtmlPreview/index.d.mts +2 -2
  299. package/es/HtmlPreview/index.mjs +1 -1
  300. package/es/HtmlPreview/injectAutoHeightScript.mjs.map +1 -1
  301. package/es/HtmlPreview/type.d.mts +1 -1
  302. package/es/Icon/Icon.d.mts +2 -4
  303. package/es/Icon/Icon.mjs.map +1 -1
  304. package/es/Icon/components/IconProvider.d.mts +2 -4
  305. package/es/Icon/components/IconProvider.mjs.map +1 -1
  306. package/es/Icon/components/utils.mjs.map +1 -1
  307. package/es/Icon/index.d.mts +2 -2
  308. package/es/Icon/style.mjs +7 -6
  309. package/es/Icon/style.mjs.map +1 -1
  310. package/es/Icon/type.d.mts +0 -1
  311. package/es/Image/Image.mjs.map +1 -1
  312. package/es/Image/PreviewGroup.d.mts +2 -4
  313. package/es/Image/PreviewGroup.mjs.map +1 -1
  314. package/es/Image/components/Preview.mjs.map +1 -1
  315. package/es/Image/components/Toolbar.mjs.map +1 -1
  316. package/es/Image/components/usePreview.mjs +1 -1
  317. package/es/Image/components/usePreview.mjs.map +1 -1
  318. package/es/Image/components/usePreviewGroup.mjs +1 -1
  319. package/es/Image/components/usePreviewGroup.mjs.map +1 -1
  320. package/es/Image/index.d.mts +2 -3
  321. package/es/Image/style.mjs.map +1 -1
  322. package/es/Image/type.d.mts +0 -1
  323. package/es/ImageSelect/ImageSelect.d.mts +2 -4
  324. package/es/ImageSelect/ImageSelect.mjs.map +1 -1
  325. package/es/ImageSelect/index.d.mts +2 -1
  326. package/es/ImageSelect/styles.mjs.map +1 -1
  327. package/es/ImageSelect/type.d.mts +8 -1
  328. package/es/Img/index.mjs.map +1 -1
  329. package/es/Input/Input.d.mts +2 -4
  330. package/es/Input/Input.mjs.map +1 -1
  331. package/es/Input/InputNumber.d.mts +2 -4
  332. package/es/Input/InputNumber.mjs.map +1 -1
  333. package/es/Input/InputOPT.d.mts +2 -4
  334. package/es/Input/InputOPT.mjs.map +1 -1
  335. package/es/Input/InputPassword.d.mts +2 -4
  336. package/es/Input/InputPassword.mjs.map +1 -1
  337. package/es/Input/TextArea.d.mts +2 -4
  338. package/es/Input/TextArea.mjs.map +1 -1
  339. package/es/Input/index.d.mts +6 -5
  340. package/es/Input/style.mjs +1 -1
  341. package/es/Input/style.mjs.map +1 -1
  342. package/es/Input/type.d.mts +0 -1
  343. package/es/Layout/Layout.mjs +6 -6
  344. package/es/Layout/Layout.mjs.map +1 -1
  345. package/es/Layout/components/LayoutFooter.d.mts +3 -4
  346. package/es/Layout/components/LayoutFooter.mjs +1 -1
  347. package/es/Layout/components/LayoutFooter.mjs.map +1 -1
  348. package/es/Layout/components/LayoutHeader.d.mts +2 -4
  349. package/es/Layout/components/LayoutHeader.mjs +1 -1
  350. package/es/Layout/components/LayoutHeader.mjs.map +1 -1
  351. package/es/Layout/components/LayoutMain.d.mts +3 -4
  352. package/es/Layout/components/LayoutMain.mjs +1 -1
  353. package/es/Layout/components/LayoutMain.mjs.map +1 -1
  354. package/es/Layout/components/LayoutSidebar.d.mts +2 -4
  355. package/es/Layout/components/LayoutSidebar.mjs +1 -1
  356. package/es/Layout/components/LayoutSidebar.mjs.map +1 -1
  357. package/es/Layout/components/LayoutSidebarInner.d.mts +2 -4
  358. package/es/Layout/components/LayoutSidebarInner.mjs +1 -1
  359. package/es/Layout/components/LayoutSidebarInner.mjs.map +1 -1
  360. package/es/Layout/components/LayoutToc.d.mts +2 -4
  361. package/es/Layout/components/LayoutToc.mjs +1 -1
  362. package/es/Layout/components/LayoutToc.mjs.map +1 -1
  363. package/es/Layout/index.d.mts +1 -2
  364. package/es/Layout/index.mjs +6 -6
  365. package/es/Layout/style.mjs.map +1 -1
  366. package/es/Layout/type.d.mts +0 -1
  367. package/es/List/List.mjs.map +1 -1
  368. package/es/List/ListItem/index.d.mts +2 -4
  369. package/es/List/ListItem/index.mjs.map +1 -1
  370. package/es/List/ListItem/style.mjs.map +1 -1
  371. package/es/List/ListItem/time.mjs.map +1 -1
  372. package/es/List/index.d.mts +2 -3
  373. package/es/List/type.d.mts +1 -1
  374. package/es/Markdown/Markdown.d.mts +2 -4
  375. package/es/Markdown/Markdown.mjs +1 -1
  376. package/es/Markdown/Markdown.mjs.map +1 -1
  377. package/es/Markdown/SyntaxMarkdown/CachedMarkdown.mjs +1 -1
  378. package/es/Markdown/SyntaxMarkdown/CachedMarkdown.mjs.map +1 -1
  379. package/es/Markdown/SyntaxMarkdown/MarkdownRender.mjs.map +1 -1
  380. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs +5 -3
  381. package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
  382. package/es/Markdown/SyntaxMarkdown/fenceState.mjs.map +1 -1
  383. package/es/Markdown/SyntaxMarkdown/streamAnimationMeta.mjs.map +1 -1
  384. package/es/Markdown/SyntaxMarkdown/style.mjs.map +1 -1
  385. package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs +6 -2
  386. package/es/Markdown/SyntaxMarkdown/useSmoothStreamContent.mjs.map +1 -1
  387. package/es/Markdown/SyntaxMarkdown/useStreamQueue.mjs +2 -1
  388. package/es/Markdown/SyntaxMarkdown/useStreamQueue.mjs.map +1 -1
  389. package/es/Markdown/Typography.d.mts +2 -4
  390. package/es/Markdown/Typography.mjs.map +1 -1
  391. package/es/Markdown/components/CodeBlock.mjs +2 -2
  392. package/es/Markdown/components/CodeBlock.mjs.map +1 -1
  393. package/es/Markdown/components/Footnotes.mjs.map +1 -1
  394. package/es/Markdown/components/MarkdownProvider.mjs +3 -2
  395. package/es/Markdown/components/MarkdownProvider.mjs.map +1 -1
  396. package/es/Markdown/components/MarkdownTable/hastTableToMarkdown.mjs.map +1 -1
  397. package/es/Markdown/components/MarkdownTable/index.mjs.map +1 -1
  398. package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
  399. package/es/Markdown/components/SearchResultCards/index.d.mts +3 -4
  400. package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
  401. package/es/Markdown/components/SearchResultCards/style.mjs.map +1 -1
  402. package/es/Markdown/components/useDelayedAnimated.mjs.map +1 -1
  403. package/es/Markdown/index.d.mts +3 -3
  404. package/es/Markdown/markdown.style.mjs +11 -10
  405. package/es/Markdown/markdown.style.mjs.map +1 -1
  406. package/es/Markdown/plugins/rehypeCustomFootnotes.mjs +1 -1
  407. package/es/Markdown/plugins/rehypeCustomFootnotes.mjs.map +1 -1
  408. package/es/Markdown/plugins/rehypeKatexDir.d.mts +1 -2
  409. package/es/Markdown/plugins/rehypeKatexDir.mjs +1 -1
  410. package/es/Markdown/plugins/rehypeKatexDir.mjs.map +1 -1
  411. package/es/Markdown/plugins/rehypeStreamAnimated.d.mts +2 -3
  412. package/es/Markdown/plugins/rehypeStreamAnimated.mjs +3 -4
  413. package/es/Markdown/plugins/rehypeStreamAnimated.mjs.map +1 -1
  414. package/es/Markdown/plugins/remarkBr.mjs +1 -1
  415. package/es/Markdown/plugins/remarkBr.mjs.map +1 -1
  416. package/es/Markdown/plugins/remarkColor.mjs +1 -1
  417. package/es/Markdown/plugins/remarkColor.mjs.map +1 -1
  418. package/es/Markdown/plugins/remarkCustomFootnotes.mjs +2 -2
  419. package/es/Markdown/plugins/remarkCustomFootnotes.mjs.map +1 -1
  420. package/es/Markdown/plugins/remarkGfmPlus.mjs +1 -1
  421. package/es/Markdown/plugins/remarkGfmPlus.mjs.map +1 -1
  422. package/es/Markdown/plugins/remarkVideo.mjs +1 -1
  423. package/es/Markdown/plugins/remarkVideo.mjs.map +1 -1
  424. package/es/Markdown/streamProfiler/StreamdownProfilerProvider.mjs +1 -1
  425. package/es/Markdown/streamProfiler/StreamdownProfilerProvider.mjs.map +1 -1
  426. package/es/Markdown/style.mjs.map +1 -1
  427. package/es/Markdown/type.d.mts +4 -1
  428. package/es/MaskShadow/MaskShadow.d.mts +2 -4
  429. package/es/MaskShadow/MaskShadow.mjs.map +1 -1
  430. package/es/MaskShadow/index.d.mts +2 -2
  431. package/es/MaskShadow/style.mjs +1 -1
  432. package/es/MaskShadow/style.mjs.map +1 -1
  433. package/es/MaskShadow/type.d.mts +1 -0
  434. package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.d.mts +1 -2
  435. package/es/MaterialFileTypeIcon/MaterialFileTypeIcon.mjs.map +1 -1
  436. package/es/MaterialFileTypeIcon/icon-map.json.d.mts +2 -2
  437. package/es/MaterialFileTypeIcon/index.d.mts +2 -2
  438. package/es/MaterialFileTypeIcon/type.d.mts +1 -2
  439. package/es/MaterialFileTypeIcon/utils.mjs +1 -1
  440. package/es/MaterialFileTypeIcon/utils.mjs.map +1 -1
  441. package/es/Menu/Menu.d.mts +2 -4
  442. package/es/Menu/Menu.mjs.map +1 -1
  443. package/es/Menu/baseItem.d.mts +1 -1
  444. package/es/Menu/checkboxItem.d.mts +1 -1
  445. package/es/Menu/index.d.mts +2 -2
  446. package/es/Menu/renderUtils.d.mts +1 -1
  447. package/es/Menu/renderUtils.mjs.map +1 -1
  448. package/es/Menu/style.mjs +1 -1
  449. package/es/Menu/style.mjs.map +1 -1
  450. package/es/Menu/switchItem.d.mts +1 -1
  451. package/es/Menu/type.d.mts +2 -2
  452. package/es/Menu/utils.d.mts +0 -1
  453. package/es/Menu/utils.mjs.map +1 -1
  454. package/es/Mermaid/FullFeatured.mjs +1 -1
  455. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  456. package/es/Mermaid/Mermaid.d.mts +2 -4
  457. package/es/Mermaid/Mermaid.mjs +1 -1
  458. package/es/Mermaid/Mermaid.mjs.map +1 -1
  459. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +2 -1
  460. package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
  461. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +2 -1
  462. package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
  463. package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -4
  464. package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
  465. package/es/Mermaid/SyntaxMermaid/style.mjs +1 -1
  466. package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
  467. package/es/Mermaid/const.mjs.map +1 -1
  468. package/es/Mermaid/index.d.mts +3 -3
  469. package/es/Mermaid/type.d.mts +1 -1
  470. package/es/Modal/Modal.d.mts +2 -4
  471. package/es/Modal/Modal.mjs.map +1 -1
  472. package/es/Modal/ModalProvider.d.mts +1 -3
  473. package/es/Modal/ModalProvider.mjs +1 -1
  474. package/es/Modal/ModalProvider.mjs.map +1 -1
  475. package/es/Modal/ModalStackItem.mjs.map +1 -1
  476. package/es/Modal/RawModalStackItem.mjs.map +1 -1
  477. package/es/Modal/imperative.d.mts +1 -5
  478. package/es/Modal/imperative.mjs.map +1 -1
  479. package/es/Modal/index.d.mts +2 -2
  480. package/es/Modal/style.mjs.map +1 -1
  481. package/es/Modal/type.d.mts +0 -1
  482. package/es/MotionProvider/index.d.mts +2 -5
  483. package/es/MotionProvider/index.mjs.map +1 -1
  484. package/es/NeuralNetworkLoading/NeuralNetworkLoading.d.mts +2 -4
  485. package/es/NeuralNetworkLoading/NeuralNetworkLoading.mjs.map +1 -1
  486. package/es/NeuralNetworkLoading/index.d.mts +2 -2
  487. package/es/NeuralNetworkLoading/type.d.mts +0 -1
  488. package/es/Popover/index.d.mts +4 -3
  489. package/es/Provider.d.mts +2 -1
  490. package/es/ScrollArea/index.d.mts +2 -1
  491. package/es/ScrollShadow/ScrollShadow.d.mts +1 -2
  492. package/es/ScrollShadow/ScrollShadow.mjs.map +1 -1
  493. package/es/ScrollShadow/index.d.mts +2 -2
  494. package/es/ScrollShadow/style.mjs +1 -1
  495. package/es/ScrollShadow/style.mjs.map +1 -1
  496. package/es/ScrollShadow/type.d.mts +1 -1
  497. package/es/ScrollShadow/useScrollOverflow.mjs.map +1 -1
  498. package/es/SearchBar/SearchBar.d.mts +2 -4
  499. package/es/SearchBar/SearchBar.mjs.map +1 -1
  500. package/es/SearchBar/index.d.mts +2 -2
  501. package/es/SearchBar/style.mjs.map +1 -1
  502. package/es/SearchBar/type.d.mts +1 -1
  503. package/es/Segmented/Segmented.d.mts +2 -4
  504. package/es/Segmented/Segmented.mjs.map +1 -1
  505. package/es/Segmented/index.d.mts +2 -2
  506. package/es/Segmented/style.mjs +1 -1
  507. package/es/Segmented/style.mjs.map +1 -1
  508. package/es/Segmented/type.d.mts +1 -1
  509. package/es/Select/Select.d.mts +2 -4
  510. package/es/Select/Select.mjs.map +1 -1
  511. package/es/Select/index.d.mts +2 -2
  512. package/es/Select/style.mjs +1 -1
  513. package/es/Select/style.mjs.map +1 -1
  514. package/es/Select/type.d.mts +1 -1
  515. package/es/SideNav/SideNav.d.mts +2 -4
  516. package/es/SideNav/SideNav.mjs.map +1 -1
  517. package/es/SideNav/index.d.mts +2 -2
  518. package/es/SideNav/style.mjs.map +1 -1
  519. package/es/SideNav/type.d.mts +1 -1
  520. package/es/Skeleton/Skeleton.mjs.map +1 -1
  521. package/es/Skeleton/SkeletonAvatar.d.mts +1 -2
  522. package/es/Skeleton/SkeletonAvatar.mjs.map +1 -1
  523. package/es/Skeleton/SkeletonBlock.d.mts +1 -2
  524. package/es/Skeleton/SkeletonBlock.mjs.map +1 -1
  525. package/es/Skeleton/SkeletonButton.d.mts +1 -2
  526. package/es/Skeleton/SkeletonButton.mjs.map +1 -1
  527. package/es/Skeleton/SkeletonParagraph.d.mts +1 -2
  528. package/es/Skeleton/SkeletonParagraph.mjs.map +1 -1
  529. package/es/Skeleton/SkeletonTags.d.mts +1 -2
  530. package/es/Skeleton/SkeletonTags.mjs.map +1 -1
  531. package/es/Skeleton/SkeletonTitle.d.mts +1 -2
  532. package/es/Skeleton/SkeletonTitle.mjs.map +1 -1
  533. package/es/Skeleton/index.d.mts +7 -8
  534. package/es/Skeleton/style.mjs.map +1 -1
  535. package/es/Skeleton/type.d.mts +0 -1
  536. package/es/SliderWithInput/SliderWithInput.d.mts +2 -4
  537. package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
  538. package/es/SliderWithInput/index.d.mts +2 -2
  539. package/es/SliderWithInput/type.d.mts +2 -1
  540. package/es/Snippet/Snippet.d.mts +1 -2
  541. package/es/Snippet/Snippet.mjs.map +1 -1
  542. package/es/Snippet/index.d.mts +2 -2
  543. package/es/Snippet/style.mjs.map +1 -1
  544. package/es/Snippet/type.d.mts +1 -1
  545. package/es/SortableList/SortableList.d.mts +3 -4
  546. package/es/SortableList/SortableList.mjs.map +1 -1
  547. package/es/SortableList/components/DragHandle.d.mts +3 -4
  548. package/es/SortableList/components/DragHandle.mjs.map +1 -1
  549. package/es/SortableList/components/SortableItem.d.mts +4 -3
  550. package/es/SortableList/components/SortableItem.mjs +10 -9
  551. package/es/SortableList/components/SortableItem.mjs.map +1 -1
  552. package/es/SortableList/components/SortableOverlay.mjs.map +1 -1
  553. package/es/SortableList/index.d.mts +2 -2
  554. package/es/SortableList/style.mjs.map +1 -1
  555. package/es/SortableList/type.d.mts +5 -1
  556. package/es/Tabs/Tabs.d.mts +1 -2
  557. package/es/Tabs/Tabs.mjs.map +1 -1
  558. package/es/Tabs/index.d.mts +2 -2
  559. package/es/Tabs/style.mjs.map +1 -1
  560. package/es/Tabs/type.d.mts +0 -1
  561. package/es/Tag/Tag.d.mts +1 -2
  562. package/es/Tag/Tag.mjs.map +1 -1
  563. package/es/Tag/index.d.mts +2 -1
  564. package/es/Tag/styles.mjs +1 -1
  565. package/es/Tag/styles.mjs.map +1 -1
  566. package/es/Tag/type.d.mts +0 -1
  567. package/es/Tag/utils.mjs +1 -1
  568. package/es/Tag/utils.mjs.map +1 -1
  569. package/es/Text/Text.d.mts +1 -2
  570. package/es/Text/Text.mjs +1 -1
  571. package/es/Text/Text.mjs.map +1 -1
  572. package/es/Text/index.d.mts +2 -2
  573. package/es/Text/styles.mjs +1 -1
  574. package/es/Text/styles.mjs.map +1 -1
  575. package/es/Text/type.d.mts +1 -1
  576. package/es/ThemeProvider/AppElementContext.mjs.map +1 -1
  577. package/es/ThemeProvider/ConfigProvider.mjs.map +1 -1
  578. package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
  579. package/es/ThemeProvider/GlobalStyle/essential.mjs +90 -0
  580. package/es/ThemeProvider/GlobalStyle/essential.mjs.map +1 -0
  581. package/es/ThemeProvider/GlobalStyle/global.mjs +0 -79
  582. package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
  583. package/es/ThemeProvider/GlobalStyle/index.mjs +4 -2
  584. package/es/ThemeProvider/GlobalStyle/index.mjs.map +1 -1
  585. package/es/ThemeProvider/Meta.d.mts +1 -2
  586. package/es/ThemeProvider/Meta.mjs.map +1 -1
  587. package/es/ThemeProvider/ThemeProvider.d.mts +2 -4
  588. package/es/ThemeProvider/ThemeProvider.mjs +25 -21
  589. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  590. package/es/ThemeProvider/index.d.mts +3 -3
  591. package/es/ThemeProvider/type.d.mts +2 -1
  592. package/es/ThemeSwitch/ThemeSwitch.d.mts +1 -2
  593. package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
  594. package/es/ThemeSwitch/index.d.mts +2 -2
  595. package/es/ThemeSwitch/type.d.mts +1 -1
  596. package/es/Toast/index.d.mts +2 -1
  597. package/es/Toc/Toc.d.mts +2 -4
  598. package/es/Toc/Toc.mjs.map +1 -1
  599. package/es/Toc/TocMobile.mjs.map +1 -1
  600. package/es/Toc/index.d.mts +2 -2
  601. package/es/Toc/style.mjs.map +1 -1
  602. package/es/Toc/type.d.mts +0 -1
  603. package/es/Toc/utils.mjs.map +1 -1
  604. package/es/Tooltip/index.d.mts +3 -2
  605. package/es/Tooltip/index.mjs +1 -1
  606. package/es/Video/index.d.mts +3 -4
  607. package/es/Video/index.mjs.map +1 -1
  608. package/es/Video/style.mjs +1 -1
  609. package/es/Video/style.mjs.map +1 -1
  610. package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -4
  611. package/es/awesome/AuroraBackground/AuroraBackground.mjs.map +1 -1
  612. package/es/awesome/AuroraBackground/index.d.mts +2 -1
  613. package/es/awesome/AuroraBackground/style.mjs.map +1 -1
  614. package/es/awesome/AuroraBackground/type.d.mts +1 -1
  615. package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +3 -4
  616. package/es/awesome/BottomGradientButton/BottomGradientButton.mjs.map +1 -1
  617. package/es/awesome/BottomGradientButton/index.d.mts +3 -2
  618. package/es/awesome/BottomGradientButton/style.mjs.map +1 -1
  619. package/es/awesome/BottomGradientButton/type.d.mts +1 -0
  620. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  621. package/es/awesome/Features/Features.d.mts +2 -4
  622. package/es/awesome/Features/Features.mjs.map +1 -1
  623. package/es/awesome/Features/index.d.mts +2 -1
  624. package/es/awesome/Features/style.mjs.map +1 -1
  625. package/es/awesome/Features/type.d.mts +2 -1
  626. package/es/awesome/Giscus/Giscus.d.mts +2 -4
  627. package/es/awesome/Giscus/Giscus.mjs.map +1 -1
  628. package/es/awesome/Giscus/index.d.mts +2 -1
  629. package/es/awesome/Giscus/style.mjs.map +1 -1
  630. package/es/awesome/Giscus/type.d.mts +0 -1
  631. package/es/awesome/GradientButton/GradientButton.d.mts +2 -4
  632. package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
  633. package/es/awesome/GradientButton/index.d.mts +2 -1
  634. package/es/awesome/GradientButton/style.mjs.map +1 -1
  635. package/es/awesome/GradientButton/type.d.mts +1 -0
  636. package/es/awesome/GridBackground/GridBackground.d.mts +2 -4
  637. package/es/awesome/GridBackground/GridBackground.mjs.map +1 -1
  638. package/es/awesome/GridBackground/GridShowcase.d.mts +2 -4
  639. package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
  640. package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
  641. package/es/awesome/GridBackground/index.d.mts +3 -2
  642. package/es/awesome/GridBackground/style.mjs.map +1 -1
  643. package/es/awesome/GridBackground/type.d.mts +1 -1
  644. package/es/awesome/Hero/Hero.d.mts +2 -4
  645. package/es/awesome/Hero/Hero.mjs.map +1 -1
  646. package/es/awesome/Hero/index.d.mts +2 -1
  647. package/es/awesome/Hero/style.mjs.map +1 -1
  648. package/es/awesome/Hero/type.d.mts +0 -1
  649. package/es/awesome/Spline/ParentSize.mjs.map +1 -1
  650. package/es/awesome/Spline/Spine.d.mts +3 -3
  651. package/es/awesome/Spline/Spine.mjs.map +1 -1
  652. package/es/awesome/Spline/index.d.mts +2 -1
  653. package/es/awesome/Spline/type.d.mts +0 -1
  654. package/es/awesome/Spotlight/Spotlight.d.mts +2 -4
  655. package/es/awesome/Spotlight/Spotlight.mjs.map +1 -1
  656. package/es/awesome/Spotlight/index.d.mts +2 -1
  657. package/es/awesome/Spotlight/style.mjs.map +1 -1
  658. package/es/awesome/Spotlight/type.d.mts +0 -1
  659. package/es/awesome/Spotlight/useMouseOffset.mjs.map +1 -1
  660. package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -4
  661. package/es/awesome/SpotlightCard/SpotlightCard.mjs.map +1 -1
  662. package/es/awesome/SpotlightCard/SpotlightCardItem.mjs.map +1 -1
  663. package/es/awesome/SpotlightCard/index.d.mts +2 -1
  664. package/es/awesome/SpotlightCard/style.mjs.map +1 -1
  665. package/es/awesome/SpotlightCard/type.d.mts +0 -1
  666. package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -4
  667. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  668. package/es/awesome/TypewriterEffect/index.d.mts +2 -1
  669. package/es/awesome/TypewriterEffect/style.mjs.map +1 -1
  670. package/es/awesome/TypewriterEffect/type.d.mts +0 -1
  671. package/es/awesome/index.d.mts +23 -12
  672. package/es/base-ui/AutoComplete/AutoComplete.d.mts +2 -4
  673. package/es/base-ui/AutoComplete/AutoComplete.mjs.map +1 -1
  674. package/es/base-ui/AutoComplete/index.d.mts +3 -2
  675. package/es/base-ui/AutoComplete/style.mjs.map +1 -1
  676. package/es/base-ui/AutoComplete/type.d.mts +1 -1
  677. package/es/base-ui/Button/Button.d.mts +2 -25
  678. package/es/base-ui/Button/Button.mjs.map +1 -1
  679. package/es/base-ui/Button/SplitButton.d.mts +5 -18
  680. package/es/base-ui/Button/SplitButton.mjs +14 -13
  681. package/es/base-ui/Button/SplitButton.mjs.map +1 -1
  682. package/es/base-ui/Button/index.d.mts +4 -3
  683. package/es/base-ui/Button/style.mjs.map +1 -1
  684. package/es/base-ui/Button/type.d.mts +1 -1
  685. package/es/base-ui/Checkbox/Checkbox.d.mts +2 -4
  686. package/es/base-ui/Checkbox/Checkbox.mjs.map +1 -1
  687. package/es/base-ui/Checkbox/CheckboxGroup.d.mts +2 -4
  688. package/es/base-ui/Checkbox/CheckboxGroup.mjs.map +1 -1
  689. package/es/base-ui/Checkbox/index.d.mts +4 -3
  690. package/es/base-ui/Checkbox/style.mjs.map +1 -1
  691. package/es/base-ui/Checkbox/type.d.mts +2 -1
  692. package/es/base-ui/ContextMenu/ContextMenuHost.d.mts +1 -3
  693. package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -1
  694. package/es/base-ui/ContextMenu/ContextMenuTrigger.d.mts +0 -1
  695. package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  696. package/es/base-ui/ContextMenu/imperative.d.mts +2 -1
  697. package/es/base-ui/ContextMenu/index.d.mts +4 -1
  698. package/es/base-ui/ContextMenu/renderItems.d.mts +4 -1
  699. package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -1
  700. package/es/base-ui/ContextMenu/store.d.mts +3 -0
  701. package/es/base-ui/ContextMenu/store.mjs +9 -6
  702. package/es/base-ui/ContextMenu/store.mjs.map +1 -1
  703. package/es/base-ui/ContextMenu/type.d.mts +1 -0
  704. package/es/base-ui/DropdownMenu/DropdownMenu.d.mts +2 -4
  705. package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -1
  706. package/es/base-ui/DropdownMenu/atoms.d.mts +22 -104
  707. package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -1
  708. package/es/base-ui/DropdownMenu/index.d.mts +2 -1
  709. package/es/base-ui/DropdownMenu/renderItems.d.mts +2 -2
  710. package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -1
  711. package/es/base-ui/DropdownMenu/sharedStyle.mjs.map +1 -1
  712. package/es/base-ui/DropdownMenu/type.d.mts +3 -1
  713. package/es/base-ui/FloatingPanel/FloatingPanel.d.mts +1 -3
  714. package/es/base-ui/FloatingPanel/FloatingPanel.mjs +2 -1
  715. package/es/base-ui/FloatingPanel/FloatingPanel.mjs.map +1 -1
  716. package/es/base-ui/FloatingPanel/index.d.mts +2 -1
  717. package/es/base-ui/FloatingPanel/style.mjs.map +1 -1
  718. package/es/base-ui/FloatingPanel/type.d.mts +2 -2
  719. package/es/base-ui/FloatingSheet/FloatingSheet.d.mts +1 -22
  720. package/es/base-ui/FloatingSheet/FloatingSheet.mjs +6 -3
  721. package/es/base-ui/FloatingSheet/FloatingSheet.mjs.map +1 -1
  722. package/es/base-ui/FloatingSheet/FloatingSheetHeader.mjs.map +1 -1
  723. package/es/base-ui/FloatingSheet/helpers.mjs.map +1 -1
  724. package/es/base-ui/FloatingSheet/index.d.mts +2 -1
  725. package/es/base-ui/FloatingSheet/style.mjs.map +1 -1
  726. package/es/base-ui/FloatingSheet/type.d.mts +0 -1
  727. package/es/base-ui/FloatingSheet/useSheetDrag.mjs.map +1 -1
  728. package/es/base-ui/FloatingSheet/useSnapPoints.mjs.map +1 -1
  729. package/es/base-ui/Form/Form.mjs.map +1 -1
  730. package/es/base-ui/Form/components/FormDivider.d.mts +1 -2
  731. package/es/base-ui/Form/components/FormDivider.mjs.map +1 -1
  732. package/es/base-ui/Form/components/FormField.d.mts +2 -4
  733. package/es/base-ui/Form/components/FormField.mjs.map +1 -1
  734. package/es/base-ui/Form/components/FormFlatGroup.d.mts +2 -4
  735. package/es/base-ui/Form/components/FormFlatGroup.mjs.map +1 -1
  736. package/es/base-ui/Form/components/FormFooter.d.mts +1 -2
  737. package/es/base-ui/Form/components/FormFooter.mjs.map +1 -1
  738. package/es/base-ui/Form/components/FormGroup.d.mts +2 -4
  739. package/es/base-ui/Form/components/FormGroup.mjs.map +1 -1
  740. package/es/base-ui/Form/components/FormSubmitFooter.d.mts +2 -4
  741. package/es/base-ui/Form/components/FormSubmitFooter.mjs.map +1 -1
  742. package/es/base-ui/Form/components/FormTitle.d.mts +1 -2
  743. package/es/base-ui/Form/components/FormTitle.mjs.map +1 -1
  744. package/es/base-ui/Form/context.mjs.map +1 -1
  745. package/es/base-ui/Form/index.d.mts +17 -18
  746. package/es/base-ui/Form/index.mjs +2 -2
  747. package/es/base-ui/Form/index.mjs.map +1 -1
  748. package/es/base-ui/Form/style.mjs +1 -1
  749. package/es/base-ui/Form/style.mjs.map +1 -1
  750. package/es/base-ui/Form/type.d.mts +4 -1
  751. package/es/base-ui/Input/Input.d.mts +2 -4
  752. package/es/base-ui/Input/Input.mjs.map +1 -1
  753. package/es/base-ui/Input/InputNumber.d.mts +2 -4
  754. package/es/base-ui/Input/InputNumber.mjs.map +1 -1
  755. package/es/base-ui/Input/InputOTP.d.mts +2 -4
  756. package/es/base-ui/Input/InputOTP.mjs.map +1 -1
  757. package/es/base-ui/Input/InputPassword.d.mts +2 -4
  758. package/es/base-ui/Input/InputPassword.mjs.map +1 -1
  759. package/es/base-ui/Input/TextArea.d.mts +2 -4
  760. package/es/base-ui/Input/TextArea.mjs.map +1 -1
  761. package/es/base-ui/Input/index.d.mts +6 -5
  762. package/es/base-ui/Input/style.d.mts +3 -5
  763. package/es/base-ui/Input/style.mjs.map +1 -1
  764. package/es/base-ui/Input/type.d.mts +0 -1
  765. package/es/base-ui/Modal/Modal.d.mts +1 -2
  766. package/es/base-ui/Modal/Modal.mjs.map +1 -1
  767. package/es/base-ui/Modal/ModalLayerContext.mjs.map +1 -1
  768. package/es/base-ui/Modal/atoms.d.mts +11 -58
  769. package/es/base-ui/Modal/atoms.mjs.map +1 -1
  770. package/es/base-ui/Modal/constants.d.mts +0 -1
  771. package/es/base-ui/Modal/constants.mjs.map +1 -1
  772. package/es/base-ui/Modal/context.d.mts +1 -3
  773. package/es/base-ui/Modal/context.mjs.map +1 -1
  774. package/es/base-ui/Modal/imperative.d.mts +1 -3
  775. package/es/base-ui/Modal/imperative.mjs +2 -1
  776. package/es/base-ui/Modal/imperative.mjs.map +1 -1
  777. package/es/base-ui/Modal/index.d.mts +2 -1
  778. package/es/base-ui/Modal/style.mjs.map +1 -1
  779. package/es/base-ui/Modal/type.d.mts +1 -1
  780. package/es/base-ui/Popover/ArrowIcon.d.mts +1 -3
  781. package/es/base-ui/Popover/ArrowIcon.mjs.map +1 -1
  782. package/es/base-ui/Popover/Popover.d.mts +1 -2
  783. package/es/base-ui/Popover/Popover.mjs +2 -2
  784. package/es/base-ui/Popover/Popover.mjs.map +1 -1
  785. package/es/base-ui/Popover/PopoverGroup.d.mts +1 -2
  786. package/es/base-ui/Popover/PopoverGroup.mjs.map +1 -1
  787. package/es/base-ui/Popover/PopoverInGroup.mjs.map +1 -1
  788. package/es/base-ui/Popover/PopoverPortal.mjs.map +1 -1
  789. package/es/base-ui/Popover/PopoverStandalone.mjs +6 -3
  790. package/es/base-ui/Popover/PopoverStandalone.mjs.map +1 -1
  791. package/es/base-ui/Popover/atoms.d.mts +7 -41
  792. package/es/base-ui/Popover/atoms.mjs.map +1 -1
  793. package/es/base-ui/Popover/context.d.mts +1 -3
  794. package/es/base-ui/Popover/context.mjs +1 -1
  795. package/es/base-ui/Popover/context.mjs.map +1 -1
  796. package/es/base-ui/Popover/groupContext.d.mts +0 -1
  797. package/es/base-ui/Popover/groupContext.mjs.map +1 -1
  798. package/es/base-ui/Popover/hoverOnlyPress.mjs.map +1 -1
  799. package/es/base-ui/Popover/index.d.mts +4 -3
  800. package/es/base-ui/Popover/style.mjs.map +1 -1
  801. package/es/base-ui/Popover/type.d.mts +1 -1
  802. package/es/base-ui/Popover/useMergedPopoverProps.mjs.map +1 -1
  803. package/es/base-ui/ScrollArea/ScrollArea.d.mts +0 -1
  804. package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -1
  805. package/es/base-ui/ScrollArea/atoms.d.mts +6 -26
  806. package/es/base-ui/ScrollArea/atoms.mjs.map +1 -1
  807. package/es/base-ui/ScrollArea/globalStyle.mjs.map +1 -1
  808. package/es/base-ui/ScrollArea/index.d.mts +2 -1
  809. package/es/base-ui/ScrollArea/style.mjs.map +1 -1
  810. package/es/base-ui/ScrollArea/type.d.mts +0 -1
  811. package/es/base-ui/Segmented/Segmented.d.mts +2 -23
  812. package/es/base-ui/Segmented/Segmented.mjs.map +1 -1
  813. package/es/base-ui/Segmented/atoms.d.mts +2 -16
  814. package/es/base-ui/Segmented/atoms.mjs.map +1 -1
  815. package/es/base-ui/Segmented/index.d.mts +2 -1
  816. package/es/base-ui/Segmented/style.mjs.map +1 -1
  817. package/es/base-ui/Segmented/type.d.mts +0 -1
  818. package/es/base-ui/Select/Select.d.mts +2 -4
  819. package/es/base-ui/Select/Select.mjs.map +1 -1
  820. package/es/base-ui/Select/atoms.d.mts +17 -77
  821. package/es/base-ui/Select/atoms.mjs.map +1 -1
  822. package/es/base-ui/Select/helpers.mjs.map +1 -1
  823. package/es/base-ui/Select/hooks.mjs.map +1 -1
  824. package/es/base-ui/Select/index.d.mts +2 -1
  825. package/es/base-ui/Select/parts.mjs.map +1 -1
  826. package/es/base-ui/Select/renderOptions.mjs.map +1 -1
  827. package/es/base-ui/Select/style.mjs.map +1 -1
  828. package/es/base-ui/Select/type.d.mts +2 -2
  829. package/es/base-ui/Slider/Slider.d.mts +2 -4
  830. package/es/base-ui/Slider/Slider.mjs.map +1 -1
  831. package/es/base-ui/Slider/SliderWithInput.d.mts +2 -4
  832. package/es/base-ui/Slider/SliderWithInput.mjs.map +1 -1
  833. package/es/base-ui/Slider/index.d.mts +4 -3
  834. package/es/base-ui/Slider/style.mjs.map +1 -1
  835. package/es/base-ui/Slider/type.d.mts +2 -1
  836. package/es/base-ui/SubmenuArrowIcon.mjs.map +1 -1
  837. package/es/base-ui/Switch/Switch.d.mts +2 -4
  838. package/es/base-ui/Switch/Switch.mjs.map +1 -1
  839. package/es/base-ui/Switch/atoms.d.mts +4 -35
  840. package/es/base-ui/Switch/atoms.mjs +1 -1
  841. package/es/base-ui/Switch/atoms.mjs.map +1 -1
  842. package/es/base-ui/Switch/index.d.mts +2 -1
  843. package/es/base-ui/Switch/style.mjs.map +1 -1
  844. package/es/base-ui/Switch/type.d.mts +0 -1
  845. package/es/base-ui/Tabs/Tabs.d.mts +1 -2
  846. package/es/base-ui/Tabs/Tabs.mjs.map +1 -1
  847. package/es/base-ui/Tabs/atoms.d.mts +1 -2
  848. package/es/base-ui/Tabs/atoms.mjs +6 -5
  849. package/es/base-ui/Tabs/atoms.mjs.map +1 -1
  850. package/es/base-ui/Tabs/index.d.mts +2 -1
  851. package/es/base-ui/Tabs/style.mjs.map +1 -1
  852. package/es/base-ui/Tabs/type.d.mts +0 -1
  853. package/es/base-ui/Toast/Toast.mjs.map +1 -1
  854. package/es/base-ui/Toast/context.mjs.map +1 -1
  855. package/es/base-ui/Toast/imperative.d.mts +1 -10
  856. package/es/base-ui/Toast/imperative.mjs +16 -12
  857. package/es/base-ui/Toast/imperative.mjs.map +1 -1
  858. package/es/base-ui/Toast/index.d.mts +2 -1
  859. package/es/base-ui/Toast/style.mjs.map +1 -1
  860. package/es/base-ui/Toast/type.d.mts +1 -1
  861. package/es/base-ui/Tooltip/ArrowIcon.mjs.map +1 -1
  862. package/es/base-ui/Tooltip/Tooltip.d.mts +1 -2
  863. package/es/base-ui/Tooltip/Tooltip.mjs +1 -1
  864. package/es/base-ui/Tooltip/Tooltip.mjs.map +1 -1
  865. package/es/base-ui/Tooltip/TooltipContent.mjs.map +1 -1
  866. package/es/base-ui/Tooltip/TooltipGroup.d.mts +1 -2
  867. package/es/base-ui/Tooltip/TooltipGroup.mjs.map +1 -1
  868. package/es/base-ui/Tooltip/TooltipInGroup.mjs.map +1 -1
  869. package/es/base-ui/Tooltip/TooltipStandalone.mjs.map +1 -1
  870. package/es/base-ui/Tooltip/groupContext.mjs.map +1 -1
  871. package/es/base-ui/Tooltip/index.d.mts +2 -1
  872. package/es/base-ui/Tooltip/style.mjs.map +1 -1
  873. package/es/base-ui/Tooltip/type.d.mts +1 -1
  874. package/es/base-ui/Tooltip/useMergedTooltipProps.mjs.map +1 -1
  875. package/es/base-ui/controlSize.mjs.map +1 -1
  876. package/es/base-ui/index.d.mts +47 -28
  877. package/es/base-ui/index.mjs +4 -3
  878. package/es/base-ui/zIndex/constants.mjs.map +1 -1
  879. package/es/base-ui/zIndex/manager.mjs.map +1 -1
  880. package/es/base-ui/zIndex/useLayerZIndex.mjs.map +1 -1
  881. package/es/brand/BrandLoading/index.d.mts +1 -2
  882. package/es/brand/BrandLoading/index.mjs.map +1 -1
  883. package/es/brand/LobeChat/index.d.mts +2 -4
  884. package/es/brand/LobeChat/index.mjs +1 -1
  885. package/es/brand/LobeChat/index.mjs.map +1 -1
  886. package/es/brand/LobeChatText/index.d.mts +1 -2
  887. package/es/brand/LobeChatText/index.mjs.map +1 -1
  888. package/es/brand/LobeHub/index.d.mts +2 -4
  889. package/es/brand/LobeHub/index.mjs +1 -1
  890. package/es/brand/LobeHub/index.mjs.map +1 -1
  891. package/es/brand/LobeHub/style.mjs.map +1 -1
  892. package/es/brand/LobeHubText/index.d.mts +1 -2
  893. package/es/brand/LobeHubText/index.mjs.map +1 -1
  894. package/es/brand/Logo3d/index.d.mts +1 -2
  895. package/es/brand/Logo3d/index.mjs.map +1 -1
  896. package/es/brand/LogoFlat/index.d.mts +2 -4
  897. package/es/brand/LogoMono/index.d.mts +1 -1
  898. package/es/brand/LogoMono/index.mjs +1 -1
  899. package/es/brand/LogoThree/Loading.mjs.map +1 -1
  900. package/es/brand/LogoThree/LogoSpline.d.mts +3 -4
  901. package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
  902. package/es/brand/LogoThree/index.d.mts +3 -4
  903. package/es/brand/LogoThree/index.mjs.map +1 -1
  904. package/es/brand/components/Divider.mjs.map +1 -1
  905. package/es/brand/index.d.mts +10 -10
  906. package/es/brand/index.mjs +1 -1
  907. package/es/chat/BackBottom/BackBottom.d.mts +2 -4
  908. package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
  909. package/es/chat/BackBottom/index.d.mts +2 -1
  910. package/es/chat/BackBottom/style.mjs.map +1 -1
  911. package/es/chat/BackBottom/type.d.mts +0 -1
  912. package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
  913. package/es/chat/ChatHeader/ChatHeaderTitle.d.mts +1 -2
  914. package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  915. package/es/chat/ChatHeader/index.d.mts +2 -3
  916. package/es/chat/ChatHeader/index.mjs +1 -1
  917. package/es/chat/ChatHeader/style.mjs.map +1 -1
  918. package/es/chat/ChatHeader/type.d.mts +5 -1
  919. package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
  920. package/es/chat/ChatInputArea/components/ChatInputActionBar.d.mts +1 -2
  921. package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
  922. package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -4
  923. package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs.map +1 -1
  924. package/es/chat/ChatInputArea/components/ChatSendButton.d.mts +1 -2
  925. package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  926. package/es/chat/ChatInputArea/index.d.mts +4 -5
  927. package/es/chat/ChatInputArea/index.mjs +1 -1
  928. package/es/chat/ChatInputArea/style.mjs.map +1 -1
  929. package/es/chat/ChatInputArea/type.d.mts +3 -1
  930. package/es/chat/ChatItem/ChatItem.d.mts +2 -4
  931. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  932. package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
  933. package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
  934. package/es/chat/ChatItem/components/BorderSpacing.mjs.map +1 -1
  935. package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
  936. package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
  937. package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
  938. package/es/chat/ChatItem/components/Title.mjs.map +1 -1
  939. package/es/chat/ChatItem/index.d.mts +2 -1
  940. package/es/chat/ChatItem/style.mjs.map +1 -1
  941. package/es/chat/ChatItem/type.d.mts +8 -3
  942. package/es/chat/ChatList/ChatList.d.mts +2 -4
  943. package/es/chat/ChatList/ChatList.mjs.map +1 -1
  944. package/es/chat/ChatList/components/ChatActionsBar.d.mts +1 -2
  945. package/es/chat/ChatList/components/ChatActionsBar.mjs.map +1 -1
  946. package/es/chat/ChatList/components/ChatListItem.mjs.map +1 -1
  947. package/es/chat/ChatList/components/HistoryDivider.mjs.map +1 -1
  948. package/es/chat/ChatList/components/useChatListActionsBar.mjs.map +1 -1
  949. package/es/chat/ChatList/index.d.mts +3 -2
  950. package/es/chat/ChatList/style.mjs.map +1 -1
  951. package/es/chat/ChatList/type.d.mts +5 -2
  952. package/es/chat/EditableMessage/EditableMessage.d.mts +2 -4
  953. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  954. package/es/chat/EditableMessage/index.d.mts +2 -1
  955. package/es/chat/EditableMessage/type.d.mts +3 -1
  956. package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -4
  957. package/es/chat/EditableMessageList/EditableMessageList.mjs +2 -1
  958. package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
  959. package/es/chat/EditableMessageList/index.d.mts +2 -1
  960. package/es/chat/EditableMessageList/messageReducer.mjs.map +1 -1
  961. package/es/chat/EditableMessageList/type.d.mts +1 -0
  962. package/es/chat/LoadingDots/LoadingDots.d.mts +1 -2
  963. package/es/chat/LoadingDots/LoadingDots.mjs.map +1 -1
  964. package/es/chat/LoadingDots/index.d.mts +2 -1
  965. package/es/chat/LoadingDots/style.mjs.map +1 -1
  966. package/es/chat/LoadingDots/type.d.mts +0 -1
  967. package/es/chat/MessageInput/MessageInput.d.mts +2 -4
  968. package/es/chat/MessageInput/MessageInput.mjs +1 -1
  969. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  970. package/es/chat/MessageInput/index.d.mts +2 -1
  971. package/es/chat/MessageInput/style.mjs.map +1 -1
  972. package/es/chat/MessageInput/type.d.mts +3 -1
  973. package/es/chat/MessageModal/MessageModal.d.mts +2 -4
  974. package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
  975. package/es/chat/MessageModal/index.d.mts +2 -1
  976. package/es/chat/MessageModal/type.d.mts +2 -1
  977. package/es/chat/TokenTag/TokenTag.d.mts +1 -2
  978. package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
  979. package/es/chat/TokenTag/index.d.mts +2 -1
  980. package/es/chat/TokenTag/type.d.mts +1 -0
  981. package/es/chat/index.d.mts +26 -16
  982. package/es/chat/types/chatMessage.d.mts +0 -1
  983. package/es/chat/types/error.mjs.map +1 -1
  984. package/es/chat/types/index.d.mts +2 -1
  985. package/es/chat/types/llm.mjs.map +1 -1
  986. package/es/chat/types/meta.d.mts +0 -1
  987. package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
  988. package/es/color/ColorScales/index.d.mts +2 -4
  989. package/es/color/ColorScales/index.mjs.map +1 -1
  990. package/es/color/ColorScales/style.mjs.map +1 -1
  991. package/es/color/CssVar/ScaleRow.mjs.map +1 -1
  992. package/es/color/CssVar/VarRow.mjs.map +1 -1
  993. package/es/color/CssVar/index.d.mts +2 -4
  994. package/es/color/CssVar/index.mjs.map +1 -1
  995. package/es/color/CssVar/style.mjs.map +1 -1
  996. package/es/color/colors/blue.d.mts +1 -2
  997. package/es/color/colors/blue.mjs.map +1 -1
  998. package/es/color/colors/cyan.d.mts +1 -2
  999. package/es/color/colors/cyan.mjs.map +1 -1
  1000. package/es/color/colors/geekblue.d.mts +1 -2
  1001. package/es/color/colors/geekblue.mjs.map +1 -1
  1002. package/es/color/colors/gold.d.mts +1 -2
  1003. package/es/color/colors/gold.mjs.map +1 -1
  1004. package/es/color/colors/gray.d.mts +1 -2
  1005. package/es/color/colors/gray.mjs.map +1 -1
  1006. package/es/color/colors/green.d.mts +1 -2
  1007. package/es/color/colors/green.mjs.map +1 -1
  1008. package/es/color/colors/index.d.mts +15 -16
  1009. package/es/color/colors/index.mjs +1 -1
  1010. package/es/color/colors/index.mjs.map +1 -1
  1011. package/es/color/colors/lime.d.mts +1 -2
  1012. package/es/color/colors/lime.mjs.map +1 -1
  1013. package/es/color/colors/magenta.d.mts +1 -2
  1014. package/es/color/colors/magenta.mjs.map +1 -1
  1015. package/es/color/colors/orange.d.mts +1 -2
  1016. package/es/color/colors/orange.mjs.map +1 -1
  1017. package/es/color/colors/primary.d.mts +1 -2
  1018. package/es/color/colors/primary.mjs.map +1 -1
  1019. package/es/color/colors/purple.d.mts +1 -2
  1020. package/es/color/colors/purple.mjs.map +1 -1
  1021. package/es/color/colors/red.d.mts +1 -2
  1022. package/es/color/colors/red.mjs.map +1 -1
  1023. package/es/color/colors/volcano.d.mts +1 -2
  1024. package/es/color/colors/volcano.mjs.map +1 -1
  1025. package/es/color/colors/yellow.d.mts +1 -2
  1026. package/es/color/colors/yellow.mjs.map +1 -1
  1027. package/es/color/index.d.mts +21 -21
  1028. package/es/color/neutrals/index.d.mts +6 -7
  1029. package/es/color/neutrals/index.mjs +1 -1
  1030. package/es/color/neutrals/index.mjs.map +1 -1
  1031. package/es/color/neutrals/mauve.d.mts +1 -2
  1032. package/es/color/neutrals/mauve.mjs.map +1 -1
  1033. package/es/color/neutrals/olive.d.mts +1 -2
  1034. package/es/color/neutrals/olive.mjs.map +1 -1
  1035. package/es/color/neutrals/sage.d.mts +1 -2
  1036. package/es/color/neutrals/sage.mjs.map +1 -1
  1037. package/es/color/neutrals/sand.d.mts +1 -2
  1038. package/es/color/neutrals/sand.mjs.map +1 -1
  1039. package/es/color/neutrals/slate.d.mts +1 -2
  1040. package/es/color/neutrals/slate.mjs.map +1 -1
  1041. package/es/eslint/index.mjs.map +1 -1
  1042. package/es/hooks/useCopied.mjs.map +1 -1
  1043. package/es/hooks/useEventCallback.mjs.map +1 -1
  1044. package/es/hooks/useFloatingLayer.mjs +1 -1
  1045. package/es/hooks/useFloatingLayer.mjs.map +1 -1
  1046. package/es/hooks/useHighlight.mjs +5 -2
  1047. package/es/hooks/useHighlight.mjs.map +1 -1
  1048. package/es/hooks/useIsClient.mjs.map +1 -1
  1049. package/es/hooks/useMarkdown/latex.mjs +1 -1
  1050. package/es/hooks/useMarkdown/latex.mjs.map +1 -1
  1051. package/es/hooks/useMarkdown/useMarkdownComponents.mjs.map +1 -1
  1052. package/es/hooks/useMarkdown/useMarkdownContent.mjs.map +1 -1
  1053. package/es/hooks/useMarkdown/useMarkdownRehypePlugins.mjs.map +1 -1
  1054. package/es/hooks/useMarkdown/useMarkdownRemarkPlugins.mjs.map +1 -1
  1055. package/es/hooks/useMarkdown/utils.d.mts +1 -5
  1056. package/es/hooks/useMarkdown/utils.mjs +1 -1
  1057. package/es/hooks/useMarkdown/utils.mjs.map +1 -1
  1058. package/es/hooks/useMermaid.mjs +3 -1
  1059. package/es/hooks/useMermaid.mjs.map +1 -1
  1060. package/es/hooks/useNativeButton.mjs.map +1 -1
  1061. package/es/hooks/useStableValue.mjs.map +1 -1
  1062. package/es/hooks/useStreamHighlight.mjs +3 -2
  1063. package/es/hooks/useStreamHighlight.mjs.map +1 -1
  1064. package/es/hooks/useStreamMermaid.mjs.map +1 -1
  1065. package/es/hooks/useTextOverflow.mjs.map +1 -1
  1066. package/es/i18n/context.d.mts +2 -3
  1067. package/es/i18n/context.mjs +2 -2
  1068. package/es/i18n/context.mjs.map +1 -1
  1069. package/es/i18n/resources/en/chat.d.mts +1 -1
  1070. package/es/i18n/resources/en/chat.mjs.map +1 -1
  1071. package/es/i18n/resources/en/common.d.mts +1 -1
  1072. package/es/i18n/resources/en/common.mjs.map +1 -1
  1073. package/es/i18n/resources/en/editableMessage.d.mts +1 -1
  1074. package/es/i18n/resources/en/editableMessage.mjs.map +1 -1
  1075. package/es/i18n/resources/en/emojiPicker.d.mts +1 -1
  1076. package/es/i18n/resources/en/emojiPicker.mjs.map +1 -1
  1077. package/es/i18n/resources/en/form.d.mts +1 -1
  1078. package/es/i18n/resources/en/form.mjs.map +1 -1
  1079. package/es/i18n/resources/en/hotkey.d.mts +1 -1
  1080. package/es/i18n/resources/en/hotkey.mjs.map +1 -1
  1081. package/es/i18n/resources/en/image.d.mts +1 -1
  1082. package/es/i18n/resources/en/image.mjs.map +1 -1
  1083. package/es/i18n/resources/en/index.d.mts +10 -12
  1084. package/es/i18n/resources/en/index.mjs +1 -1
  1085. package/es/i18n/resources/en/messageModal.d.mts +1 -1
  1086. package/es/i18n/resources/en/messageModal.mjs.map +1 -1
  1087. package/es/i18n/resources/en/sideNav.d.mts +1 -1
  1088. package/es/i18n/resources/en/sideNav.mjs.map +1 -1
  1089. package/es/i18n/resources/zhCn/chat.d.mts +1 -1
  1090. package/es/i18n/resources/zhCn/chat.mjs.map +1 -1
  1091. package/es/i18n/resources/zhCn/common.d.mts +1 -1
  1092. package/es/i18n/resources/zhCn/common.mjs.map +1 -1
  1093. package/es/i18n/resources/zhCn/editableMessage.d.mts +1 -1
  1094. package/es/i18n/resources/zhCn/editableMessage.mjs.map +1 -1
  1095. package/es/i18n/resources/zhCn/emojiPicker.d.mts +1 -1
  1096. package/es/i18n/resources/zhCn/emojiPicker.mjs.map +1 -1
  1097. package/es/i18n/resources/zhCn/form.d.mts +1 -1
  1098. package/es/i18n/resources/zhCn/form.mjs.map +1 -1
  1099. package/es/i18n/resources/zhCn/hotkey.d.mts +1 -1
  1100. package/es/i18n/resources/zhCn/hotkey.mjs.map +1 -1
  1101. package/es/i18n/resources/zhCn/image.d.mts +1 -1
  1102. package/es/i18n/resources/zhCn/image.mjs.map +1 -1
  1103. package/es/i18n/resources/zhCn/index.d.mts +10 -12
  1104. package/es/i18n/resources/zhCn/index.mjs +1 -1
  1105. package/es/i18n/resources/zhCn/messageModal.d.mts +1 -1
  1106. package/es/i18n/resources/zhCn/messageModal.mjs.map +1 -1
  1107. package/es/i18n/resources/zhCn/sideNav.d.mts +1 -1
  1108. package/es/i18n/resources/zhCn/sideNav.mjs.map +1 -1
  1109. package/es/i18n/types.d.mts +9 -10
  1110. package/es/i18n/useTranslation.d.mts +0 -1
  1111. package/es/i18n/useTranslation.mjs.map +1 -1
  1112. package/es/icons/Auth0/components/Avatar.d.mts +1 -2
  1113. package/es/icons/Auth0/components/Avatar.mjs.map +1 -1
  1114. package/es/icons/Auth0/components/Mono.d.mts +1 -2
  1115. package/es/icons/Auth0/components/Mono.mjs.map +1 -1
  1116. package/es/icons/Auth0/index.d.mts +3 -4
  1117. package/es/icons/Authelia/components/Avatar.d.mts +1 -2
  1118. package/es/icons/Authelia/components/Avatar.mjs.map +1 -1
  1119. package/es/icons/Authelia/components/Color.d.mts +1 -2
  1120. package/es/icons/Authelia/components/Color.mjs.map +1 -1
  1121. package/es/icons/Authelia/components/Mono.d.mts +1 -2
  1122. package/es/icons/Authelia/components/Mono.mjs.map +1 -1
  1123. package/es/icons/Authelia/index.d.mts +4 -5
  1124. package/es/icons/Authentik/components/Avatar.d.mts +1 -2
  1125. package/es/icons/Authentik/components/Avatar.mjs.map +1 -1
  1126. package/es/icons/Authentik/components/Color.d.mts +1 -2
  1127. package/es/icons/Authentik/components/Color.mjs.map +1 -1
  1128. package/es/icons/Authentik/components/Mono.d.mts +1 -2
  1129. package/es/icons/Authentik/components/Mono.mjs.map +1 -1
  1130. package/es/icons/Authentik/index.d.mts +4 -5
  1131. package/es/icons/Casdoor/components/Avatar.d.mts +1 -2
  1132. package/es/icons/Casdoor/components/Avatar.mjs.map +1 -1
  1133. package/es/icons/Casdoor/components/Color.d.mts +1 -2
  1134. package/es/icons/Casdoor/components/Color.mjs.map +1 -1
  1135. package/es/icons/Casdoor/components/Mono.d.mts +1 -2
  1136. package/es/icons/Casdoor/components/Mono.mjs.map +1 -1
  1137. package/es/icons/Casdoor/index.d.mts +4 -5
  1138. package/es/icons/Clerk/components/Avatar.d.mts +1 -2
  1139. package/es/icons/Clerk/components/Avatar.mjs.map +1 -1
  1140. package/es/icons/Clerk/components/Color.d.mts +1 -2
  1141. package/es/icons/Clerk/components/Color.mjs.map +1 -1
  1142. package/es/icons/Clerk/components/Mono.d.mts +1 -2
  1143. package/es/icons/Clerk/components/Mono.mjs.map +1 -1
  1144. package/es/icons/Clerk/index.d.mts +4 -5
  1145. package/es/icons/DingTalk/components/Avatar.d.mts +1 -2
  1146. package/es/icons/DingTalk/components/Avatar.mjs.map +1 -1
  1147. package/es/icons/DingTalk/components/Color.d.mts +1 -2
  1148. package/es/icons/DingTalk/components/Color.mjs.map +1 -1
  1149. package/es/icons/DingTalk/components/Mono.d.mts +1 -2
  1150. package/es/icons/DingTalk/components/Mono.mjs.map +1 -1
  1151. package/es/icons/DingTalk/index.d.mts +4 -5
  1152. package/es/icons/Discord/components/Avatar.d.mts +1 -2
  1153. package/es/icons/Discord/components/Avatar.mjs.map +1 -1
  1154. package/es/icons/Discord/components/Color.d.mts +1 -2
  1155. package/es/icons/Discord/components/Color.mjs.map +1 -1
  1156. package/es/icons/Discord/components/Mono.d.mts +1 -2
  1157. package/es/icons/Discord/components/Mono.mjs.map +1 -1
  1158. package/es/icons/Discord/index.d.mts +4 -5
  1159. package/es/icons/GoogleChat/components/Avatar.d.mts +1 -2
  1160. package/es/icons/GoogleChat/components/Avatar.mjs.map +1 -1
  1161. package/es/icons/GoogleChat/components/Color.d.mts +1 -2
  1162. package/es/icons/GoogleChat/components/Color.mjs.map +1 -1
  1163. package/es/icons/GoogleChat/components/Mono.d.mts +1 -2
  1164. package/es/icons/GoogleChat/components/Mono.mjs.map +1 -1
  1165. package/es/icons/GoogleChat/index.d.mts +4 -5
  1166. package/es/icons/IMessage/components/Avatar.d.mts +1 -2
  1167. package/es/icons/IMessage/components/Avatar.mjs.map +1 -1
  1168. package/es/icons/IMessage/components/Color.d.mts +1 -2
  1169. package/es/icons/IMessage/components/Color.mjs.map +1 -1
  1170. package/es/icons/IMessage/components/Inner.mjs.map +1 -1
  1171. package/es/icons/IMessage/components/Mono.d.mts +1 -2
  1172. package/es/icons/IMessage/components/Mono.mjs.map +1 -1
  1173. package/es/icons/IMessage/index.d.mts +4 -5
  1174. package/es/icons/Lark/components/Avatar.d.mts +1 -2
  1175. package/es/icons/Lark/components/Avatar.mjs.map +1 -1
  1176. package/es/icons/Lark/components/Color.d.mts +1 -2
  1177. package/es/icons/Lark/components/Color.mjs.map +1 -1
  1178. package/es/icons/Lark/components/Mono.d.mts +1 -2
  1179. package/es/icons/Lark/components/Mono.mjs.map +1 -1
  1180. package/es/icons/Lark/index.d.mts +4 -5
  1181. package/es/icons/Line/components/Avatar.d.mts +1 -2
  1182. package/es/icons/Line/components/Avatar.mjs.map +1 -1
  1183. package/es/icons/Line/components/Color.d.mts +1 -2
  1184. package/es/icons/Line/components/Color.mjs.map +1 -1
  1185. package/es/icons/Line/components/Mono.d.mts +1 -2
  1186. package/es/icons/Line/components/Mono.mjs.map +1 -1
  1187. package/es/icons/Line/index.d.mts +4 -5
  1188. package/es/icons/Logto/components/Avatar.d.mts +1 -2
  1189. package/es/icons/Logto/components/Avatar.mjs.map +1 -1
  1190. package/es/icons/Logto/components/Color.d.mts +1 -2
  1191. package/es/icons/Logto/components/Color.mjs.map +1 -1
  1192. package/es/icons/Logto/components/Mono.d.mts +1 -2
  1193. package/es/icons/Logto/components/Mono.mjs.map +1 -1
  1194. package/es/icons/Logto/index.d.mts +4 -5
  1195. package/es/icons/MicrosoftEntra/components/Avatar.d.mts +1 -2
  1196. package/es/icons/MicrosoftEntra/components/Avatar.mjs.map +1 -1
  1197. package/es/icons/MicrosoftEntra/components/Color.d.mts +1 -2
  1198. package/es/icons/MicrosoftEntra/components/Color.mjs.map +1 -1
  1199. package/es/icons/MicrosoftEntra/components/Mono.d.mts +1 -2
  1200. package/es/icons/MicrosoftEntra/components/Mono.mjs.map +1 -1
  1201. package/es/icons/MicrosoftEntra/index.d.mts +4 -5
  1202. package/es/icons/MicrosoftTeams/components/Avatar.d.mts +1 -2
  1203. package/es/icons/MicrosoftTeams/components/Avatar.mjs.map +1 -1
  1204. package/es/icons/MicrosoftTeams/components/Color.d.mts +1 -2
  1205. package/es/icons/MicrosoftTeams/components/Color.mjs.map +1 -1
  1206. package/es/icons/MicrosoftTeams/components/Mono.d.mts +1 -2
  1207. package/es/icons/MicrosoftTeams/components/Mono.mjs.map +1 -1
  1208. package/es/icons/MicrosoftTeams/index.d.mts +4 -5
  1209. package/es/icons/NextAuth/components/Avatar.d.mts +1 -2
  1210. package/es/icons/NextAuth/components/Avatar.mjs.map +1 -1
  1211. package/es/icons/NextAuth/components/Color.d.mts +1 -2
  1212. package/es/icons/NextAuth/components/Color.mjs.map +1 -1
  1213. package/es/icons/NextAuth/components/Mono.d.mts +1 -2
  1214. package/es/icons/NextAuth/components/Mono.mjs.map +1 -1
  1215. package/es/icons/NextAuth/index.d.mts +4 -5
  1216. package/es/icons/QQ/components/Avatar.d.mts +1 -2
  1217. package/es/icons/QQ/components/Avatar.mjs.map +1 -1
  1218. package/es/icons/QQ/components/Color.d.mts +1 -2
  1219. package/es/icons/QQ/components/Color.mjs.map +1 -1
  1220. package/es/icons/QQ/components/Mono.d.mts +1 -2
  1221. package/es/icons/QQ/components/Mono.mjs.map +1 -1
  1222. package/es/icons/QQ/index.d.mts +4 -5
  1223. package/es/icons/Slack/components/Avatar.d.mts +1 -2
  1224. package/es/icons/Slack/components/Avatar.mjs.map +1 -1
  1225. package/es/icons/Slack/components/Color.d.mts +1 -2
  1226. package/es/icons/Slack/components/Color.mjs.map +1 -1
  1227. package/es/icons/Slack/components/Mono.d.mts +1 -2
  1228. package/es/icons/Slack/components/Mono.mjs.map +1 -1
  1229. package/es/icons/Slack/index.d.mts +4 -5
  1230. package/es/icons/Telegram/components/Avatar.d.mts +1 -2
  1231. package/es/icons/Telegram/components/Avatar.mjs.map +1 -1
  1232. package/es/icons/Telegram/components/Color.d.mts +1 -2
  1233. package/es/icons/Telegram/components/Color.mjs.map +1 -1
  1234. package/es/icons/Telegram/components/Inner.mjs.map +1 -1
  1235. package/es/icons/Telegram/components/Mono.d.mts +1 -2
  1236. package/es/icons/Telegram/components/Mono.mjs.map +1 -1
  1237. package/es/icons/Telegram/index.d.mts +4 -5
  1238. package/es/icons/WeChat/components/Avatar.d.mts +1 -2
  1239. package/es/icons/WeChat/components/Avatar.mjs.map +1 -1
  1240. package/es/icons/WeChat/components/Color.d.mts +1 -2
  1241. package/es/icons/WeChat/components/Color.mjs.map +1 -1
  1242. package/es/icons/WeChat/components/Mono.d.mts +1 -2
  1243. package/es/icons/WeChat/components/Mono.mjs.map +1 -1
  1244. package/es/icons/WeChat/index.d.mts +4 -5
  1245. package/es/icons/WhatsApp/components/Avatar.d.mts +1 -2
  1246. package/es/icons/WhatsApp/components/Avatar.mjs.map +1 -1
  1247. package/es/icons/WhatsApp/components/Color.d.mts +1 -2
  1248. package/es/icons/WhatsApp/components/Color.mjs.map +1 -1
  1249. package/es/icons/WhatsApp/components/Mono.d.mts +1 -2
  1250. package/es/icons/WhatsApp/components/Mono.mjs.map +1 -1
  1251. package/es/icons/WhatsApp/index.d.mts +4 -5
  1252. package/es/icons/Zitadel/components/Avatar.d.mts +1 -2
  1253. package/es/icons/Zitadel/components/Avatar.mjs.map +1 -1
  1254. package/es/icons/Zitadel/components/Color.d.mts +1 -2
  1255. package/es/icons/Zitadel/components/Color.mjs.map +1 -1
  1256. package/es/icons/Zitadel/components/Mono.d.mts +1 -2
  1257. package/es/icons/Zitadel/components/Mono.mjs.map +1 -1
  1258. package/es/icons/Zitadel/index.d.mts +4 -5
  1259. package/es/icons/index.d.mts +58 -58
  1260. package/es/icons/lucideExtra/AndroidIcon.d.mts +2 -5
  1261. package/es/icons/lucideExtra/AndroidIcon.mjs.map +1 -1
  1262. package/es/icons/lucideExtra/AppleIcon.d.mts +2 -5
  1263. package/es/icons/lucideExtra/AppleIcon.mjs.map +1 -1
  1264. package/es/icons/lucideExtra/AppstoreIcon.d.mts +2 -5
  1265. package/es/icons/lucideExtra/AppstoreIcon.mjs.map +1 -1
  1266. package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -5
  1267. package/es/icons/lucideExtra/BotPromptIcon.mjs.map +1 -1
  1268. package/es/icons/lucideExtra/BrainOffIcon.d.mts +2 -5
  1269. package/es/icons/lucideExtra/BrainOffIcon.mjs.map +1 -1
  1270. package/es/icons/lucideExtra/ChromeIcon.d.mts +2 -5
  1271. package/es/icons/lucideExtra/ChromeIcon.mjs.map +1 -1
  1272. package/es/icons/lucideExtra/CodepenIcon.d.mts +2 -5
  1273. package/es/icons/lucideExtra/CodepenIcon.mjs.map +1 -1
  1274. package/es/icons/lucideExtra/CodesandboxIcon.d.mts +2 -5
  1275. package/es/icons/lucideExtra/CodesandboxIcon.mjs.map +1 -1
  1276. package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -5
  1277. package/es/icons/lucideExtra/CreateBotIcon.mjs.map +1 -1
  1278. package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -5
  1279. package/es/icons/lucideExtra/DiscordIcon.mjs.map +1 -1
  1280. package/es/icons/lucideExtra/FacebookIcon.d.mts +2 -5
  1281. package/es/icons/lucideExtra/FacebookIcon.mjs.map +1 -1
  1282. package/es/icons/lucideExtra/FigmaIcon.d.mts +2 -5
  1283. package/es/icons/lucideExtra/FigmaIcon.mjs.map +1 -1
  1284. package/es/icons/lucideExtra/FramerIcon.d.mts +2 -5
  1285. package/es/icons/lucideExtra/FramerIcon.mjs.map +1 -1
  1286. package/es/icons/lucideExtra/GithubIcon.d.mts +2 -5
  1287. package/es/icons/lucideExtra/GithubIcon.mjs.map +1 -1
  1288. package/es/icons/lucideExtra/GitlabIcon.d.mts +2 -5
  1289. package/es/icons/lucideExtra/GitlabIcon.mjs.map +1 -1
  1290. package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -5
  1291. package/es/icons/lucideExtra/GlobeOffIcon.mjs.map +1 -1
  1292. package/es/icons/lucideExtra/GooglePlayIcon.d.mts +2 -5
  1293. package/es/icons/lucideExtra/GooglePlayIcon.mjs.map +1 -1
  1294. package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -5
  1295. package/es/icons/lucideExtra/GroupBotIcon.mjs.map +1 -1
  1296. package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +2 -5
  1297. package/es/icons/lucideExtra/GroupBotSquareIcon.mjs.map +1 -1
  1298. package/es/icons/lucideExtra/InstagramIcon.d.mts +2 -5
  1299. package/es/icons/lucideExtra/InstagramIcon.mjs.map +1 -1
  1300. package/es/icons/lucideExtra/LeftClickIcon.d.mts +2 -5
  1301. package/es/icons/lucideExtra/LeftClickIcon.mjs.map +1 -1
  1302. package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +2 -5
  1303. package/es/icons/lucideExtra/LeftDoubleClickIcon.mjs.map +1 -1
  1304. package/es/icons/lucideExtra/LinkedinIcon.d.mts +2 -5
  1305. package/es/icons/lucideExtra/LinkedinIcon.mjs.map +1 -1
  1306. package/es/icons/lucideExtra/McpIcon.d.mts +2 -5
  1307. package/es/icons/lucideExtra/McpIcon.mjs.map +1 -1
  1308. package/es/icons/lucideExtra/NotionIcon.d.mts +2 -5
  1309. package/es/icons/lucideExtra/NotionIcon.mjs.map +1 -1
  1310. package/es/icons/lucideExtra/PocketIcon.d.mts +2 -5
  1311. package/es/icons/lucideExtra/PocketIcon.mjs.map +1 -1
  1312. package/es/icons/lucideExtra/ProviderIcon.d.mts +2 -5
  1313. package/es/icons/lucideExtra/ProviderIcon.mjs.map +1 -1
  1314. package/es/icons/lucideExtra/RailSymbolIcon.d.mts +2 -5
  1315. package/es/icons/lucideExtra/RailSymbolIcon.mjs.map +1 -1
  1316. package/es/icons/lucideExtra/RedditIcon.d.mts +2 -5
  1317. package/es/icons/lucideExtra/RedditIcon.mjs.map +1 -1
  1318. package/es/icons/lucideExtra/RightClickIcon.d.mts +2 -5
  1319. package/es/icons/lucideExtra/RightClickIcon.mjs.map +1 -1
  1320. package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +2 -5
  1321. package/es/icons/lucideExtra/RightDoubleClickIcon.mjs.map +1 -1
  1322. package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +2 -5
  1323. package/es/icons/lucideExtra/ShapesUploadIcon.mjs.map +1 -1
  1324. package/es/icons/lucideExtra/SkillsIcon.d.mts +2 -5
  1325. package/es/icons/lucideExtra/SkillsIcon.mjs.map +1 -1
  1326. package/es/icons/lucideExtra/SlackIcon.d.mts +2 -5
  1327. package/es/icons/lucideExtra/SlackIcon.mjs.map +1 -1
  1328. package/es/icons/lucideExtra/ThinkIcon.d.mts +2 -5
  1329. package/es/icons/lucideExtra/ThinkIcon.mjs.map +1 -1
  1330. package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +2 -5
  1331. package/es/icons/lucideExtra/TreeDownRightIcon.mjs.map +1 -1
  1332. package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +2 -5
  1333. package/es/icons/lucideExtra/TreeUpDownRightIcon.mjs.map +1 -1
  1334. package/es/index.d.mts +165 -97
  1335. package/es/index.mjs +11 -11
  1336. package/es/mdx/Callout/index.d.mts +2 -2
  1337. package/es/mdx/Callout/index.mjs.map +1 -1
  1338. package/es/mdx/Callout/style.mjs.map +1 -1
  1339. package/es/mdx/Cards/Card.d.mts +4 -2
  1340. package/es/mdx/Cards/Card.mjs.map +1 -1
  1341. package/es/mdx/Cards/index.d.mts +2 -2
  1342. package/es/mdx/Cards/index.mjs.map +1 -1
  1343. package/es/mdx/Cards/style.mjs.map +1 -1
  1344. package/es/mdx/FileTree/File.d.mts +3 -2
  1345. package/es/mdx/FileTree/File.mjs.map +1 -1
  1346. package/es/mdx/FileTree/Folder.d.mts +3 -2
  1347. package/es/mdx/FileTree/Folder.mjs.map +1 -1
  1348. package/es/mdx/FileTree/index.d.mts +1 -2
  1349. package/es/mdx/FileTree/index.mjs.map +1 -1
  1350. package/es/mdx/FileTree/style.mjs.map +1 -1
  1351. package/es/mdx/Mdx/index.d.mts +3 -4
  1352. package/es/mdx/Mdx/index.mjs.map +1 -1
  1353. package/es/mdx/Steps/index.d.mts +1 -2
  1354. package/es/mdx/Steps/index.mjs.map +1 -1
  1355. package/es/mdx/Steps/style.mjs.map +1 -1
  1356. package/es/mdx/Tabs/Tab.d.mts +1 -2
  1357. package/es/mdx/Tabs/Tab.mjs.map +1 -1
  1358. package/es/mdx/Tabs/index.d.mts +3 -2
  1359. package/es/mdx/Tabs/index.mjs.map +1 -1
  1360. package/es/mdx/Tabs/style.mjs.map +1 -1
  1361. package/es/mdx/index.d.mts +15 -15
  1362. package/es/mdx/index.mjs +1 -1
  1363. package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
  1364. package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
  1365. package/es/mdx/mdxComponents/Citation/style.mjs.map +1 -1
  1366. package/es/mdx/mdxComponents/CodeBlock.d.mts +2 -2
  1367. package/es/mdx/mdxComponents/CodeBlock.mjs +1 -1
  1368. package/es/mdx/mdxComponents/CodeBlock.mjs.map +1 -1
  1369. package/es/mdx/mdxComponents/Image.d.mts +2 -2
  1370. package/es/mdx/mdxComponents/Image.mjs.map +1 -1
  1371. package/es/mdx/mdxComponents/Link.d.mts +1 -2
  1372. package/es/mdx/mdxComponents/Link.mjs.map +1 -1
  1373. package/es/mdx/mdxComponents/Pre.d.mts +5 -2
  1374. package/es/mdx/mdxComponents/Pre.mjs +2 -2
  1375. package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
  1376. package/es/mdx/mdxComponents/Section.mjs.map +1 -1
  1377. package/es/mdx/mdxComponents/Video.d.mts +1 -2
  1378. package/es/mdx/mdxComponents/Video.mjs.map +1 -1
  1379. package/es/mdx/mdxComponents/index.d.mts +2 -3
  1380. package/es/mdx/mdxComponents/index.mjs.map +1 -1
  1381. package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
  1382. package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -4
  1383. package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
  1384. package/es/mobile/ChatHeader/index.d.mts +2 -3
  1385. package/es/mobile/ChatHeader/index.mjs +1 -1
  1386. package/es/mobile/ChatHeader/style.mjs.map +1 -1
  1387. package/es/mobile/ChatHeader/type.d.mts +1 -1
  1388. package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
  1389. package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -4
  1390. package/es/mobile/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
  1391. package/es/mobile/ChatInputArea/index.d.mts +2 -3
  1392. package/es/mobile/ChatInputArea/index.mjs +1 -1
  1393. package/es/mobile/ChatInputArea/style.mjs.map +1 -1
  1394. package/es/mobile/ChatInputArea/type.d.mts +2 -1
  1395. package/es/mobile/SafeArea/SafeArea.d.mts +1 -2
  1396. package/es/mobile/SafeArea/SafeArea.mjs.map +1 -1
  1397. package/es/mobile/SafeArea/index.d.mts +2 -1
  1398. package/es/mobile/SafeArea/style.mjs.map +1 -1
  1399. package/es/mobile/SafeArea/type.d.mts +0 -1
  1400. package/es/mobile/TabBar/TabBar.d.mts +2 -4
  1401. package/es/mobile/TabBar/TabBar.mjs.map +1 -1
  1402. package/es/mobile/TabBar/index.d.mts +2 -1
  1403. package/es/mobile/TabBar/style.mjs.map +1 -1
  1404. package/es/mobile/TabBar/type.d.mts +1 -1
  1405. package/es/mobile/index.d.mts +8 -6
  1406. package/es/node_modules/{@types → .bun/@types_hast@3.0.5/node_modules/@types}/hast/index.d.mts +3 -4
  1407. package/es/node_modules/{@types → .bun/@types_mdx@2.0.14/node_modules/@types}/mdx/types.d.mts +19 -12
  1408. package/es/node_modules/{@types → .bun/@types_unist@3.0.3/node_modules/@types}/unist/index.d.mts +2 -2
  1409. package/es/node_modules/{unist-util-is → .bun/unist-util-is@6.0.1/node_modules/unist-util-is}/lib/index.mjs +7 -2
  1410. package/es/node_modules/.bun/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.mjs.map +1 -0
  1411. package/es/node_modules/.bun/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.mjs +12 -0
  1412. package/es/node_modules/.bun/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.mjs.map +1 -0
  1413. package/es/node_modules/{unist-util-visit → .bun/unist-util-visit-parents@6.0.2}/node_modules/unist-util-visit-parents/lib/index.mjs +2 -2
  1414. package/es/node_modules/.bun/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.mjs.map +1 -0
  1415. package/es/node_modules/{unist-util-visit → .bun/unist-util-visit@5.1.0/node_modules/unist-util-visit}/lib/index.mjs +3 -3
  1416. package/es/node_modules/.bun/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.mjs.map +1 -0
  1417. package/es/storybook/StoryBook/index.d.mts +3 -4
  1418. package/es/storybook/StoryBook/index.mjs +1 -1
  1419. package/es/storybook/StoryBook/index.mjs.map +1 -1
  1420. package/es/storybook/StoryBook/style.mjs.map +1 -1
  1421. package/es/storybook/index.mjs +1 -1
  1422. package/es/styles/classNames.mjs.map +1 -1
  1423. package/es/styles/customTheme.mjs.map +1 -1
  1424. package/es/styles/theme/algorithms/darkAlgorithm.mjs.map +1 -1
  1425. package/es/styles/theme/algorithms/lightAlgorithm.mjs.map +1 -1
  1426. package/es/styles/theme/antdTheme.mjs.map +1 -1
  1427. package/es/styles/theme/customStylish.d.mts +0 -1
  1428. package/es/styles/theme/customStylish.mjs.map +1 -1
  1429. package/es/styles/theme/customStylishStatic.d.mts +0 -1
  1430. package/es/styles/theme/customStylishStatic.mjs.map +1 -1
  1431. package/es/styles/theme/customToken.d.mts +0 -1
  1432. package/es/styles/theme/customToken.mjs.map +1 -1
  1433. package/es/styles/theme/generateColorPalette.d.mts +2 -10
  1434. package/es/styles/theme/generateColorPalette.mjs.map +1 -1
  1435. package/es/styles/theme/token/base.mjs.map +1 -1
  1436. package/es/styles/theme/token/dark.mjs.map +1 -1
  1437. package/es/styles/theme/token/light.mjs.map +1 -1
  1438. package/es/types/customToken.d.mts +4 -4
  1439. package/es/types/index.d.mts +0 -1
  1440. package/es/utils/blobToPng.mjs +1 -1
  1441. package/es/utils/blobToPng.mjs.map +1 -1
  1442. package/es/utils/copyToClipboard.mjs.map +1 -1
  1443. package/es/utils/destroyOnInvalidActiveTriggerElement.mjs.map +1 -1
  1444. package/es/utils/devSingleton.mjs.map +1 -1
  1445. package/es/utils/dom.mjs.map +1 -1
  1446. package/es/utils/downloadBlob.mjs.map +1 -1
  1447. package/es/utils/formatTime.mjs.map +1 -1
  1448. package/es/utils/genCdnUrl.d.mts +1 -6
  1449. package/es/utils/genCdnUrl.mjs +1 -1
  1450. package/es/utils/genCdnUrl.mjs.map +1 -1
  1451. package/es/utils/getNow.mjs.map +1 -1
  1452. package/es/utils/isDeepEqual.mjs.map +1 -1
  1453. package/es/utils/parseTrigger.d.mts +1 -0
  1454. package/es/utils/parseTrigger.mjs.map +1 -1
  1455. package/es/utils/placement.d.mts +1 -2
  1456. package/es/utils/placement.mjs.map +1 -1
  1457. package/es/utils/safeParseJSON.mjs.map +1 -1
  1458. package/es/utils/safeReadableColor.mjs.map +1 -1
  1459. package/es/utils/smoothCorners.d.mts +0 -1
  1460. package/es/utils/smoothCorners.mjs +1 -1
  1461. package/es/utils/smoothCorners.mjs.map +1 -1
  1462. package/package.json +70 -55
  1463. package/es/icons/lucideExtra/index.d.mts +0 -37
  1464. package/es/node_modules/unist-util-is/lib/index.mjs.map +0 -1
  1465. package/es/node_modules/unist-util-visit/lib/index.mjs.map +0 -1
  1466. package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/color.node.mjs +0 -12
  1467. package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/color.node.mjs.map +0 -1
  1468. package/es/node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useSmoothStreamContent.mjs","names":["now"],"sources":["../../../src/Markdown/SyntaxMarkdown/useSmoothStreamContent.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useStreamdownProfiler } from '@/Markdown/streamProfiler';\nimport { type StreamSmoothingPreset } from '@/Markdown/type';\nimport { getNow } from '@/utils/getNow';\n\nimport { findOpenFenceLanguage } from './fenceState';\n\ninterface StreamSmoothingPresetConfig {\n activeInputWindowMs: number;\n /**\n * Code-fence languages whose contents bypass smoothing entirely. While\n * the input ends inside an open fence in this set, every chunk is\n * `syncImmediate`-d to the display so downstream consumers (the\n * HtmlPreview iframe in particular) see partial HTML at the demo's\n * actual production rate instead of waiting on the smoother's\n * ~maxFlushCps budget. As soon as the fence closes — or another\n * non-bypass fence opens — smoothing resumes for the rest of the\n * stream. Default `['html']` covers the artifact case that motivated\n * this; tune via preset if you need to bypass `mermaid`, `svg`, etc.\n */\n bypassFencedLanguages: readonly string[];\n defaultCps: number;\n emaAlpha: number;\n flushCps: number;\n largeAppendChars: number;\n maxActiveCps: number;\n maxCps: number;\n maxFlushCps: number;\n minCommitIntervalMs: number;\n minCps: number;\n settleAfterMs: number;\n settleDrainMaxMs: number;\n settleDrainMinMs: number;\n targetBufferMs: number;\n}\n\nconst DEFAULT_BYPASS_LANGUAGES = ['html'] as const;\n\nconst PRESET_CONFIG: Record<StreamSmoothingPreset, StreamSmoothingPresetConfig> = {\n balanced: {\n activeInputWindowMs: 220,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 38,\n emaAlpha: 0.2,\n flushCps: 120,\n largeAppendChars: 120,\n maxActiveCps: 132,\n maxCps: 72,\n maxFlushCps: 280,\n minCommitIntervalMs: 48,\n minCps: 18,\n settleAfterMs: 360,\n settleDrainMaxMs: 520,\n settleDrainMinMs: 180,\n targetBufferMs: 120,\n },\n realtime: {\n activeInputWindowMs: 140,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 50,\n emaAlpha: 0.3,\n flushCps: 170,\n largeAppendChars: 180,\n maxActiveCps: 180,\n maxCps: 96,\n maxFlushCps: 360,\n minCommitIntervalMs: 32,\n minCps: 24,\n settleAfterMs: 260,\n settleDrainMaxMs: 360,\n settleDrainMinMs: 140,\n targetBufferMs: 40,\n },\n silky: {\n activeInputWindowMs: 320,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 28,\n emaAlpha: 0.14,\n flushCps: 96,\n largeAppendChars: 100,\n maxActiveCps: 102,\n maxCps: 56,\n maxFlushCps: 220,\n minCommitIntervalMs: 56,\n minCps: 14,\n settleAfterMs: 460,\n settleDrainMaxMs: 680,\n settleDrainMinMs: 240,\n targetBufferMs: 170,\n },\n};\n\nconst clamp = (value: number, min: number, max: number): number => {\n return Math.min(max, Math.max(min, value));\n};\n\n// Every reveal commit re-parses and re-wraps the entire trailing block, so\n// the per-commit cost grows linearly with how far the content is from the\n// last block boundary. Widen the commit interval as that distance grows —\n// long paragraphs/code fences keep total work bounded while short blocks\n// stay at the preset's snappy interval. Per-char animation-delay stagger\n// hides the lower commit rate.\nconst MAX_COMMIT_INTERVAL_MS = 96;\nconst COMMIT_INTERVAL_TAIL_SCALE_UNITS = 256;\n\nconst findTailUnits = (content: string): number => {\n const boundary = content.lastIndexOf('\\n\\n');\n return boundary === -1 ? content.length : content.length - boundary - 2;\n};\n\nexport const countChars = (text: string): number => {\n let count = 0;\n for (const _char of text) count += 1;\n return count;\n};\n\ninterface UseSmoothStreamContentOptions {\n enabled?: boolean;\n preset?: StreamSmoothingPreset;\n}\n\nexport const useSmoothStreamContent = (\n content: string,\n { enabled = true, preset = 'balanced' }: UseSmoothStreamContentOptions = {},\n): string => {\n const config = PRESET_CONFIG[preset];\n const profiler = useStreamdownProfiler();\n const [displayedContent, setDisplayedContent] = useState(content);\n\n const displayedContentRef = useRef(content);\n const displayedCountRef = useRef(countChars(content));\n\n const targetContentRef = useRef(content);\n const targetCharsRef = useRef([...content]);\n const targetCountRef = useRef(targetCharsRef.current.length);\n\n const emaCpsRef = useRef(config.defaultCps);\n const tailUnitsRef = useRef(findTailUnits(content));\n const lastInputTsRef = useRef(0);\n const lastInputCountRef = useRef(targetCountRef.current);\n const chunkSizeEmaRef = useRef(1);\n const arrivalCpsEmaRef = useRef(config.defaultCps);\n\n const rafRef = useRef<number | null>(null);\n const lastFrameTsRef = useRef<number | null>(null);\n const wakeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clearWakeTimer = useCallback(() => {\n if (wakeTimerRef.current !== null) {\n clearTimeout(wakeTimerRef.current);\n wakeTimerRef.current = null;\n }\n }, []);\n\n const stopFrameLoop = useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n lastFrameTsRef.current = null;\n }, []);\n\n const stopScheduling = useCallback(() => {\n stopFrameLoop();\n clearWakeTimer();\n }, [clearWakeTimer, stopFrameLoop]);\n\n const startFrameLoopRef = useRef<() => void>(() => {});\n\n const scheduleFrameWake = useCallback(\n (delayMs: number) => {\n clearWakeTimer();\n\n wakeTimerRef.current = setTimeout(\n () => {\n wakeTimerRef.current = null;\n startFrameLoopRef.current();\n },\n Math.max(1, Math.ceil(delayMs)),\n );\n },\n [clearWakeTimer],\n );\n\n const syncImmediate = useCallback(\n (nextContent: string) => {\n stopScheduling();\n\n const chars = [...nextContent];\n const now = getNow();\n\n targetContentRef.current = nextContent;\n targetCharsRef.current = chars;\n targetCountRef.current = chars.length;\n\n displayedContentRef.current = nextContent;\n displayedCountRef.current = chars.length;\n setDisplayedContent(nextContent);\n\n emaCpsRef.current = config.defaultCps;\n chunkSizeEmaRef.current = 1;\n arrivalCpsEmaRef.current = config.defaultCps;\n tailUnitsRef.current = findTailUnits(nextContent);\n lastInputTsRef.current = now;\n lastInputCountRef.current = chars.length;\n },\n [config.defaultCps, stopScheduling],\n );\n\n const startFrameLoop = useCallback(() => {\n clearWakeTimer();\n if (rafRef.current !== null) return;\n\n const tick = (ts: number) => {\n const targetCount = targetCountRef.current;\n const displayedCount = displayedCountRef.current;\n const backlog = targetCount - displayedCount;\n\n if (backlog <= 0) {\n stopFrameLoop();\n return;\n }\n\n if (lastFrameTsRef.current === null) {\n lastFrameTsRef.current = ts;\n rafRef.current = requestAnimationFrame(tick);\n return;\n }\n\n // Reveal commits are throttled below the display refresh rate: each\n // commit re-renders the tail block and re-runs remend + lexing, so\n // committing at 60-120fps burns CPU without visible benefit — the\n // per-char stagger inside a commit is carried by animation-delay.\n const commitIntervalMs = Math.min(\n MAX_COMMIT_INTERVAL_MS,\n config.minCommitIntervalMs * (1 + tailUnitsRef.current / COMMIT_INTERVAL_TAIL_SCALE_UNITS),\n );\n const frameIntervalMs = Math.max(0, ts - lastFrameTsRef.current);\n if (frameIntervalMs < commitIntervalMs) {\n rafRef.current = requestAnimationFrame(tick);\n return;\n }\n\n const frameStart = getNow();\n const dtSeconds = Math.max(0.001, Math.min(frameIntervalMs / 1000, 0.12));\n lastFrameTsRef.current = ts;\n\n const now = frameStart;\n const idleMs = now - lastInputTsRef.current;\n const inputActive = idleMs <= config.activeInputWindowMs;\n const settling = !inputActive && idleMs >= config.settleAfterMs;\n\n const baseCps = clamp(emaCpsRef.current, config.minCps, config.maxCps);\n const baseLagChars = Math.max(1, Math.round((baseCps * config.targetBufferMs) / 1000));\n const lagUpperBound = Math.max(baseLagChars + 2, baseLagChars * 3);\n const targetLagChars = inputActive\n ? Math.round(\n clamp(baseLagChars + chunkSizeEmaRef.current * 0.35, baseLagChars, lagUpperBound),\n )\n : 0;\n const desiredDisplayed = Math.max(0, targetCount - targetLagChars);\n\n let currentCps: number;\n if (inputActive) {\n const backlogPressure = targetLagChars > 0 ? backlog / targetLagChars : 1;\n const chunkPressure = targetLagChars > 0 ? chunkSizeEmaRef.current / targetLagChars : 1;\n const arrivalPressure = arrivalCpsEmaRef.current / Math.max(baseCps, 1);\n const combinedPressure = clamp(\n backlogPressure * 0.6 + chunkPressure * 0.25 + arrivalPressure * 0.15,\n 1,\n 4.5,\n );\n const activeCap = clamp(\n config.maxActiveCps + chunkSizeEmaRef.current * 6,\n config.maxActiveCps,\n config.maxFlushCps,\n );\n currentCps = clamp(baseCps * combinedPressure, config.minCps, activeCap);\n } else if (settling) {\n // If upstream likely ended, cap the remaining tail duration so\n // we do not keep replaying old backlog for seconds.\n const drainTargetMs = clamp(backlog * 8, config.settleDrainMinMs, config.settleDrainMaxMs);\n const settleCps = (backlog * 1000) / drainTargetMs;\n currentCps = clamp(settleCps, config.flushCps, config.maxFlushCps);\n } else {\n const idleFlushCps = Math.max(\n config.flushCps,\n baseCps * 1.8,\n arrivalCpsEmaRef.current * 0.8,\n );\n currentCps = clamp(idleFlushCps, config.flushCps, config.maxFlushCps);\n }\n\n const urgentBacklog = inputActive && targetLagChars > 0 && backlog > targetLagChars * 2.2;\n const burstyInput = inputActive && chunkSizeEmaRef.current >= targetLagChars * 0.9;\n const minRevealChars = inputActive ? (urgentBacklog || burstyInput ? 2 : 1) : 2;\n let revealChars = Math.max(minRevealChars, Math.round(currentCps * dtSeconds));\n\n if (inputActive) {\n const shortfall = desiredDisplayed - displayedCount;\n if (shortfall <= 0) {\n stopFrameLoop();\n scheduleFrameWake(config.activeInputWindowMs - idleMs);\n\n profiler?.recordAnimationFrame({\n backlog,\n durationMs: getNow() - frameStart,\n frameIntervalMs,\n inputActive,\n revealChars: 0,\n settling,\n });\n return;\n }\n revealChars = Math.min(revealChars, shortfall, backlog);\n } else {\n revealChars = Math.min(revealChars, backlog);\n }\n\n const nextCount = displayedCount + revealChars;\n const segment = targetCharsRef.current.slice(displayedCount, nextCount).join('');\n\n if (segment) {\n const nextDisplayed = displayedContentRef.current + segment;\n displayedContentRef.current = nextDisplayed;\n displayedCountRef.current = nextCount;\n setDisplayedContent(nextDisplayed);\n } else {\n displayedContentRef.current = targetContentRef.current;\n displayedCountRef.current = targetCount;\n setDisplayedContent(targetContentRef.current);\n }\n\n profiler?.recordAnimationFrame({\n backlog,\n durationMs: getNow() - frameStart,\n frameIntervalMs,\n inputActive,\n revealChars: segment ? revealChars : backlog,\n settling,\n });\n\n rafRef.current = requestAnimationFrame(tick);\n };\n\n rafRef.current = requestAnimationFrame(tick);\n }, [\n clearWakeTimer,\n config.activeInputWindowMs,\n config.flushCps,\n config.maxActiveCps,\n config.maxCps,\n config.maxFlushCps,\n config.minCommitIntervalMs,\n config.minCps,\n config.settleAfterMs,\n config.settleDrainMaxMs,\n config.settleDrainMinMs,\n config.targetBufferMs,\n scheduleFrameWake,\n stopFrameLoop,\n ]);\n startFrameLoopRef.current = startFrameLoop;\n\n useEffect(() => {\n if (!enabled) {\n syncImmediate(content);\n return;\n }\n\n const prevTargetContent = targetContentRef.current;\n if (content === prevTargetContent) return;\n\n const now = getNow();\n const appendOnly = content.startsWith(prevTargetContent);\n\n if (!appendOnly) {\n syncImmediate(content);\n return;\n }\n\n // Bypass smoothing entirely while the input ends inside an open\n // fence whose language is opted out — see the preset config.\n // Without this, a 5 KB inline `<style>` block can keep `</style>`\n // (and therefore the HtmlPreview head-close trigger) trapped in the\n // smoother's buffer for tens of seconds, leaving the iframe pinned\n // on the loading placeholder while the artifact \"looks stuck\".\n if (config.bypassFencedLanguages.length > 0) {\n const openLang = findOpenFenceLanguage(content);\n if (openLang !== null && config.bypassFencedLanguages.includes(openLang)) {\n syncImmediate(content);\n return;\n }\n }\n\n const appended = content.slice(prevTargetContent.length);\n const appendedChars = [...appended];\n const appendedCount = appendedChars.length;\n\n profiler?.recordInputAppend({\n appendedChars: appendedCount,\n contentLength: countChars(content),\n });\n\n if (appendedCount > config.largeAppendChars) {\n syncImmediate(content);\n return;\n }\n\n targetContentRef.current = content;\n targetCharsRef.current.push(...appendedChars);\n targetCountRef.current += appendedCount;\n\n tailUnitsRef.current = findTailUnits(content);\n\n const deltaChars = targetCountRef.current - lastInputCountRef.current;\n const deltaMs = Math.max(1, now - lastInputTsRef.current);\n\n if (deltaChars > 0) {\n const instantCps = (deltaChars * 1000) / deltaMs;\n const normalizedInstantCps = clamp(instantCps, config.minCps, config.maxFlushCps * 2);\n const chunkEmaAlpha = 0.35;\n chunkSizeEmaRef.current =\n chunkSizeEmaRef.current * (1 - chunkEmaAlpha) + appendedCount * chunkEmaAlpha;\n arrivalCpsEmaRef.current =\n arrivalCpsEmaRef.current * (1 - chunkEmaAlpha) + normalizedInstantCps * chunkEmaAlpha;\n\n const clampedCps = clamp(instantCps, config.minCps, config.maxActiveCps);\n emaCpsRef.current = emaCpsRef.current * (1 - config.emaAlpha) + clampedCps * config.emaAlpha;\n }\n\n lastInputTsRef.current = now;\n lastInputCountRef.current = targetCountRef.current;\n\n startFrameLoop();\n }, [\n config.bypassFencedLanguages,\n config.emaAlpha,\n config.largeAppendChars,\n config.maxActiveCps,\n config.maxCps,\n config.maxFlushCps,\n config.minCps,\n content,\n enabled,\n startFrameLoop,\n syncImmediate,\n profiler,\n ]);\n\n useEffect(() => {\n return () => {\n stopScheduling();\n };\n }, [stopScheduling]);\n\n return displayedContent;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSmoothStreamContent.mjs","names":["now"],"sources":["../../../src/Markdown/SyntaxMarkdown/useSmoothStreamContent.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useStreamdownProfiler } from '@/Markdown/streamProfiler';\nimport { type StreamSmoothingPreset } from '@/Markdown/type';\nimport { getNow } from '@/utils/getNow';\n\nimport { findOpenFenceLanguage } from './fenceState';\n\ninterface StreamSmoothingPresetConfig {\n activeInputWindowMs: number;\n /**\n * Code-fence languages whose contents bypass smoothing entirely. While\n * the input ends inside an open fence in this set, every chunk is\n * `syncImmediate`-d to the display so downstream consumers (the\n * HtmlPreview iframe in particular) see partial HTML at the demo's\n * actual production rate instead of waiting on the smoother's\n * ~maxFlushCps budget. As soon as the fence closes — or another\n * non-bypass fence opens — smoothing resumes for the rest of the\n * stream. Default `['html']` covers the artifact case that motivated\n * this; tune via preset if you need to bypass `mermaid`, `svg`, etc.\n */\n bypassFencedLanguages: readonly string[];\n defaultCps: number;\n emaAlpha: number;\n flushCps: number;\n largeAppendChars: number;\n maxActiveCps: number;\n maxCps: number;\n maxFlushCps: number;\n minCommitIntervalMs: number;\n minCps: number;\n settleAfterMs: number;\n settleDrainMaxMs: number;\n settleDrainMinMs: number;\n targetBufferMs: number;\n}\n\nconst DEFAULT_BYPASS_LANGUAGES = ['html'] as const;\n\nconst PRESET_CONFIG: Record<StreamSmoothingPreset, StreamSmoothingPresetConfig> = {\n balanced: {\n activeInputWindowMs: 220,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 38,\n emaAlpha: 0.2,\n flushCps: 120,\n largeAppendChars: 120,\n maxActiveCps: 132,\n maxCps: 72,\n maxFlushCps: 280,\n minCommitIntervalMs: 48,\n minCps: 18,\n settleAfterMs: 360,\n settleDrainMaxMs: 520,\n settleDrainMinMs: 180,\n targetBufferMs: 120,\n },\n realtime: {\n activeInputWindowMs: 140,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 50,\n emaAlpha: 0.3,\n flushCps: 170,\n largeAppendChars: 180,\n maxActiveCps: 180,\n maxCps: 96,\n maxFlushCps: 360,\n minCommitIntervalMs: 32,\n minCps: 24,\n settleAfterMs: 260,\n settleDrainMaxMs: 360,\n settleDrainMinMs: 140,\n targetBufferMs: 40,\n },\n silky: {\n activeInputWindowMs: 320,\n bypassFencedLanguages: DEFAULT_BYPASS_LANGUAGES,\n defaultCps: 28,\n emaAlpha: 0.14,\n flushCps: 96,\n largeAppendChars: 100,\n maxActiveCps: 102,\n maxCps: 56,\n maxFlushCps: 220,\n minCommitIntervalMs: 56,\n minCps: 14,\n settleAfterMs: 460,\n settleDrainMaxMs: 680,\n settleDrainMinMs: 240,\n targetBufferMs: 170,\n },\n};\n\nconst clamp = (value: number, min: number, max: number): number => {\n return Math.min(max, Math.max(min, value));\n};\n\n// Every reveal commit re-parses and re-wraps the entire trailing block, so\n// the per-commit cost grows linearly with how far the content is from the\n// last block boundary. Widen the commit interval as that distance grows —\n// long paragraphs/code fences keep total work bounded while short blocks\n// stay at the preset's snappy interval. Per-char animation-delay stagger\n// hides the lower commit rate.\nconst MAX_COMMIT_INTERVAL_MS = 96;\nconst COMMIT_INTERVAL_TAIL_SCALE_UNITS = 256;\n\nconst findTailUnits = (content: string): number => {\n const boundary = content.lastIndexOf('\\n\\n');\n return boundary === -1 ? content.length : content.length - boundary - 2;\n};\n\nexport const countChars = (text: string): number => {\n let count = 0;\n for (const _char of text) count += 1;\n return count;\n};\n\ninterface UseSmoothStreamContentOptions {\n enabled?: boolean;\n preset?: StreamSmoothingPreset;\n}\n\nexport const useSmoothStreamContent = (\n content: string,\n { enabled = true, preset = 'balanced' }: UseSmoothStreamContentOptions = {},\n): string => {\n const config = PRESET_CONFIG[preset];\n const profiler = useStreamdownProfiler();\n const [displayedContent, setDisplayedContent] = useState(content);\n\n const displayedContentRef = useRef(content);\n const displayedCountRef = useRef(countChars(content));\n\n const targetContentRef = useRef(content);\n const targetCharsRef = useRef([...content]);\n const targetCountRef = useRef(targetCharsRef.current.length);\n\n const emaCpsRef = useRef(config.defaultCps);\n const tailUnitsRef = useRef(findTailUnits(content));\n const lastInputTsRef = useRef(0);\n const lastInputCountRef = useRef(targetCountRef.current);\n const chunkSizeEmaRef = useRef(1);\n const arrivalCpsEmaRef = useRef(config.defaultCps);\n\n const rafRef = useRef<number | null>(null);\n const lastFrameTsRef = useRef<number | null>(null);\n const wakeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clearWakeTimer = useCallback(() => {\n if (wakeTimerRef.current !== null) {\n clearTimeout(wakeTimerRef.current);\n wakeTimerRef.current = null;\n }\n }, []);\n\n const stopFrameLoop = useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n lastFrameTsRef.current = null;\n }, []);\n\n const stopScheduling = useCallback(() => {\n stopFrameLoop();\n clearWakeTimer();\n }, [clearWakeTimer, stopFrameLoop]);\n\n const startFrameLoopRef = useRef<() => void>(() => {});\n\n const scheduleFrameWake = useCallback(\n (delayMs: number) => {\n clearWakeTimer();\n\n wakeTimerRef.current = setTimeout(\n () => {\n wakeTimerRef.current = null;\n startFrameLoopRef.current();\n },\n Math.max(1, Math.ceil(delayMs)),\n );\n },\n [clearWakeTimer],\n );\n\n const syncImmediate = useCallback(\n (nextContent: string) => {\n stopScheduling();\n\n const chars = [...nextContent];\n const now = getNow();\n\n targetContentRef.current = nextContent;\n targetCharsRef.current = chars;\n targetCountRef.current = chars.length;\n\n displayedContentRef.current = nextContent;\n displayedCountRef.current = chars.length;\n setDisplayedContent(nextContent);\n\n emaCpsRef.current = config.defaultCps;\n chunkSizeEmaRef.current = 1;\n arrivalCpsEmaRef.current = config.defaultCps;\n tailUnitsRef.current = findTailUnits(nextContent);\n lastInputTsRef.current = now;\n lastInputCountRef.current = chars.length;\n },\n [config.defaultCps, stopScheduling],\n );\n\n const startFrameLoop = useCallback(() => {\n clearWakeTimer();\n if (rafRef.current !== null) return;\n\n const tick = (ts: number) => {\n const targetCount = targetCountRef.current;\n const displayedCount = displayedCountRef.current;\n const backlog = targetCount - displayedCount;\n\n if (backlog <= 0) {\n stopFrameLoop();\n return;\n }\n\n if (lastFrameTsRef.current === null) {\n lastFrameTsRef.current = ts;\n rafRef.current = requestAnimationFrame(tick);\n return;\n }\n\n // Reveal commits are throttled below the display refresh rate: each\n // commit re-renders the tail block and re-runs remend + lexing, so\n // committing at 60-120fps burns CPU without visible benefit — the\n // per-char stagger inside a commit is carried by animation-delay.\n const commitIntervalMs = Math.min(\n MAX_COMMIT_INTERVAL_MS,\n config.minCommitIntervalMs * (1 + tailUnitsRef.current / COMMIT_INTERVAL_TAIL_SCALE_UNITS),\n );\n const frameIntervalMs = Math.max(0, ts - lastFrameTsRef.current);\n if (frameIntervalMs < commitIntervalMs) {\n rafRef.current = requestAnimationFrame(tick);\n return;\n }\n\n const frameStart = getNow();\n const dtSeconds = Math.max(0.001, Math.min(frameIntervalMs / 1000, 0.12));\n lastFrameTsRef.current = ts;\n\n const now = frameStart;\n const idleMs = now - lastInputTsRef.current;\n const inputActive = idleMs <= config.activeInputWindowMs;\n const settling = !inputActive && idleMs >= config.settleAfterMs;\n\n const baseCps = clamp(emaCpsRef.current, config.minCps, config.maxCps);\n const baseLagChars = Math.max(1, Math.round((baseCps * config.targetBufferMs) / 1000));\n const lagUpperBound = Math.max(baseLagChars + 2, baseLagChars * 3);\n const targetLagChars = inputActive\n ? Math.round(\n clamp(baseLagChars + chunkSizeEmaRef.current * 0.35, baseLagChars, lagUpperBound),\n )\n : 0;\n const desiredDisplayed = Math.max(0, targetCount - targetLagChars);\n\n let currentCps: number;\n if (inputActive) {\n const backlogPressure = targetLagChars > 0 ? backlog / targetLagChars : 1;\n const chunkPressure = targetLagChars > 0 ? chunkSizeEmaRef.current / targetLagChars : 1;\n const arrivalPressure = arrivalCpsEmaRef.current / Math.max(baseCps, 1);\n const combinedPressure = clamp(\n backlogPressure * 0.6 + chunkPressure * 0.25 + arrivalPressure * 0.15,\n 1,\n 4.5,\n );\n const activeCap = clamp(\n config.maxActiveCps + chunkSizeEmaRef.current * 6,\n config.maxActiveCps,\n config.maxFlushCps,\n );\n currentCps = clamp(baseCps * combinedPressure, config.minCps, activeCap);\n } else if (settling) {\n // If upstream likely ended, cap the remaining tail duration so\n // we do not keep replaying old backlog for seconds.\n const drainTargetMs = clamp(backlog * 8, config.settleDrainMinMs, config.settleDrainMaxMs);\n const settleCps = (backlog * 1000) / drainTargetMs;\n currentCps = clamp(settleCps, config.flushCps, config.maxFlushCps);\n } else {\n const idleFlushCps = Math.max(\n config.flushCps,\n baseCps * 1.8,\n arrivalCpsEmaRef.current * 0.8,\n );\n currentCps = clamp(idleFlushCps, config.flushCps, config.maxFlushCps);\n }\n\n const urgentBacklog = inputActive && targetLagChars > 0 && backlog > targetLagChars * 2.2;\n const burstyInput = inputActive && chunkSizeEmaRef.current >= targetLagChars * 0.9;\n const minRevealChars = inputActive ? (urgentBacklog || burstyInput ? 2 : 1) : 2;\n let revealChars = Math.max(minRevealChars, Math.round(currentCps * dtSeconds));\n\n if (inputActive) {\n const shortfall = desiredDisplayed - displayedCount;\n if (shortfall <= 0) {\n stopFrameLoop();\n scheduleFrameWake(config.activeInputWindowMs - idleMs);\n\n profiler?.recordAnimationFrame({\n backlog,\n durationMs: getNow() - frameStart,\n frameIntervalMs,\n inputActive,\n revealChars: 0,\n settling,\n });\n return;\n }\n revealChars = Math.min(revealChars, shortfall, backlog);\n } else {\n revealChars = Math.min(revealChars, backlog);\n }\n\n const nextCount = displayedCount + revealChars;\n const segment = targetCharsRef.current.slice(displayedCount, nextCount).join('');\n\n if (segment) {\n const nextDisplayed = displayedContentRef.current + segment;\n displayedContentRef.current = nextDisplayed;\n displayedCountRef.current = nextCount;\n setDisplayedContent(nextDisplayed);\n } else {\n displayedContentRef.current = targetContentRef.current;\n displayedCountRef.current = targetCount;\n setDisplayedContent(targetContentRef.current);\n }\n\n profiler?.recordAnimationFrame({\n backlog,\n durationMs: getNow() - frameStart,\n frameIntervalMs,\n inputActive,\n revealChars: segment ? revealChars : backlog,\n settling,\n });\n\n rafRef.current = requestAnimationFrame(tick);\n };\n\n rafRef.current = requestAnimationFrame(tick);\n }, [\n clearWakeTimer,\n config.activeInputWindowMs,\n config.flushCps,\n config.maxActiveCps,\n config.maxCps,\n config.maxFlushCps,\n config.minCommitIntervalMs,\n config.minCps,\n config.settleAfterMs,\n config.settleDrainMaxMs,\n config.settleDrainMinMs,\n config.targetBufferMs,\n scheduleFrameWake,\n stopFrameLoop,\n ]);\n startFrameLoopRef.current = startFrameLoop;\n\n useEffect(() => {\n if (!enabled) {\n syncImmediate(content);\n return;\n }\n\n const prevTargetContent = targetContentRef.current;\n if (content === prevTargetContent) return;\n\n const now = getNow();\n const appendOnly = content.startsWith(prevTargetContent);\n\n if (!appendOnly) {\n syncImmediate(content);\n return;\n }\n\n // Bypass smoothing entirely while the input ends inside an open\n // fence whose language is opted out — see the preset config.\n // Without this, a 5 KB inline `<style>` block can keep `</style>`\n // (and therefore the HtmlPreview head-close trigger) trapped in the\n // smoother's buffer for tens of seconds, leaving the iframe pinned\n // on the loading placeholder while the artifact \"looks stuck\".\n if (config.bypassFencedLanguages.length > 0) {\n const openLang = findOpenFenceLanguage(content);\n if (openLang !== null && config.bypassFencedLanguages.includes(openLang)) {\n syncImmediate(content);\n return;\n }\n }\n\n const appended = content.slice(prevTargetContent.length);\n const appendedChars = [...appended];\n const appendedCount = appendedChars.length;\n\n profiler?.recordInputAppend({\n appendedChars: appendedCount,\n contentLength: countChars(content),\n });\n\n if (appendedCount > config.largeAppendChars) {\n syncImmediate(content);\n return;\n }\n\n targetContentRef.current = content;\n targetCharsRef.current.push(...appendedChars);\n targetCountRef.current += appendedCount;\n\n tailUnitsRef.current = findTailUnits(content);\n\n const deltaChars = targetCountRef.current - lastInputCountRef.current;\n const deltaMs = Math.max(1, now - lastInputTsRef.current);\n\n if (deltaChars > 0) {\n const instantCps = (deltaChars * 1000) / deltaMs;\n const normalizedInstantCps = clamp(instantCps, config.minCps, config.maxFlushCps * 2);\n const chunkEmaAlpha = 0.35;\n chunkSizeEmaRef.current =\n chunkSizeEmaRef.current * (1 - chunkEmaAlpha) + appendedCount * chunkEmaAlpha;\n arrivalCpsEmaRef.current =\n arrivalCpsEmaRef.current * (1 - chunkEmaAlpha) + normalizedInstantCps * chunkEmaAlpha;\n\n const clampedCps = clamp(instantCps, config.minCps, config.maxActiveCps);\n emaCpsRef.current = emaCpsRef.current * (1 - config.emaAlpha) + clampedCps * config.emaAlpha;\n }\n\n lastInputTsRef.current = now;\n lastInputCountRef.current = targetCountRef.current;\n\n startFrameLoop();\n }, [\n config.bypassFencedLanguages,\n config.emaAlpha,\n config.largeAppendChars,\n config.maxActiveCps,\n config.maxCps,\n config.maxFlushCps,\n config.minCps,\n content,\n enabled,\n startFrameLoop,\n syncImmediate,\n profiler,\n ]);\n\n useEffect(() => {\n return () => {\n stopScheduling();\n };\n }, [stopScheduling]);\n\n return displayedContent;\n};\n"],"mappings":"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"}
@@ -5,7 +5,8 @@ const BASE_DELAY = 18;
5
5
  const ACCELERATION_FACTOR = .3;
6
6
  const MAX_BLOCK_DURATION = 3e3;
7
7
  function computeCharDelay(queueLength, charCount) {
8
- let delay = BASE_DELAY / (1 + queueLength * ACCELERATION_FACTOR);
8
+ const acceleration = 1 + queueLength * ACCELERATION_FACTOR;
9
+ let delay = BASE_DELAY / acceleration;
9
10
  delay = Math.min(delay, MAX_BLOCK_DURATION / Math.max(charCount, 1));
10
11
  return delay;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useStreamQueue.mjs","names":[],"sources":["../../../src/Markdown/SyntaxMarkdown/useStreamQueue.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { STREAM_FADE_DURATION } from './style';\nimport { countChars } from './useSmoothStreamContent';\n\nexport interface BlockInfo {\n content: string;\n startOffset: number;\n}\n\nexport type BlockState = 'revealed' | 'animating' | 'streaming' | 'queued';\n\nconst BASE_DELAY = 18;\nconst ACCELERATION_FACTOR = 0.3;\nconst MAX_BLOCK_DURATION = 3000;\n\nfunction computeCharDelay(queueLength: number, charCount: number): number {\n const acceleration = 1 + queueLength * ACCELERATION_FACTOR;\n let delay = BASE_DELAY / acceleration;\n delay = Math.min(delay, MAX_BLOCK_DURATION / Math.max(charCount, 1));\n return delay;\n}\n\nexport interface UseStreamQueueReturn {\n charDelay: number;\n getBlockState: (index: number) => BlockState;\n queueLength: number;\n}\n\nexport function useStreamQueue(blocks: BlockInfo[]): UseStreamQueueReturn {\n const [revealedCount, setRevealedCount] = useState(0);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const prevBlocksLenRef = useRef(0);\n const minRevealedRef = useRef(0);\n\n // Synchronous auto-reveal during render.\n // When blocks grow, the previous tail (streaming block) is instantly\n // promoted to revealed — its chars are already visible via stream-mode\n // animation. This runs during render (not in effect) so there is NO\n // intermediate frame where the old streaming block enters 'animating'\n // state and gets stagger plugins that would restart its animations.\n if (blocks.length === 0 && prevBlocksLenRef.current !== 0) {\n minRevealedRef.current = 0;\n }\n if (blocks.length > prevBlocksLenRef.current && prevBlocksLenRef.current > 0) {\n const prevTail = prevBlocksLenRef.current - 1;\n minRevealedRef.current = Math.max(minRevealedRef.current, prevTail + 1);\n }\n prevBlocksLenRef.current = blocks.length;\n\n // State reset when stream restarts (blocks empty)\n useEffect(() => {\n if (blocks.length === 0) {\n setRevealedCount(0);\n minRevealedRef.current = 0;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }\n }, [blocks.length]);\n\n const effectiveRevealedCount = Math.max(revealedCount, minRevealedRef.current);\n const tailIndex = blocks.length - 1;\n\n const getBlockState = useCallback(\n (index: number): BlockState => {\n if (index < effectiveRevealedCount) return 'revealed';\n if (index === effectiveRevealedCount && index < tailIndex) return 'animating';\n if (index === effectiveRevealedCount && index === tailIndex) return 'streaming';\n return 'queued';\n },\n [effectiveRevealedCount, tailIndex],\n );\n\n const queueLength = Math.max(0, tailIndex - effectiveRevealedCount - 1);\n\n const animatingIndex = effectiveRevealedCount < tailIndex ? effectiveRevealedCount : -1;\n const animatingCharCount =\n animatingIndex >= 0 ? countChars(blocks[animatingIndex]?.content ?? '') : 0;\n\n const streamingIndex = animatingIndex < 0 && tailIndex >= effectiveRevealedCount ? tailIndex : -1;\n const activeIndex = animatingIndex >= 0 ? animatingIndex : streamingIndex;\n const activeCharCount = activeIndex >= 0 ? countChars(blocks[activeIndex]?.content ?? '') : 0;\n\n // Freeze charDelay when entering a new active block (animating or streaming)\n const frozenRef = useRef({ delay: BASE_DELAY, index: -1 });\n if (activeIndex >= 0 && activeIndex !== frozenRef.current.index) {\n frozenRef.current = {\n delay: computeCharDelay(queueLength, activeCharCount),\n index: activeIndex,\n };\n }\n const charDelay = activeIndex >= 0 ? frozenRef.current.delay : BASE_DELAY;\n\n const onAnimationDone = useCallback(() => {\n setRevealedCount(effectiveRevealedCount + 1);\n }, [effectiveRevealedCount]);\n\n useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (animatingIndex < 0) return;\n\n const totalTime = Math.max(0, (animatingCharCount - 1) * charDelay) + STREAM_FADE_DURATION;\n timerRef.current = setTimeout(onAnimationDone, totalTime);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [animatingIndex, animatingCharCount, charDelay, onAnimationDone]);\n\n return { charDelay, getBlockState, queueLength };\n}\n"],"mappings":";;;AAYA,MAAM,aAAa;AACnB,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAE3B,SAAS,iBAAiB,aAAqB,WAA2B;CAExE,IAAI,QAAQ,cADS,IAAI,cAAc;AAEvC,SAAQ,KAAK,IAAI,OAAO,qBAAqB,KAAK,IAAI,WAAW,EAAE,CAAC;AACpE,QAAO;;AAST,SAAgB,eAAe,QAA2C;CACxE,MAAM,CAAC,eAAe,oBAAoB,SAAS,EAAE;CACrD,MAAM,WAAW,OAA6C,KAAK;CACnE,MAAM,mBAAmB,OAAO,EAAE;CAClC,MAAM,iBAAiB,OAAO,EAAE;AAQhC,KAAI,OAAO,WAAW,KAAK,iBAAiB,YAAY,EACtD,gBAAe,UAAU;AAE3B,KAAI,OAAO,SAAS,iBAAiB,WAAW,iBAAiB,UAAU,GAAG;EAC5E,MAAM,WAAW,iBAAiB,UAAU;AAC5C,iBAAe,UAAU,KAAK,IAAI,eAAe,SAAS,WAAW,EAAE;;AAEzE,kBAAiB,UAAU,OAAO;AAGlC,iBAAgB;AACd,MAAI,OAAO,WAAW,GAAG;AACvB,oBAAiB,EAAE;AACnB,kBAAe,UAAU;AACzB,OAAI,SAAS,SAAS;AACpB,iBAAa,SAAS,QAAQ;AAC9B,aAAS,UAAU;;;IAGtB,CAAC,OAAO,OAAO,CAAC;CAEnB,MAAM,yBAAyB,KAAK,IAAI,eAAe,eAAe,QAAQ;CAC9E,MAAM,YAAY,OAAO,SAAS;CAElC,MAAM,gBAAgB,aACnB,UAA8B;AAC7B,MAAI,QAAQ,uBAAwB,QAAO;AAC3C,MAAI,UAAU,0BAA0B,QAAQ,UAAW,QAAO;AAClE,MAAI,UAAU,0BAA0B,UAAU,UAAW,QAAO;AACpE,SAAO;IAET,CAAC,wBAAwB,UAAU,CACpC;CAED,MAAM,cAAc,KAAK,IAAI,GAAG,YAAY,yBAAyB,EAAE;CAEvE,MAAM,iBAAiB,yBAAyB,YAAY,yBAAyB;CACrF,MAAM,qBACJ,kBAAkB,IAAI,WAAW,OAAO,iBAAiB,WAAW,GAAG,GAAG;CAG5E,MAAM,cAAc,kBAAkB,IAAI,iBADnB,iBAAiB,KAAK,aAAa,yBAAyB,YAAY;CAE/F,MAAM,kBAAkB,eAAe,IAAI,WAAW,OAAO,cAAc,WAAW,GAAG,GAAG;CAG5F,MAAM,YAAY,OAAO;EAAE,OAAO;EAAY,OAAO;EAAI,CAAC;AAC1D,KAAI,eAAe,KAAK,gBAAgB,UAAU,QAAQ,MACxD,WAAU,UAAU;EAClB,OAAO,iBAAiB,aAAa,gBAAgB;EACrD,OAAO;EACR;CAEH,MAAM,YAAY,eAAe,IAAI,UAAU,QAAQ,QAAQ;CAE/D,MAAM,kBAAkB,kBAAkB;AACxC,mBAAiB,yBAAyB,EAAE;IAC3C,CAAC,uBAAuB,CAAC;AAE5B,iBAAgB;AACd,MAAI,SAAS,SAAS;AACpB,gBAAa,SAAS,QAAQ;AAC9B,YAAS,UAAU;;AAGrB,MAAI,iBAAiB,EAAG;EAExB,MAAM,YAAY,KAAK,IAAI,IAAI,qBAAqB,KAAK,UAAU,GAAA;AACnE,WAAS,UAAU,WAAW,iBAAiB,UAAU;AAEzD,eAAa;AACX,OAAI,SAAS,SAAS;AACpB,iBAAa,SAAS,QAAQ;AAC9B,aAAS,UAAU;;;IAGtB;EAAC;EAAgB;EAAoB;EAAW;EAAgB,CAAC;AAEpE,QAAO;EAAE;EAAW;EAAe;EAAa"}
1
+ {"version":3,"file":"useStreamQueue.mjs","names":[],"sources":["../../../src/Markdown/SyntaxMarkdown/useStreamQueue.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { STREAM_FADE_DURATION } from './style';\nimport { countChars } from './useSmoothStreamContent';\n\nexport interface BlockInfo {\n content: string;\n startOffset: number;\n}\n\nexport type BlockState = 'revealed' | 'animating' | 'streaming' | 'queued';\n\nconst BASE_DELAY = 18;\nconst ACCELERATION_FACTOR = 0.3;\nconst MAX_BLOCK_DURATION = 3000;\n\nfunction computeCharDelay(queueLength: number, charCount: number): number {\n const acceleration = 1 + queueLength * ACCELERATION_FACTOR;\n let delay = BASE_DELAY / acceleration;\n delay = Math.min(delay, MAX_BLOCK_DURATION / Math.max(charCount, 1));\n return delay;\n}\n\nexport interface UseStreamQueueReturn {\n charDelay: number;\n getBlockState: (index: number) => BlockState;\n queueLength: number;\n}\n\nexport function useStreamQueue(blocks: BlockInfo[]): UseStreamQueueReturn {\n const [revealedCount, setRevealedCount] = useState(0);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const prevBlocksLenRef = useRef(0);\n const minRevealedRef = useRef(0);\n\n // Synchronous auto-reveal during render.\n // When blocks grow, the previous tail (streaming block) is instantly\n // promoted to revealed — its chars are already visible via stream-mode\n // animation. This runs during render (not in effect) so there is NO\n // intermediate frame where the old streaming block enters 'animating'\n // state and gets stagger plugins that would restart its animations.\n if (blocks.length === 0 && prevBlocksLenRef.current !== 0) {\n minRevealedRef.current = 0;\n }\n if (blocks.length > prevBlocksLenRef.current && prevBlocksLenRef.current > 0) {\n const prevTail = prevBlocksLenRef.current - 1;\n minRevealedRef.current = Math.max(minRevealedRef.current, prevTail + 1);\n }\n prevBlocksLenRef.current = blocks.length;\n\n // State reset when stream restarts (blocks empty)\n useEffect(() => {\n if (blocks.length === 0) {\n setRevealedCount(0);\n minRevealedRef.current = 0;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }\n }, [blocks.length]);\n\n const effectiveRevealedCount = Math.max(revealedCount, minRevealedRef.current);\n const tailIndex = blocks.length - 1;\n\n const getBlockState = useCallback(\n (index: number): BlockState => {\n if (index < effectiveRevealedCount) return 'revealed';\n if (index === effectiveRevealedCount && index < tailIndex) return 'animating';\n if (index === effectiveRevealedCount && index === tailIndex) return 'streaming';\n return 'queued';\n },\n [effectiveRevealedCount, tailIndex],\n );\n\n const queueLength = Math.max(0, tailIndex - effectiveRevealedCount - 1);\n\n const animatingIndex = effectiveRevealedCount < tailIndex ? effectiveRevealedCount : -1;\n const animatingCharCount =\n animatingIndex >= 0 ? countChars(blocks[animatingIndex]?.content ?? '') : 0;\n\n const streamingIndex = animatingIndex < 0 && tailIndex >= effectiveRevealedCount ? tailIndex : -1;\n const activeIndex = animatingIndex >= 0 ? animatingIndex : streamingIndex;\n const activeCharCount = activeIndex >= 0 ? countChars(blocks[activeIndex]?.content ?? '') : 0;\n\n // Freeze charDelay when entering a new active block (animating or streaming)\n const frozenRef = useRef({ delay: BASE_DELAY, index: -1 });\n if (activeIndex >= 0 && activeIndex !== frozenRef.current.index) {\n frozenRef.current = {\n delay: computeCharDelay(queueLength, activeCharCount),\n index: activeIndex,\n };\n }\n const charDelay = activeIndex >= 0 ? frozenRef.current.delay : BASE_DELAY;\n\n const onAnimationDone = useCallback(() => {\n setRevealedCount(effectiveRevealedCount + 1);\n }, [effectiveRevealedCount]);\n\n useEffect(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n\n if (animatingIndex < 0) return;\n\n const totalTime = Math.max(0, (animatingCharCount - 1) * charDelay) + STREAM_FADE_DURATION;\n timerRef.current = setTimeout(onAnimationDone, totalTime);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [animatingIndex, animatingCharCount, charDelay, onAnimationDone]);\n\n return { charDelay, getBlockState, queueLength };\n}\n"],"mappings":";;;AAYA,MAAM,aAAa;AACnB,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAE3B,SAAS,iBAAiB,aAAqB,WAA2B;CACxE,MAAM,eAAe,IAAI,cAAc;CACvC,IAAI,QAAQ,aAAa;CACzB,QAAQ,KAAK,IAAI,OAAO,qBAAqB,KAAK,IAAI,WAAW,CAAC,CAAC;CACnE,OAAO;AACT;AAQA,SAAgB,eAAe,QAA2C;CACxE,MAAM,CAAC,eAAe,oBAAoB,SAAS,CAAC;CACpD,MAAM,WAAW,OAA6C,IAAI;CAClE,MAAM,mBAAmB,OAAO,CAAC;CACjC,MAAM,iBAAiB,OAAO,CAAC;CAQ/B,IAAI,OAAO,WAAW,KAAK,iBAAiB,YAAY,GACtD,eAAe,UAAU;CAE3B,IAAI,OAAO,SAAS,iBAAiB,WAAW,iBAAiB,UAAU,GAAG;EAC5E,MAAM,WAAW,iBAAiB,UAAU;EAC5C,eAAe,UAAU,KAAK,IAAI,eAAe,SAAS,WAAW,CAAC;CACxE;CACA,iBAAiB,UAAU,OAAO;CAGlC,gBAAgB;EACd,IAAI,OAAO,WAAW,GAAG;GACvB,iBAAiB,CAAC;GAClB,eAAe,UAAU;GACzB,IAAI,SAAS,SAAS;IACpB,aAAa,SAAS,OAAO;IAC7B,SAAS,UAAU;GACrB;EACF;CACF,GAAG,CAAC,OAAO,MAAM,CAAC;CAElB,MAAM,yBAAyB,KAAK,IAAI,eAAe,eAAe,OAAO;CAC7E,MAAM,YAAY,OAAO,SAAS;CAElC,MAAM,gBAAgB,aACnB,UAA8B;EAC7B,IAAI,QAAQ,wBAAwB,OAAO;EAC3C,IAAI,UAAU,0BAA0B,QAAQ,WAAW,OAAO;EAClE,IAAI,UAAU,0BAA0B,UAAU,WAAW,OAAO;EACpE,OAAO;CACT,GACA,CAAC,wBAAwB,SAAS,CACpC;CAEA,MAAM,cAAc,KAAK,IAAI,GAAG,YAAY,yBAAyB,CAAC;CAEtE,MAAM,iBAAiB,yBAAyB,YAAY,yBAAyB;CACrF,MAAM,qBACJ,kBAAkB,IAAI,WAAW,OAAO,eAAe,EAAE,WAAW,EAAE,IAAI;CAG5E,MAAM,cAAc,kBAAkB,IAAI,iBADnB,iBAAiB,KAAK,aAAa,yBAAyB,YAAY;CAE/F,MAAM,kBAAkB,eAAe,IAAI,WAAW,OAAO,YAAY,EAAE,WAAW,EAAE,IAAI;CAG5F,MAAM,YAAY,OAAO;EAAE,OAAO;EAAY,OAAO;CAAG,CAAC;CACzD,IAAI,eAAe,KAAK,gBAAgB,UAAU,QAAQ,OACxD,UAAU,UAAU;EAClB,OAAO,iBAAiB,aAAa,eAAe;EACpD,OAAO;CACT;CAEF,MAAM,YAAY,eAAe,IAAI,UAAU,QAAQ,QAAQ;CAE/D,MAAM,kBAAkB,kBAAkB;EACxC,iBAAiB,yBAAyB,CAAC;CAC7C,GAAG,CAAC,sBAAsB,CAAC;CAE3B,gBAAgB;EACd,IAAI,SAAS,SAAS;GACpB,aAAa,SAAS,OAAO;GAC7B,SAAS,UAAU;EACrB;EAEA,IAAI,iBAAiB,GAAG;EAExB,MAAM,YAAY,KAAK,IAAI,IAAI,qBAAqB,KAAK,SAAS,IAAA;EAClE,SAAS,UAAU,WAAW,iBAAiB,SAAS;EAExD,aAAa;GACX,IAAI,SAAS,SAAS;IACpB,aAAa,SAAS,OAAO;IAC7B,SAAS,UAAU;GACrB;EACF;CACF,GAAG;EAAC;EAAgB;EAAoB;EAAW;CAAe,CAAC;CAEnE,OAAO;EAAE;EAAW;EAAe;CAAY;AACjD"}
@@ -1,8 +1,6 @@
1
1
  import { TypographyProps } from "./type.mjs";
2
- import * as _$react from "react";
3
-
4
2
  //#region src/Markdown/Typography.d.ts
5
- declare const Typography: _$react.NamedExoticComponent<TypographyProps>;
3
+ declare const Typography: import("react").NamedExoticComponent<TypographyProps>;
6
4
  //#endregion
7
- export { Typography };
5
+ export { Typography as default };
8
6
  //# sourceMappingURL=Typography.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.mjs","names":[],"sources":["../../src/Markdown/Typography.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\n\nimport { styles } from './markdown.style';\nimport type { TypographyProps } from './type';\n\nconst Typography = memo<TypographyProps>(\n ({\n ref,\n children,\n className,\n fontSize = 16,\n headerMultiple = 1,\n marginMultiple = 2,\n lineHeight = 1.8,\n borderRadius = 8,\n style,\n ...rest\n }) => {\n return (\n <article\n className={cx(styles.root, className)}\n ref={ref}\n style={{\n // @ts-ignore\n '--lobe-markdown-border-radius': borderRadius,\n '--lobe-markdown-font-size': `${fontSize}px`,\n '--lobe-markdown-header-multiple': headerMultiple,\n '--lobe-markdown-line-height': lineHeight,\n '--lobe-markdown-margin-multiple': marginMultiple,\n ...style,\n }}\n {...rest}\n >\n {children}\n </article>\n );\n },\n);\n\nTypography.displayName = 'Typography';\n\nexport default Typography;\n"],"mappings":";;;;;;AAQA,MAAM,aAAa,MAChB,EACC,KACA,UACA,WACA,WAAW,IACX,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,KACb,eAAe,GACf,OACA,GAAG,WACC;AACJ,QACE,oBAAC,WAAD;EACE,WAAW,GAAG,OAAO,MAAM,UAAU;EAChC;EACL,OAAO;GAEL,iCAAiC;GACjC,6BAA6B,GAAG,SAAS;GACzC,mCAAmC;GACnC,+BAA+B;GAC/B,mCAAmC;GACnC,GAAG;GACJ;EACD,GAAI;EAEH;EACO,CAAA;EAGf;AAED,WAAW,cAAc"}
1
+ {"version":3,"file":"Typography.mjs","names":[],"sources":["../../src/Markdown/Typography.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo } from 'react';\n\nimport { styles } from './markdown.style';\nimport type { TypographyProps } from './type';\n\nconst Typography = memo<TypographyProps>(\n ({\n ref,\n children,\n className,\n fontSize = 16,\n headerMultiple = 1,\n marginMultiple = 2,\n lineHeight = 1.8,\n borderRadius = 8,\n style,\n ...rest\n }) => {\n return (\n <article\n className={cx(styles.root, className)}\n ref={ref}\n style={{\n // @ts-ignore\n '--lobe-markdown-border-radius': borderRadius,\n '--lobe-markdown-font-size': `${fontSize}px`,\n '--lobe-markdown-header-multiple': headerMultiple,\n '--lobe-markdown-line-height': lineHeight,\n '--lobe-markdown-margin-multiple': marginMultiple,\n ...style,\n }}\n {...rest}\n >\n {children}\n </article>\n );\n },\n);\n\nTypography.displayName = 'Typography';\n\nexport default Typography;\n"],"mappings":";;;;;;AAQA,MAAM,aAAa,MAChB,EACC,KACA,UACA,WACA,WAAW,IACX,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,KACb,eAAe,GACf,OACA,GAAG,WACC;CACJ,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,OAAO,MAAM,SAAS;EAC/B;EACL,OAAO;GAEL,iCAAiC;GACjC,6BAA6B,GAAG,SAAS;GACzC,mCAAmC;GACnC,+BAA+B;GAC/B,mCAAmC;GACnC,GAAG;EACL;EACA,GAAI;EAEH;CACM,CAAA;AAEb,CACF;AAEA,WAAW,cAAc"}
@@ -1,6 +1,6 @@
1
1
  import "../../Highlighter/const.mjs";
2
2
  import { isFullHtmlDocument } from "../../HtmlPreview/const.mjs";
3
- import Pre, { PreHtmlPreview, PreMermaid, PreSingleLine } from "../../mdx/mdxComponents/Pre.mjs";
3
+ import { Pre, PreHtmlPreview, PreMermaid, PreSingleLine } from "../../mdx/mdxComponents/Pre.mjs";
4
4
  import { memo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/Markdown/components/CodeBlock.tsx
@@ -51,6 +51,6 @@ const CodeBlock = memo(({ fullFeatured, enableHtmlPreview, enableMermaid, highli
51
51
  });
52
52
  }, (prevProps, nextProps) => prevProps.children === nextProps.children);
53
53
  //#endregion
54
- export { CodeBlock };
54
+ export { CodeBlock, useCode };
55
55
 
56
56
  //# sourceMappingURL=CodeBlock.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.mjs","names":[],"sources":["../../../src/Markdown/components/CodeBlock.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport type { HighlighterProps } from '@/Highlighter';\nimport { FALLBACK_LANG } from '@/Highlighter/const';\nimport { isFullHtmlDocument } from '@/HtmlPreview/const';\nimport type { HtmlPreviewProps } from '@/HtmlPreview/type';\nimport Pre, { PreHtmlPreview, PreMermaid, PreSingleLine } from '@/mdx/mdxComponents/Pre';\nimport type { MermaidProps } from '@/Mermaid';\n\nconst countLines = (str: string): number => {\n const regex = /\\n/g;\n const matches = str.match(regex);\n return matches ? matches.length : 1;\n};\n\nexport const useCode = (raw: any) => {\n if (!raw) return;\n\n const { children = '', className } = raw?.props || { children: '' };\n\n if (!children) return;\n\n const content = Array.isArray(children) ? (children[0] as string) : children;\n\n const lang = className?.replace('language-', '') || FALLBACK_LANG;\n\n const isSingleLine = countLines(content) <= 1 && content.length <= 32;\n\n return {\n content,\n isSingleLine,\n lang,\n };\n};\n\ninterface CodeBlockProps {\n animated?: boolean;\n children: any;\n enableHtmlPreview?: boolean;\n enableMermaid?: boolean;\n fullFeatured?: boolean;\n highlight?: HighlighterProps;\n html?: HtmlPreviewProps;\n mermaid?: MermaidProps;\n}\n\nexport const CodeBlock = memo<CodeBlockProps>(\n ({\n fullFeatured,\n enableHtmlPreview,\n enableMermaid,\n highlight,\n html,\n mermaid,\n children,\n animated,\n ...rest\n }) => {\n const code = useCode(children);\n\n if (!code) return;\n\n if (enableMermaid && code.lang === 'mermaid')\n return (\n <PreMermaid animated={animated} fullFeatured={fullFeatured} {...mermaid} {...rest}>\n {code.content}\n </PreMermaid>\n );\n\n // Auto-route to HTML preview only for full HTML documents. Fragments fall\n // through to the normal highlighter — inline-rendering a `<div>` snippet\n // produces a degraded experience and risks hiding the actual code from\n // the reader.\n if (enableHtmlPreview && code.lang === 'html' && isFullHtmlDocument(code.content))\n return (\n <PreHtmlPreview animated={animated} fullFeatured={fullFeatured} {...html} {...rest}>\n {code.content}\n </PreHtmlPreview>\n );\n\n if (!highlight && code.isSingleLine)\n return <PreSingleLine language={code.lang}>{code.content}</PreSingleLine>;\n\n return (\n <Pre\n animated={animated}\n fullFeatured={fullFeatured}\n language={code.lang}\n {...highlight}\n {...rest}\n >\n {code.content}\n </Pre>\n );\n },\n (prevProps, nextProps) => prevProps.children === nextProps.children,\n);\n"],"mappings":";;;;;;AASA,MAAM,cAAc,QAAwB;CAE1C,MAAM,UAAU,IAAI,MAAM,MAAM;AAChC,QAAO,UAAU,QAAQ,SAAS;;AAGpC,MAAa,WAAW,QAAa;AACnC,KAAI,CAAC,IAAK;CAEV,MAAM,EAAE,WAAW,IAAI,cAAc,KAAK,SAAS,EAAE,UAAU,IAAI;AAEnE,KAAI,CAAC,SAAU;CAEf,MAAM,UAAU,MAAM,QAAQ,SAAS,GAAI,SAAS,KAAgB;CAEpE,MAAM,OAAO,WAAW,QAAQ,aAAa,GAAG,IAAA;AAIhD,QAAO;EACL;EACA,cAJmB,WAAW,QAAQ,IAAI,KAAK,QAAQ,UAAU;EAKjE;EACD;;AAcH,MAAa,YAAY,MACtB,EACC,cACA,mBACA,eACA,WACA,MACA,SACA,UACA,UACA,GAAG,WACC;CACJ,MAAM,OAAO,QAAQ,SAAS;AAE9B,KAAI,CAAC,KAAM;AAEX,KAAI,iBAAiB,KAAK,SAAS,UACjC,QACE,oBAAC,YAAD;EAAsB;EAAwB;EAAc,GAAI;EAAS,GAAI;YAC1E,KAAK;EACK,CAAA;AAOjB,KAAI,qBAAqB,KAAK,SAAS,UAAU,mBAAmB,KAAK,QAAQ,CAC/E,QACE,oBAAC,gBAAD;EAA0B;EAAwB;EAAc,GAAI;EAAM,GAAI;YAC3E,KAAK;EACS,CAAA;AAGrB,KAAI,CAAC,aAAa,KAAK,aACrB,QAAO,oBAAC,eAAD;EAAe,UAAU,KAAK;YAAO,KAAK;EAAwB,CAAA;AAE3E,QACE,oBAAC,KAAD;EACY;EACI;EACd,UAAU,KAAK;EACf,GAAI;EACJ,GAAI;YAEH,KAAK;EACF,CAAA;IAGT,WAAW,cAAc,UAAU,aAAa,UAAU,SAC5D"}
1
+ {"version":3,"file":"CodeBlock.mjs","names":[],"sources":["../../../src/Markdown/components/CodeBlock.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport type { HighlighterProps } from '@/Highlighter';\nimport { FALLBACK_LANG } from '@/Highlighter/const';\nimport { isFullHtmlDocument } from '@/HtmlPreview/const';\nimport type { HtmlPreviewProps } from '@/HtmlPreview/type';\nimport Pre, { PreHtmlPreview, PreMermaid, PreSingleLine } from '@/mdx/mdxComponents/Pre';\nimport type { MermaidProps } from '@/Mermaid';\n\nconst countLines = (str: string): number => {\n const regex = /\\n/g;\n const matches = str.match(regex);\n return matches ? matches.length : 1;\n};\n\nexport const useCode = (raw: any) => {\n if (!raw) return;\n\n const { children = '', className } = raw?.props || { children: '' };\n\n if (!children) return;\n\n const content = Array.isArray(children) ? (children[0] as string) : children;\n\n const lang = className?.replace('language-', '') || FALLBACK_LANG;\n\n const isSingleLine = countLines(content) <= 1 && content.length <= 32;\n\n return {\n content,\n isSingleLine,\n lang,\n };\n};\n\ninterface CodeBlockProps {\n animated?: boolean;\n children: any;\n enableHtmlPreview?: boolean;\n enableMermaid?: boolean;\n fullFeatured?: boolean;\n highlight?: HighlighterProps;\n html?: HtmlPreviewProps;\n mermaid?: MermaidProps;\n}\n\nexport const CodeBlock = memo<CodeBlockProps>(\n ({\n fullFeatured,\n enableHtmlPreview,\n enableMermaid,\n highlight,\n html,\n mermaid,\n children,\n animated,\n ...rest\n }) => {\n const code = useCode(children);\n\n if (!code) return;\n\n if (enableMermaid && code.lang === 'mermaid')\n return (\n <PreMermaid animated={animated} fullFeatured={fullFeatured} {...mermaid} {...rest}>\n {code.content}\n </PreMermaid>\n );\n\n // Auto-route to HTML preview only for full HTML documents. Fragments fall\n // through to the normal highlighter — inline-rendering a `<div>` snippet\n // produces a degraded experience and risks hiding the actual code from\n // the reader.\n if (enableHtmlPreview && code.lang === 'html' && isFullHtmlDocument(code.content))\n return (\n <PreHtmlPreview animated={animated} fullFeatured={fullFeatured} {...html} {...rest}>\n {code.content}\n </PreHtmlPreview>\n );\n\n if (!highlight && code.isSingleLine)\n return <PreSingleLine language={code.lang}>{code.content}</PreSingleLine>;\n\n return (\n <Pre\n animated={animated}\n fullFeatured={fullFeatured}\n language={code.lang}\n {...highlight}\n {...rest}\n >\n {code.content}\n </Pre>\n );\n },\n (prevProps, nextProps) => prevProps.children === nextProps.children,\n);\n"],"mappings":";;;;;;AASA,MAAM,cAAc,QAAwB;CAE1C,MAAM,UAAU,IAAI,MAAM,KAAK;CAC/B,OAAO,UAAU,QAAQ,SAAS;AACpC;AAEA,MAAa,WAAW,QAAa;CACnC,IAAI,CAAC,KAAK;CAEV,MAAM,EAAE,WAAW,IAAI,cAAc,KAAK,SAAS,EAAE,UAAU,GAAG;CAElE,IAAI,CAAC,UAAU;CAEf,MAAM,UAAU,MAAM,QAAQ,QAAQ,IAAK,SAAS,KAAgB;CAEpE,MAAM,OAAO,WAAW,QAAQ,aAAa,EAAE,KAAA;CAI/C,OAAO;EACL;EACA,cAJmB,WAAW,OAAO,KAAK,KAAK,QAAQ,UAAU;EAKjE;CACF;AACF;AAaA,MAAa,YAAY,MACtB,EACC,cACA,mBACA,eACA,WACA,MACA,SACA,UACA,UACA,GAAG,WACC;CACJ,MAAM,OAAO,QAAQ,QAAQ;CAE7B,IAAI,CAAC,MAAM;CAEX,IAAI,iBAAiB,KAAK,SAAS,WACjC,OACE,oBAAC,YAAD;EAAsB;EAAwB;EAAc,GAAI;EAAS,GAAI;YAC1E,KAAK;CACI,CAAA;CAOhB,IAAI,qBAAqB,KAAK,SAAS,UAAU,mBAAmB,KAAK,OAAO,GAC9E,OACE,oBAAC,gBAAD;EAA0B;EAAwB;EAAc,GAAI;EAAM,GAAI;YAC3E,KAAK;CACQ,CAAA;CAGpB,IAAI,CAAC,aAAa,KAAK,cACrB,OAAO,oBAAC,eAAD;EAAe,UAAU,KAAK;YAAO,KAAK;CAAuB,CAAA;CAE1E,OACE,oBAAC,KAAD;EACY;EACI;EACd,UAAU,KAAK;EACf,GAAI;EACJ,GAAI;YAEH,KAAK;CACH,CAAA;AAET,IACC,WAAW,cAAc,UAAU,aAAa,UAAU,QAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"Footnotes.mjs","names":["Flexbox"],"sources":["../../../src/Markdown/components/Footnotes.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type ReactNode, useMemo } from 'react';\n\nimport A from '@/A';\nimport Block from '@/Block';\nimport { Flexbox } from '@/Flex';\nimport Text from '@/Text';\n\nimport SearchResultCards from './SearchResultCards';\n\ninterface FootnotesProps {\n 'children': ReactNode;\n 'data-footnote-links'?: string;\n 'data-footnotes'?: boolean;\n}\n\nconst DefaultFootnotes = memo<{ dataSource: any[] }>(({ dataSource }) => {\n const items = useMemo(\n () =>\n dataSource\n .find((child) => child?.type === 'ol')\n ?.props?.children?.map((item: any) => {\n if (typeof item === 'string' || item?.type !== 'li') return false;\n const data = item?.props?.children?.find((note: any) => note?.props?.children)?.props\n ?.children;\n if (!data || !Array.isArray(data)) return false;\n return {\n children: data[0],\n props: data[1]?.props || {},\n };\n })\n .filter(Boolean),\n [dataSource],\n );\n\n if (!Array.isArray(items)) return null;\n\n return (\n <Flexbox\n horizontal\n align={'flex-start'}\n as={'section'}\n className={'footnotes'}\n data-footnotes=\"true\"\n gap={'0.5em'}\n justify={'flex-start'}\n wrap={'wrap'}\n >\n {items.map(({ children, props }, index) => {\n const { node, href, ...rest } = props;\n const Container = href ? A : 'div';\n return (\n <Container {...(href ? { href, ...rest } : rest)} key={index}>\n <Block\n horizontal\n align={'stretch'}\n style={{ overflow: 'hidden', position: 'relative' }}\n variant={'outlined'}\n >\n <Block paddingInline={'0.66em'} style={{ borderRadius: 0 }} variant={'filled'}>\n <Text code as=\"span\" type={'secondary'}>\n {index + 1}\n </Text>\n </Block>\n <Text as=\"span\" style={{ paddingInline: '0.66em' }} type={'secondary'}>\n {children}\n </Text>\n </Block>\n </Container>\n );\n })}\n </Flexbox>\n );\n});\n\nconst Footnotes = memo<FootnotesProps>(({ children, ...rest }) => {\n const links = useMemo(() => {\n try {\n return JSON.parse(rest['data-footnote-links'] || '[]');\n } catch (error) {\n console.error('Failed to parse footnote links:', error);\n return [];\n }\n }, [rest['data-footnote-links']]);\n\n const isError = links.length === 0;\n\n if (!children) return;\n\n if (isError) {\n if (!Array.isArray(children)) return children;\n return <DefaultFootnotes dataSource={children} />;\n }\n\n return (\n <section className={'footnotes'} data-footnotes=\"true\">\n <SearchResultCards dataSource={links} />\n </section>\n );\n});\n\nFootnotes.displayName = 'Footnotes';\n\nexport default Footnotes;\n"],"mappings":";;;;;;;;;AAiBA,MAAM,mBAAmB,MAA6B,EAAE,iBAAiB;CACvE,MAAM,QAAQ,cAEV,WACG,MAAM,UAAU,OAAO,SAAS,KAAK,EACpC,OAAO,UAAU,KAAK,SAAc;AACpC,MAAI,OAAO,SAAS,YAAY,MAAM,SAAS,KAAM,QAAO;EAC5D,MAAM,OAAO,MAAM,OAAO,UAAU,MAAM,SAAc,MAAM,OAAO,SAAS,EAAE,OAC5E;AACJ,MAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,KAAK,CAAE,QAAO;AAC1C,SAAO;GACL,UAAU,KAAK;GACf,OAAO,KAAK,IAAI,SAAS,EAAE;GAC5B;GACD,CACD,OAAO,QAAQ,EACpB,CAAC,WAAW,CACb;AAED,KAAI,CAAC,MAAM,QAAQ,MAAM,CAAE,QAAO;AAElC,QACE,oBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,IAAI;EACJ,WAAW;EACX,kBAAe;EACf,KAAK;EACL,SAAS;EACT,MAAM;YAEL,MAAM,KAAK,EAAE,UAAU,SAAS,UAAU;GACzC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;AAEhC,UACE,8BAFgB,OAAO,IAAI,OAE3B;IAAW,GAAK,OAAO;KAAE;KAAM,GAAG;KAAM,GAAG;IAAO,KAAK;IAgB3C,EAfV,qBAAC,OAAD;IACE,YAAA;IACA,OAAO;IACP,OAAO;KAAE,UAAU;KAAU,UAAU;KAAY;IACnD,SAAS;cAJX,CAME,oBAAC,OAAD;KAAO,eAAe;KAAU,OAAO,EAAE,cAAc,GAAG;KAAE,SAAS;eACnE,oBAAC,MAAD;MAAM,MAAA;MAAK,IAAG;MAAO,MAAM;gBACxB,QAAQ;MACJ,CAAA;KACD,CAAA,EACR,oBAAC,MAAD;KAAM,IAAG;KAAO,OAAO,EAAE,eAAe,UAAU;KAAE,MAAM;KACvD;KACI,CAAA,CACD;MACE;IAEd;EACM,CAAA;EAEZ;AAEF,MAAM,YAAY,MAAsB,EAAE,UAAU,GAAG,WAAW;CAChE,MAAM,QAAQ,cAAc;AAC1B,MAAI;AACF,UAAO,KAAK,MAAM,KAAK,0BAA0B,KAAK;WAC/C,OAAO;AACd,WAAQ,MAAM,mCAAmC,MAAM;AACvD,UAAO,EAAE;;IAEV,CAAC,KAAK,uBAAuB,CAAC;CAEjC,MAAM,UAAU,MAAM,WAAW;AAEjC,KAAI,CAAC,SAAU;AAEf,KAAI,SAAS;AACX,MAAI,CAAC,MAAM,QAAQ,SAAS,CAAE,QAAO;AACrC,SAAO,oBAAC,kBAAD,EAAkB,YAAY,UAAY,CAAA;;AAGnD,QACE,oBAAC,WAAD;EAAS,WAAW;EAAa,kBAAe;YAC9C,oBAAC,mBAAD,EAAmB,YAAY,OAAS,CAAA;EAChC,CAAA;EAEZ;AAEF,UAAU,cAAc"}
1
+ {"version":3,"file":"Footnotes.mjs","names":["Flexbox"],"sources":["../../../src/Markdown/components/Footnotes.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type ReactNode, useMemo } from 'react';\n\nimport A from '@/A';\nimport Block from '@/Block';\nimport { Flexbox } from '@/Flex';\nimport Text from '@/Text';\n\nimport SearchResultCards from './SearchResultCards';\n\ninterface FootnotesProps {\n 'children': ReactNode;\n 'data-footnote-links'?: string;\n 'data-footnotes'?: boolean;\n}\n\nconst DefaultFootnotes = memo<{ dataSource: any[] }>(({ dataSource }) => {\n const items = useMemo(\n () =>\n dataSource\n .find((child) => child?.type === 'ol')\n ?.props?.children?.map((item: any) => {\n if (typeof item === 'string' || item?.type !== 'li') return false;\n const data = item?.props?.children?.find((note: any) => note?.props?.children)?.props\n ?.children;\n if (!data || !Array.isArray(data)) return false;\n return {\n children: data[0],\n props: data[1]?.props || {},\n };\n })\n .filter(Boolean),\n [dataSource],\n );\n\n if (!Array.isArray(items)) return null;\n\n return (\n <Flexbox\n horizontal\n align={'flex-start'}\n as={'section'}\n className={'footnotes'}\n data-footnotes=\"true\"\n gap={'0.5em'}\n justify={'flex-start'}\n wrap={'wrap'}\n >\n {items.map(({ children, props }, index) => {\n const { node, href, ...rest } = props;\n const Container = href ? A : 'div';\n return (\n <Container {...(href ? { href, ...rest } : rest)} key={index}>\n <Block\n horizontal\n align={'stretch'}\n style={{ overflow: 'hidden', position: 'relative' }}\n variant={'outlined'}\n >\n <Block paddingInline={'0.66em'} style={{ borderRadius: 0 }} variant={'filled'}>\n <Text code as=\"span\" type={'secondary'}>\n {index + 1}\n </Text>\n </Block>\n <Text as=\"span\" style={{ paddingInline: '0.66em' }} type={'secondary'}>\n {children}\n </Text>\n </Block>\n </Container>\n );\n })}\n </Flexbox>\n );\n});\n\nconst Footnotes = memo<FootnotesProps>(({ children, ...rest }) => {\n const links = useMemo(() => {\n try {\n return JSON.parse(rest['data-footnote-links'] || '[]');\n } catch (error) {\n console.error('Failed to parse footnote links:', error);\n return [];\n }\n }, [rest['data-footnote-links']]);\n\n const isError = links.length === 0;\n\n if (!children) return;\n\n if (isError) {\n if (!Array.isArray(children)) return children;\n return <DefaultFootnotes dataSource={children} />;\n }\n\n return (\n <section className={'footnotes'} data-footnotes=\"true\">\n <SearchResultCards dataSource={links} />\n </section>\n );\n});\n\nFootnotes.displayName = 'Footnotes';\n\nexport default Footnotes;\n"],"mappings":";;;;;;;;;AAiBA,MAAM,mBAAmB,MAA6B,EAAE,iBAAiB;CACvE,MAAM,QAAQ,cAEV,WACG,MAAM,UAAU,OAAO,SAAS,IAAI,CAAC,EACpC,OAAO,UAAU,KAAK,SAAc;EACpC,IAAI,OAAO,SAAS,YAAY,MAAM,SAAS,MAAM,OAAO;EAC5D,MAAM,OAAO,MAAM,OAAO,UAAU,MAAM,SAAc,MAAM,OAAO,QAAQ,CAAC,EAAE,OAC5E;EACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,IAAI,GAAG,OAAO;EAC1C,OAAO;GACL,UAAU,KAAK;GACf,OAAO,KAAK,EAAE,EAAE,SAAS,CAAC;EAC5B;CACF,CAAC,CAAC,CACD,OAAO,OAAO,GACnB,CAAC,UAAU,CACb;CAEA,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO;CAElC,OACE,oBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,IAAI;EACJ,WAAW;EACX,kBAAe;EACf,KAAK;EACL,SAAS;EACT,MAAM;YAEL,MAAM,KAAK,EAAE,UAAU,SAAS,UAAU;GACzC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;GAEhC,OACE,8BAFgB,OAAO,IAAI,OAE3B;IAAW,GAAK,OAAO;KAAE;KAAM,GAAG;IAAK,IAAI;IAAO,KAAK;GAgB5C,GAfT,qBAAC,OAAD;IACE,YAAA;IACA,OAAO;IACP,OAAO;KAAE,UAAU;KAAU,UAAU;IAAW;IAClD,SAAS;cAJX,CAME,oBAAC,OAAD;KAAO,eAAe;KAAU,OAAO,EAAE,cAAc,EAAE;KAAG,SAAS;eACnE,oBAAC,MAAD;MAAM,MAAA;MAAK,IAAG;MAAO,MAAM;gBACxB,QAAQ;KACL,CAAA;IACD,CAAA,GACP,oBAAC,MAAD;KAAM,IAAG;KAAO,OAAO,EAAE,eAAe,SAAS;KAAG,MAAM;KACvD;IACG,CAAA,CACD;KACE;EAEf,CAAC;CACM,CAAA;AAEb,CAAC;AAED,MAAM,YAAY,MAAsB,EAAE,UAAU,GAAG,WAAW;CAChE,MAAM,QAAQ,cAAc;EAC1B,IAAI;GACF,OAAO,KAAK,MAAM,KAAK,0BAA0B,IAAI;EACvD,SAAS,OAAO;GACd,QAAQ,MAAM,mCAAmC,KAAK;GACtD,OAAO,CAAC;EACV;CACF,GAAG,CAAC,KAAK,sBAAsB,CAAC;CAEhC,MAAM,UAAU,MAAM,WAAW;CAEjC,IAAI,CAAC,UAAU;CAEf,IAAI,SAAS;EACX,IAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG,OAAO;EACrC,OAAO,oBAAC,kBAAD,EAAkB,YAAY,SAAW,CAAA;CAClD;CAEA,OACE,oBAAC,WAAD;EAAS,WAAW;EAAa,kBAAe;YAC9C,oBAAC,mBAAD,EAAmB,YAAY,MAAQ,CAAA;CAChC,CAAA;AAEb,CAAC;AAED,UAAU,cAAc"}
@@ -5,8 +5,9 @@ import { jsx } from "react/jsx-runtime";
5
5
  //#region src/Markdown/components/MarkdownProvider.tsx
6
6
  const MarkdownContext = createContext({});
7
7
  const MarkdownProvider = memo(({ children, ...config }) => {
8
+ const stableConfig = useStableValue(config);
8
9
  return /* @__PURE__ */ jsx(MarkdownContext, {
9
- value: useStableValue(config),
10
+ value: stableConfig,
10
11
  children
11
12
  });
12
13
  });
@@ -14,6 +15,6 @@ const useMarkdownContext = () => {
14
15
  return use(MarkdownContext);
15
16
  };
16
17
  //#endregion
17
- export { MarkdownProvider, useMarkdownContext };
18
+ export { MarkdownContext, MarkdownProvider, useMarkdownContext };
18
19
 
19
20
  //# sourceMappingURL=MarkdownProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownProvider.mjs","names":[],"sources":["../../../src/Markdown/components/MarkdownProvider.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, memo, type PropsWithChildren, use } from 'react';\n\nimport { useStableValue } from '@/hooks/useStableValue';\n\nimport { type SyntaxMarkdownProps } from '../type';\n\nexport type MarkdownContentConfig = Omit<SyntaxMarkdownProps, 'children' | 'reactMarkdownProps'>;\n\nexport const MarkdownContext = createContext<MarkdownContentConfig>({});\n\nexport const MarkdownProvider = memo<PropsWithChildren<MarkdownContentConfig>>(\n ({ children, ...config }) => {\n // The rest-spread builds a fresh object on every render while `children`\n // changes on every streamed chunk, so without stabilisation each chunk\n // swaps the context identity and re-renders every consumer inside every\n // block, bypassing the per-block memo entirely.\n const stableConfig = useStableValue(config);\n\n return <MarkdownContext value={stableConfig}>{children}</MarkdownContext>;\n },\n);\n\nexport const useMarkdownContext = () => {\n return use(MarkdownContext);\n};\n"],"mappings":";;;;;AAUA,MAAa,kBAAkB,cAAqC,EAAE,CAAC;AAEvE,MAAa,mBAAmB,MAC7B,EAAE,UAAU,GAAG,aAAa;AAO3B,QAAO,oBAAC,iBAAD;EAAiB,OAFH,eAAe,OAEO;EAAG;EAA2B,CAAA;EAE5E;AAED,MAAa,2BAA2B;AACtC,QAAO,IAAI,gBAAgB"}
1
+ {"version":3,"file":"MarkdownProvider.mjs","names":[],"sources":["../../../src/Markdown/components/MarkdownProvider.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, memo, type PropsWithChildren, use } from 'react';\n\nimport { useStableValue } from '@/hooks/useStableValue';\n\nimport { type SyntaxMarkdownProps } from '../type';\n\nexport type MarkdownContentConfig = Omit<SyntaxMarkdownProps, 'children' | 'reactMarkdownProps'>;\n\nexport const MarkdownContext = createContext<MarkdownContentConfig>({});\n\nexport const MarkdownProvider = memo<PropsWithChildren<MarkdownContentConfig>>(\n ({ children, ...config }) => {\n // The rest-spread builds a fresh object on every render while `children`\n // changes on every streamed chunk, so without stabilisation each chunk\n // swaps the context identity and re-renders every consumer inside every\n // block, bypassing the per-block memo entirely.\n const stableConfig = useStableValue(config);\n\n return <MarkdownContext value={stableConfig}>{children}</MarkdownContext>;\n },\n);\n\nexport const useMarkdownContext = () => {\n return use(MarkdownContext);\n};\n"],"mappings":";;;;;AAUA,MAAa,kBAAkB,cAAqC,CAAC,CAAC;AAEtE,MAAa,mBAAmB,MAC7B,EAAE,UAAU,GAAG,aAAa;CAK3B,MAAM,eAAe,eAAe,MAAM;CAE1C,OAAO,oBAAC,iBAAD;EAAiB,OAAO;EAAe;CAA0B,CAAA;AAC1E,CACF;AAEA,MAAa,2BAA2B;CACtC,OAAO,IAAI,eAAe;AAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"hastTableToMarkdown.mjs","names":[],"sources":["../../../../src/Markdown/components/MarkdownTable/hastTableToMarkdown.ts"],"sourcesContent":["type HastNode = {\n children?: HastNode[];\n properties?: Record<string, any>;\n tagName?: string;\n type: string;\n value?: string;\n};\n\nconst escapeCell = (text: string) => text.replaceAll('|', '\\\\|').replaceAll(/\\r?\\n/g, '<br>');\n\nconst matchAlign = (source: string): 'center' | 'left' | 'right' | null => {\n if (source.includes('center')) return 'center';\n if (source.includes('right')) return 'right';\n if (source.includes('left')) return 'left';\n return null;\n};\n\nconst readAlign = (node: HastNode | undefined): 'center' | 'left' | 'right' | null => {\n const style = node?.properties?.style;\n const align = node?.properties?.align;\n const styleStr = typeof style === 'string' ? style.toLowerCase() : '';\n const alignStr = typeof align === 'string' ? align.toLowerCase() : '';\n // Prefer the inline style hint (more specific) but fall back to the\n // explicit `align` attribute when style has no alignment keyword —\n // otherwise an unrelated style like `color: red` would suppress\n // `align=\"right\"`.\n return matchAlign(styleStr) ?? matchAlign(alignStr);\n};\n\n// CommonMark code-span rule: open and close with N backticks where N is\n// longer than any run of consecutive backticks inside the content. If the\n// content starts or ends with a backtick, pad with a single space on each\n// side (the parser strips one space when both sides are padded).\nconst encodeInlineCode = (text: string): string => {\n let longestRun = 0;\n const runs = text.match(/`+/g);\n if (runs) for (const run of runs) longestRun = Math.max(longestRun, run.length);\n const fence = '`'.repeat(longestRun + 1);\n const needsPad = text.startsWith('`') || text.endsWith('`');\n const body = needsPad ? ` ${text} ` : text;\n return `${fence}${body}${fence}`;\n};\n\nconst renderInline = (node: HastNode): string => {\n if (node.type === 'text') return node.value ?? '';\n if (node.type !== 'element') return '';\n\n const inner = (node.children ?? []).map((child) => renderInline(child)).join('');\n\n switch (node.tagName) {\n case 'br': {\n return '<br>';\n }\n case 'code': {\n return encodeInlineCode(inner);\n }\n case 'strong':\n case 'b': {\n return `**${inner}**`;\n }\n case 'em':\n case 'i': {\n return `*${inner}*`;\n }\n case 'del':\n case 's': {\n return `~~${inner}~~`;\n }\n case 'a': {\n const href = node.properties?.href;\n return href ? `[${inner}](${href})` : inner;\n }\n case 'img': {\n const src = node.properties?.src ?? '';\n const alt = node.properties?.alt ?? '';\n return `![${alt}](${src})`;\n }\n default: {\n return inner;\n }\n }\n};\n\nconst renderCell = (cell: HastNode): string => escapeCell(renderInline(cell)).trim();\n\nconst findChild = (node: HastNode | undefined, tag: string): HastNode | undefined =>\n node?.children?.find((child) => child.type === 'element' && child.tagName === tag);\n\nconst findAllChildren = (node: HastNode | undefined, tag: string): HastNode[] =>\n (node?.children ?? []).filter((child) => child.type === 'element' && child.tagName === tag);\n\nconst getRowCells = (row: HastNode): HastNode[] =>\n (row.children ?? []).filter(\n (child) => child.type === 'element' && (child.tagName === 'th' || child.tagName === 'td'),\n );\n\nconst alignToDivider = (align: 'center' | 'left' | 'right' | null): string => {\n switch (align) {\n case 'center': {\n return ':---:';\n }\n case 'left': {\n return ':---';\n }\n case 'right': {\n return '---:';\n }\n default: {\n return '---';\n }\n }\n};\n\nexport const hastTableToMarkdown = (node: HastNode | undefined): string => {\n if (!node) return '';\n\n const thead = findChild(node, 'thead');\n const tbody = findChild(node, 'tbody');\n\n const headerRow = findChild(thead, 'tr');\n const headerCells = headerRow ? getRowCells(headerRow) : [];\n\n const bodyRows = findAllChildren(tbody, 'tr');\n const columnCount = Math.max(\n headerCells.length,\n ...bodyRows.map((row) => getRowCells(row).length),\n );\n\n if (columnCount === 0) return '';\n\n const headerTexts = Array.from({ length: columnCount }, (_, i) =>\n headerCells[i] ? renderCell(headerCells[i]) : '',\n );\n\n const aligns = Array.from({ length: columnCount }, (_, i) => readAlign(headerCells[i]));\n\n const headerLine = `| ${headerTexts.join(' | ')} |`;\n const dividerLine = `| ${aligns.map((a) => alignToDivider(a)).join(' | ')} |`;\n const bodyLines = bodyRows.map((row) => {\n const cells = getRowCells(row);\n const texts = Array.from({ length: columnCount }, (_, i) =>\n cells[i] ? renderCell(cells[i]) : '',\n );\n return `| ${texts.join(' | ')} |`;\n });\n\n return [headerLine, dividerLine, ...bodyLines].join('\\n');\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"hastTableToMarkdown.mjs","names":[],"sources":["../../../../src/Markdown/components/MarkdownTable/hastTableToMarkdown.ts"],"sourcesContent":["type HastNode = {\n children?: HastNode[];\n properties?: Record<string, any>;\n tagName?: string;\n type: string;\n value?: string;\n};\n\nconst escapeCell = (text: string) => text.replaceAll('|', '\\\\|').replaceAll(/\\r?\\n/g, '<br>');\n\nconst matchAlign = (source: string): 'center' | 'left' | 'right' | null => {\n if (source.includes('center')) return 'center';\n if (source.includes('right')) return 'right';\n if (source.includes('left')) return 'left';\n return null;\n};\n\nconst readAlign = (node: HastNode | undefined): 'center' | 'left' | 'right' | null => {\n const style = node?.properties?.style;\n const align = node?.properties?.align;\n const styleStr = typeof style === 'string' ? style.toLowerCase() : '';\n const alignStr = typeof align === 'string' ? align.toLowerCase() : '';\n // Prefer the inline style hint (more specific) but fall back to the\n // explicit `align` attribute when style has no alignment keyword —\n // otherwise an unrelated style like `color: red` would suppress\n // `align=\"right\"`.\n return matchAlign(styleStr) ?? matchAlign(alignStr);\n};\n\n// CommonMark code-span rule: open and close with N backticks where N is\n// longer than any run of consecutive backticks inside the content. If the\n// content starts or ends with a backtick, pad with a single space on each\n// side (the parser strips one space when both sides are padded).\nconst encodeInlineCode = (text: string): string => {\n let longestRun = 0;\n const runs = text.match(/`+/g);\n if (runs) for (const run of runs) longestRun = Math.max(longestRun, run.length);\n const fence = '`'.repeat(longestRun + 1);\n const needsPad = text.startsWith('`') || text.endsWith('`');\n const body = needsPad ? ` ${text} ` : text;\n return `${fence}${body}${fence}`;\n};\n\nconst renderInline = (node: HastNode): string => {\n if (node.type === 'text') return node.value ?? '';\n if (node.type !== 'element') return '';\n\n const inner = (node.children ?? []).map((child) => renderInline(child)).join('');\n\n switch (node.tagName) {\n case 'br': {\n return '<br>';\n }\n case 'code': {\n return encodeInlineCode(inner);\n }\n case 'strong':\n case 'b': {\n return `**${inner}**`;\n }\n case 'em':\n case 'i': {\n return `*${inner}*`;\n }\n case 'del':\n case 's': {\n return `~~${inner}~~`;\n }\n case 'a': {\n const href = node.properties?.href;\n return href ? `[${inner}](${href})` : inner;\n }\n case 'img': {\n const src = node.properties?.src ?? '';\n const alt = node.properties?.alt ?? '';\n return `![${alt}](${src})`;\n }\n default: {\n return inner;\n }\n }\n};\n\nconst renderCell = (cell: HastNode): string => escapeCell(renderInline(cell)).trim();\n\nconst findChild = (node: HastNode | undefined, tag: string): HastNode | undefined =>\n node?.children?.find((child) => child.type === 'element' && child.tagName === tag);\n\nconst findAllChildren = (node: HastNode | undefined, tag: string): HastNode[] =>\n (node?.children ?? []).filter((child) => child.type === 'element' && child.tagName === tag);\n\nconst getRowCells = (row: HastNode): HastNode[] =>\n (row.children ?? []).filter(\n (child) => child.type === 'element' && (child.tagName === 'th' || child.tagName === 'td'),\n );\n\nconst alignToDivider = (align: 'center' | 'left' | 'right' | null): string => {\n switch (align) {\n case 'center': {\n return ':---:';\n }\n case 'left': {\n return ':---';\n }\n case 'right': {\n return '---:';\n }\n default: {\n return '---';\n }\n }\n};\n\nexport const hastTableToMarkdown = (node: HastNode | undefined): string => {\n if (!node) return '';\n\n const thead = findChild(node, 'thead');\n const tbody = findChild(node, 'tbody');\n\n const headerRow = findChild(thead, 'tr');\n const headerCells = headerRow ? getRowCells(headerRow) : [];\n\n const bodyRows = findAllChildren(tbody, 'tr');\n const columnCount = Math.max(\n headerCells.length,\n ...bodyRows.map((row) => getRowCells(row).length),\n );\n\n if (columnCount === 0) return '';\n\n const headerTexts = Array.from({ length: columnCount }, (_, i) =>\n headerCells[i] ? renderCell(headerCells[i]) : '',\n );\n\n const aligns = Array.from({ length: columnCount }, (_, i) => readAlign(headerCells[i]));\n\n const headerLine = `| ${headerTexts.join(' | ')} |`;\n const dividerLine = `| ${aligns.map((a) => alignToDivider(a)).join(' | ')} |`;\n const bodyLines = bodyRows.map((row) => {\n const cells = getRowCells(row);\n const texts = Array.from({ length: columnCount }, (_, i) =>\n cells[i] ? renderCell(cells[i]) : '',\n );\n return `| ${texts.join(' | ')} |`;\n });\n\n return [headerLine, dividerLine, ...bodyLines].join('\\n');\n};\n"],"mappings":";AAQA,MAAM,cAAc,SAAiB,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,WAAW,UAAU,MAAM;AAE5F,MAAM,cAAc,WAAuD;CACzE,IAAI,OAAO,SAAS,QAAQ,GAAG,OAAO;CACtC,IAAI,OAAO,SAAS,OAAO,GAAG,OAAO;CACrC,IAAI,OAAO,SAAS,MAAM,GAAG,OAAO;CACpC,OAAO;AACT;AAEA,MAAM,aAAa,SAAmE;CACpF,MAAM,QAAQ,MAAM,YAAY;CAChC,MAAM,QAAQ,MAAM,YAAY;CAChC,MAAM,WAAW,OAAO,UAAU,WAAW,MAAM,YAAY,IAAI;CACnE,MAAM,WAAW,OAAO,UAAU,WAAW,MAAM,YAAY,IAAI;CAKnE,OAAO,WAAW,QAAQ,KAAK,WAAW,QAAQ;AACpD;AAMA,MAAM,oBAAoB,SAAyB;CACjD,IAAI,aAAa;CACjB,MAAM,OAAO,KAAK,MAAM,KAAK;CAC7B,IAAI,MAAM,KAAK,MAAM,OAAO,MAAM,aAAa,KAAK,IAAI,YAAY,IAAI,MAAM;CAC9E,MAAM,QAAQ,IAAI,OAAO,aAAa,CAAC;CAGvC,OAAO,GAAG,QAFO,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,IAClC,IAAI,KAAK,KAAK,OACb;AAC3B;AAEA,MAAM,gBAAgB,SAA2B;CAC/C,IAAI,KAAK,SAAS,QAAQ,OAAO,KAAK,SAAS;CAC/C,IAAI,KAAK,SAAS,WAAW,OAAO;CAEpC,MAAM,SAAS,KAAK,YAAY,CAAC,EAAA,CAAG,KAAK,UAAU,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;CAE/E,QAAQ,KAAK,SAAb;EACE,KAAK,MACH,OAAO;EAET,KAAK,QACH,OAAO,iBAAiB,KAAK;EAE/B,KAAK;EACL,KAAK,KACH,OAAO,KAAK,MAAM;EAEpB,KAAK;EACL,KAAK,KACH,OAAO,IAAI,MAAM;EAEnB,KAAK;EACL,KAAK,KACH,OAAO,KAAK,MAAM;EAEpB,KAAK,KAAK;GACR,MAAM,OAAO,KAAK,YAAY;GAC9B,OAAO,OAAO,IAAI,MAAM,IAAI,KAAK,KAAK;EACxC;EACA,KAAK,OAAO;GACV,MAAM,MAAM,KAAK,YAAY,OAAO;GAEpC,OAAO,KADK,KAAK,YAAY,OAAO,GACpB,IAAI,IAAI;EAC1B;EACA,SACE,OAAO;CAEX;AACF;AAEA,MAAM,cAAc,SAA2B,WAAW,aAAa,IAAI,CAAC,CAAC,CAAC,KAAK;AAEnF,MAAM,aAAa,MAA4B,QAC7C,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,aAAa,MAAM,YAAY,GAAG;AAEnF,MAAM,mBAAmB,MAA4B,SAClD,MAAM,YAAY,CAAC,EAAA,CAAG,QAAQ,UAAU,MAAM,SAAS,aAAa,MAAM,YAAY,GAAG;AAE5F,MAAM,eAAe,SAClB,IAAI,YAAY,CAAC,EAAA,CAAG,QAClB,UAAU,MAAM,SAAS,cAAc,MAAM,YAAY,QAAQ,MAAM,YAAY,KACtF;AAEF,MAAM,kBAAkB,UAAsD;CAC5E,QAAQ,OAAR;EACE,KAAK,UACH,OAAO;EAET,KAAK,QACH,OAAO;EAET,KAAK,SACH,OAAO;EAET,SACE,OAAO;CAEX;AACF;AAEA,MAAa,uBAAuB,SAAuC;CACzE,IAAI,CAAC,MAAM,OAAO;CAElB,MAAM,QAAQ,UAAU,MAAM,OAAO;CACrC,MAAM,QAAQ,UAAU,MAAM,OAAO;CAErC,MAAM,YAAY,UAAU,OAAO,IAAI;CACvC,MAAM,cAAc,YAAY,YAAY,SAAS,IAAI,CAAC;CAE1D,MAAM,WAAW,gBAAgB,OAAO,IAAI;CAC5C,MAAM,cAAc,KAAK,IACvB,YAAY,QACZ,GAAG,SAAS,KAAK,QAAQ,YAAY,GAAG,CAAC,CAAC,MAAM,CAClD;CAEA,IAAI,gBAAgB,GAAG,OAAO;CAE9B,MAAM,cAAc,MAAM,KAAK,EAAE,QAAQ,YAAY,IAAI,GAAG,MAC1D,YAAY,KAAK,WAAW,YAAY,EAAE,IAAI,EAChD;CAEA,MAAM,SAAS,MAAM,KAAK,EAAE,QAAQ,YAAY,IAAI,GAAG,MAAM,UAAU,YAAY,EAAE,CAAC;CAYtF,OAAO;EAAC,KAVgB,YAAY,KAAK,KAAK,EAAE;EAU5B,KATK,OAAO,KAAK,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;EASzC,GARf,SAAS,KAAK,QAAQ;GACtC,MAAM,QAAQ,YAAY,GAAG;GAI7B,OAAO,KAHO,MAAM,KAAK,EAAE,QAAQ,YAAY,IAAI,GAAG,MACpD,MAAM,KAAK,WAAW,MAAM,EAAE,IAAI,EAEpB,CAAC,CAAC,KAAK,KAAK,EAAE;EAChC,CAE4C;CAAC,CAAC,CAAC,KAAK,IAAI;AAC1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Markdown/components/MarkdownTable/index.tsx"],"sourcesContent":["'use client';\n\nimport { createStyles } from 'antd-style';\nimport { memo, useCallback, useRef } from 'react';\n\nimport CopyButton from '@/CopyButton';\n\nimport { hastTableToMarkdown } from './hastTableToMarkdown';\n\nconst useStyles = createStyles(({ css, token }) => ({\n copyButton: css`\n position: absolute;\n z-index: 1;\n\n /* Vertical center of the header row = top padding (0.75em) + half of\n the text line-box (line-height * 0.5em). Pulling the button up by\n 50% of its own height with transform parks it on that exact line. */\n inset-block-start: calc(0.75em + (var(--lobe-markdown-line-height) * 0.5em));\n inset-inline-end: 0.5em;\n transform: translateY(-50%);\n\n opacity: 0;\n background: ${token.colorBgContainer};\n box-shadow: 0 0 0 1px ${token.colorBorderSecondary};\n\n transition: opacity ${token.motionDurationMid} ${token.motionEaseInOut};\n `,\n wrapper: css`\n position: relative;\n\n display: block;\n\n width: max-content;\n max-width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n\n &:hover .table-copy-button,\n &:focus-within .table-copy-button {\n opacity: 1;\n }\n\n /* Hand spacing to the wrapper so the absolutely-positioned copy\n button anchors against the visible table edge instead of empty\n margin space. */\n > table {\n margin-block: 0;\n }\n\n /* Reserve room for the copy button so right-aligned header text\n doesn't slide under it. */\n > table thead th:last-child {\n padding-inline-end: calc(1em + 32px);\n }\n `,\n}));\n\ninterface MarkdownTableProps {\n children?: React.ReactNode;\n node?: any;\n}\n\nconst MarkdownTable = memo<MarkdownTableProps>(({ node, children, ...rest }) => {\n const { styles, cx } = useStyles();\n const nodeRef = useRef(node);\n nodeRef.current = node;\n\n const getMarkdown = useCallback(() => hastTableToMarkdown(nodeRef.current), []);\n\n return (\n <div className={styles.wrapper}>\n <CopyButton\n className={cx(styles.copyButton, 'table-copy-button')}\n content={getMarkdown}\n glass={false}\n size={{ blockSize: 24, size: 14 }}\n title=\"Copy table\"\n variant=\"filled\"\n />\n <table {...rest}>{children}</table>\n </div>\n );\n});\n\nMarkdownTable.displayName = 'MarkdownTable';\n\nexport default MarkdownTable;\n"],"mappings":";;;;;;;AASA,MAAM,YAAY,cAAc,EAAE,KAAK,aAAa;CAClD,YAAY,GAAG;;;;;;;;;;;;kBAYC,MAAM,iBAAiB;4BACb,MAAM,qBAAqB;;0BAE7B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB;;CAEzE,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,EAAE;AAOH,MAAM,gBAAgB,MAA0B,EAAE,MAAM,UAAU,GAAG,WAAW;CAC9E,MAAM,EAAE,QAAQ,OAAO,WAAW;CAClC,MAAM,UAAU,OAAO,KAAK;AAC5B,SAAQ,UAAU;CAElB,MAAM,cAAc,kBAAkB,oBAAoB,QAAQ,QAAQ,EAAE,EAAE,CAAC;AAE/E,QACE,qBAAC,OAAD;EAAK,WAAW,OAAO;YAAvB,CACE,oBAAC,YAAD;GACE,WAAW,GAAG,OAAO,YAAY,oBAAoB;GACrD,SAAS;GACT,OAAO;GACP,MAAM;IAAE,WAAW;IAAI,MAAM;IAAI;GACjC,OAAM;GACN,SAAQ;GACR,CAAA,EACF,oBAAC,SAAD;GAAO,GAAI;GAAO;GAAiB,CAAA,CAC/B;;EAER;AAEF,cAAc,cAAc"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Markdown/components/MarkdownTable/index.tsx"],"sourcesContent":["'use client';\n\nimport { createStyles } from 'antd-style';\nimport { memo, useCallback, useRef } from 'react';\n\nimport CopyButton from '@/CopyButton';\n\nimport { hastTableToMarkdown } from './hastTableToMarkdown';\n\nconst useStyles = createStyles(({ css, token }) => ({\n copyButton: css`\n position: absolute;\n z-index: 1;\n\n /* Vertical center of the header row = top padding (0.75em) + half of\n the text line-box (line-height * 0.5em). Pulling the button up by\n 50% of its own height with transform parks it on that exact line. */\n inset-block-start: calc(0.75em + (var(--lobe-markdown-line-height) * 0.5em));\n inset-inline-end: 0.5em;\n transform: translateY(-50%);\n\n opacity: 0;\n background: ${token.colorBgContainer};\n box-shadow: 0 0 0 1px ${token.colorBorderSecondary};\n\n transition: opacity ${token.motionDurationMid} ${token.motionEaseInOut};\n `,\n wrapper: css`\n position: relative;\n\n display: block;\n\n width: max-content;\n max-width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n\n &:hover .table-copy-button,\n &:focus-within .table-copy-button {\n opacity: 1;\n }\n\n /* Hand spacing to the wrapper so the absolutely-positioned copy\n button anchors against the visible table edge instead of empty\n margin space. */\n > table {\n margin-block: 0;\n }\n\n /* Reserve room for the copy button so right-aligned header text\n doesn't slide under it. */\n > table thead th:last-child {\n padding-inline-end: calc(1em + 32px);\n }\n `,\n}));\n\ninterface MarkdownTableProps {\n children?: React.ReactNode;\n node?: any;\n}\n\nconst MarkdownTable = memo<MarkdownTableProps>(({ node, children, ...rest }) => {\n const { styles, cx } = useStyles();\n const nodeRef = useRef(node);\n nodeRef.current = node;\n\n const getMarkdown = useCallback(() => hastTableToMarkdown(nodeRef.current), []);\n\n return (\n <div className={styles.wrapper}>\n <CopyButton\n className={cx(styles.copyButton, 'table-copy-button')}\n content={getMarkdown}\n glass={false}\n size={{ blockSize: 24, size: 14 }}\n title=\"Copy table\"\n variant=\"filled\"\n />\n <table {...rest}>{children}</table>\n </div>\n );\n});\n\nMarkdownTable.displayName = 'MarkdownTable';\n\nexport default MarkdownTable;\n"],"mappings":";;;;;;;AASA,MAAM,YAAY,cAAc,EAAE,KAAK,aAAa;CAClD,YAAY,GAAG;;;;;;;;;;;;kBAYC,MAAM,iBAAiB;4BACb,MAAM,qBAAqB;;0BAE7B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB;;CAEzE,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2Bd,EAAE;AAOF,MAAM,gBAAgB,MAA0B,EAAE,MAAM,UAAU,GAAG,WAAW;CAC9E,MAAM,EAAE,QAAQ,OAAO,UAAU;CACjC,MAAM,UAAU,OAAO,IAAI;CAC3B,QAAQ,UAAU;CAElB,MAAM,cAAc,kBAAkB,oBAAoB,QAAQ,OAAO,GAAG,CAAC,CAAC;CAE9E,OACE,qBAAC,OAAD;EAAK,WAAW,OAAO;YAAvB,CACE,oBAAC,YAAD;GACE,WAAW,GAAG,OAAO,YAAY,mBAAmB;GACpD,SAAS;GACT,OAAO;GACP,MAAM;IAAE,WAAW;IAAI,MAAM;GAAG;GAChC,OAAM;GACN,SAAQ;EACT,CAAA,GACD,oBAAC,SAAD;GAAO,GAAI;GAAO;EAAgB,CAAA,CAC/B;;AAET,CAAC;AAED,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResultCard.mjs","names":["Flexbox"],"sources":["../../../../src/Markdown/components/SearchResultCards/SearchResultCard.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type Ref, useMemo } from 'react';\n\nimport A from '@/A';\nimport Block from '@/Block';\nimport { Flexbox } from '@/Flex';\nimport Img from '@/Img';\nimport Text from '@/Text';\nimport { type AProps } from '@/types';\n\nimport { styles } from './style';\n\nexport interface SearchResultCardProps extends AProps {\n alt?: string;\n ref?: Ref<HTMLAnchorElement>;\n title?: string;\n url: string;\n}\n\nconst SearchResultCard = memo<SearchResultCardProps>(({ ref, url, title, alt, ...rest }) => {\n const [displayTitle, domain, host] = useMemo(() => {\n try {\n const urlObj = new URL(url);\n const domain = urlObj.hostname.replace('www.', '');\n const hostForUrl = urlObj.host;\n\n let displayTitle = title;\n if (title === url) {\n displayTitle = hostForUrl + urlObj.pathname;\n }\n\n return [displayTitle, domain, hostForUrl];\n } catch {\n return [title, url, url];\n }\n }, [url, title]);\n\n return (\n <A href={url} ref={ref} rel=\"noreferrer\" target={'_blank'} {...rest}>\n <Block\n clickable\n className={styles.container}\n gap={2}\n justify={'space-between'}\n key={url}\n paddingBlock={6}\n paddingInline={8}\n variant={'outlined'}\n >\n <Text ellipsis={{ rows: 2 }}>{displayTitle}</Text>\n <Flexbox horizontal align={'center'} gap={4}>\n <Img\n alt={alt || title || url}\n height={14}\n src={`https://icons.duckduckgo.com/ip3/${host}.ico`}\n width={14}\n />\n <Text ellipsis className={styles.url} type={'secondary'}>\n {domain}\n </Text>\n </Flexbox>\n </Block>\n </A>\n );\n});\n\nSearchResultCard.displayName = 'SearchResultCard';\n\nexport default SearchResultCard;\n"],"mappings":";;;;;;;;;;AAoBA,MAAM,mBAAmB,MAA6B,EAAE,KAAK,KAAK,OAAO,KAAK,GAAG,WAAW;CAC1F,MAAM,CAAC,cAAc,QAAQ,QAAQ,cAAc;AACjD,MAAI;GACF,MAAM,SAAS,IAAI,IAAI,IAAI;GAC3B,MAAM,SAAS,OAAO,SAAS,QAAQ,QAAQ,GAAG;GAClD,MAAM,aAAa,OAAO;GAE1B,IAAI,eAAe;AACnB,OAAI,UAAU,IACZ,gBAAe,aAAa,OAAO;AAGrC,UAAO;IAAC;IAAc;IAAQ;IAAW;UACnC;AACN,UAAO;IAAC;IAAO;IAAK;IAAI;;IAEzB,CAAC,KAAK,MAAM,CAAC;AAEhB,QACE,oBAAC,GAAD;EAAG,MAAM;EAAU;EAAK,KAAI;EAAa,QAAQ;EAAU,GAAI;YAC7D,qBAAC,OAAD;GACE,WAAA;GACA,WAAW,OAAO;GAClB,KAAK;GACL,SAAS;GAET,cAAc;GACd,eAAe;GACf,SAAS;aARX,CAUE,oBAAC,MAAD;IAAM,UAAU,EAAE,MAAM,GAAG;cAAG;IAAoB,CAAA,EAClD,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;cAA1C,CACE,oBAAC,KAAD;KACE,KAAK,OAAO,SAAS;KACrB,QAAQ;KACR,KAAK,oCAAoC,KAAK;KAC9C,OAAO;KACP,CAAA,EACF,oBAAC,MAAD;KAAM,UAAA;KAAS,WAAW,OAAO;KAAK,MAAM;eACzC;KACI,CAAA,CACC;MACJ;KAjBD,IAiBC;EACN,CAAA;EAEN;AAEF,iBAAiB,cAAc"}
1
+ {"version":3,"file":"SearchResultCard.mjs","names":["Flexbox"],"sources":["../../../../src/Markdown/components/SearchResultCards/SearchResultCard.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type Ref, useMemo } from 'react';\n\nimport A from '@/A';\nimport Block from '@/Block';\nimport { Flexbox } from '@/Flex';\nimport Img from '@/Img';\nimport Text from '@/Text';\nimport { type AProps } from '@/types';\n\nimport { styles } from './style';\n\nexport interface SearchResultCardProps extends AProps {\n alt?: string;\n ref?: Ref<HTMLAnchorElement>;\n title?: string;\n url: string;\n}\n\nconst SearchResultCard = memo<SearchResultCardProps>(({ ref, url, title, alt, ...rest }) => {\n const [displayTitle, domain, host] = useMemo(() => {\n try {\n const urlObj = new URL(url);\n const domain = urlObj.hostname.replace('www.', '');\n const hostForUrl = urlObj.host;\n\n let displayTitle = title;\n if (title === url) {\n displayTitle = hostForUrl + urlObj.pathname;\n }\n\n return [displayTitle, domain, hostForUrl];\n } catch {\n return [title, url, url];\n }\n }, [url, title]);\n\n return (\n <A href={url} ref={ref} rel=\"noreferrer\" target={'_blank'} {...rest}>\n <Block\n clickable\n className={styles.container}\n gap={2}\n justify={'space-between'}\n key={url}\n paddingBlock={6}\n paddingInline={8}\n variant={'outlined'}\n >\n <Text ellipsis={{ rows: 2 }}>{displayTitle}</Text>\n <Flexbox horizontal align={'center'} gap={4}>\n <Img\n alt={alt || title || url}\n height={14}\n src={`https://icons.duckduckgo.com/ip3/${host}.ico`}\n width={14}\n />\n <Text ellipsis className={styles.url} type={'secondary'}>\n {domain}\n </Text>\n </Flexbox>\n </Block>\n </A>\n );\n});\n\nSearchResultCard.displayName = 'SearchResultCard';\n\nexport default SearchResultCard;\n"],"mappings":";;;;;;;;;;AAoBA,MAAM,mBAAmB,MAA6B,EAAE,KAAK,KAAK,OAAO,KAAK,GAAG,WAAW;CAC1F,MAAM,CAAC,cAAc,QAAQ,QAAQ,cAAc;EACjD,IAAI;GACF,MAAM,SAAS,IAAI,IAAI,GAAG;GAC1B,MAAM,SAAS,OAAO,SAAS,QAAQ,QAAQ,EAAE;GACjD,MAAM,aAAa,OAAO;GAE1B,IAAI,eAAe;GACnB,IAAI,UAAU,KACZ,eAAe,aAAa,OAAO;GAGrC,OAAO;IAAC;IAAc;IAAQ;GAAU;EAC1C,QAAQ;GACN,OAAO;IAAC;IAAO;IAAK;GAAG;EACzB;CACF,GAAG,CAAC,KAAK,KAAK,CAAC;CAEf,OACE,oBAAC,GAAD;EAAG,MAAM;EAAU;EAAK,KAAI;EAAa,QAAQ;EAAU,GAAI;YAC7D,qBAAC,OAAD;GACE,WAAA;GACA,WAAW,OAAO;GAClB,KAAK;GACL,SAAS;GAET,cAAc;GACd,eAAe;GACf,SAAS;aARX,CAUE,oBAAC,MAAD;IAAM,UAAU,EAAE,MAAM,EAAE;cAAI;GAAmB,CAAA,GACjD,qBAACA,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,KAAK;cAA1C,CACE,oBAAC,KAAD;KACE,KAAK,OAAO,SAAS;KACrB,QAAQ;KACR,KAAK,oCAAoC,KAAK;KAC9C,OAAO;IACR,CAAA,GACD,oBAAC,MAAD;KAAM,UAAA;KAAS,WAAW,OAAO;KAAK,MAAM;eACzC;IACG,CAAA,CACC;KACJ;KAjBA,GAiBA;CACN,CAAA;AAEP,CAAC;AAED,iBAAiB,cAAc"}
@@ -1,7 +1,6 @@
1
1
  import { FlexboxProps } from "../../../Flex/type.mjs";
2
- import * as _$react from "react";
2
+ import "../../../Flex/index.mjs";
3
3
  import { Ref } from "react";
4
-
5
4
  //#region src/Markdown/components/SearchResultCards/index.d.ts
6
5
  interface SearchResultItem {
7
6
  alt?: string;
@@ -13,7 +12,7 @@ interface SearchResultCardsProps extends FlexboxProps {
13
12
  dataSource: string[] | SearchResultItem[];
14
13
  ref?: Ref<HTMLDivElement>;
15
14
  }
16
- declare const SearchResultCards: _$react.NamedExoticComponent<SearchResultCardsProps>;
15
+ declare const SearchResultCards: import("react").NamedExoticComponent<SearchResultCardsProps>;
17
16
  //#endregion
18
- export { SearchResultCards, SearchResultCardsProps };
17
+ export { SearchResultCardsProps, SearchResultItem, SearchResultCards as default };
19
18
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Markdown/components/SearchResultCards/index.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type Ref } from 'react';\n\nimport { type FlexboxProps } from '@/Flex';\nimport ScrollShadow from '@/ScrollShadow';\n\nimport SearchResultCard from './SearchResultCard';\n\nexport interface SearchResultItem {\n alt?: string;\n summary?: string;\n title?: string;\n url: string;\n}\n\nexport interface SearchResultCardsProps extends FlexboxProps {\n dataSource: string[] | SearchResultItem[];\n ref?: Ref<HTMLDivElement>;\n}\n\nconst SearchResultCards = memo<SearchResultCardsProps>(({ ref, dataSource, style, ...rest }) => {\n return (\n <ScrollShadow\n hideScrollBar\n horizontal\n gap={12}\n orientation={'horizontal'}\n ref={ref}\n size={10}\n style={{ minHeight: 80, overflowX: 'scroll', paddingInlineEnd: 24, width: '100%', ...style }}\n {...rest}\n >\n {dataSource.map((link) =>\n typeof link === 'string' ? (\n <SearchResultCard key={link} url={link} />\n ) : (\n <SearchResultCard key={link.url} {...link} />\n ),\n )}\n </ScrollShadow>\n );\n});\n\nSearchResultCards.displayName = 'SearchResultCards';\n\nexport default SearchResultCards;\n"],"mappings":";;;;;;AAqBA,MAAM,oBAAoB,MAA8B,EAAE,KAAK,YAAY,OAAO,GAAG,WAAW;AAC9F,QACE,oBAAC,cAAD;EACE,eAAA;EACA,YAAA;EACA,KAAK;EACL,aAAa;EACR;EACL,MAAM;EACN,OAAO;GAAE,WAAW;GAAI,WAAW;GAAU,kBAAkB;GAAI,OAAO;GAAQ,GAAG;GAAO;EAC5F,GAAI;YAEH,WAAW,KAAK,SACf,OAAO,SAAS,WACd,oBAAC,kBAAD,EAA6B,KAAK,MAAQ,EAAnB,KAAmB,GAE1C,oBAAC,kBAAD,EAAiC,GAAI,MAAQ,EAAtB,KAAK,IAAiB,CAEhD;EACY,CAAA;EAEjB;AAEF,kBAAkB,cAAc"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Markdown/components/SearchResultCards/index.tsx"],"sourcesContent":["'use client';\n\nimport { memo, type Ref } from 'react';\n\nimport { type FlexboxProps } from '@/Flex';\nimport ScrollShadow from '@/ScrollShadow';\n\nimport SearchResultCard from './SearchResultCard';\n\nexport interface SearchResultItem {\n alt?: string;\n summary?: string;\n title?: string;\n url: string;\n}\n\nexport interface SearchResultCardsProps extends FlexboxProps {\n dataSource: string[] | SearchResultItem[];\n ref?: Ref<HTMLDivElement>;\n}\n\nconst SearchResultCards = memo<SearchResultCardsProps>(({ ref, dataSource, style, ...rest }) => {\n return (\n <ScrollShadow\n hideScrollBar\n horizontal\n gap={12}\n orientation={'horizontal'}\n ref={ref}\n size={10}\n style={{ minHeight: 80, overflowX: 'scroll', paddingInlineEnd: 24, width: '100%', ...style }}\n {...rest}\n >\n {dataSource.map((link) =>\n typeof link === 'string' ? (\n <SearchResultCard key={link} url={link} />\n ) : (\n <SearchResultCard key={link.url} {...link} />\n ),\n )}\n </ScrollShadow>\n );\n});\n\nSearchResultCards.displayName = 'SearchResultCards';\n\nexport default SearchResultCards;\n"],"mappings":";;;;;;AAqBA,MAAM,oBAAoB,MAA8B,EAAE,KAAK,YAAY,OAAO,GAAG,WAAW;CAC9F,OACE,oBAAC,cAAD;EACE,eAAA;EACA,YAAA;EACA,KAAK;EACL,aAAa;EACR;EACL,MAAM;EACN,OAAO;GAAE,WAAW;GAAI,WAAW;GAAU,kBAAkB;GAAI,OAAO;GAAQ,GAAG;EAAM;EAC3F,GAAI;YAEH,WAAW,KAAK,SACf,OAAO,SAAS,WACd,oBAAC,kBAAD,EAA6B,KAAK,KAAO,GAAlB,IAAkB,IAEzC,oBAAC,kBAAD,EAAiC,GAAI,KAAO,GAArB,KAAK,GAAgB,CAEhD;CACY,CAAA;AAElB,CAAC;AAED,kBAAkB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":[],"sources":["../../../../src/Markdown/components/SearchResultCards/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css }) => ({\n container: css`\n min-width: 160px;\n max-width: 160px;\n height: 100%;\n\n font-size: 12px;\n color: initial;\n `,\n url: css`\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n\n text-overflow: ellipsis;\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,WAAW;CACrD,WAAW,GAAG;;;;;;;;CAQd,KAAK,GAAG;;;;;;;;CAQT,EAAE"}
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../../src/Markdown/components/SearchResultCards/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nexport const styles = createStaticStyles(({ css }) => ({\n container: css`\n min-width: 160px;\n max-width: 160px;\n height: 100%;\n\n font-size: 12px;\n color: initial;\n `,\n url: css`\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n\n text-overflow: ellipsis;\n `,\n}));\n"],"mappings":";;AAEA,MAAa,SAAS,oBAAoB,EAAE,WAAW;CACrD,WAAW,GAAG;;;;;;;;CAQd,KAAK,GAAG;;;;;;;;AAQV,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedAnimated.mjs","names":[],"sources":["../../../src/Markdown/components/useDelayedAnimated.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport const useDelayedAnimated = (animated?: boolean) => {\n const [delayedAnimated, setDelayedAnimated] = useState(animated);\n\n // Watch for changes in animated prop\n useEffect(() => {\n if (animated === undefined) return;\n // If animated changes from true to false, delay the update by 1 second\n if (animated === false && delayedAnimated === true) {\n const timer = setTimeout(() => {\n setDelayedAnimated(false);\n }, 1000);\n\n return () => clearTimeout(timer);\n } else {\n // For any other changes, update immediately\n setDelayedAnimated(animated);\n }\n }, [animated, delayedAnimated]);\n\n return delayedAnimated;\n};\n"],"mappings":";;AAEA,MAAa,sBAAsB,aAAuB;CACxD,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,SAAS;AAGhE,iBAAgB;AACd,MAAI,aAAa,KAAA,EAAW;AAE5B,MAAI,aAAa,SAAS,oBAAoB,MAAM;GAClD,MAAM,QAAQ,iBAAiB;AAC7B,uBAAmB,MAAM;MACxB,IAAK;AAER,gBAAa,aAAa,MAAM;QAGhC,oBAAmB,SAAS;IAE7B,CAAC,UAAU,gBAAgB,CAAC;AAE/B,QAAO"}
1
+ {"version":3,"file":"useDelayedAnimated.mjs","names":[],"sources":["../../../src/Markdown/components/useDelayedAnimated.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport const useDelayedAnimated = (animated?: boolean) => {\n const [delayedAnimated, setDelayedAnimated] = useState(animated);\n\n // Watch for changes in animated prop\n useEffect(() => {\n if (animated === undefined) return;\n // If animated changes from true to false, delay the update by 1 second\n if (animated === false && delayedAnimated === true) {\n const timer = setTimeout(() => {\n setDelayedAnimated(false);\n }, 1000);\n\n return () => clearTimeout(timer);\n } else {\n // For any other changes, update immediately\n setDelayedAnimated(animated);\n }\n }, [animated, delayedAnimated]);\n\n return delayedAnimated;\n};\n"],"mappings":";;AAEA,MAAa,sBAAsB,aAAuB;CACxD,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,QAAQ;CAG/D,gBAAgB;EACd,IAAI,aAAa,KAAA,GAAW;EAE5B,IAAI,aAAa,SAAS,oBAAoB,MAAM;GAClD,MAAM,QAAQ,iBAAiB;IAC7B,mBAAmB,KAAK;GAC1B,GAAG,GAAI;GAEP,aAAa,aAAa,KAAK;EACjC,OAEE,mBAAmB,QAAQ;CAE/B,GAAG,CAAC,UAAU,eAAe,CAAC;CAE9B,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
1
  import { MarkdownProps, StreamAnimationGranularity, StreamSmoothingPreset, SyntaxMarkdownProps, TypographyProps } from "./type.mjs";
2
- import { Markdown } from "./Markdown.mjs";
3
- import { Typography } from "./Typography.mjs";
4
- export { MarkdownProps, StreamAnimationGranularity, StreamSmoothingPreset, SyntaxMarkdownProps, Typography, TypographyProps, Markdown as default };
2
+ import Markdown from "./Markdown.mjs";
3
+ import Typography from "./Typography.mjs";
4
+ export { type MarkdownProps, type StreamAnimationGranularity, type StreamSmoothingPreset, type SyntaxMarkdownProps, Typography, type TypographyProps, Markdown as default };
@@ -350,6 +350,16 @@ const styles = createStaticStyles(({ cssVar, css }) => {
350
350
  position: relative;
351
351
  inset-block-start: -0.25em;
352
352
 
353
+ font-size: 0.75em;
354
+ line-height: var(--lobe-markdown-line-height);
355
+ vertical-align: baseline;
356
+ }
357
+ `;
358
+ const sub = css`
359
+ sub {
360
+ position: relative;
361
+ inset-block-end: -0.25em;
362
+
353
363
  font-size: 0.75em;
354
364
  line-height: var(--lobe-markdown-line-height);
355
365
  vertical-align: baseline;
@@ -376,16 +386,7 @@ const styles = createStaticStyles(({ cssVar, css }) => {
376
386
  table,
377
387
  video,
378
388
  footnote,
379
- css`
380
- sub {
381
- position: relative;
382
- inset-block-end: -0.25em;
383
-
384
- font-size: 0.75em;
385
- line-height: var(--lobe-markdown-line-height);
386
- vertical-align: baseline;
387
- }
388
- `,
389
+ sub,
389
390
  sup
390
391
  ]}
391
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.style.mjs","names":[],"sources":["../../src/Markdown/markdown.style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nconst IGNORE_CLASSNAME = '.ignore-markdown-style';\n\nexport const styles = createStaticStyles(({ cssVar, css }) => {\n const __root = css`\n --lobe-markdown-font-size: 16px;\n --lobe-markdown-header-multiple: 1;\n --lobe-markdown-margin-multiple: 2;\n --lobe-markdown-line-height: 1.8;\n --lobe-markdown-border-radius: ${cssVar.borderRadiusLG};\n --lobe-markdown-border-color: ${cssVar.colorFillQuaternary};\n\n position: relative;\n\n width: 100%;\n max-width: 100%;\n padding-inline: 1px;\n\n font-size: var(--lobe-markdown-font-size);\n line-height: var(--lobe-markdown-line-height);\n overflow-wrap: break-word;\n `;\n const a = css`\n a {\n color: ${cssVar.colorInfoText};\n\n &:hover {\n color: ${cssVar.colorInfoHover};\n }\n }\n `;\n\n const blockquote = css`\n blockquote {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n margin-inline: 0;\n padding-block: 0;\n padding-inline: 1em;\n border-inline-start: solid 4px ${cssVar.colorBorder};\n\n color: ${cssVar.colorTextSecondary};\n }\n `;\n\n const code = css`\n code {\n &:not(:has(span)) {\n display: inline;\n\n margin-inline: 0.25em;\n padding-block: 0.2em;\n padding-inline: 0.4em;\n border: 1px solid var(--lobe-markdown-border-color);\n border-radius: 0.25em;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 0.875em;\n line-height: 1;\n overflow-wrap: break-word;\n white-space: break-spaces;\n\n background: ${cssVar.colorFillSecondary};\n }\n }\n `;\n\n const del = css`\n del {\n color: ${cssVar.colorTextDescription};\n text-decoration: line-through;\n }\n `;\n\n const details = css`\n details {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n padding-block: 0.75em;\n padding-inline: 1em;\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n\n background: ${cssVar.colorFillTertiary};\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n\n summary {\n cursor: pointer;\n display: flex;\n align-items: center;\n list-style: none;\n\n &::before {\n content: '';\n\n position: absolute;\n inset-inline-end: 1.25em;\n transform: rotateZ(-45deg);\n\n display: block;\n\n width: 0.4em;\n height: 0.4em;\n border-block-end: 1.5px solid ${cssVar.colorTextSecondary};\n border-inline-end: 1.5px solid ${cssVar.colorTextSecondary};\n\n font-family: ${cssVar.fontFamily};\n\n transition: transform 200ms ${cssVar.motionEaseOut};\n }\n }\n\n &[open] {\n summary {\n padding-block-end: 0.75em;\n border-block-end: 1px dashed ${cssVar.colorBorder};\n\n &::before {\n transform: rotateZ(45deg);\n }\n }\n }\n }\n `;\n const header = css`\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-block: max(\n calc(var(--lobe-markdown-header-multiple) * var(--lobe-markdown-margin-multiple) * 0.4em),\n var(--lobe-markdown-font-size)\n );\n font-weight: bold;\n line-height: 1.25;\n }\n\n h1 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 1.5 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h2 {\n font-size: calc(var(--lobe-markdown-font-size) * (1 + var(--lobe-markdown-header-multiple)));\n }\n\n h3 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 0.5 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h4 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 0.25 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h5,\n h6 {\n font-size: calc(var(--lobe-markdown-font-size) * 1);\n }\n `;\n const hr = css`\n hr {\n width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 1.5em);\n border-color: ${cssVar.colorBorder};\n border-style: dashed;\n border-width: 1px;\n border-block-start: none;\n border-inline-start: none;\n border-inline-end: none;\n }\n `;\n const img = css`\n img {\n max-width: 100%;\n }\n\n > img,\n > p > img {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n }\n `;\n\n const list = css`\n li {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.33em);\n\n p:first-child {\n display: inline;\n }\n }\n\n ul,\n ol {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n margin-inline-start: 1em;\n padding-inline-start: 0;\n list-style-position: outside;\n\n > ul,\n > ol {\n margin-block: 0;\n }\n\n > li {\n margin-inline-start: 1em;\n }\n }\n\n ol {\n list-style: auto;\n }\n\n ul {\n list-style-type: none;\n\n > li {\n &::before {\n content: '-';\n\n position: absolute;\n\n display: inline-block;\n\n margin-inline: -1em 0.5em;\n\n opacity: 0.5;\n }\n }\n }\n\n .task-list-item {\n &::before {\n display: none !important;\n }\n\n input[type='checkbox'] {\n margin-block: 0 0.25em;\n margin-inline: -1.6em 0.2em;\n vertical-align: middle;\n }\n\n input[type='checkbox']:dir(rtl) {\n margin: 0 -1.6em 0.25em 0.2em;\n }\n }\n `;\n const p = css`\n p {\n margin-block: 4px;\n line-height: var(--lobe-markdown-line-height);\n letter-spacing: 0.02em;\n\n &:not(:first-child) {\n margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n }\n\n &:not(:last-child) {\n margin-block-end: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n }\n }\n `;\n const pre = css`\n pre {\n font-size: calc(var(--lobe-markdown-font-size) * 0.85);\n }\n `;\n const strong = css`\n strong {\n font-weight: 600;\n }\n `;\n const svg = css`\n svg {\n line-height: 1;\n }\n `;\n const table = css`\n table {\n unicode-bidi: isolate;\n overflow: auto hidden;\n display: block;\n border-spacing: 0;\n border-collapse: collapse;\n\n box-sizing: border-box;\n width: max-content;\n max-width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n\n text-align: start;\n text-indent: initial;\n text-wrap: pretty;\n word-break: auto-phrase;\n overflow-wrap: break-word;\n\n box-shadow: 0 0 0 1px ${cssVar.colorBorderSecondary};\n\n code {\n overflow-wrap: break-word;\n }\n\n thead {\n background: ${cssVar.colorFillQuaternary};\n }\n\n tr {\n box-shadow: 0 1px 0 ${cssVar.colorBorderSecondary};\n }\n\n th,\n td {\n min-width: 120px;\n padding-block: 0.75em;\n padding-inline: 1em;\n text-align: start;\n }\n }\n `;\n const video = css`\n > video,\n > p > video {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n }\n\n video {\n max-width: 100%;\n }\n `;\n\n const footnote = css`\n .footnotes {\n margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 1em);\n font-size: smaller;\n color: #8b949e;\n\n #footnote-label {\n display: none;\n }\n\n > ol {\n margin: 0 !important;\n }\n }\n `;\n\n const sup = css`\n sup {\n position: relative;\n inset-block-start: -0.25em;\n\n font-size: 0.75em;\n line-height: var(--lobe-markdown-line-height);\n vertical-align: baseline;\n }\n `;\n\n const sub = css`\n sub {\n position: relative;\n inset-block-end: -0.25em;\n\n font-size: 0.75em;\n line-height: var(--lobe-markdown-line-height);\n vertical-align: baseline;\n }\n `;\n\n return {\n root: css`\n :not(:has(${IGNORE_CLASSNAME})),\n .markdown {\n ${[\n __root,\n a,\n blockquote,\n code,\n del,\n details,\n header,\n hr,\n img,\n list,\n p,\n pre,\n strong,\n svg,\n table,\n video,\n footnote,\n sub,\n sup,\n ]}\n }\n `,\n };\n});\n"],"mappings":";;AAEA,MAAM,mBAAmB;AAEzB,MAAa,SAAS,oBAAoB,EAAE,QAAQ,UAAU;CAC5D,MAAM,SAAS,GAAG;;;;;qCAKiB,OAAO,eAAe;oCACvB,OAAO,oBAAoB;;;;;;;;;;;;CAY7D,MAAM,IAAI,GAAG;;eAEA,OAAO,cAAc;;;iBAGnB,OAAO,eAAe;;;;CAKrC,MAAM,aAAa,GAAG;;;;;;uCAMe,OAAO,YAAY;;eAE3C,OAAO,mBAAmB;;;CAIvC,MAAM,OAAO,GAAG;;;;;;;;;;;uBAWK,OAAO,eAAe;;;;;;sBAMvB,OAAO,mBAAmB;;;;CAK9C,MAAM,MAAM,GAAG;;eAEF,OAAO,qBAAqB;;;;CAKzC,MAAM,UAAU,GAAG;;;;;;;oBAOD,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;0CAoBH,OAAO,mBAAmB;2CACzB,OAAO,mBAAmB;;yBAE5C,OAAO,WAAW;;wCAEH,OAAO,cAAc;;;;;;;yCAOpB,OAAO,YAAY;;;;;;;;;CAS1D,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ClB,MAAM,KAAK,GAAG;;;;sBAIM,OAAO,YAAY;;;;;;;;CAQvC,MAAM,MAAM,GAAG;;;;;;;;;;;;CAaf,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEhB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;CAeb,MAAM,MAAM,GAAG;;;;;CAKf,MAAM,SAAS,GAAG;;;;;CAKlB,MAAM,MAAM,GAAG;;;;;CAKf,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;8BAoBW,OAAO,qBAAqB;;;;;;;sBAOpC,OAAO,oBAAoB;;;;8BAInB,OAAO,qBAAqB;;;;;;;;;;;;CAYxD,MAAM,QAAQ,GAAG;;;;;;;;;;;;CAajB,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;CAgBpB,MAAM,MAAM,GAAG;;;;;;;;;;AAsBf,QAAO,EACL,MAAM,GAAG;kBACK,iBAAiB;;UAEzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAjCO;;;;;;;;;;EAkCP;EACD,CAAC;;OAGP;EACD"}
1
+ {"version":3,"file":"markdown.style.mjs","names":[],"sources":["../../src/Markdown/markdown.style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\n\nconst IGNORE_CLASSNAME = '.ignore-markdown-style';\n\nexport const styles = createStaticStyles(({ cssVar, css }) => {\n const __root = css`\n --lobe-markdown-font-size: 16px;\n --lobe-markdown-header-multiple: 1;\n --lobe-markdown-margin-multiple: 2;\n --lobe-markdown-line-height: 1.8;\n --lobe-markdown-border-radius: ${cssVar.borderRadiusLG};\n --lobe-markdown-border-color: ${cssVar.colorFillQuaternary};\n\n position: relative;\n\n width: 100%;\n max-width: 100%;\n padding-inline: 1px;\n\n font-size: var(--lobe-markdown-font-size);\n line-height: var(--lobe-markdown-line-height);\n overflow-wrap: break-word;\n `;\n const a = css`\n a {\n color: ${cssVar.colorInfoText};\n\n &:hover {\n color: ${cssVar.colorInfoHover};\n }\n }\n `;\n\n const blockquote = css`\n blockquote {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n margin-inline: 0;\n padding-block: 0;\n padding-inline: 1em;\n border-inline-start: solid 4px ${cssVar.colorBorder};\n\n color: ${cssVar.colorTextSecondary};\n }\n `;\n\n const code = css`\n code {\n &:not(:has(span)) {\n display: inline;\n\n margin-inline: 0.25em;\n padding-block: 0.2em;\n padding-inline: 0.4em;\n border: 1px solid var(--lobe-markdown-border-color);\n border-radius: 0.25em;\n\n font-family: ${cssVar.fontFamilyCode};\n font-size: 0.875em;\n line-height: 1;\n overflow-wrap: break-word;\n white-space: break-spaces;\n\n background: ${cssVar.colorFillSecondary};\n }\n }\n `;\n\n const del = css`\n del {\n color: ${cssVar.colorTextDescription};\n text-decoration: line-through;\n }\n `;\n\n const details = css`\n details {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n padding-block: 0.75em;\n padding-inline: 1em;\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n\n background: ${cssVar.colorFillTertiary};\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n\n summary {\n cursor: pointer;\n display: flex;\n align-items: center;\n list-style: none;\n\n &::before {\n content: '';\n\n position: absolute;\n inset-inline-end: 1.25em;\n transform: rotateZ(-45deg);\n\n display: block;\n\n width: 0.4em;\n height: 0.4em;\n border-block-end: 1.5px solid ${cssVar.colorTextSecondary};\n border-inline-end: 1.5px solid ${cssVar.colorTextSecondary};\n\n font-family: ${cssVar.fontFamily};\n\n transition: transform 200ms ${cssVar.motionEaseOut};\n }\n }\n\n &[open] {\n summary {\n padding-block-end: 0.75em;\n border-block-end: 1px dashed ${cssVar.colorBorder};\n\n &::before {\n transform: rotateZ(45deg);\n }\n }\n }\n }\n `;\n const header = css`\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-block: max(\n calc(var(--lobe-markdown-header-multiple) * var(--lobe-markdown-margin-multiple) * 0.4em),\n var(--lobe-markdown-font-size)\n );\n font-weight: bold;\n line-height: 1.25;\n }\n\n h1 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 1.5 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h2 {\n font-size: calc(var(--lobe-markdown-font-size) * (1 + var(--lobe-markdown-header-multiple)));\n }\n\n h3 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 0.5 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h4 {\n font-size: calc(\n var(--lobe-markdown-font-size) * (1 + 0.25 * var(--lobe-markdown-header-multiple))\n );\n }\n\n h5,\n h6 {\n font-size: calc(var(--lobe-markdown-font-size) * 1);\n }\n `;\n const hr = css`\n hr {\n width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 1.5em);\n border-color: ${cssVar.colorBorder};\n border-style: dashed;\n border-width: 1px;\n border-block-start: none;\n border-inline-start: none;\n border-inline-end: none;\n }\n `;\n const img = css`\n img {\n max-width: 100%;\n }\n\n > img,\n > p > img {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n }\n `;\n\n const list = css`\n li {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.33em);\n\n p:first-child {\n display: inline;\n }\n }\n\n ul,\n ol {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n margin-inline-start: 1em;\n padding-inline-start: 0;\n list-style-position: outside;\n\n > ul,\n > ol {\n margin-block: 0;\n }\n\n > li {\n margin-inline-start: 1em;\n }\n }\n\n ol {\n list-style: auto;\n }\n\n ul {\n list-style-type: none;\n\n > li {\n &::before {\n content: '-';\n\n position: absolute;\n\n display: inline-block;\n\n margin-inline: -1em 0.5em;\n\n opacity: 0.5;\n }\n }\n }\n\n .task-list-item {\n &::before {\n display: none !important;\n }\n\n input[type='checkbox'] {\n margin-block: 0 0.25em;\n margin-inline: -1.6em 0.2em;\n vertical-align: middle;\n }\n\n input[type='checkbox']:dir(rtl) {\n margin: 0 -1.6em 0.25em 0.2em;\n }\n }\n `;\n const p = css`\n p {\n margin-block: 4px;\n line-height: var(--lobe-markdown-line-height);\n letter-spacing: 0.02em;\n\n &:not(:first-child) {\n margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n }\n\n &:not(:last-child) {\n margin-block-end: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n }\n }\n `;\n const pre = css`\n pre {\n font-size: calc(var(--lobe-markdown-font-size) * 0.85);\n }\n `;\n const strong = css`\n strong {\n font-weight: 600;\n }\n `;\n const svg = css`\n svg {\n line-height: 1;\n }\n `;\n const table = css`\n table {\n unicode-bidi: isolate;\n overflow: auto hidden;\n display: block;\n border-spacing: 0;\n border-collapse: collapse;\n\n box-sizing: border-box;\n width: max-content;\n max-width: 100%;\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n\n text-align: start;\n text-indent: initial;\n text-wrap: pretty;\n word-break: auto-phrase;\n overflow-wrap: break-word;\n\n box-shadow: 0 0 0 1px ${cssVar.colorBorderSecondary};\n\n code {\n overflow-wrap: break-word;\n }\n\n thead {\n background: ${cssVar.colorFillQuaternary};\n }\n\n tr {\n box-shadow: 0 1px 0 ${cssVar.colorBorderSecondary};\n }\n\n th,\n td {\n min-width: 120px;\n padding-block: 0.75em;\n padding-inline: 1em;\n text-align: start;\n }\n }\n `;\n const video = css`\n > video,\n > p > video {\n margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);\n border-radius: calc(var(--lobe-markdown-border-radius) * 1px);\n box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);\n }\n\n video {\n max-width: 100%;\n }\n `;\n\n const footnote = css`\n .footnotes {\n margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 1em);\n font-size: smaller;\n color: #8b949e;\n\n #footnote-label {\n display: none;\n }\n\n > ol {\n margin: 0 !important;\n }\n }\n `;\n\n const sup = css`\n sup {\n position: relative;\n inset-block-start: -0.25em;\n\n font-size: 0.75em;\n line-height: var(--lobe-markdown-line-height);\n vertical-align: baseline;\n }\n `;\n\n const sub = css`\n sub {\n position: relative;\n inset-block-end: -0.25em;\n\n font-size: 0.75em;\n line-height: var(--lobe-markdown-line-height);\n vertical-align: baseline;\n }\n `;\n\n return {\n root: css`\n :not(:has(${IGNORE_CLASSNAME})),\n .markdown {\n ${[\n __root,\n a,\n blockquote,\n code,\n del,\n details,\n header,\n hr,\n img,\n list,\n p,\n pre,\n strong,\n svg,\n table,\n video,\n footnote,\n sub,\n sup,\n ]}\n }\n `,\n };\n});\n"],"mappings":";;AAEA,MAAM,mBAAmB;AAEzB,MAAa,SAAS,oBAAoB,EAAE,QAAQ,UAAU;CAC5D,MAAM,SAAS,GAAG;;;;;qCAKiB,OAAO,eAAe;oCACvB,OAAO,oBAAoB;;;;;;;;;;;;CAY7D,MAAM,IAAI,GAAG;;eAEA,OAAO,cAAc;;;iBAGnB,OAAO,eAAe;;;;CAKrC,MAAM,aAAa,GAAG;;;;;;uCAMe,OAAO,YAAY;;eAE3C,OAAO,mBAAmB;;;CAIvC,MAAM,OAAO,GAAG;;;;;;;;;;;uBAWK,OAAO,eAAe;;;;;;sBAMvB,OAAO,mBAAmB;;;;CAK9C,MAAM,MAAM,GAAG;;eAEF,OAAO,qBAAqB;;;;CAKzC,MAAM,UAAU,GAAG;;;;;;;oBAOD,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;0CAoBH,OAAO,mBAAmB;2CACzB,OAAO,mBAAmB;;yBAE5C,OAAO,WAAW;;wCAEH,OAAO,cAAc;;;;;;;yCAOpB,OAAO,YAAY;;;;;;;;;CAS1D,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ClB,MAAM,KAAK,GAAG;;;;sBAIM,OAAO,YAAY;;;;;;;;CAQvC,MAAM,MAAM,GAAG;;;;;;;;;;;;CAaf,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEhB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;CAeb,MAAM,MAAM,GAAG;;;;;CAKf,MAAM,SAAS,GAAG;;;;;CAKlB,MAAM,MAAM,GAAG;;;;;CAKf,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;8BAoBW,OAAO,qBAAqB;;;;;;;sBAOpC,OAAO,oBAAoB;;;;8BAInB,OAAO,qBAAqB;;;;;;;;;;;;CAYxD,MAAM,QAAQ,GAAG;;;;;;;;;;;;CAajB,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;CAgBpB,MAAM,MAAM,GAAG;;;;;;;;;;CAWf,MAAM,MAAM,GAAG;;;;;;;;;;CAWf,OAAO,EACL,MAAM,GAAG;kBACK,iBAAiB;;UAEzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,EAAE;;MAGR;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { visit } from "../../node_modules/unist-util-visit/lib/index.mjs";
1
+ import { visit } from "../../node_modules/.bun/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.mjs";
2
2
  //#region src/Markdown/plugins/rehypeCustomFootnotes.ts
3
3
  const rehypeCustomFootnotes = () => (tree, file) => {
4
4
  const linksData = file.data.footnoteLinks || {};
@@ -1 +1 @@
1
- {"version":3,"file":"rehypeCustomFootnotes.mjs","names":[],"sources":["../../../src/Markdown/plugins/rehypeCustomFootnotes.ts"],"sourcesContent":["import { visit } from 'unist-util-visit';\n\nimport type { FootnoteLink } from './remarkCustomFootnotes';\n\nexport const rehypeCustomFootnotes = () => (tree: any, file: any) => {\n const linksData: Record<string, FootnoteLink> = file.data.footnoteLinks || {};\n\n visit(tree, 'element', (node) => {\n if (node.tagName === 'section' && node.properties.className?.includes('footnotes')) {\n // 转换数据格式为数组(按identifier排序)\n const sortedLinks = Object.entries(linksData)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([id, data]) => ({ id, ...data }));\n // 注入数据属性\n node.properties['data-footnote-links'] = JSON.stringify(sortedLinks);\n }\n\n if (node.tagName === 'sup') {\n const link = node.children.find((n: any) => n.tagName === 'a');\n\n if (link) {\n // a node example\n // {\n // \"href\": \"#user-content-fn-3\",\n // \"id\": \"user-content-fnref-3-2\",\n // \"dataFootnoteRef\": true,\n // }\n const linkRefIndex = link.properties?.id?.replace(/^user-content-fnref-/, '')[0];\n\n if (linkRefIndex !== undefined)\n link.properties['data-link'] = JSON.stringify(linksData[linkRefIndex]);\n }\n }\n });\n};\n"],"mappings":";;AAIA,MAAa,+BAA+B,MAAW,SAAc;CACnE,MAAM,YAA0C,KAAK,KAAK,iBAAiB,EAAE;AAE7E,OAAM,MAAM,YAAY,SAAS;AAC/B,MAAI,KAAK,YAAY,aAAa,KAAK,WAAW,WAAW,SAAS,YAAY,EAAE;GAElF,MAAM,cAAc,OAAO,QAAQ,UAAU,CAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CACtC,KAAK,CAAC,IAAI,WAAW;IAAE;IAAI,GAAG;IAAM,EAAE;AAEzC,QAAK,WAAW,yBAAyB,KAAK,UAAU,YAAY;;AAGtE,MAAI,KAAK,YAAY,OAAO;GAC1B,MAAM,OAAO,KAAK,SAAS,MAAM,MAAW,EAAE,YAAY,IAAI;AAE9D,OAAI,MAAM;IAOR,MAAM,eAAe,KAAK,YAAY,IAAI,QAAQ,wBAAwB,GAAG,CAAC;AAE9E,QAAI,iBAAiB,KAAA,EACnB,MAAK,WAAW,eAAe,KAAK,UAAU,UAAU,cAAc;;;GAG5E"}
1
+ {"version":3,"file":"rehypeCustomFootnotes.mjs","names":[],"sources":["../../../src/Markdown/plugins/rehypeCustomFootnotes.ts"],"sourcesContent":["import { visit } from 'unist-util-visit';\n\nimport type { FootnoteLink } from './remarkCustomFootnotes';\n\nexport const rehypeCustomFootnotes = () => (tree: any, file: any) => {\n const linksData: Record<string, FootnoteLink> = file.data.footnoteLinks || {};\n\n visit(tree, 'element', (node) => {\n if (node.tagName === 'section' && node.properties.className?.includes('footnotes')) {\n // 转换数据格式为数组(按identifier排序)\n const sortedLinks = Object.entries(linksData)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([id, data]) => ({ id, ...data }));\n // 注入数据属性\n node.properties['data-footnote-links'] = JSON.stringify(sortedLinks);\n }\n\n if (node.tagName === 'sup') {\n const link = node.children.find((n: any) => n.tagName === 'a');\n\n if (link) {\n // a node example\n // {\n // \"href\": \"#user-content-fn-3\",\n // \"id\": \"user-content-fnref-3-2\",\n // \"dataFootnoteRef\": true,\n // }\n const linkRefIndex = link.properties?.id?.replace(/^user-content-fnref-/, '')[0];\n\n if (linkRefIndex !== undefined)\n link.properties['data-link'] = JSON.stringify(linksData[linkRefIndex]);\n }\n }\n });\n};\n"],"mappings":";;AAIA,MAAa,+BAA+B,MAAW,SAAc;CACnE,MAAM,YAA0C,KAAK,KAAK,iBAAiB,CAAC;CAE5E,MAAM,MAAM,YAAY,SAAS;EAC/B,IAAI,KAAK,YAAY,aAAa,KAAK,WAAW,WAAW,SAAS,WAAW,GAAG;GAElF,MAAM,cAAc,OAAO,QAAQ,SAAS,CAAC,CAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CACtC,KAAK,CAAC,IAAI,WAAW;IAAE;IAAI,GAAG;GAAK,EAAE;GAExC,KAAK,WAAW,yBAAyB,KAAK,UAAU,WAAW;EACrE;EAEA,IAAI,KAAK,YAAY,OAAO;GAC1B,MAAM,OAAO,KAAK,SAAS,MAAM,MAAW,EAAE,YAAY,GAAG;GAE7D,IAAI,MAAM;IAOR,MAAM,eAAe,KAAK,YAAY,IAAI,QAAQ,wBAAwB,EAAE,CAAC,CAAC;IAE9E,IAAI,iBAAiB,KAAA,GACnB,KAAK,WAAW,eAAe,KAAK,UAAU,UAAU,aAAa;GACzE;EACF;CACF,CAAC;AACH"}
@@ -1,5 +1,4 @@
1
- import { Node } from "../../node_modules/@types/unist/index.mjs";
2
-
1
+ import { Node } from "../../node_modules/.bun/@types_unist@3.0.3/node_modules/@types/unist/index.mjs";
3
2
  //#region src/Markdown/plugins/rehypeKatexDir.d.ts
4
3
  declare const rehypeKatexDir: () => (tree: Node) => void;
5
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { visit } from "../../node_modules/unist-util-visit/lib/index.mjs";
1
+ import { visit } from "../../node_modules/.bun/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.mjs";
2
2
  //#region src/Markdown/plugins/rehypeKatexDir.ts
3
3
  const rehypeKatexDir = () => (tree) => {
4
4
  visit(tree, "element", (node) => {
@@ -1 +1 @@
1
- {"version":3,"file":"rehypeKatexDir.mjs","names":[],"sources":["../../../src/Markdown/plugins/rehypeKatexDir.ts"],"sourcesContent":["import type { Node } from 'unist';\nimport { visit } from 'unist-util-visit';\n\n// katex-directive\n// 给 class=\"katex\" 的节点加上 dir=\"ltr\" 属性\n\nexport const rehypeKatexDir = () => (tree: Node) => {\n visit(tree, 'element', (node: any) => {\n if (node.properties?.className?.includes('katex')) {\n node.properties.dir = 'ltr';\n }\n });\n};\n"],"mappings":";;AAMA,MAAa,wBAAwB,SAAe;AAClD,OAAM,MAAM,YAAY,SAAc;AACpC,MAAI,KAAK,YAAY,WAAW,SAAS,QAAQ,CAC/C,MAAK,WAAW,MAAM;GAExB"}
1
+ {"version":3,"file":"rehypeKatexDir.mjs","names":[],"sources":["../../../src/Markdown/plugins/rehypeKatexDir.ts"],"sourcesContent":["import type { Node } from 'unist';\nimport { visit } from 'unist-util-visit';\n\n// katex-directive\n// 给 class=\"katex\" 的节点加上 dir=\"ltr\" 属性\n\nexport const rehypeKatexDir = () => (tree: Node) => {\n visit(tree, 'element', (node: any) => {\n if (node.properties?.className?.includes('katex')) {\n node.properties.dir = 'ltr';\n }\n });\n};\n"],"mappings":";;AAMA,MAAa,wBAAwB,SAAe;CAClD,MAAM,MAAM,YAAY,SAAc;EACpC,IAAI,KAAK,YAAY,WAAW,SAAS,OAAO,GAC9C,KAAK,WAAW,MAAM;CAE1B,CAAC;AACH"}
@@ -1,5 +1,4 @@
1
- import { Root } from "../../node_modules/@types/hast/index.mjs";
2
-
1
+ import { Root } from "../../node_modules/.bun/@types_hast@3.0.5/node_modules/@types/hast/index.mjs";
3
2
  //#region src/Markdown/plugins/rehypeStreamAnimated.d.ts
4
3
  interface StreamAnimatedRuntime {
5
4
  births: number[];
@@ -30,5 +29,5 @@ interface StreamAnimatedOptions {
30
29
  }
31
30
  declare const rehypeStreamAnimated: (options?: StreamAnimatedOptions) => (tree: Root) => void;
32
31
  //#endregion
33
- export { rehypeStreamAnimated };
32
+ export { StreamAnimatedOptions, StreamAnimatedRuntime, rehypeStreamAnimated };
34
33
  //# sourceMappingURL=rehypeStreamAnimated.d.mts.map