dishui 0.0.65 → 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 (500) 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 +10 -15
  5. package/dist/components/Badge/index.js.map +1 -1
  6. package/dist/components/Button/index.js +62 -89
  7. package/dist/components/Button/index.js.map +1 -1
  8. package/dist/components/Card/index.d.ts +76 -0
  9. package/dist/components/Card/index.js +178 -69
  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 -65
  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.js +24 -24
  30. package/dist/components/EmptyState/index.js.map +1 -1
  31. package/dist/components/FileUploader/DropZone.js +134 -136
  32. package/dist/components/FileUploader/DropZone.js.map +1 -1
  33. package/dist/components/FileUploader/FileItem.js +159 -163
  34. package/dist/components/FileUploader/FileItem.js.map +1 -1
  35. package/dist/components/FileUploader/FileUploader.js +126 -127
  36. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  37. package/dist/components/FileUploader/UploadQueue.js +62 -62
  38. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  39. package/dist/components/FloatWindow/index.d.ts +28 -0
  40. package/dist/components/GridLayout/index.d.ts +42 -0
  41. package/dist/components/Icon/index.d.ts +24 -0
  42. package/dist/components/Icon/index.js +26 -0
  43. package/dist/components/Icon/index.js.map +1 -0
  44. package/dist/components/Image/index.d.ts +33 -0
  45. package/dist/components/Image/index.js +44 -0
  46. package/dist/components/Image/index.js.map +1 -0
  47. package/dist/components/Input/index.js +196 -197
  48. package/dist/components/Input/index.js.map +1 -1
  49. package/dist/components/Label/index.js +62 -74
  50. package/dist/components/Label/index.js.map +1 -1
  51. package/dist/components/Layout/index.js +134 -139
  52. package/dist/components/Layout/index.js.map +1 -1
  53. package/dist/components/List/index.js +45 -58
  54. package/dist/components/List/index.js.map +1 -1
  55. package/dist/components/Markdown/Markdown.js +106 -107
  56. package/dist/components/Markdown/Markdown.js.map +1 -1
  57. package/dist/components/Markdown/codeThemes.js +24 -33
  58. package/dist/components/Markdown/codeThemes.js.map +1 -1
  59. package/dist/components/Markdown/markdownComponents.js +203 -208
  60. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  61. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  62. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  63. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  64. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  65. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  66. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  67. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  68. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  69. package/dist/components/Modal/index.js +82 -82
  70. package/dist/components/Modal/index.js.map +1 -1
  71. package/dist/components/MultipleChoice/index.d.ts +44 -0
  72. package/dist/components/MultipleChoice/index.js +52 -0
  73. package/dist/components/MultipleChoice/index.js.map +1 -0
  74. package/dist/components/Notification/index.d.ts +17 -0
  75. package/dist/components/Page/index.js +40 -71
  76. package/dist/components/Page/index.js.map +1 -1
  77. package/dist/components/PageHeader/index.js +28 -28
  78. package/dist/components/PageHeader/index.js.map +1 -1
  79. package/dist/components/ProtectedRoute/index.js +8 -9
  80. package/dist/components/ProtectedRoute/index.js.map +1 -1
  81. package/dist/components/Row/index.d.ts +28 -0
  82. package/dist/components/Row/index.js +30 -0
  83. package/dist/components/Row/index.js.map +1 -0
  84. package/dist/components/Select/index.js +251 -254
  85. package/dist/components/Select/index.js.map +1 -1
  86. package/dist/components/SidebarToggleButton/index.js +56 -59
  87. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  88. package/dist/components/Slider/index.d.ts +39 -0
  89. package/dist/components/Slider/index.js +52 -0
  90. package/dist/components/Slider/index.js.map +1 -0
  91. package/dist/components/StatCard/index.d.ts +29 -1
  92. package/dist/components/StatCard/index.js +189 -86
  93. package/dist/components/StatCard/index.js.map +1 -1
  94. package/dist/components/Switch/index.d.ts +34 -0
  95. package/dist/components/Switch/index.js +55 -0
  96. package/dist/components/Switch/index.js.map +1 -0
  97. package/dist/components/Tab/index.d.ts +40 -0
  98. package/dist/components/Table/index.js +109 -121
  99. package/dist/components/Table/index.js.map +1 -1
  100. package/dist/components/Tabs/index.js +28 -38
  101. package/dist/components/Tabs/index.js.map +1 -1
  102. package/dist/components/Text/index.d.ts +43 -0
  103. package/dist/components/Text/index.js +55 -0
  104. package/dist/components/Text/index.js.map +1 -0
  105. package/dist/components/Tooltip/index.d.ts +23 -0
  106. package/dist/components/Tooltip/index.js +34 -0
  107. package/dist/components/Tooltip/index.js.map +1 -0
  108. package/dist/components/Tree/Tree.js +205 -205
  109. package/dist/components/Tree/Tree.js.map +1 -1
  110. package/dist/components/pro/ArticleContextMenu/index.js +86 -87
  111. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  112. package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
  113. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  114. package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
  115. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  116. package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
  117. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  118. package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
  119. package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
  120. package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
  121. package/dist/components/pro/Calendar/index.d.ts +7 -0
  122. package/dist/components/pro/Calendar/types.d.ts +151 -0
  123. package/dist/components/pro/Calendar/utils.d.ts +94 -0
  124. package/dist/components/pro/Chat/Chat.d.ts +6 -0
  125. package/dist/components/pro/Chat/index.d.ts +2 -0
  126. package/dist/components/pro/Chat/types.d.ts +84 -0
  127. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -327
  128. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  129. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -224
  130. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  131. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
  132. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
  134. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  135. package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
  136. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  137. package/dist/components/pro/CodeEditor/langs/index.js +7 -15
  138. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  139. package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
  140. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  141. package/dist/components/pro/CodeEditor/langs/python.js +4 -40
  142. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  143. package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
  144. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  145. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
  146. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  147. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
  148. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  149. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
  150. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  151. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
  152. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  153. package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
  154. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  155. package/dist/components/pro/CodeEditor/themes.js +513 -483
  156. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  157. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  158. package/dist/components/pro/CodeEditor/utils.js +171 -175
  159. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  160. package/dist/components/pro/DataTable/DataTable.js +305 -306
  161. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  162. package/dist/components/pro/DataTable/Filters.js +299 -314
  163. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  164. package/dist/components/pro/DataTable/PivotPanel.js +203 -204
  165. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  166. package/dist/components/pro/DataTable/PivotView.js +142 -144
  167. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  168. package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
  169. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  170. package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
  171. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  172. package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
  173. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  174. package/dist/components/pro/DataTable/components/TableBody.js +93 -94
  175. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  176. package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
  177. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  178. package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
  179. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  180. package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
  181. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  182. package/dist/components/pro/DataTable/extension.js +5 -5
  183. package/dist/components/pro/DataTable/extension.js.map +1 -1
  184. package/dist/components/pro/DataTable/pivotEngine.js +84 -92
  185. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  186. package/dist/components/pro/DataTable/pivotExtension.js +93 -93
  187. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  188. package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
  189. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  190. package/dist/components/pro/DataTable/tanstack-table.js +45 -62
  191. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  192. package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
  193. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  194. package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
  195. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  196. package/dist/components/pro/DataTable/utils.js +156 -168
  197. package/dist/components/pro/DataTable/utils.js.map +1 -1
  198. package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
  199. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  200. package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
  201. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  202. package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
  203. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  204. package/dist/components/pro/FileExplorer/FileIcon.js +189 -189
  205. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  206. package/dist/components/pro/FileExplorer/GridView.js +100 -100
  207. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  208. package/dist/components/pro/FileExplorer/ListView.js +209 -209
  209. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  210. package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
  211. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  212. package/dist/components/pro/Flow/Flow.js +920 -948
  213. package/dist/components/pro/Flow/Flow.js.map +1 -1
  214. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1662
  215. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  216. package/dist/components/pro/Flow/archify/build.js +85 -94
  217. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  218. package/dist/components/pro/Flow/archify/convert.js +512 -519
  219. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  220. package/dist/components/pro/Flow/archify/palette.js +87 -104
  221. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  222. package/dist/components/pro/Flow/archify/presets.js +34 -37
  223. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  224. package/dist/components/pro/Flow/archify/spec.js +7 -7
  225. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  226. package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
  227. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  228. package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
  229. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  230. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
  231. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  232. package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
  233. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  234. package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
  235. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  236. package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
  237. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  238. package/dist/components/pro/Flow/constants.js +266 -278
  239. package/dist/components/pro/Flow/constants.js.map +1 -1
  240. package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
  241. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  242. package/dist/components/pro/Flow/context/FlowContext.js +60 -61
  243. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  244. package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
  245. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  246. package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
  247. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  248. package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
  249. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  250. package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
  251. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  252. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
  253. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  254. package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
  255. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  256. package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
  257. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  258. package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
  259. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  260. package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
  261. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  262. package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
  263. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  264. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
  265. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  266. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
  267. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  268. package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -180
  269. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  270. package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
  271. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  272. package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
  273. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  274. package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
  275. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  276. package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
  277. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  278. package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
  279. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  280. package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
  281. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  282. package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
  283. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  284. package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
  285. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  286. package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
  287. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  288. package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
  289. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  290. package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
  291. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  292. package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
  293. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  294. package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
  295. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  296. package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -242
  297. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  298. package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
  299. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  300. package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
  301. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  302. package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
  303. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  304. package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
  305. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  306. package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
  307. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  308. package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
  309. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  310. package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
  311. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  312. package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
  313. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  314. package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
  315. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  316. package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
  317. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  318. package/dist/components/pro/Flow/nodes/shapes.js +556 -589
  319. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  320. package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
  321. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  322. package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
  323. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  324. package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
  325. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  326. package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
  327. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  328. package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
  329. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  330. package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
  331. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  332. package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
  333. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  334. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
  335. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  336. package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
  337. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  338. package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
  339. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  340. package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -248
  341. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  342. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -140
  343. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  344. package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
  345. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/ShapePalette.js +557 -572
  347. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  348. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
  349. package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
  350. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  351. package/dist/components/pro/Flow/types.js +26 -26
  352. package/dist/components/pro/Flow/types.js.map +1 -1
  353. package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
  354. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  355. package/dist/components/pro/Flow/utils/gradient.js +55 -55
  356. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  357. package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
  358. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  359. package/dist/components/pro/Flow/utils/themeColor.js +185 -195
  360. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  361. package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
  362. package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
  363. package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
  364. package/dist/components/pro/Gantt/index.d.ts +6 -0
  365. package/dist/components/pro/Gantt/types.d.ts +478 -0
  366. package/dist/components/pro/Gantt/utils.d.ts +124 -0
  367. package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
  368. package/dist/components/pro/Resizable/index.d.ts +2 -0
  369. package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
  370. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  371. package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
  372. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  373. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
  374. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  375. package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
  376. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  377. package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
  378. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  379. package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
  380. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  381. package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
  382. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  383. package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
  384. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  385. package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
  386. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  387. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
  388. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  389. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
  390. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  391. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
  392. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  393. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
  394. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  395. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
  396. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  397. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
  398. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  399. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
  400. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  401. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
  402. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  403. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
  404. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  405. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
  406. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  407. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
  408. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  409. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
  410. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  411. package/dist/components/pro/RichTextEditor/types.js +75 -75
  412. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  413. package/dist/contexts/AppContext.d.ts +1 -1
  414. package/dist/contexts/AppContext.js +216 -221
  415. package/dist/contexts/AppContext.js.map +1 -1
  416. package/dist/data-table.js +15 -41
  417. package/dist/data-table.js.map +1 -1
  418. package/dist/dishui.css +1 -1
  419. package/dist/flow.js +27 -83
  420. package/dist/hooks/useClickOutside.js +18 -18
  421. package/dist/hooks/useClickOutside.js.map +1 -1
  422. package/dist/hooks/useContainerElement.js +9 -9
  423. package/dist/hooks/useContainerElement.js.map +1 -1
  424. package/dist/hooks/useControllableState.js +33 -35
  425. package/dist/hooks/useControllableState.js.map +1 -1
  426. package/dist/hooks/useCopyToClipboard.js +16 -16
  427. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  428. package/dist/hooks/useDebounce.js +14 -14
  429. package/dist/hooks/useDebounce.js.map +1 -1
  430. package/dist/hooks/useDraggable.js +50 -50
  431. package/dist/hooks/useDraggable.js.map +1 -1
  432. package/dist/hooks/useTableColumns.js +39 -41
  433. package/dist/hooks/useTableColumns.js.map +1 -1
  434. package/dist/hooks/useTableData.js +67 -68
  435. package/dist/hooks/useTableData.js.map +1 -1
  436. package/dist/index-nostyled.d.ts +8 -0
  437. package/dist/index.d.ts +27 -1
  438. package/dist/index.js +105 -241
  439. package/dist/layouts/MainLayout.js +56 -56
  440. package/dist/layouts/MainLayout.js.map +1 -1
  441. package/dist/layouts/Navbar.js +214 -214
  442. package/dist/layouts/Navbar.js.map +1 -1
  443. package/dist/layouts/Sidebar.js +184 -186
  444. package/dist/layouts/Sidebar.js.map +1 -1
  445. package/dist/layouts/headbar/Headbar.js +25 -25
  446. package/dist/layouts/headbar/Headbar.js.map +1 -1
  447. package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
  448. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  449. package/dist/layouts/headbar/HeadbarSearch.js +120 -120
  450. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  451. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
  452. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  453. package/dist/layouts/headbar/HeadbarTitle.js +26 -26
  454. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  455. package/dist/lite.js +9 -24
  456. package/dist/markdown.js +4 -9
  457. package/dist/pages/components/Calendar/index.d.ts +3 -0
  458. package/dist/pages/components/Calendar/index.en.d.ts +3 -0
  459. package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
  460. package/dist/pages/components/Chat/index.d.ts +3 -0
  461. package/dist/pages/components/Chat/index.en.d.ts +3 -0
  462. package/dist/pages/components/Chat/index.zh.d.ts +3 -0
  463. package/dist/pages/components/FloatWindow/index.d.ts +3 -0
  464. package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
  465. package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
  466. package/dist/pages/components/Gantt/index.d.ts +3 -0
  467. package/dist/pages/components/Gantt/index.en.d.ts +3 -0
  468. package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
  469. package/dist/pages/components/GridLayout/index.d.ts +3 -0
  470. package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
  471. package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
  472. package/dist/pages/components/Notification/index.d.ts +3 -0
  473. package/dist/pages/components/Notification/index.en.d.ts +3 -0
  474. package/dist/pages/components/Notification/index.zh.d.ts +3 -0
  475. package/dist/pages/components/Resizable/index.d.ts +3 -0
  476. package/dist/pages/components/Resizable/index.en.d.ts +3 -0
  477. package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
  478. package/dist/pages/components/Tab/index.d.ts +3 -0
  479. package/dist/pages/components/Tab/index.en.d.ts +3 -0
  480. package/dist/pages/components/Tab/index.zh.d.ts +3 -0
  481. package/dist/styles/themeStyles.js +87 -86
  482. package/dist/styles/themeStyles.js.map +1 -1
  483. package/dist/utils/cn.d.ts +13 -0
  484. package/dist/utils/cn.js +16 -0
  485. package/dist/utils/cn.js.map +1 -0
  486. package/dist/utils/i18n.js +690 -602
  487. package/dist/utils/i18n.js.map +1 -1
  488. package/dist/utils/menu.js +94 -94
  489. package/dist/utils/menu.js.map +1 -1
  490. package/dist/utils/rehype-code-meta.js +14 -14
  491. package/dist/utils/rehype-code-meta.js.map +1 -1
  492. package/dist/utils/remark-code-meta.js +9 -9
  493. package/dist/utils/remark-code-meta.js.map +1 -1
  494. package/dist/utils/routerBuilder.js +59 -60
  495. package/dist/utils/routerBuilder.js.map +1 -1
  496. package/dist/utils/selection.js +28 -29
  497. package/dist/utils/selection.js.map +1 -1
  498. package/dist/utils/themes.js +275 -255
  499. package/dist/utils/themes.js.map +1 -1
  500. package/package.json +19 -6
