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,105 +1,105 @@
1
- import { DEFAULT_NODE_DATA as m } from "../constants.js";
2
- import { useFlowContext as g } from "../context/FlowContext.js";
3
- import { generateId as x } from "../nodes/nodeUtils.js";
4
- import { useCallback as d } from "react";
5
- function w() {
6
- const { setDoc: i, currentCanvasId: a } = g();
7
- return {
8
- addNode: d((e, n, o, s, t, r) => {
9
- const h = x("node"), u = {
10
- id: h,
11
- type: e,
12
- position: {
13
- x: n,
14
- y: o
15
- },
16
- width: s,
17
- height: t,
18
- data: {
19
- ...m,
20
- ...r
21
- }
22
- };
23
- return i((c) => {
24
- const f = c.canvases[a];
25
- return f ? {
26
- ...c,
27
- canvases: {
28
- ...c.canvases,
29
- [a]: {
30
- ...f,
31
- nodes: [...f.nodes, u]
32
- }
33
- }
34
- } : c;
35
- }), h;
36
- }, [i, a]),
37
- updateNode: d((e, n) => {
38
- i((o) => {
39
- const s = o.canvases[a];
40
- return s ? {
41
- ...o,
42
- canvases: {
43
- ...o.canvases,
44
- [a]: {
45
- ...s,
46
- nodes: s.nodes.map((t) => t.id !== e ? t : {
47
- ...t,
48
- ..."position" in n ? { position: n.position } : {},
49
- ..."width" in n ? { width: n.width } : {},
50
- ..."height" in n ? { height: n.height } : {},
51
- ..."zIndex" in n ? { zIndex: n.zIndex } : {},
52
- data: n.data ? {
53
- ...t.data,
54
- ...n.data
55
- } : t.data
56
- })
57
- }
58
- }
59
- } : o;
60
- });
61
- }, [i, a]),
62
- moveNodes: d((e, n, o) => {
63
- i((s) => {
64
- const t = s.canvases[a];
65
- return t ? {
66
- ...s,
67
- canvases: {
68
- ...s.canvases,
69
- [a]: {
70
- ...t,
71
- nodes: t.nodes.map((r) => e.has(r.id) ? {
72
- ...r,
73
- position: {
74
- x: r.position.x + n,
75
- y: r.position.y + o
76
- }
77
- } : r)
78
- }
79
- }
80
- } : s;
81
- });
82
- }, [i, a]),
83
- deleteNodes: d((e) => {
84
- i((n) => {
85
- const o = n.canvases[a];
86
- return o ? {
87
- ...n,
88
- canvases: {
89
- ...n.canvases,
90
- [a]: {
91
- ...o,
92
- nodes: o.nodes.filter((s) => !e.has(s.id)),
93
- edges: o.edges.filter((s) => !e.has(s.source) && !e.has(s.target))
94
- }
95
- }
96
- } : n;
97
- });
98
- }, [i, a])
99
- };
1
+ import { DEFAULT_NODE_DATA as e } from "../constants.js";
2
+ import { useFlowContext as t } from "../context/FlowContext.js";
3
+ import { generateId as n } from "../nodes/nodeUtils.js";
4
+ import { useCallback as r } from "react";
5
+ //#region src/components/pro/Flow/hooks/useNodeMutations.ts
6
+ function i() {
7
+ let { setDoc: i, currentCanvasId: a } = t();
8
+ return {
9
+ addNode: r((t, r, o, s, c, l) => {
10
+ let u = n("node"), d = {
11
+ id: u,
12
+ type: t,
13
+ position: {
14
+ x: r,
15
+ y: o
16
+ },
17
+ width: s,
18
+ height: c,
19
+ data: {
20
+ ...e,
21
+ ...l
22
+ }
23
+ };
24
+ return i((e) => {
25
+ let t = e.canvases[a];
26
+ return t ? {
27
+ ...e,
28
+ canvases: {
29
+ ...e.canvases,
30
+ [a]: {
31
+ ...t,
32
+ nodes: [...t.nodes, d]
33
+ }
34
+ }
35
+ } : e;
36
+ }), u;
37
+ }, [i, a]),
38
+ updateNode: r((e, t) => {
39
+ i((n) => {
40
+ let r = n.canvases[a];
41
+ return r ? {
42
+ ...n,
43
+ canvases: {
44
+ ...n.canvases,
45
+ [a]: {
46
+ ...r,
47
+ nodes: r.nodes.map((n) => n.id === e ? {
48
+ ...n,
49
+ ..."position" in t ? { position: t.position } : {},
50
+ ..."width" in t ? { width: t.width } : {},
51
+ ..."height" in t ? { height: t.height } : {},
52
+ ..."zIndex" in t ? { zIndex: t.zIndex } : {},
53
+ data: t.data ? {
54
+ ...n.data,
55
+ ...t.data
56
+ } : n.data
57
+ } : n)
58
+ }
59
+ }
60
+ } : n;
61
+ });
62
+ }, [i, a]),
63
+ moveNodes: r((e, t, n) => {
64
+ i((r) => {
65
+ let i = r.canvases[a];
66
+ return i ? {
67
+ ...r,
68
+ canvases: {
69
+ ...r.canvases,
70
+ [a]: {
71
+ ...i,
72
+ nodes: i.nodes.map((r) => e.has(r.id) ? {
73
+ ...r,
74
+ position: {
75
+ x: r.position.x + t,
76
+ y: r.position.y + n
77
+ }
78
+ } : r)
79
+ }
80
+ }
81
+ } : r;
82
+ });
83
+ }, [i, a]),
84
+ deleteNodes: r((e) => {
85
+ i((t) => {
86
+ let n = t.canvases[a];
87
+ return n ? {
88
+ ...t,
89
+ canvases: {
90
+ ...t.canvases,
91
+ [a]: {
92
+ ...n,
93
+ nodes: n.nodes.filter((t) => !e.has(t.id)),
94
+ edges: n.edges.filter((t) => !e.has(t.source) && !e.has(t.target))
95
+ }
96
+ }
97
+ } : t;
98
+ });
99
+ }, [i, a])
100
+ };
100
101
  }
101
- export {
102
- w as useNodeMutations
103
- };
102
+ //#endregion
103
+ export { i as useNodeMutations };
104
104
 
105
105
  //# sourceMappingURL=useNodeMutations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeMutations.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useNodeMutations.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { FlowNode, FlowNodeData, FlowShapeType } from '../types';\nimport { DEFAULT_NODE_DATA } from '../constants';\nimport { generateId } from '../nodes/nodeUtils';\n\n/**\n * Provides CRUD operations for nodes on the current canvas.\n */\nexport function useNodeMutations() {\n const { setDoc, currentCanvasId } = useFlowContext();\n\n const addNode = useCallback(\n (type: FlowShapeType, x: number, y: number, width: number, height: number, data?: Partial<FlowNodeData>): string => {\n const id = generateId('node');\n const node: FlowNode = {\n id,\n type,\n position: { x, y },\n width,\n height,\n data: { ...DEFAULT_NODE_DATA, ...data },\n };\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: [...canvas.nodes, node],\n },\n },\n };\n });\n return id;\n },\n [setDoc, currentCanvasId],\n );\n\n const updateNode = useCallback(\n (id: string, updates: Partial<Pick<FlowNode, 'position' | 'width' | 'height' | 'zIndex'>> & { data?: Partial<FlowNodeData> }) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (n.id !== id) return n;\n return {\n ...n,\n ...('position' in updates ? { position: updates.position! } : {}),\n ...('width' in updates ? { width: updates.width! } : {}),\n ...('height' in updates ? { height: updates.height! } : {}),\n ...('zIndex' in updates ? { zIndex: updates.zIndex } : {}),\n data: updates.data ? { ...n.data, ...updates.data } : n.data,\n };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const moveNodes = useCallback(\n (ids: Set<string>, dx: number, dy: number) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (!ids.has(n.id)) return n;\n return { ...n, position: { x: n.position.x + dx, y: n.position.y + dy } };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const deleteNodes = useCallback(\n (ids: Set<string>) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.filter(n => !ids.has(n.id)),\n edges: canvas.edges.filter(e => !ids.has(e.source) && !ids.has(e.target)),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n return { addNode, updateNode, moveNodes, deleteNodes };\n}\n"],"mappings":";;;;AASA,SAAgB,IAAmB;AACjC,QAAM,EAAE,QAAA,GAAQ,iBAAA,EAAA,IAAoB,EAAe;AA0GnD,SAAO;AAAA,IAAE,SAxGO,EAAA,CACb,GAAqB,GAAW,GAAW,GAAe,GAAgB,MAAyC;AAClH,YAAM,IAAK,EAAW,MAAM,GACtB,IAAiB;AAAA,QACrB,IAAA;AAAA,QACA,MAAA;AAAA,QACA,UAAU;AAAA,UAAE,GAAA;AAAA,UAAG,GAAA;AAAA,QAAE;AAAA,QACjB,OAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAM;AAAA,UAAE,GAAG;AAAA,UAAmB,GAAG;AAAA,QAAK;AAAA,MACxC;AACA,aAAA,EAAA,CAAO,MAAQ;AACb,cAAM,IAAS,EAAK,SAAS,CAAA;AAC7B,eAAK,IACE;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,YACR,GAAG,EAAK;AAAA,YACP,CAAA,CAAA,GAAkB;AAAA,cACjB,GAAG;AAAA,cACH,OAAO,CAAC,GAAG,EAAO,OAAO,CAAI;AAAA,YAC/B;AAAA,UACF;AAAA,QACF,IAVoB;AAAA,MAWtB,CAAC,GACM;AAAA,IACT,GACA,CAAC,GAAQ,CAAe,CA6EjB;AAAA,IAAS,YA1EC,EAAA,CAChB,GAAY,MAAoH;AAC/H,MAAA,EAAA,CAAO,MAAQ;AACb,cAAM,IAAS,EAAK,SAAS,CAAA;AAC7B,eAAK,IACE;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,YACR,GAAG,EAAK;AAAA,YACP,CAAA,CAAA,GAAkB;AAAA,cACjB,GAAG;AAAA,cACH,OAAO,EAAO,MAAM,IAAA,CAAI,MAClB,EAAE,OAAO,IAAW,IACjB;AAAA,gBACL,GAAG;AAAA,gBACH,GAAI,cAAc,IAAU,EAAE,UAAU,EAAQ,SAAU,IAAI,CAAC;AAAA,gBAC/D,GAAI,WAAW,IAAU,EAAE,OAAO,EAAQ,MAAO,IAAI,CAAC;AAAA,gBACtD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAQ,IAAI,CAAC;AAAA,gBACzD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAO,IAAI,CAAC;AAAA,gBACxD,MAAM,EAAQ,OAAO;AAAA,kBAAE,GAAG,EAAE;AAAA,kBAAM,GAAG,EAAQ;AAAA,gBAAK,IAAI,EAAE;AAAA,cAC1D,CACD;AAAA,YACH;AAAA,UACF;AAAA,QACF,IApBoB;AAAA,MAqBtB,CAAC;AAAA,IACH,GACA,CAAC,GAAQ,CAAe,CA+CR;AAAA,IAAY,WA5CZ,EAAA,CACf,GAAkB,GAAY,MAAe;AAC5C,MAAA,EAAA,CAAO,MAAQ;AACb,cAAM,IAAS,EAAK,SAAS,CAAA;AAC7B,eAAK,IACE;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,YACR,GAAG,EAAK;AAAA,YACP,CAAA,CAAA,GAAkB;AAAA,cACjB,GAAG;AAAA,cACH,OAAO,EAAO,MAAM,IAAA,CAAI,MACjB,EAAI,IAAI,EAAE,EAAE,IACV;AAAA,gBAAE,GAAG;AAAA,gBAAG,UAAU;AAAA,kBAAE,GAAG,EAAE,SAAS,IAAI;AAAA,kBAAI,GAAG,EAAE,SAAS,IAAI;AAAA,gBAAG;AAAA,cAAE,IAD7C,CAE5B;AAAA,YACH;AAAA,UACF;AAAA,QACF,IAboB;AAAA,MActB,CAAC;AAAA,IACH,GACA,CAAC,GAAQ,CAAe,CAwBI;AAAA,IAAW,aArBrB,EAAA,CACjB,MAAqB;AACpB,MAAA,EAAA,CAAO,MAAQ;AACb,cAAM,IAAS,EAAK,SAAS,CAAA;AAC7B,eAAK,IACE;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,YACR,GAAG,EAAK;AAAA,YACP,CAAA,CAAA,GAAkB;AAAA,cACjB,GAAG;AAAA,cACH,OAAO,EAAO,MAAM,OAAA,CAAO,MAAK,CAAC,EAAI,IAAI,EAAE,EAAE,CAAC;AAAA,cAC9C,OAAO,EAAO,MAAM,OAAA,CAAO,MAAK,CAAC,EAAI,IAAI,EAAE,MAAM,KAAK,CAAC,EAAI,IAAI,EAAE,MAAM,CAAC;AAAA,YAC1E;AAAA,UACF;AAAA,QACF,IAXoB;AAAA,MAYtB,CAAC;AAAA,IACH,GACA,CAAC,GAAQ,CAAe,CAGe;AAAA,EAAY;AACvD"}
1
+ {"version":3,"file":"useNodeMutations.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useNodeMutations.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { FlowNode, FlowNodeData, FlowShapeType } from '../types';\nimport { DEFAULT_NODE_DATA } from '../constants';\nimport { generateId } from '../nodes/nodeUtils';\n\n/**\n * Provides CRUD operations for nodes on the current canvas.\n */\nexport function useNodeMutations() {\n const { setDoc, currentCanvasId } = useFlowContext();\n\n const addNode = useCallback(\n (type: FlowShapeType, x: number, y: number, width: number, height: number, data?: Partial<FlowNodeData>): string => {\n const id = generateId('node');\n const node: FlowNode = {\n id,\n type,\n position: { x, y },\n width,\n height,\n data: { ...DEFAULT_NODE_DATA, ...data },\n };\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: [...canvas.nodes, node],\n },\n },\n };\n });\n return id;\n },\n [setDoc, currentCanvasId],\n );\n\n const updateNode = useCallback(\n (id: string, updates: Partial<Pick<FlowNode, 'position' | 'width' | 'height' | 'zIndex'>> & { data?: Partial<FlowNodeData> }) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (n.id !== id) return n;\n return {\n ...n,\n ...('position' in updates ? { position: updates.position! } : {}),\n ...('width' in updates ? { width: updates.width! } : {}),\n ...('height' in updates ? { height: updates.height! } : {}),\n ...('zIndex' in updates ? { zIndex: updates.zIndex } : {}),\n data: updates.data ? { ...n.data, ...updates.data } : n.data,\n };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const moveNodes = useCallback(\n (ids: Set<string>, dx: number, dy: number) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (!ids.has(n.id)) return n;\n return { ...n, position: { x: n.position.x + dx, y: n.position.y + dy } };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const deleteNodes = useCallback(\n (ids: Set<string>) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.filter(n => !ids.has(n.id)),\n edges: canvas.edges.filter(e => !ids.has(e.source) && !ids.has(e.target)),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n return { addNode, updateNode, moveNodes, deleteNodes };\n}\n"],"mappings":";;;;;AASA,SAAgB,IAAmB;CACjC,IAAM,EAAE,WAAQ,uBAAoB,EAAe;CA0GnD,OAAO;EAAE,SAxGO,GACb,GAAqB,GAAW,GAAW,GAAe,GAAgB,MAAyC;GAClH,IAAM,IAAK,EAAW,MAAM,GACtB,IAAiB;IACrB;IACA;IACA,UAAU;KAAE;KAAG;IAAE;IACjB;IACA;IACA,MAAM;KAAE,GAAG;KAAmB,GAAG;IAAK;GACxC;GAeA,OAdA,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,CAAC,GAAG,EAAO,OAAO,CAAI;MAC/B;KACF;IACF,IAVoB;GAWtB,CAAC,GACM;EACT,GACA,CAAC,GAAQ,CAAe,CA6EjB;EAAS,YA1EC,GAChB,GAAY,MAAoH;GAC/H,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,KAAI,MAClB,EAAE,OAAO,IACN;QACL,GAAG;QACH,GAAI,cAAc,IAAU,EAAE,UAAU,EAAQ,SAAU,IAAI,CAAC;QAC/D,GAAI,WAAW,IAAU,EAAE,OAAO,EAAQ,MAAO,IAAI,CAAC;QACtD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAQ,IAAI,CAAC;QACzD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAO,IAAI,CAAC;QACxD,MAAM,EAAQ,OAAO;SAAE,GAAG,EAAE;SAAM,GAAG,EAAQ;QAAK,IAAI,EAAE;OAC1D,IARwB,CASzB;MACH;KACF;IACF,IApBoB;GAqBtB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CA+CR;EAAY,WA5CZ,GACf,GAAkB,GAAY,MAAe;GAC5C,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,KAAI,MACjB,EAAI,IAAI,EAAE,EAAE,IACV;QAAE,GAAG;QAAG,UAAU;SAAE,GAAG,EAAE,SAAS,IAAI;SAAI,GAAG,EAAE,SAAS,IAAI;QAAG;OAAE,IAD7C,CAE5B;MACH;KACF;IACF,IAboB;GActB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CAwBI;EAAW,aArBrB,GACjB,MAAqB;GACpB,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,QAAO,MAAK,CAAC,EAAI,IAAI,EAAE,EAAE,CAAC;OAC9C,OAAO,EAAO,MAAM,QAAO,MAAK,CAAC,EAAI,IAAI,EAAE,MAAM,KAAK,CAAC,EAAI,IAAI,EAAE,MAAM,CAAC;MAC1E;KACF;IACF,IAXoB;GAYtB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CAGe;CAAY;AACvD"}
@@ -1,60 +1,59 @@
1
- import { useFlowContext as b } from "../context/FlowContext.js";
2
- import { useFlowUI as k } from "../context/FlowUIContext.js";
3
- import { anchorFocusRect as F, canvasStackTo as R, getDocumentSlides as A } from "../nodes/animAnchors.js";
4
- import { downloadDataURL as L, safeFileBaseName as x } from "./useFlowImportExport.js";
5
- import { buildPdfFromJpegs as C, pngDataUrlToJpeg as P } from "../utils/pdfExport.js";
6
- import { useCallback as S } from "react";
7
- function m(s) {
8
- return new Promise((t) => {
9
- let e = s;
10
- const o = () => {
11
- --e <= 0 ? t() : requestAnimationFrame(o);
12
- };
13
- requestAnimationFrame(o);
14
- });
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 { downloadDataURL as a, safeFileBaseName as o } from "./useFlowImportExport.js";
5
+ import { buildPdfFromJpegs as s, pngDataUrlToJpeg as c } from "../utils/pdfExport.js";
6
+ import { useCallback as l } from "react";
7
+ //#region src/components/pro/Flow/hooks/usePdfExport.ts
8
+ function u(e) {
9
+ return new Promise((t) => {
10
+ let n = e, r = () => {
11
+ --n <= 0 ? t() : requestAnimationFrame(r);
12
+ };
13
+ requestAnimationFrame(r);
14
+ });
15
15
  }
16
- function q(s) {
17
- const { doc: t, setDoc: e } = b(), { showAnchors: o, setShowAnchors: n } = k();
18
- return S(async () => {
19
- const i = A(t);
20
- if (i.length === 0) return !1;
21
- const a = s.current;
22
- if (!a || a.destroyed) return !1;
23
- const d = t.stack.slice(), p = o;
24
- n(!1), await m(2);
25
- const g = 2, c = [];
26
- try {
27
- for (const r of i) {
28
- const f = R(t, r.canvasId);
29
- f && (e((U) => ({
30
- ...U,
31
- stack: f
32
- })), await m(3));
33
- const w = F(r.node), u = await a.exportRegionPNG(w, {
34
- scale: g,
35
- backgroundColor: 16777215
36
- });
37
- u && c.push(await P(u.dataUrl));
38
- }
39
- } finally {
40
- n(p), e((r) => ({
41
- ...r,
42
- stack: d
43
- }));
44
- }
45
- if (c.length === 0) return !1;
46
- const h = C(c), l = URL.createObjectURL(h);
47
- return L(l, `${x(t.title)}.pdf`), URL.revokeObjectURL(l), !0;
48
- }, [
49
- t,
50
- e,
51
- o,
52
- n,
53
- s
54
- ]);
16
+ function d(d) {
17
+ let { doc: f, setDoc: p } = e(), { showAnchors: m, setShowAnchors: h } = t();
18
+ return l(async () => {
19
+ let e = i(f);
20
+ if (e.length === 0) return !1;
21
+ let t = d.current;
22
+ if (!t || t.destroyed) return !1;
23
+ let l = f.stack.slice(), g = m;
24
+ h(!1), await u(2);
25
+ let _ = [];
26
+ try {
27
+ for (let i of e) {
28
+ let e = r(f, i.canvasId);
29
+ e && (p((t) => ({
30
+ ...t,
31
+ stack: e
32
+ })), await u(3));
33
+ let a = n(i.node), o = await t.exportRegionPNG(a, {
34
+ scale: 2,
35
+ backgroundColor: 16777215
36
+ });
37
+ o && _.push(await c(o.dataUrl));
38
+ }
39
+ } finally {
40
+ h(g), p((e) => ({
41
+ ...e,
42
+ stack: l
43
+ }));
44
+ }
45
+ if (_.length === 0) return !1;
46
+ let v = s(_), y = URL.createObjectURL(v);
47
+ return a(y, `${o(f.title)}.pdf`), URL.revokeObjectURL(y), !0;
48
+ }, [
49
+ f,
50
+ p,
51
+ m,
52
+ h,
53
+ d
54
+ ]);
55
55
  }
56
- export {
57
- q as usePdfExport
58
- };
56
+ //#endregion
57
+ export { d as usePdfExport };
59
58
 
60
59
  //# sourceMappingURL=usePdfExport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePdfExport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePdfExport.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\nimport { buildPdfFromJpegs, pngDataUrlToJpeg } from '../utils/pdfExport';\nimport { downloadDataURL, safeFileBaseName } from './useFlowImportExport';\nimport type { PixiApp } from '../canvas/PixiApp';\n\n/** Await the next N animation frames (lets Pixi settle after a state change). */\nfunction nextFrames(n: number): Promise<void> {\n return new Promise((resolve) => {\n let left = n;\n const step = () => {\n if (--left <= 0) resolve();\n else requestAnimationFrame(step);\n };\n requestAnimationFrame(step);\n });\n}\n\n/**\n * Exports the document's animation anchors as a single PDF. Each page is cropped\n * exactly to an anchor's world rectangle (not the whole viewport), so the PDF\n * contains only the framed slide content. Pages follow the global anchor order,\n * navigating across sub-canvases as needed.\n *\n * Returns a callback; it no-ops (returns false) when there are no anchors.\n */\nexport function usePdfExport(pixiRef: React.RefObject<PixiApp | null>) {\n const { doc, setDoc } = useFlowContext();\n const { showAnchors, setShowAnchors } = useFlowUI();\n\n return useCallback(async (): Promise<boolean> => {\n const slides = getDocumentSlides(doc);\n if (slides.length === 0) return false;\n\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return false;\n\n // Snapshot state we temporarily change, so we can restore it afterward.\n const originalStack = doc.stack.slice();\n const anchorsWereVisible = showAnchors;\n\n // Hide anchor frames so they don't appear in the exported pages. The region\n // capture drives the world transform directly and restores it each time, so\n // the interactive viewport is untouched.\n setShowAnchors(false);\n await nextFrames(2);\n\n // Render slides at a crisp scale so text/shapes stay sharp in the PDF.\n const CAPTURE_SCALE = 2;\n const pages: Awaited<ReturnType<typeof pngDataUrlToJpeg>>[] = [];\n try {\n for (const slide of slides) {\n // Switch to the slide's canvas if it lives on a nested sub-canvas.\n const stack = canvasStackTo(doc, slide.canvasId);\n if (stack) {\n setDoc((prev) => ({ ...prev, stack }));\n // Canvas swap needs a couple frames to re-render the new node set.\n await nextFrames(3);\n }\n\n const r = anchorFocusRect(slide.node);\n const shot = await pixi.exportRegionPNG(r, {\n scale: CAPTURE_SCALE,\n backgroundColor: 0xffffff,\n });\n if (shot) pages.push(await pngDataUrlToJpeg(shot.dataUrl));\n }\n } finally {\n // Restore prior editor state regardless of success/failure.\n setShowAnchors(anchorsWereVisible);\n setDoc((prev) => ({ ...prev, stack: originalStack }));\n }\n\n if (pages.length === 0) return false;\n const blob = buildPdfFromJpegs(pages);\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.pdf`);\n URL.revokeObjectURL(url);\n return true;\n }, [doc, setDoc, showAnchors, setShowAnchors, pixiRef]);\n}\n"],"mappings":";;;;;;AASA,SAAS,EAAW,GAA0B;AAC5C,SAAO,IAAI,QAAA,CAAS,MAAY;AAC9B,QAAI,IAAO;AACX,UAAM,IAAA,MAAa;AACjB,MAAI,EAAE,KAAQ,IAAG,EAAQ,IACpB,sBAAsB,CAAI;AAAA,IACjC;AACA,0BAAsB,CAAI;AAAA,EAC5B,CAAC;AACH;AAUA,SAAgB,EAAa,GAA0C;AACrE,QAAM,EAAE,KAAA,GAAK,QAAA,EAAA,IAAW,EAAe,GACjC,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAAU;AAElD,SAAO,EAAY,YAA8B;AAC/C,UAAM,IAAS,EAAkB,CAAG;AACpC,QAAI,EAAO,WAAW,EAAG,QAAO;AAEhC,UAAM,IAAO,EAAQ;AACrB,QAAI,CAAC,KAAQ,EAAK,UAAW,QAAO;AAGpC,UAAM,IAAgB,EAAI,MAAM,MAAM,GAChC,IAAqB;AAK3B,IAAA,EAAe,EAAK,GACpB,MAAM,EAAW,CAAC;AAGlB,UAAM,IAAgB,GAChB,IAAwD,CAAC;AAC/D,QAAI;AACF,iBAAW,KAAS,GAAQ;AAE1B,cAAM,IAAQ,EAAc,GAAK,EAAM,QAAQ;AAC/C,QAAI,MACF,EAAA,CAAQ,OAAU;AAAA,UAAE,GAAG;AAAA,UAAM,OAAA;AAAA,QAAM,EAAE,GAErC,MAAM,EAAW,CAAC;AAGpB,cAAM,IAAI,EAAgB,EAAM,IAAI,GAC9B,IAAO,MAAM,EAAK,gBAAgB,GAAG;AAAA,UACzC,OAAO;AAAA,UACP,iBAAiB;AAAA,QACnB,CAAC;AACD,QAAI,KAAM,EAAM,KAAK,MAAM,EAAiB,EAAK,OAAO,CAAC;AAAA,MAC3D;AAAA,IACF,UAAA;AAEE,MAAA,EAAe,CAAkB,GACjC,EAAA,CAAQ,OAAU;AAAA,QAAE,GAAG;AAAA,QAAM,OAAO;AAAA,MAAc,EAAE;AAAA,IACtD;AAEA,QAAI,EAAM,WAAW,EAAG,QAAO;AAC/B,UAAM,IAAO,EAAkB,CAAK,GAC9B,IAAM,IAAI,gBAAgB,CAAI;AACpC,WAAA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,CAAA,MAAO,GACzD,IAAI,gBAAgB,CAAG,GAChB;AAAA,EACT,GAAG;AAAA,IAAC;AAAA,IAAK;AAAA,IAAQ;AAAA,IAAa;AAAA,IAAgB;AAAA,EAAO,CAAC;AACxD"}
1
+ {"version":3,"file":"usePdfExport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePdfExport.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\nimport { buildPdfFromJpegs, pngDataUrlToJpeg } from '../utils/pdfExport';\nimport { downloadDataURL, safeFileBaseName } from './useFlowImportExport';\nimport type { PixiApp } from '../canvas/PixiApp';\n\n/** Await the next N animation frames (lets Pixi settle after a state change). */\nfunction nextFrames(n: number): Promise<void> {\n return new Promise((resolve) => {\n let left = n;\n const step = () => {\n if (--left <= 0) resolve();\n else requestAnimationFrame(step);\n };\n requestAnimationFrame(step);\n });\n}\n\n/**\n * Exports the document's animation anchors as a single PDF. Each page is cropped\n * exactly to an anchor's world rectangle (not the whole viewport), so the PDF\n * contains only the framed slide content. Pages follow the global anchor order,\n * navigating across sub-canvases as needed.\n *\n * Returns a callback; it no-ops (returns false) when there are no anchors.\n */\nexport function usePdfExport(pixiRef: React.RefObject<PixiApp | null>) {\n const { doc, setDoc } = useFlowContext();\n const { showAnchors, setShowAnchors } = useFlowUI();\n\n return useCallback(async (): Promise<boolean> => {\n const slides = getDocumentSlides(doc);\n if (slides.length === 0) return false;\n\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return false;\n\n // Snapshot state we temporarily change, so we can restore it afterward.\n const originalStack = doc.stack.slice();\n const anchorsWereVisible = showAnchors;\n\n // Hide anchor frames so they don't appear in the exported pages. The region\n // capture drives the world transform directly and restores it each time, so\n // the interactive viewport is untouched.\n setShowAnchors(false);\n await nextFrames(2);\n\n // Render slides at a crisp scale so text/shapes stay sharp in the PDF.\n const CAPTURE_SCALE = 2;\n const pages: Awaited<ReturnType<typeof pngDataUrlToJpeg>>[] = [];\n try {\n for (const slide of slides) {\n // Switch to the slide's canvas if it lives on a nested sub-canvas.\n const stack = canvasStackTo(doc, slide.canvasId);\n if (stack) {\n setDoc((prev) => ({ ...prev, stack }));\n // Canvas swap needs a couple frames to re-render the new node set.\n await nextFrames(3);\n }\n\n const r = anchorFocusRect(slide.node);\n const shot = await pixi.exportRegionPNG(r, {\n scale: CAPTURE_SCALE,\n backgroundColor: 0xffffff,\n });\n if (shot) pages.push(await pngDataUrlToJpeg(shot.dataUrl));\n }\n } finally {\n // Restore prior editor state regardless of success/failure.\n setShowAnchors(anchorsWereVisible);\n setDoc((prev) => ({ ...prev, stack: originalStack }));\n }\n\n if (pages.length === 0) return false;\n const blob = buildPdfFromJpegs(pages);\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.pdf`);\n URL.revokeObjectURL(url);\n return true;\n }, [doc, setDoc, showAnchors, setShowAnchors, pixiRef]);\n}\n"],"mappings":";;;;;;;AASA,SAAS,EAAW,GAA0B;CAC5C,OAAO,IAAI,SAAS,MAAY;EAC9B,IAAI,IAAO,GACL,UAAa;GACjB,AAAI,EAAE,KAAQ,IAAG,EAAQ,IACpB,sBAAsB,CAAI;EACjC;EACA,sBAAsB,CAAI;CAC5B,CAAC;AACH;AAUA,SAAgB,EAAa,GAA0C;CACrE,IAAM,EAAE,QAAK,cAAW,EAAe,GACjC,EAAE,gBAAa,sBAAmB,EAAU;CAElD,OAAO,EAAY,YAA8B;EAC/C,IAAM,IAAS,EAAkB,CAAG;EACpC,IAAI,EAAO,WAAW,GAAG,OAAO;EAEhC,IAAM,IAAO,EAAQ;EACrB,IAAI,CAAC,KAAQ,EAAK,WAAW,OAAO;EAGpC,IAAM,IAAgB,EAAI,MAAM,MAAM,GAChC,IAAqB;EAM3B,AADA,EAAe,EAAK,GACpB,MAAM,EAAW,CAAC;EAGlB,IACM,IAAwD,CAAC;EAC/D,IAAI;GACF,KAAK,IAAM,KAAS,GAAQ;IAE1B,IAAM,IAAQ,EAAc,GAAK,EAAM,QAAQ;IAC/C,AAAI,MACF,GAAQ,OAAU;KAAE,GAAG;KAAM;IAAM,EAAE,GAErC,MAAM,EAAW,CAAC;IAGpB,IAAM,IAAI,EAAgB,EAAM,IAAI,GAC9B,IAAO,MAAM,EAAK,gBAAgB,GAAG;KACzC,OAAO;KACP,iBAAiB;IACnB,CAAC;IACD,AAAI,KAAM,EAAM,KAAK,MAAM,EAAiB,EAAK,OAAO,CAAC;GAC3D;EACF,UAAU;GAGR,AADA,EAAe,CAAkB,GACjC,GAAQ,OAAU;IAAE,GAAG;IAAM,OAAO;GAAc,EAAE;EACtD;EAEA,IAAI,EAAM,WAAW,GAAG,OAAO;EAC/B,IAAM,IAAO,EAAkB,CAAK,GAC9B,IAAM,IAAI,gBAAgB,CAAI;EAGpC,OAFA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,EAAE,KAAK,GACzD,IAAI,gBAAgB,CAAG,GAChB;CACT,GAAG;EAAC;EAAK;EAAQ;EAAa;EAAgB;CAAO,CAAC;AACxD"}
@@ -1,60 +1,58 @@
1
- import { PixiApp as k } from "../canvas/PixiApp.js";
2
- import { refreshThemePalette as g, resolveFlowThemeColors as w } from "../utils/themeColor.js";
3
- import { useEffect as x, useRef as o } from "react";
4
- function O(l, a) {
5
- const s = o(null), d = o(null), c = o(!1), i = o(a);
6
- return i.current = a, x(() => {
7
- const t = l.current;
8
- if (!t) return;
9
- let h = !1;
10
- const e = document.createElement("canvas");
11
- e.style.display = "block", e.style.width = "100%", e.style.height = "100%", e.style.touchAction = "none", t.appendChild(e), d.current = e;
12
- const r = new k();
13
- s.current = r;
14
- const f = t.getBoundingClientRect();
15
- g(t);
16
- const m = w(t);
17
- r.init({
18
- canvas: e,
19
- width: f.width,
20
- height: f.height,
21
- backgroundColor: m.background
22
- }).then(() => {
23
- h || (c.current = !0, i.current?.(m));
24
- });
25
- const p = new ResizeObserver((n) => {
26
- if (!r.destroyed)
27
- for (const R of n) {
28
- const { width: v, height: y } = R.contentRect;
29
- v > 0 && y > 0 && r.resize(v, y);
30
- }
31
- });
32
- p.observe(t);
33
- const C = () => {
34
- if (r.destroyed) return;
35
- g(t);
36
- const n = w(t);
37
- r.setBackgroundColor(n.background), i.current?.(n);
38
- }, u = new MutationObserver(C);
39
- u.observe(document.documentElement, {
40
- attributes: !0,
41
- attributeFilter: ["data-theme", "class"]
42
- });
43
- const b = t.closest("[data-theme]");
44
- return b && u.observe(b, {
45
- attributes: !0,
46
- attributeFilter: ["data-theme", "class"]
47
- }), () => {
48
- h = !0, p.disconnect(), u.disconnect(), r.destroy(), s.current = null, c.current = !1, e.parentNode && e.parentNode.removeChild(e);
49
- };
50
- }, [l]), {
51
- pixiRef: s,
52
- canvasRef: d,
53
- readyRef: c
54
- };
1
+ import { PixiApp as e } from "../canvas/PixiApp.js";
2
+ import { refreshThemePalette as t, resolveFlowThemeColors as n } from "../utils/themeColor.js";
3
+ import { useEffect as r, useRef as i } from "react";
4
+ //#region src/components/pro/Flow/hooks/usePixiApp.ts
5
+ function a(a, o) {
6
+ let s = i(null), c = i(null), l = i(!1), u = i(o);
7
+ return u.current = o, r(() => {
8
+ let r = a.current;
9
+ if (!r) return;
10
+ let i = !1, o = document.createElement("canvas");
11
+ o.style.display = "block", o.style.width = "100%", o.style.height = "100%", o.style.touchAction = "none", r.appendChild(o), c.current = o;
12
+ let d = new e();
13
+ s.current = d;
14
+ let f = r.getBoundingClientRect();
15
+ t(r);
16
+ let p = n(r);
17
+ d.init({
18
+ canvas: o,
19
+ width: f.width,
20
+ height: f.height,
21
+ backgroundColor: p.background
22
+ }).then(() => {
23
+ i || (l.current = !0, u.current?.(p));
24
+ });
25
+ let m = new ResizeObserver((e) => {
26
+ if (!d.destroyed) for (let t of e) {
27
+ let { width: e, height: n } = t.contentRect;
28
+ e > 0 && n > 0 && d.resize(e, n);
29
+ }
30
+ });
31
+ m.observe(r);
32
+ let h = new MutationObserver(() => {
33
+ if (d.destroyed) return;
34
+ t(r);
35
+ let e = n(r);
36
+ d.setBackgroundColor(e.background), u.current?.(e);
37
+ });
38
+ h.observe(document.documentElement, {
39
+ attributes: !0,
40
+ attributeFilter: ["data-theme", "class"]
41
+ });
42
+ let g = r.closest("[data-theme]");
43
+ return g && h.observe(g, {
44
+ attributes: !0,
45
+ attributeFilter: ["data-theme", "class"]
46
+ }), () => {
47
+ i = !0, m.disconnect(), h.disconnect(), d.destroy(), s.current = null, l.current = !1, o.parentNode && o.parentNode.removeChild(o);
48
+ };
49
+ }, [a]), {
50
+ pixiRef: s,
51
+ canvasRef: c,
52
+ readyRef: l
53
+ };
55
54
  }
56
- export {
57
- O as usePixiApp
58
- };
55
+ //#endregion
56
+ export { a as usePixiApp };
59
57
 
60
58
  //# sourceMappingURL=usePixiApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePixiApp.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePixiApp.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { PixiApp } from '../canvas/PixiApp';\nimport { resolveFlowThemeColors, refreshThemePalette, type FlowThemeColors } from '../utils/themeColor';\n\n/**\n * Manages PixiJS Application lifecycle: creates on mount, destroys on unmount,\n * handles container resize.\n *\n * The canvas backdrop follows the active DishUI theme (`--color-base-200`). We\n * resolve the theme color from the container's inherited CSS scope at init and\n * again whenever the ancestor `data-theme` attribute changes.\n */\nexport function usePixiApp(\n containerRef: React.RefObject<HTMLDivElement | null>,\n onThemeColors?: (colors: FlowThemeColors) => void,\n) {\n const pixiRef = useRef<PixiApp | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const readyRef = useRef(false);\n const onThemeColorsRef = useRef(onThemeColors);\n onThemeColorsRef.current = onThemeColors;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n let cancelled = false;\n\n const canvas = document.createElement('canvas');\n canvas.style.display = 'block';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n // Touch devices: the canvas owns all touch gestures (drag/pinch/pan); the\n // browser must not scroll or fire pointercancel mid-gesture.\n canvas.style.touchAction = 'none';\n container.appendChild(canvas);\n canvasRef.current = canvas;\n\n const pixi = new PixiApp();\n pixiRef.current = pixi;\n\n const rect = container.getBoundingClientRect();\n refreshThemePalette(container);\n const themeColors = resolveFlowThemeColors(container);\n pixi.init({\n canvas,\n width: rect.width,\n height: rect.height,\n backgroundColor: themeColors.background,\n }).then(() => {\n if (!cancelled) {\n readyRef.current = true;\n onThemeColorsRef.current?.(themeColors);\n }\n });\n\n const ro = new ResizeObserver((entries) => {\n if (pixi.destroyed) return;\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n pixi.resize(width, height);\n }\n }\n });\n ro.observe(container);\n\n // React to DishUI theme switches (the theme is applied via a `data-theme`\n // attribute on an ancestor element). Re-resolve the themed colors and push\n // them to the canvas + subscriber.\n const applyTheme = () => {\n if (pixi.destroyed) return;\n refreshThemePalette(container);\n const colors = resolveFlowThemeColors(container);\n pixi.setBackgroundColor(colors.background);\n onThemeColorsRef.current?.(colors);\n };\n const themeObserver = new MutationObserver(applyTheme);\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n // Also watch the closest themed ancestor, if any.\n const themedAncestor = container.closest('[data-theme]');\n if (themedAncestor) {\n themeObserver.observe(themedAncestor, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n }\n\n return () => {\n cancelled = true;\n ro.disconnect();\n themeObserver.disconnect();\n pixi.destroy();\n pixiRef.current = null;\n readyRef.current = false;\n if (canvas.parentNode) canvas.parentNode.removeChild(canvas);\n };\n }, [containerRef]);\n\n return { pixiRef, canvasRef, readyRef };\n}\n"],"mappings":";;;AAYA,SAAgB,EACd,GACA,GACA;AACA,QAAM,IAAU,EAAuB,IAAI,GACrC,IAAY,EAAiC,IAAI,GACjD,IAAW,EAAO,EAAK,GACvB,IAAmB,EAAO,CAAa;AAC7C,SAAA,EAAiB,UAAU,GAE3B,EAAA,MAAgB;AACd,UAAM,IAAY,EAAa;AAC/B,QAAI,CAAC,EAAW;AAEhB,QAAI,IAAY;AAEhB,UAAM,IAAS,SAAS,cAAc,QAAQ;AAC9C,IAAA,EAAO,MAAM,UAAU,SACvB,EAAO,MAAM,QAAQ,QACrB,EAAO,MAAM,SAAS,QAGtB,EAAO,MAAM,cAAc,QAC3B,EAAU,YAAY,CAAM,GAC5B,EAAU,UAAU;AAEpB,UAAM,IAAO,IAAI,EAAQ;AACzB,IAAA,EAAQ,UAAU;AAElB,UAAM,IAAO,EAAU,sBAAsB;AAC7C,IAAA,EAAoB,CAAS;AAC7B,UAAM,IAAc,EAAuB,CAAS;AACpD,IAAA,EAAK,KAAK;AAAA,MACR,QAAA;AAAA,MACA,OAAO,EAAK;AAAA,MACZ,QAAQ,EAAK;AAAA,MACb,iBAAiB,EAAY;AAAA,IAC/B,CAAC,EAAE,KAAA,MAAW;AACZ,MAAK,MACH,EAAS,UAAU,IACnB,EAAiB,UAAU,CAAW;AAAA,IAE1C,CAAC;AAED,UAAM,IAAK,IAAI,eAAA,CAAgB,MAAY;AACzC,UAAI,CAAA,EAAK;AACT,mBAAW,KAAS,GAAS;AAC3B,gBAAM,EAAE,OAAA,GAAO,QAAA,EAAA,IAAW,EAAM;AAChC,UAAI,IAAQ,KAAK,IAAS,KACxB,EAAK,OAAO,GAAO,CAAM;AAAA,QAE7B;AAAA,IACF,CAAC;AACD,IAAA,EAAG,QAAQ,CAAS;AAKpB,UAAM,IAAA,MAAmB;AACvB,UAAI,EAAK,UAAW;AACpB,MAAA,EAAoB,CAAS;AAC7B,YAAM,IAAS,EAAuB,CAAS;AAC/C,MAAA,EAAK,mBAAmB,EAAO,UAAU,GACzC,EAAiB,UAAU,CAAM;AAAA,IACnC,GACM,IAAgB,IAAI,iBAAiB,CAAU;AACrD,IAAA,EAAc,QAAQ,SAAS,iBAAiB;AAAA,MAC9C,YAAY;AAAA,MACZ,iBAAiB,CAAC,cAAc,OAAO;AAAA,IACzC,CAAC;AAED,UAAM,IAAiB,EAAU,QAAQ,cAAc;AACvD,WAAI,KACF,EAAc,QAAQ,GAAgB;AAAA,MACpC,YAAY;AAAA,MACZ,iBAAiB,CAAC,cAAc,OAAO;AAAA,IACzC,CAAC,GAGH,MAAa;AACX,MAAA,IAAY,IACZ,EAAG,WAAW,GACd,EAAc,WAAW,GACzB,EAAK,QAAQ,GACb,EAAQ,UAAU,MAClB,EAAS,UAAU,IACf,EAAO,cAAY,EAAO,WAAW,YAAY,CAAM;AAAA,IAC7D;AAAA,EACF,GAAG,CAAC,CAAY,CAAC,GAEV;AAAA,IAAE,SAAA;AAAA,IAAS,WAAA;AAAA,IAAW,UAAA;AAAA,EAAS;AACxC"}
1
+ {"version":3,"file":"usePixiApp.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePixiApp.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { PixiApp } from '../canvas/PixiApp';\nimport { resolveFlowThemeColors, refreshThemePalette, type FlowThemeColors } from '../utils/themeColor';\n\n/**\n * Manages PixiJS Application lifecycle: creates on mount, destroys on unmount,\n * handles container resize.\n *\n * The canvas backdrop follows the active DishUI theme (`--color-base-200`). We\n * resolve the theme color from the container's inherited CSS scope at init and\n * again whenever the ancestor `data-theme` attribute changes.\n */\nexport function usePixiApp(\n containerRef: React.RefObject<HTMLDivElement | null>,\n onThemeColors?: (colors: FlowThemeColors) => void,\n) {\n const pixiRef = useRef<PixiApp | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const readyRef = useRef(false);\n const onThemeColorsRef = useRef(onThemeColors);\n onThemeColorsRef.current = onThemeColors;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n let cancelled = false;\n\n const canvas = document.createElement('canvas');\n canvas.style.display = 'block';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n // Touch devices: the canvas owns all touch gestures (drag/pinch/pan); the\n // browser must not scroll or fire pointercancel mid-gesture.\n canvas.style.touchAction = 'none';\n container.appendChild(canvas);\n canvasRef.current = canvas;\n\n const pixi = new PixiApp();\n pixiRef.current = pixi;\n\n const rect = container.getBoundingClientRect();\n refreshThemePalette(container);\n const themeColors = resolveFlowThemeColors(container);\n pixi.init({\n canvas,\n width: rect.width,\n height: rect.height,\n backgroundColor: themeColors.background,\n }).then(() => {\n if (!cancelled) {\n readyRef.current = true;\n onThemeColorsRef.current?.(themeColors);\n }\n });\n\n const ro = new ResizeObserver((entries) => {\n if (pixi.destroyed) return;\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n pixi.resize(width, height);\n }\n }\n });\n ro.observe(container);\n\n // React to DishUI theme switches (the theme is applied via a `data-theme`\n // attribute on an ancestor element). Re-resolve the themed colors and push\n // them to the canvas + subscriber.\n const applyTheme = () => {\n if (pixi.destroyed) return;\n refreshThemePalette(container);\n const colors = resolveFlowThemeColors(container);\n pixi.setBackgroundColor(colors.background);\n onThemeColorsRef.current?.(colors);\n };\n const themeObserver = new MutationObserver(applyTheme);\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n // Also watch the closest themed ancestor, if any.\n const themedAncestor = container.closest('[data-theme]');\n if (themedAncestor) {\n themeObserver.observe(themedAncestor, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n }\n\n return () => {\n cancelled = true;\n ro.disconnect();\n themeObserver.disconnect();\n pixi.destroy();\n pixiRef.current = null;\n readyRef.current = false;\n if (canvas.parentNode) canvas.parentNode.removeChild(canvas);\n };\n }, [containerRef]);\n\n return { pixiRef, canvasRef, readyRef };\n}\n"],"mappings":";;;;AAYA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAU,EAAuB,IAAI,GACrC,IAAY,EAAiC,IAAI,GACjD,IAAW,EAAO,EAAK,GACvB,IAAmB,EAAO,CAAa;CAmF7C,OAlFA,EAAiB,UAAU,GAE3B,QAAgB;EACd,IAAM,IAAY,EAAa;EAC/B,IAAI,CAAC,GAAW;EAEhB,IAAI,IAAY,IAEV,IAAS,SAAS,cAAc,QAAQ;EAQ9C,AAPA,EAAO,MAAM,UAAU,SACvB,EAAO,MAAM,QAAQ,QACrB,EAAO,MAAM,SAAS,QAGtB,EAAO,MAAM,cAAc,QAC3B,EAAU,YAAY,CAAM,GAC5B,EAAU,UAAU;EAEpB,IAAM,IAAO,IAAI,EAAQ;EACzB,EAAQ,UAAU;EAElB,IAAM,IAAO,EAAU,sBAAsB;EAC7C,EAAoB,CAAS;EAC7B,IAAM,IAAc,EAAuB,CAAS;EACpD,EAAK,KAAK;GACR;GACA,OAAO,EAAK;GACZ,QAAQ,EAAK;GACb,iBAAiB,EAAY;EAC/B,CAAC,CAAC,CAAC,WAAW;GACZ,AAAK,MACH,EAAS,UAAU,IACnB,EAAiB,UAAU,CAAW;EAE1C,CAAC;EAED,IAAM,IAAK,IAAI,gBAAgB,MAAY;GACrC,OAAK,WACT,KAAK,IAAM,KAAS,GAAS;IAC3B,IAAM,EAAE,UAAO,cAAW,EAAM;IAChC,AAAI,IAAQ,KAAK,IAAS,KACxB,EAAK,OAAO,GAAO,CAAM;GAE7B;EACF,CAAC;EACD,EAAG,QAAQ,CAAS;EAYpB,IAAM,IAAgB,IAAI,uBAPD;GACvB,IAAI,EAAK,WAAW;GACpB,EAAoB,CAAS;GAC7B,IAAM,IAAS,EAAuB,CAAS;GAE/C,AADA,EAAK,mBAAmB,EAAO,UAAU,GACzC,EAAiB,UAAU,CAAM;EACnC,CACqD;EACrD,EAAc,QAAQ,SAAS,iBAAiB;GAC9C,YAAY;GACZ,iBAAiB,CAAC,cAAc,OAAO;EACzC,CAAC;EAED,IAAM,IAAiB,EAAU,QAAQ,cAAc;EAQvD,OAPI,KACF,EAAc,QAAQ,GAAgB;GACpC,YAAY;GACZ,iBAAiB,CAAC,cAAc,OAAO;EACzC,CAAC,SAGU;GAOX,AANA,IAAY,IACZ,EAAG,WAAW,GACd,EAAc,WAAW,GACzB,EAAK,QAAQ,GACb,EAAQ,UAAU,MAClB,EAAS,UAAU,IACf,EAAO,cAAY,EAAO,WAAW,YAAY,CAAM;EAC7D;CACF,GAAG,CAAC,CAAY,CAAC,GAEV;EAAE;EAAS;EAAW;CAAS;AACxC"}
@@ -1,34 +1,34 @@
1
- import { useCallback as a, useRef as h, useState as w } from "react";
2
- function X(c, e, i = 120, l = 600) {
3
- const [o, u] = w(null), n = h(null), p = a((t) => {
4
- t.preventDefault(), t.stopPropagation(), t.target.setPointerCapture(t.pointerId);
5
- const r = t.currentTarget.closest("[data-flow-panel]"), s = r ? r.getBoundingClientRect().width : o ?? e;
6
- n.current = {
7
- startX: t.clientX,
8
- startWidth: s
9
- };
10
- }, [o, e]), d = a((t) => {
11
- if (!n.current) return;
12
- const r = t.clientX - n.current.startX, s = c === "right" ? 1 : -1, g = Math.max(i, Math.min(l, n.current.startWidth + r * s));
13
- u(g);
14
- }, [
15
- c,
16
- i,
17
- l
18
- ]), P = a(() => {
19
- n.current = null;
20
- }, []);
21
- return {
22
- panelWidth: o ?? e,
23
- resizeHandleProps: {
24
- onPointerDown: p,
25
- onPointerMove: d,
26
- onPointerUp: P
27
- }
28
- };
1
+ import { useCallback as e, useRef as t, useState as n } from "react";
2
+ //#region src/components/pro/Flow/hooks/useResizablePanel.ts
3
+ function r(r, i, a = 120, o = 600) {
4
+ let [s, c] = n(null), l = t(null), u = e((e) => {
5
+ e.preventDefault(), e.stopPropagation(), e.target.setPointerCapture(e.pointerId);
6
+ let t = e.currentTarget.closest("[data-flow-panel]"), n = t ? t.getBoundingClientRect().width : s ?? i;
7
+ l.current = {
8
+ startX: e.clientX,
9
+ startWidth: n
10
+ };
11
+ }, [s, i]), d = e((e) => {
12
+ if (!l.current) return;
13
+ let t = e.clientX - l.current.startX, n = r === "right" ? 1 : -1, i = Math.max(a, Math.min(o, l.current.startWidth + t * n));
14
+ c(i);
15
+ }, [
16
+ r,
17
+ a,
18
+ o
19
+ ]), f = e(() => {
20
+ l.current = null;
21
+ }, []);
22
+ return {
23
+ panelWidth: s ?? i,
24
+ resizeHandleProps: {
25
+ onPointerDown: u,
26
+ onPointerMove: d,
27
+ onPointerUp: f
28
+ }
29
+ };
29
30
  }
30
- export {
31
- X as useResizablePanel
32
- };
31
+ //#endregion
32
+ export { r as useResizablePanel };
33
33
 
34
34
  //# sourceMappingURL=useResizablePanel.js.map