@ant-design/agentic-ui 2.8.0 → 2.10.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 (585) hide show
  1. package/dist/AgentRunBar/Robot.js +105 -57
  2. package/dist/AgentRunBar/icons/PauseIcon.js +38 -38
  3. package/dist/AgentRunBar/icons/PlayIcon.js +38 -38
  4. package/dist/AgentRunBar/icons/SimplePauseIcon.js +38 -38
  5. package/dist/AgentRunBar/icons/SimplePlayIcon.js +38 -38
  6. package/dist/AgentRunBar/icons/SimpleStopIcon.js +38 -38
  7. package/dist/AgentRunBar/icons/StopIcon.js +41 -50
  8. package/dist/AgentRunBar/icons/index.js +0 -1
  9. package/dist/AgentRunBar/index.js +270 -237
  10. package/dist/AgentRunBar/style.js +273 -239
  11. package/dist/AgenticLayout/index.js +140 -85
  12. package/dist/AgenticLayout/style.js +126 -107
  13. package/dist/AnswerAlert/components/CloseIcon.js +12 -21
  14. package/dist/AnswerAlert/components/ErrorIcon.js +42 -38
  15. package/dist/AnswerAlert/components/InfoIcon.js +42 -38
  16. package/dist/AnswerAlert/components/LoaderIcon.js +12 -21
  17. package/dist/AnswerAlert/components/SuccessIcon.js +42 -38
  18. package/dist/AnswerAlert/components/WarningIcon.js +42 -38
  19. package/dist/AnswerAlert/index.js +155 -75
  20. package/dist/AnswerAlert/style.js +159 -147
  21. package/dist/BackTo/BackBottom.js +154 -70
  22. package/dist/BackTo/BackTop.js +148 -68
  23. package/dist/BackTo/ScrollVisibleButton.js +124 -98
  24. package/dist/BackTo/hooks/useScrollVisible.js +79 -33
  25. package/dist/BackTo/icons/BottomIcon.js +37 -37
  26. package/dist/BackTo/icons/TopIcon.js +37 -37
  27. package/dist/BackTo/index.js +22 -7
  28. package/dist/BackTo/style.js +93 -70
  29. package/dist/Bubble/AIBubble.js +469 -406
  30. package/dist/Bubble/Avatar/index.js +139 -85
  31. package/dist/Bubble/Avatar/isEmoji.js +2 -6
  32. package/dist/Bubble/Bubble.js +114 -38
  33. package/dist/Bubble/BubbleBeforeNode.js +104 -74
  34. package/dist/Bubble/BubbleConfigProvide.js +3 -7
  35. package/dist/Bubble/FileView.js +63 -69
  36. package/dist/Bubble/List/PureBubbleList.js +130 -131
  37. package/dist/Bubble/List/SkeletonList.js +33 -24
  38. package/dist/Bubble/List/index.js +187 -124
  39. package/dist/Bubble/List/style.js +76 -47
  40. package/dist/Bubble/MessagesContent/BubbleContext.js +6 -12
  41. package/dist/Bubble/MessagesContent/BubbleExtra.js +663 -355
  42. package/dist/Bubble/MessagesContent/CopyButton/index.js +326 -96
  43. package/dist/Bubble/MessagesContent/DocInfo.js +351 -386
  44. package/dist/Bubble/MessagesContent/EXCEPTION.js +42 -22
  45. package/dist/Bubble/MessagesContent/MarkdownPreview.js +206 -156
  46. package/dist/Bubble/MessagesContent/VoiceButton/index.js +213 -115
  47. package/dist/Bubble/MessagesContent/VoiceButton/style.js +129 -105
  48. package/dist/Bubble/MessagesContent/VoiceButton/types.js +9 -0
  49. package/dist/Bubble/MessagesContent/docInfoStyle.js +118 -88
  50. package/dist/Bubble/MessagesContent/icons.js +157 -57
  51. package/dist/Bubble/MessagesContent/index.js +609 -368
  52. package/dist/Bubble/PureBubble.js +439 -326
  53. package/dist/Bubble/Title.js +110 -87
  54. package/dist/Bubble/UserBubble.js +218 -279
  55. package/dist/Bubble/index.js +10 -16
  56. package/dist/Bubble/style.js +248 -227
  57. package/dist/Bubble/type.js +3 -0
  58. package/dist/Bubble/types/BubbleExtra.js +1 -0
  59. package/dist/Bubble/types/DocInfo.js +1 -0
  60. package/dist/ChatBootPage/ButtonTab.js +25 -45
  61. package/dist/ChatBootPage/ButtonTabGroup.js +74 -47
  62. package/dist/ChatBootPage/ButtonTabGroupStyle.js +73 -45
  63. package/dist/ChatBootPage/ButtonTabStyle.js +121 -98
  64. package/dist/ChatBootPage/CaseReply.js +119 -113
  65. package/dist/ChatBootPage/CaseReplyStyle.js +217 -189
  66. package/dist/ChatBootPage/Title.js +19 -23
  67. package/dist/ChatBootPage/index.js +9 -11
  68. package/dist/ChatBootPage/style.js +80 -50
  69. package/dist/ChatLayout/index.js +93 -57
  70. package/dist/ChatLayout/style.js +206 -176
  71. package/dist/ChatLayout/types.js +1 -0
  72. package/dist/Components/ActionIconBox/index.js +571 -197
  73. package/dist/Components/ActionIconBox/style.js +141 -111
  74. package/dist/Components/ActionItemBox/ActionItemBox.js +95 -149
  75. package/dist/Components/ActionItemBox/index.js +7 -7
  76. package/dist/Components/ActionItemBox/style.js +353 -361
  77. package/dist/Components/Button/IconButton/index.js +35 -43
  78. package/dist/Components/Button/IconButton/style.js +357 -331
  79. package/dist/Components/Button/SwitchButton/index.js +243 -87
  80. package/dist/Components/Button/SwitchButton/style.js +160 -146
  81. package/dist/Components/Button/ToggleButton/index.js +46 -57
  82. package/dist/Components/Button/ToggleButton/style.js +283 -258
  83. package/dist/Components/Button/index.js +6 -2
  84. package/dist/Components/GradientText/index.js +21 -27
  85. package/dist/Components/GradientText/style.js +88 -63
  86. package/dist/Components/ImageList.js +111 -133
  87. package/dist/Components/LayoutHeader/index.js +145 -81
  88. package/dist/Components/LayoutHeader/style.js +89 -64
  89. package/dist/Components/LayoutHeader/types.js +3 -0
  90. package/dist/Components/Loading/index.js +53 -22
  91. package/dist/Components/Robot/index.js +90 -56
  92. package/dist/Components/Robot/lotties/DazingLottie/index.js +78 -47
  93. package/dist/Components/Robot/lotties/ThinkingLottie/index.js +78 -47
  94. package/dist/Components/Robot/lotties/index.js +0 -1
  95. package/dist/Components/SuggestionList/index.js +354 -182
  96. package/dist/Components/SuggestionList/style.js +204 -186
  97. package/dist/Components/TextAnimate/index.js +494 -362
  98. package/dist/Components/TextAnimate/style.js +72 -48
  99. package/dist/Components/TypingAnimation/index.js +214 -169
  100. package/dist/Components/TypingAnimation/style.js +76 -52
  101. package/dist/Components/VisualList/index.js +267 -180
  102. package/dist/Components/VisualList/style.js +140 -124
  103. package/dist/Components/icons/LoadingSpinnerIcon.js +124 -73
  104. package/dist/Components/lotties/DazingLottie/index.js +78 -47
  105. package/dist/Components/lotties/LoadingLottie/index.js +82 -48
  106. package/dist/Components/lotties/TextLoading/index.js +73 -49
  107. package/dist/Components/lotties/TextLoading/style.js +95 -78
  108. package/dist/Components/lotties/ThinkingLottie/index.js +78 -47
  109. package/dist/Components/lotties/index.js +0 -1
  110. package/dist/Constants/colors.js +71 -97
  111. package/dist/History/components/HistoryActionsBox.js +407 -180
  112. package/dist/History/components/HistoryEmpty.js +38 -42
  113. package/dist/History/components/HistoryEmptyIcon.js +682 -964
  114. package/dist/History/components/HistoryItem.js +683 -471
  115. package/dist/History/components/HistoryList.js +170 -87
  116. package/dist/History/components/HistoryRunningIcon.js +160 -111
  117. package/dist/History/components/LoadMoreComponent.js +308 -103
  118. package/dist/History/components/NewChatComponent.js +261 -69
  119. package/dist/History/components/NewChatComponent.style.js +79 -53
  120. package/dist/History/components/SearchComponent.js +367 -156
  121. package/dist/History/components/index.js +11 -23
  122. package/dist/History/hooks/useHistory.js +404 -129
  123. package/dist/History/index.js +301 -186
  124. package/dist/History/menu.js +158 -212
  125. package/dist/History/style.js +282 -276
  126. package/dist/History/types/HistoryData.js +6 -10
  127. package/dist/History/types/HistoryList.js +3 -0
  128. package/dist/History/types/index.js +3 -0
  129. package/dist/History/utils/index.js +35 -32
  130. package/dist/Hooks/useAutoScroll.js +262 -84
  131. package/dist/Hooks/useClickAway.js +60 -21
  132. package/dist/Hooks/useCopied.js +72 -20
  133. package/dist/Hooks/useDebounceFn/index.js +213 -55
  134. package/dist/Hooks/useIntersectionOnce.js +163 -74
  135. package/dist/Hooks/useLanguage.d.ts +3 -0
  136. package/dist/Hooks/useLanguage.js +67 -26
  137. package/dist/Hooks/useRefFunction/index.js +76 -11
  138. package/dist/Hooks/useSpeechSynthesis.js +143 -99
  139. package/dist/Hooks/useStyle/index.js +95 -60
  140. package/dist/Hooks/useThrottleFn/index.js +41 -41
  141. package/dist/I18n/index.js +246 -109
  142. package/dist/I18n/locales.d.ts +3 -0
  143. package/dist/I18n/locales.js +724 -711
  144. package/dist/Icons/animated/VoicePlayLottie/index.js +75 -46
  145. package/dist/Icons/animated/VoicingLottie/index.js +78 -47
  146. package/dist/MarkdownEditor/BaseMarkdownEditor.js +421 -349
  147. package/dist/MarkdownEditor/editor/Editor.js +1160 -843
  148. package/dist/MarkdownEditor/editor/components/CommentList/index.js +407 -239
  149. package/dist/MarkdownEditor/editor/components/CommentList/style.js +119 -89
  150. package/dist/MarkdownEditor/editor/components/ContributorAvatar/index.js +61 -63
  151. package/dist/MarkdownEditor/editor/components/ContributorAvatar/style.js +82 -52
  152. package/dist/MarkdownEditor/editor/components/LazyElement/index.js +208 -106
  153. package/dist/MarkdownEditor/editor/components/LazyElement/style.js +69 -42
  154. package/dist/MarkdownEditor/editor/components/fntTag/index.js +7 -11
  155. package/dist/MarkdownEditor/editor/components/fntTag/style.js +66 -36
  156. package/dist/MarkdownEditor/editor/components/index.js +0 -1
  157. package/dist/MarkdownEditor/editor/elements/Blockquote.js +95 -37
  158. package/dist/MarkdownEditor/editor/elements/Break.js +56 -25
  159. package/dist/MarkdownEditor/editor/elements/Card/index.js +131 -52
  160. package/dist/MarkdownEditor/editor/elements/Code.js +89 -67
  161. package/dist/MarkdownEditor/editor/elements/Comment/index.js +79 -50
  162. package/dist/MarkdownEditor/editor/elements/ErrorBoundary.js +117 -21
  163. package/dist/MarkdownEditor/editor/elements/FootnoteDefinition.js +83 -64
  164. package/dist/MarkdownEditor/editor/elements/FootnoteReference.js +115 -41
  165. package/dist/MarkdownEditor/editor/elements/Head.js +131 -67
  166. package/dist/MarkdownEditor/editor/elements/Hr.js +63 -38
  167. package/dist/MarkdownEditor/editor/elements/Image/index.js +636 -494
  168. package/dist/MarkdownEditor/editor/elements/InlineKatex.js +60 -44
  169. package/dist/MarkdownEditor/editor/elements/Katex.js +71 -55
  170. package/dist/MarkdownEditor/editor/elements/LinkCard/index.js +79 -175
  171. package/dist/MarkdownEditor/editor/elements/LinkCard/style.js +130 -100
  172. package/dist/MarkdownEditor/editor/elements/List/List.js +96 -69
  173. package/dist/MarkdownEditor/editor/elements/List/ListItem.js +422 -247
  174. package/dist/MarkdownEditor/editor/elements/List/index.js +1 -5
  175. package/dist/MarkdownEditor/editor/elements/List/style.js +131 -117
  176. package/dist/MarkdownEditor/editor/elements/Media.js +637 -519
  177. package/dist/MarkdownEditor/editor/elements/Mermaid.js +79 -54
  178. package/dist/MarkdownEditor/editor/elements/Paragraph.js +144 -83
  179. package/dist/MarkdownEditor/editor/elements/Schema.js +167 -128
  180. package/dist/MarkdownEditor/editor/elements/Table/ReadonlyTableComponent.js +211 -178
  181. package/dist/MarkdownEditor/editor/elements/Table/SimpleTable.js +73 -49
  182. package/dist/MarkdownEditor/editor/elements/Table/Table.js +285 -204
  183. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/index.js +397 -280
  184. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/style.js +126 -101
  185. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/index.js +381 -276
  186. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/style.js +120 -98
  187. package/dist/MarkdownEditor/editor/elements/Table/TableContext.js +64 -21
  188. package/dist/MarkdownEditor/editor/elements/Table/TableRowIndex/index.js +52 -42
  189. package/dist/MarkdownEditor/editor/elements/Table/TableRowIndex/style.js +69 -39
  190. package/dist/MarkdownEditor/editor/elements/Table/Td/index.js +126 -72
  191. package/dist/MarkdownEditor/editor/elements/Table/Td/style.js +85 -55
  192. package/dist/MarkdownEditor/editor/elements/Table/index.js +204 -105
  193. package/dist/MarkdownEditor/editor/elements/Table/style.js +244 -233
  194. package/dist/MarkdownEditor/editor/elements/Table/useScrollShadow.js +119 -62
  195. package/dist/MarkdownEditor/editor/elements/TagPopup/index.js +438 -276
  196. package/dist/MarkdownEditor/editor/elements/TagPopup/style.js +103 -77
  197. package/dist/MarkdownEditor/editor/elements/index.js +437 -424
  198. package/dist/MarkdownEditor/editor/parser/json-parse.js +38 -9
  199. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.js +1753 -1168
  200. package/dist/MarkdownEditor/editor/parser/parserMdToSchema.js +16 -20
  201. package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +1021 -606
  202. package/dist/MarkdownEditor/editor/parser/remarkParse.js +158 -102
  203. package/dist/MarkdownEditor/editor/plugins/catchError.js +78 -17
  204. package/dist/MarkdownEditor/editor/plugins/elements.js +458 -342
  205. package/dist/MarkdownEditor/editor/plugins/handlePaste.js +752 -300
  206. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/arrow.js +215 -129
  207. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/backspace.js +325 -180
  208. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/enter.js +576 -418
  209. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.js +157 -47
  210. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.js +331 -209
  211. package/dist/MarkdownEditor/editor/plugins/index.js +0 -1
  212. package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.js +1245 -507
  213. package/dist/MarkdownEditor/editor/plugins/parseMarkdownToNodesAndInsert.js +36 -24
  214. package/dist/MarkdownEditor/editor/plugins/useHighlight.js +267 -116
  215. package/dist/MarkdownEditor/editor/plugins/useKeyboard.js +234 -160
  216. package/dist/MarkdownEditor/editor/plugins/useOnchange.js +253 -92
  217. package/dist/MarkdownEditor/editor/plugins/withMarkdown.js +728 -439
  218. package/dist/MarkdownEditor/editor/store.js +1819 -1389
  219. package/dist/MarkdownEditor/editor/style.js +551 -506
  220. package/dist/MarkdownEditor/editor/tagStyles.js +43 -43
  221. package/dist/MarkdownEditor/editor/tools/DragHandle.js +56 -54
  222. package/dist/MarkdownEditor/editor/tools/InsertAutocomplete.js +1049 -732
  223. package/dist/MarkdownEditor/editor/tools/InsertLink.js +232 -181
  224. package/dist/MarkdownEditor/editor/tools/Leading.js +566 -303
  225. package/dist/MarkdownEditor/editor/tools/ToolBar/BaseBar.js +415 -377
  226. package/dist/MarkdownEditor/editor/tools/ToolBar/FloatBar.js +162 -125
  227. package/dist/MarkdownEditor/editor/tools/ToolBar/ReadonlyBaseBar.js +480 -258
  228. package/dist/MarkdownEditor/editor/tools/ToolBar/ToolBar.js +44 -44
  229. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ClearFormatButton.js +20 -35
  230. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ColorPickerButton.js +69 -73
  231. package/dist/MarkdownEditor/editor/tools/ToolBar/components/FormatButton.js +13 -19
  232. package/dist/MarkdownEditor/editor/tools/ToolBar/components/FormattingTools.js +34 -41
  233. package/dist/MarkdownEditor/editor/tools/ToolBar/components/HeadingDropdown.js +53 -47
  234. package/dist/MarkdownEditor/editor/tools/ToolBar/components/LinkButton.js +11 -19
  235. package/dist/MarkdownEditor/editor/tools/ToolBar/components/ToolBarItem.js +23 -43
  236. package/dist/MarkdownEditor/editor/tools/ToolBar/components/UndoRedoButtons.js +14 -25
  237. package/dist/MarkdownEditor/editor/tools/ToolBar/config/toolsConfig.js +139 -102
  238. package/dist/MarkdownEditor/editor/tools/ToolBar/floatBarStyle.js +95 -65
  239. package/dist/MarkdownEditor/editor/tools/ToolBar/hooks/useToolBarLogic.js +252 -161
  240. package/dist/MarkdownEditor/editor/tools/ToolBar/index.js +14 -24
  241. package/dist/MarkdownEditor/editor/tools/ToolBar/toolBarStyle.js +95 -65
  242. package/dist/MarkdownEditor/editor/tools/insertAutocompleteStyle.js +82 -52
  243. package/dist/MarkdownEditor/editor/types/Table.js +1 -0
  244. package/dist/MarkdownEditor/editor/utils/InlineChromiumBugfix.js +11 -16
  245. package/dist/MarkdownEditor/editor/utils/ace.js +136 -40
  246. package/dist/MarkdownEditor/editor/utils/docx/docxDeserializer.js +29 -32
  247. package/dist/MarkdownEditor/editor/utils/docx/index.js +0 -1
  248. package/dist/MarkdownEditor/editor/utils/docx/module.js +193 -164
  249. package/dist/MarkdownEditor/editor/utils/docx/utils.js +113 -98
  250. package/dist/MarkdownEditor/editor/utils/dom.js +119 -90
  251. package/dist/MarkdownEditor/editor/utils/editorUtils.js +1369 -906
  252. package/dist/MarkdownEditor/editor/utils/htmlToMarkdown.js +196 -184
  253. package/dist/MarkdownEditor/editor/utils/index.js +354 -215
  254. package/dist/MarkdownEditor/editor/utils/isMarkdown.js +56 -44
  255. package/dist/MarkdownEditor/editor/utils/keyboard.js +1229 -664
  256. package/dist/MarkdownEditor/editor/utils/markdownToHtml.js +294 -76
  257. package/dist/MarkdownEditor/editor/utils/media.js +274 -99
  258. package/dist/MarkdownEditor/editor/utils/path.js +22 -16
  259. package/dist/MarkdownEditor/editor/utils/performanceMonitor.js +370 -168
  260. package/dist/MarkdownEditor/editor/utils/useLocalState.js +96 -37
  261. package/dist/MarkdownEditor/el.js +1 -0
  262. package/dist/MarkdownEditor/hooks/editor.js +123 -41
  263. package/dist/MarkdownEditor/hooks/subscribe.js +18 -15
  264. package/dist/MarkdownEditor/index.js +118 -30
  265. package/dist/MarkdownEditor/plugin.js +2 -5
  266. package/dist/MarkdownEditor/style.js +96 -66
  267. package/dist/MarkdownEditor/types.js +1 -0
  268. package/dist/MarkdownEditor/utils/exportHtml.js +42 -83
  269. package/dist/MarkdownEditor/utils/native-table/index.js +0 -1
  270. package/dist/MarkdownEditor/utils/native-table/native-table-editor.js +337 -222
  271. package/dist/MarkdownEditor/utils/native-table/native-table-keyboard.js +201 -113
  272. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.d.ts +4 -0
  273. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +277 -82
  274. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +62 -33
  275. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +147 -125
  276. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/index.js +174 -129
  277. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/style.js +263 -237
  278. package/dist/MarkdownInputField/AttachmentButton/index.js +480 -205
  279. package/dist/MarkdownInputField/AttachmentButton/style.js +143 -114
  280. package/dist/MarkdownInputField/AttachmentButton/types.js +3 -0
  281. package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +60 -0
  282. package/dist/MarkdownInputField/AttachmentButton/utils.js +365 -33
  283. package/dist/MarkdownInputField/BeforeToolContainer/BeforeToolContainer.js +438 -404
  284. package/dist/MarkdownInputField/Enlargement/index.js +7 -17
  285. package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +193 -216
  286. package/dist/MarkdownInputField/FileMapView/index.js +387 -174
  287. package/dist/MarkdownInputField/FileMapView/style.js +281 -259
  288. package/dist/MarkdownInputField/FilePaste/index.js +239 -65
  289. package/dist/MarkdownInputField/FileUploadManager/index.js +504 -170
  290. package/dist/MarkdownInputField/MarkdownInputField.js +819 -549
  291. package/dist/MarkdownInputField/QuickActions/index.js +304 -134
  292. package/dist/MarkdownInputField/RefinePromptButton/index.js +24 -33
  293. package/dist/MarkdownInputField/RefinePromptButton/style.js +99 -73
  294. package/dist/MarkdownInputField/SendActions/index.js +179 -197
  295. package/dist/MarkdownInputField/SendButton/index.js +150 -110
  296. package/dist/MarkdownInputField/SendButton/style.js +95 -64
  297. package/dist/MarkdownInputField/SkillModeBar/hooks/index.js +3 -5
  298. package/dist/MarkdownInputField/SkillModeBar/hooks/useSkillModeState.js +51 -26
  299. package/dist/MarkdownInputField/SkillModeBar/index.js +119 -106
  300. package/dist/MarkdownInputField/SkillModeBar/style.js +124 -98
  301. package/dist/MarkdownInputField/Suggestion/index.js +391 -154
  302. package/dist/MarkdownInputField/TopOperatingArea/index.js +37 -44
  303. package/dist/MarkdownInputField/TopOperatingArea/style.js +98 -81
  304. package/dist/MarkdownInputField/VoiceInput/index.js +210 -82
  305. package/dist/MarkdownInputField/VoiceInput/style.js +85 -59
  306. package/dist/MarkdownInputField/VoiceInputManager/index.js +321 -94
  307. package/dist/MarkdownInputField/style.js +296 -233
  308. package/dist/Plugins/chart/AreaChart/index.js +541 -393
  309. package/dist/Plugins/chart/AreaChart/style.js +114 -90
  310. package/dist/Plugins/chart/BarChart/index.d.ts +4 -0
  311. package/dist/Plugins/chart/BarChart/index.js +865 -697
  312. package/dist/Plugins/chart/BarChart/style.js +114 -90
  313. package/dist/Plugins/chart/ChartAttrToolBar/ChartAttrToolBarStyle.js +82 -52
  314. package/dist/Plugins/chart/ChartAttrToolBar/index.js +94 -65
  315. package/dist/Plugins/chart/ChartMark/Area.js +176 -150
  316. package/dist/Plugins/chart/ChartMark/Bar.js +181 -152
  317. package/dist/Plugins/chart/ChartMark/Column.js +181 -151
  318. package/dist/Plugins/chart/ChartMark/Container.js +116 -75
  319. package/dist/Plugins/chart/ChartMark/Line.js +179 -151
  320. package/dist/Plugins/chart/ChartMark/Pie.js +79 -63
  321. package/dist/Plugins/chart/ChartMark/index.js +6 -13
  322. package/dist/Plugins/chart/ChartMark/useChart.js +1 -0
  323. package/dist/Plugins/chart/ChartRender.js +981 -696
  324. package/dist/Plugins/chart/ChartStatistic/index.js +47 -62
  325. package/dist/Plugins/chart/ChartStatistic/style.js +142 -143
  326. package/dist/Plugins/chart/ChartStatistic/utils.js +37 -27
  327. package/dist/Plugins/chart/DonutChart/Legend.js +94 -124
  328. package/dist/Plugins/chart/DonutChart/constants.js +4 -11
  329. package/dist/Plugins/chart/DonutChart/hooks.js +183 -112
  330. package/dist/Plugins/chart/DonutChart/index.js +588 -516
  331. package/dist/Plugins/chart/DonutChart/plugins.js +47 -44
  332. package/dist/Plugins/chart/DonutChart/style.js +186 -175
  333. package/dist/Plugins/chart/DonutChart/types.js +1 -0
  334. package/dist/Plugins/chart/FunnelChart/index.js +844 -647
  335. package/dist/Plugins/chart/FunnelChart/style.js +97 -71
  336. package/dist/Plugins/chart/LineChart/index.js +516 -393
  337. package/dist/Plugins/chart/LineChart/style.js +114 -90
  338. package/dist/Plugins/chart/RadarChart/index.js +580 -582
  339. package/dist/Plugins/chart/RadarChart/style.js +122 -112
  340. package/dist/Plugins/chart/ScatterChart/index.js +633 -640
  341. package/dist/Plugins/chart/ScatterChart/style.js +108 -94
  342. package/dist/Plugins/chart/components/ChartContainer/ChartContainer.js +151 -80
  343. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.js +160 -41
  344. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundaryExample.js +80 -62
  345. package/dist/Plugins/chart/components/ChartContainer/index.js +2 -7
  346. package/dist/Plugins/chart/components/ChartContainer/style.js +121 -91
  347. package/dist/Plugins/chart/components/ChartFilter/ChartFilter.js +58 -90
  348. package/dist/Plugins/chart/components/ChartFilter/style.js +169 -154
  349. package/dist/Plugins/chart/components/ChartToolBar/ChartToolBar.js +54 -59
  350. package/dist/Plugins/chart/components/ChartToolBar/style.js +132 -117
  351. package/dist/Plugins/chart/components/icons/TimeIcon.js +20 -26
  352. package/dist/Plugins/chart/components/index.js +32 -34
  353. package/dist/Plugins/chart/const.js +34 -25
  354. package/dist/Plugins/chart/hooks/useChartStatistic.js +1 -0
  355. package/dist/Plugins/chart/index.js +436 -339
  356. package/dist/Plugins/chart/loadChartRuntime.js +209 -110
  357. package/dist/Plugins/chart/utils.js +311 -87
  358. package/dist/Plugins/code/CodeUI/Katex/Katex.js +112 -66
  359. package/dist/Plugins/code/components/AceEditor.js +334 -237
  360. package/dist/Plugins/code/components/AceEditorContainer.js +23 -32
  361. package/dist/Plugins/code/components/CodeContainer.js +41 -56
  362. package/dist/Plugins/code/components/CodeRenderer.js +202 -155
  363. package/dist/Plugins/code/components/CodeToolbar.js +137 -181
  364. package/dist/Plugins/code/components/HtmlPreview.js +19 -22
  365. package/dist/Plugins/code/components/LanguageSelector.js +162 -96
  366. package/dist/Plugins/code/components/LoadImage.js +145 -46
  367. package/dist/Plugins/code/components/ThinkBlock.js +38 -42
  368. package/dist/Plugins/code/components/index.js +13 -23
  369. package/dist/Plugins/code/hooks/index.js +7 -9
  370. package/dist/Plugins/code/hooks/useCodeEditorState.js +139 -62
  371. package/dist/Plugins/code/hooks/useRenderConditions.js +31 -23
  372. package/dist/Plugins/code/hooks/useToolbarConfig.js +44 -46
  373. package/dist/Plugins/code/index.js +141 -89
  374. package/dist/Plugins/code/langIconMap.js +400 -108
  375. package/dist/Plugins/code/langIcons/AbapIcon.js +90 -57
  376. package/dist/Plugins/code/langIcons/ActionscriptIcon.js +89 -56
  377. package/dist/Plugins/code/langIcons/AdaIcon.js +89 -52
  378. package/dist/Plugins/code/langIcons/ApacheIcon.js +205 -254
  379. package/dist/Plugins/code/langIcons/ApexIcon.js +108 -82
  380. package/dist/Plugins/code/langIcons/AplIcon.js +90 -54
  381. package/dist/Plugins/code/langIcons/ApplescriptIcon.js +89 -56
  382. package/dist/Plugins/code/langIcons/AstroIcon.js +91 -58
  383. package/dist/Plugins/code/langIcons/AwkIcon.js +98 -68
  384. package/dist/Plugins/code/langIcons/BallerinaIcon.js +92 -59
  385. package/dist/Plugins/code/langIcons/BatIcon.js +158 -229
  386. package/dist/Plugins/code/langIcons/BicepIcon.js +91 -58
  387. package/dist/Plugins/code/langIcons/BladeIcon.js +90 -58
  388. package/dist/Plugins/code/langIcons/CIcon.js +90 -55
  389. package/dist/Plugins/code/langIcons/CadenceIcon.js +89 -56
  390. package/dist/Plugins/code/langIcons/ClojureIcon.js +96 -75
  391. package/dist/Plugins/code/langIcons/CmakeIcon.js +93 -62
  392. package/dist/Plugins/code/langIcons/CobolIcon.js +99 -70
  393. package/dist/Plugins/code/langIcons/CodeqlIcon.js +96 -76
  394. package/dist/Plugins/code/langIcons/CoffeeIcon.js +89 -56
  395. package/dist/Plugins/code/langIcons/ConsoleIcon.js +89 -56
  396. package/dist/Plugins/code/langIcons/CppIcon.js +90 -55
  397. package/dist/Plugins/code/langIcons/CrystalIcon.js +90 -57
  398. package/dist/Plugins/code/langIcons/CsharpIcon.js +90 -59
  399. package/dist/Plugins/code/langIcons/CssIcon.js +89 -52
  400. package/dist/Plugins/code/langIcons/DIcon.js +90 -53
  401. package/dist/Plugins/code/langIcons/DartIcon.js +92 -71
  402. package/dist/Plugins/code/langIcons/DatabaseIcon.js +90 -57
  403. package/dist/Plugins/code/langIcons/DiffIcon.js +90 -57
  404. package/dist/Plugins/code/langIcons/DockerIcon.js +89 -56
  405. package/dist/Plugins/code/langIcons/DotenvIcon.js +94 -56
  406. package/dist/Plugins/code/langIcons/ElixirIcon.js +91 -58
  407. package/dist/Plugins/code/langIcons/ElmIcon.js +105 -58
  408. package/dist/Plugins/code/langIcons/ErbIcon.js +90 -54
  409. package/dist/Plugins/code/langIcons/ErlangIcon.js +89 -56
  410. package/dist/Plugins/code/langIcons/FsharpIcon.js +93 -62
  411. package/dist/Plugins/code/langIcons/GdscriptIcon.js +96 -88
  412. package/dist/Plugins/code/langIcons/GlslIcon.js +90 -58
  413. package/dist/Plugins/code/langIcons/GnuplotIcon.js +98 -77
  414. package/dist/Plugins/code/langIcons/GoIcon.js +114 -93
  415. package/dist/Plugins/code/langIcons/GraphqlIcon.js +106 -66
  416. package/dist/Plugins/code/langIcons/GroovyIcon.js +89 -56
  417. package/dist/Plugins/code/langIcons/HackIcon.js +97 -64
  418. package/dist/Plugins/code/langIcons/HamlIcon.js +89 -56
  419. package/dist/Plugins/code/langIcons/HandlebarsIcon.js +89 -56
  420. package/dist/Plugins/code/langIcons/HaskellIcon.js +93 -64
  421. package/dist/Plugins/code/langIcons/HclIcon.js +118 -93
  422. package/dist/Plugins/code/langIcons/HclLightIcon.js +118 -97
  423. package/dist/Plugins/code/langIcons/HjsonIcon.js +94 -62
  424. package/dist/Plugins/code/langIcons/HlslIcon.js +96 -76
  425. package/dist/Plugins/code/langIcons/HtmlIcon.js +89 -56
  426. package/dist/Plugins/code/langIcons/HttpIcon.js +89 -56
  427. package/dist/Plugins/code/langIcons/ImbaIcon.js +98 -65
  428. package/dist/Plugins/code/langIcons/IniIcon.js +90 -54
  429. package/dist/Plugins/code/langIcons/JavaIcon.js +89 -56
  430. package/dist/Plugins/code/langIcons/JavascriptIcon.js +89 -56
  431. package/dist/Plugins/code/langIcons/JinjaIcon.js +100 -68
  432. package/dist/Plugins/code/langIcons/Json5Icon.js +100 -82
  433. package/dist/Plugins/code/langIcons/JsonIcon.js +89 -56
  434. package/dist/Plugins/code/langIcons/JsonnetIcon.js +102 -86
  435. package/dist/Plugins/code/langIcons/JuliaIcon.js +105 -52
  436. package/dist/Plugins/code/langIcons/KotlinIcon.js +104 -74
  437. package/dist/Plugins/code/langIcons/KustoIcon.js +90 -57
  438. package/dist/Plugins/code/langIcons/LessIcon.js +90 -57
  439. package/dist/Plugins/code/langIcons/LiquidIcon.js +91 -58
  440. package/dist/Plugins/code/langIcons/LispIcon.js +89 -56
  441. package/dist/Plugins/code/langIcons/LuaIcon.js +93 -60
  442. package/dist/Plugins/code/langIcons/MakefileIcon.js +91 -58
  443. package/dist/Plugins/code/langIcons/MarkdownIcon.js +89 -56
  444. package/dist/Plugins/code/langIcons/MarkojsIcon.js +96 -73
  445. package/dist/Plugins/code/langIcons/MatlabIcon.js +93 -64
  446. package/dist/Plugins/code/langIcons/MdxIcon.js +90 -53
  447. package/dist/Plugins/code/langIcons/MermaidIcon.js +95 -64
  448. package/dist/Plugins/code/langIcons/MojoIcon.js +95 -62
  449. package/dist/Plugins/code/langIcons/NginxIcon.js +94 -61
  450. package/dist/Plugins/code/langIcons/NimIcon.js +91 -54
  451. package/dist/Plugins/code/langIcons/NixIcon.js +92 -56
  452. package/dist/Plugins/code/langIcons/ObjectiveCIcon.js +90 -59
  453. package/dist/Plugins/code/langIcons/ObjectiveCppIcon.js +90 -57
  454. package/dist/Plugins/code/langIcons/OcamlIcon.js +90 -61
  455. package/dist/Plugins/code/langIcons/PascalIcon.js +95 -55
  456. package/dist/Plugins/code/langIcons/Perl6Icon.js +299 -320
  457. package/dist/Plugins/code/langIcons/PerlIcon.js +89 -56
  458. package/dist/Plugins/code/langIcons/PhpIcon.js +89 -52
  459. package/dist/Plugins/code/langIcons/PostcssIcon.js +130 -113
  460. package/dist/Plugins/code/langIcons/PowershellIcon.js +91 -58
  461. package/dist/Plugins/code/langIcons/PrismaIcon.js +97 -68
  462. package/dist/Plugins/code/langIcons/PrologIcon.js +91 -58
  463. package/dist/Plugins/code/langIcons/ProtoIcon.js +94 -68
  464. package/dist/Plugins/code/langIcons/PugIcon.js +177 -145
  465. package/dist/Plugins/code/langIcons/PuppetIcon.js +96 -52
  466. package/dist/Plugins/code/langIcons/PurescriptIcon.js +93 -61
  467. package/dist/Plugins/code/langIcons/PythonIcon.js +90 -61
  468. package/dist/Plugins/code/langIcons/RIcon.js +89 -52
  469. package/dist/Plugins/code/langIcons/RazorIcon.js +90 -57
  470. package/dist/Plugins/code/langIcons/ReactIcon.js +89 -56
  471. package/dist/Plugins/code/langIcons/ReactTsIcon.js +90 -57
  472. package/dist/Plugins/code/langIcons/RubyIcon.js +91 -58
  473. package/dist/Plugins/code/langIcons/RustIcon.js +89 -56
  474. package/dist/Plugins/code/langIcons/SasIcon.js +89 -52
  475. package/dist/Plugins/code/langIcons/SassIcon.js +90 -57
  476. package/dist/Plugins/code/langIcons/ScalaIcon.js +96 -53
  477. package/dist/Plugins/code/langIcons/SchemeIcon.js +91 -58
  478. package/dist/Plugins/code/langIcons/ShaderlabIcon.js +89 -56
  479. package/dist/Plugins/code/langIcons/SolidityIcon.js +94 -52
  480. package/dist/Plugins/code/langIcons/SparqlIcon.js +94 -64
  481. package/dist/Plugins/code/langIcons/StataIcon.js +126 -108
  482. package/dist/Plugins/code/langIcons/StylusIcon.js +92 -59
  483. package/dist/Plugins/code/langIcons/SvelteIcon.js +91 -58
  484. package/dist/Plugins/code/langIcons/SwiftIcon.js +90 -57
  485. package/dist/Plugins/code/langIcons/SystemverilogIcon.js +115 -102
  486. package/dist/Plugins/code/langIcons/TclIcon.js +89 -52
  487. package/dist/Plugins/code/langIcons/TexIcon.js +99 -65
  488. package/dist/Plugins/code/langIcons/TomlIcon.js +94 -70
  489. package/dist/Plugins/code/langIcons/TwigIcon.js +89 -56
  490. package/dist/Plugins/code/langIcons/TypescriptIcon.js +93 -60
  491. package/dist/Plugins/code/langIcons/VerilogIcon.js +89 -56
  492. package/dist/Plugins/code/langIcons/VhdlIcon.js +94 -64
  493. package/dist/Plugins/code/langIcons/VimIcon.js +278 -420
  494. package/dist/Plugins/code/langIcons/VueIcon.js +92 -59
  495. package/dist/Plugins/code/langIcons/WebassemblyIcon.js +103 -76
  496. package/dist/Plugins/code/langIcons/WenyanIcon.js +104 -100
  497. package/dist/Plugins/code/langIcons/WgslIcon.js +93 -77
  498. package/dist/Plugins/code/langIcons/WolframlanguageIcon.js +100 -71
  499. package/dist/Plugins/code/langIcons/XmlIcon.js +89 -52
  500. package/dist/Plugins/code/langIcons/XslIcon.js +94 -66
  501. package/dist/Plugins/code/langIcons/YamlIcon.js +89 -56
  502. package/dist/Plugins/code/langIcons/ZigIcon.js +106 -81
  503. package/dist/Plugins/code/langIcons/index.js +128 -259
  504. package/dist/Plugins/code/utils/index.js +5 -5
  505. package/dist/Plugins/code/utils/langOptions.js +86 -11
  506. package/dist/Plugins/defaultPlugins.js +9 -13
  507. package/dist/Plugins/formatter/index.js +205 -105
  508. package/dist/Plugins/index.js +6 -2
  509. package/dist/Plugins/katex/InlineKatex.js +196 -107
  510. package/dist/Plugins/katex/Katex.js +139 -65
  511. package/dist/Plugins/katex/index.js +163 -103
  512. package/dist/Plugins/mermaid/Mermaid.js +472 -197
  513. package/dist/Plugins/mermaid/index.js +237 -142
  514. package/dist/Quote/index.js +112 -73
  515. package/dist/Quote/style.js +176 -160
  516. package/dist/Schema/SchemaEditor/AceEditorWrapper.js +163 -119
  517. package/dist/Schema/SchemaEditor/index.js +385 -275
  518. package/dist/Schema/SchemaEditor/style.js +261 -269
  519. package/dist/Schema/SchemaForm/index.js +443 -268
  520. package/dist/Schema/SchemaForm/types.js +1 -0
  521. package/dist/Schema/SchemaRenderer/index.js +973 -588
  522. package/dist/Schema/SchemaRenderer/templateEngine.js +106 -26
  523. package/dist/Schema/index.js +7 -11
  524. package/dist/Schema/types.js +1 -0
  525. package/dist/Schema/validator.js +74 -36
  526. package/dist/TaskList/index.js +197 -142
  527. package/dist/TaskList/style.js +143 -122
  528. package/dist/ThoughtChainList/CostMillis.js +88 -54
  529. package/dist/ThoughtChainList/DeepThink.js +187 -152
  530. package/dist/ThoughtChainList/DotAni/index.js +29 -14
  531. package/dist/ThoughtChainList/DotAni/style.js +82 -50
  532. package/dist/ThoughtChainList/FlipText/index.js +74 -30
  533. package/dist/ThoughtChainList/MarkdownEditor.js +126 -72
  534. package/dist/ThoughtChainList/RagRetrievalInfo.js +113 -145
  535. package/dist/ThoughtChainList/TableSql.js +413 -459
  536. package/dist/ThoughtChainList/ThoughtChainListItem.js +388 -222
  537. package/dist/ThoughtChainList/TitleInfo.js +189 -185
  538. package/dist/ThoughtChainList/ToolCall.js +429 -463
  539. package/dist/ThoughtChainList/WebSearch.js +192 -162
  540. package/dist/ThoughtChainList/index.js +449 -410
  541. package/dist/ThoughtChainList/style.js +253 -232
  542. package/dist/ThoughtChainList/types.js +1 -0
  543. package/dist/ToolUseBar/ToolUseBarItem.js +183 -139
  544. package/dist/ToolUseBar/ToolUseBarItemComponents.js +345 -276
  545. package/dist/ToolUseBar/ToolUseBarThink.js +335 -396
  546. package/dist/ToolUseBar/index.js +226 -113
  547. package/dist/ToolUseBar/style.js +334 -308
  548. package/dist/ToolUseBar/thinkStyle.js +350 -328
  549. package/dist/Types/common.js +1 -0
  550. package/dist/Types/index.js +4 -2
  551. package/dist/Types/message.js +1 -0
  552. package/dist/Utils/easings.js +9 -12
  553. package/dist/Utils/formatTime.js +41 -17
  554. package/dist/Utils/getScroll.js +41 -41
  555. package/dist/Utils/language.js +355 -150
  556. package/dist/Utils/proxySandbox/ProxySandbox.js +1637 -1076
  557. package/dist/Utils/proxySandbox/SecurityContextManager.js +607 -343
  558. package/dist/Utils/proxySandbox/index.js +554 -267
  559. package/dist/Utils/proxySandbox/types.js +187 -52
  560. package/dist/Utils/scrollTo.js +48 -56
  561. package/dist/Utils/throttleByAnimationFrame.js +46 -20
  562. package/dist/WelcomeMessage/index.js +106 -58
  563. package/dist/WelcomeMessage/style.js +80 -55
  564. package/dist/Workspace/Browser/index.js +102 -40
  565. package/dist/Workspace/Browser/style.js +62 -33
  566. package/dist/Workspace/File/DataSourceStrategy.js +419 -217
  567. package/dist/Workspace/File/FileComponent.js +1004 -791
  568. package/dist/Workspace/File/FileTypeProcessor.js +337 -184
  569. package/dist/Workspace/File/PreviewComponent.js +472 -532
  570. package/dist/Workspace/File/index.js +3 -10
  571. package/dist/Workspace/File/style.js +397 -424
  572. package/dist/Workspace/File/utils.js +160 -106
  573. package/dist/Workspace/HtmlPreview/index.js +238 -137
  574. package/dist/Workspace/HtmlPreview/style.js +99 -77
  575. package/dist/Workspace/RealtimeFollow/index.js +411 -413
  576. package/dist/Workspace/RealtimeFollow/style.js +299 -303
  577. package/dist/Workspace/Task/index.js +53 -35
  578. package/dist/Workspace/Task/style.js +99 -73
  579. package/dist/Workspace/index.js +332 -254
  580. package/dist/Workspace/style.js +165 -146
  581. package/dist/Workspace/types.js +471 -252
  582. package/dist/Workspace/utils/codeLanguageUtils.js +148 -129
  583. package/dist/Workspace/utils.js +28 -20
  584. package/dist/index.js +27 -17
  585. package/package.json +3 -2
