@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,635 +1,1020 @@
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]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __async = (__this, __arguments, generator) => {
21
- return new Promise((resolve, reject) => {
22
- var fulfilled = (value) => {
23
- try {
24
- step(generator.next(value));
25
- } catch (e) {
26
- reject(e);
27
- }
28
- };
29
- var rejected = (value) => {
30
- try {
31
- step(generator.throw(value));
32
- } catch (e) {
33
- reject(e);
34
- }
35
- };
36
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
- step((generator = generator.apply(__this, __arguments)).next());
38
- });
39
- };
40
-
41
- // src/Schema/SchemaRenderer/index.tsx
42
- import { merge } from "lodash-es";
43
- import Mustache from "mustache";
44
- import React, {
45
- Component,
46
- useEffect,
47
- useMemo,
48
- useRef,
49
- useState
50
- } from "react";
51
- import partialParse from "../../MarkdownEditor/editor/parser/json-parse";
52
- import {
53
- createSandbox,
54
- DEFAULT_SANDBOX_CONFIG
55
- } from "../../Utils/proxySandbox";
56
- import { mdDataSchemaValidator } from "../validator";
57
- import { TemplateEngine } from "./templateEngine";
58
- export * from "./templateEngine";
59
- var createSandboxInstance = (sandboxConfig) => {
60
- var _a, _b;
61
- return createSandbox(__spreadProps(__spreadValues({}, DEFAULT_SANDBOX_CONFIG), {
62
- allowDOM: (_a = sandboxConfig.allowDOM) != null ? _a : true,
63
- allowedGlobals: sandboxConfig.allowedGlobals || DEFAULT_SANDBOX_CONFIG.allowedGlobals,
64
- forbiddenGlobals: sandboxConfig.forbiddenGlobals || DEFAULT_SANDBOX_CONFIG.forbiddenGlobals,
65
- strictMode: (_b = sandboxConfig.strictMode) != null ? _b : true,
66
- timeout: sandboxConfig.timeout || 3e3
67
- }));
68
- };
69
- var createSandboxContext = (shadowRoot) => {
70
- return {
71
- shadowRoot,
72
- safeWindow: {
73
- devicePixelRatio: typeof window !== "undefined" ? window.devicePixelRatio : 1,
74
- innerWidth: typeof window !== "undefined" ? window.innerWidth : 1024,
75
- innerHeight: typeof window !== "undefined" ? window.innerHeight : 768
76
- }
77
- };
78
- };
79
- var executeUnsafeScript = (script, shadowRoot) => {
80
- console.warn("沙箱已禁用,使用不安全的脚本执行方式");
81
- const scriptFn = new Function(
82
- "shadowRoot",
83
- "window",
84
- script.textContent || ""
85
- );
86
- try {
87
- scriptFn(shadowRoot, {
88
- devicePixelRatio: window.devicePixelRatio
89
- });
90
- } catch (evalError) {
91
- console.error("执行脚本错误:", evalError);
92
- }
93
- };
94
- var executeExternalScript = (script, shadowRoot) => {
95
- console.warn("外部脚本暂时不通过沙箱执行:", script.src);
96
- try {
97
- shadowRoot == null ? void 0 : shadowRoot.appendChild(script);
98
- } catch (appendError) {
99
- console.error("Error appending external script:", appendError);
100
- }
101
- };
102
- var executeSandboxedScript = (script, shadowRoot, sandboxConfig) => __async(void 0, null, function* () {
103
- const sandbox = createSandboxInstance(sandboxConfig);
104
- try {
105
- const result = yield sandbox.execute(
106
- script.textContent || "",
107
- createSandboxContext(shadowRoot)
108
- );
109
- if (!result.success && result.error) {
110
- console.error("沙箱脚本执行错误:", result.error);
111
- }
112
- } catch (evalError) {
113
- console.error("沙箱执行失败:", evalError);
114
- } finally {
115
- sandbox.destroy();
116
- }
117
- });
118
- var executeInlineScript = (script, shadowRoot, sandboxConfig) => __async(void 0, null, function* () {
119
- if (!sandboxConfig.enabled) {
120
- executeUnsafeScript(script, shadowRoot);
121
- return;
122
- }
123
- yield executeSandboxedScript(script, shadowRoot, sandboxConfig);
124
- });
125
- var executeScript = (script, shadowRoot, sandboxConfig) => __async(void 0, null, function* () {
126
- try {
127
- if (!script.src && script.textContent) {
128
- yield executeInlineScript(script, shadowRoot, sandboxConfig);
129
- return;
130
- }
131
- if (script.src) {
132
- executeExternalScript(script, shadowRoot);
133
- }
134
- } catch (scriptError) {
135
- console.error("Script execution error:", scriptError);
136
- }
137
- });
138
- var ErrorBoundary = class extends Component {
139
- constructor(props) {
140
- super(props);
141
- this.state = { hasError: false, error: null };
142
- }
143
- static getDerivedStateFromError(error) {
144
- return { hasError: true, error };
145
- }
146
- componentDidCatch(error, errorInfo) {
147
- console.error("SchemaRenderer error:", error, errorInfo);
148
- }
149
- render() {
150
- if (this.state.hasError) {
151
- if (this.props.fallback) {
152
- return this.props.fallback;
153
- }
154
- return /* @__PURE__ */ React.createElement(
155
- "div",
156
- {
157
- style: {
158
- padding: "10px",
159
- border: "1px solid #f5c2c7",
160
- borderRadius: "4px",
161
- background: "#f8d7da",
162
- color: "#842029"
163
- }
164
- },
165
- /* @__PURE__ */ React.createElement("p", null, "Something went wrong rendering this component.")
166
- );
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 _assert_this_initialized(self) {
10
+ if (self === void 0) {
11
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
167
12
  }
168
- return this.props.children;
169
- }
170
- };
171
- var SchemaRenderer = ({
172
- schema,
173
- values,
174
- config,
175
- fallbackContent,
176
- debug = true,
177
- useDefaultValues = true,
178
- onRenderSuccess,
179
- sandboxConfig = {
180
- enabled: true,
181
- allowDOM: true,
182
- timeout: 3e3,
183
- strictMode: true
184
- }
185
- }) => {
186
- const [renderError, setRenderError] = useState(null);
187
- const safeSchema = schema || {};
188
- const safeComponent = safeSchema.component || {};
189
- const initialValues = safeSchema.initialValues || {};
190
- const validationResult = useMemo(() => {
13
+ return self;
14
+ }
15
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
191
16
  try {
192
- return mdDataSchemaValidator.validate(safeSchema);
17
+ var info = gen[key](arg);
18
+ var value = info.value;
193
19
  } catch (error) {
194
- console.error("Schema validation error:", error);
195
- return {
196
- valid: false,
197
- errors: [{ message: "Schema validation failed" }]
198
- };
20
+ reject(error);
21
+ return;
199
22
  }
200
- }, [safeSchema]);
201
- const { properties = {}, type = "html" } = safeComponent;
202
- const templateHtml = safeComponent.schema || "";
203
- const templateData = useMemo(() => {
204
- try {
205
- const defaultValues = useDefaultValues ? Object.entries(properties || {}).reduce(
206
- (data, [key, value]) => {
207
- if (value && "default" in value) {
208
- data[key] = value.default;
209
- }
210
- return data;
211
- },
212
- {}
213
- ) : {};
214
- const mergedData = merge(
215
- defaultValues,
216
- initialValues || {},
217
- values || {}
218
- );
219
- Object.entries(properties || {}).forEach(([key, property]) => {
220
- const val = mergedData[key];
221
- if (property.type === "array" && typeof val === "string") {
222
- try {
223
- mergedData[key] = partialParse(val);
224
- if (!Array.isArray(mergedData[key])) {
225
- mergedData[key] = val.split(",").map((s) => s.trim());
23
+ if (info.done) {
24
+ resolve(value);
25
+ } else {
26
+ Promise.resolve(value).then(_next, _throw);
27
+ }
28
+ }
29
+ function _async_to_generator(fn) {
30
+ return function() {
31
+ var self = this, args = arguments;
32
+ return new Promise(function(resolve, reject) {
33
+ var gen = fn.apply(self, args);
34
+ function _next(value) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
226
36
  }
227
- } catch (e) {
228
- mergedData[key] = val.split(",").map((s) => s.trim());
229
- }
230
- }
231
- if (property.type === "object" && typeof val === "string") {
232
- try {
233
- try {
234
- mergedData[key] = partialParse(val);
235
- } catch (error) {
236
- mergedData[key] = val;
37
+ function _throw(err) {
38
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
237
39
  }
238
- } catch (e) {
239
- mergedData[key] = {};
240
- }
241
- }
242
- });
243
- const dataWithFallbacks = __spreadValues({}, mergedData);
244
- Object.entries(properties || {}).forEach(([key, property]) => {
245
- if (!(key in dataWithFallbacks) || dataWithFallbacks[key] === void 0 || dataWithFallbacks[key] === null) {
246
- switch (property.type) {
247
- case "array":
248
- dataWithFallbacks[key] = [];
249
- break;
250
- case "string":
251
- dataWithFallbacks[key] = "-";
252
- break;
253
- case "number":
254
- dataWithFallbacks[key] = "-";
255
- break;
256
- case "object":
257
- dataWithFallbacks[key] = {};
258
- break;
259
- default:
260
- dataWithFallbacks[key] = "-";
261
- break;
262
- }
263
- }
264
- });
265
- return dataWithFallbacks;
266
- } catch (error) {
267
- console.error("Error preparing template data:", error);
268
- return values || {};
40
+ _next(undefined);
41
+ });
42
+ };
43
+ }
44
+ function _call_super(_this, derived, args) {
45
+ derived = _get_prototype_of(derived);
46
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
47
+ }
48
+ function _class_call_check(instance, Constructor) {
49
+ if (!(instance instanceof Constructor)) {
50
+ throw new TypeError("Cannot call a class as a function");
269
51
  }
270
- }, [properties, values, useDefaultValues, initialValues]);
271
- const renderedHtml = useMemo(() => {
272
- try {
273
- if (type === "html") {
274
- return TemplateEngine.render(templateHtml, templateData);
275
- }
276
- if (type === "mustache") {
277
- return Mustache.render(templateHtml, templateData);
278
- }
279
- return templateHtml;
280
- } catch (error) {
281
- console.error("模板渲染错误:", error);
282
- setRenderError(
283
- `Template rendering error: ${error instanceof Error ? error.message : String(error)}`
284
- );
285
- return "";
52
+ }
53
+ function _defineProperties(target, props) {
54
+ for(var i = 0; i < props.length; i++){
55
+ var descriptor = props[i];
56
+ descriptor.enumerable = descriptor.enumerable || false;
57
+ descriptor.configurable = true;
58
+ if ("value" in descriptor) descriptor.writable = true;
59
+ Object.defineProperty(target, descriptor.key, descriptor);
286
60
  }
287
- }, [templateHtml, templateData, type, config]);
288
- const containerStyle = useMemo(() => {
289
- var _a, _b, _c, _d, _e;
290
- try {
291
- const safeTheme = safeSchema.theme || {};
292
- const safeTypography = safeTheme.typography || {};
293
- const safeSpacing = safeTheme.spacing || {};
294
- return {
295
- fontFamily: safeTypography.fontFamily,
296
- fontSize: `${(_b = (_a = safeTypography.fontSizes) == null ? void 0 : _a[2]) != null ? _b : "14"}px`,
297
- lineHeight: (_d = (_c = safeTypography.lineHeights) == null ? void 0 : _c.normal) != null ? _d : 1.6,
298
- width: (_e = safeSpacing.width) != null ? _e : "max-content",
299
- margin: "1em"
300
- };
301
- } catch (error) {
302
- console.error("Error applying theme styles:", error);
303
- return {
304
- fontSize: "13px",
305
- lineHeight: 1.6,
306
- width: "max-content"
307
- };
61
+ }
62
+ function _create_class(Constructor, protoProps, staticProps) {
63
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
64
+ if (staticProps) _defineProperties(Constructor, staticProps);
65
+ return Constructor;
66
+ }
67
+ function _define_property(obj, key, value) {
68
+ if (key in obj) {
69
+ Object.defineProperty(obj, key, {
70
+ value: value,
71
+ enumerable: true,
72
+ configurable: true,
73
+ writable: true
74
+ });
75
+ } else {
76
+ obj[key] = value;
308
77
  }
309
- }, [safeSchema.theme]);
310
- const containerRef = useRef(null);
311
- useEffect(() => {
312
- var _a, _b, _c, _d;
313
- if (!containerRef.current || !renderedHtml)
314
- return;
78
+ return obj;
79
+ }
80
+ function _get_prototype_of(o) {
81
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
82
+ return o.__proto__ || Object.getPrototypeOf(o);
83
+ };
84
+ return _get_prototype_of(o);
85
+ }
86
+ function _inherits(subClass, superClass) {
87
+ if (typeof superClass !== "function" && superClass !== null) {
88
+ throw new TypeError("Super expression must either be null or a function");
89
+ }
90
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
91
+ constructor: {
92
+ value: subClass,
93
+ writable: true,
94
+ configurable: true
95
+ }
96
+ });
97
+ if (superClass) _set_prototype_of(subClass, superClass);
98
+ }
99
+ function _iterable_to_array_limit(arr, i) {
100
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
101
+ if (_i == null) return;
102
+ var _arr = [];
103
+ var _n = true;
104
+ var _d = false;
105
+ var _s, _e;
315
106
  try {
316
- let shadowRoot = containerRef.current.shadowRoot;
317
- if (!shadowRoot) {
107
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
108
+ _arr.push(_s.value);
109
+ if (i && _arr.length === i) break;
110
+ }
111
+ } catch (err) {
112
+ _d = true;
113
+ _e = err;
114
+ } finally{
318
115
  try {
319
- shadowRoot = containerRef.current.attachShadow({ mode: "open" });
320
- } catch (error) {
321
- console.error("Failed to create shadow root:", error);
322
- containerRef.current.innerHTML = renderedHtml;
323
- return;
116
+ if (!_n && _i["return"] != null) _i["return"]();
117
+ } finally{
118
+ if (_d) throw _e;
324
119
  }
325
- }
326
- const tempContainer = document.createElement("div");
327
- tempContainer.innerHTML = renderedHtml;
328
- shadowRoot.innerHTML = "";
329
- try {
330
- const style = document.createElement("style");
331
- const safeTheme = safeSchema.theme || {};
332
- const safeTypography = safeTheme.typography || {};
333
- style.innerHTML = `
334
- :host {
335
- display: block;
336
- font-family: ${safeTypography.fontFamily || "inherit"};
337
- font-size: ${(_b = (_a = safeTypography.fontSizes) == null ? void 0 : _a[2]) != null ? _b : "14"}px;
338
- line-height: ${(_d = (_c = safeTypography.lineHeights) == null ? void 0 : _c.normal) != null ? _d : 1.6};
339
- }
340
- html, body, div, span, applet, object, iframe,
341
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
342
- a, abbr, acronym, address, big, cite, code,
343
- del, dfn, em, img, ins, kbd, q, s, samp,
344
- small, strike, strong, sub, sup, tt, var,
345
- b, u, i, center,
346
- dl, dt, dd, ol, ul, li,
347
- fieldset, form, label, legend,
348
- table, caption, tbody, tfoot, thead, tr, th, td,
349
- article, aside, canvas, details, embed,
350
- figure, figcaption, footer, header, hgroup,
351
- menu, nav, output, ruby, section, summary,
352
- time, mark, audio, video {
353
- margin: 0;
354
- padding: 0;
355
- border: 0;
356
- font-size: 100%;
357
- font: inherit;
358
- vertical-align: baseline;
120
+ }
121
+ return _arr;
359
122
  }
360
- /* HTML5 display-role reset for older browsers */
361
- article, aside, details, figcaption, figure,
362
- footer, header, hgroup, menu, nav, section {
363
- display: block;
123
+ function _non_iterable_rest() {
124
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
364
125
  }
365
- body {
366
- line-height: 1;
126
+ function _object_spread(target) {
127
+ for(var i = 1; i < arguments.length; i++){
128
+ var source = arguments[i] != null ? arguments[i] : {};
129
+ var ownKeys = Object.keys(source);
130
+ if (typeof Object.getOwnPropertySymbols === "function") {
131
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
132
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
133
+ }));
134
+ }
135
+ ownKeys.forEach(function(key) {
136
+ _define_property(target, key, source[key]);
137
+ });
138
+ }
139
+ return target;
367
140
  }
368
- ol, ul {
369
- list-style: none;
141
+ function ownKeys(object, enumerableOnly) {
142
+ var keys = Object.keys(object);
143
+ if (Object.getOwnPropertySymbols) {
144
+ var symbols = Object.getOwnPropertySymbols(object);
145
+ if (enumerableOnly) {
146
+ symbols = symbols.filter(function(sym) {
147
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
148
+ });
149
+ }
150
+ keys.push.apply(keys, symbols);
151
+ }
152
+ return keys;
370
153
  }
371
- blockquote, q {
372
- quotes: none;
154
+ function _object_spread_props(target, source) {
155
+ source = source != null ? source : {};
156
+ if (Object.getOwnPropertyDescriptors) {
157
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
158
+ } else {
159
+ ownKeys(Object(source)).forEach(function(key) {
160
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
161
+ });
162
+ }
163
+ return target;
373
164
  }
374
- blockquote:before, blockquote:after,
375
- q:before, q:after {
376
- content: '';
377
- content: none;
165
+ function _possible_constructor_return(self, call) {
166
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
167
+ return call;
168
+ }
169
+ return _assert_this_initialized(self);
378
170
  }
379
- table {
380
- border-collapse: collapse;
381
- border-spacing: 0;
171
+ function _set_prototype_of(o, p) {
172
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
173
+ o.__proto__ = p;
174
+ return o;
175
+ };
176
+ return _set_prototype_of(o, p);
382
177
  }
383
- div {
384
- white-space: normal;
385
- overflow-wrap: normal;
178
+ function _sliced_to_array(arr, i) {
179
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
386
180
  }
387
-
388
- a {
389
- text-decoration: none;
390
- white-space: normal;
391
- overflow-wrap: normal;
181
+ function _type_of(obj) {
182
+ "@swc/helpers - typeof";
183
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
392
184
  }
393
-
394
- a:hover {
395
- text-decoration: underline;
185
+ function _unsupported_iterable_to_array(o, minLen) {
186
+ if (!o) return;
187
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
188
+ var n = Object.prototype.toString.call(o).slice(8, -1);
189
+ if (n === "Object" && o.constructor) n = o.constructor.name;
190
+ if (n === "Map" || n === "Set") return Array.from(n);
191
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
396
192
  }
397
-
398
- a:visited {
399
- color: inherit;
193
+ function _is_native_reflect_construct() {
194
+ try {
195
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
196
+ } catch (_) {}
197
+ return (_is_native_reflect_construct = function() {
198
+ return !!result;
199
+ })();
400
200
  }
401
-
402
- a:active {
403
- color: inherit;
201
+ function _ts_generator(thisArg, body) {
202
+ var f, y, t, g, _ = {
203
+ label: 0,
204
+ sent: function() {
205
+ if (t[0] & 1) throw t[1];
206
+ return t[1];
207
+ },
208
+ trys: [],
209
+ ops: []
210
+ };
211
+ return g = {
212
+ next: verb(0),
213
+ "throw": verb(1),
214
+ "return": verb(2)
215
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
216
+ return this;
217
+ }), g;
218
+ function verb(n) {
219
+ return function(v) {
220
+ return step([
221
+ n,
222
+ v
223
+ ]);
224
+ };
225
+ }
226
+ function step(op) {
227
+ if (f) throw new TypeError("Generator is already executing.");
228
+ while(_)try {
229
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
230
+ if (y = 0, t) op = [
231
+ op[0] & 2,
232
+ t.value
233
+ ];
234
+ switch(op[0]){
235
+ case 0:
236
+ case 1:
237
+ t = op;
238
+ break;
239
+ case 4:
240
+ _.label++;
241
+ return {
242
+ value: op[1],
243
+ done: false
244
+ };
245
+ case 5:
246
+ _.label++;
247
+ y = op[1];
248
+ op = [
249
+ 0
250
+ ];
251
+ continue;
252
+ case 7:
253
+ op = _.ops.pop();
254
+ _.trys.pop();
255
+ continue;
256
+ default:
257
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
258
+ _ = 0;
259
+ continue;
260
+ }
261
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
262
+ _.label = op[1];
263
+ break;
264
+ }
265
+ if (op[0] === 6 && _.label < t[1]) {
266
+ _.label = t[1];
267
+ t = op;
268
+ break;
269
+ }
270
+ if (t && _.label < t[2]) {
271
+ _.label = t[2];
272
+ _.ops.push(op);
273
+ break;
274
+ }
275
+ if (t[2]) _.ops.pop();
276
+ _.trys.pop();
277
+ continue;
278
+ }
279
+ op = body.call(thisArg, _);
280
+ } catch (e) {
281
+ op = [
282
+ 6,
283
+ e
284
+ ];
285
+ y = 0;
286
+ } finally{
287
+ f = t = 0;
288
+ }
289
+ if (op[0] & 5) throw op[1];
290
+ return {
291
+ value: op[0] ? op[1] : void 0,
292
+ done: true
293
+ };
294
+ }
404
295
  }
405
-
406
- `;
407
- shadowRoot.appendChild(style);
408
- } catch (styleError) {
409
- console.error("Error applying styles:", styleError);
410
- }
411
- try {
412
- const scripts = [];
413
- const scriptElements = tempContainer.querySelectorAll("script");
414
- scriptElements.forEach((oldScript) => {
415
- var _a2;
416
- try {
417
- (_a2 = oldScript.parentNode) == null ? void 0 : _a2.removeChild(oldScript);
418
- const newScript = document.createElement("script");
419
- Array.from(oldScript.attributes).forEach((attr) => {
420
- newScript.setAttribute(attr.name, attr.value);
421
- });
422
- newScript.textContent = oldScript.textContent;
423
- scripts.push(newScript);
424
- } catch (scriptError) {
425
- console.error("Error processing script:", scriptError);
426
- }
296
+ import { merge } from "lodash-es";
297
+ import Mustache from "mustache";
298
+ import React, { Component, useEffect, useMemo, useRef, useState } from "react";
299
+ import partialParse from "../../MarkdownEditor/editor/parser/json-parse";
300
+ import { createSandbox, DEFAULT_SANDBOX_CONFIG } from "../../Utils/proxySandbox";
301
+ import { mdDataSchemaValidator } from "../validator";
302
+ import { TemplateEngine } from "./templateEngine";
303
+ export * from "./templateEngine";
304
+ /**
305
+ * 创建沙箱实例
306
+ */ var createSandboxInstance = function(sandboxConfig) {
307
+ var _sandboxConfig_allowDOM, _sandboxConfig_strictMode;
308
+ return createSandbox(_object_spread_props(_object_spread({}, DEFAULT_SANDBOX_CONFIG), {
309
+ allowDOM: (_sandboxConfig_allowDOM = sandboxConfig.allowDOM) !== null && _sandboxConfig_allowDOM !== void 0 ? _sandboxConfig_allowDOM : true,
310
+ allowedGlobals: sandboxConfig.allowedGlobals || DEFAULT_SANDBOX_CONFIG.allowedGlobals,
311
+ forbiddenGlobals: sandboxConfig.forbiddenGlobals || DEFAULT_SANDBOX_CONFIG.forbiddenGlobals,
312
+ strictMode: (_sandboxConfig_strictMode = sandboxConfig.strictMode) !== null && _sandboxConfig_strictMode !== void 0 ? _sandboxConfig_strictMode : true,
313
+ timeout: sandboxConfig.timeout || 3000
314
+ }));
315
+ };
316
+ /**
317
+ * 创建沙箱上下文
318
+ */ var createSandboxContext = function(shadowRoot) {
319
+ return {
320
+ shadowRoot: shadowRoot,
321
+ safeWindow: {
322
+ devicePixelRatio: typeof window !== 'undefined' ? window.devicePixelRatio : 1,
323
+ innerWidth: typeof window !== 'undefined' ? window.innerWidth : 1024,
324
+ innerHeight: typeof window !== 'undefined' ? window.innerHeight : 768
325
+ }
326
+ };
327
+ };
328
+ /**
329
+ * 执行不安全的脚本(沙箱禁用时)
330
+ */ var executeUnsafeScript = function(script, shadowRoot) {
331
+ console.warn('沙箱已禁用,使用不安全的脚本执行方式');
332
+ var scriptFn = new Function('shadowRoot', 'window', script.textContent || '');
333
+ try {
334
+ scriptFn(shadowRoot, {
335
+ devicePixelRatio: window.devicePixelRatio
427
336
  });
428
- Array.from(tempContainer.childNodes).forEach((node) => {
429
- try {
430
- shadowRoot == null ? void 0 : shadowRoot.appendChild(node.cloneNode(true));
431
- } catch (nodeError) {
432
- console.error("Error appending node:", nodeError);
433
- }
337
+ } catch (evalError) {
338
+ console.error('执行脚本错误:', evalError);
339
+ }
340
+ };
341
+ /**
342
+ * 执行外部脚本
343
+ */ var executeExternalScript = function(script, shadowRoot) {
344
+ console.warn('外部脚本暂时不通过沙箱执行:', script.src);
345
+ try {
346
+ shadowRoot === null || shadowRoot === void 0 ? void 0 : shadowRoot.appendChild(script);
347
+ } catch (appendError) {
348
+ console.error('Error appending external script:', appendError);
349
+ }
350
+ };
351
+ /**
352
+ * 在沙箱中执行脚本
353
+ */ var executeSandboxedScript = /*#__PURE__*/ function() {
354
+ var _ref = _async_to_generator(function(script, shadowRoot, sandboxConfig) {
355
+ var sandbox, result, evalError;
356
+ return _ts_generator(this, function(_state) {
357
+ switch(_state.label){
358
+ case 0:
359
+ sandbox = createSandboxInstance(sandboxConfig);
360
+ _state.label = 1;
361
+ case 1:
362
+ _state.trys.push([
363
+ 1,
364
+ 3,
365
+ 4,
366
+ 5
367
+ ]);
368
+ return [
369
+ 4,
370
+ sandbox.execute(script.textContent || '', createSandboxContext(shadowRoot))
371
+ ];
372
+ case 2:
373
+ result = _state.sent();
374
+ if (!result.success && result.error) {
375
+ console.error('沙箱脚本执行错误:', result.error);
376
+ }
377
+ return [
378
+ 3,
379
+ 5
380
+ ];
381
+ case 3:
382
+ evalError = _state.sent();
383
+ console.error('沙箱执行失败:', evalError);
384
+ return [
385
+ 3,
386
+ 5
387
+ ];
388
+ case 4:
389
+ sandbox.destroy();
390
+ return [
391
+ 7
392
+ ];
393
+ case 5:
394
+ return [
395
+ 2
396
+ ];
397
+ }
434
398
  });
435
- scripts.forEach((script) => __async(void 0, null, function* () {
436
- yield executeScript(script, shadowRoot, sandboxConfig);
437
- }));
438
- } catch (contentError) {
439
- console.error("Error processing content:", contentError);
440
- try {
441
- shadowRoot.innerHTML = renderedHtml;
442
- } catch (fallbackError) {
443
- console.error("Even fallback rendering failed:", fallbackError);
444
- }
445
- }
446
- onRenderSuccess == null ? void 0 : onRenderSuccess(renderedHtml);
447
- } catch (error) {
448
- console.error("Critical rendering error:", error);
449
- setRenderError(
450
- `Critical rendering error: ${error instanceof Error ? error.message : String(error)}`
451
- );
399
+ });
400
+ return function executeSandboxedScript(script, shadowRoot, sandboxConfig) {
401
+ return _ref.apply(this, arguments);
402
+ };
403
+ }();
404
+ /**
405
+ * 执行内联脚本
406
+ */ var executeInlineScript = /*#__PURE__*/ function() {
407
+ var _ref = _async_to_generator(function(script, shadowRoot, sandboxConfig) {
408
+ return _ts_generator(this, function(_state) {
409
+ switch(_state.label){
410
+ case 0:
411
+ if (!sandboxConfig.enabled) {
412
+ executeUnsafeScript(script, shadowRoot);
413
+ return [
414
+ 2
415
+ ];
416
+ }
417
+ return [
418
+ 4,
419
+ executeSandboxedScript(script, shadowRoot, sandboxConfig)
420
+ ];
421
+ case 1:
422
+ _state.sent();
423
+ return [
424
+ 2
425
+ ];
426
+ }
427
+ });
428
+ });
429
+ return function executeInlineScript(script, shadowRoot, sandboxConfig) {
430
+ return _ref.apply(this, arguments);
431
+ };
432
+ }();
433
+ /**
434
+ * 执行脚本(内联或外部)
435
+ */ var executeScript = /*#__PURE__*/ function() {
436
+ var _ref = _async_to_generator(function(script, shadowRoot, sandboxConfig) {
437
+ var scriptError;
438
+ return _ts_generator(this, function(_state) {
439
+ switch(_state.label){
440
+ case 0:
441
+ _state.trys.push([
442
+ 0,
443
+ 3,
444
+ ,
445
+ 4
446
+ ]);
447
+ if (!(!script.src && script.textContent)) return [
448
+ 3,
449
+ 2
450
+ ];
451
+ return [
452
+ 4,
453
+ executeInlineScript(script, shadowRoot, sandboxConfig)
454
+ ];
455
+ case 1:
456
+ _state.sent();
457
+ return [
458
+ 2
459
+ ];
460
+ case 2:
461
+ if (script.src) {
462
+ executeExternalScript(script, shadowRoot);
463
+ }
464
+ return [
465
+ 3,
466
+ 4
467
+ ];
468
+ case 3:
469
+ scriptError = _state.sent();
470
+ console.error('Script execution error:', scriptError);
471
+ return [
472
+ 3,
473
+ 4
474
+ ];
475
+ case 4:
476
+ return [
477
+ 2
478
+ ];
479
+ }
480
+ });
481
+ });
482
+ return function executeScript(script, shadowRoot, sandboxConfig) {
483
+ return _ref.apply(this, arguments);
484
+ };
485
+ }();
486
+ /**
487
+ * ErrorBoundary 组件 - 错误边界组件
488
+ *
489
+ * 用于捕获SchemaRenderer渲染过程中的错误,提供错误处理和回退显示。
490
+ *
491
+ * @component
492
+ * @description 错误边界组件,捕获渲染错误并提供回退显示
493
+ */ var ErrorBoundary = /*#__PURE__*/ function(Component) {
494
+ "use strict";
495
+ _inherits(ErrorBoundary, Component);
496
+ function ErrorBoundary(props) {
497
+ _class_call_check(this, ErrorBoundary);
498
+ var _this;
499
+ _this = _call_super(this, ErrorBoundary, [
500
+ props
501
+ ]);
502
+ _this.state = {
503
+ hasError: false,
504
+ error: null
505
+ };
506
+ return _this;
452
507
  }
453
- }, [renderedHtml, safeSchema.theme]);
454
- if (renderError && debug) {
455
- return fallbackContent || /* @__PURE__ */ React.createElement(
456
- "div",
457
- {
458
- style: {
459
- padding: "16px",
460
- border: "1px solid #f5c2c7",
461
- borderRadius: "8px",
462
- background: "#f8d7da",
463
- color: "#842029",
464
- boxShadow: "0 2px 4px rgba(0,0,0,0.1)",
465
- margin: "10px 0"
466
- }
467
- },
468
- /* @__PURE__ */ React.createElement(
469
- "div",
508
+ _create_class(ErrorBoundary, [
470
509
  {
471
- style: {
472
- display: "flex",
473
- alignItems: "center",
474
- marginBottom: "8px"
475
- }
510
+ key: "componentDidCatch",
511
+ value: function componentDidCatch(error, errorInfo) {
512
+ console.error('SchemaRenderer error:', error, errorInfo);
513
+ }
476
514
  },
477
- /* @__PURE__ */ React.createElement(
478
- "svg",
479
- {
515
+ {
516
+ key: "render",
517
+ value: function render() {
518
+ if (this.state.hasError) {
519
+ if (this.props.fallback) {
520
+ return this.props.fallback;
521
+ }
522
+ return /*#__PURE__*/ React.createElement("div", {
523
+ style: {
524
+ padding: '10px',
525
+ border: '1px solid #f5c2c7',
526
+ borderRadius: '4px',
527
+ background: '#f8d7da',
528
+ color: '#842029'
529
+ }
530
+ }, /*#__PURE__*/ React.createElement("p", null, "Something went wrong rendering this component."));
531
+ }
532
+ return this.props.children;
533
+ }
534
+ }
535
+ ], [
536
+ {
537
+ key: "getDerivedStateFromError",
538
+ value: function getDerivedStateFromError(error) {
539
+ return {
540
+ hasError: true,
541
+ error: error
542
+ };
543
+ }
544
+ }
545
+ ]);
546
+ return ErrorBoundary;
547
+ }(Component);
548
+ /**
549
+ * SchemaRenderer 组件 - Schema渲染器组件
550
+ *
551
+ * 该组件根据JSON Schema和模板引擎渲染动态内容,支持模板语法、数据验证、错误处理等。
552
+ * 提供安全的内容渲染、模板解析、错误边界等功能。
553
+ *
554
+ * @component
555
+ * @description Schema渲染器组件,根据Schema和模板渲染动态内容
556
+ * @param {SchemaRendererProps} props - 组件属性
557
+ * @param {LowCodeSchema} props.schema - 渲染Schema定义
558
+ * @param {Record<string, any>} props.values - 渲染数据值
559
+ * @param {Object} [props.config] - 渲染配置
560
+ * @param {string[]} [props.config.ALLOWED_TAGS] - 允许的HTML标签
561
+ * @param {string[]} [props.config.ALLOWED_ATTR] - 允许的HTML属性
562
+ * @param {React.ReactNode} [props.fallbackContent] - 回退内容
563
+ * @param {boolean} [props.useDefaultValues=true] - 是否使用默认值
564
+ * @param {boolean} [props.debug=true] - 是否启用调试模式
565
+ *
566
+ * @example
567
+ * ```tsx
568
+ * <SchemaRenderer
569
+ * schema={{
570
+ * component: {
571
+ * type: 'div',
572
+ * template: '<h1>{{title}}</h1><p>{{content}}</p>'
573
+ * }
574
+ * }}
575
+ * values={{
576
+ * title: '欢迎',
577
+ * content: '这是一个动态渲染的内容'
578
+ * }}
579
+ * config={{
580
+ * ALLOWED_TAGS: ['h1', 'p', 'div'],
581
+ * ALLOWED_ATTR: ['class', 'style']
582
+ * }}
583
+ * />
584
+ * ```
585
+ *
586
+ * @returns {React.ReactElement} 渲染的动态内容组件
587
+ *
588
+ * @remarks
589
+ * - 根据Schema和模板引擎渲染内容
590
+ * - 支持Mustache模板语法
591
+ * - 提供数据验证功能
592
+ * - 包含错误边界处理
593
+ * - 支持安全的内容渲染
594
+ * - 提供调试模式
595
+ * - 支持默认值处理
596
+ * - 响应式布局适配
597
+ */ export var SchemaRenderer = function(param) {
598
+ var schema = param.schema, values = param.values, config = param.config, fallbackContent = param.fallbackContent, _param_debug = param.debug, debug = _param_debug === void 0 ? true : _param_debug, _param_useDefaultValues = param.useDefaultValues, useDefaultValues = _param_useDefaultValues === void 0 ? true : _param_useDefaultValues, onRenderSuccess = param.onRenderSuccess, _param_sandboxConfig = param.sandboxConfig, sandboxConfig = _param_sandboxConfig === void 0 ? {
599
+ enabled: true,
600
+ allowDOM: true,
601
+ timeout: 3000,
602
+ strictMode: true
603
+ } : _param_sandboxConfig;
604
+ var _useState = _sliced_to_array(useState(null), 2), renderError = _useState[0], setRenderError = _useState[1];
605
+ // 安全地获取 schema 属性
606
+ var safeSchema = schema || {};
607
+ var safeComponent = safeSchema.component || {};
608
+ var initialValues = safeSchema.initialValues || {};
609
+ // 验证 schema
610
+ var validationResult = useMemo(function() {
611
+ try {
612
+ return mdDataSchemaValidator.validate(safeSchema);
613
+ } catch (error) {
614
+ console.error('Schema validation error:', error);
615
+ return {
616
+ valid: false,
617
+ errors: [
618
+ {
619
+ message: 'Schema validation failed'
620
+ }
621
+ ]
622
+ };
623
+ }
624
+ }, [
625
+ safeSchema
626
+ ]);
627
+ // 从 schema 中提取数据和模板
628
+ var _safeComponent_properties = safeComponent.properties, properties = _safeComponent_properties === void 0 ? {} : _safeComponent_properties, _safeComponent_type = safeComponent.type, type = _safeComponent_type === void 0 ? 'html' : _safeComponent_type;
629
+ var templateHtml = safeComponent.schema || '';
630
+ // 准备模板数据
631
+ var templateData = useMemo(function() {
632
+ try {
633
+ var defaultValues = useDefaultValues ? Object.entries(properties || {}).reduce(function(data, param) {
634
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
635
+ if (value && 'default' in value) {
636
+ data[key] = value.default;
637
+ }
638
+ return data;
639
+ }, {}) : {};
640
+ // 先合并 values
641
+ var mergedData = merge(defaultValues, initialValues || {}, values || {});
642
+ // 类型转换:如果 properties 定义为 array/object,但 values 里是 string,则尝试转换
643
+ Object.entries(properties || {}).forEach(function(param) {
644
+ var _param = _sliced_to_array(param, 2), key = _param[0], property = _param[1];
645
+ var val = mergedData[key];
646
+ if (property.type === 'array' && typeof val === 'string') {
647
+ try {
648
+ // 尝试 JSON.parse,否则用逗号分割
649
+ mergedData[key] = partialParse(val);
650
+ if (!Array.isArray(mergedData[key])) {
651
+ mergedData[key] = val.split(',').map(function(s) {
652
+ return s.trim();
653
+ });
654
+ }
655
+ } catch (e) {
656
+ mergedData[key] = val.split(',').map(function(s) {
657
+ return s.trim();
658
+ });
659
+ }
660
+ }
661
+ if (property.type === 'object' && typeof val === 'string') {
662
+ try {
663
+ try {
664
+ mergedData[key] = partialParse(val);
665
+ } catch (error) {
666
+ mergedData[key] = val;
667
+ }
668
+ } catch (e) {
669
+ mergedData[key] = {};
670
+ }
671
+ }
672
+ });
673
+ // 添加 fallback 值:如果数据在 properties 定义但是 mergedData 中没有
674
+ var dataWithFallbacks = _object_spread({}, mergedData);
675
+ Object.entries(properties || {}).forEach(function(param) {
676
+ var _param = _sliced_to_array(param, 2), key = _param[0], property = _param[1];
677
+ if (!(key in dataWithFallbacks) || dataWithFallbacks[key] === undefined || dataWithFallbacks[key] === null) {
678
+ switch(property.type){
679
+ case 'array':
680
+ dataWithFallbacks[key] = [];
681
+ break;
682
+ case 'string':
683
+ dataWithFallbacks[key] = '-';
684
+ break;
685
+ case 'number':
686
+ dataWithFallbacks[key] = '-';
687
+ break;
688
+ case 'object':
689
+ dataWithFallbacks[key] = {};
690
+ break;
691
+ default:
692
+ dataWithFallbacks[key] = '-';
693
+ break;
694
+ }
695
+ }
696
+ });
697
+ return dataWithFallbacks;
698
+ } catch (error) {
699
+ console.error('Error preparing template data:', error);
700
+ return values || {};
701
+ }
702
+ }, [
703
+ properties,
704
+ values,
705
+ useDefaultValues,
706
+ initialValues
707
+ ]);
708
+ // 使用模板引擎渲染
709
+ var renderedHtml = useMemo(function() {
710
+ try {
711
+ if (type === 'html') {
712
+ return TemplateEngine.render(templateHtml, templateData);
713
+ }
714
+ if (type === 'mustache') {
715
+ return Mustache.render(templateHtml, templateData);
716
+ }
717
+ return templateHtml;
718
+ } catch (error) {
719
+ console.error('模板渲染错误:', error);
720
+ setRenderError("Template rendering error: ".concat(error instanceof Error ? error.message : String(error)));
721
+ return '';
722
+ }
723
+ }, [
724
+ templateHtml,
725
+ templateData,
726
+ type,
727
+ config
728
+ ]);
729
+ // 应用主题样式
730
+ var containerStyle = useMemo(function() {
731
+ try {
732
+ var _safeTypography_fontSizes, _safeTypography_lineHeights;
733
+ var safeTheme = safeSchema.theme || {};
734
+ var safeTypography = safeTheme.typography || {};
735
+ var safeSpacing = safeTheme.spacing || {};
736
+ var _safeTypography_fontSizes_, _safeTypography_lineHeights_normal, _safeSpacing_width;
737
+ return {
738
+ fontFamily: safeTypography.fontFamily,
739
+ fontSize: "".concat((_safeTypography_fontSizes_ = (_safeTypography_fontSizes = safeTypography.fontSizes) === null || _safeTypography_fontSizes === void 0 ? void 0 : _safeTypography_fontSizes[2]) !== null && _safeTypography_fontSizes_ !== void 0 ? _safeTypography_fontSizes_ : '14', "px"),
740
+ lineHeight: (_safeTypography_lineHeights_normal = (_safeTypography_lineHeights = safeTypography.lineHeights) === null || _safeTypography_lineHeights === void 0 ? void 0 : _safeTypography_lineHeights.normal) !== null && _safeTypography_lineHeights_normal !== void 0 ? _safeTypography_lineHeights_normal : 1.6,
741
+ width: (_safeSpacing_width = safeSpacing.width) !== null && _safeSpacing_width !== void 0 ? _safeSpacing_width : 'max-content',
742
+ margin: '1em'
743
+ };
744
+ } catch (error) {
745
+ console.error('Error applying theme styles:', error);
746
+ return {
747
+ fontSize: '13px',
748
+ lineHeight: 1.6,
749
+ width: 'max-content'
750
+ };
751
+ }
752
+ }, [
753
+ safeSchema.theme
754
+ ]);
755
+ var containerRef = useRef(null);
756
+ useEffect(function() {
757
+ if (!containerRef.current || !renderedHtml) return;
758
+ try {
759
+ // 获取或创建Shadow DOM
760
+ var shadowRoot = containerRef.current.shadowRoot;
761
+ if (!shadowRoot) {
762
+ try {
763
+ shadowRoot = containerRef.current.attachShadow({
764
+ mode: 'open'
765
+ });
766
+ } catch (error) {
767
+ console.error('Failed to create shadow root:', error);
768
+ // Fallback to direct innerHTML if shadow DOM is not supported
769
+ containerRef.current.innerHTML = renderedHtml;
770
+ return;
771
+ }
772
+ }
773
+ // 创建一个临时容器来解析HTML
774
+ var tempContainer = document.createElement('div');
775
+ tempContainer.innerHTML = renderedHtml;
776
+ // 清空shadowRoot内容
777
+ shadowRoot.innerHTML = '';
778
+ // 添加样式
779
+ try {
780
+ var _safeTypography_fontSizes, _safeTypography_lineHeights;
781
+ var style = document.createElement('style');
782
+ var safeTheme = safeSchema.theme || {};
783
+ var safeTypography = safeTheme.typography || {};
784
+ var _safeTypography_fontSizes_, _safeTypography_lineHeights_normal;
785
+ style.innerHTML = "\n:host {\n display: block;\n font-family: ".concat(safeTypography.fontFamily || 'inherit', ";\n font-size: ").concat((_safeTypography_fontSizes_ = (_safeTypography_fontSizes = safeTypography.fontSizes) === null || _safeTypography_fontSizes === void 0 ? void 0 : _safeTypography_fontSizes[2]) !== null && _safeTypography_fontSizes_ !== void 0 ? _safeTypography_fontSizes_ : '14', "px;\n line-height: ").concat((_safeTypography_lineHeights_normal = (_safeTypography_lineHeights = safeTypography.lineHeights) === null || _safeTypography_lineHeights === void 0 ? void 0 : _safeTypography_lineHeights.normal) !== null && _safeTypography_lineHeights_normal !== void 0 ? _safeTypography_lineHeights_normal : 1.6, ";\n}\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed, \nfigure, figcaption, footer, header, hgroup, \nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, \nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol, ul {\n list-style: none;\n}\nblockquote, q {\n quotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ndiv {\n white-space: normal;\n overflow-wrap: normal;\n}\n\na {\n text-decoration: none;\n white-space: normal;\n overflow-wrap: normal;\n}\n\na:hover {\n text-decoration: underline;\n}\n\na:visited {\n color: inherit;\n}\n\na:active {\n color: inherit;\n}\n\n ");
786
+ shadowRoot.appendChild(style);
787
+ } catch (styleError) {
788
+ console.error('Error applying styles:', styleError);
789
+ }
790
+ try {
791
+ // 提取所有的script标签
792
+ var scripts = [];
793
+ var scriptElements = tempContainer.querySelectorAll('script');
794
+ scriptElements.forEach(function(oldScript) {
795
+ try {
796
+ var // 移除原始script标签
797
+ _oldScript_parentNode;
798
+ (_oldScript_parentNode = oldScript.parentNode) === null || _oldScript_parentNode === void 0 ? void 0 : _oldScript_parentNode.removeChild(oldScript);
799
+ // 创建新的script标签
800
+ var newScript = document.createElement('script');
801
+ // 复制属性
802
+ Array.from(oldScript.attributes).forEach(function(attr) {
803
+ newScript.setAttribute(attr.name, attr.value);
804
+ });
805
+ // 复制内容
806
+ newScript.textContent = oldScript.textContent;
807
+ scripts.push(newScript);
808
+ } catch (scriptError) {
809
+ console.error('Error processing script:', scriptError);
810
+ }
811
+ });
812
+ // 将其他内容添加到Shadow DOM
813
+ Array.from(tempContainer.childNodes).forEach(function(node) {
814
+ try {
815
+ shadowRoot === null || shadowRoot === void 0 ? void 0 : shadowRoot.appendChild(node.cloneNode(true));
816
+ } catch (nodeError) {
817
+ console.error('Error appending node:', nodeError);
818
+ }
819
+ });
820
+ // 添加并执行脚本
821
+ scripts.forEach(/*#__PURE__*/ function() {
822
+ var _ref = _async_to_generator(function(script) {
823
+ return _ts_generator(this, function(_state) {
824
+ switch(_state.label){
825
+ case 0:
826
+ return [
827
+ 4,
828
+ executeScript(script, shadowRoot, sandboxConfig)
829
+ ];
830
+ case 1:
831
+ _state.sent();
832
+ return [
833
+ 2
834
+ ];
835
+ }
836
+ });
837
+ });
838
+ return function(script) {
839
+ return _ref.apply(this, arguments);
840
+ };
841
+ }());
842
+ } catch (contentError) {
843
+ console.error('Error processing content:', contentError);
844
+ // Fallback - at least show the HTML content
845
+ try {
846
+ shadowRoot.innerHTML = renderedHtml;
847
+ } catch (fallbackError) {
848
+ console.error('Even fallback rendering failed:', fallbackError);
849
+ }
850
+ }
851
+ onRenderSuccess === null || onRenderSuccess === void 0 ? void 0 : onRenderSuccess(renderedHtml);
852
+ } catch (error) {
853
+ console.error('Critical rendering error:', error);
854
+ setRenderError("Critical rendering error: ".concat(error instanceof Error ? error.message : String(error)));
855
+ }
856
+ }, [
857
+ renderedHtml,
858
+ safeSchema.theme
859
+ ]);
860
+ // 如果渲染过程中出现错误,显示错误信息
861
+ if (renderError && debug) {
862
+ return fallbackContent || /*#__PURE__*/ React.createElement("div", {
863
+ style: {
864
+ padding: '16px',
865
+ border: '1px solid #f5c2c7',
866
+ borderRadius: '8px',
867
+ background: '#f8d7da',
868
+ color: '#842029',
869
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
870
+ margin: '10px 0'
871
+ }
872
+ }, /*#__PURE__*/ React.createElement("div", {
873
+ style: {
874
+ display: 'flex',
875
+ alignItems: 'center',
876
+ marginBottom: '8px'
877
+ }
878
+ }, /*#__PURE__*/ React.createElement("svg", {
480
879
  width: "20",
481
880
  height: "20",
482
881
  viewBox: "0 0 24 24",
483
882
  fill: "none",
484
883
  xmlns: "http://www.w3.org/2000/svg",
485
- style: { marginRight: "8px" }
486
- },
487
- /* @__PURE__ */ React.createElement(
488
- "path",
489
- {
490
- d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",
491
- stroke: "#842029",
492
- strokeWidth: "2"
884
+ style: {
885
+ marginRight: '8px'
493
886
  }
494
- ),
495
- /* @__PURE__ */ React.createElement(
496
- "path",
497
- {
498
- d: "M12 8V12",
499
- stroke: "#842029",
500
- strokeWidth: "2",
501
- strokeLinecap: "round"
887
+ }, /*#__PURE__*/ React.createElement("path", {
888
+ d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",
889
+ stroke: "#842029",
890
+ strokeWidth: "2"
891
+ }), /*#__PURE__*/ React.createElement("path", {
892
+ d: "M12 8V12",
893
+ stroke: "#842029",
894
+ strokeWidth: "2",
895
+ strokeLinecap: "round"
896
+ }), /*#__PURE__*/ React.createElement("circle", {
897
+ cx: "12",
898
+ cy: "16",
899
+ r: "1",
900
+ fill: "#842029"
901
+ })), /*#__PURE__*/ React.createElement("h3", {
902
+ style: {
903
+ margin: 0,
904
+ fontSize: '16px',
905
+ fontWeight: 600
502
906
  }
503
- ),
504
- /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "16", r: "1", fill: "#842029" })
505
- ),
506
- /* @__PURE__ */ React.createElement("h3", { style: { margin: 0, fontSize: "16px", fontWeight: 600 } }, "渲染错误")
507
- ),
508
- /* @__PURE__ */ React.createElement(
509
- "pre",
510
- {
511
- style: {
512
- whiteSpace: "pre-wrap",
513
- background: "rgba(255,255,255,0.5)",
514
- padding: "8px",
515
- borderRadius: "4px",
516
- fontSize: "13px",
517
- margin: 0
518
- }
519
- },
520
- renderError
521
- )
522
- );
523
- }
524
- if (!(validationResult == null ? void 0 : validationResult.valid) && debug) {
525
- console.error("Schema validation failed:", validationResult.errors);
526
- return fallbackContent || /* @__PURE__ */ React.createElement(
527
- "div",
528
- {
529
- style: {
530
- padding: "16px",
531
- border: "1px solid #f5c2c7",
532
- borderRadius: "8px",
533
- background: "#f8d7da",
534
- color: "#842029",
535
- boxShadow: "0 2px 4px rgba(0,0,0,0.1)",
536
- margin: "10px 0"
537
- }
538
- },
539
- /* @__PURE__ */ React.createElement(
540
- "div",
541
- {
542
- style: {
543
- display: "flex",
544
- alignItems: "center",
545
- marginBottom: "12px"
546
- }
547
- },
548
- /* @__PURE__ */ React.createElement(
549
- "svg",
550
- {
907
+ }, "渲染错误")), /*#__PURE__*/ React.createElement("pre", {
908
+ style: {
909
+ whiteSpace: 'pre-wrap',
910
+ background: 'rgba(255,255,255,0.5)',
911
+ padding: '8px',
912
+ borderRadius: '4px',
913
+ fontSize: '13px',
914
+ margin: 0
915
+ }
916
+ }, renderError));
917
+ }
918
+ // Schema 验证失败,显示错误信息
919
+ if (!(validationResult === null || validationResult === void 0 ? void 0 : validationResult.valid) && debug) {
920
+ console.error('Schema validation failed:', validationResult.errors);
921
+ return fallbackContent || /*#__PURE__*/ React.createElement("div", {
922
+ style: {
923
+ padding: '16px',
924
+ border: '1px solid #f5c2c7',
925
+ borderRadius: '8px',
926
+ background: '#f8d7da',
927
+ color: '#842029',
928
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
929
+ margin: '10px 0'
930
+ }
931
+ }, /*#__PURE__*/ React.createElement("div", {
932
+ style: {
933
+ display: 'flex',
934
+ alignItems: 'center',
935
+ marginBottom: '12px'
936
+ }
937
+ }, /*#__PURE__*/ React.createElement("svg", {
551
938
  width: "20",
552
939
  height: "20",
553
940
  viewBox: "0 0 24 24",
554
941
  fill: "none",
555
942
  xmlns: "http://www.w3.org/2000/svg",
556
- style: { marginRight: "8px" }
557
- },
558
- /* @__PURE__ */ React.createElement(
559
- "path",
560
- {
561
- d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",
562
- stroke: "#842029",
563
- strokeWidth: "2"
943
+ style: {
944
+ marginRight: '8px'
564
945
  }
565
- ),
566
- /* @__PURE__ */ React.createElement(
567
- "path",
568
- {
569
- d: "M12 8V12",
570
- stroke: "#842029",
571
- strokeWidth: "2",
572
- strokeLinecap: "round"
946
+ }, /*#__PURE__*/ React.createElement("path", {
947
+ d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",
948
+ stroke: "#842029",
949
+ strokeWidth: "2"
950
+ }), /*#__PURE__*/ React.createElement("path", {
951
+ d: "M12 8V12",
952
+ stroke: "#842029",
953
+ strokeWidth: "2",
954
+ strokeLinecap: "round"
955
+ }), /*#__PURE__*/ React.createElement("circle", {
956
+ cx: "12",
957
+ cy: "16",
958
+ r: "1",
959
+ fill: "#842029"
960
+ })), /*#__PURE__*/ React.createElement("h3", {
961
+ style: {
962
+ margin: 0,
963
+ fontSize: '16px',
964
+ fontWeight: 600
573
965
  }
574
- ),
575
- /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "16", r: "1", fill: "#842029" })
576
- ),
577
- /* @__PURE__ */ React.createElement("h3", { style: { margin: 0, fontSize: "16px", fontWeight: 600 } }, "Schema 验证失败")
578
- ),
579
- /* @__PURE__ */ React.createElement(
580
- "div",
581
- {
582
- style: {
583
- background: "rgba(255,255,255,0.5)",
584
- padding: "12px",
585
- borderRadius: "6px",
586
- fontSize: "13px"
587
- }
588
- },
589
- Array.isArray(validationResult.errors) ? /* @__PURE__ */ React.createElement(
590
- "ul",
591
- {
966
+ }, "Schema 验证失败")), /*#__PURE__*/ React.createElement("div", {
592
967
  style: {
593
- margin: "0",
594
- paddingLeft: "20px",
595
- listStyleType: "circle"
968
+ background: 'rgba(255,255,255,0.5)',
969
+ padding: '12px',
970
+ borderRadius: '6px',
971
+ fontSize: '13px'
596
972
  }
597
- },
598
- validationResult.errors.map((error, index) => /* @__PURE__ */ React.createElement("li", { key: index, style: { marginBottom: "8px" } }, /* @__PURE__ */ React.createElement("div", { style: { fontWeight: 500 } }, error.property || error.path ? /* @__PURE__ */ React.createElement("span", { style: { color: "#d63939" } }, (error.property || error.path).toString().replace("instance.", ""), ":") : null, /* @__PURE__ */ React.createElement(
599
- "span",
600
- {
601
- style: {
602
- marginLeft: error.property || error.path ? "4px" : "0"
603
- }
604
- },
605
- error.message
606
- )), error.schema ? /* @__PURE__ */ React.createElement(
607
- "div",
608
- {
609
- style: {
610
- fontSize: "13px",
611
- color: "#5c636a",
612
- marginTop: "4px",
613
- paddingLeft: "12px"
614
- }
615
- },
616
- "预期: ",
617
- JSON.stringify(error.schema)
618
- ) : null))
619
- ) : /* @__PURE__ */ React.createElement("pre", { style: { whiteSpace: "pre-wrap", margin: 0 } }, JSON.stringify(validationResult.errors, null, 2))
620
- )
621
- );
622
- }
623
- return /* @__PURE__ */ React.createElement(ErrorBoundary, { fallback: fallbackContent }, /* @__PURE__ */ React.createElement(
624
- "div",
625
- {
626
- ref: containerRef,
627
- className: "schemaRenderer",
628
- "data-testid": "schema-renderer",
629
- style: containerStyle
973
+ }, Array.isArray(validationResult.errors) ? /*#__PURE__*/ React.createElement("ul", {
974
+ style: {
975
+ margin: '0',
976
+ paddingLeft: '20px',
977
+ listStyleType: 'circle'
978
+ }
979
+ }, validationResult.errors.map(function(error, index) {
980
+ return /*#__PURE__*/ React.createElement("li", {
981
+ key: index,
982
+ style: {
983
+ marginBottom: '8px'
984
+ }
985
+ }, /*#__PURE__*/ React.createElement("div", {
986
+ style: {
987
+ fontWeight: 500
988
+ }
989
+ }, error.property || error.path ? /*#__PURE__*/ React.createElement("span", {
990
+ style: {
991
+ color: '#d63939'
992
+ }
993
+ }, (error.property || error.path).toString().replace('instance.', ''), ":") : null, /*#__PURE__*/ React.createElement("span", {
994
+ style: {
995
+ marginLeft: error.property || error.path ? '4px' : '0'
996
+ }
997
+ }, error.message)), error.schema ? /*#__PURE__*/ React.createElement("div", {
998
+ style: {
999
+ fontSize: '13px',
1000
+ color: '#5c636a',
1001
+ marginTop: '4px',
1002
+ paddingLeft: '12px'
1003
+ }
1004
+ }, "预期: ", JSON.stringify(error.schema)) : null);
1005
+ })) : /*#__PURE__*/ React.createElement("pre", {
1006
+ style: {
1007
+ whiteSpace: 'pre-wrap',
1008
+ margin: 0
1009
+ }
1010
+ }, JSON.stringify(validationResult.errors, null, 2))));
630
1011
  }
631
- ));
632
- };
633
- export {
634
- SchemaRenderer
1012
+ return /*#__PURE__*/ React.createElement(ErrorBoundary, {
1013
+ fallback: fallbackContent
1014
+ }, /*#__PURE__*/ React.createElement("div", {
1015
+ ref: containerRef,
1016
+ className: "schemaRenderer",
1017
+ "data-testid": "schema-renderer",
1018
+ style: containerStyle
1019
+ }));
635
1020
  };