dishui 0.0.64 → 0.0.66

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 (504) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +10 -11
  2. package/dist/chart.js +12 -46
  3. package/dist/code-editor.js +16 -43
  4. package/dist/components/Badge/index.js +11 -13
  5. package/dist/components/Badge/index.js.map +1 -1
  6. package/dist/components/Button/index.js +62 -86
  7. package/dist/components/Button/index.js.map +1 -1
  8. package/dist/components/Card/index.d.ts +87 -0
  9. package/dist/components/Card/index.js +178 -44
  10. package/dist/components/Card/index.js.map +1 -1
  11. package/dist/components/Chart/Chart.js +25 -25
  12. package/dist/components/Chart/Chart.js.map +1 -1
  13. package/dist/components/Checkbox/index.js +57 -63
  14. package/dist/components/Checkbox/index.js.map +1 -1
  15. package/dist/components/ChoicePicker/index.d.ts +44 -0
  16. package/dist/components/ChoicePicker/index.js +81 -0
  17. package/dist/components/ChoicePicker/index.js.map +1 -0
  18. package/dist/components/Column/index.d.ts +28 -0
  19. package/dist/components/Column/index.js +30 -0
  20. package/dist/components/Column/index.js.map +1 -0
  21. package/dist/components/DateTimeInput/index.d.ts +44 -0
  22. package/dist/components/DateTimeInput/index.js +48 -0
  23. package/dist/components/DateTimeInput/index.js.map +1 -0
  24. package/dist/components/Demo/index.js +107 -107
  25. package/dist/components/Demo/index.js.map +1 -1
  26. package/dist/components/Divider/index.d.ts +20 -0
  27. package/dist/components/Divider/index.js +30 -0
  28. package/dist/components/Divider/index.js.map +1 -0
  29. package/dist/components/EmptyState/index.d.ts +4 -1
  30. package/dist/components/EmptyState/index.js +24 -24
  31. package/dist/components/EmptyState/index.js.map +1 -1
  32. package/dist/components/FileUploader/DropZone.js +134 -136
  33. package/dist/components/FileUploader/DropZone.js.map +1 -1
  34. package/dist/components/FileUploader/FileItem.js +159 -163
  35. package/dist/components/FileUploader/FileItem.js.map +1 -1
  36. package/dist/components/FileUploader/FileUploader.js +126 -127
  37. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  38. package/dist/components/FileUploader/UploadQueue.js +62 -62
  39. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  40. package/dist/components/FloatWindow/index.d.ts +28 -0
  41. package/dist/components/GridLayout/index.d.ts +42 -0
  42. package/dist/components/Icon/index.d.ts +24 -0
  43. package/dist/components/Icon/index.js +26 -0
  44. package/dist/components/Icon/index.js.map +1 -0
  45. package/dist/components/Image/index.d.ts +33 -0
  46. package/dist/components/Image/index.js +44 -0
  47. package/dist/components/Image/index.js.map +1 -0
  48. package/dist/components/Input/index.js +196 -197
  49. package/dist/components/Input/index.js.map +1 -1
  50. package/dist/components/Label/index.js +62 -73
  51. package/dist/components/Label/index.js.map +1 -1
  52. package/dist/components/Layout/index.js +134 -139
  53. package/dist/components/Layout/index.js.map +1 -1
  54. package/dist/components/List/index.js +45 -43
  55. package/dist/components/List/index.js.map +1 -1
  56. package/dist/components/Markdown/Markdown.js +106 -103
  57. package/dist/components/Markdown/Markdown.js.map +1 -1
  58. package/dist/components/Markdown/codeThemes.js +24 -33
  59. package/dist/components/Markdown/codeThemes.js.map +1 -1
  60. package/dist/components/Markdown/markdownComponents.js +203 -208
  61. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  62. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  63. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  64. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  65. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  66. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  67. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  68. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  69. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  70. package/dist/components/Modal/index.d.ts +7 -3
  71. package/dist/components/Modal/index.js +82 -70
  72. package/dist/components/Modal/index.js.map +1 -1
  73. package/dist/components/MultipleChoice/index.d.ts +44 -0
  74. package/dist/components/MultipleChoice/index.js +52 -0
  75. package/dist/components/MultipleChoice/index.js.map +1 -0
  76. package/dist/components/Notification/index.d.ts +17 -0
  77. package/dist/components/Page/index.d.ts +58 -0
  78. package/dist/components/Page/index.js +43 -0
  79. package/dist/components/Page/index.js.map +1 -0
  80. package/dist/components/PageHeader/index.js +28 -28
  81. package/dist/components/PageHeader/index.js.map +1 -1
  82. package/dist/components/ProtectedRoute/index.js +8 -9
  83. package/dist/components/ProtectedRoute/index.js.map +1 -1
  84. package/dist/components/Row/index.d.ts +28 -0
  85. package/dist/components/Row/index.js +30 -0
  86. package/dist/components/Row/index.js.map +1 -0
  87. package/dist/components/Select/index.js +251 -257
  88. package/dist/components/Select/index.js.map +1 -1
  89. package/dist/components/SidebarToggleButton/index.js +56 -59
  90. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  91. package/dist/components/Slider/index.d.ts +39 -0
  92. package/dist/components/Slider/index.js +52 -0
  93. package/dist/components/Slider/index.js.map +1 -0
  94. package/dist/components/StatCard/index.d.ts +31 -1
  95. package/dist/components/StatCard/index.js +189 -58
  96. package/dist/components/StatCard/index.js.map +1 -1
  97. package/dist/components/Switch/index.d.ts +34 -0
  98. package/dist/components/Switch/index.js +55 -0
  99. package/dist/components/Switch/index.js.map +1 -0
  100. package/dist/components/Tab/index.d.ts +40 -0
  101. package/dist/components/Table/index.js +109 -103
  102. package/dist/components/Table/index.js.map +1 -1
  103. package/dist/components/Tabs/index.d.ts +19 -5
  104. package/dist/components/Tabs/index.js +30 -21
  105. package/dist/components/Tabs/index.js.map +1 -1
  106. package/dist/components/Text/index.d.ts +43 -0
  107. package/dist/components/Text/index.js +55 -0
  108. package/dist/components/Text/index.js.map +1 -0
  109. package/dist/components/Tooltip/index.d.ts +23 -0
  110. package/dist/components/Tooltip/index.js +34 -0
  111. package/dist/components/Tooltip/index.js.map +1 -0
  112. package/dist/components/Tree/Tree.js +205 -205
  113. package/dist/components/Tree/Tree.js.map +1 -1
  114. package/dist/components/pro/ArticleContextMenu/index.js +86 -87
  115. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  116. package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
  117. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  118. package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
  119. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  120. package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
  121. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  122. package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
  123. package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
  124. package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
  125. package/dist/components/pro/Calendar/index.d.ts +7 -0
  126. package/dist/components/pro/Calendar/types.d.ts +151 -0
  127. package/dist/components/pro/Calendar/utils.d.ts +94 -0
  128. package/dist/components/pro/Chat/Chat.d.ts +6 -0
  129. package/dist/components/pro/Chat/index.d.ts +2 -0
  130. package/dist/components/pro/Chat/types.d.ts +84 -0
  131. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -320
  132. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -221
  134. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  135. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
  136. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  137. package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
  138. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  139. package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
  140. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  141. package/dist/components/pro/CodeEditor/langs/index.js +7 -15
  142. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  143. package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
  144. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  145. package/dist/components/pro/CodeEditor/langs/python.js +4 -40
  146. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  147. package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
  148. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  149. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
  150. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  151. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
  152. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  153. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
  154. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  155. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
  156. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  157. package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
  158. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  159. package/dist/components/pro/CodeEditor/themes.js +513 -483
  160. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  161. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  162. package/dist/components/pro/CodeEditor/utils.js +171 -175
  163. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  164. package/dist/components/pro/DataTable/DataTable.js +305 -305
  165. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  166. package/dist/components/pro/DataTable/Filters.js +299 -314
  167. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  168. package/dist/components/pro/DataTable/PivotPanel.js +203 -204
  169. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  170. package/dist/components/pro/DataTable/PivotView.js +142 -141
  171. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  172. package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
  173. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  174. package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
  175. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  176. package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
  177. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  178. package/dist/components/pro/DataTable/components/TableBody.js +93 -94
  179. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  180. package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
  181. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  182. package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
  183. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  184. package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
  185. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  186. package/dist/components/pro/DataTable/extension.js +5 -5
  187. package/dist/components/pro/DataTable/extension.js.map +1 -1
  188. package/dist/components/pro/DataTable/pivotEngine.js +84 -92
  189. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  190. package/dist/components/pro/DataTable/pivotExtension.js +93 -93
  191. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  192. package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
  193. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  194. package/dist/components/pro/DataTable/tanstack-table.js +45 -62
  195. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  196. package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
  197. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  198. package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
  199. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  200. package/dist/components/pro/DataTable/utils.js +156 -168
  201. package/dist/components/pro/DataTable/utils.js.map +1 -1
  202. package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
  203. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  204. package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
  205. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  206. package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
  207. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  208. package/dist/components/pro/FileExplorer/FileIcon.js +190 -190
  209. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  210. package/dist/components/pro/FileExplorer/GridView.js +100 -100
  211. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  212. package/dist/components/pro/FileExplorer/ListView.js +209 -209
  213. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  214. package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
  215. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  216. package/dist/components/pro/Flow/Flow.js +920 -946
  217. package/dist/components/pro/Flow/Flow.js.map +1 -1
  218. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1663
  219. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  220. package/dist/components/pro/Flow/archify/build.js +85 -94
  221. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  222. package/dist/components/pro/Flow/archify/convert.js +512 -519
  223. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  224. package/dist/components/pro/Flow/archify/palette.js +87 -104
  225. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  226. package/dist/components/pro/Flow/archify/presets.js +34 -37
  227. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  228. package/dist/components/pro/Flow/archify/spec.js +7 -7
  229. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  230. package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
  231. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  232. package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
  233. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  234. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
  235. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  236. package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
  237. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  238. package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
  239. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  240. package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
  241. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  242. package/dist/components/pro/Flow/constants.js +266 -278
  243. package/dist/components/pro/Flow/constants.js.map +1 -1
  244. package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
  245. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  246. package/dist/components/pro/Flow/context/FlowContext.js +60 -61
  247. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  248. package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
  249. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  250. package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
  251. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  252. package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
  253. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  254. package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
  255. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  256. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
  257. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  258. package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
  259. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  260. package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
  261. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  262. package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
  263. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  264. package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
  265. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  266. package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
  267. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  268. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
  269. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  270. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
  271. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  272. package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -182
  273. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  274. package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
  275. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  276. package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
  277. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  278. package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
  279. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  280. package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
  281. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  282. package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
  283. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  284. package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
  285. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  286. package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
  287. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  288. package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
  289. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  290. package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
  291. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  292. package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
  293. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  294. package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
  295. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  296. package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
  297. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  298. package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
  299. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  300. package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -222
  301. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  302. package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
  303. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  304. package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
  305. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  306. package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
  307. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  308. package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
  309. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  310. package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
  311. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  312. package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
  313. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  314. package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
  315. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  316. package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
  317. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  318. package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
  319. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  320. package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
  321. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  322. package/dist/components/pro/Flow/nodes/shapes.js +556 -591
  323. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  324. package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
  325. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  326. package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
  327. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  328. package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
  329. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  330. package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
  331. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  332. package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
  333. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  334. package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
  335. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  336. package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
  337. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  338. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
  339. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  340. package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
  341. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  342. package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
  343. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  344. package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -244
  345. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -138
  347. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  348. package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
  349. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  350. package/dist/components/pro/Flow/panels/ShapePalette.js +557 -567
  351. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  352. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
  353. package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
  354. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  355. package/dist/components/pro/Flow/types.js +26 -26
  356. package/dist/components/pro/Flow/types.js.map +1 -1
  357. package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
  358. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  359. package/dist/components/pro/Flow/utils/gradient.js +55 -55
  360. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  361. package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
  362. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  363. package/dist/components/pro/Flow/utils/themeColor.js +185 -195
  364. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  365. package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
  366. package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
  367. package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
  368. package/dist/components/pro/Gantt/index.d.ts +6 -0
  369. package/dist/components/pro/Gantt/types.d.ts +478 -0
  370. package/dist/components/pro/Gantt/utils.d.ts +124 -0
  371. package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
  372. package/dist/components/pro/Resizable/index.d.ts +2 -0
  373. package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
  374. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  375. package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
  376. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  377. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
  378. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  379. package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
  380. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  381. package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
  382. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  383. package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
  384. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  385. package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
  386. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  387. package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
  388. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  389. package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
  390. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  391. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
  392. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  393. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
  394. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  395. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
  396. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  397. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
  398. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  399. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
  400. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  401. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
  402. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  403. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
  404. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  405. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
  406. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  407. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
  408. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  409. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
  410. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  411. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
  412. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  413. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
  414. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  415. package/dist/components/pro/RichTextEditor/types.js +75 -75
  416. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  417. package/dist/contexts/AppContext.d.ts +1 -1
  418. package/dist/contexts/AppContext.js +216 -221
  419. package/dist/contexts/AppContext.js.map +1 -1
  420. package/dist/data-table.js +15 -41
  421. package/dist/data-table.js.map +1 -1
  422. package/dist/dishui.css +1 -1
  423. package/dist/flow.js +27 -83
  424. package/dist/hooks/useClickOutside.js +18 -18
  425. package/dist/hooks/useClickOutside.js.map +1 -1
  426. package/dist/hooks/useContainerElement.js +9 -9
  427. package/dist/hooks/useContainerElement.js.map +1 -1
  428. package/dist/hooks/useControllableState.js +33 -35
  429. package/dist/hooks/useControllableState.js.map +1 -1
  430. package/dist/hooks/useCopyToClipboard.js +16 -16
  431. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  432. package/dist/hooks/useDebounce.js +14 -14
  433. package/dist/hooks/useDebounce.js.map +1 -1
  434. package/dist/hooks/useDraggable.js +50 -50
  435. package/dist/hooks/useDraggable.js.map +1 -1
  436. package/dist/hooks/useTableColumns.js +39 -42
  437. package/dist/hooks/useTableColumns.js.map +1 -1
  438. package/dist/hooks/useTableData.js +67 -68
  439. package/dist/hooks/useTableData.js.map +1 -1
  440. package/dist/index-nostyled.d.ts +8 -0
  441. package/dist/index.d.ts +29 -1
  442. package/dist/index.js +106 -236
  443. package/dist/layouts/MainLayout.js +56 -56
  444. package/dist/layouts/MainLayout.js.map +1 -1
  445. package/dist/layouts/Navbar.js +214 -214
  446. package/dist/layouts/Navbar.js.map +1 -1
  447. package/dist/layouts/Sidebar.js +184 -165
  448. package/dist/layouts/Sidebar.js.map +1 -1
  449. package/dist/layouts/headbar/Headbar.js +25 -25
  450. package/dist/layouts/headbar/Headbar.js.map +1 -1
  451. package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
  452. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  453. package/dist/layouts/headbar/HeadbarSearch.js +120 -120
  454. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  455. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
  456. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  457. package/dist/layouts/headbar/HeadbarTitle.js +26 -26
  458. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  459. package/dist/lite.js +9 -24
  460. package/dist/markdown.js +4 -9
  461. package/dist/pages/components/Calendar/index.d.ts +3 -0
  462. package/dist/pages/components/Calendar/index.en.d.ts +3 -0
  463. package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
  464. package/dist/pages/components/Chat/index.d.ts +3 -0
  465. package/dist/pages/components/Chat/index.en.d.ts +3 -0
  466. package/dist/pages/components/Chat/index.zh.d.ts +3 -0
  467. package/dist/pages/components/FloatWindow/index.d.ts +3 -0
  468. package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
  469. package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
  470. package/dist/pages/components/Gantt/index.d.ts +3 -0
  471. package/dist/pages/components/Gantt/index.en.d.ts +3 -0
  472. package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
  473. package/dist/pages/components/GridLayout/index.d.ts +3 -0
  474. package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
  475. package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
  476. package/dist/pages/components/Notification/index.d.ts +3 -0
  477. package/dist/pages/components/Notification/index.en.d.ts +3 -0
  478. package/dist/pages/components/Notification/index.zh.d.ts +3 -0
  479. package/dist/pages/components/Resizable/index.d.ts +3 -0
  480. package/dist/pages/components/Resizable/index.en.d.ts +3 -0
  481. package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
  482. package/dist/pages/components/Tab/index.d.ts +3 -0
  483. package/dist/pages/components/Tab/index.en.d.ts +3 -0
  484. package/dist/pages/components/Tab/index.zh.d.ts +3 -0
  485. package/dist/styles/themeStyles.js +87 -86
  486. package/dist/styles/themeStyles.js.map +1 -1
  487. package/dist/utils/cn.d.ts +13 -0
  488. package/dist/utils/cn.js +16 -0
  489. package/dist/utils/cn.js.map +1 -0
  490. package/dist/utils/i18n.js +690 -602
  491. package/dist/utils/i18n.js.map +1 -1
  492. package/dist/utils/menu.js +94 -94
  493. package/dist/utils/menu.js.map +1 -1
  494. package/dist/utils/rehype-code-meta.js +14 -14
  495. package/dist/utils/rehype-code-meta.js.map +1 -1
  496. package/dist/utils/remark-code-meta.js +9 -9
  497. package/dist/utils/remark-code-meta.js.map +1 -1
  498. package/dist/utils/routerBuilder.js +59 -58
  499. package/dist/utils/routerBuilder.js.map +1 -1
  500. package/dist/utils/selection.js +28 -29
  501. package/dist/utils/selection.js.map +1 -1
  502. package/dist/utils/themes.js +275 -255
  503. package/dist/utils/themes.js.map +1 -1
  504. package/package.json +23 -10