@@ -1,328 +1,591 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _define_property(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
16
19
  }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
-
21
- // src/MarkdownEditor/editor/tools/Leading.tsx
20
+ return obj;
21
+ }
22
+ function _iterable_to_array_limit(arr, i) {
23
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
+ if (_i == null) return;
25
+ var _arr = [];
26
+ var _n = true;
27
+ var _d = false;
28
+ var _s, _e;
29
+ try {
30
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
31
+ _arr.push(_s.value);
32
+ if (i && _arr.length === i) break;
33
+ }
34
+ } catch (err) {
35
+ _d = true;
36
+ _e = err;
37
+ } finally{
38
+ try {
39
+ if (!_n && _i["return"] != null) _i["return"]();
40
+ } finally{
41
+ if (_d) throw _e;
42
+ }
43
+ }
44
+ return _arr;
45
+ }
46
+ function _non_iterable_rest() {
47
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
+ }
49
+ function _object_spread(target) {
50
+ for(var i = 1; i < arguments.length; i++){
51
+ var source = arguments[i] != null ? arguments[i] : {};
52
+ var ownKeys = Object.keys(source);
53
+ if (typeof Object.getOwnPropertySymbols === "function") {
54
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
55
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
56
+ }));
57
+ }
58
+ ownKeys.forEach(function(key) {
59
+ _define_property(target, key, source[key]);
60
+ });
61
+ }
62
+ return target;
63
+ }
64
+ function ownKeys(object, enumerableOnly) {
65
+ var keys = Object.keys(object);
66
+ if (Object.getOwnPropertySymbols) {
67
+ var symbols = Object.getOwnPropertySymbols(object);
68
+ if (enumerableOnly) {
69
+ symbols = symbols.filter(function(sym) {
70
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
71
+ });
72
+ }
73
+ keys.push.apply(keys, symbols);
74
+ }
75
+ return keys;
76
+ }
77
+ function _object_spread_props(target, source) {
78
+ source = source != null ? source : {};
79
+ if (Object.getOwnPropertyDescriptors) {
80
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
81
+ } else {
82
+ ownKeys(Object(source)).forEach(function(key) {
83
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
84
+ });
85
+ }
86
+ return target;
87
+ }
88
+ function _sliced_to_array(arr, i) {
89
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
90
+ }
91
+ function _unsupported_iterable_to_array(o, minLen) {
92
+ if (!o) return;
93
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
94
+ var n = Object.prototype.toString.call(o).slice(8, -1);
95
+ if (n === "Object" && o.constructor) n = o.constructor.name;
96
+ if (n === "Map" || n === "Set") return Array.from(n);
97
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
98
+ }
22
99
  import { Anchor, ConfigProvider } from "antd";
