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,255 +1,254 @@
1
- import { defaultLabels as R } from "./types.js";
2
- import { getNextFloatZIndex as k } from "./extensions/FloatingDialog.js";
3
- import { useCallback as v, useEffect as C, useRef as D, useState as y } from "react";
4
- import { jsx as f, jsxs as A } from "react/jsx-runtime";
5
- var $ = ({ editor: e, labels: x, onAIClick: d }) => {
6
- const n = {
7
- ...R,
8
- ...x
9
- }, [g, m] = y(!1), [u, b] = y({
10
- x: 0,
11
- y: 0
12
- }), h = D(null), t = v(() => m(!1), []);
13
- if (C(() => {
14
- const l = e.view.dom, c = (o) => {
15
- const i = o;
16
- i.preventDefault();
17
- const r = l.closest(".rte-editor-wrapper");
18
- if (!r) return;
19
- const s = r.getBoundingClientRect();
20
- b({
21
- x: i.clientX - s.left,
22
- y: i.clientY - s.top
23
- }), m(!0);
24
- };
25
- return l.addEventListener("contextmenu", c), document.addEventListener("mousedown", (o) => {
26
- h.current && !h.current.contains(o.target) && t();
27
- }), document.addEventListener("keydown", (o) => {
28
- o.key === "Escape" && t();
29
- }), () => {
30
- l.removeEventListener("contextmenu", c);
31
- };
32
- }, [e, t]), C(() => {
33
- if (!g || !h.current) return;
34
- const l = h.current, c = l.parentElement;
35
- if (!c) return;
36
- const o = c.getBoundingClientRect(), i = l.getBoundingClientRect();
37
- let { x: r, y: s } = u;
38
- r + i.width > o.width && (r = Math.max(0, o.width - i.width - 4)), s + i.height > o.height && (s = Math.max(0, s - i.height)), (r !== u.x || s !== u.y) && b({
39
- x: r,
40
- y: s
41
- });
42
- }, [g]), !g) return null;
43
- const p = e.state.selection.from !== e.state.selection.to, w = e.isActive("table"), a = [
44
- {
45
- label: "Cut",
46
- shortcut: "⌘X",
47
- action: () => {
48
- document.execCommand("cut"), t();
49
- },
50
- disabled: !p
51
- },
52
- {
53
- label: "Copy",
54
- shortcut: "⌘C",
55
- action: () => {
56
- document.execCommand("copy"), t();
57
- },
58
- disabled: !p
59
- },
60
- {
61
- label: "Paste",
62
- shortcut: "⌘V",
63
- action: () => {
64
- document.execCommand("paste"), t();
65
- }
66
- },
67
- {
68
- label: "Select All",
69
- shortcut: "⌘A",
70
- action: () => {
71
- e.chain().focus().selectAll().run(), t();
72
- }
73
- },
74
- "divider",
75
- {
76
- label: n.bold || "Bold",
77
- shortcut: "⌘B",
78
- action: () => {
79
- e.chain().focus().toggleBold().run(), t();
80
- }
81
- },
82
- {
83
- label: n.italic || "Italic",
84
- shortcut: "⌘I",
85
- action: () => {
86
- e.chain().focus().toggleItalic().run(), t();
87
- }
88
- },
89
- {
90
- label: n.underline || "Underline",
91
- shortcut: "⌘U",
92
- action: () => {
93
- e.chain().focus().toggleUnderline().run(), t();
94
- }
95
- },
96
- {
97
- label: n.strikethrough || "Strikethrough",
98
- action: () => {
99
- e.chain().focus().toggleStrike().run(), t();
100
- }
101
- },
102
- "divider",
103
- {
104
- label: n.link || "Insert Link",
105
- action: () => {
106
- const l = window.prompt(n.insertLinkUrl || "Enter URL");
107
- l && e.chain().focus().setLink({ href: l }).run(), t();
108
- }
109
- },
110
- {
111
- label: n.image || "Insert Image",
112
- action: () => {
113
- const l = window.prompt(n.insertImageUrl || "Enter image URL");
114
- l && e.chain().focus().setImage({ src: l }).run(), t();
115
- }
116
- },
117
- {
118
- label: n.codeBlock || "Code Block",
119
- action: () => {
120
- e.chain().focus().toggleNode("codeBlock", "paragraph").run(), t();
121
- }
122
- },
123
- {
124
- label: n.blockquote || "Blockquote",
125
- action: () => {
126
- e.chain().focus().toggleBlockquote().run(), t();
127
- }
128
- },
129
- {
130
- label: n.horizontalRule || "Horizontal Rule",
131
- action: () => {
132
- e.chain().focus().setHorizontalRule().run(), t();
133
- }
134
- },
135
- {
136
- label: `${n.floatingDialog || "Floating Dialog"} — ${n.layoutBlock || "Block"}`,
137
- action: () => {
138
- e.chain().focus().insertContent({
139
- type: "floatingDialog",
140
- attrs: {
141
- title: "Note",
142
- layout: "block"
143
- },
144
- content: [{ type: "paragraph" }]
145
- }).run(), t();
146
- }
147
- },
148
- {
149
- label: `${n.floatingDialog || "Floating Dialog"} — ${n.layoutWrapLeft || "Wrap Left"}`,
150
- action: () => {
151
- e.chain().focus().insertContent({
152
- type: "floatingDialog",
153
- attrs: {
154
- title: "Note",
155
- layout: "wrap-left",
156
- width: 240
157
- },
158
- content: [{ type: "paragraph" }]
159
- }).run(), t();
160
- }
161
- },
162
- {
163
- label: `${n.floatingDialog || "Floating Dialog"} — ${n.layoutWrapRight || "Wrap Right"}`,
164
- action: () => {
165
- e.chain().focus().insertContent({
166
- type: "floatingDialog",
167
- attrs: {
168
- title: "Note",
169
- layout: "wrap-right",
170
- width: 240
171
- },
172
- content: [{ type: "paragraph" }]
173
- }).run(), t();
174
- }
175
- },
176
- {
177
- label: `${n.floatingDialog || "Floating Dialog"} — ${n.layoutFloat || "Float"}`,
178
- action: () => {
179
- e.chain().focus().insertContent({
180
- type: "floatingDialog",
181
- attrs: {
182
- title: "Note",
183
- layout: "float",
184
- x: 40,
185
- y: 40,
186
- zIndex: k(e)
187
- },
188
- content: [{ type: "paragraph" }]
189
- }).run(), t();
190
- }
191
- }
192
- ];
193
- return w && (a.push("divider"), a.push({
194
- label: n.tableAddRowAfter || "Add Row After",
195
- action: () => {
196
- e.chain().focus().addRowAfter().run(), t();
197
- }
198
- }), a.push({
199
- label: n.tableAddColumnAfter || "Add Column After",
200
- action: () => {
201
- e.chain().focus().addColumnAfter().run(), t();
202
- }
203
- }), a.push({
204
- label: n.tableDeleteRow || "Delete Row",
205
- action: () => {
206
- e.chain().focus().deleteRow().run(), t();
207
- }
208
- }), a.push({
209
- label: n.tableDeleteColumn || "Delete Column",
210
- action: () => {
211
- e.chain().focus().deleteColumn().run(), t();
212
- }
213
- }), a.push({
214
- label: n.tableMergeCells || "Merge Cells",
215
- action: () => {
216
- e.chain().focus().mergeCells().run(), t();
217
- }
218
- }), a.push({
219
- label: n.tableSplitCell || "Split Cell",
220
- action: () => {
221
- e.chain().focus().splitCell().run(), t();
222
- }
223
- })), d && (a.push("divider"), a.push({
224
- label: `✨ ${n.ai || "AI Assistant"}`,
225
- action: () => {
226
- d(), t();
227
- },
228
- disabled: !p
229
- })), /* @__PURE__ */ f("div", {
230
- ref: h,
231
- className: "rte-context-menu",
232
- style: {
233
- left: u.x,
234
- top: u.y
235
- },
236
- children: a.map((l, c) => l === "divider" ? /* @__PURE__ */ f("div", { className: "rte-context-menu__divider" }, `d-${c}`) : /* @__PURE__ */ A("button", {
237
- type: "button",
238
- className: "rte-context-menu__item",
239
- onClick: l.action,
240
- disabled: l.disabled,
241
- children: [/* @__PURE__ */ f("span", {
242
- className: "rte-context-menu__label",
243
- children: l.label
244
- }), l.shortcut && /* @__PURE__ */ f("span", {
245
- className: "rte-context-menu__shortcut",
246
- children: l.shortcut
247
- })]
248
- }, c))
249
- });
250
- };
251
- export {
252
- $ as default
1
+ import { defaultLabels as e } from "./types.js";
2
+ import { getNextFloatZIndex as t } from "./extensions/FloatingDialog.js";
3
+ import { useCallback as n, useEffect as r, useRef as i, useState as a } from "react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ //#region src/components/pro/RichTextEditor/ContextMenu.tsx
6
+ var c = ({ editor: c, labels: l, onAIClick: u }) => {
7
+ let d = {
8
+ ...e,
9
+ ...l
10
+ }, [f, p] = a(!1), [m, h] = a({
11
+ x: 0,
12
+ y: 0
13
+ }), g = i(null), _ = n(() => p(!1), []);
14
+ if (r(() => {
15
+ let e = c.view.dom, t = (t) => {
16
+ let n = t;
17
+ n.preventDefault();
18
+ let r = e.closest(".rte-editor-wrapper");
19
+ if (!r) return;
20
+ let i = r.getBoundingClientRect();
21
+ h({
22
+ x: n.clientX - i.left,
23
+ y: n.clientY - i.top
24
+ }), p(!0);
25
+ };
26
+ return e.addEventListener("contextmenu", t), document.addEventListener("mousedown", (e) => {
27
+ g.current && !g.current.contains(e.target) && _();
28
+ }), document.addEventListener("keydown", (e) => {
29
+ e.key === "Escape" && _();
30
+ }), () => {
31
+ e.removeEventListener("contextmenu", t);
32
+ };
33
+ }, [c, _]), r(() => {
34
+ if (!f || !g.current) return;
35
+ let e = g.current, t = e.parentElement;
36
+ if (!t) return;
37
+ let n = t.getBoundingClientRect(), r = e.getBoundingClientRect(), { x: i, y: a } = m;
38
+ i + r.width > n.width && (i = Math.max(0, n.width - r.width - 4)), a + r.height > n.height && (a = Math.max(0, a - r.height)), (i !== m.x || a !== m.y) && h({
39
+ x: i,
40
+ y: a
41
+ });
42
+ }, [f]), !f) return null;
43
+ let v = c.state.selection.from !== c.state.selection.to, y = c.isActive("table"), b = [
44
+ {
45
+ label: "Cut",
46
+ shortcut: "⌘X",
47
+ action: () => {
48
+ document.execCommand("cut"), _();
49
+ },
50
+ disabled: !v
51
+ },
52
+ {
53
+ label: "Copy",
54
+ shortcut: "⌘C",
55
+ action: () => {
56
+ document.execCommand("copy"), _();
57
+ },
58
+ disabled: !v
59
+ },
60
+ {
61
+ label: "Paste",
62
+ shortcut: "⌘V",
63
+ action: () => {
64
+ document.execCommand("paste"), _();
65
+ }
66
+ },
67
+ {
68
+ label: "Select All",
69
+ shortcut: "⌘A",
70
+ action: () => {
71
+ c.chain().focus().selectAll().run(), _();
72
+ }
73
+ },
74
+ "divider",
75
+ {
76
+ label: d.bold || "Bold",
77
+ shortcut: "⌘B",
78
+ action: () => {
79
+ c.chain().focus().toggleBold().run(), _();
80
+ }
81
+ },
82
+ {
83
+ label: d.italic || "Italic",
84
+ shortcut: "⌘I",
85
+ action: () => {
86
+ c.chain().focus().toggleItalic().run(), _();
87
+ }
88
+ },
89
+ {
90
+ label: d.underline || "Underline",
91
+ shortcut: "⌘U",
92
+ action: () => {
93
+ c.chain().focus().toggleUnderline().run(), _();
94
+ }
95
+ },
96
+ {
97
+ label: d.strikethrough || "Strikethrough",
98
+ action: () => {
99
+ c.chain().focus().toggleStrike().run(), _();
100
+ }
101
+ },
102
+ "divider",
103
+ {
104
+ label: d.link || "Insert Link",
105
+ action: () => {
106
+ let e = window.prompt(d.insertLinkUrl || "Enter URL");
107
+ e && c.chain().focus().setLink({ href: e }).run(), _();
108
+ }
109
+ },
110
+ {
111
+ label: d.image || "Insert Image",
112
+ action: () => {
113
+ let e = window.prompt(d.insertImageUrl || "Enter image URL");
114
+ e && c.chain().focus().setImage({ src: e }).run(), _();
115
+ }
116
+ },
117
+ {
118
+ label: d.codeBlock || "Code Block",
119
+ action: () => {
120
+ c.chain().focus().toggleNode("codeBlock", "paragraph").run(), _();
121
+ }
122
+ },
123
+ {
124
+ label: d.blockquote || "Blockquote",
125
+ action: () => {
126
+ c.chain().focus().toggleBlockquote().run(), _();
127
+ }
128
+ },
129
+ {
130
+ label: d.horizontalRule || "Horizontal Rule",
131
+ action: () => {
132
+ c.chain().focus().setHorizontalRule().run(), _();
133
+ }
134
+ },
135
+ {
136
+ label: `${d.floatingDialog || "Floating Dialog"} — ${d.layoutBlock || "Block"}`,
137
+ action: () => {
138
+ c.chain().focus().insertContent({
139
+ type: "floatingDialog",
140
+ attrs: {
141
+ title: "Note",
142
+ layout: "block"
143
+ },
144
+ content: [{ type: "paragraph" }]
145
+ }).run(), _();
146
+ }
147
+ },
148
+ {
149
+ label: `${d.floatingDialog || "Floating Dialog"} — ${d.layoutWrapLeft || "Wrap Left"}`,
150
+ action: () => {
151
+ c.chain().focus().insertContent({
152
+ type: "floatingDialog",
153
+ attrs: {
154
+ title: "Note",
155
+ layout: "wrap-left",
156
+ width: 240
157
+ },
158
+ content: [{ type: "paragraph" }]
159
+ }).run(), _();
160
+ }
161
+ },
162
+ {
163
+ label: `${d.floatingDialog || "Floating Dialog"} — ${d.layoutWrapRight || "Wrap Right"}`,
164
+ action: () => {
165
+ c.chain().focus().insertContent({
166
+ type: "floatingDialog",
167
+ attrs: {
168
+ title: "Note",
169
+ layout: "wrap-right",
170
+ width: 240
171
+ },
172
+ content: [{ type: "paragraph" }]
173
+ }).run(), _();
174
+ }
175
+ },
176
+ {
177
+ label: `${d.floatingDialog || "Floating Dialog"} — ${d.layoutFloat || "Float"}`,
178
+ action: () => {
179
+ c.chain().focus().insertContent({
180
+ type: "floatingDialog",
181
+ attrs: {
182
+ title: "Note",
183
+ layout: "float",
184
+ x: 40,
185
+ y: 40,
186
+ zIndex: t(c)
187
+ },
188
+ content: [{ type: "paragraph" }]
189
+ }).run(), _();
190
+ }
191
+ }
192
+ ];
193
+ return y && (b.push("divider"), b.push({
194
+ label: d.tableAddRowAfter || "Add Row After",
195
+ action: () => {
196
+ c.chain().focus().addRowAfter().run(), _();
197
+ }
198
+ }), b.push({
199
+ label: d.tableAddColumnAfter || "Add Column After",
200
+ action: () => {
201
+ c.chain().focus().addColumnAfter().run(), _();
202
+ }
203
+ }), b.push({
204
+ label: d.tableDeleteRow || "Delete Row",
205
+ action: () => {
206
+ c.chain().focus().deleteRow().run(), _();
207
+ }
208
+ }), b.push({
209
+ label: d.tableDeleteColumn || "Delete Column",
210
+ action: () => {
211
+ c.chain().focus().deleteColumn().run(), _();
212
+ }
213
+ }), b.push({
214
+ label: d.tableMergeCells || "Merge Cells",
215
+ action: () => {
216
+ c.chain().focus().mergeCells().run(), _();
217
+ }
218
+ }), b.push({
219
+ label: d.tableSplitCell || "Split Cell",
220
+ action: () => {
221
+ c.chain().focus().splitCell().run(), _();
222
+ }
223
+ })), u && (b.push("divider"), b.push({
224
+ label: `✨ ${d.ai || "AI Assistant"}`,
225
+ action: () => {
226
+ u(), _();
227
+ },
228
+ disabled: !v
229
+ })), /* @__PURE__ */ o("div", {
230
+ ref: g,
231
+ className: "rte-context-menu",
232
+ style: {
233
+ left: m.x,
234
+ top: m.y
235
+ },
236
+ children: b.map((e, t) => e === "divider" ? /* @__PURE__ */ o("div", { className: "rte-context-menu__divider" }, `d-${t}`) : /* @__PURE__ */ s("button", {
237
+ type: "button",
238
+ className: "rte-context-menu__item",
239
+ onClick: e.action,
240
+ disabled: e.disabled,
241
+ children: [/* @__PURE__ */ o("span", {
242
+ className: "rte-context-menu__label",
243
+ children: e.label
244
+ }), e.shortcut && /* @__PURE__ */ o("span", {
245
+ className: "rte-context-menu__shortcut",
246
+ children: e.shortcut
247
+ })]
248
+ }, t))
249
+ });
253
250
  };
251
+ //#endregion
252
+ export { c as default };
254
253
 
255
254
  //# sourceMappingURL=ContextMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/ContextMenu.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { RichTextEditorLabels } from './types';\nimport { defaultLabels } from './types';\nimport { getNextFloatZIndex } from './extensions/FloatingDialog';\n\ninterface ContextMenuProps {\n editor: Editor;\n labels?: RichTextEditorLabels;\n onAIClick?: () => void;\n}\n\ninterface MenuItem {\n label: string;\n icon?: string;\n action: () => void;\n disabled?: boolean;\n divider?: boolean;\n shortcut?: string;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = ({ editor, labels: propsLabels, onAIClick }) => {\n const labels = { ...defaultLabels, ...propsLabels };\n const [visible, setVisible] = useState(false);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const menuRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => setVisible(false), []);\n\n useEffect(() => {\n const editorEl = editor.view.dom;\n\n const handleContextMenu = (e: Event) => {\n const me = e as MouseEvent;\n me.preventDefault();\n\n const wrapperEl = editorEl.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const rect = wrapperEl.getBoundingClientRect();\n\n setPos({\n x: me.clientX - rect.left,\n y: me.clientY - rect.top,\n });\n setVisible(true);\n };\n\n editorEl.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('mousedown', (e) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n close();\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') close();\n });\n\n return () => {\n editorEl.removeEventListener('contextmenu', handleContextMenu);\n };\n }, [editor, close]);\n\n useEffect(() => {\n if (!visible || !menuRef.current) return;\n const menu = menuRef.current;\n const wrapper = menu.parentElement;\n if (!wrapper) return;\n\n const wRect = wrapper.getBoundingClientRect();\n const mRect = menu.getBoundingClientRect();\n\n let { x, y } = pos;\n if (x + mRect.width > wRect.width) x = Math.max(0, wRect.width - mRect.width - 4);\n if (y + mRect.height > wRect.height) y = Math.max(0, y - mRect.height);\n if (x !== pos.x || y !== pos.y) setPos({ x, y });\n }, [visible]);\n\n if (!visible) return null;\n\n const hasSelection = editor.state.selection.from !== editor.state.selection.to;\n const isInTable = editor.isActive('table');\n\n const items: (MenuItem | 'divider')[] = [\n { label: 'Cut', shortcut: '⌘X', action: () => { document.execCommand('cut'); close(); }, disabled: !hasSelection },\n { label: 'Copy', shortcut: '⌘C', action: () => { document.execCommand('copy'); close(); }, disabled: !hasSelection },\n { label: 'Paste', shortcut: '⌘V', action: () => { document.execCommand('paste'); close(); } },\n { label: 'Select All', shortcut: '⌘A', action: () => { editor.chain().focus().selectAll().run(); close(); } },\n 'divider',\n { label: labels.bold || 'Bold', shortcut: '⌘B', action: () => { editor.chain().focus().toggleBold().run(); close(); } },\n { label: labels.italic || 'Italic', shortcut: '⌘I', action: () => { editor.chain().focus().toggleItalic().run(); close(); } },\n { label: labels.underline || 'Underline', shortcut: '⌘U', action: () => { editor.chain().focus().toggleUnderline().run(); close(); } },\n { label: labels.strikethrough || 'Strikethrough', action: () => { editor.chain().focus().toggleStrike().run(); close(); } },\n 'divider',\n { label: labels.link || 'Insert Link', action: () => {\n const url = window.prompt(labels.insertLinkUrl || 'Enter URL');\n if (url) editor.chain().focus().setLink({ href: url }).run();\n close();\n }},\n { label: labels.image || 'Insert Image', action: () => {\n const url = window.prompt(labels.insertImageUrl || 'Enter image URL');\n if (url) editor.chain().focus().setImage({ src: url }).run();\n close();\n }},\n { label: labels.codeBlock || 'Code Block', action: () => { editor.chain().focus().toggleNode('codeBlock', 'paragraph').run(); close(); } },\n { label: labels.blockquote || 'Blockquote', action: () => { editor.chain().focus().toggleBlockquote().run(); close(); } },\n { label: labels.horizontalRule || 'Horizontal Rule', action: () => { editor.chain().focus().setHorizontalRule().run(); close(); } },\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutBlock || 'Block'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'block' }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutWrapLeft || 'Wrap Left'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'wrap-left', width: 240 }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutWrapRight || 'Wrap Right'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'wrap-right', width: 240 }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutFloat || 'Float'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'float', x: 40, y: 40, zIndex: getNextFloatZIndex(editor) }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n ];\n\n if (isInTable) {\n items.push('divider');\n items.push({ label: labels.tableAddRowAfter || 'Add Row After', action: () => { editor.chain().focus().addRowAfter().run(); close(); } });\n items.push({ label: labels.tableAddColumnAfter || 'Add Column After', action: () => { editor.chain().focus().addColumnAfter().run(); close(); } });\n items.push({ label: labels.tableDeleteRow || 'Delete Row', action: () => { editor.chain().focus().deleteRow().run(); close(); } });\n items.push({ label: labels.tableDeleteColumn || 'Delete Column', action: () => { editor.chain().focus().deleteColumn().run(); close(); } });\n items.push({ label: labels.tableMergeCells || 'Merge Cells', action: () => { editor.chain().focus().mergeCells().run(); close(); } });\n items.push({ label: labels.tableSplitCell || 'Split Cell', action: () => { editor.chain().focus().splitCell().run(); close(); } });\n }\n\n if (onAIClick) {\n items.push('divider');\n items.push({ label: `✨ ${labels.ai || 'AI Assistant'}`, action: () => { onAIClick(); close(); }, disabled: !hasSelection });\n }\n\n return (\n <div\n ref={menuRef}\n className=\"rte-context-menu\"\n style={{ left: pos.x, top: pos.y }}\n >\n {items.map((item, i) =>\n item === 'divider' ? (\n <div key={`d-${i}`} className=\"rte-context-menu__divider\" />\n ) : (\n <button\n key={i}\n type=\"button\"\n className=\"rte-context-menu__item\"\n onClick={item.action}\n disabled={item.disabled}\n >\n <span className=\"rte-context-menu__label\">{item.label}</span>\n {item.shortcut && <span className=\"rte-context-menu__shortcut\">{item.shortcut}</span>}\n </button>\n )\n )}\n </div>\n );\n};\n\nexport default ContextMenu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenu.js","names":[],"sources":["../../../../src/components/pro/RichTextEditor/ContextMenu.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport type { Editor } from '@tiptap/react';\nimport type { RichTextEditorLabels } from './types';\nimport { defaultLabels } from './types';\nimport { getNextFloatZIndex } from './extensions/FloatingDialog';\n\ninterface ContextMenuProps {\n editor: Editor;\n labels?: RichTextEditorLabels;\n onAIClick?: () => void;\n}\n\ninterface MenuItem {\n label: string;\n icon?: string;\n action: () => void;\n disabled?: boolean;\n divider?: boolean;\n shortcut?: string;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = ({ editor, labels: propsLabels, onAIClick }) => {\n const labels = { ...defaultLabels, ...propsLabels };\n const [visible, setVisible] = useState(false);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n const menuRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => setVisible(false), []);\n\n useEffect(() => {\n const editorEl = editor.view.dom;\n\n const handleContextMenu = (e: Event) => {\n const me = e as MouseEvent;\n me.preventDefault();\n\n const wrapperEl = editorEl.closest('.rte-editor-wrapper');\n if (!wrapperEl) return;\n const rect = wrapperEl.getBoundingClientRect();\n\n setPos({\n x: me.clientX - rect.left,\n y: me.clientY - rect.top,\n });\n setVisible(true);\n };\n\n editorEl.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('mousedown', (e) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n close();\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') close();\n });\n\n return () => {\n editorEl.removeEventListener('contextmenu', handleContextMenu);\n };\n }, [editor, close]);\n\n useEffect(() => {\n if (!visible || !menuRef.current) return;\n const menu = menuRef.current;\n const wrapper = menu.parentElement;\n if (!wrapper) return;\n\n const wRect = wrapper.getBoundingClientRect();\n const mRect = menu.getBoundingClientRect();\n\n let { x, y } = pos;\n if (x + mRect.width > wRect.width) x = Math.max(0, wRect.width - mRect.width - 4);\n if (y + mRect.height > wRect.height) y = Math.max(0, y - mRect.height);\n if (x !== pos.x || y !== pos.y) setPos({ x, y });\n }, [visible]);\n\n if (!visible) return null;\n\n const hasSelection = editor.state.selection.from !== editor.state.selection.to;\n const isInTable = editor.isActive('table');\n\n const items: (MenuItem | 'divider')[] = [\n { label: 'Cut', shortcut: '⌘X', action: () => { document.execCommand('cut'); close(); }, disabled: !hasSelection },\n { label: 'Copy', shortcut: '⌘C', action: () => { document.execCommand('copy'); close(); }, disabled: !hasSelection },\n { label: 'Paste', shortcut: '⌘V', action: () => { document.execCommand('paste'); close(); } },\n { label: 'Select All', shortcut: '⌘A', action: () => { editor.chain().focus().selectAll().run(); close(); } },\n 'divider',\n { label: labels.bold || 'Bold', shortcut: '⌘B', action: () => { editor.chain().focus().toggleBold().run(); close(); } },\n { label: labels.italic || 'Italic', shortcut: '⌘I', action: () => { editor.chain().focus().toggleItalic().run(); close(); } },\n { label: labels.underline || 'Underline', shortcut: '⌘U', action: () => { editor.chain().focus().toggleUnderline().run(); close(); } },\n { label: labels.strikethrough || 'Strikethrough', action: () => { editor.chain().focus().toggleStrike().run(); close(); } },\n 'divider',\n { label: labels.link || 'Insert Link', action: () => {\n const url = window.prompt(labels.insertLinkUrl || 'Enter URL');\n if (url) editor.chain().focus().setLink({ href: url }).run();\n close();\n }},\n { label: labels.image || 'Insert Image', action: () => {\n const url = window.prompt(labels.insertImageUrl || 'Enter image URL');\n if (url) editor.chain().focus().setImage({ src: url }).run();\n close();\n }},\n { label: labels.codeBlock || 'Code Block', action: () => { editor.chain().focus().toggleNode('codeBlock', 'paragraph').run(); close(); } },\n { label: labels.blockquote || 'Blockquote', action: () => { editor.chain().focus().toggleBlockquote().run(); close(); } },\n { label: labels.horizontalRule || 'Horizontal Rule', action: () => { editor.chain().focus().setHorizontalRule().run(); close(); } },\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutBlock || 'Block'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'block' }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutWrapLeft || 'Wrap Left'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'wrap-left', width: 240 }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutWrapRight || 'Wrap Right'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'wrap-right', width: 240 }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n { label: `${labels.floatingDialog || 'Floating Dialog'} — ${labels.layoutFloat || 'Float'}`, action: () => {\n editor.chain().focus().insertContent({ type: 'floatingDialog', attrs: { title: 'Note', layout: 'float', x: 40, y: 40, zIndex: getNextFloatZIndex(editor) }, content: [{ type: 'paragraph' }] }).run();\n close();\n }},\n ];\n\n if (isInTable) {\n items.push('divider');\n items.push({ label: labels.tableAddRowAfter || 'Add Row After', action: () => { editor.chain().focus().addRowAfter().run(); close(); } });\n items.push({ label: labels.tableAddColumnAfter || 'Add Column After', action: () => { editor.chain().focus().addColumnAfter().run(); close(); } });\n items.push({ label: labels.tableDeleteRow || 'Delete Row', action: () => { editor.chain().focus().deleteRow().run(); close(); } });\n items.push({ label: labels.tableDeleteColumn || 'Delete Column', action: () => { editor.chain().focus().deleteColumn().run(); close(); } });\n items.push({ label: labels.tableMergeCells || 'Merge Cells', action: () => { editor.chain().focus().mergeCells().run(); close(); } });\n items.push({ label: labels.tableSplitCell || 'Split Cell', action: () => { editor.chain().focus().splitCell().run(); close(); } });\n }\n\n if (onAIClick) {\n items.push('divider');\n items.push({ label: `✨ ${labels.ai || 'AI Assistant'}`, action: () => { onAIClick(); close(); }, disabled: !hasSelection });\n }\n\n return (\n <div\n ref={menuRef}\n className=\"rte-context-menu\"\n style={{ left: pos.x, top: pos.y }}\n >\n {items.map((item, i) =>\n item === 'divider' ? (\n <div key={`d-${i}`} className=\"rte-context-menu__divider\" />\n ) : (\n <button\n key={i}\n type=\"button\"\n className=\"rte-context-menu__item\"\n onClick={item.action}\n disabled={item.disabled}\n >\n <span className=\"rte-context-menu__label\">{item.label}</span>\n {item.shortcut && <span className=\"rte-context-menu__shortcut\">{item.shortcut}</span>}\n </button>\n )\n )}\n </div>\n );\n};\n\nexport default ContextMenu;\n"],"mappings":"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"}