@@ -1,498 +1,471 @@
1
- import C from "../../../Button/index.js";
2
- import E from "../../../Input/index.js";
3
- import O from "../../../Label/index.js";
4
- import le from "../../../Select/index.js";
5
- import { DEFAULT_EDGE_DATA as re, DEFAULT_NODE_DATA as ie, ROOT_CANVAS_ID as K } from "../constants.js";
6
- import { useFlowContext as ce } from "../context/FlowContext.js";
7
- import { useFlowAI as de } from "../context/FlowAIContext.js";
8
- import { completeAIChatStream as ue } from "../nodes/aiClient.js";
9
- import { useCallback as w, useEffect as W, useRef as A, useState as h } from "react";
10
- import { jsx as a, jsxs as c } from "react/jsx-runtime";
11
- var me = `You are a diagramming assistant for a flowchart editor. Convert the user's request (a description, or an uploaded diagram image to reproduce) into a flow document.
12
-
13
- Reply with ONE fenced \`\`\`json code block and nothing else. The JSON must match:
14
- {
15
- "canvases": {
16
- "root": {
17
- "nodes": [
18
- { "id": "n1", "type": "shapeRoundRect", "position": {"x": 80, "y": 80}, "width": 160, "height": 64,
19
- "data": { "label": "Start" } }
20
- ],
21
- "edges": [
22
- { "id": "e1", "source": "n1", "target": "n2", "type": "smoothstep",
23
- "data": { "labelText": "yes" } }
24
- ],
25
- "lines": []
26
- }
27
- },
28
- "stack": ["root"]
29
- }
30
-
31
- Rules:
32
- - Node "type" is one of: shapeRect, shapeRoundRect, shapeEllipse, shapeDiamond, shapeParallelogram, shapeDocument, shapeHexagon. Use shapeDiamond for decisions, shapeRoundRect for processes, shapeEllipse for start/end.
33
- - Give every node a unique "id". Every edge "source"/"target" must reference an existing node id.
34
- - Lay nodes out on a readable grid (top-to-bottom or left-to-right), spacing ~180px, no overlaps. Widths ~140-180, heights ~56-72 (diamonds ~120x100).
35
- - Put a short "label" on each node. Optional edge label goes in data.labelText.
36
- - Do NOT include colors; the editor themes them automatically.
37
- - Output ONLY the JSON code block.`;
38
- function pe(i) {
39
- let o = i.trim();
40
- const d = /```(?:json)?\s*([\s\S]*?)```/i.exec(o);
41
- if (d) o = d[1].trim();
42
- else {
43
- const n = o.indexOf("{"), u = o.lastIndexOf("}");
44
- n >= 0 && u > n && (o = o.slice(n, u + 1));
45
- }
46
- try {
47
- const n = JSON.parse(o);
48
- return !n || typeof n != "object" || !n.canvases ? null : n;
49
- } catch {
50
- return null;
51
- }
1
+ import e from "../../../Button/index.js";
2
+ import t from "../../../Input/index.js";
3
+ import n from "../../../Label/index.js";
4
+ import r from "../../../Select/index.js";
5
+ import { DEFAULT_EDGE_DATA as i, DEFAULT_NODE_DATA as a, ROOT_CANVAS_ID as o } from "../constants.js";
6
+ import { useFlowContext as s } from "../context/FlowContext.js";
7
+ import { useFlowAI as c } from "../context/FlowAIContext.js";
8
+ import { completeAIChatStream as l } from "../nodes/aiClient.js";
9
+ import { useCallback as u, useEffect as d, useRef as f, useState as p } from "react";
10
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
+ //#region src/components/pro/Flow/panels/AIPanel.tsx
12
+ var g = "You are a diagramming assistant for a flowchart editor. Convert the user's request (a description, or an uploaded diagram image to reproduce) into a flow document.\n\nReply with ONE fenced ```json code block and nothing else. The JSON must match:\n{\n \"canvases\": {\n \"root\": {\n \"nodes\": [\n { \"id\": \"n1\", \"type\": \"shapeRoundRect\", \"position\": {\"x\": 80, \"y\": 80}, \"width\": 160, \"height\": 64,\n \"data\": { \"label\": \"Start\" } }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"n1\", \"target\": \"n2\", \"type\": \"smoothstep\",\n \"data\": { \"labelText\": \"yes\" } }\n ],\n \"lines\": []\n }\n },\n \"stack\": [\"root\"]\n}\n\nRules:\n- Node \"type\" is one of: shapeRect, shapeRoundRect, shapeEllipse, shapeDiamond, shapeParallelogram, shapeDocument, shapeHexagon. Use shapeDiamond for decisions, shapeRoundRect for processes, shapeEllipse for start/end.\n- Give every node a unique \"id\". Every edge \"source\"/\"target\" must reference an existing node id.\n- Lay nodes out on a readable grid (top-to-bottom or left-to-right), spacing ~180px, no overlaps. Widths ~140-180, heights ~56-72 (diamonds ~120x100).\n- Put a short \"label\" on each node. Optional edge label goes in data.labelText.\n- Do NOT include colors; the editor themes them automatically.\n- Output ONLY the JSON code block.";
13
+ function ee(e) {
14
+ let t = e.trim(), n = /```(?:json)?\s*([\s\S]*?)```/i.exec(t);
15
+ if (n) t = n[1].trim();
16
+ else {
17
+ let e = t.indexOf("{"), n = t.lastIndexOf("}");
18
+ e >= 0 && n > e && (t = t.slice(e, n + 1));
19
+ }
20
+ try {
21
+ let e = JSON.parse(t);
22
+ return !e || typeof e != "object" || !e.canvases ? null : e;
23
+ } catch {
24
+ return null;
25
+ }
52
26
  }
53
- function he(i) {
54
- const o = i.canvases ?? {}, d = o[i.stack?.[i.stack.length - 1] ?? "root"] ?? o.root ?? {
55
- nodes: [],
56
- edges: [],
57
- lines: []
58
- }, n = (d.nodes ?? []).map((t, m) => ({
59
- id: t.id ?? `n${m + 1}`,
60
- type: t.type ?? "shapeRoundRect",
61
- position: {
62
- x: Number(t.position?.x ?? 80),
63
- y: Number(t.position?.y ?? 80 + m * 120)
64
- },
65
- width: Number(t.width ?? 160),
66
- height: Number(t.height ?? 64),
67
- zIndex: t.zIndex ?? m,
68
- data: {
69
- ...ie,
70
- ...t.data ?? {},
71
- label: t.data?.label ?? t.label ?? "Node"
72
- }
73
- })), u = new Map(n.map((t) => [t.id, t])), v = (d.edges ?? []).map((t, m) => ({
74
- id: t.id ?? `e${m + 1}`,
75
- source: t.source,
76
- target: t.target,
77
- type: t.type ?? "smoothstep",
78
- data: {
79
- ...re,
80
- ...t.data ?? {}
81
- }
82
- })).filter((t) => t.source && t.target).map((t) => fe(t, u));
83
- return {
84
- canvases: { [K]: {
85
- nodes: n,
86
- edges: v,
87
- lines: []
88
- } },
89
- stack: [K]
90
- };
27
+ function _(e) {
28
+ let t = e.canvases ?? {}, n = t[e.stack?.[e.stack.length - 1] ?? "root"] ?? t.root ?? {
29
+ nodes: [],
30
+ edges: [],
31
+ lines: []
32
+ }, r = (n.nodes ?? []).map((e, t) => ({
33
+ id: e.id ?? `n${t + 1}`,
34
+ type: e.type ?? "shapeRoundRect",
35
+ position: {
36
+ x: Number(e.position?.x ?? 80),
37
+ y: Number(e.position?.y ?? 80 + t * 120)
38
+ },
39
+ width: Number(e.width ?? 160),
40
+ height: Number(e.height ?? 64),
41
+ zIndex: e.zIndex ?? t,
42
+ data: {
43
+ ...a,
44
+ ...e.data,
45
+ label: e.data?.label ?? e.label ?? "Node"
46
+ }
47
+ })), s = new Map(r.map((e) => [e.id, e])), c = (n.edges ?? []).map((e, t) => ({
48
+ id: e.id ?? `e${t + 1}`,
49
+ source: e.source,
50
+ target: e.target,
51
+ type: e.type ?? "smoothstep",
52
+ data: {
53
+ ...i,
54
+ ...e.data
55
+ }
56
+ })).filter((e) => e.source && e.target).map((e) => v(e, s));
57
+ return {
58
+ canvases: { [o]: {
59
+ nodes: r,
60
+ edges: c,
61
+ lines: []
62
+ } },
63
+ stack: [o]
64
+ };
91
65
  }
92
- function fe(i, o) {
93
- const d = o.get(i.source), n = o.get(i.target);
94
- if (!d || !n || d === n) return i;
95
- const u = n.position.x + n.width / 2 - (d.position.x + d.width / 2), v = n.position.y + n.height / 2 - (d.position.y + d.height / 2);
96
- if (Math.abs(u) >= Math.abs(v)) {
97
- const m = u >= 0;
98
- return {
99
- ...i,
100
- sourceHandle: m ? "r_0.5" : "l_0.5",
101
- targetHandle: m ? "l_0.5" : "r_0.5"
102
- };
103
- }
104
- const t = v >= 0;
105
- return {
106
- ...i,
107
- sourceHandle: t ? "b_0.5" : "t_0.5",
108
- targetHandle: t ? "t_0.5" : "b_0.5"
109
- };
66
+ function v(e, t) {
67
+ let n = t.get(e.source), r = t.get(e.target);
68
+ if (!n || !r || n === r) return e;
69
+ let i = r.position.x + r.width / 2 - (n.position.x + n.width / 2), a = r.position.y + r.height / 2 - (n.position.y + n.height / 2);
70
+ if (Math.abs(i) >= Math.abs(a)) {
71
+ let t = i >= 0;
72
+ return {
73
+ ...e,
74
+ sourceHandle: t ? "r_0.5" : "l_0.5",
75
+ targetHandle: t ? "l_0.5" : "r_0.5"
76
+ };
77
+ }
78
+ let o = a >= 0;
79
+ return {
80
+ ...e,
81
+ sourceHandle: o ? "b_0.5" : "t_0.5",
82
+ targetHandle: o ? "t_0.5" : "b_0.5"
83
+ };
110
84
  }
111
- var ge = [{
112
- value: "openai",
113
- label: "OpenAI 兼容"
85
+ var y = [{
86
+ value: "openai",
87
+ label: "OpenAI 兼容"
114
88
  }, {
115
- value: "anthropic",
116
- label: "Anthropic"
117
- }], we = 2e4;
118
- function Oe() {
119
- const { setDoc: i } = ce(), { aiConfig: o, setAIConfig: d, showAIConfig: n } = de(), [u, v] = h(""), [t, m] = h(null), [D, L] = h(!1), [S, R] = h(null), [M, y] = h(null), [_, Y] = h(!1), [q, F] = h(!1), [f, N] = h(null), [V, U] = h(0), T = A(null), H = A(null), $ = A(null), j = A(null), k = A(""), I = w((e) => {
120
- d({
121
- ...o,
122
- ...e
123
- });
124
- }, [o, d]), Q = w((e) => {
125
- const s = e.target.files?.[0];
126
- if (e.target.value = "", !s) return;
127
- const r = new FileReader();
128
- r.onload = () => m(r.result), r.readAsDataURL(s);
129
- }, []), J = w((e) => {
130
- const s = e.clipboardData?.items;
131
- if (s) {
132
- for (const r of s) if (r.type.startsWith("image/")) {
133
- const p = r.getAsFile();
134
- if (p) {
135
- e.preventDefault();
136
- const x = new FileReader();
137
- x.onload = () => m(x.result), x.readAsDataURL(p);
138
- return;
139
- }
140
- }
141
- }
142
- }, []);
143
- W(() => {
144
- const e = window.setInterval(() => {
145
- U((s) => {
146
- const r = k.current.length;
147
- return s >= r ? s : s + Math.max(8, Math.ceil((r - s) / 8));
148
- });
149
- }, 40);
150
- return () => window.clearInterval(e);
151
- }, []);
152
- const b = k.current.slice(0, V);
153
- W(() => {
154
- const e = $.current;
155
- e && (e.scrollTop = e.scrollHeight);
156
- const s = j.current;
157
- s && (s.scrollTop = s.scrollHeight);
158
- }, [b, _]);
159
- const X = w(async () => {
160
- if (D) return;
161
- if (!o.gateway || !o.model) {
162
- R("请先配置 AI 接口地址与模型");
163
- return;
164
- }
165
- if (!u.trim() && !t) {
166
- R("请输入需求描述,或上传一张流程图");
167
- return;
168
- }
169
- R(null), y("正在生成…"), k.current = "", U(0), F(!1), N(null), L(!0);
170
- const e = new AbortController();
171
- T.current = e;
172
- try {
173
- const s = await ue(o, u.trim() || "请根据这张图片复刻出对应的流程图。", {
174
- imageDataUrl: t ?? void 0,
175
- systemPrompt: me,
176
- signal: e.signal,
177
- onDelta: (p) => {
178
- k.current = p;
179
- }
180
- });
181
- F(!0);
182
- const r = pe(s);
183
- if (!r) {
184
- R("AI 返回内容无法解析为流程图,请重试或调整描述"), y(null);
185
- return;
186
- }
187
- N(he(r)), y(null);
188
- } catch (s) {
189
- s?.name !== "AbortError" && R(s?.message ?? "生成失败"), y(null);
190
- } finally {
191
- L(!1), T.current = null;
192
- }
193
- }, [
194
- D,
195
- o,
196
- u,
197
- t
198
- ]), Z = w(() => T.current?.abort(), []), ee = w(() => {
199
- if (!f) return;
200
- const e = f.canvases.root ?? {
201
- nodes: [],
202
- edges: [],
203
- lines: []
204
- };
205
- i((s) => {
206
- const r = s.stack[s.stack.length - 1] ?? "root", p = s.canvases[r] ?? {
207
- nodes: [],
208
- edges: [],
209
- lines: []
210
- }, x = /* @__PURE__ */ new Set([
211
- ...p.nodes.map((l) => l.id),
212
- ...p.edges.map((l) => l.id),
213
- ...p.lines.map((l) => l.id)
214
- ]), G = (l) => {
215
- let g = l, ne = 1;
216
- for (; x.has(g); ) g = `${l}_${ne++}`;
217
- return x.add(g), g;
218
- }, P = /* @__PURE__ */ new Map(), se = e.nodes.map((l) => {
219
- const g = G(l.id);
220
- return P.set(l.id, g), {
221
- ...l,
222
- id: g
223
- };
224
- }), oe = e.edges.map((l) => ({
225
- ...l,
226
- id: G(l.id),
227
- source: P.get(l.source) ?? l.source,
228
- target: P.get(l.target) ?? l.target
229
- }));
230
- return {
231
- ...s,
232
- canvases: {
233
- ...s.canvases,
234
- [r]: {
235
- nodes: [...p.nodes, ...se],
236
- edges: [...p.edges, ...oe],
237
- lines: p.lines
238
- }
239
- }
240
- };
241
- }), N(null), y("已插入流程图");
242
- }, [f, i]), te = w(() => {
243
- if (!f) return;
244
- const e = f.canvases.root ?? {
245
- nodes: [],
246
- edges: [],
247
- lines: []
248
- };
249
- i((s) => {
250
- const r = s.stack[s.stack.length - 1] ?? "root";
251
- return {
252
- ...s,
253
- canvases: {
254
- ...s.canvases,
255
- [r]: {
256
- nodes: e.nodes,
257
- edges: e.edges,
258
- lines: []
259
- }
260
- }
261
- };
262
- }), N(null), y("已替换画布");
263
- }, [f, i]), z = b.length, ae = z >= k.current.length, B = q && ae ? 100 : Math.min(99, Math.floor(z / we * 99));
264
- return /* @__PURE__ */ c("div", {
265
- className: "flow-ai-panel",
266
- onPaste: J,
267
- children: [
268
- n && /* @__PURE__ */ c("div", {
269
- className: "flow-ai-section",
270
- children: [
271
- /* @__PURE__ */ a("div", {
272
- className: "flow-ai-section-title",
273
- children: "模型配置"
274
- }),
275
- /* @__PURE__ */ c("div", {
276
- className: "flow-inspector-row",
277
- children: [/* @__PURE__ */ a(O, {
278
- size: "xs",
279
- className: "flow-inspector-label",
280
- children: "协议"
281
- }), /* @__PURE__ */ a(le, {
282
- options: ge,
283
- value: o.protocol,
284
- onChange: (e) => I({ protocol: e }),
285
- style: { fontSize: 12 }
286
- })]
287
- }),
288
- /* @__PURE__ */ c("div", {
289
- className: "flow-inspector-row",
290
- children: [/* @__PURE__ */ a(O, {
291
- size: "xs",
292
- className: "flow-inspector-label",
293
- children: "接口地址"
294
- }), /* @__PURE__ */ a(E, {
295
- size: "xs",
296
- value: o.gateway,
297
- placeholder: "https://api.moonshot.cn/v1",
298
- onChange: (e) => I({ gateway: e.target.value })
299
- })]
300
- }),
301
- /* @__PURE__ */ c("div", {
302
- className: "flow-inspector-row",
303
- children: [/* @__PURE__ */ a(O, {
304
- size: "xs",
305
- className: "flow-inspector-label",
306
- children: "模型"
307
- }), /* @__PURE__ */ a(E, {
308
- size: "xs",
309
- value: o.model,
310
- placeholder: "gpt-4o-mini",
311
- onChange: (e) => I({ model: e.target.value })
312
- })]
313
- }),
314
- /* @__PURE__ */ c("div", {
315
- className: "flow-inspector-row",
316
- children: [/* @__PURE__ */ a(O, {
317
- size: "xs",
318
- className: "flow-inspector-label",
319
- children: "API Key"
320
- }), /* @__PURE__ */ a(E, {
321
- size: "xs",
322
- type: "password",
323
- value: o.apiKey ?? "",
324
- placeholder: "sk-…",
325
- onChange: (e) => I({ apiKey: e.target.value })
326
- })]
327
- })
328
- ]
329
- }),
330
- /* @__PURE__ */ c("div", {
331
- className: "flow-ai-section",
332
- children: [
333
- /* @__PURE__ */ a("div", {
334
- className: "flow-ai-section-title",
335
- children: "生成流程图"
336
- }),
337
- /* @__PURE__ */ a("textarea", {
338
- className: "flow-ai-textarea",
339
- value: u,
340
- placeholder: "描述你想要的流程,例如:用户注册流程,包含邮箱校验、发送验证码、创建账号等步骤(可直接粘贴图片)",
341
- onChange: (e) => v(e.target.value),
342
- onPaste: J,
343
- onPointerDown: (e) => e.stopPropagation()
344
- }),
345
- /* @__PURE__ */ c("div", {
346
- className: "flow-ai-image-row",
347
- children: [
348
- /* @__PURE__ */ a("input", {
349
- ref: H,
350
- type: "file",
351
- accept: "image/*",
352
- style: { display: "none" },
353
- onChange: Q
354
- }),
355
- t ? /* @__PURE__ */ c("div", {
356
- className: "flow-ai-image-preview",
357
- children: [/* @__PURE__ */ a("img", {
358
- src: t,
359
- alt: "参考图"
360
- }), /* @__PURE__ */ a("button", {
361
- type: "button",
362
- className: "flow-ai-image-remove",
363
- title: "移除图片",
364
- onClick: () => m(null),
365
- children: "×"
366
- })]
367
- }) : /* @__PURE__ */ a(C, {
368
- size: "xs",
369
- variant: "ghost",
370
- onClick: () => H.current?.click(),
371
- children: "上传流程图图片"
372
- }),
373
- /* @__PURE__ */ a("span", {
374
- className: "flow-ai-hint",
375
- children: "或粘贴图片 (Ctrl/⌘+V)"
376
- })
377
- ]
378
- }),
379
- /* @__PURE__ */ a("div", {
380
- className: "flow-ai-actions",
381
- children: D ? /* @__PURE__ */ a(C, {
382
- size: "xs",
383
- variant: "ghost",
384
- onClick: Z,
385
- children: "停止"
386
- }) : /* @__PURE__ */ a(C, {
387
- size: "xs",
388
- variant: "primary",
389
- onClick: X,
390
- children: "生成流程图"
391
- })
392
- }),
393
- (D || b) && /* @__PURE__ */ c("div", {
394
- className: "flow-ai-stream",
395
- children: [
396
- /* @__PURE__ */ c("div", {
397
- className: "flow-ai-progress",
398
- children: [/* @__PURE__ */ a("div", {
399
- className: "flow-ai-progress-track",
400
- children: /* @__PURE__ */ a("div", {
401
- className: "flow-ai-progress-bar",
402
- style: { width: `${B}%` }
403
- })
404
- }), /* @__PURE__ */ c("span", {
405
- className: "flow-ai-progress-label",
406
- children: [B, "%"]
407
- })]
408
- }),
409
- /* @__PURE__ */ c("button", {
410
- type: "button",
411
- className: "flow-ai-stream-header",
412
- onClick: () => Y((e) => !e),
413
- children: [
414
- /* @__PURE__ */ a("span", {
415
- className: `flow-ai-stream-chevron${_ ? " flow-ai-stream-chevron--open" : ""}`,
416
- children: "▸"
417
- }),
418
- /* @__PURE__ */ a("span", { children: "返回内容" }),
419
- /* @__PURE__ */ c("span", {
420
- className: "flow-ai-stream-count",
421
- children: [z.toLocaleString(), " 字符"]
422
- })
423
- ]
424
- }),
425
- _ ? /* @__PURE__ */ a("pre", {
426
- ref: $,
427
- className: "flow-ai-stream-body",
428
- children: b || "等待返回…"
429
- }) : b && /* @__PURE__ */ a("pre", {
430
- ref: j,
431
- className: "flow-ai-stream-tail",
432
- children: b
433
- })
434
- ]
435
- }),
436
- M && !S && /* @__PURE__ */ a("div", {
437
- className: "flow-ai-status",
438
- children: M
439
- }),
440
- S && /* @__PURE__ */ a("div", {
441
- className: "flow-media-error",
442
- children: S
443
- })
444
- ]
445
- }),
446
- f && /* @__PURE__ */ a("div", {
447
- className: "flow-ai-dialog-overlay",
448
- onClick: () => N(null),
449
- children: /* @__PURE__ */ c("div", {
450
- className: "flow-ai-dialog",
451
- role: "dialog",
452
- "aria-modal": "true",
453
- "aria-label": "流程图已生成",
454
- onClick: (e) => e.stopPropagation(),
455
- children: [
456
- /* @__PURE__ */ a("div", {
457
- className: "flow-ai-dialog-title",
458
- children: "流程图已生成"
459
- }),
460
- /* @__PURE__ */ a("div", {
461
- className: "flow-ai-dialog-desc",
462
- children: "插入:将生成内容追加到当前画布;替换:清空当前画布后再插入。"
463
- }),
464
- /* @__PURE__ */ c("div", {
465
- className: "flow-ai-dialog-actions",
466
- children: [
467
- /* @__PURE__ */ a(C, {
468
- size: "xs",
469
- variant: "ghost",
470
- onClick: () => N(null),
471
- children: "取消"
472
- }),
473
- /* @__PURE__ */ a(C, {
474
- size: "xs",
475
- variant: "neutral",
476
- outline: !0,
477
- onClick: ee,
478
- children: "插入"
479
- }),
480
- /* @__PURE__ */ a(C, {
481
- size: "xs",
482
- variant: "primary",
483
- onClick: te,
484
- children: "替换"
485
- })
486
- ]
487
- })
488
- ]
489
- })
490
- })
491
- ]
492
- });
89
+ value: "anthropic",
90
+ label: "Anthropic"
91
+ }], b = 2e4;
92
+ function x() {
93
+ let { setDoc: i } = s(), { aiConfig: a, setAIConfig: o, showAIConfig: v } = c(), [x, S] = p(""), [C, w] = p(null), [T, E] = p(!1), [D, O] = p(null), [k, A] = p(null), [j, M] = p(!1), [N, P] = p(!1), [F, I] = p(null), [L, R] = p(0), z = f(null), B = f(null), V = f(null), H = f(null), U = f(""), W = u((e) => {
94
+ o({
95
+ ...a,
96
+ ...e
97
+ });
98
+ }, [a, o]), G = u((e) => {
99
+ let t = e.target.files?.[0];
100
+ if (e.target.value = "", !t) return;
101
+ let n = new FileReader();
102
+ n.onload = () => w(n.result), n.readAsDataURL(t);
103
+ }, []), K = u((e) => {
104
+ let t = e.clipboardData?.items;
105
+ if (t) {
106
+ for (let n of t) if (n.type.startsWith("image/")) {
107
+ let t = n.getAsFile();
108
+ if (t) {
109
+ e.preventDefault();
110
+ let n = new FileReader();
111
+ n.onload = () => w(n.result), n.readAsDataURL(t);
112
+ return;
113
+ }
114
+ }
115
+ }
116
+ }, []);
117
+ d(() => {
118
+ let e = window.setInterval(() => {
119
+ R((e) => {
120
+ let t = U.current.length;
121
+ return e >= t ? e : e + Math.max(8, Math.ceil((t - e) / 8));
122
+ });
123
+ }, 40);
124
+ return () => window.clearInterval(e);
125
+ }, []);
126
+ let q = U.current.slice(0, L);
127
+ d(() => {
128
+ let e = V.current;
129
+ e && (e.scrollTop = e.scrollHeight);
130
+ let t = H.current;
131
+ t && (t.scrollTop = t.scrollHeight);
132
+ }, [q, j]);
133
+ let J = u(async () => {
134
+ if (T) return;
135
+ if (!a.gateway || !a.model) {
136
+ O("请先配置 AI 接口地址与模型");
137
+ return;
138
+ }
139
+ if (!x.trim() && !C) {
140
+ O("请输入需求描述,或上传一张流程图");
141
+ return;
142
+ }
143
+ O(null), A("正在生成…"), U.current = "", R(0), P(!1), I(null), E(!0);
144
+ let e = new AbortController();
145
+ z.current = e;
146
+ try {
147
+ let t = await l(a, x.trim() || "请根据这张图片复刻出对应的流程图。", {
148
+ imageDataUrl: C ?? void 0,
149
+ systemPrompt: g,
150
+ signal: e.signal,
151
+ onDelta: (e) => {
152
+ U.current = e;
153
+ }
154
+ });
155
+ P(!0);
156
+ let n = ee(t);
157
+ if (!n) {
158
+ O("AI 返回内容无法解析为流程图,请重试或调整描述"), A(null);
159
+ return;
160
+ }
161
+ I(_(n)), A(null);
162
+ } catch (e) {
163
+ e?.name !== "AbortError" && O(e?.message ?? "生成失败"), A(null);
164
+ } finally {
165
+ E(!1), z.current = null;
166
+ }
167
+ }, [
168
+ T,
169
+ a,
170
+ x,
171
+ C
172
+ ]), Y = u(() => z.current?.abort(), []), X = u(() => {
173
+ if (!F) return;
174
+ let e = F.canvases.root ?? {
175
+ nodes: [],
176
+ edges: [],
177
+ lines: []
178
+ };
179
+ i((t) => {
180
+ let n = t.stack[t.stack.length - 1] ?? "root", r = t.canvases[n] ?? {
181
+ nodes: [],
182
+ edges: [],
183
+ lines: []
184
+ }, i = /* @__PURE__ */ new Set([
185
+ ...r.nodes.map((e) => e.id),
186
+ ...r.edges.map((e) => e.id),
187
+ ...r.lines.map((e) => e.id)
188
+ ]), a = (e) => {
189
+ let t = e, n = 1;
190
+ for (; i.has(t);) t = `${e}_${n++}`;
191
+ return i.add(t), t;
192
+ }, o = /* @__PURE__ */ new Map(), s = e.nodes.map((e) => {
193
+ let t = a(e.id);
194
+ return o.set(e.id, t), {
195
+ ...e,
196
+ id: t
197
+ };
198
+ }), c = e.edges.map((e) => ({
199
+ ...e,
200
+ id: a(e.id),
201
+ source: o.get(e.source) ?? e.source,
202
+ target: o.get(e.target) ?? e.target
203
+ }));
204
+ return {
205
+ ...t,
206
+ canvases: {
207
+ ...t.canvases,
208
+ [n]: {
209
+ nodes: [...r.nodes, ...s],
210
+ edges: [...r.edges, ...c],
211
+ lines: r.lines
212
+ }
213
+ }
214
+ };
215
+ }), I(null), A("已插入流程图");
216
+ }, [F, i]), Z = u(() => {
217
+ if (!F) return;
218
+ let e = F.canvases.root ?? {
219
+ nodes: [],
220
+ edges: [],
221
+ lines: []
222
+ };
223
+ i((t) => {
224
+ let n = t.stack[t.stack.length - 1] ?? "root";
225
+ return {
226
+ ...t,
227
+ canvases: {
228
+ ...t.canvases,
229
+ [n]: {
230
+ nodes: e.nodes,
231
+ edges: e.edges,
232
+ lines: []
233
+ }
234
+ }
235
+ };
236
+ }), I(null), A("已替换画布");
237
+ }, [F, i]), Q = q.length, te = Q >= U.current.length, $ = N && te ? 100 : Math.min(99, Math.floor(Q / b * 99));
238
+ return /* @__PURE__ */ h("div", {
239
+ className: "flow-ai-panel",
240
+ onPaste: K,
241
+ children: [
242
+ v && /* @__PURE__ */ h("div", {
243
+ className: "flow-ai-section",
244
+ children: [
245
+ /* @__PURE__ */ m("div", {
246
+ className: "flow-ai-section-title",
247
+ children: "模型配置"
248
+ }),
249
+ /* @__PURE__ */ h("div", {
250
+ className: "flow-inspector-row",
251
+ children: [/* @__PURE__ */ m(n, {
252
+ size: "xs",
253
+ className: "flow-inspector-label",
254
+ children: "协议"
255
+ }), /* @__PURE__ */ m(r, {
256
+ options: y,
257
+ value: a.protocol,
258
+ onChange: (e) => W({ protocol: e }),
259
+ style: { fontSize: 12 }
260
+ })]
261
+ }),
262
+ /* @__PURE__ */ h("div", {
263
+ className: "flow-inspector-row",
264
+ children: [/* @__PURE__ */ m(n, {
265
+ size: "xs",
266
+ className: "flow-inspector-label",
267
+ children: "接口地址"
268
+ }), /* @__PURE__ */ m(t, {
269
+ size: "xs",
270
+ value: a.gateway,
271
+ placeholder: "https://api.moonshot.cn/v1",
272
+ onChange: (e) => W({ gateway: e.target.value })
273
+ })]
274
+ }),
275
+ /* @__PURE__ */ h("div", {
276
+ className: "flow-inspector-row",
277
+ children: [/* @__PURE__ */ m(n, {
278
+ size: "xs",
279
+ className: "flow-inspector-label",
280
+ children: "模型"
281
+ }), /* @__PURE__ */ m(t, {
282
+ size: "xs",
283
+ value: a.model,
284
+ placeholder: "gpt-4o-mini",
285
+ onChange: (e) => W({ model: e.target.value })
286
+ })]
287
+ }),
288
+ /* @__PURE__ */ h("div", {
289
+ className: "flow-inspector-row",
290
+ children: [/* @__PURE__ */ m(n, {
291
+ size: "xs",
292
+ className: "flow-inspector-label",
293
+ children: "API Key"
294
+ }), /* @__PURE__ */ m(t, {
295
+ size: "xs",
296
+ type: "password",
297
+ value: a.apiKey ?? "",
298
+ placeholder: "sk-…",
299
+ onChange: (e) => W({ apiKey: e.target.value })
300
+ })]
301
+ })
302
+ ]
303
+ }),
304
+ /* @__PURE__ */ h("div", {
305
+ className: "flow-ai-section",
306
+ children: [
307
+ /* @__PURE__ */ m("div", {
308
+ className: "flow-ai-section-title",
309
+ children: "生成流程图"
310
+ }),
311
+ /* @__PURE__ */ m("textarea", {
312
+ className: "flow-ai-textarea",
313
+ value: x,
314
+ placeholder: "描述你想要的流程,例如:用户注册流程,包含邮箱校验、发送验证码、创建账号等步骤(可直接粘贴图片)",
315
+ onChange: (e) => S(e.target.value),
316
+ onPaste: K,
317
+ onPointerDown: (e) => e.stopPropagation()
318
+ }),
319
+ /* @__PURE__ */ h("div", {
320
+ className: "flow-ai-image-row",
321
+ children: [
322
+ /* @__PURE__ */ m("input", {
323
+ ref: B,
324
+ type: "file",
325
+ accept: "image/*",
326
+ style: { display: "none" },
327
+ onChange: G
328
+ }),
329
+ C ? /* @__PURE__ */ h("div", {
330
+ className: "flow-ai-image-preview",
331
+ children: [/* @__PURE__ */ m("img", {
332
+ src: C,
333
+ alt: "参考图"
334
+ }), /* @__PURE__ */ m("button", {
335
+ type: "button",
336
+ className: "flow-ai-image-remove",
337
+ title: "移除图片",
338
+ onClick: () => w(null),
339
+ children: "×"
340
+ })]
341
+ }) : /* @__PURE__ */ m(e, {
342
+ size: "xs",
343
+ variant: "ghost",
344
+ onClick: () => B.current?.click(),
345
+ children: "上传流程图图片"
346
+ }),
347
+ /* @__PURE__ */ m("span", {
348
+ className: "flow-ai-hint",
349
+ children: "或粘贴图片 (Ctrl/⌘+V)"
350
+ })
351
+ ]
352
+ }),
353
+ /* @__PURE__ */ m("div", {
354
+ className: "flow-ai-actions",
355
+ children: T ? /* @__PURE__ */ m(e, {
356
+ size: "xs",
357
+ variant: "ghost",
358
+ onClick: Y,
359
+ children: "停止"
360
+ }) : /* @__PURE__ */ m(e, {
361
+ size: "xs",
362
+ variant: "primary",
363
+ onClick: J,
364
+ children: "生成流程图"
365
+ })
366
+ }),
367
+ (T || q) && /* @__PURE__ */ h("div", {
368
+ className: "flow-ai-stream",
369
+ children: [
370
+ /* @__PURE__ */ h("div", {
371
+ className: "flow-ai-progress",
372
+ children: [/* @__PURE__ */ m("div", {
373
+ className: "flow-ai-progress-track",
374
+ children: /* @__PURE__ */ m("div", {
375
+ className: "flow-ai-progress-bar",
376
+ style: { width: `${$}%` }
377
+ })
378
+ }), /* @__PURE__ */ h("span", {
379
+ className: "flow-ai-progress-label",
380
+ children: [$, "%"]
381
+ })]
382
+ }),
383
+ /* @__PURE__ */ h("button", {
384
+ type: "button",
385
+ className: "flow-ai-stream-header",
386
+ onClick: () => M((e) => !e),
387
+ children: [
388
+ /* @__PURE__ */ m("span", {
389
+ className: `flow-ai-stream-chevron${j ? " flow-ai-stream-chevron--open" : ""}`,
390
+ children: "▸"
391
+ }),
392
+ /* @__PURE__ */ m("span", { children: "返回内容" }),
393
+ /* @__PURE__ */ h("span", {
394
+ className: "flow-ai-stream-count",
395
+ children: [Q.toLocaleString(), " 字符"]
396
+ })
397
+ ]
398
+ }),
399
+ j ? /* @__PURE__ */ m("pre", {
400
+ ref: V,
401
+ className: "flow-ai-stream-body",
402
+ children: q || "等待返回…"
403
+ }) : q && /* @__PURE__ */ m("pre", {
404
+ ref: H,
405
+ className: "flow-ai-stream-tail",
406
+ children: q
407
+ })
408
+ ]
409
+ }),
410
+ k && !D && /* @__PURE__ */ m("div", {
411
+ className: "flow-ai-status",
412
+ children: k
413
+ }),
414
+ D && /* @__PURE__ */ m("div", {
415
+ className: "flow-media-error",
416
+ children: D
417
+ })
418
+ ]
419
+ }),
420
+ F && /* @__PURE__ */ m("div", {
421
+ className: "flow-ai-dialog-overlay",
422
+ onClick: () => I(null),
423
+ children: /* @__PURE__ */ h("div", {
424
+ className: "flow-ai-dialog",
425
+ role: "dialog",
426
+ "aria-modal": "true",
427
+ "aria-label": "流程图已生成",
428
+ onClick: (e) => e.stopPropagation(),
429
+ children: [
430
+ /* @__PURE__ */ m("div", {
431
+ className: "flow-ai-dialog-title",
432
+ children: "流程图已生成"
433
+ }),
434
+ /* @__PURE__ */ m("div", {
435
+ className: "flow-ai-dialog-desc",
436
+ children: "插入:将生成内容追加到当前画布;替换:清空当前画布后再插入。"
437
+ }),
438
+ /* @__PURE__ */ h("div", {
439
+ className: "flow-ai-dialog-actions",
440
+ children: [
441
+ /* @__PURE__ */ m(e, {
442
+ size: "xs",
443
+ variant: "ghost",
444
+ onClick: () => I(null),
445
+ children: "取消"
446
+ }),
447
+ /* @__PURE__ */ m(e, {
448
+ size: "xs",
449
+ variant: "neutral",
450
+ outline: !0,
451
+ onClick: X,
452
+ children: "插入"
453
+ }),
454
+ /* @__PURE__ */ m(e, {
455
+ size: "xs",
456
+ variant: "primary",
457
+ onClick: Z,
458
+ children: "替换"
459
+ })
460
+ ]
461
+ })
462
+ ]
463
+ })
464
+ })
465
+ ]
466
+ });
493
467
  }
494
- export {
495
- Oe as AIPanelContent
496
- };
468
+ //#endregion
469
+ export { x as AIPanelContent };
497
470
 
498
471
  //# sourceMappingURL=AIPanel.js.map