23
100
  import { nanoid } from "nanoid";
24
- import React, {
25
- useCallback,
26
- useEffect,
27
- useMemo,
28
- useRef,
29
- useState
30
- } from "react";
101
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
31
102
  import { Node } from "slate";
32
- import {
33
- useDebounce,
34
- useGetSetState
35
- } from "../../BaseMarkdownEditor";
103
+ import { useDebounce, useGetSetState } from "../../BaseMarkdownEditor";
36
104
  import { useEditorStore } from "../store";
37
105
  import { getOffsetTop, slugify } from "../utils/dom";
38
- var TocTitle = ({ children }) => {
39
- return /* @__PURE__ */ React.createElement(
40
- "span",
41
- {
42
- style: {
43
- maxWidth: 200,
44
- display: "inline-block",
45
- overflow: "hidden",
46
- textOverflow: "ellipsis",
47
- whiteSpace: "nowrap",
48
- fontSize: 14
49
- }
50
- },
51
- children
52
- );
106
+ var TocTitle = function(param) {
107
+ var children = param.children;
108
+ return /*#__PURE__*/ React.createElement("span", {
109
+ style: {
110
+ maxWidth: 200,
111
+ display: 'inline-block',
112
+ overflow: 'hidden',
113
+ textOverflow: 'ellipsis',
114
+ whiteSpace: 'nowrap',
115
+ fontSize: 14
116
+ }
117
+ }, children);
53
118
  };
54
- var cache = /* @__PURE__ */ new Map();
55
- function buildTree(headers) {
56
- const root = {
57
- title: "",
58
- children: [],
59
- id: "",
60
- key: nanoid()
61
- };
62
- if (!headers.length)
63
- return root;
64
- const stack = [{ node: root, level: 0 }];
65
- for (const header of headers) {
66
- const newNode = {
67
- title: header.title,
68
- children: [],
69
- id: header.id,
70
- key: nanoid(),
71
- level: header.level
119
+ /**
120
+ * 目录项缓存
121
+ *
122
+ * 使用 WeakMap 可以避免内存泄漏,当 schema 对象被垃圾回收时,
123
+ * 对应的缓存也会自动清理
124
+ */ var cache = new Map();
125
+ /**
126
+ * 构建目录树
127
+ *
128
+ * 将扁平的标题列表转换为层次化的树结构,支持任意层级嵌套
129
+ *
130
+ * @param headers - 扁平的标题列表
131
+ * @returns 构建好的目录树根节点
132
+ */ function buildTree(headers) {
133
+ // 创建虚拟根节点,用于统一处理顶级节点
134
+ var root = {
135
+ title: '',
136
+ children: [],
137
+ id: '',
138
+ key: nanoid()
72
139
  };
73
- while (stack.length > 0 && stack[stack.length - 1].level >= header.level) {
74
- stack.pop();
75
- }
76
- if (stack.length === 0) {
77
- stack.push({ node: root, level: 0 });
140
+ // 如果没有标题,直接返回空的根节点
141
+ if (!headers.length) return root;
142
+ // 使用栈来维护当前的层级路径
143
+ var stack = [
144
+ {
145
+ node: root,
146
+ level: 0
147
+ }
148
+ ];
149
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
150
+ try {
151
+ for(var _iterator = headers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
152
+ var header = _step.value;
153
+ var newNode = {
154
+ title: header.title,
155
+ children: [],
156
+ id: header.id,
157
+ key: nanoid(),
158
+ level: header.level
159
+ };
160
+ // 关键逻辑:找到合适的父节点
161
+ // 如果当前标题的层级小于等于栈顶节点的层级,需要弹出栈直到找到合适的父节点
162
+ while(stack.length > 0 && stack[stack.length - 1].level >= header.level){
163
+ stack.pop();
164
+ }
165
+ // 安全检查:如果栈为空,重置为根节点
166
+ if (stack.length === 0) {
167
+ stack.push({
168
+ node: root,
169
+ level: 0
170
+ });
171
+ }
172
+ // 当前栈顶即为父节点
173
+ var parent = stack[stack.length - 1].node;
174
+ parent.children.push(newNode);
175
+ // 将新节点压入栈,以便后续节点可能作为其子节点
176
+ stack.push({
177
+ node: newNode,
178
+ level: header.level
179
+ });
180
+ }
181
+ } catch (err) {
182
+ _didIteratorError = true;
183
+ _iteratorError = err;
184
+ } finally{
185
+ try {
186
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
187
+ _iterator.return();
188
+ }
189
+ } finally{
190
+ if (_didIteratorError) {
191
+ throw _iteratorError;
192
+ }
193
+ }
78
194
  }
79
- const parent = stack[stack.length - 1].node;
80
- parent.children.push(newNode);
81
- stack.push({ node: newNode, level: header.level });
82
- }
83
- return root;
195
+ return root;
84
196
  }
85
- function convertToAnchorItems(node) {
86
- var _a;
87
- if (!((_a = node.children) == null ? void 0 : _a.length))
88
- return [];
89
- return node.children.map((child) => {
90
- var _a2;
91
- return {
92
- id: child.id,
93
- key: child.key,
94
- href: `#${slugify(child.id)}`,
95
- title: /* @__PURE__ */ React.createElement(TocTitle, { key: `title-${child.id}` }, child.title),
96
- // 支持二级子标题
97
- children: (_a2 = child.children) == null ? void 0 : _a2.map((subChild) => {
98
- var _a3;
197
+ /**
198
+ * 将目录树转换为 Anchor 组件所需的数据格式
199
+ *
200
+ * 递归地将 TreeNode 结构转换为 AnchorItem 结构,
201
+ * 只支持最多3层嵌套以保证良好的用户体验
202
+ *
203
+ * @param node - 目录树节点
204
+ * @returns Anchor 组件的数据项数组
205
+ */ function convertToAnchorItems(node) {
206
+ var _node_children;
207
+ // 如果节点没有子节点,返回空数组
208
+ if (!((_node_children = node.children) === null || _node_children === void 0 ? void 0 : _node_children.length)) return [];
209
+ return node.children.map(function(child) {
210
+ var _child_children;
99
211
  return {
100
- id: subChild.id,
101
- key: subChild.key,
102
- href: `#${slugify(subChild.id)}`,
103
- title: /* @__PURE__ */ React.createElement(TocTitle, { key: `title-${subChild.id}` }, subChild.title),
104
- // 支持三级子标题(最大深度)
105
- children: (_a3 = subChild.children) == null ? void 0 : _a3.map((subSubChild) => ({
106
- id: subSubChild.id,
107
- key: subSubChild.key,
108
- href: `#${slugify(subSubChild.id)}`,
109
- title: /* @__PURE__ */ React.createElement(TocTitle, { key: `title-${subSubChild.id}` }, subSubChild.title)
110
- }))
212
+ id: child.id,
213
+ key: child.key,
214
+ href: "#".concat(slugify(child.id)),
215
+ title: /*#__PURE__*/ React.createElement(TocTitle, {
216
+ key: "title-".concat(child.id)
217
+ }, child.title),
218
+ // 支持二级子标题
219
+ children: (_child_children = child.children) === null || _child_children === void 0 ? void 0 : _child_children.map(function(subChild) {
220
+ var _subChild_children;
221
+ return {
222
+ id: subChild.id,
223
+ key: subChild.key,
224
+ href: "#".concat(slugify(subChild.id)),
225
+ title: /*#__PURE__*/ React.createElement(TocTitle, {
226
+ key: "title-".concat(subChild.id)
227
+ }, subChild.title),
228
+ // 支持三级子标题(最大深度)
229
+ children: (_subChild_children = subChild.children) === null || _subChild_children === void 0 ? void 0 : _subChild_children.map(function(subSubChild) {
230
+ return {
231
+ id: subSubChild.id,
232
+ key: subSubChild.key,
233
+ href: "#".concat(slugify(subSubChild.id)),
234
+ title: /*#__PURE__*/ React.createElement(TocTitle, {
235
+ key: "title-".concat(subSubChild.id)
236
+ }, subSubChild.title)
237
+ };
238
+ })
239
+ };
240
+ }),
241
+ level: child.level
111
242
  };
112
- }),
113
- level: child.level
114
- };
115
- });
243
+ });
116
244
  }
117
- var TocContainer = ({ children, containerRef }) => {
118
- const [containerRect, setContainerRect] = useState(null);
119
- useEffect(() => {
120
- const updateRect = () => {
121
- if (containerRef.current) {
122
- setContainerRect(containerRef.current.getBoundingClientRect());
123
- }
124
- };
125
- updateRect();
126
- window.addEventListener("resize", updateRect);
127
- window.addEventListener("scroll", updateRect);
128
- return () => {
129
- window.removeEventListener("resize", updateRect);
130
- window.removeEventListener("scroll", updateRect);
131
- };
132
- }, [containerRef]);
133
- const shouldRenderInContainer = useMemo(() => {
134
- if (!containerRect)
135
- return false;
136
- const isInViewport = containerRect.top < window.innerHeight && containerRect.bottom > 0;
137
- const hasEnoughSpace = containerRect.height > 200;
138
- return isInViewport && hasEnoughSpace;
139
- }, [containerRect]);
140
- return /* @__PURE__ */ React.createElement(
141
- ConfigProvider,
142
- {
143
- getPopupContainer: () => {
144
- if (shouldRenderInContainer && containerRef.current) {
145
- return containerRef.current;
146
- }
147
- return document.body;
148
- },
149
- getTargetContainer: () => containerRef.current || document.body
150
- },
151
- children
152
- );
153
- };
154
- var TocHeading = ({
155
- schema,
156
- anchorProps,
157
- useCustomContainer = true
158
- }) => {
159
- const { markdownContainerRef } = useEditorStore();
160
- const [state, setState] = useGetSetState({
161
- headings: [],
162
- active: ""
163
- });
164
- const isScrollingInternally = useRef(false);
165
- const getHeading = useCallback(() => {
166
- if (!(schema == null ? void 0 : schema.length)) {
167
- setState({ headings: [] });
168
- return;
169
- }
170
- const headings = [];
171
- for (const s of schema) {
172
- if (s.type === "head" && s.level <= 4) {
173
- const title = Node.string(s);
174
- const id = slugify(title);
175
- if (!title)
176
- continue;
177
- const cached = cache.get(s);
178
- if (cached) {
179
- headings.push(cached);
180
- continue;
181
- }
182
- const heading = {
183
- title,
184
- level: s.level,
185
- id,
186
- key: nanoid(),
187
- schema: s
245
+ /**
246
+ * 目录容器组件
247
+ * 用于处理目录的边界和溢出情况
248
+ */ var TocContainer = function(param) {
249
+ var children = param.children, containerRef = param.containerRef;
250
+ var _useState = _sliced_to_array(useState(null), 2), containerRect = _useState[0], setContainerRect = _useState[1];
251
+ useEffect(function() {
252
+ var updateRect = function() {
253
+ if (containerRef.current) {
254
+ setContainerRect(containerRef.current.getBoundingClientRect());
255
+ }
188
256
  };
189
- cache.set(s, heading);
190
- headings.push(heading);
191
- }
192
- }
193
- setState({ headings });
194
- }, [schema, setState]);
195
- useEffect(() => {
196
- cache.clear();
197
- getHeading();
198
- }, [schema, getHeading]);
199
- useDebounce(getHeading, 100, [schema]);
200
- useEffect(() => {
201
- const container = markdownContainerRef.current;
202
- if (!container)
203
- return;
204
- const handleScroll = (e) => {
205
- if (!isScrollingInternally.current)
206
- return;
207
- const target = e.target;
208
- const scrollTop = target.scrollTop;
209
- const currentHeadings = state().headings.slice().reverse();
210
- for (const heading of currentHeadings) {
211
- const element = document.getElementById(heading.id);
212
- if (element && scrollTop > getOffsetTop(element, container) - 20) {
213
- setState({ active: heading.id });
214
- return;
257
+ updateRect();
258
+ window.addEventListener('resize', updateRect);
259
+ window.addEventListener('scroll', updateRect);
260
+ return function() {
261
+ window.removeEventListener('resize', updateRect);
262
+ window.removeEventListener('scroll', updateRect);
263
+ };
264
+ }, [
265
+ containerRef
266
+ ]);
267
+ // 检查容器是否在视口内且有足够的空间
268
+ var shouldRenderInContainer = useMemo(function() {
269
+ if (!containerRect) return false;
270
+ var isInViewport = containerRect.top < window.innerHeight && containerRect.bottom > 0;
271
+ var hasEnoughSpace = containerRect.height > 200; // 最小高度要求
272
+ return isInViewport && hasEnoughSpace;
273
+ }, [
274
+ containerRect
275
+ ]);
276
+ return /*#__PURE__*/ React.createElement(ConfigProvider, {
277
+ getPopupContainer: function() {
278
+ if (shouldRenderInContainer && containerRef.current) {
279
+ return containerRef.current;
280
+ }
281
+ return document.body;
282
+ },
283
+ getTargetContainer: function() {
284
+ return containerRef.current || document.body;
215
285
  }
216
- }
217
- setState({ active: "" });
218
- };
219
- container.addEventListener("scroll", handleScroll, { passive: true });
220
- return () => {
221
- container.removeEventListener("scroll", handleScroll);
222
- };
223
- }, [markdownContainerRef, setState, state]);
224
- useEffect(() => {
225
- const handleScroll = () => {
226
- if (typeof window === "undefined")
227
- return;
228
- if (isScrollingInternally.current)
229
- return;
230
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
231
- const currentHeadings = state().headings.slice().reverse();
232
- for (const heading of currentHeadings) {
233
- const element = document.getElementById(heading.id);
234
- if (element) {
235
- const elementTop = element.getBoundingClientRect().top + scrollTop;
236
- if (scrollTop >= elementTop - 100) {
237
- setState({ active: heading.id });
286
+ }, children);
287
+ };
288
+ /**
289
+ * 目录组件
290
+ *
291
+ * 基于编辑器内容自动生成目录,支持:
292
+ * - 自动提取1-4级标题
293
+ * - 智能滚动定位和高亮
294
+ * - 内部滚动和页面滚动的双重支持
295
+ * - 性能优化的缓存机制
296
+ *
297
+ * @param schema - 编辑器的内容数据
298
+ * @param anchorProps - 传递给 Anchor 组件的额外属性
299
+ * @returns 目录组件
300
+ */ export var TocHeading = function(param) {
301
+ var schema = param.schema, anchorProps = param.anchorProps, _param_useCustomContainer = param.useCustomContainer, useCustomContainer = _param_useCustomContainer === void 0 ? true : _param_useCustomContainer;
302
+ var markdownContainerRef = useEditorStore().markdownContainerRef;
303
+ // 使用 useGetSetState 管理组件状态
304
+ var _useGetSetState = _sliced_to_array(useGetSetState({
305
+ headings: [],
306
+ active: ''
307
+ }), 2), state = _useGetSetState[0], setState = _useGetSetState[1];
308
+ // 用于标识是否正在进行内部滚动的标志
309
+ var isScrollingInternally = useRef(false);
310
+ /**
311
+ * 从 schema 中提取标题信息
312
+ *
313
+ * 遍历 schema 数组,提取所有的标题元素(type 为 'head' 且 level 小于等于 4)
314
+ * 使用缓存机制避免重复处理相同的 schema 对象
315
+ */ var getHeading = useCallback(function() {
316
+ // 如果没有 schema 数据,清空标题列表
317
+ if (!(schema === null || schema === void 0 ? void 0 : schema.length)) {
318
+ setState({
319
+ headings: []
320
+ });
238
321
  return;
239
- }
240
322
  }
241
- }
242
- setState({ active: "" });
243
- };
244
- window.addEventListener("scroll", handleScroll, { passive: true });
245
- return () => {
246
- window.removeEventListener("scroll", handleScroll);
247
- };
248
- }, [setState, state]);
249
- const handleAnchorClick = useCallback(
250
- (e, link) => {
251
- e.preventDefault();
252
- const targetId = link.href.split("#")[1];
253
- const targetElement = document.getElementById(targetId);
254
- if (!targetElement) {
255
- console.warn(`Target element with id "${targetId}" not found`);
256
- return;
257
- }
258
- const container = markdownContainerRef.current;
259
- if (container && container.contains(targetElement)) {
260
- isScrollingInternally.current = true;
261
- const offsetTop = getOffsetTop(targetElement, container);
262
- container.scrollTo({
263
- top: offsetTop - 20,
264
- // 预留20px的缓冲空间
265
- behavior: "smooth"
323
+ var headings = [];
324
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
325
+ try {
326
+ // 遍历 schema 提取标题
327
+ for(var _iterator = schema[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
328
+ var s = _step.value;
329
+ // 只处理标题类型且层级不超过4的元素
330
+ if (s.type === 'head' && s.level <= 4) {
331
+ var title = Node.string(s);
332
+ var id = slugify(title);
333
+ // 跳过空标题
334
+ if (!title) continue;
335
+ // 检查缓存
336
+ var cached = cache.get(s);
337
+ if (cached) {
338
+ headings.push(cached);
339
+ continue;
340
+ }
341
+ // 创建新的标题对象
342
+ var heading = {
343
+ title: title,
344
+ level: s.level,
345
+ id: id,
346
+ key: nanoid(),
347
+ schema: s
348
+ };
349
+ // 缓存标题对象
350
+ cache.set(s, heading);
351
+ headings.push(heading);
352
+ }
353
+ }
354
+ } catch (err) {
355
+ _didIteratorError = true;
356
+ _iteratorError = err;
357
+ } finally{
358
+ try {
359
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
360
+ _iterator.return();
361
+ }
362
+ } finally{
363
+ if (_didIteratorError) {
364
+ throw _iteratorError;
365
+ }
366
+ }
367
+ }
368
+ setState({
369
+ headings: headings
266
370
  });
267
- setTimeout(() => {
268
- isScrollingInternally.current = false;
269
- }, 500);
270
- } else {
271
- isScrollingInternally.current = false;
272
- targetElement.scrollIntoView({
273
- behavior: "smooth",
274
- block: "start"
371
+ }, [
372
+ schema,
373
+ setState
374
+ ]);
375
+ // schema 发生变化时重新提取标题
376
+ useEffect(function() {
377
+ cache.clear(); // 清理缓存,避免内存泄漏
378
+ getHeading();
379
+ }, [
380
+ schema,
381
+ getHeading
382
+ ]);
383
+ // 使用防抖优化频繁的 schema 变化
384
+ useDebounce(getHeading, 100, [
385
+ schema
386
+ ]);
387
+ /**
388
+ * 处理内部容器滚动
389
+ *
390
+ * 当编辑器内部发生滚动时,更新当前激活的标题
391
+ */ useEffect(function() {
392
+ var container = markdownContainerRef.current;
393
+ if (!container) return;
394
+ var handleScroll = function(e) {
395
+ // 只在内部滚动时处理
396
+ if (!isScrollingInternally.current) return;
397
+ var target = e.target;
398
+ var scrollTop = target.scrollTop;
399
+ var currentHeadings = state().headings.slice().reverse();
400
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
401
+ try {
402
+ // 从下往上查找第一个滚动位置超过的标题
403
+ for(var _iterator = currentHeadings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
404
+ var heading = _step.value;
405
+ var element = document.getElementById(heading.id);
406
+ if (element && scrollTop > getOffsetTop(element, container) - 20) {
407
+ setState({
408
+ active: heading.id
409
+ });
410
+ return;
411
+ }
412
+ }
413
+ } catch (err) {
414
+ _didIteratorError = true;
415
+ _iteratorError = err;
416
+ } finally{
417
+ try {
418
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
419
+ _iterator.return();
420
+ }
421
+ } finally{
422
+ if (_didIteratorError) {
423
+ throw _iteratorError;
424
+ }
425
+ }
426
+ }
427
+ // 如果没有找到合适的标题,清空激活状态
428
+ setState({
429
+ active: ''
430
+ });
431
+ };
432
+ container.addEventListener('scroll', handleScroll, {
433
+ passive: true
434
+ });
435
+ return function() {
436
+ container.removeEventListener('scroll', handleScroll);
437
+ };
438
+ }, [
439
+ markdownContainerRef,
440
+ setState,
441
+ state
442
+ ]);
443
+ /**
444
+ * 处理页面滚动
445
+ *
446
+ * 当页面发生滚动时,更新当前激活的标题
447
+ * 只在非内部滚动时处理,避免冲突
448
+ */ useEffect(function() {
449
+ var handleScroll = function() {
450
+ // 服务端渲染检查
451
+ if (typeof window === 'undefined') return;
452
+ // 如果正在进行内部滚动,忽略页面滚动
453
+ if (isScrollingInternally.current) return;
454
+ var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
455
+ var currentHeadings = state().headings.slice().reverse();
456
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
457
+ try {
458
+ // 从下往上查找第一个滚动位置超过的标题
459
+ for(var _iterator = currentHeadings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
460
+ var heading = _step.value;
461
+ var element = document.getElementById(heading.id);
462
+ if (element) {
463
+ var elementTop = element.getBoundingClientRect().top + scrollTop;
464
+ if (scrollTop >= elementTop - 100) {
465
+ setState({
466
+ active: heading.id
467
+ });
468
+ return;
469
+ }
470
+ }
471
+ }
472
+ } catch (err) {
473
+ _didIteratorError = true;
474
+ _iteratorError = err;
475
+ } finally{
476
+ try {
477
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
478
+ _iterator.return();
479
+ }
480
+ } finally{
481
+ if (_didIteratorError) {
482
+ throw _iteratorError;
483
+ }
484
+ }
485
+ }
486
+ // 如果没有找到合适的标题,清空激活状态
487
+ setState({
488
+ active: ''
489
+ });
490
+ };
491
+ window.addEventListener('scroll', handleScroll, {
492
+ passive: true
275
493
  });
276
- setTimeout(() => {
277
- window.scrollBy(0, -100);
278
- }, 100);
279
- }
280
- },
281
- [markdownContainerRef]
282
- );
283
- const treeData = useMemo(
284
- () => buildTree(state().headings),
285
- [state().headings]
286
- );
287
- const items = useMemo(() => convertToAnchorItems(treeData), [treeData]);
288
- if (!items.length) {
289
- return null;
290
- }
291
- if (!useCustomContainer) {
292
- return /* @__PURE__ */ React.createElement(
293
- Anchor,
294
- __spreadProps(__spreadValues({
494
+ return function() {
495
+ window.removeEventListener('scroll', handleScroll);
496
+ };
497
+ }, [
498
+ setState,
499
+ state
500
+ ]);
501
+ /**
502
+ * 处理锚点点击事件
503
+ *
504
+ * 根据目标元素的位置选择合适的滚动方式:
505
+ * - 如果目标在编辑器容器内,使用内部滚动
506
+ * - 否则使用页面滚动
507
+ */ var handleAnchorClick = useCallback(function(e, link) {
508
+ e.preventDefault();
509
+ // 从链接中提取目标 ID
510
+ var targetId = link.href.split('#')[1];
511
+ var targetElement = document.getElementById(targetId);
512
+ if (!targetElement) {
513
+ console.warn('Target element with id "'.concat(targetId, '" not found'));
514
+ return;
515
+ }
516
+ var container = markdownContainerRef.current;
517
+ if (container && container.contains(targetElement)) {
518
+ // 目标元素在容器内部,使用内部滚动
519
+ isScrollingInternally.current = true;
520
+ var offsetTop = getOffsetTop(targetElement, container);
521
+ container.scrollTo({
522
+ top: offsetTop - 20,
523
+ behavior: 'smooth'
524
+ });
525
+ // 滚动完成后重置标志
526
+ setTimeout(function() {
527
+ isScrollingInternally.current = false;
528
+ }, 500);
529
+ } else {
530
+ // 目标元素在容器外部,使用页面滚动
531
+ isScrollingInternally.current = false;
532
+ targetElement.scrollIntoView({
533
+ behavior: 'smooth',
534
+ block: 'start'
535
+ });
536
+ // 补偿固定导航栏的高度
537
+ setTimeout(function() {
538
+ window.scrollBy(0, -100);
539
+ }, 100);
540
+ }
541
+ }, [
542
+ markdownContainerRef
543
+ ]);
544
+ // 使用 useMemo 优化性能,避免不必要的重新计算
545
+ var treeData = useMemo(function() {
546
+ return buildTree(state().headings);
547
+ }, [
548
+ state().headings
549
+ ]);
550
+ var items = useMemo(function() {
551
+ return convertToAnchorItems(treeData);
552
+ }, [
553
+ treeData
554
+ ]);
555
+ // 如果没有目录项,不渲染组件
556
+ if (!items.length) {
557
+ return null;
558
+ }
559
+ // 如果禁用了自定义容器,直接渲染 Anchor
560
+ if (!useCustomContainer) {
561
+ return /*#__PURE__*/ React.createElement(Anchor, _object_spread_props(_object_spread({
562
+ style: {
563
+ minWidth: 200,
564
+ maxHeight: 'min(calc(100vh - 180px), 70vh)',
565
+ overflowY: 'auto',
566
+ overflowX: 'hidden',
567
+ paddingRight: 4
568
+ },
569
+ offsetTop: 96,
570
+ onClick: handleAnchorClick
571
+ }, anchorProps), {
572
+ items: items
573
+ }));
574
+ }
575
+ // 使用自定义容器渲染
576
+ return /*#__PURE__*/ React.createElement(TocContainer, {
577
+ containerRef: markdownContainerRef
578
+ }, /*#__PURE__*/ React.createElement(Anchor, _object_spread_props(_object_spread({
295
579
  style: {
296
- minWidth: 200,
297
- maxHeight: "min(calc(100vh - 180px), 70vh)",
298
- overflowY: "auto",
299
- overflowX: "hidden",
300
- paddingRight: 4
580
+ minWidth: 200,
581
+ maxHeight: 'min(calc(100vh - 180px), 70vh)',
582
+ overflowY: 'auto',
583
+ overflowX: 'hidden',
584
+ paddingRight: 4
301
585
  },
302
586
  offsetTop: 96,
303
587
  onClick: handleAnchorClick
304
- }, anchorProps), {
305
- items
306
- })
307
- );
308
- }
309
- return /* @__PURE__ */ React.createElement(TocContainer, { containerRef: markdownContainerRef }, /* @__PURE__ */ React.createElement(
310
- Anchor,
311
- __spreadProps(__spreadValues({
312
- style: {
313
- minWidth: 200,
314
- maxHeight: "min(calc(100vh - 180px), 70vh)",
315
- overflowY: "auto",
316
- overflowX: "hidden",
317
- paddingRight: 4
318
- },
319
- offsetTop: 96,
320
- onClick: handleAnchorClick
321
588
  }, anchorProps), {
322
- items
323
- })
324
- ));
325
- };
326
- export {
327
- TocHeading
589
+ items: items
590
+ })));
328
591
  };