dishui 0.0.65 → 0.0.67

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 (507) 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/Accordion/index.d.ts +39 -0
  5. package/dist/components/Accordion/index.js +70 -0
  6. package/dist/components/Accordion/index.js.map +1 -0
  7. package/dist/components/Avatar/index.d.ts +48 -0
  8. package/dist/components/Avatar/index.js +71 -0
  9. package/dist/components/Avatar/index.js.map +1 -0
  10. package/dist/components/Badge/index.js +10 -15
  11. package/dist/components/Badge/index.js.map +1 -1
  12. package/dist/components/Button/index.js +62 -89
  13. package/dist/components/Button/index.js.map +1 -1
  14. package/dist/components/Card/index.d.ts +142 -0
  15. package/dist/components/Card/index.js +368 -69
  16. package/dist/components/Card/index.js.map +1 -1
  17. package/dist/components/Chart/Chart.js +25 -25
  18. package/dist/components/Chart/Chart.js.map +1 -1
  19. package/dist/components/Checkbox/index.js +57 -65
  20. package/dist/components/Checkbox/index.js.map +1 -1
  21. package/dist/components/ChoicePicker/index.d.ts +44 -0
  22. package/dist/components/ChoicePicker/index.js +81 -0
  23. package/dist/components/ChoicePicker/index.js.map +1 -0
  24. package/dist/components/Column/index.d.ts +28 -0
  25. package/dist/components/Column/index.js +30 -0
  26. package/dist/components/Column/index.js.map +1 -0
  27. package/dist/components/DateTimeInput/index.d.ts +44 -0
  28. package/dist/components/DateTimeInput/index.js +48 -0
  29. package/dist/components/DateTimeInput/index.js.map +1 -0
  30. package/dist/components/Demo/index.js +107 -107
  31. package/dist/components/Demo/index.js.map +1 -1
  32. package/dist/components/Divider/index.d.ts +20 -0
  33. package/dist/components/Divider/index.js +30 -0
  34. package/dist/components/Divider/index.js.map +1 -0
  35. package/dist/components/EmptyState/index.js +24 -24
  36. package/dist/components/EmptyState/index.js.map +1 -1
  37. package/dist/components/FileUploader/DropZone.js +134 -136
  38. package/dist/components/FileUploader/DropZone.js.map +1 -1
  39. package/dist/components/FileUploader/FileItem.js +159 -163
  40. package/dist/components/FileUploader/FileItem.js.map +1 -1
  41. package/dist/components/FileUploader/FileUploader.js +126 -127
  42. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  43. package/dist/components/FileUploader/UploadQueue.js +62 -62
  44. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  45. package/dist/components/FloatWindow/index.d.ts +28 -0
  46. package/dist/components/GridLayout/index.d.ts +42 -0
  47. package/dist/components/Icon/index.d.ts +26 -0
  48. package/dist/components/Icon/index.js +27 -0
  49. package/dist/components/Icon/index.js.map +1 -0
  50. package/dist/components/Image/index.d.ts +33 -0
  51. package/dist/components/Image/index.js +44 -0
  52. package/dist/components/Image/index.js.map +1 -0
  53. package/dist/components/Input/index.js +196 -197
  54. package/dist/components/Input/index.js.map +1 -1
  55. package/dist/components/Label/index.js +62 -74
  56. package/dist/components/Label/index.js.map +1 -1
  57. package/dist/components/Layout/index.js +134 -139
  58. package/dist/components/Layout/index.js.map +1 -1
  59. package/dist/components/List/index.js +45 -58
  60. package/dist/components/List/index.js.map +1 -1
  61. package/dist/components/Markdown/Markdown.js +106 -107
  62. package/dist/components/Markdown/Markdown.js.map +1 -1
  63. package/dist/components/Markdown/codeThemes.js +24 -33
  64. package/dist/components/Markdown/codeThemes.js.map +1 -1
  65. package/dist/components/Markdown/markdownComponents.js +203 -208
  66. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  67. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  68. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  69. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  70. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  71. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  72. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  73. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  74. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  75. package/dist/components/Modal/index.js +82 -82
  76. package/dist/components/Modal/index.js.map +1 -1
  77. package/dist/components/MultipleChoice/index.d.ts +44 -0
  78. package/dist/components/MultipleChoice/index.js +52 -0
  79. package/dist/components/MultipleChoice/index.js.map +1 -0
  80. package/dist/components/Notification/index.d.ts +17 -0
  81. package/dist/components/Page/index.d.ts +1 -1
  82. package/dist/components/Page/index.js +40 -71
  83. package/dist/components/Page/index.js.map +1 -1
  84. package/dist/components/PageHeader/index.js +28 -28
  85. package/dist/components/PageHeader/index.js.map +1 -1
  86. package/dist/components/ProtectedRoute/index.js +8 -9
  87. package/dist/components/ProtectedRoute/index.js.map +1 -1
  88. package/dist/components/Row/index.d.ts +28 -0
  89. package/dist/components/Row/index.js +30 -0
  90. package/dist/components/Row/index.js.map +1 -0
  91. package/dist/components/Select/index.js +251 -254
  92. package/dist/components/Select/index.js.map +1 -1
  93. package/dist/components/SidebarToggleButton/index.js +56 -59
  94. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  95. package/dist/components/Slider/index.d.ts +39 -0
  96. package/dist/components/Slider/index.js +52 -0
  97. package/dist/components/Slider/index.js.map +1 -0
  98. package/dist/components/Switch/index.d.ts +34 -0
  99. package/dist/components/Switch/index.js +55 -0
  100. package/dist/components/Switch/index.js.map +1 -0
  101. package/dist/components/Tab/index.d.ts +40 -0
  102. package/dist/components/Table/index.js +109 -121
  103. package/dist/components/Table/index.js.map +1 -1
  104. package/dist/components/Tabs/index.js +28 -38
  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 -327
  132. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -224
  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 -306
  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 -144
  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 +189 -189
  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 -948
  217. package/dist/components/pro/Flow/Flow.js.map +1 -1
  218. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1662
  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 -180
  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 -242
  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 -589
  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 -248
  345. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -140
  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 -572
  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 -41
  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 +31 -3
  442. package/dist/index.js +106 -241
  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 -186
  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 +700 -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 -60
  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 +19 -6
  505. package/dist/components/StatCard/index.d.ts +0 -24
  506. package/dist/components/StatCard/index.js +0 -90
  507. package/dist/components/StatCard/index.js.map +0 -1
