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,239 +1,239 @@
1
- import { useCallback as M, useEffect as g, useRef as B, useState as w } from "react";
2
- import { jsx as t, jsxs as c } from "react/jsx-runtime";
3
- function L() {
4
- return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
1
+ import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
2
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
+ //#region src/components/pro/RichTextEditor/CommentPopover.tsx
4
+ function o() {
5
+ return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
5
6
  }
6
- function W(s) {
7
- const m = Date.now() - s, a = Math.floor(m / 1e3);
8
- if (a < 60) return "just now";
9
- const d = Math.floor(a / 60);
10
- if (d < 60) return `${d}m ago`;
11
- const u = Math.floor(d / 60);
12
- return u < 24 ? `${u}h ago` : `${Math.floor(u / 24)}d ago`;
7
+ function s(e) {
8
+ let t = Date.now() - e, n = Math.floor(t / 1e3);
9
+ if (n < 60) return "just now";
10
+ let r = Math.floor(n / 60);
11
+ if (r < 60) return `${r}m ago`;
12
+ let i = Math.floor(r / 60);
13
+ return i < 24 ? `${i}h ago` : `${Math.floor(i / 24)}d ago`;
13
14
  }
14
- var z = ({ editor: s, threads: m, onThreadsChange: a, showPanel: d, onOpenPanel: u, onScrollToThread: k, currentUser: b = "User" }) => {
15
- const [n, i] = w(null), [N, A] = w({
16
- x: 0,
17
- y: 0
18
- }), [p, f] = w(""), h = B(null), v = B(null);
19
- g(() => {
20
- const e = s.view.dom, r = (o) => {
21
- const l = o.target.closest(".rte-comment-mark");
22
- if (!l) {
23
- i(null);
24
- return;
25
- }
26
- const y = l.getAttribute("data-comment-id");
27
- if (!y) return;
28
- const _ = m.find((D) => D.id === y);
29
- if (!_ || _.resolved) return;
30
- if (d) {
31
- k(y), i(null);
32
- return;
33
- }
34
- const C = e.closest(".rte-editor-wrapper");
35
- if (!C) return;
36
- const E = C.getBoundingClientRect(), x = l.getBoundingClientRect();
37
- A({
38
- x: x.left - E.left + x.width / 2,
39
- y: x.bottom - E.top + 6
40
- }), i(_), f("");
41
- };
42
- return e.addEventListener("click", r), () => e.removeEventListener("click", r);
43
- }, [
44
- s,
45
- m,
46
- d,
47
- k
48
- ]), g(() => {
49
- if (!n) return;
50
- const e = (r) => {
51
- h.current && !h.current.contains(r.target) && i(null);
52
- };
53
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
54
- }, [n]), g(() => {
55
- n && v.current && v.current.focus();
56
- }, [n]);
57
- const $ = M(() => {
58
- n && (a(m.map((e) => e.id !== n.id ? e : (s.state.doc.descendants((r, o) => {
59
- r.marks.forEach((l) => {
60
- l.type.name === "comment" && l.attrs.commentId === n.id && s.view.dispatch(s.state.tr.removeMark(o, o + r.nodeSize, l).addMark(o, o + r.nodeSize, l.type.create({
61
- ...l.attrs,
62
- resolved: !0
63
- })));
64
- });
65
- }), {
66
- ...e,
67
- resolved: !0
68
- }))), i(null));
69
- }, [
70
- n,
71
- s,
72
- m,
73
- a
74
- ]), R = M(() => {
75
- if (!n || !p.trim()) return;
76
- const e = {
77
- id: L(),
78
- author: b,
79
- text: p.trim(),
80
- createdAt: Date.now()
81
- }, r = m.map((o) => o.id === n.id ? {
82
- ...o,
83
- comments: [...o.comments, e]
84
- } : o);
85
- a(r), i(r.find((o) => o.id === n.id) || null), f("");
86
- }, [
87
- n,
88
- p,
89
- m,
90
- a,
91
- b
92
- ]);
93
- return n ? /* @__PURE__ */ c("div", {
94
- ref: h,
95
- className: "rte-comment-popover",
96
- style: {
97
- left: N.x,
98
- top: N.y
99
- },
100
- children: [
101
- /* @__PURE__ */ c("div", {
102
- className: "rte-comment-popover__header",
103
- children: [/* @__PURE__ */ t("span", {
104
- className: "rte-comment-popover__status",
105
- children: "Open"
106
- }), /* @__PURE__ */ c("div", {
107
- className: "rte-comment-popover__actions",
108
- children: [
109
- /* @__PURE__ */ t("button", {
110
- type: "button",
111
- className: "rte-comments__icon-btn",
112
- onClick: $,
113
- title: "Resolve",
114
- children: /* @__PURE__ */ t("svg", {
115
- width: "14",
116
- height: "14",
117
- viewBox: "0 0 24 24",
118
- fill: "none",
119
- stroke: "currentColor",
120
- strokeWidth: "2",
121
- children: /* @__PURE__ */ t("polyline", { points: "20 6 9 17 4 12" })
122
- })
123
- }),
124
- /* @__PURE__ */ t("button", {
125
- type: "button",
126
- className: "rte-comments__icon-btn",
127
- onClick: () => {
128
- u(), i(null);
129
- },
130
- title: "Open panel",
131
- children: /* @__PURE__ */ c("svg", {
132
- width: "14",
133
- height: "14",
134
- viewBox: "0 0 24 24",
135
- fill: "none",
136
- stroke: "currentColor",
137
- strokeWidth: "2",
138
- children: [
139
- /* @__PURE__ */ t("polyline", { points: "15 3 21 3 21 9" }),
140
- /* @__PURE__ */ t("polyline", { points: "9 21 3 21 3 15" }),
141
- /* @__PURE__ */ t("line", {
142
- x1: "21",
143
- y1: "3",
144
- x2: "14",
145
- y2: "10"
146
- }),
147
- /* @__PURE__ */ t("line", {
148
- x1: "3",
149
- y1: "21",
150
- x2: "10",
151
- y2: "14"
152
- })
153
- ]
154
- })
155
- }),
156
- /* @__PURE__ */ t("button", {
157
- type: "button",
158
- className: "rte-comments__icon-btn",
159
- onClick: () => i(null),
160
- title: "Close",
161
- children: /* @__PURE__ */ c("svg", {
162
- width: "14",
163
- height: "14",
164
- viewBox: "0 0 24 24",
165
- fill: "none",
166
- stroke: "currentColor",
167
- strokeWidth: "2",
168
- children: [/* @__PURE__ */ t("line", {
169
- x1: "18",
170
- y1: "6",
171
- x2: "6",
172
- y2: "18"
173
- }), /* @__PURE__ */ t("line", {
174
- x1: "6",
175
- y1: "6",
176
- x2: "18",
177
- y2: "18"
178
- })]
179
- })
180
- })
181
- ]
182
- })]
183
- }),
184
- n.comments.map((e) => /* @__PURE__ */ c("div", {
185
- className: "rte-comment-popover__comment",
186
- children: [/* @__PURE__ */ c("div", {
187
- className: "rte-comments__comment-meta",
188
- children: [/* @__PURE__ */ t("span", {
189
- className: "rte-comments__author",
190
- children: e.author
191
- }), /* @__PURE__ */ t("span", {
192
- className: "rte-comments__time",
193
- children: W(e.createdAt)
194
- })]
195
- }), /* @__PURE__ */ t("div", {
196
- className: "rte-comments__comment-text",
197
- children: e.text
198
- })]
199
- }, e.id)),
200
- /* @__PURE__ */ c("div", {
201
- className: "rte-comment-popover__reply",
202
- children: [/* @__PURE__ */ t("input", {
203
- ref: v,
204
- className: "rte-comments__reply-input",
205
- value: p,
206
- onChange: (e) => f(e.target.value),
207
- onKeyDown: (e) => {
208
- e.key === "Enter" && R(), e.key === "Escape" && i(null);
209
- },
210
- placeholder: "Reply..."
211
- }), /* @__PURE__ */ t("button", {
212
- type: "button",
213
- className: "rte-comments__reply-send",
214
- onClick: R,
215
- disabled: !p.trim(),
216
- children: /* @__PURE__ */ c("svg", {
217
- width: "12",
218
- height: "12",
219
- viewBox: "0 0 24 24",
220
- fill: "none",
221
- stroke: "currentColor",
222
- strokeWidth: "2",
223
- children: [/* @__PURE__ */ t("line", {
224
- x1: "22",
225
- y1: "2",
226
- x2: "11",
227
- y2: "13"
228
- }), /* @__PURE__ */ t("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })]
229
- })
230
- })]
231
- })
232
- ]
233
- }) : null;
234
- };
235
- export {
236
- z as default
15
+ var c = ({ editor: c, threads: l, onThreadsChange: u, showPanel: d, onOpenPanel: f, onScrollToThread: p, currentUser: m = "User" }) => {
16
+ let [h, g] = r(null), [_, v] = r({
17
+ x: 0,
18
+ y: 0
19
+ }), [y, b] = r(""), x = n(null), S = n(null);
20
+ t(() => {
21
+ let e = c.view.dom, t = (t) => {
22
+ let n = t.target.closest(".rte-comment-mark");
23
+ if (!n) {
24
+ g(null);
25
+ return;
26
+ }
27
+ let r = n.getAttribute("data-comment-id");
28
+ if (!r) return;
29
+ let i = l.find((e) => e.id === r);
30
+ if (!i || i.resolved) return;
31
+ if (d) {
32
+ p(r), g(null);
33
+ return;
34
+ }
35
+ let a = e.closest(".rte-editor-wrapper");
36
+ if (!a) return;
37
+ let o = a.getBoundingClientRect(), s = n.getBoundingClientRect();
38
+ v({
39
+ x: s.left - o.left + s.width / 2,
40
+ y: s.bottom - o.top + 6
41
+ }), g(i), b("");
42
+ };
43
+ return e.addEventListener("click", t), () => e.removeEventListener("click", t);
44
+ }, [
45
+ c,
46
+ l,
47
+ d,
48
+ p
49
+ ]), t(() => {
50
+ if (!h) return;
51
+ let e = (e) => {
52
+ x.current && !x.current.contains(e.target) && g(null);
53
+ };
54
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
55
+ }, [h]), t(() => {
56
+ h && S.current && S.current.focus();
57
+ }, [h]);
58
+ let C = e(() => {
59
+ h && (u(l.map((e) => e.id === h.id ? (c.state.doc.descendants((e, t) => {
60
+ e.marks.forEach((n) => {
61
+ n.type.name === "comment" && n.attrs.commentId === h.id && c.view.dispatch(c.state.tr.removeMark(t, t + e.nodeSize, n).addMark(t, t + e.nodeSize, n.type.create({
62
+ ...n.attrs,
63
+ resolved: !0
64
+ })));
65
+ });
66
+ }), {
67
+ ...e,
68
+ resolved: !0
69
+ }) : e)), g(null));
70
+ }, [
71
+ h,
72
+ c,
73
+ l,
74
+ u
75
+ ]), w = e(() => {
76
+ if (!h || !y.trim()) return;
77
+ let e = {
78
+ id: o(),
79
+ author: m,
80
+ text: y.trim(),
81
+ createdAt: Date.now()
82
+ }, t = l.map((t) => t.id === h.id ? {
83
+ ...t,
84
+ comments: [...t.comments, e]
85
+ } : t);
86
+ u(t), g(t.find((e) => e.id === h.id) || null), b("");
87
+ }, [
88
+ h,
89
+ y,
90
+ l,
91
+ u,
92
+ m
93
+ ]);
94
+ return h ? /* @__PURE__ */ a("div", {
95
+ ref: x,
96
+ className: "rte-comment-popover",
97
+ style: {
98
+ left: _.x,
99
+ top: _.y
100
+ },
101
+ children: [
102
+ /* @__PURE__ */ a("div", {
103
+ className: "rte-comment-popover__header",
104
+ children: [/* @__PURE__ */ i("span", {
105
+ className: "rte-comment-popover__status",
106
+ children: "Open"
107
+ }), /* @__PURE__ */ a("div", {
108
+ className: "rte-comment-popover__actions",
109
+ children: [
110
+ /* @__PURE__ */ i("button", {
111
+ type: "button",
112
+ className: "rte-comments__icon-btn",
113
+ onClick: C,
114
+ title: "Resolve",
115
+ children: /* @__PURE__ */ i("svg", {
116
+ width: "14",
117
+ height: "14",
118
+ viewBox: "0 0 24 24",
119
+ fill: "none",
120
+ stroke: "currentColor",
121
+ strokeWidth: "2",
122
+ children: /* @__PURE__ */ i("polyline", { points: "20 6 9 17 4 12" })
123
+ })
124
+ }),
125
+ /* @__PURE__ */ i("button", {
126
+ type: "button",
127
+ className: "rte-comments__icon-btn",
128
+ onClick: () => {
129
+ f(), g(null);
130
+ },
131
+ title: "Open panel",
132
+ children: /* @__PURE__ */ a("svg", {
133
+ width: "14",
134
+ height: "14",
135
+ viewBox: "0 0 24 24",
136
+ fill: "none",
137
+ stroke: "currentColor",
138
+ strokeWidth: "2",
139
+ children: [
140
+ /* @__PURE__ */ i("polyline", { points: "15 3 21 3 21 9" }),
141
+ /* @__PURE__ */ i("polyline", { points: "9 21 3 21 3 15" }),
142
+ /* @__PURE__ */ i("line", {
143
+ x1: "21",
144
+ y1: "3",
145
+ x2: "14",
146
+ y2: "10"
147
+ }),
148
+ /* @__PURE__ */ i("line", {
149
+ x1: "3",
150
+ y1: "21",
151
+ x2: "10",
152
+ y2: "14"
153
+ })
154
+ ]
155
+ })
156
+ }),
157
+ /* @__PURE__ */ i("button", {
158
+ type: "button",
159
+ className: "rte-comments__icon-btn",
160
+ onClick: () => g(null),
161
+ title: "Close",
162
+ children: /* @__PURE__ */ a("svg", {
163
+ width: "14",
164
+ height: "14",
165
+ viewBox: "0 0 24 24",
166
+ fill: "none",
167
+ stroke: "currentColor",
168
+ strokeWidth: "2",
169
+ children: [/* @__PURE__ */ i("line", {
170
+ x1: "18",
171
+ y1: "6",
172
+ x2: "6",
173
+ y2: "18"
174
+ }), /* @__PURE__ */ i("line", {
175
+ x1: "6",
176
+ y1: "6",
177
+ x2: "18",
178
+ y2: "18"
179
+ })]
180
+ })
181
+ })
182
+ ]
183
+ })]
184
+ }),
185
+ h.comments.map((e) => /* @__PURE__ */ a("div", {
186
+ className: "rte-comment-popover__comment",
187
+ children: [/* @__PURE__ */ a("div", {
188
+ className: "rte-comments__comment-meta",
189
+ children: [/* @__PURE__ */ i("span", {
190
+ className: "rte-comments__author",
191
+ children: e.author
192
+ }), /* @__PURE__ */ i("span", {
193
+ className: "rte-comments__time",
194
+ children: s(e.createdAt)
195
+ })]
196
+ }), /* @__PURE__ */ i("div", {
197
+ className: "rte-comments__comment-text",
198
+ children: e.text
199
+ })]
200
+ }, e.id)),
201
+ /* @__PURE__ */ a("div", {
202
+ className: "rte-comment-popover__reply",
203
+ children: [/* @__PURE__ */ i("input", {
204
+ ref: S,
205
+ className: "rte-comments__reply-input",
206
+ value: y,
207
+ onChange: (e) => b(e.target.value),
208
+ onKeyDown: (e) => {
209
+ e.key === "Enter" && w(), e.key === "Escape" && g(null);
210
+ },
211
+ placeholder: "Reply..."
212
+ }), /* @__PURE__ */ i("button", {
213
+ type: "button",
214
+ className: "rte-comments__reply-send",
215
+ onClick: w,
216
+ disabled: !y.trim(),
217
+ children: /* @__PURE__ */ a("svg", {
218
+ width: "12",
219
+ height: "12",
220
+ viewBox: "0 0 24 24",
221
+ fill: "none",
222
+ stroke: "currentColor",
223
+ strokeWidth: "2",
224
+ children: [/* @__PURE__ */ i("line", {
225
+ x1: "22",
226
+ y1: "2",
227
+ x2: "11",
228
+ y2: "13"
229
+ }), /* @__PURE__ */ i("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })]
230
+ })
231
+ })]
232
+ })
233
+ ]
234
+ }) : null;
237
235
  };
236
+ //#endregion
237
+ export { c as default };
238
238
 
239
239
  //# sourceMappingURL=CommentPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentPopover.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/CommentPopover.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { CommentThread, CommentItem } from './extensions/CommentMark';\n\nfunction generateId() {\n return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\n}\n\nfunction timeAgo(ts: number): string {\n const diff = Date.now() - ts;\n const sec = Math.floor(diff / 1000);\n if (sec < 60) return 'just now';\n const min = Math.floor(sec / 60);\n if (min < 60) return `${min}m ago`;\n const hr = Math.floor(min / 60);\n if (hr < 24) return `${hr}h ago`;\n const d = Math.floor(hr / 24);\n return `${d}d ago`;\n}\n\ninterface CommentPopoverProps {\n editor: Editor;\n threads: CommentThread[];\n onThreadsChange: (threads: CommentThread[]) => void;\n showPanel: boolean;\n onOpenPanel: () => void;\n onScrollToThread: (id: string) => void;\n currentUser?: string;\n}\n\nconst CommentPopover: React.FC<CommentPopoverProps> = ({\n editor,\n threads,\n onThreadsChange,\n showPanel,\n onOpenPanel,\n onScrollToThread,\n currentUser = 'User',\n}) => {\n const [activeThread, setActiveThread] = useState<CommentThread | null>(null);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const [replyText, setReplyText] = useState('');\n const popRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n const dom = editor.view.dom;\n const handleClick = (e: Event) => {\n const target = e.target as HTMLElement;\n const commentEl = target.closest('.rte-comment-mark') as HTMLElement | null;\n if (!commentEl) { setActiveThread(null); return; }\n\n const commentId = commentEl.getAttribute('data-comment-id');\n if (!commentId) return;\n\n const thread = threads.find((t) => t.id === commentId);\n if (!thread || thread.resolved) return;\n\n if (showPanel) {\n onScrollToThread(commentId);\n setActiveThread(null);\n return;\n }\n\n const wrapperEl = dom.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const wRect = wrapperEl.getBoundingClientRect();\n const elRect = commentEl.getBoundingClientRect();\n\n setPos({\n x: elRect.left - wRect.left + elRect.width / 2,\n y: elRect.bottom - wRect.top + 6,\n });\n setActiveThread(thread);\n setReplyText('');\n };\n\n dom.addEventListener('click', handleClick);\n return () => dom.removeEventListener('click', handleClick);\n }, [editor, threads, showPanel, onScrollToThread]);\n\n useEffect(() => {\n if (!activeThread) return;\n const handler = (e: MouseEvent) => {\n if (popRef.current && !popRef.current.contains(e.target as Node)) {\n setActiveThread(null);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [activeThread]);\n\n useEffect(() => {\n if (activeThread && inputRef.current) inputRef.current.focus();\n }, [activeThread]);\n\n const toggleResolve = useCallback(() => {\n if (!activeThread) return;\n const updated = threads.map((t) => {\n if (t.id !== activeThread.id) return t;\n editor.state.doc.descendants((node, pos) => {\n node.marks.forEach((mark) => {\n if (mark.type.name === 'comment' && mark.attrs.commentId === activeThread.id) {\n editor.view.dispatch(\n editor.state.tr\n .removeMark(pos, pos + node.nodeSize, mark)\n .addMark(pos, pos + node.nodeSize, mark.type.create({ ...mark.attrs, resolved: true }))\n );\n }\n });\n });\n return { ...t, resolved: true };\n });\n onThreadsChange(updated);\n setActiveThread(null);\n }, [activeThread, editor, threads, onThreadsChange]);\n\n const addReply = useCallback(() => {\n if (!activeThread || !replyText.trim()) return;\n const reply: CommentItem = {\n id: generateId(),\n author: currentUser,\n text: replyText.trim(),\n createdAt: Date.now(),\n };\n const updated = threads.map((t) =>\n t.id === activeThread.id ? { ...t, comments: [...t.comments, reply] } : t\n );\n onThreadsChange(updated);\n setActiveThread(updated.find((t) => t.id === activeThread.id) || null);\n setReplyText('');\n }, [activeThread, replyText, threads, onThreadsChange, currentUser]);\n\n if (!activeThread) return null;\n\n return (\n <div ref={popRef} className=\"rte-comment-popover\" style={{ left: pos.x, top: pos.y }}>\n <div className=\"rte-comment-popover__header\">\n <span className=\"rte-comment-popover__status\">Open</span>\n <div className=\"rte-comment-popover__actions\">\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={toggleResolve} title=\"Resolve\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"20 6 9 17 4 12\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => { onOpenPanel(); setActiveThread(null); }} title=\"Open panel\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"15 3 21 3 21 9\" /><polyline points=\"9 21 3 21 3 15\" /><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\" /><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => setActiveThread(null)} title=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>\n </button>\n </div>\n </div>\n\n {activeThread.comments.map((c) => (\n <div key={c.id} className=\"rte-comment-popover__comment\">\n <div className=\"rte-comments__comment-meta\">\n <span className=\"rte-comments__author\">{c.author}</span>\n <span className=\"rte-comments__time\">{timeAgo(c.createdAt)}</span>\n </div>\n <div className=\"rte-comments__comment-text\">{c.text}</div>\n </div>\n ))}\n\n <div className=\"rte-comment-popover__reply\">\n <input\n ref={inputRef}\n className=\"rte-comments__reply-input\"\n value={replyText}\n onChange={(e) => setReplyText(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') addReply();\n if (e.key === 'Escape') setActiveThread(null);\n }}\n placeholder=\"Reply...\"\n />\n <button type=\"button\" className=\"rte-comments__reply-send\" onClick={addReply} disabled={!replyText.trim()}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" /><polygon points=\"22 2 15 22 11 13 2 9 22 2\" /></svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport default CommentPopover;\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommentPopover.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/CommentPopover.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { CommentThread, CommentItem } from './extensions/CommentMark';\n\nfunction generateId() {\n return `c_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\n}\n\nfunction timeAgo(ts: number): string {\n const diff = Date.now() - ts;\n const sec = Math.floor(diff / 1000);\n if (sec < 60) return 'just now';\n const min = Math.floor(sec / 60);\n if (min < 60) return `${min}m ago`;\n const hr = Math.floor(min / 60);\n if (hr < 24) return `${hr}h ago`;\n const d = Math.floor(hr / 24);\n return `${d}d ago`;\n}\n\ninterface CommentPopoverProps {\n editor: Editor;\n threads: CommentThread[];\n onThreadsChange: (threads: CommentThread[]) => void;\n showPanel: boolean;\n onOpenPanel: () => void;\n onScrollToThread: (id: string) => void;\n currentUser?: string;\n}\n\nconst CommentPopover: React.FC<CommentPopoverProps> = ({\n editor,\n threads,\n onThreadsChange,\n showPanel,\n onOpenPanel,\n onScrollToThread,\n currentUser = 'User',\n}) => {\n const [activeThread, setActiveThread] = useState<CommentThread | null>(null);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const [replyText, setReplyText] = useState('');\n const popRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n const dom = editor.view.dom;\n const handleClick = (e: Event) => {\n const target = e.target as HTMLElement;\n const commentEl = target.closest('.rte-comment-mark') as HTMLElement | null;\n if (!commentEl) { setActiveThread(null); return; }\n\n const commentId = commentEl.getAttribute('data-comment-id');\n if (!commentId) return;\n\n const thread = threads.find((t) => t.id === commentId);\n if (!thread || thread.resolved) return;\n\n if (showPanel) {\n onScrollToThread(commentId);\n setActiveThread(null);\n return;\n }\n\n const wrapperEl = dom.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const wRect = wrapperEl.getBoundingClientRect();\n const elRect = commentEl.getBoundingClientRect();\n\n setPos({\n x: elRect.left - wRect.left + elRect.width / 2,\n y: elRect.bottom - wRect.top + 6,\n });\n setActiveThread(thread);\n setReplyText('');\n };\n\n dom.addEventListener('click', handleClick);\n return () => dom.removeEventListener('click', handleClick);\n }, [editor, threads, showPanel, onScrollToThread]);\n\n useEffect(() => {\n if (!activeThread) return;\n const handler = (e: MouseEvent) => {\n if (popRef.current && !popRef.current.contains(e.target as Node)) {\n setActiveThread(null);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [activeThread]);\n\n useEffect(() => {\n if (activeThread && inputRef.current) inputRef.current.focus();\n }, [activeThread]);\n\n const toggleResolve = useCallback(() => {\n if (!activeThread) return;\n const updated = threads.map((t) => {\n if (t.id !== activeThread.id) return t;\n editor.state.doc.descendants((node, pos) => {\n node.marks.forEach((mark) => {\n if (mark.type.name === 'comment' && mark.attrs.commentId === activeThread.id) {\n editor.view.dispatch(\n editor.state.tr\n .removeMark(pos, pos + node.nodeSize, mark)\n .addMark(pos, pos + node.nodeSize, mark.type.create({ ...mark.attrs, resolved: true }))\n );\n }\n });\n });\n return { ...t, resolved: true };\n });\n onThreadsChange(updated);\n setActiveThread(null);\n }, [activeThread, editor, threads, onThreadsChange]);\n\n const addReply = useCallback(() => {\n if (!activeThread || !replyText.trim()) return;\n const reply: CommentItem = {\n id: generateId(),\n author: currentUser,\n text: replyText.trim(),\n createdAt: Date.now(),\n };\n const updated = threads.map((t) =>\n t.id === activeThread.id ? { ...t, comments: [...t.comments, reply] } : t\n );\n onThreadsChange(updated);\n setActiveThread(updated.find((t) => t.id === activeThread.id) || null);\n setReplyText('');\n }, [activeThread, replyText, threads, onThreadsChange, currentUser]);\n\n if (!activeThread) return null;\n\n return (\n <div ref={popRef} className=\"rte-comment-popover\" style={{ left: pos.x, top: pos.y }}>\n <div className=\"rte-comment-popover__header\">\n <span className=\"rte-comment-popover__status\">Open</span>\n <div className=\"rte-comment-popover__actions\">\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={toggleResolve} title=\"Resolve\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"20 6 9 17 4 12\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => { onOpenPanel(); setActiveThread(null); }} title=\"Open panel\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><polyline points=\"15 3 21 3 21 9\" /><polyline points=\"9 21 3 21 3 15\" /><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\" /><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\" /></svg>\n </button>\n <button type=\"button\" className=\"rte-comments__icon-btn\" onClick={() => setActiveThread(null)} title=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>\n </button>\n </div>\n </div>\n\n {activeThread.comments.map((c) => (\n <div key={c.id} className=\"rte-comment-popover__comment\">\n <div className=\"rte-comments__comment-meta\">\n <span className=\"rte-comments__author\">{c.author}</span>\n <span className=\"rte-comments__time\">{timeAgo(c.createdAt)}</span>\n </div>\n <div className=\"rte-comments__comment-text\">{c.text}</div>\n </div>\n ))}\n\n <div className=\"rte-comment-popover__reply\">\n <input\n ref={inputRef}\n className=\"rte-comments__reply-input\"\n value={replyText}\n onChange={(e) => setReplyText(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') addReply();\n if (e.key === 'Escape') setActiveThread(null);\n }}\n placeholder=\"Reply...\"\n />\n <button type=\"button\" className=\"rte-comments__reply-send\" onClick={addReply} disabled={!replyText.trim()}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\" /><polygon points=\"22 2 15 22 11 13 2 9 22 2\" /></svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport default CommentPopover;\n"],"mappings":"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"}