@@ -1 +1 @@
1
- {"version":3,"file":"FlowToolbar.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/FlowToolbar.tsx"],"sourcesContent":["import React, { useRef, useCallback } from 'react';\nimport Button from '../../../Button';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { useFlowContext } from '../context/FlowContext';\nimport ProjectTitle from './ProjectTitle';\nimport { useFlowImportExport, downloadDataURL, safeFileBaseName } from '../hooks/useFlowImportExport';\nimport { useLayoutActions } from '../hooks/useLayoutActions';\nimport { archifyStylePatch, inferComponentType, ARCHIFY_ARROW, variantEdgeStyle } from '../archify';\n\nimport {\n IconBack,\n IconUndo,\n IconRedo,\n IconGroup,\n IconGeoGroup,\n IconUngroup,\n IconAlign,\n IconZoomIn,\n IconZoomOut,\n IconFitView,\n IconAutoFocus,\n IconShapes,\n IconInspector,\n IconOutline,\n IconJson,\n IconAI,\n IconGrid,\n IconMagnet,\n IconMiniMap,\n IconImport,\n IconExportJson,\n IconExportPng,\n IconExportPdf,\n IconExportMarkdown,\n IconLayer,\n IconPublish,\n IconAnchorVisible,\n IconPresent,\n IconArchify,\n} from './toolbarIcons';\n\n/** Compact zoom / view controls floated over the bottom-left of the canvas. */\nexport function FlowZoomControls() {\n const { viewport, setViewport, autoFocus, setAutoFocus } = useFlowUI();\n const zoomPercent = Math.round(viewport.zoom * 100);\n\n const handleZoomIn = () => {\n setViewport({ ...viewport, zoom: Math.min(4, viewport.zoom * 1.2) });\n };\n const handleZoomOut = () => {\n setViewport({ ...viewport, zoom: Math.max(0.1, viewport.zoom / 1.2) });\n };\n const handleFitView = () => {\n setViewport({ x: 0, y: 0, zoom: 1 });\n };\n\n return (\n <div className=\"flow-zoom-controls\">\n <ToolButton tip=\"缩小\" onClick={handleZoomOut}>\n <IconZoomOut />\n </ToolButton>\n <span className=\"flow-zoom-info\">{zoomPercent}%</span>\n <ToolButton tip=\"放大\" onClick={handleZoomIn}>\n <IconZoomIn />\n </ToolButton>\n <ToolButton tip=\"适应视图\" onClick={handleFitView}>\n <IconFitView />\n </ToolButton>\n <ToolButton\n tip={autoFocus ? '关闭 Auto Focus' : '开启 Auto Focus'}\n active={autoFocus}\n onClick={() => setAutoFocus(!autoFocus)}\n >\n <IconAutoFocus />\n </ToolButton>\n </div>\n );\n}\n\n\n/** A toolbar button with an accessible, hover-revealed tooltip below it. */\ninterface ToolButtonProps {\n tip: string;\n shortcut?: string;\n onClick: () => void;\n active?: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction ToolButton({ tip, shortcut, onClick, active, disabled, children }: ToolButtonProps) {\n const label = shortcut ? `${tip} (${shortcut})` : tip;\n return (\n <span className=\"flow-tip\">\n <Button\n size=\"xs\"\n variant={active ? 'primary' : 'ghost'}\n onClick={onClick}\n disabled={disabled}\n square\n >\n <span aria-label={label} style={{ display: 'inline-flex' }}>{children}</span>\n </Button>\n <span className=\"flow-tip-label\" role=\"tooltip\">{label}</span>\n </span>\n );\n}\n\nexport interface FlowToolbarProps {\n onBack?: () => void;\n onUndo?: () => void;\n onRedo?: () => void;\n canUndo?: boolean;\n canRedo?: boolean;\n onGroup?: () => void;\n onGeoGroup?: () => void;\n onUngroup?: () => void;\n onExportPNG?: () => void | Promise<void>;\n /** Export anchors as a PDF slideshow from the built-in toolbar. */\n onExportPDF?: () => void | Promise<void>;\n onPublish?: () => void;\n /** Small-screen (container-width) layout: the title gets its own row and\n * button groups wrap below instead of sliding under the absolute title. */\n compact?: boolean;\n}\n\nexport default function FlowToolbar({ onBack, onUndo, onRedo, canUndo, canRedo, onGroup, onGeoGroup, onUngroup, onExportPNG, onExportPDF, onPublish, compact }: FlowToolbarProps) {\n const {\n showGrid, setShowGrid,\n showPalette, setShowPalette,\n showInspector, setShowInspector,\n showOutline, setShowOutline,\n showJson, setShowJson,\n showAI, setShowAI,\n showMiniMap, setShowMiniMap,\n showAnchors, setShowAnchors,\n presentation, setPresentation,\n placementSnap, setPlacementSnap,\n } = useFlowUI();\n const { doc, selection, currentCanvas, setDoc, currentCanvasId } = useFlowContext();\n const { exportJSON, importJSON, exportMarkdown } = useFlowImportExport();\n const { align, distribute, changeZIndex } = useLayoutActions();\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const selTotalCount = selection.nodeIds.size + selection.lineIds.size;\n const hasGroupSelected = selection.nodeIds.size > 0 && currentCanvas.nodes.some(\n n => selection.nodeIds.has(n.id) && (n.type === 'flowGroup' || n.type === 'geometryGroup' || n.data.isGroup),\n );\n const hasAnchors = Object.values(doc.canvases).some(canvas =>\n canvas.nodes.some(node => node.type === 'animAnchor'),\n );\n\n\n const handleExportJSON = useCallback(() => {\n const json = exportJSON();\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.json`);\n URL.revokeObjectURL(url);\n }, [exportJSON, doc.title]);\n\n const handleExportMarkdown = useCallback(() => {\n const md = exportMarkdown();\n const blob = new Blob([md], { type: 'text/markdown' });\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.md`);\n URL.revokeObjectURL(url);\n }, [exportMarkdown, doc.title]);\n\n const handleImportJSON = useCallback(() => {\n fileInputRef.current?.click();\n }, []);\n\n /**\n * Recolor the current canvas to the unified Archify style: every plain shape\n * node adopts its inferred semantic card colors, and every edge is restyled\n * by its arrow color. Content, geometry, and any sub-labels/tags are kept.\n */\n const handleApplyArchifyStyle = useCallback(() => {\n setDoc((prev) => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n const nodes = canvas.nodes.map((n) => {\n if (n.type === 'animAnchor' || n.type === 'shapeSvg') return n;\n if (n.data.isGroup || n.type === 'flowGroup' || n.type === 'geometryGroup') return n;\n // Media nodes (including data charts) adopt the semantic card colors; the\n // chart's primary series color follows the node `color` at render time.\n return { ...n, data: { ...n.data, ...archifyStylePatch(inferComponentType(n.data)) } };\n });\n const edges = canvas.edges.map((e) => {\n const isEmphasis = e.data.strokeColor && e.data.strokeColor !== ARCHIFY_ARROW;\n const style = variantEdgeStyle(isEmphasis ? 'emphasis' : 'default');\n return {\n ...e,\n data: {\n ...e.data,\n strokeColor: e.data.strokeColor && e.data.strokeColor.startsWith('theme:')\n ? style.color\n : (e.data.strokeColor ?? style.color),\n },\n };\n });\n return {\n ...prev,\n canvases: { ...prev.canvases, [currentCanvasId]: { ...canvas, nodes, edges } },\n };\n });\n }, [setDoc, currentCanvasId]);\n\n const handleFileChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result === 'string') importJSON(reader.result);\n };\n reader.readAsText(file);\n e.target.value = '';\n }, [importJSON]);\n\n return (\n <div className={`flow-toolbar${compact ? ' flow-toolbar--compact' : ''}`}>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".json\"\n style={{ display: 'none' }}\n onChange={handleFileChange}\n />\n\n {/* Editable project title, anchored to the toolbar's left edge. Hidden\n in compact mode: the host app's header already shows the name, and\n the narrow toolbar needs the row for buttons. */}\n {!compact && <ProjectTitle />}\n\n {onBack && (\n <>\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"返回列表\" onClick={onBack}>\n <IconBack />\n </ToolButton>\n </div>\n <div className=\"flow-toolbar-divider\" />\n </>\n )}\n\n {/* 历史:撤销 / 重做 */}\n {(onUndo || onRedo) && (\n <div className=\"flow-toolbar-group\">\n {onUndo && (\n <ToolButton tip=\"撤销\" shortcut=\"Ctrl+Z\" onClick={onUndo} disabled={!canUndo}>\n <IconUndo />\n </ToolButton>\n )}\n {onRedo && (\n <ToolButton tip=\"重做\" shortcut=\"Ctrl+Shift+Z\" onClick={onRedo} disabled={!canRedo}>\n <IconRedo />\n </ToolButton>\n )}\n </div>\n )}\n\n {/* 排列:对齐 / 平分 */}\n {selection.nodeIds.size >= 2 && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"居左\" onClick={() => align('left')}><IconAlign kind=\"left\" /></ToolButton>\n <ToolButton tip=\"水平居中\" onClick={() => align('center-h')}><IconAlign kind=\"center-h\" /></ToolButton>\n <ToolButton tip=\"居右\" onClick={() => align('right')}><IconAlign kind=\"right\" /></ToolButton>\n <ToolButton tip=\"居上\" onClick={() => align('top')}><IconAlign kind=\"top\" /></ToolButton>\n <ToolButton tip=\"垂直居中\" onClick={() => align('center-v')}><IconAlign kind=\"center-v\" /></ToolButton>\n <ToolButton tip=\"居下\" onClick={() => align('bottom')}><IconAlign kind=\"bottom\" /></ToolButton>\n <ToolButton tip=\"水平平分\" onClick={() => distribute('horizontal')} disabled={selection.nodeIds.size < 3}>\n <IconAlign kind=\"distribute-h\" />\n </ToolButton>\n <ToolButton tip=\"垂直平分\" onClick={() => distribute('vertical')} disabled={selection.nodeIds.size < 3}>\n <IconAlign kind=\"distribute-v\" />\n </ToolButton>\n </div>\n </>\n )}\n\n {/* 图层:置顶 / 上移 / 下移 / 置底 */}\n {selTotalCount >= 1 && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"置于顶层\" onClick={() => changeZIndex('front')}><IconLayer kind=\"front\" /></ToolButton>\n <ToolButton tip=\"上移一层\" onClick={() => changeZIndex('up')}><IconLayer kind=\"up\" /></ToolButton>\n <ToolButton tip=\"下移一层\" onClick={() => changeZIndex('down')}><IconLayer kind=\"down\" /></ToolButton>\n <ToolButton tip=\"置于底层\" onClick={() => changeZIndex('back')}><IconLayer kind=\"back\" /></ToolButton>\n </div>\n </>\n )}\n\n {/* 组合:成组 / 几何分组 / 取消成组 */}\n {(onGroup || onGeoGroup || onUngroup) && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n {onGroup && (\n <ToolButton tip=\"成组\" shortcut=\"⌘G\" onClick={onGroup} disabled={selTotalCount < 2}>\n <IconGroup />\n </ToolButton>\n )}\n {onGeoGroup && (\n <ToolButton tip=\"几何分组\" shortcut=\"⌘⌥G\" onClick={onGeoGroup} disabled={selTotalCount < 2}>\n <IconGeoGroup />\n </ToolButton>\n )}\n {onUngroup && (\n <ToolButton tip=\"取消成组\" shortcut=\"⌘⇧G\" onClick={onUngroup} disabled={!hasGroupSelected}>\n <IconUngroup />\n </ToolButton>\n )}\n </div>\n </>\n )}\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 视图:网格 / 缩略图 / Anchor / 动画预览 */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"网格\" active={showGrid} onClick={() => setShowGrid(!showGrid)}>\n <IconGrid />\n </ToolButton>\n <ToolButton\n tip={placementSnap ? '放置吸附网格:开(盖章自动贴近网格)' : '放置吸附网格:关(自由放置)'}\n active={placementSnap}\n onClick={() => setPlacementSnap(!placementSnap)}\n >\n <IconMagnet />\n </ToolButton>\n <ToolButton tip=\"缩略图\" active={showMiniMap} onClick={() => setShowMiniMap(!showMiniMap)}>\n <IconMiniMap />\n </ToolButton>\n <ToolButton\n tip={showAnchors ? '隐藏所有 Anchor 对象' : '显示所有 Anchor 对象'}\n active={showAnchors}\n disabled={!hasAnchors}\n onClick={() => {\n if (hasAnchors) setShowAnchors(!showAnchors);\n }}\n >\n <IconAnchorVisible visible={showAnchors} />\n </ToolButton>\n <ToolButton\n tip=\"动画预览\"\n active={presentation !== null}\n onClick={() => setPresentation(presentation ? null : { current: 0, showAnchor: false })}\n >\n <IconPresent />\n </ToolButton>\n <ToolButton\n tip=\"应用 Archify 风格(当前画布)\"\n onClick={handleApplyArchifyStyle}\n >\n <IconArchify />\n </ToolButton>\n </div>\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 面板:形状 / 属性 / 大纲 / JSON */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"形状面板\" active={showPalette} onClick={() => setShowPalette(!showPalette)}>\n <IconShapes />\n </ToolButton>\n <ToolButton tip=\"属性面板\" active={showInspector} onClick={() => setShowInspector(!showInspector)}>\n <IconInspector />\n </ToolButton>\n <ToolButton tip=\"大纲\" active={showOutline} onClick={() => setShowOutline(!showOutline)}>\n <IconOutline />\n </ToolButton>\n <ToolButton tip=\"JSON\" active={showJson} onClick={() => setShowJson(!showJson)}>\n <IconJson />\n </ToolButton>\n <ToolButton tip=\"AI 助手\" active={showAI} onClick={() => setShowAI(!showAI)}>\n <IconAI />\n </ToolButton>\n </div>\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 文件:导入 / 导出 / 发布 */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"导入 JSON\" onClick={handleImportJSON}>\n <IconImport />\n </ToolButton>\n <ToolButton tip=\"导出 JSON\" onClick={handleExportJSON}>\n <IconExportJson />\n </ToolButton>\n <ToolButton tip=\"导出 Markdown\" onClick={handleExportMarkdown}>\n <IconExportMarkdown />\n </ToolButton>\n {onExportPNG && (\n <ToolButton tip=\"导出 PNG\" onClick={() => void onExportPNG()}>\n <IconExportPng />\n </ToolButton>\n )}\n {onExportPDF && hasAnchors && (\n <ToolButton tip=\"导出 PDF(按锦点顺序)\" onClick={() => void onExportPDF()}>\n <IconExportPdf />\n </ToolButton>\n )}\n {onPublish && (\n <ToolButton tip=\"发布与共享\" onClick={onPublish}>\n <IconPublish />\n </ToolButton>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AA0CA,SAAgB,KAAmB;AACjC,QAAM,EAAE,UAAA,GAAU,aAAA,GAAa,WAAA,GAAW,cAAA,EAAA,IAAiB,EAAU,GAC/D,IAAc,KAAK,MAAM,EAAS,OAAO,GAAG;AAYlD,SACE,gBAAA,EAAC,OAAD;AAAA,IAAK,WAAU;AAAA,IAAf,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QAAY,KAAI;AAAA,QAAK,SATnB,MAAsB;AAC1B,UAAA,EAAY;AAAA,YAAE,GAAG;AAAA,YAAU,MAAM,KAAK,IAAI,KAAK,EAAS,OAAO,GAAG;AAAA,UAAE,CAAC;AAAA,QACvE;AAAA,QAQM,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,MACJ,CAAA;AAAA,MACZ,gBAAA,EAAC,QAAD;AAAA,QAAM,WAAU;AAAA,QAAhB,UAAA,CAAkC,GAAY,GAAO;AAAA;MACrD,gBAAA,EAAC,GAAD;AAAA,QAAY,KAAI;AAAA,QAAK,SAhBnB,MAAqB;AACzB,UAAA,EAAY;AAAA,YAAE,GAAG;AAAA,YAAU,MAAM,KAAK,IAAI,GAAG,EAAS,OAAO,GAAG;AAAA,UAAE,CAAC;AAAA,QACrE;AAAA,QAeM,UAAA,gBAAA,EAAC,IAAD,CAAa,CAAA;AAAA,MACH,CAAA;AAAA,MACZ,gBAAA,EAAC,GAAD;AAAA,QAAY,KAAI;AAAA,QAAO,SAbrB,MAAsB;AAC1B,UAAA,EAAY;AAAA,YAAE,GAAG;AAAA,YAAG,GAAG;AAAA,YAAG,MAAM;AAAA,UAAE,CAAC;AAAA,QACrC;AAAA,QAYM,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,MACJ,CAAA;AAAA,MACZ,gBAAA,EAAC,GAAD;AAAA,QACE,KAAK,IAAY,kBAAkB;AAAA,QACnC,QAAQ;AAAA,QACR,SAAA,MAAe,EAAa,CAAC,CAAS;AAAA,QAEtC,UAAA,gBAAA,EAAC,IAAD,CAAgB,CAAA;AAAA,MACN,CAAA;AAAA,IACT;AAAA;AAET;AAaA,SAAS,EAAW,EAAE,KAAA,GAAK,UAAA,GAAU,SAAA,GAAS,QAAA,GAAQ,UAAA,GAAU,UAAA,EAAA,GAA6B;AAC3F,QAAM,IAAQ,IAAW,GAAG,CAAA,KAAQ,CAAA,MAAc;AAClD,SACE,gBAAA,EAAC,QAAD;AAAA,IAAM,WAAU;AAAA,IAAhB,UAAA,CACE,gBAAA,EAAC,IAAD;AAAA,MACE,MAAK;AAAA,MACL,SAAS,IAAS,YAAY;AAAA,MACrB,SAAA;AAAA,MACC,UAAA;AAAA,MACV,QAAA;AAAA,MAEA,UAAA,gBAAA,EAAC,QAAD;AAAA,QAAM,cAAY;AAAA,QAAO,OAAO,EAAE,SAAS,cAAc;AAAA,QAAI,UAAA;AAAA,MAAe,CAAA;AAAA,IACtE,CAAA,GACR,gBAAA,EAAC,QAAD;AAAA,MAAM,WAAU;AAAA,MAAiB,MAAK;AAAA,MAAW,UAAA;AAAA,IAAY,CAAA,CACzD;AAAA;AAEV;AAoBA,SAAwB,GAAY,EAAE,QAAA,GAAQ,QAAA,GAAQ,QAAA,GAAQ,SAAA,GAAS,SAAA,GAAS,SAAA,GAAS,YAAA,GAAY,WAAA,GAAW,aAAA,GAAa,aAAA,GAAa,WAAA,GAAW,SAAA,EAAA,GAA6B;AAChL,QAAM,EACJ,UAAA,GAAU,aAAA,GACV,aAAA,GAAa,gBAAA,GACb,eAAA,GAAe,kBAAA,GACf,aAAA,GAAa,gBAAA,GACb,UAAA,GAAU,aAAA,IACV,QAAA,GAAQ,WAAA,IACR,aAAA,GAAa,gBAAA,IACb,aAAA,GAAa,gBAAA,IACb,cAAA,GAAc,iBAAA,IACd,eAAA,GAAe,kBAAA,GAAA,IACb,EAAU,GACR,EAAE,KAAA,GAAK,WAAA,GAAW,eAAA,IAAe,QAAA,GAAQ,iBAAA,EAAA,IAAoB,GAAe,GAC5E,EAAE,YAAA,GAAY,YAAA,GAAY,gBAAA,EAAA,IAAmB,GAAoB,GACjE,EAAE,OAAA,GAAO,YAAA,GAAY,cAAA,EAAA,IAAiB,GAAiB,GACvD,IAAe,GAAyB,IAAI,GAE5C,IAAgB,EAAU,QAAQ,OAAO,EAAU,QAAQ,MAC3D,KAAmB,EAAU,QAAQ,OAAO,KAAK,GAAc,MAAM,KAAA,CACzE,MAAK,EAAU,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,SAAS,mBAAmB,EAAE,KAAK,QACtG,GACM,IAAa,OAAO,OAAO,EAAI,QAAQ,EAAE,KAAA,CAAK,MAClD,EAAO,MAAM,KAAA,CAAK,MAAQ,EAAK,SAAS,YAAY,CACtD,GAGM,KAAmB,EAAA,MAAkB;AACzC,UAAM,IAAO,EAAW,GAClB,IAAO,IAAI,KAAK,CAAC,CAAI,GAAG,EAAE,MAAM,mBAAmB,CAAC,GACpD,IAAM,IAAI,gBAAgB,CAAI;AACpC,IAAA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,CAAA,OAAQ,GAC1D,IAAI,gBAAgB,CAAG;AAAA,EACzB,GAAG,CAAC,GAAY,EAAI,KAAK,CAAC,GAEpB,KAAuB,EAAA,MAAkB;AAC7C,UAAM,IAAK,EAAe,GACpB,IAAO,IAAI,KAAK,CAAC,CAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,GAC/C,IAAM,IAAI,gBAAgB,CAAI;AACpC,IAAA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,CAAA,KAAM,GACxD,IAAI,gBAAgB,CAAG;AAAA,EACzB,GAAG,CAAC,GAAgB,EAAI,KAAK,CAAC,GAExB,KAAmB,EAAA,MAAkB;AACzC,IAAA,EAAa,SAAS,MAAM;AAAA,EAC9B,GAAG,CAAC,CAAC,GAOC,KAA0B,EAAA,MAAkB;AAChD,IAAA,EAAA,CAAQ,MAAS;AACf,YAAM,IAAS,EAAK,SAAS,CAAA;AAC7B,UAAI,CAAC,EAAQ,QAAO;AACpB,YAAM,IAAQ,EAAO,MAAM,IAAA,CAAK,MAC1B,EAAE,SAAS,gBAAgB,EAAE,SAAS,cACtC,EAAE,KAAK,WAAW,EAAE,SAAS,eAAe,EAAE,SAAS,kBAAwB,IAG5E;AAAA,QAAE,GAAG;AAAA,QAAG,MAAM;AAAA,UAAE,GAAG,EAAE;AAAA,UAAM,GAAG,GAAkB,GAAmB,EAAE,IAAI,CAAC;AAAA,QAAE;AAAA,MAAE,CACtF,GACK,KAAQ,EAAO,MAAM,IAAA,CAAK,MAAM;AACpC,cAAM,KAAa,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAA,WAC1C,IAAQ,GAAiB,KAAa,aAAa,SAAS;AAClE,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM;AAAA,YACJ,GAAG,EAAE;AAAA,YACL,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,WAAW,QAAQ,IACrE,EAAM,QACL,EAAE,KAAK,eAAe,EAAM;AAAA,UACnC;AAAA,QACF;AAAA,MACF,CAAC;AACD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,UAAU;AAAA,UAAE,GAAG,EAAK;AAAA,UAAW,CAAA,CAAA,GAAkB;AAAA,YAAE,GAAG;AAAA,YAAQ,OAAA;AAAA,YAAO,OAAA;AAAA,UAAM;AAAA,QAAE;AAAA,MAC/E;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,GAAQ,CAAe,CAAC,GAEtB,KAAmB,EAAA,CAAa,MAA2C;AAC/E,UAAM,IAAO,EAAE,OAAO,QAAQ,CAAA;AAC9B,QAAI,CAAC,EAAM;AACX,UAAM,IAAS,IAAI,WAAW;AAC9B,IAAA,EAAO,SAAA,MAAe;AACpB,MAAI,OAAO,EAAO,UAAW,YAAU,EAAW,EAAO,MAAM;AAAA,IACjE,GACA,EAAO,WAAW,CAAI,GACtB,EAAE,OAAO,QAAQ;AAAA,EACnB,GAAG,CAAC,CAAU,CAAC;AAEf,SACE,gBAAA,EAAC,OAAD;AAAA,IAAK,WAAW,eAAe,IAAU,2BAA2B,EAAA;AAAA,IAApE,UAAA;AAAA,MACE,gBAAA,EAAC,SAAD;AAAA,QACE,KAAK;AAAA,QACL,MAAK;AAAA,QACL,QAAO;AAAA,QACP,OAAO,EAAE,SAAS,OAAO;AAAA,QACzB,UAAU;AAAA,MACX,CAAA;AAAA,MAKA,CAAC,KAAW,gBAAA,EAAC,IAAD,CAAe,CAAA;AAAA,MAE3B,KACC,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QACb,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAY,KAAI;AAAA,UAAO,SAAS;AAAA,UAC9B,UAAA,gBAAA,EAAC,IAAD,CAAW,CAAA;AAAA,QACD,CAAA;AAAA,MACT,CAAA,GACL,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,CACvC,EAAA,CAAA;AAAA,OAIF,KAAU,MACV,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA,CACG,KACC,gBAAA,EAAC,GAAD;AAAA,UAAY,KAAI;AAAA,UAAK,UAAS;AAAA,UAAS,SAAS;AAAA,UAAQ,UAAU,CAAC;AAAA,UACjE,UAAA,gBAAA,EAAC,IAAD,CAAW,CAAA;AAAA,QACD,CAAA,GAEb,KACC,gBAAA,EAAC,GAAD;AAAA,UAAY,KAAI;AAAA,UAAK,UAAS;AAAA,UAAe,SAAS;AAAA,UAAQ,UAAU,CAAC;AAAA,UACvE,UAAA,gBAAA,EAAC,IAAD,CAAW,CAAA;AAAA,QACD,CAAA,CAEX;AAAA;MAIN,EAAU,QAAQ,QAAQ,KACzB,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,SAAA,MAAe,EAAM,MAAM;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;AAAA,UAAa,CAAA;AAAA,UACxF,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAM,UAAU;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,WAAY,CAAA;AAAA,UAAa,CAAA;AAAA,UAClG,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,SAAA,MAAe,EAAM,OAAO;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,QAAS,CAAA;AAAA,UAAa,CAAA;AAAA,UAC1F,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,SAAA,MAAe,EAAM,KAAK;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,MAAO,CAAA;AAAA,UAAa,CAAA;AAAA,UACtF,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAM,UAAU;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,WAAY,CAAA;AAAA,UAAa,CAAA;AAAA,UAClG,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,SAAA,MAAe,EAAM,QAAQ;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,SAAU,CAAA;AAAA,UAAa,CAAA;AAAA,UAC5F,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAW,YAAY;AAAA,YAAG,UAAU,EAAU,QAAQ,OAAO;AAAA,YACjG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,eAAgB,CAAA;AAAA,UACtB,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAW,UAAU;AAAA,YAAG,UAAU,EAAU,QAAQ,OAAO;AAAA,YAC/F,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,eAAgB,CAAA;AAAA,UACtB,CAAA;AAAA,QACT;AAAA,MACL,CAAA,CAAA,EAAA,CAAA;AAAA,MAIH,KAAiB,KAChB,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAa,OAAO;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,QAAS,CAAA;AAAA,UAAa,CAAA;AAAA,UACnG,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAa,IAAI;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,KAAM,CAAA;AAAA,UAAa,CAAA;AAAA,UAC7F,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAa,MAAM;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;AAAA,UAAa,CAAA;AAAA,UACjG,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,SAAA,MAAe,EAAa,MAAM;AAAA,YAAG,UAAA,gBAAA,EAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;AAAA,UAAa,CAAA;AAAA,QAC9F;AAAA,MACL,CAAA,CAAA,EAAA,CAAA;AAAA,OAIF,KAAW,KAAc,MACzB,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACG,KACC,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,UAAS;AAAA,YAAK,SAAS;AAAA,YAAS,UAAU,IAAgB;AAAA,YAC7E,UAAA,gBAAA,EAAC,IAAD,CAAY,CAAA;AAAA,UACF,CAAA;AAAA,UAEb,KACC,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,UAAS;AAAA,YAAM,SAAS;AAAA,YAAY,UAAU,IAAgB;AAAA,YACnF,UAAA,gBAAA,EAAC,IAAD,CAAe,CAAA;AAAA,UACL,CAAA;AAAA,UAEb,KACC,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,UAAS;AAAA,YAAM,SAAS;AAAA,YAAW,UAAU,CAAC;AAAA,YACnE,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,QAEX;AAAA,MACL,CAAA,CAAA,EAAA,CAAA;AAAA,MAGJ,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;AAAA,MAGvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,QAAQ;AAAA,YAAU,SAAA,MAAe,EAAY,CAAC,CAAQ;AAAA,YACzE,UAAA,gBAAA,EAAC,IAAD,CAAW,CAAA;AAAA,UACD,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YACE,KAAK,IAAgB,uBAAuB;AAAA,YAC5C,QAAQ;AAAA,YACR,SAAA,MAAe,GAAiB,CAAC,CAAa;AAAA,YAE9C,UAAA,gBAAA,EAAC,IAAD,CAAa,CAAA;AAAA,UACH,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAM,QAAQ;AAAA,YAAa,SAAA,MAAe,GAAe,CAAC,CAAW;AAAA,YACnF,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YACE,KAAK,IAAc,mBAAmB;AAAA,YACtC,QAAQ;AAAA,YACR,UAAU,CAAC;AAAA,YACX,SAAA,MAAe;AACb,cAAI,KAAY,GAAe,CAAC,CAAW;AAAA,YAC7C;AAAA,YAEA,UAAA,gBAAA,EAAC,IAAD,EAAmB,SAAS,EAAc,CAAA;AAAA,UAChC,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YACE,KAAI;AAAA,YACJ,QAAQ,MAAiB;AAAA,YACzB,SAAA,MAAe,GAAgB,IAAe,OAAO;AAAA,cAAE,SAAS;AAAA,cAAG,YAAY;AAAA,YAAM,CAAC;AAAA,YAEtF,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YACE,KAAI;AAAA,YACJ,SAAS;AAAA,YAET,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,QACT;AAAA;MAEL,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;AAAA,MAGvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,QAAQ;AAAA,YAAa,SAAA,MAAe,EAAe,CAAC,CAAW;AAAA,YACpF,UAAA,gBAAA,EAAC,IAAD,CAAa,CAAA;AAAA,UACH,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,QAAQ;AAAA,YAAe,SAAA,MAAe,EAAiB,CAAC,CAAa;AAAA,YAC1F,UAAA,gBAAA,EAAC,IAAD,CAAgB,CAAA;AAAA,UACN,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAK,QAAQ;AAAA,YAAa,SAAA,MAAe,EAAe,CAAC,CAAW;AAAA,YAClF,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAO,QAAQ;AAAA,YAAU,SAAA,MAAe,GAAY,CAAC,CAAQ;AAAA,YAC3E,UAAA,gBAAA,EAAC,IAAD,CAAW,CAAA;AAAA,UACD,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAQ,QAAQ;AAAA,YAAQ,SAAA,MAAe,GAAU,CAAC,CAAM;AAAA,YACtE,UAAA,gBAAA,EAAC,IAAD,CAAS,CAAA;AAAA,UACC,CAAA;AAAA,QACT;AAAA;MAEL,gBAAA,EAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;AAAA,MAGvC,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,QAAf,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAU,SAAS;AAAA,YACjC,UAAA,gBAAA,EAAC,IAAD,CAAa,CAAA;AAAA,UACH,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAU,SAAS;AAAA,YACjC,UAAA,gBAAA,EAAC,IAAD,CAAiB,CAAA;AAAA,UACP,CAAA;AAAA,UACZ,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAc,SAAS;AAAA,YACrC,UAAA,gBAAA,EAAC,IAAD,CAAqB,CAAA;AAAA,UACX,CAAA;AAAA,UACX,KACC,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAS,SAAA,MAAA;AAAe,cAAK,EAAY;AAAA;AAAA,YACvD,UAAA,gBAAA,EAAC,IAAD,CAAgB,CAAA;AAAA,UACN,CAAA;AAAA,UAEb,KAAe,KACd,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAgB,SAAA,MAAA;AAAe,cAAK,EAAY;AAAA;AAAA,YAC9D,UAAA,gBAAA,EAAC,IAAD,CAAgB,CAAA;AAAA,UACN,CAAA;AAAA,UAEb,KACC,gBAAA,EAAC,GAAD;AAAA,YAAY,KAAI;AAAA,YAAQ,SAAS;AAAA,YAC/B,UAAA,gBAAA,EAAC,IAAD,CAAc,CAAA;AAAA,UACJ,CAAA;AAAA,QAEX;AAAA;IACF;AAAA;AAET"}
1
+ {"version":3,"file":"FlowToolbar.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/FlowToolbar.tsx"],"sourcesContent":["import React, { useRef, useCallback } from 'react';\nimport Button from '../../../Button';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { useFlowContext } from '../context/FlowContext';\nimport ProjectTitle from './ProjectTitle';\nimport { useFlowImportExport, downloadDataURL, safeFileBaseName } from '../hooks/useFlowImportExport';\nimport { useLayoutActions } from '../hooks/useLayoutActions';\n\n\nimport {\n IconBack,\n IconUndo,\n IconRedo,\n IconGroup,\n IconGeoGroup,\n IconUngroup,\n IconAlign,\n IconZoomIn,\n IconZoomOut,\n IconFitView,\n IconAutoFocus,\n IconShapes,\n IconInspector,\n IconOutline,\n IconJson,\n IconAI,\n IconGrid,\n IconMagnet,\n IconMiniMap,\n IconImport,\n IconExportJson,\n IconExportPng,\n IconExportPdf,\n IconExportMarkdown,\n IconLayer,\n IconPublish,\n IconAnchorVisible,\n IconPresent,\n} from './toolbarIcons';\n\n/** Compact zoom / view controls floated over the bottom-left of the canvas. */\nexport function FlowZoomControls() {\n const { viewport, setViewport, autoFocus, setAutoFocus } = useFlowUI();\n const zoomPercent = Math.round(viewport.zoom * 100);\n\n const handleZoomIn = () => {\n setViewport({ ...viewport, zoom: Math.min(4, viewport.zoom * 1.2) });\n };\n const handleZoomOut = () => {\n setViewport({ ...viewport, zoom: Math.max(0.1, viewport.zoom / 1.2) });\n };\n const handleFitView = () => {\n setViewport({ x: 0, y: 0, zoom: 1 });\n };\n\n return (\n <div className=\"flow-zoom-controls\">\n <ToolButton tip=\"缩小\" onClick={handleZoomOut}>\n <IconZoomOut />\n </ToolButton>\n <span className=\"flow-zoom-info\">{zoomPercent}%</span>\n <ToolButton tip=\"放大\" onClick={handleZoomIn}>\n <IconZoomIn />\n </ToolButton>\n <ToolButton tip=\"适应视图\" onClick={handleFitView}>\n <IconFitView />\n </ToolButton>\n <ToolButton\n tip={autoFocus ? '关闭 Auto Focus' : '开启 Auto Focus'}\n active={autoFocus}\n onClick={() => setAutoFocus(!autoFocus)}\n >\n <IconAutoFocus />\n </ToolButton>\n </div>\n );\n}\n\n\n/** A toolbar button with an accessible, hover-revealed tooltip below it. */\ninterface ToolButtonProps {\n tip: string;\n shortcut?: string;\n onClick: () => void;\n active?: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction ToolButton({ tip, shortcut, onClick, active, disabled, children }: ToolButtonProps) {\n const label = shortcut ? `${tip} (${shortcut})` : tip;\n return (\n <span className=\"flow-tip\">\n <Button\n size=\"xs\"\n variant={active ? 'primary' : 'ghost'}\n onClick={onClick}\n disabled={disabled}\n square\n >\n <span aria-label={label} style={{ display: 'inline-flex' }}>{children}</span>\n </Button>\n <span className=\"flow-tip-label\" role=\"tooltip\">{label}</span>\n </span>\n );\n}\n\nexport interface FlowToolbarProps {\n onBack?: () => void;\n onUndo?: () => void;\n onRedo?: () => void;\n canUndo?: boolean;\n canRedo?: boolean;\n onGroup?: () => void;\n onGeoGroup?: () => void;\n onUngroup?: () => void;\n onExportPNG?: () => void | Promise<void>;\n /** Export anchors as a PDF slideshow from the built-in toolbar. */\n onExportPDF?: () => void | Promise<void>;\n onPublish?: () => void;\n /** Small-screen (container-width) layout: the title gets its own row and\n * button groups wrap below instead of sliding under the absolute title. */\n compact?: boolean;\n}\n\nexport default function FlowToolbar({ onBack, onUndo, onRedo, canUndo, canRedo, onGroup, onGeoGroup, onUngroup, onExportPNG, onExportPDF, onPublish, compact }: FlowToolbarProps) {\n const {\n showGrid, setShowGrid,\n showPalette, setShowPalette,\n showInspector, setShowInspector,\n showOutline, setShowOutline,\n showJson, setShowJson,\n showAI, setShowAI,\n showMiniMap, setShowMiniMap,\n showAnchors, setShowAnchors,\n presentation, setPresentation,\n placementSnap, setPlacementSnap,\n } = useFlowUI();\n const { doc, selection, currentCanvas, setDoc, currentCanvasId } = useFlowContext();\n const { exportJSON, importJSON, exportMarkdown } = useFlowImportExport();\n const { align, distribute, changeZIndex } = useLayoutActions();\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const selTotalCount = selection.nodeIds.size + selection.lineIds.size;\n const hasGroupSelected = selection.nodeIds.size > 0 && currentCanvas.nodes.some(\n n => selection.nodeIds.has(n.id) && (n.type === 'flowGroup' || n.type === 'geometryGroup' || n.data.isGroup),\n );\n const hasAnchors = Object.values(doc.canvases).some(canvas =>\n canvas.nodes.some(node => node.type === 'animAnchor'),\n );\n\n\n const handleExportJSON = useCallback(() => {\n const json = exportJSON();\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.json`);\n URL.revokeObjectURL(url);\n }, [exportJSON, doc.title]);\n\n const handleExportMarkdown = useCallback(() => {\n const md = exportMarkdown();\n const blob = new Blob([md], { type: 'text/markdown' });\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.md`);\n URL.revokeObjectURL(url);\n }, [exportMarkdown, doc.title]);\n\n const handleImportJSON = useCallback(() => {\n fileInputRef.current?.click();\n }, []);\n\n const handleFileChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result === 'string') importJSON(reader.result);\n };\n reader.readAsText(file);\n e.target.value = '';\n }, [importJSON]);\n\n return (\n <div className={`flow-toolbar${compact ? ' flow-toolbar--compact' : ''}`}>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".json\"\n style={{ display: 'none' }}\n onChange={handleFileChange}\n />\n\n {/* Editable project title, anchored to the toolbar's left edge. Hidden\n in compact mode: the host app's header already shows the name, and\n the narrow toolbar needs the row for buttons. */}\n {!compact && <ProjectTitle />}\n\n {onBack && (\n <>\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"返回列表\" onClick={onBack}>\n <IconBack />\n </ToolButton>\n </div>\n <div className=\"flow-toolbar-divider\" />\n </>\n )}\n\n {/* 历史:撤销 / 重做 */}\n {(onUndo || onRedo) && (\n <div className=\"flow-toolbar-group\">\n {onUndo && (\n <ToolButton tip=\"撤销\" shortcut=\"Ctrl+Z\" onClick={onUndo} disabled={!canUndo}>\n <IconUndo />\n </ToolButton>\n )}\n {onRedo && (\n <ToolButton tip=\"重做\" shortcut=\"Ctrl+Shift+Z\" onClick={onRedo} disabled={!canRedo}>\n <IconRedo />\n </ToolButton>\n )}\n </div>\n )}\n\n {/* 排列:对齐 / 平分 */}\n {selection.nodeIds.size >= 2 && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"居左\" onClick={() => align('left')}><IconAlign kind=\"left\" /></ToolButton>\n <ToolButton tip=\"水平居中\" onClick={() => align('center-h')}><IconAlign kind=\"center-h\" /></ToolButton>\n <ToolButton tip=\"居右\" onClick={() => align('right')}><IconAlign kind=\"right\" /></ToolButton>\n <ToolButton tip=\"居上\" onClick={() => align('top')}><IconAlign kind=\"top\" /></ToolButton>\n <ToolButton tip=\"垂直居中\" onClick={() => align('center-v')}><IconAlign kind=\"center-v\" /></ToolButton>\n <ToolButton tip=\"居下\" onClick={() => align('bottom')}><IconAlign kind=\"bottom\" /></ToolButton>\n <ToolButton tip=\"水平平分\" onClick={() => distribute('horizontal')} disabled={selection.nodeIds.size < 3}>\n <IconAlign kind=\"distribute-h\" />\n </ToolButton>\n <ToolButton tip=\"垂直平分\" onClick={() => distribute('vertical')} disabled={selection.nodeIds.size < 3}>\n <IconAlign kind=\"distribute-v\" />\n </ToolButton>\n </div>\n </>\n )}\n\n {/* 图层:置顶 / 上移 / 下移 / 置底 */}\n {selTotalCount >= 1 && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"置于顶层\" onClick={() => changeZIndex('front')}><IconLayer kind=\"front\" /></ToolButton>\n <ToolButton tip=\"上移一层\" onClick={() => changeZIndex('up')}><IconLayer kind=\"up\" /></ToolButton>\n <ToolButton tip=\"下移一层\" onClick={() => changeZIndex('down')}><IconLayer kind=\"down\" /></ToolButton>\n <ToolButton tip=\"置于底层\" onClick={() => changeZIndex('back')}><IconLayer kind=\"back\" /></ToolButton>\n </div>\n </>\n )}\n\n {/* 组合:成组 / 几何分组 / 取消成组 */}\n {(onGroup || onGeoGroup || onUngroup) && (\n <>\n <div className=\"flow-toolbar-divider\" />\n <div className=\"flow-toolbar-group\">\n {onGroup && (\n <ToolButton tip=\"成组\" shortcut=\"⌘G\" onClick={onGroup} disabled={selTotalCount < 2}>\n <IconGroup />\n </ToolButton>\n )}\n {onGeoGroup && (\n <ToolButton tip=\"几何分组\" shortcut=\"⌘⌥G\" onClick={onGeoGroup} disabled={selTotalCount < 2}>\n <IconGeoGroup />\n </ToolButton>\n )}\n {onUngroup && (\n <ToolButton tip=\"取消成组\" shortcut=\"⌘⇧G\" onClick={onUngroup} disabled={!hasGroupSelected}>\n <IconUngroup />\n </ToolButton>\n )}\n </div>\n </>\n )}\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 视图:网格 / 缩略图 / Anchor / 动画预览 */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"网格\" active={showGrid} onClick={() => setShowGrid(!showGrid)}>\n <IconGrid />\n </ToolButton>\n <ToolButton\n tip={placementSnap ? '放置吸附网格:开(盖章自动贴近网格)' : '放置吸附网格:关(自由放置)'}\n active={placementSnap}\n onClick={() => setPlacementSnap(!placementSnap)}\n >\n <IconMagnet />\n </ToolButton>\n <ToolButton tip=\"缩略图\" active={showMiniMap} onClick={() => setShowMiniMap(!showMiniMap)}>\n <IconMiniMap />\n </ToolButton>\n <ToolButton\n tip={showAnchors ? '隐藏所有 Anchor 对象' : '显示所有 Anchor 对象'}\n active={showAnchors}\n disabled={!hasAnchors}\n onClick={() => {\n if (hasAnchors) setShowAnchors(!showAnchors);\n }}\n >\n <IconAnchorVisible visible={showAnchors} />\n </ToolButton>\n <ToolButton\n tip=\"动画预览\"\n active={presentation !== null}\n onClick={() => setPresentation(presentation ? null : { current: 0, showAnchor: false })}\n >\n <IconPresent />\n </ToolButton>\n </div>\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 面板:形状 / 属性 / 大纲 / JSON */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"形状面板\" active={showPalette} onClick={() => setShowPalette(!showPalette)}>\n <IconShapes />\n </ToolButton>\n <ToolButton tip=\"属性面板\" active={showInspector} onClick={() => setShowInspector(!showInspector)}>\n <IconInspector />\n </ToolButton>\n <ToolButton tip=\"大纲\" active={showOutline} onClick={() => setShowOutline(!showOutline)}>\n <IconOutline />\n </ToolButton>\n <ToolButton tip=\"JSON\" active={showJson} onClick={() => setShowJson(!showJson)}>\n <IconJson />\n </ToolButton>\n <ToolButton tip=\"AI 助手\" active={showAI} onClick={() => setShowAI(!showAI)}>\n <IconAI />\n </ToolButton>\n </div>\n\n <div className=\"flow-toolbar-divider\" />\n\n {/* 文件:导入 / 导出 / 发布 */}\n <div className=\"flow-toolbar-group\">\n <ToolButton tip=\"导入 JSON\" onClick={handleImportJSON}>\n <IconImport />\n </ToolButton>\n <ToolButton tip=\"导出 JSON\" onClick={handleExportJSON}>\n <IconExportJson />\n </ToolButton>\n <ToolButton tip=\"导出 Markdown\" onClick={handleExportMarkdown}>\n <IconExportMarkdown />\n </ToolButton>\n {onExportPNG && (\n <ToolButton tip=\"导出 PNG\" onClick={() => void onExportPNG()}>\n <IconExportPng />\n </ToolButton>\n )}\n {onExportPDF && hasAnchors && (\n <ToolButton tip=\"导出 PDF(按锦点顺序)\" onClick={() => void onExportPDF()}>\n <IconExportPdf />\n </ToolButton>\n )}\n {onPublish && (\n <ToolButton tip=\"发布与共享\" onClick={onPublish}>\n <IconPublish />\n </ToolButton>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAyCA,SAAgB,IAAmB;CACjC,IAAM,EAAE,aAAU,gBAAa,cAAW,oBAAiB,EAAU,GAC/D,IAAc,KAAK,MAAM,EAAS,OAAO,GAAG;CAYlD,OACE,kBAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GACE,kBAAC,GAAD;IAAY,KAAI;IAAK,eATG;KAC1B,EAAY;MAAE,GAAG;MAAU,MAAM,KAAK,IAAI,IAAK,EAAS,OAAO,GAAG;KAAE,CAAC;IACvE;IAQM,UAAA,kBAAC,GAAD,CAAc,CAAA;GACJ,CAAA;GACZ,kBAAC,QAAD;IAAM,WAAU;IAAhB,UAAA,CAAkC,GAAY,GAAO;;GACrD,kBAAC,GAAD;IAAY,KAAI;IAAK,eAhBE;KACzB,EAAY;MAAE,GAAG;MAAU,MAAM,KAAK,IAAI,GAAG,EAAS,OAAO,GAAG;KAAE,CAAC;IACrE;IAeM,UAAA,kBAAC,GAAD,CAAa,CAAA;GACH,CAAA;GACZ,kBAAC,GAAD;IAAY,KAAI;IAAO,eAbC;KAC1B,EAAY;MAAE,GAAG;MAAG,GAAG;MAAG,MAAM;KAAE,CAAC;IACrC;IAYM,UAAA,kBAAC,GAAD,CAAc,CAAA;GACJ,CAAA;GACZ,kBAAC,GAAD;IACE,KAAK,IAAY,kBAAkB;IACnC,QAAQ;IACR,eAAe,EAAa,CAAC,CAAS;IAEtC,UAAA,kBAAC,GAAD,CAAgB,CAAA;GACN,CAAA;EACT;;AAET;AAaA,SAAS,EAAW,EAAE,QAAK,aAAU,YAAS,WAAQ,aAAU,eAA6B;CAC3F,IAAM,IAAQ,IAAW,GAAG,EAAI,IAAI,EAAS,KAAK;CAClD,OACE,kBAAC,QAAD;EAAM,WAAU;EAAhB,UAAA,CACE,kBAAC,GAAD;GACE,MAAK;GACL,SAAS,IAAS,YAAY;GACrB;GACC;GACV,QAAA;GAEA,UAAA,kBAAC,QAAD;IAAM,cAAY;IAAO,OAAO,EAAE,SAAS,cAAc;IAAI;GAAe,CAAA;EACtE,CAAA,GACR,kBAAC,QAAD;GAAM,WAAU;GAAiB,MAAK;GAAW,UAAA;EAAY,CAAA,CACzD;;AAEV;AAoBA,SAAwB,EAAY,EAAE,WAAQ,WAAQ,WAAQ,YAAS,YAAS,YAAS,eAAY,cAAW,gBAAa,gBAAa,cAAW,cAA6B;CAChL,IAAM,EACJ,aAAU,gBACV,gBAAa,mBACb,kBAAe,qBACf,gBAAa,oBACb,aAAU,iBACV,WAAQ,eACR,gBAAa,oBACb,gBAAa,oBACb,iBAAc,qBACd,kBAAe,yBACb,EAAU,GACR,EAAE,QAAK,cAAW,mBAAe,YAAQ,wBAAoB,EAAe,GAC5E,EAAE,eAAY,eAAY,sBAAmB,EAAoB,GACjE,EAAE,UAAO,eAAY,oBAAiB,EAAiB,GACvD,IAAe,GAAyB,IAAI,GAE5C,IAAgB,EAAU,QAAQ,OAAO,EAAU,QAAQ,MAC3D,KAAmB,EAAU,QAAQ,OAAO,KAAK,GAAc,MAAM,MACzE,MAAK,EAAU,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,SAAS,mBAAmB,EAAE,KAAK,QACtG,GACM,IAAa,OAAO,OAAO,EAAI,QAAQ,CAAC,CAAC,MAAK,MAClD,EAAO,MAAM,MAAK,MAAQ,EAAK,SAAS,YAAY,CACtD,GAGM,KAAmB,QAAkB;EACzC,IAAM,IAAO,EAAW,GAClB,IAAO,IAAI,KAAK,CAAC,CAAI,GAAG,EAAE,MAAM,mBAAmB,CAAC,GACpD,IAAM,IAAI,gBAAgB,CAAI;EAEpC,AADA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,EAAE,MAAM,GAC1D,IAAI,gBAAgB,CAAG;CACzB,GAAG,CAAC,GAAY,EAAI,KAAK,CAAC,GAEpB,KAAuB,QAAkB;EAC7C,IAAM,IAAK,EAAe,GACpB,IAAO,IAAI,KAAK,CAAC,CAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,GAC/C,IAAM,IAAI,gBAAgB,CAAI;EAEpC,AADA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,EAAE,IAAI,GACxD,IAAI,gBAAgB,CAAG;CACzB,GAAG,CAAC,GAAgB,EAAI,KAAK,CAAC,GAExB,IAAmB,QAAkB;EACzC,EAAa,SAAS,MAAM;CAC9B,GAAG,CAAC,CAAC,GAEC,KAAmB,GAAa,MAA2C;EAC/E,IAAM,IAAO,EAAE,OAAO,QAAQ;EAC9B,IAAI,CAAC,GAAM;EACX,IAAM,IAAS,IAAI,WAAW;EAK9B,AAJA,EAAO,eAAe;GACpB,AAAI,OAAO,EAAO,UAAW,YAAU,EAAW,EAAO,MAAM;EACjE,GACA,EAAO,WAAW,CAAI,GACtB,EAAE,OAAO,QAAQ;CACnB,GAAG,CAAC,CAAU,CAAC;CAEf,OACE,kBAAC,OAAD;EAAK,WAAW,eAAe,IAAU,2BAA2B;EAApE,UAAA;GACE,kBAAC,SAAD;IACE,KAAK;IACL,MAAK;IACL,QAAO;IACP,OAAO,EAAE,SAAS,OAAO;IACzB,UAAU;GACX,CAAA;GAKA,CAAC,KAAW,kBAAC,GAAD,CAAe,CAAA;GAE3B,KACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAAC,GAAD;KAAY,KAAI;KAAO,SAAS;KAC9B,UAAA,kBAAC,IAAD,CAAW,CAAA;IACD,CAAA;GACT,CAAA,GACL,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,CACvC,EAAA,CAAA;IAIF,KAAU,MACV,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACG,KACC,kBAAC,GAAD;KAAY,KAAI;KAAK,UAAS;KAAS,SAAS;KAAQ,UAAU,CAAC;KACjE,UAAA,kBAAC,IAAD,CAAW,CAAA;IACD,CAAA,GAEb,KACC,kBAAC,GAAD;KAAY,KAAI;KAAK,UAAS;KAAe,SAAS;KAAQ,UAAU,CAAC;KACvE,UAAA,kBAAC,IAAD,CAAW,CAAA;IACD,CAAA,CAEX;;GAIN,EAAU,QAAQ,QAAQ,KACzB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MAAY,KAAI;MAAK,eAAe,EAAM,MAAM;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;KAAa,CAAA;KACxF,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAM,UAAU;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,WAAY,CAAA;KAAa,CAAA;KAClG,kBAAC,GAAD;MAAY,KAAI;MAAK,eAAe,EAAM,OAAO;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,QAAS,CAAA;KAAa,CAAA;KAC1F,kBAAC,GAAD;MAAY,KAAI;MAAK,eAAe,EAAM,KAAK;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,MAAO,CAAA;KAAa,CAAA;KACtF,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAM,UAAU;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,WAAY,CAAA;KAAa,CAAA;KAClG,kBAAC,GAAD;MAAY,KAAI;MAAK,eAAe,EAAM,QAAQ;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,SAAU,CAAA;KAAa,CAAA;KAC5F,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAW,YAAY;MAAG,UAAU,EAAU,QAAQ,OAAO;MACjG,UAAA,kBAAC,GAAD,EAAW,MAAK,eAAgB,CAAA;KACtB,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAW,UAAU;MAAG,UAAU,EAAU,QAAQ,OAAO;MAC/F,UAAA,kBAAC,GAAD,EAAW,MAAK,eAAgB,CAAA;KACtB,CAAA;IACT;GACL,CAAA,CAAA,EAAA,CAAA;GAIH,KAAiB,KAChB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAa,OAAO;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,QAAS,CAAA;KAAa,CAAA;KACnG,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAa,IAAI;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,KAAM,CAAA;KAAa,CAAA;KAC7F,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAa,MAAM;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;KAAa,CAAA;KACjG,kBAAC,GAAD;MAAY,KAAI;MAAO,eAAe,EAAa,MAAM;MAAG,UAAA,kBAAC,GAAD,EAAW,MAAK,OAAQ,CAAA;KAAa,CAAA;IAC9F;GACL,CAAA,CAAA,EAAA,CAAA;IAIF,KAAW,KAAc,MACzB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA,GACvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACG,KACC,kBAAC,GAAD;MAAY,KAAI;MAAK,UAAS;MAAK,SAAS;MAAS,UAAU,IAAgB;MAC7E,UAAA,kBAAC,IAAD,CAAY,CAAA;KACF,CAAA;KAEb,KACC,kBAAC,GAAD;MAAY,KAAI;MAAO,UAAS;MAAM,SAAS;MAAY,UAAU,IAAgB;MACnF,UAAA,kBAAC,IAAD,CAAe,CAAA;KACL,CAAA;KAEb,KACC,kBAAC,GAAD;MAAY,KAAI;MAAO,UAAS;MAAM,SAAS;MAAW,UAAU,CAAC;MACnE,UAAA,kBAAC,GAAD,CAAc,CAAA;KACJ,CAAA;IAEX;GACL,CAAA,CAAA,EAAA,CAAA;GAGJ,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;GAGvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MAAY,KAAI;MAAK,QAAQ;MAAU,eAAe,EAAY,CAAC,CAAQ;MACzE,UAAA,kBAAC,IAAD,CAAW,CAAA;KACD,CAAA;KACZ,kBAAC,GAAD;MACE,KAAK,IAAgB,uBAAuB;MAC5C,QAAQ;MACR,eAAe,GAAiB,CAAC,CAAa;MAE9C,UAAA,kBAAC,GAAD,CAAa,CAAA;KACH,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAM,QAAQ;MAAa,eAAe,GAAe,CAAC,CAAW;MACnF,UAAA,kBAAC,GAAD,CAAc,CAAA;KACJ,CAAA;KACZ,kBAAC,GAAD;MACE,KAAK,IAAc,mBAAmB;MACtC,QAAQ;MACR,UAAU,CAAC;MACX,eAAe;OACb,AAAI,KAAY,GAAe,CAAC,CAAW;MAC7C;MAEA,UAAA,kBAAC,IAAD,EAAmB,SAAS,EAAc,CAAA;KAChC,CAAA;KACZ,kBAAC,GAAD;MACE,KAAI;MACJ,QAAQ,MAAiB;MACzB,eAAe,GAAgB,IAAe,OAAO;OAAE,SAAS;OAAG,YAAY;MAAM,CAAC;MAEtF,UAAA,kBAAC,IAAD,CAAc,CAAA;KACJ,CAAA;IACT;;GAEL,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;GAGvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MAAY,KAAI;MAAO,QAAQ;MAAa,eAAe,EAAe,CAAC,CAAW;MACpF,UAAA,kBAAC,IAAD,CAAa,CAAA;KACH,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAO,QAAQ;MAAe,eAAe,EAAiB,CAAC,CAAa;MAC1F,UAAA,kBAAC,IAAD,CAAgB,CAAA;KACN,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAK,QAAQ;MAAa,eAAe,GAAe,CAAC,CAAW;MAClF,UAAA,kBAAC,IAAD,CAAc,CAAA;KACJ,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAO,QAAQ;MAAU,eAAe,GAAY,CAAC,CAAQ;MAC3E,UAAA,kBAAC,IAAD,CAAW,CAAA;KACD,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAQ,QAAQ;MAAQ,eAAe,GAAU,CAAC,CAAM;MACtE,UAAA,kBAAC,IAAD,CAAS,CAAA;KACC,CAAA;IACT;;GAEL,kBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;GAGvC,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MAAY,KAAI;MAAU,SAAS;MACjC,UAAA,kBAAC,IAAD,CAAa,CAAA;KACH,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAU,SAAS;MACjC,UAAA,kBAAC,IAAD,CAAiB,CAAA;KACP,CAAA;KACZ,kBAAC,GAAD;MAAY,KAAI;MAAc,SAAS;MACrC,UAAA,kBAAC,IAAD,CAAqB,CAAA;KACX,CAAA;KACX,KACC,kBAAC,GAAD;MAAY,KAAI;MAAS,eAAe,KAAK,EAAY;MACvD,UAAA,kBAAC,IAAD,CAAgB,CAAA;KACN,CAAA;KAEb,KAAe,KACd,kBAAC,GAAD;MAAY,KAAI;MAAgB,eAAe,KAAK,EAAY;MAC9D,UAAA,kBAAC,IAAD,CAAgB,CAAA;KACN,CAAA;KAEb,KACC,kBAAC,GAAD;MAAY,KAAI;MAAQ,SAAS;MAC/B,UAAA,kBAAC,IAAD,CAAc,CAAA;KACJ,CAAA;IAEX;;EACF;;AAET"}