@@ -1,143 +1,140 @@
1
- import { useFlowContext as I } from "../context/FlowContext.js";
2
- import { useFlowUI as M } from "../context/FlowUIContext.js";
3
- import { anchorFocusRect as L, canvasStackTo as S, getDocumentSlides as U } from "../nodes/animAnchors.js";
4
- import { useCallback as v, useEffect as D, useMemo as j, useRef as N, useState as K } from "react";
5
- import { jsx as i, jsxs as m } from "react/jsx-runtime";
6
- function G() {
7
- const { doc: u, setDoc: k, currentCanvasId: y } = I(), { presentation: r, setPresentation: l, focusOnRect: b } = M(), x = N(null), p = j(() => U(u), [u]), s = p.length, a = r !== null, e = r?.current ?? 0, [C, g] = K(null), A = N(u);
8
- A.current = u;
9
- const d = v(() => {
10
- l(null), document.fullscreenElement && document.exitFullscreen().catch(() => {
11
- });
12
- }, [l]), R = v(() => {
13
- const n = x.current?.closest(".flow-container");
14
- n && !document.fullscreenElement && n.requestFullscreen().catch(() => {
15
- });
16
- }, []), o = v((n) => {
17
- if (s === 0) return;
18
- const t = Math.max(0, Math.min(s - 1, n));
19
- l({
20
- current: t,
21
- showAnchor: r?.showAnchor ?? !1
22
- });
23
- const c = p[t];
24
- if (!c) return;
25
- const f = A.current, h = S(f, c.canvasId), E = c.canvasId === y;
26
- if (!E && h) {
27
- const F = h.length > f.stack.length;
28
- g(F ? "in" : "out"), k((P) => ({
29
- ...P,
30
- stack: h
31
- })), window.setTimeout(() => g(null), 480);
32
- }
33
- const w = L(c.node);
34
- window.setTimeout(() => b(w.x, w.y, w.w, w.h, {
35
- padding: 8,
36
- maxZoom: 4,
37
- duration: 350
38
- }), E ? 0 : 30);
39
- }, [
40
- p,
41
- s,
42
- r?.showAnchor,
43
- l,
44
- b,
45
- y,
46
- k
47
- ]);
48
- if (D(() => {
49
- if (a && (R(), s > 0)) {
50
- o(e);
51
- const n = window.setTimeout(() => o(e), 180);
52
- return () => window.clearTimeout(n);
53
- }
54
- }, [a]), D(() => {
55
- if (!a) return;
56
- const n = (t) => {
57
- if (t.key === "Escape") {
58
- t.preventDefault(), d();
59
- return;
60
- }
61
- const c = [
62
- "ArrowRight",
63
- "ArrowDown",
64
- "PageDown",
65
- " "
66
- ], f = [
67
- "ArrowLeft",
68
- "ArrowUp",
69
- "PageUp"
70
- ];
71
- c.includes(t.key) ? (t.preventDefault(), t.key === " " && t.shiftKey ? o(e - 1) : o(e + 1)) : f.includes(t.key) && (t.preventDefault(), o(e - 1));
72
- };
73
- return window.addEventListener("keydown", n, !0), () => window.removeEventListener("keydown", n, !0);
74
- }, [
75
- a,
76
- e,
77
- o,
78
- d
79
- ]), !a) return null;
80
- const T = C ? `flow-presentation--${C}` : "";
81
- return /* @__PURE__ */ m("div", {
82
- ref: x,
83
- className: `flow-presentation ${T}`,
84
- onClick: d,
85
- children: [/* @__PURE__ */ i("div", {
86
- className: "flow-presentation-slide-fx",
87
- style: {
88
- position: "absolute",
89
- inset: 0,
90
- pointerEvents: "none"
91
- }
92
- }), s === 0 ? /* @__PURE__ */ i("div", {
93
- className: "flow-presentation-empty",
94
- children: "画布中没有动画锚点,点击退出"
95
- }) : /* @__PURE__ */ m("div", {
96
- className: "flow-presentation-hud",
97
- onClick: (n) => n.stopPropagation(),
98
- children: [/* @__PURE__ */ m("span", {
99
- className: "flow-presentation-counter",
100
- children: [
101
- e + 1,
102
- " / ",
103
- s
104
- ]
105
- }), /* @__PURE__ */ m("div", {
106
- className: "flow-presentation-nav",
107
- children: [
108
- /* @__PURE__ */ i("button", {
109
- type: "button",
110
- onClick: () => o(e - 1),
111
- disabled: e <= 0,
112
- children: "‹ 上一张"
113
- }),
114
- /* @__PURE__ */ i("button", {
115
- type: "button",
116
- onClick: () => o(e + 1),
117
- disabled: e >= s - 1,
118
- children: "下一张 ›"
119
- }),
120
- /* @__PURE__ */ i("button", {
121
- type: "button",
122
- onClick: () => l({
123
- current: e,
124
- showAnchor: !(r?.showAnchor ?? !1)
125
- }),
126
- children: r?.showAnchor ? "隐藏锚点" : "显示锚点"
127
- }),
128
- /* @__PURE__ */ i("button", {
129
- type: "button",
130
- className: "flow-presentation-exit",
131
- onClick: d,
132
- children: "退出 Esc"
133
- })
134
- ]
135
- })]
136
- })]
137
- });
1
+ import { useFlowContext as e } from "../context/FlowContext.js";
2
+ import { useFlowUI as t } from "../context/FlowUIContext.js";
3
+ import { anchorFocusRect as n, canvasStackTo as r, getDocumentSlides as i } from "../nodes/animAnchors.js";
4
+ import { useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
5
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
6
+ //#region src/components/pro/Flow/panels/PresentationMode.tsx
7
+ function f() {
8
+ let { doc: f, setDoc: p, currentCanvasId: m } = e(), { presentation: h, setPresentation: g, focusOnRect: _ } = t(), v = c(null), y = s(() => i(f), [f]), b = y.length, x = h !== null, S = h?.current ?? 0, [C, w] = l(null), T = c(f);
9
+ T.current = f;
10
+ let E = a(() => {
11
+ g(null), document.fullscreenElement && document.exitFullscreen().catch(() => {});
12
+ }, [g]), D = a(() => {
13
+ let e = v.current?.closest(".flow-container");
14
+ e && !document.fullscreenElement && e.requestFullscreen().catch(() => {});
15
+ }, []), O = a((e) => {
16
+ if (b === 0) return;
17
+ let t = Math.max(0, Math.min(b - 1, e));
18
+ g({
19
+ current: t,
20
+ showAnchor: h?.showAnchor ?? !1
21
+ });
22
+ let i = y[t];
23
+ if (!i) return;
24
+ let a = T.current, o = r(a, i.canvasId), s = i.canvasId === m;
25
+ if (!s && o) {
26
+ let e = o.length > a.stack.length;
27
+ w(e ? "in" : "out"), p((e) => ({
28
+ ...e,
29
+ stack: o
30
+ })), window.setTimeout(() => w(null), 480);
31
+ }
32
+ let c = n(i.node);
33
+ window.setTimeout(() => _(c.x, c.y, c.w, c.h, {
34
+ padding: 8,
35
+ maxZoom: 4,
36
+ duration: 350
37
+ }), s ? 0 : 30);
38
+ }, [
39
+ y,
40
+ b,
41
+ h?.showAnchor,
42
+ g,
43
+ _,
44
+ m,
45
+ p
46
+ ]);
47
+ if (o(() => {
48
+ if (x && (D(), b > 0)) {
49
+ O(S);
50
+ let e = window.setTimeout(() => O(S), 180);
51
+ return () => window.clearTimeout(e);
52
+ }
53
+ }, [x]), o(() => {
54
+ if (!x) return;
55
+ let e = (e) => {
56
+ if (e.key === "Escape") {
57
+ e.preventDefault(), E();
58
+ return;
59
+ }
60
+ [
61
+ "ArrowRight",
62
+ "ArrowDown",
63
+ "PageDown",
64
+ " "
65
+ ].includes(e.key) ? (e.preventDefault(), e.key === " " && e.shiftKey ? O(S - 1) : O(S + 1)) : [
66
+ "ArrowLeft",
67
+ "ArrowUp",
68
+ "PageUp"
69
+ ].includes(e.key) && (e.preventDefault(), O(S - 1));
70
+ };
71
+ return window.addEventListener("keydown", e, !0), () => window.removeEventListener("keydown", e, !0);
72
+ }, [
73
+ x,
74
+ S,
75
+ O,
76
+ E
77
+ ]), !x) return null;
78
+ let k = C ? `flow-presentation--${C}` : "";
79
+ return /* @__PURE__ */ d("div", {
80
+ ref: v,
81
+ className: `flow-presentation ${k}`,
82
+ onClick: E,
83
+ children: [/* @__PURE__ */ u("div", {
84
+ className: "flow-presentation-slide-fx",
85
+ style: {
86
+ position: "absolute",
87
+ inset: 0,
88
+ pointerEvents: "none"
89
+ }
90
+ }), b === 0 ? /* @__PURE__ */ u("div", {
91
+ className: "flow-presentation-empty",
92
+ children: "画布中没有动画锚点,点击退出"
93
+ }) : /* @__PURE__ */ d("div", {
94
+ className: "flow-presentation-hud",
95
+ onClick: (e) => e.stopPropagation(),
96
+ children: [/* @__PURE__ */ d("span", {
97
+ className: "flow-presentation-counter",
98
+ children: [
99
+ S + 1,
100
+ " / ",
101
+ b
102
+ ]
103
+ }), /* @__PURE__ */ d("div", {
104
+ className: "flow-presentation-nav",
105
+ children: [
106
+ /* @__PURE__ */ u("button", {
107
+ type: "button",
108
+ onClick: () => O(S - 1),
109
+ disabled: S <= 0,
110
+ children: "‹ 上一张"
111
+ }),
112
+ /* @__PURE__ */ u("button", {
113
+ type: "button",
114
+ onClick: () => O(S + 1),
115
+ disabled: S >= b - 1,
116
+ children: "下一张 ›"
117
+ }),
118
+ /* @__PURE__ */ u("button", {
119
+ type: "button",
120
+ onClick: () => g({
121
+ current: S,
122
+ showAnchor: !(h?.showAnchor ?? !1)
123
+ }),
124
+ children: h?.showAnchor ? "隐藏锚点" : "显示锚点"
125
+ }),
126
+ /* @__PURE__ */ u("button", {
127
+ type: "button",
128
+ className: "flow-presentation-exit",
129
+ onClick: E,
130
+ children: "退出 Esc"
131
+ })
132
+ ]
133
+ })]
134
+ })]
135
+ });
138
136
  }
139
- export {
140
- G as PresentationMode
141
- };
137
+ //#endregion
138
+ export { f as PresentationMode };
142
139
 
143
140
  //# sourceMappingURL=PresentationMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PresentationMode.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/PresentationMode.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\n\n/**\n * PPT-style presentation mode.\n *\n * While active the editor is read-only (all panels/toolbars are hidden) and the\n * viewport animates between animation anchors (slides). Anchors across the whole\n * document — including nested sub-canvases — share a single sequence, ordered by\n * stable creation index. Navigating to a slide on another canvas drills into or\n * out of that canvas before focusing the slide.\n *\n * Keys: →/↓/Space/PageDown = next, ←/↑/Shift+Space/PageUp = previous, Esc = exit.\n */\nexport function PresentationMode() {\n const { doc, setDoc, currentCanvasId } = useFlowContext();\n const { presentation, setPresentation, focusOnRect } = useFlowUI();\n const overlayRef = useRef<HTMLDivElement>(null);\n\n const slides = useMemo(() => getDocumentSlides(doc), [doc]);\n const count = slides.length;\n const active = presentation !== null;\n const current = presentation?.current ?? 0;\n const [transition, setTransition] = useState<'in' | 'out' | null>(null);\n\n const docRef = useRef(doc);\n docRef.current = doc;\n\n const exit = useCallback(() => {\n setPresentation(null);\n if (document.fullscreenElement) void document.exitFullscreen().catch(() => {});\n }, [setPresentation]);\n\n const enterFullscreen = useCallback(() => {\n const root = overlayRef.current?.closest('.flow-container') as HTMLElement | null;\n if (root && !document.fullscreenElement) {\n void root.requestFullscreen().catch(() => {});\n }\n }, []);\n\n const goTo = useCallback(\n (index: number) => {\n if (count === 0) return;\n const clamped = Math.max(0, Math.min(count - 1, index));\n setPresentation({\n current: clamped,\n showAnchor: presentation?.showAnchor ?? false,\n });\n const slide = slides[clamped];\n if (!slide) return;\n\n const d = docRef.current;\n const stack = canvasStackTo(d, slide.canvasId);\n\n // Decide drill direction by comparing with the current stack top.\n const onCurrentCanvas = slide.canvasId === currentCanvasId;\n if (!onCurrentCanvas && stack) {\n const deeper = stack.length > d.stack.length;\n setTransition(deeper ? 'in' : 'out');\n // Navigate the canvas stack to the slide's canvas.\n setDoc((prev) => ({ ...prev, stack }));\n // Clear the transition marker shortly after it starts.\n window.setTimeout(() => setTransition(null), 480);\n }\n\n const r = anchorFocusRect(slide.node);\n // Presentation uses the exact anchor frame with only a small screen-space\n // inset. The zoom is recomputed for every slide and viewport size.\n window.setTimeout(\n () => focusOnRect(r.x, r.y, r.w, r.h, { padding: 8, maxZoom: 4, duration: 350 }),\n onCurrentCanvas ? 0 : 30,\n );\n },\n [slides, count, presentation?.showAnchor, setPresentation, focusOnRect, currentCanvasId, setDoc],\n );\n\n // Entering: use the full display area and snap to the first slide. Refit once\n // fullscreen settles because the canvas dimensions change asynchronously.\n useEffect(() => {\n if (!active) return;\n enterFullscreen();\n if (count > 0) {\n goTo(current);\n const timer = window.setTimeout(() => goTo(current), 180);\n return () => window.clearTimeout(timer);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active]);\n\n\n\n // Keyboard navigation (capture phase so arrows work over the canvas).\n useEffect(() => {\n if (!active) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n exit();\n return;\n }\n const next = ['ArrowRight', 'ArrowDown', 'PageDown', ' '];\n const prev = ['ArrowLeft', 'ArrowUp', 'PageUp'];\n if (next.includes(e.key)) {\n e.preventDefault();\n if (e.key === ' ' && e.shiftKey) goTo(current - 1);\n else goTo(current + 1);\n } else if (prev.includes(e.key)) {\n e.preventDefault();\n goTo(current - 1);\n }\n };\n window.addEventListener('keydown', onKey, true);\n return () => window.removeEventListener('keydown', onKey, true);\n }, [active, current, goTo, exit]);\n\n if (!active) return null;\n\n const cls = transition ? `flow-presentation--${transition}` : '';\n return (\n <div ref={overlayRef} className={`flow-presentation ${cls}`} onClick={exit}>\n <div className=\"flow-presentation-slide-fx\" style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }} />\n {count === 0 ? (\n <div className=\"flow-presentation-empty\">画布中没有动画锚点,点击退出</div>\n ) : (\n <div className=\"flow-presentation-hud\" onClick={(e) => e.stopPropagation()}>\n <span className=\"flow-presentation-counter\">\n {current + 1} / {count}\n </span>\n <div className=\"flow-presentation-nav\">\n <button type=\"button\" onClick={() => goTo(current - 1)} disabled={current <= 0}>‹ 上一张</button>\n <button type=\"button\" onClick={() => goTo(current + 1)} disabled={current >= count - 1}>下一张 ›</button>\n <button\n type=\"button\"\n onClick={() => setPresentation({\n current,\n showAnchor: !(presentation?.showAnchor ?? false),\n })}\n >\n {presentation?.showAnchor ? '隐藏锚点' : '显示锚点'}\n </button>\n <button type=\"button\" className=\"flow-presentation-exit\" onClick={exit}>退出 Esc</button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PresentationMode.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/PresentationMode.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\n\n/**\n * PPT-style presentation mode.\n *\n * While active the editor is read-only (all panels/toolbars are hidden) and the\n * viewport animates between animation anchors (slides). Anchors across the whole\n * document — including nested sub-canvases — share a single sequence, ordered by\n * stable creation index. Navigating to a slide on another canvas drills into or\n * out of that canvas before focusing the slide.\n *\n * Keys: →/↓/Space/PageDown = next, ←/↑/Shift+Space/PageUp = previous, Esc = exit.\n */\nexport function PresentationMode() {\n const { doc, setDoc, currentCanvasId } = useFlowContext();\n const { presentation, setPresentation, focusOnRect } = useFlowUI();\n const overlayRef = useRef<HTMLDivElement>(null);\n\n const slides = useMemo(() => getDocumentSlides(doc), [doc]);\n const count = slides.length;\n const active = presentation !== null;\n const current = presentation?.current ?? 0;\n const [transition, setTransition] = useState<'in' | 'out' | null>(null);\n\n const docRef = useRef(doc);\n docRef.current = doc;\n\n const exit = useCallback(() => {\n setPresentation(null);\n if (document.fullscreenElement) void document.exitFullscreen().catch(() => {});\n }, [setPresentation]);\n\n const enterFullscreen = useCallback(() => {\n const root = overlayRef.current?.closest('.flow-container') as HTMLElement | null;\n if (root && !document.fullscreenElement) {\n void root.requestFullscreen().catch(() => {});\n }\n }, []);\n\n const goTo = useCallback(\n (index: number) => {\n if (count === 0) return;\n const clamped = Math.max(0, Math.min(count - 1, index));\n setPresentation({\n current: clamped,\n showAnchor: presentation?.showAnchor ?? false,\n });\n const slide = slides[clamped];\n if (!slide) return;\n\n const d = docRef.current;\n const stack = canvasStackTo(d, slide.canvasId);\n\n // Decide drill direction by comparing with the current stack top.\n const onCurrentCanvas = slide.canvasId === currentCanvasId;\n if (!onCurrentCanvas && stack) {\n const deeper = stack.length > d.stack.length;\n setTransition(deeper ? 'in' : 'out');\n // Navigate the canvas stack to the slide's canvas.\n setDoc((prev) => ({ ...prev, stack }));\n // Clear the transition marker shortly after it starts.\n window.setTimeout(() => setTransition(null), 480);\n }\n\n const r = anchorFocusRect(slide.node);\n // Presentation uses the exact anchor frame with only a small screen-space\n // inset. The zoom is recomputed for every slide and viewport size.\n window.setTimeout(\n () => focusOnRect(r.x, r.y, r.w, r.h, { padding: 8, maxZoom: 4, duration: 350 }),\n onCurrentCanvas ? 0 : 30,\n );\n },\n [slides, count, presentation?.showAnchor, setPresentation, focusOnRect, currentCanvasId, setDoc],\n );\n\n // Entering: use the full display area and snap to the first slide. Refit once\n // fullscreen settles because the canvas dimensions change asynchronously.\n useEffect(() => {\n if (!active) return;\n enterFullscreen();\n if (count > 0) {\n goTo(current);\n const timer = window.setTimeout(() => goTo(current), 180);\n return () => window.clearTimeout(timer);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active]);\n\n\n\n // Keyboard navigation (capture phase so arrows work over the canvas).\n useEffect(() => {\n if (!active) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n exit();\n return;\n }\n const next = ['ArrowRight', 'ArrowDown', 'PageDown', ' '];\n const prev = ['ArrowLeft', 'ArrowUp', 'PageUp'];\n if (next.includes(e.key)) {\n e.preventDefault();\n if (e.key === ' ' && e.shiftKey) goTo(current - 1);\n else goTo(current + 1);\n } else if (prev.includes(e.key)) {\n e.preventDefault();\n goTo(current - 1);\n }\n };\n window.addEventListener('keydown', onKey, true);\n return () => window.removeEventListener('keydown', onKey, true);\n }, [active, current, goTo, exit]);\n\n if (!active) return null;\n\n const cls = transition ? `flow-presentation--${transition}` : '';\n return (\n <div ref={overlayRef} className={`flow-presentation ${cls}`} onClick={exit}>\n <div className=\"flow-presentation-slide-fx\" style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }} />\n {count === 0 ? (\n <div className=\"flow-presentation-empty\">画布中没有动画锚点,点击退出</div>\n ) : (\n <div className=\"flow-presentation-hud\" onClick={(e) => e.stopPropagation()}>\n <span className=\"flow-presentation-counter\">\n {current + 1} / {count}\n </span>\n <div className=\"flow-presentation-nav\">\n <button type=\"button\" onClick={() => goTo(current - 1)} disabled={current <= 0}>‹ 上一张</button>\n <button type=\"button\" onClick={() => goTo(current + 1)} disabled={current >= count - 1}>下一张 ›</button>\n <button\n type=\"button\"\n onClick={() => setPresentation({\n current,\n showAnchor: !(presentation?.showAnchor ?? false),\n })}\n >\n {presentation?.showAnchor ? '隐藏锚点' : '显示锚点'}\n </button>\n <button type=\"button\" className=\"flow-presentation-exit\" onClick={exit}>退出 Esc</button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,49 +1,49 @@
1
- import { useFlowContext as m } from "../context/FlowContext.js";
2
- import { useEffect as r, useRef as v, useState as f } from "react";
3
- import { jsx as a } from "react/jsx-runtime";
4
- var D = "未命名流程图";
5
- function h() {
6
- const { doc: l, setDoc: u } = m(), [e, o] = f(!1), [n, i] = f(l.title ?? ""), c = v(null);
7
- r(() => {
8
- e || i(l.title ?? "");
9
- }, [l.title, e]), r(() => {
10
- if (e) {
11
- const t = c.current;
12
- t?.focus(), t?.select();
13
- }
14
- }, [e]);
15
- const s = () => {
16
- const t = n.trim();
17
- o(!1), u((d) => ({
18
- ...d,
19
- title: t || void 0
20
- }));
21
- }, p = () => {
22
- i(l.title ?? ""), o(!1);
23
- };
24
- return /* @__PURE__ */ a("div", {
25
- className: "flow-project-title",
26
- title: "双击编辑标题",
27
- children: /* @__PURE__ */ a("input", {
28
- ref: c,
29
- className: `flow-project-title-input${e ? " flow-project-title-input--editing" : ""}`,
30
- value: e ? n : l.title ?? "",
31
- placeholder: D,
32
- readOnly: !e,
33
- onDoubleClick: () => o(!0),
34
- onChange: (t) => i(t.target.value),
35
- onBlur: () => {
36
- e && s();
37
- },
38
- onKeyDown: (t) => {
39
- t.key === "Enter" ? (t.preventDefault(), s()) : t.key === "Escape" && (t.preventDefault(), p());
40
- },
41
- spellCheck: !1
42
- })
43
- });
1
+ import { useFlowContext as e } from "../context/FlowContext.js";
2
+ import { useEffect as t, useRef as n, useState as r } from "react";
3
+ import { jsx as i } from "react/jsx-runtime";
4
+ //#region src/components/pro/Flow/panels/ProjectTitle.tsx
5
+ var a = "未命名流程图";
6
+ function o() {
7
+ let { doc: o, setDoc: s } = e(), [c, l] = r(!1), [u, d] = r(o.title ?? ""), f = n(null);
8
+ t(() => {
9
+ c || d(o.title ?? "");
10
+ }, [o.title, c]), t(() => {
11
+ if (c) {
12
+ let e = f.current;
13
+ e?.focus(), e?.select();
14
+ }
15
+ }, [c]);
16
+ let p = () => {
17
+ let e = u.trim();
18
+ l(!1), s((t) => ({
19
+ ...t,
20
+ title: e || void 0
21
+ }));
22
+ }, m = () => {
23
+ d(o.title ?? ""), l(!1);
24
+ };
25
+ return /* @__PURE__ */ i("div", {
26
+ className: "flow-project-title",
27
+ title: "双击编辑标题",
28
+ children: /* @__PURE__ */ i("input", {
29
+ ref: f,
30
+ className: `flow-project-title-input${c ? " flow-project-title-input--editing" : ""}`,
31
+ value: c ? u : o.title ?? "",
32
+ placeholder: a,
33
+ readOnly: !c,
34
+ onDoubleClick: () => l(!0),
35
+ onChange: (e) => d(e.target.value),
36
+ onBlur: () => {
37
+ c && p();
38
+ },
39
+ onKeyDown: (e) => {
40
+ e.key === "Enter" ? (e.preventDefault(), p()) : e.key === "Escape" && (e.preventDefault(), m());
41
+ },
42
+ spellCheck: !1
43
+ })
44
+ });
44
45
  }
45
- export {
46
- h as default
47
- };
46
+ //#endregion
47
+ export { o as default };
48
48
 
49
49
  //# sourceMappingURL=ProjectTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTitle.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/ProjectTitle.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\n\nconst DEFAULT_TITLE = '未命名流程图';\n\n/**\n * Editable project title shown in the top-left. Renders as plain-looking text\n * (a borderless input) and only becomes editable on double-click, committing on\n * blur or Enter and reverting on Escape. The title is stored on the document\n * and used as the base filename for all exports.\n */\nexport default function ProjectTitle() {\n const { doc, setDoc } = useFlowContext();\n const [editing, setEditing] = useState(false);\n const [draft, setDraft] = useState(doc.title ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Keep the draft in sync when the document title changes externally\n // (import / undo / new document) while not actively editing.\n useEffect(() => {\n if (!editing) setDraft(doc.title ?? '');\n }, [doc.title, editing]);\n\n useEffect(() => {\n if (editing) {\n const el = inputRef.current;\n el?.focus();\n el?.select();\n }\n }, [editing]);\n\n const commit = () => {\n const next = draft.trim();\n setEditing(false);\n setDoc((prev) => ({ ...prev, title: next || undefined }));\n };\n\n const cancel = () => {\n setDraft(doc.title ?? '');\n setEditing(false);\n };\n\n return (\n <div className=\"flow-project-title\" title=\"双击编辑标题\">\n <input\n ref={inputRef}\n className={`flow-project-title-input${editing ? ' flow-project-title-input--editing' : ''}`}\n value={editing ? draft : (doc.title ?? '')}\n placeholder={DEFAULT_TITLE}\n readOnly={!editing}\n onDoubleClick={() => setEditing(true)}\n onChange={(e) => setDraft(e.target.value)}\n onBlur={() => { if (editing) commit(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') { e.preventDefault(); commit(); }\n else if (e.key === 'Escape') { e.preventDefault(); cancel(); }\n }}\n spellCheck={false}\n />\n </div>\n );\n}\n"],"mappings":";;;AAGA,IAAM,IAAgB;AAQtB,SAAwB,IAAe;AACrC,QAAM,EAAE,KAAA,GAAK,QAAA,EAAA,IAAW,EAAe,GACjC,CAAC,GAAS,CAAA,IAAc,EAAS,EAAK,GACtC,CAAC,GAAO,CAAA,IAAY,EAAS,EAAI,SAAS,EAAE,GAC5C,IAAW,EAAyB,IAAI;AAI9C,EAAA,EAAA,MAAgB;AACd,IAAK,KAAS,EAAS,EAAI,SAAS,EAAE;AAAA,EACxC,GAAG,CAAC,EAAI,OAAO,CAAO,CAAC,GAEvB,EAAA,MAAgB;AACd,QAAI,GAAS;AACX,YAAM,IAAK,EAAS;AACpB,MAAA,GAAI,MAAM,GACV,GAAI,OAAO;AAAA,IACb;AAAA,EACF,GAAG,CAAC,CAAO,CAAC;AAEZ,QAAM,IAAA,MAAe;AACnB,UAAM,IAAO,EAAM,KAAK;AACxB,IAAA,EAAW,EAAK,GAChB,EAAA,CAAQ,OAAU;AAAA,MAAE,GAAG;AAAA,MAAM,OAAO,KAAQ;AAAA,IAAU,EAAE;AAAA,EAC1D,GAEM,IAAA,MAAe;AACnB,IAAA,EAAS,EAAI,SAAS,EAAE,GACxB,EAAW,EAAK;AAAA,EAClB;AAEA,SACE,gBAAA,EAAC,OAAD;AAAA,IAAK,WAAU;AAAA,IAAqB,OAAM;AAAA,IACxC,UAAA,gBAAA,EAAC,SAAD;AAAA,MACE,KAAK;AAAA,MACL,WAAW,2BAA2B,IAAU,uCAAuC,EAAA;AAAA,MACvF,OAAO,IAAU,IAAS,EAAI,SAAS;AAAA,MACvC,aAAa;AAAA,MACb,UAAU,CAAC;AAAA,MACX,eAAA,MAAqB,EAAW,EAAI;AAAA,MACpC,UAAA,CAAW,MAAM,EAAS,EAAE,OAAO,KAAK;AAAA,MACxC,QAAA,MAAc;AAAE,QAAI,KAAS,EAAO;AAAA,MAAG;AAAA,MACvC,WAAA,CAAY,MAAM;AAChB,QAAI,EAAE,QAAQ,WAAW,EAAE,eAAe,GAAG,EAAO,KAC3C,EAAE,QAAQ,aAAY,EAAE,eAAe,GAAG,EAAO;AAAA,MAC5D;AAAA,MACA,YAAY;AAAA,IACb,CAAA;AAAA,EACE,CAAA;AAET"}
1
+ {"version":3,"file":"ProjectTitle.js","names":[],"sources":["../../../../../src/components/pro/Flow/panels/ProjectTitle.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\n\nconst DEFAULT_TITLE = '未命名流程图';\n\n/**\n * Editable project title shown in the top-left. Renders as plain-looking text\n * (a borderless input) and only becomes editable on double-click, committing on\n * blur or Enter and reverting on Escape. The title is stored on the document\n * and used as the base filename for all exports.\n */\nexport default function ProjectTitle() {\n const { doc, setDoc } = useFlowContext();\n const [editing, setEditing] = useState(false);\n const [draft, setDraft] = useState(doc.title ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Keep the draft in sync when the document title changes externally\n // (import / undo / new document) while not actively editing.\n useEffect(() => {\n if (!editing) setDraft(doc.title ?? '');\n }, [doc.title, editing]);\n\n useEffect(() => {\n if (editing) {\n const el = inputRef.current;\n el?.focus();\n el?.select();\n }\n }, [editing]);\n\n const commit = () => {\n const next = draft.trim();\n setEditing(false);\n setDoc((prev) => ({ ...prev, title: next || undefined }));\n };\n\n const cancel = () => {\n setDraft(doc.title ?? '');\n setEditing(false);\n };\n\n return (\n <div className=\"flow-project-title\" title=\"双击编辑标题\">\n <input\n ref={inputRef}\n className={`flow-project-title-input${editing ? ' flow-project-title-input--editing' : ''}`}\n value={editing ? draft : (doc.title ?? '')}\n placeholder={DEFAULT_TITLE}\n readOnly={!editing}\n onDoubleClick={() => setEditing(true)}\n onChange={(e) => setDraft(e.target.value)}\n onBlur={() => { if (editing) commit(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') { e.preventDefault(); commit(); }\n else if (e.key === 'Escape') { e.preventDefault(); cancel(); }\n }}\n spellCheck={false}\n />\n </div>\n );\n}\n"],"mappings":";;;;AAGA,IAAM,IAAgB;AAQtB,SAAwB,IAAe;CACrC,IAAM,EAAE,QAAK,cAAW,EAAe,GACjC,CAAC,GAAS,KAAc,EAAS,EAAK,GACtC,CAAC,GAAO,KAAY,EAAS,EAAI,SAAS,EAAE,GAC5C,IAAW,EAAyB,IAAI;CAQ9C,AAJA,QAAgB;EACd,AAAK,KAAS,EAAS,EAAI,SAAS,EAAE;CACxC,GAAG,CAAC,EAAI,OAAO,CAAO,CAAC,GAEvB,QAAgB;EACd,IAAI,GAAS;GACX,IAAM,IAAK,EAAS;GAEpB,AADA,GAAI,MAAM,GACV,GAAI,OAAO;EACb;CACF,GAAG,CAAC,CAAO,CAAC;CAEZ,IAAM,UAAe;EACnB,IAAM,IAAO,EAAM,KAAK;EAExB,AADA,EAAW,EAAK,GAChB,GAAQ,OAAU;GAAE,GAAG;GAAM,OAAO,KAAQ,KAAA;EAAU,EAAE;CAC1D,GAEM,UAAe;EAEnB,AADA,EAAS,EAAI,SAAS,EAAE,GACxB,EAAW,EAAK;CAClB;CAEA,OACE,kBAAC,OAAD;EAAK,WAAU;EAAqB,OAAM;EACxC,UAAA,kBAAC,SAAD;GACE,KAAK;GACL,WAAW,2BAA2B,IAAU,uCAAuC;GACvF,OAAO,IAAU,IAAS,EAAI,SAAS;GACvC,aAAa;GACb,UAAU,CAAC;GACX,qBAAqB,EAAW,EAAI;GACpC,WAAW,MAAM,EAAS,EAAE,OAAO,KAAK;GACxC,cAAc;IAAE,AAAI,KAAS,EAAO;GAAG;GACvC,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,WAAW,EAAE,eAAe,GAAG,EAAO,KAC3C,EAAE,QAAQ,aAAY,EAAE,eAAe,GAAG,EAAO;GAC5D;GACA,YAAY;EACb,CAAA;CACE,CAAA;AAET"}