dishui 0.0.64 → 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 (504) 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 +11 -13
  5. package/dist/components/Badge/index.js.map +1 -1
  6. package/dist/components/Button/index.js +62 -86
  7. package/dist/components/Button/index.js.map +1 -1
  8. package/dist/components/Card/index.d.ts +87 -0
  9. package/dist/components/Card/index.js +178 -44
  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 -63
  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.d.ts +4 -1
  30. package/dist/components/EmptyState/index.js +24 -24
  31. package/dist/components/EmptyState/index.js.map +1 -1
  32. package/dist/components/FileUploader/DropZone.js +134 -136
  33. package/dist/components/FileUploader/DropZone.js.map +1 -1
  34. package/dist/components/FileUploader/FileItem.js +159 -163
  35. package/dist/components/FileUploader/FileItem.js.map +1 -1
  36. package/dist/components/FileUploader/FileUploader.js +126 -127
  37. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  38. package/dist/components/FileUploader/UploadQueue.js +62 -62
  39. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  40. package/dist/components/FloatWindow/index.d.ts +28 -0
  41. package/dist/components/GridLayout/index.d.ts +42 -0
  42. package/dist/components/Icon/index.d.ts +24 -0
  43. package/dist/components/Icon/index.js +26 -0
  44. package/dist/components/Icon/index.js.map +1 -0
  45. package/dist/components/Image/index.d.ts +33 -0
  46. package/dist/components/Image/index.js +44 -0
  47. package/dist/components/Image/index.js.map +1 -0
  48. package/dist/components/Input/index.js +196 -197
  49. package/dist/components/Input/index.js.map +1 -1
  50. package/dist/components/Label/index.js +62 -73
  51. package/dist/components/Label/index.js.map +1 -1
  52. package/dist/components/Layout/index.js +134 -139
  53. package/dist/components/Layout/index.js.map +1 -1
  54. package/dist/components/List/index.js +45 -43
  55. package/dist/components/List/index.js.map +1 -1
  56. package/dist/components/Markdown/Markdown.js +106 -103
  57. package/dist/components/Markdown/Markdown.js.map +1 -1
  58. package/dist/components/Markdown/codeThemes.js +24 -33
  59. package/dist/components/Markdown/codeThemes.js.map +1 -1
  60. package/dist/components/Markdown/markdownComponents.js +203 -208
  61. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  62. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  63. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  64. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  65. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  66. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  67. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  68. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  69. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  70. package/dist/components/Modal/index.d.ts +7 -3
  71. package/dist/components/Modal/index.js +82 -70
  72. package/dist/components/Modal/index.js.map +1 -1
  73. package/dist/components/MultipleChoice/index.d.ts +44 -0
  74. package/dist/components/MultipleChoice/index.js +52 -0
  75. package/dist/components/MultipleChoice/index.js.map +1 -0
  76. package/dist/components/Notification/index.d.ts +17 -0
  77. package/dist/components/Page/index.d.ts +58 -0
  78. package/dist/components/Page/index.js +43 -0
  79. package/dist/components/Page/index.js.map +1 -0
  80. package/dist/components/PageHeader/index.js +28 -28
  81. package/dist/components/PageHeader/index.js.map +1 -1
  82. package/dist/components/ProtectedRoute/index.js +8 -9
  83. package/dist/components/ProtectedRoute/index.js.map +1 -1
  84. package/dist/components/Row/index.d.ts +28 -0
  85. package/dist/components/Row/index.js +30 -0
  86. package/dist/components/Row/index.js.map +1 -0
  87. package/dist/components/Select/index.js +251 -257
  88. package/dist/components/Select/index.js.map +1 -1
  89. package/dist/components/SidebarToggleButton/index.js +56 -59
  90. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  91. package/dist/components/Slider/index.d.ts +39 -0
  92. package/dist/components/Slider/index.js +52 -0
  93. package/dist/components/Slider/index.js.map +1 -0
  94. package/dist/components/StatCard/index.d.ts +31 -1
  95. package/dist/components/StatCard/index.js +189 -58
  96. package/dist/components/StatCard/index.js.map +1 -1
  97. package/dist/components/Switch/index.d.ts +34 -0
  98. package/dist/components/Switch/index.js +55 -0
  99. package/dist/components/Switch/index.js.map +1 -0
  100. package/dist/components/Tab/index.d.ts +40 -0
  101. package/dist/components/Table/index.js +109 -103
  102. package/dist/components/Table/index.js.map +1 -1
  103. package/dist/components/Tabs/index.d.ts +19 -5
  104. package/dist/components/Tabs/index.js +30 -21
  105. package/dist/components/Tabs/index.js.map +1 -1
  106. package/dist/components/Text/index.d.ts +43 -0
  107. package/dist/components/Text/index.js +55 -0
  108. package/dist/components/Text/index.js.map +1 -0
  109. package/dist/components/Tooltip/index.d.ts +23 -0
  110. package/dist/components/Tooltip/index.js +34 -0
  111. package/dist/components/Tooltip/index.js.map +1 -0
  112. package/dist/components/Tree/Tree.js +205 -205
  113. package/dist/components/Tree/Tree.js.map +1 -1
  114. package/dist/components/pro/ArticleContextMenu/index.js +86 -87
  115. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  116. package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
  117. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  118. package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
  119. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  120. package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
  121. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  122. package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
  123. package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
  124. package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
  125. package/dist/components/pro/Calendar/index.d.ts +7 -0
  126. package/dist/components/pro/Calendar/types.d.ts +151 -0
  127. package/dist/components/pro/Calendar/utils.d.ts +94 -0
  128. package/dist/components/pro/Chat/Chat.d.ts +6 -0
  129. package/dist/components/pro/Chat/index.d.ts +2 -0
  130. package/dist/components/pro/Chat/types.d.ts +84 -0
  131. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -320
  132. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -221
  134. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  135. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
  136. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  137. package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
  138. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  139. package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
  140. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  141. package/dist/components/pro/CodeEditor/langs/index.js +7 -15
  142. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  143. package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
  144. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  145. package/dist/components/pro/CodeEditor/langs/python.js +4 -40
  146. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  147. package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
  148. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  149. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
  150. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  151. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
  152. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  153. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
  154. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  155. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
  156. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  157. package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
  158. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  159. package/dist/components/pro/CodeEditor/themes.js +513 -483
  160. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  161. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  162. package/dist/components/pro/CodeEditor/utils.js +171 -175
  163. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  164. package/dist/components/pro/DataTable/DataTable.js +305 -305
  165. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  166. package/dist/components/pro/DataTable/Filters.js +299 -314
  167. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  168. package/dist/components/pro/DataTable/PivotPanel.js +203 -204
  169. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  170. package/dist/components/pro/DataTable/PivotView.js +142 -141
  171. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  172. package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
  173. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  174. package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
  175. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  176. package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
  177. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  178. package/dist/components/pro/DataTable/components/TableBody.js +93 -94
  179. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  180. package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
  181. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  182. package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
  183. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  184. package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
  185. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  186. package/dist/components/pro/DataTable/extension.js +5 -5
  187. package/dist/components/pro/DataTable/extension.js.map +1 -1
  188. package/dist/components/pro/DataTable/pivotEngine.js +84 -92
  189. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  190. package/dist/components/pro/DataTable/pivotExtension.js +93 -93
  191. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  192. package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
  193. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  194. package/dist/components/pro/DataTable/tanstack-table.js +45 -62
  195. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  196. package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
  197. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  198. package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
  199. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  200. package/dist/components/pro/DataTable/utils.js +156 -168
  201. package/dist/components/pro/DataTable/utils.js.map +1 -1
  202. package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
  203. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  204. package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
  205. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  206. package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
  207. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  208. package/dist/components/pro/FileExplorer/FileIcon.js +190 -190
  209. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  210. package/dist/components/pro/FileExplorer/GridView.js +100 -100
  211. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  212. package/dist/components/pro/FileExplorer/ListView.js +209 -209
  213. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  214. package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
  215. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  216. package/dist/components/pro/Flow/Flow.js +920 -946
  217. package/dist/components/pro/Flow/Flow.js.map +1 -1
  218. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1663
  219. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  220. package/dist/components/pro/Flow/archify/build.js +85 -94
  221. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  222. package/dist/components/pro/Flow/archify/convert.js +512 -519
  223. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  224. package/dist/components/pro/Flow/archify/palette.js +87 -104
  225. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  226. package/dist/components/pro/Flow/archify/presets.js +34 -37
  227. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  228. package/dist/components/pro/Flow/archify/spec.js +7 -7
  229. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  230. package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
  231. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  232. package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
  233. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  234. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
  235. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  236. package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
  237. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  238. package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
  239. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  240. package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
  241. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  242. package/dist/components/pro/Flow/constants.js +266 -278
  243. package/dist/components/pro/Flow/constants.js.map +1 -1
  244. package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
  245. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  246. package/dist/components/pro/Flow/context/FlowContext.js +60 -61
  247. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  248. package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
  249. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  250. package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
  251. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  252. package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
  253. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  254. package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
  255. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  256. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
  257. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  258. package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
  259. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  260. package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
  261. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  262. package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
  263. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  264. package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
  265. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  266. package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
  267. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  268. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
  269. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  270. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
  271. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  272. package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -182
  273. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  274. package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
  275. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  276. package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
  277. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  278. package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
  279. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  280. package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
  281. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  282. package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
  283. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  284. package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
  285. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  286. package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
  287. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  288. package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
  289. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  290. package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
  291. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  292. package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
  293. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  294. package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
  295. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  296. package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
  297. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  298. package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
  299. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  300. package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -222
  301. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  302. package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
  303. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  304. package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
  305. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  306. package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
  307. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  308. package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
  309. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  310. package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
  311. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  312. package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
  313. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  314. package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
  315. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  316. package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
  317. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  318. package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
  319. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  320. package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
  321. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  322. package/dist/components/pro/Flow/nodes/shapes.js +556 -591
  323. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  324. package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
  325. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  326. package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
  327. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  328. package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
  329. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  330. package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
  331. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  332. package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
  333. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  334. package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
  335. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  336. package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
  337. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  338. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
  339. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  340. package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
  341. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  342. package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
  343. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  344. package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -244
  345. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -138
  347. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  348. package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
  349. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  350. package/dist/components/pro/Flow/panels/ShapePalette.js +557 -567
  351. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  352. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
  353. package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
  354. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  355. package/dist/components/pro/Flow/types.js +26 -26
  356. package/dist/components/pro/Flow/types.js.map +1 -1
  357. package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
  358. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  359. package/dist/components/pro/Flow/utils/gradient.js +55 -55
  360. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  361. package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
  362. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  363. package/dist/components/pro/Flow/utils/themeColor.js +185 -195
  364. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  365. package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
  366. package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
  367. package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
  368. package/dist/components/pro/Gantt/index.d.ts +6 -0
  369. package/dist/components/pro/Gantt/types.d.ts +478 -0
  370. package/dist/components/pro/Gantt/utils.d.ts +124 -0
  371. package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
  372. package/dist/components/pro/Resizable/index.d.ts +2 -0
  373. package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
  374. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  375. package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
  376. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  377. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
  378. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  379. package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
  380. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  381. package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
  382. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  383. package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
  384. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  385. package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
  386. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  387. package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
  388. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  389. package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
  390. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  391. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
  392. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  393. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
  394. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  395. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
  396. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  397. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
  398. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  399. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
  400. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  401. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
  402. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  403. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
  404. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  405. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
  406. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  407. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
  408. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  409. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
  410. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  411. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
  412. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  413. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
  414. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  415. package/dist/components/pro/RichTextEditor/types.js +75 -75
  416. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  417. package/dist/contexts/AppContext.d.ts +1 -1
  418. package/dist/contexts/AppContext.js +216 -221
  419. package/dist/contexts/AppContext.js.map +1 -1
  420. package/dist/data-table.js +15 -41
  421. package/dist/data-table.js.map +1 -1
  422. package/dist/dishui.css +1 -1
  423. package/dist/flow.js +27 -83
  424. package/dist/hooks/useClickOutside.js +18 -18
  425. package/dist/hooks/useClickOutside.js.map +1 -1
  426. package/dist/hooks/useContainerElement.js +9 -9
  427. package/dist/hooks/useContainerElement.js.map +1 -1
  428. package/dist/hooks/useControllableState.js +33 -35
  429. package/dist/hooks/useControllableState.js.map +1 -1
  430. package/dist/hooks/useCopyToClipboard.js +16 -16
  431. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  432. package/dist/hooks/useDebounce.js +14 -14
  433. package/dist/hooks/useDebounce.js.map +1 -1
  434. package/dist/hooks/useDraggable.js +50 -50
  435. package/dist/hooks/useDraggable.js.map +1 -1
  436. package/dist/hooks/useTableColumns.js +39 -42
  437. package/dist/hooks/useTableColumns.js.map +1 -1
  438. package/dist/hooks/useTableData.js +67 -68
  439. package/dist/hooks/useTableData.js.map +1 -1
  440. package/dist/index-nostyled.d.ts +8 -0
  441. package/dist/index.d.ts +29 -1
  442. package/dist/index.js +106 -236
  443. package/dist/layouts/MainLayout.js +56 -56
  444. package/dist/layouts/MainLayout.js.map +1 -1
  445. package/dist/layouts/Navbar.js +214 -214
  446. package/dist/layouts/Navbar.js.map +1 -1
  447. package/dist/layouts/Sidebar.js +184 -165
  448. package/dist/layouts/Sidebar.js.map +1 -1
  449. package/dist/layouts/headbar/Headbar.js +25 -25
  450. package/dist/layouts/headbar/Headbar.js.map +1 -1
  451. package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
  452. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  453. package/dist/layouts/headbar/HeadbarSearch.js +120 -120
  454. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  455. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
  456. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  457. package/dist/layouts/headbar/HeadbarTitle.js +26 -26
  458. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  459. package/dist/lite.js +9 -24
  460. package/dist/markdown.js +4 -9
  461. package/dist/pages/components/Calendar/index.d.ts +3 -0
  462. package/dist/pages/components/Calendar/index.en.d.ts +3 -0
  463. package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
  464. package/dist/pages/components/Chat/index.d.ts +3 -0
  465. package/dist/pages/components/Chat/index.en.d.ts +3 -0
  466. package/dist/pages/components/Chat/index.zh.d.ts +3 -0
  467. package/dist/pages/components/FloatWindow/index.d.ts +3 -0
  468. package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
  469. package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
  470. package/dist/pages/components/Gantt/index.d.ts +3 -0
  471. package/dist/pages/components/Gantt/index.en.d.ts +3 -0
  472. package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
  473. package/dist/pages/components/GridLayout/index.d.ts +3 -0
  474. package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
  475. package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
  476. package/dist/pages/components/Notification/index.d.ts +3 -0
  477. package/dist/pages/components/Notification/index.en.d.ts +3 -0
  478. package/dist/pages/components/Notification/index.zh.d.ts +3 -0
  479. package/dist/pages/components/Resizable/index.d.ts +3 -0
  480. package/dist/pages/components/Resizable/index.en.d.ts +3 -0
  481. package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
  482. package/dist/pages/components/Tab/index.d.ts +3 -0
  483. package/dist/pages/components/Tab/index.en.d.ts +3 -0
  484. package/dist/pages/components/Tab/index.zh.d.ts +3 -0
  485. package/dist/styles/themeStyles.js +87 -86
  486. package/dist/styles/themeStyles.js.map +1 -1
  487. package/dist/utils/cn.d.ts +13 -0
  488. package/dist/utils/cn.js +16 -0
  489. package/dist/utils/cn.js.map +1 -0
  490. package/dist/utils/i18n.js +690 -602
  491. package/dist/utils/i18n.js.map +1 -1
  492. package/dist/utils/menu.js +94 -94
  493. package/dist/utils/menu.js.map +1 -1
  494. package/dist/utils/rehype-code-meta.js +14 -14
  495. package/dist/utils/rehype-code-meta.js.map +1 -1
  496. package/dist/utils/remark-code-meta.js +9 -9
  497. package/dist/utils/remark-code-meta.js.map +1 -1
  498. package/dist/utils/routerBuilder.js +59 -58
  499. package/dist/utils/routerBuilder.js.map +1 -1
  500. package/dist/utils/selection.js +28 -29
  501. package/dist/utils/selection.js.map +1 -1
  502. package/dist/utils/themes.js +275 -255
  503. package/dist/utils/themes.js.map +1 -1
  504. package/package.json +23 -10
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingDialog.js","names":[],"sources":["../../../../../src/components/pro/RichTextEditor/extensions/FloatingDialog.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { Node, mergeAttributes } from '@tiptap/react';\nimport { NodeViewWrapper, NodeViewContent, ReactNodeViewRenderer } from '@tiptap/react';\nimport type { NodeViewProps } from '@tiptap/react';\n\ntype DialogLayout = 'block' | 'wrap-left' | 'wrap-right' | 'float';\n\ninterface DialogAttrs {\n x: number;\n y: number;\n width: number;\n height: number;\n borderColor: string;\n bgColor: string;\n title: string;\n layout: DialogLayout;\n zIndex: number;\n}\n\nconst DIALOG_COLORS = [\n { label: 'Blue', border: '#3b82f6', bg: '#eff6ff' },\n { label: 'Green', border: '#22c55e', bg: '#f0fdf4' },\n { label: 'Orange', border: '#f97316', bg: '#fff7ed' },\n { label: 'Red', border: '#ef4444', bg: '#fef2f2' },\n { label: 'Purple', border: '#8b5cf6', bg: '#faf5ff' },\n { label: 'Gray', border: '#6b7280', bg: '#f9fafb' },\n];\n\nconst LAYOUT_OPTIONS: { key: DialogLayout; label: string; icon: React.ReactNode }[] = [\n {\n key: 'block', label: 'Block',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" /><line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"3\" /><line x1=\"3\" y1=\"21\" x2=\"21\" y2=\"21\" /></svg>,\n },\n {\n key: 'wrap-left', label: 'Wrap Left',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"2\" y=\"4\" width=\"10\" height=\"8\" rx=\"1\" /><line x1=\"15\" y1=\"5\" x2=\"22\" y2=\"5\" /><line x1=\"15\" y1=\"8\" x2=\"22\" y2=\"8\" /><line x1=\"15\" y1=\"11\" x2=\"22\" y2=\"11\" /><line x1=\"2\" y1=\"15\" x2=\"22\" y2=\"15\" /><line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" /></svg>,\n },\n {\n key: 'wrap-right', label: 'Wrap Right',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"12\" y=\"4\" width=\"10\" height=\"8\" rx=\"1\" /><line x1=\"2\" y1=\"5\" x2=\"9\" y2=\"5\" /><line x1=\"2\" y1=\"8\" x2=\"9\" y2=\"8\" /><line x1=\"2\" y1=\"11\" x2=\"9\" y2=\"11\" /><line x1=\"2\" y1=\"15\" x2=\"22\" y2=\"15\" /><line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" /></svg>,\n },\n {\n key: 'float', label: 'Float',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" /><path d=\"M2 2h4M18 2h4M2 22h4M18 22h4\" strokeDasharray=\"2 2\" /><line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\" strokeDasharray=\"2 2\" /><line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\" strokeDasharray=\"2 2\" /></svg>,\n },\n];\n\n/** Scan the document and return all zIndex values of float-layout floatingDialog nodes */\nfunction collectFloatZIndices(editor: NodeViewProps['editor']): number[] {\n const indices: number[] = [];\n editor.state.doc.descendants((node) => {\n if (node.type.name === 'floatingDialog' && node.attrs.layout === 'float') {\n indices.push(node.attrs.zIndex ?? 10);\n }\n });\n return indices;\n}\n\nconst FloatingDialogView: React.FC<NodeViewProps> = ({\n node,\n editor,\n updateAttributes,\n deleteNode,\n selected,\n}) => {\n const attrs = node.attrs as DialogAttrs;\n const layout = attrs.layout || 'block';\n const isFloat = layout === 'float';\n const zIndex = attrs.zIndex ?? 10;\n\n const [editingTitle, setEditingTitle] = useState(false);\n const [localTitle, setLocalTitle] = useState(attrs.title);\n const [showColorPicker, setShowColorPicker] = useState(false);\n const [showLayoutPicker, setShowLayoutPicker] = useState(false);\n const dragStart = useRef({ mx: 0, my: 0, x: 0, y: 0 });\n const resizeStart = useRef({ mx: 0, my: 0, w: 0, h: 0 });\n const colorRef = useRef<HTMLDivElement>(null);\n const layoutRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setLocalTitle(attrs.title);\n }, [attrs.title]);\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (colorRef.current && !colorRef.current.contains(e.target as globalThis.Node)) {\n setShowColorPicker(false);\n }\n if (layoutRef.current && !layoutRef.current.contains(e.target as globalThis.Node)) {\n setShowLayoutPicker(false);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, []);\n\n const onDragStart = useCallback((e: React.MouseEvent) => {\n if (!isFloat) return;\n e.preventDefault();\n e.stopPropagation();\n dragStart.current = { mx: e.clientX, my: e.clientY, x: attrs.x, y: attrs.y };\n\n const onMove = (ev: MouseEvent) => {\n const dx = ev.clientX - dragStart.current.mx;\n const dy = ev.clientY - dragStart.current.my;\n updateAttributes({\n x: dragStart.current.x + dx,\n y: dragStart.current.y + dy,\n });\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, [isFloat, attrs.x, attrs.y, updateAttributes]);\n\n const onResizeStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n resizeStart.current = { mx: e.clientX, my: e.clientY, w: attrs.width, h: attrs.height };\n\n const onMove = (ev: MouseEvent) => {\n const dw = ev.clientX - resizeStart.current.mx;\n const dh = ev.clientY - resizeStart.current.my;\n updateAttributes({\n width: Math.max(160, resizeStart.current.w + dw),\n height: Math.max(80, resizeStart.current.h + dh),\n });\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, [attrs.width, attrs.height, updateAttributes]);\n\n const saveTitle = useCallback(() => {\n updateAttributes({ title: localTitle });\n setEditingTitle(false);\n }, [localTitle, updateAttributes]);\n\n const bringForward = useCallback(() => {\n const all = collectFloatZIndices(editor);\n const maxZ = Math.max(...all);\n if (zIndex < maxZ) {\n updateAttributes({ zIndex: maxZ + 1 });\n }\n }, [editor, zIndex, updateAttributes]);\n\n const sendBackward = useCallback(() => {\n const all = collectFloatZIndices(editor);\n const minZ = Math.min(...all);\n if (zIndex > minZ) {\n updateAttributes({ zIndex: minZ - 1 });\n } else if (zIndex > 1) {\n updateAttributes({ zIndex: zIndex - 1 });\n }\n }, [editor, zIndex, updateAttributes]);\n\n const wrapperClass = [\n 'rte-float-dialog',\n `rte-float-dialog--${layout}`,\n selected ? 'rte-float-dialog--selected' : '',\n ].filter(Boolean).join(' ');\n\n const wrapperStyle: React.CSSProperties = isFloat\n ? { position: 'absolute', left: attrs.x, top: attrs.y, zIndex }\n : {};\n\n const boxStyle: React.CSSProperties = {\n width: layout === 'block' ? '100%' : attrs.width,\n minHeight: attrs.height,\n borderColor: attrs.borderColor,\n backgroundColor: attrs.bgColor,\n };\n\n const layoutIcon = LAYOUT_OPTIONS.find((l) => l.key === layout)?.icon;\n\n return (\n <NodeViewWrapper className={wrapperClass} style={wrapperStyle}>\n <div className=\"rte-float-dialog__box\" style={boxStyle}>\n {/* Title bar */}\n <div\n className=\"rte-float-dialog__titlebar\"\n style={{ borderBottomColor: attrs.borderColor }}\n onMouseDown={onDragStart}\n contentEditable={false}\n >\n {isFloat && (\n <span className=\"rte-float-dialog__drag-icon\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"9\" cy=\"5\" r=\"1.5\" /><circle cx=\"15\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" /><circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"19\" r=\"1.5\" /><circle cx=\"15\" cy=\"19\" r=\"1.5\" />\n </svg>\n </span>\n )}\n\n {editingTitle ? (\n <input\n className=\"rte-float-dialog__title-input\"\n value={localTitle}\n onChange={(e) => setLocalTitle(e.target.value)}\n placeholder=\"Title...\"\n onMouseDown={(e) => e.stopPropagation()}\n onBlur={saveTitle}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === 'Escape') saveTitle(); }}\n autoFocus\n />\n ) : (\n <span className=\"rte-float-dialog__title\" onDoubleClick={() => setEditingTitle(true)}>\n {attrs.title || 'Dialog'}\n </span>\n )}\n\n <div className=\"rte-float-dialog__actions\">\n {/* Z-order controls — only for float layout */}\n {isFloat && (\n <div className=\"rte-float-dialog__zorder\">\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); bringForward(); }}\n title=\"Bring to Front\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"8\" y=\"2\" width=\"13\" height=\"13\" rx=\"2\" />\n <rect x=\"3\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" opacity=\"0.4\" />\n </svg>\n </button>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); sendBackward(); }}\n title=\"Send to Back\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <rect x=\"8\" y=\"2\" width=\"13\" height=\"13\" rx=\"2\" opacity=\"0.4\" />\n </svg>\n </button>\n </div>\n )}\n\n {/* Layout picker */}\n <div ref={layoutRef} style={{ position: 'relative' }}>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); setShowLayoutPicker(!showLayoutPicker); }}\n title={`Layout: ${layout}`}\n onMouseDown={(e) => e.stopPropagation()}\n >\n {layoutIcon}\n </button>\n {showLayoutPicker && (\n <div className=\"rte-float-dialog__layout-dropdown\" onMouseDown={(e) => e.stopPropagation()}>\n {LAYOUT_OPTIONS.map((opt) => (\n <button\n key={opt.key}\n type=\"button\"\n className={`rte-float-dialog__layout-option ${layout === opt.key ? 'rte-float-dialog__layout-option--active' : ''}`}\n onClick={() => { updateAttributes({ layout: opt.key }); setShowLayoutPicker(false); }}\n title={opt.label}\n >\n {opt.icon}\n <span>{opt.label}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Color picker */}\n <div ref={colorRef} style={{ position: 'relative' }}>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); setShowColorPicker(!showColorPicker); }}\n title=\"Color\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill={attrs.borderColor} stroke={attrs.borderColor} strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"8\" />\n </svg>\n </button>\n {showColorPicker && (\n <div className=\"rte-float-dialog__color-dropdown\" onMouseDown={(e) => e.stopPropagation()}>\n {DIALOG_COLORS.map((c) => (\n <button\n key={c.label}\n type=\"button\"\n className=\"rte-float-dialog__color-swatch\"\n style={{ backgroundColor: c.border }}\n onClick={() => { updateAttributes({ borderColor: c.border, bgColor: c.bg }); setShowColorPicker(false); }}\n title={c.label}\n />\n ))}\n </div>\n )}\n </div>\n\n {/* Delete */}\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn rte-float-dialog__action-btn--danger\"\n onClick={(e) => { e.stopPropagation(); deleteNode(); }}\n title=\"Delete\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n </div>\n\n {/* Rich text body — Tiptap editable content */}\n <NodeViewContent className=\"rte-float-dialog__body\" />\n\n {/* Resize handle */}\n <div className=\"rte-float-dialog__resize-handle\" onMouseDown={onResizeStart} contentEditable={false}>\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <circle cx=\"8\" cy=\"8\" r=\"1.2\" /><circle cx=\"4\" cy=\"8\" r=\"1.2\" /><circle cx=\"8\" cy=\"4\" r=\"1.2\" />\n </svg>\n </div>\n </div>\n </NodeViewWrapper>\n );\n};\n\n/** Scan document for the highest zIndex among existing float dialogs */\nexport function getNextFloatZIndex(editor: { state: { doc: { descendants: (cb: (node: { type: { name: string }; attrs: Record<string, unknown> }) => void) => void } } }): number {\n let maxZ = 9;\n editor.state.doc.descendants((node) => {\n if (node.type.name === 'floatingDialog' && node.attrs.layout === 'float') {\n const z = (node.attrs.zIndex as number) ?? 10;\n if (z > maxZ) maxZ = z;\n }\n });\n return maxZ + 1;\n}\n\nexport const FloatingDialogExtension = Node.create({\n name: 'floatingDialog',\n group: 'block',\n content: 'block+',\n draggable: true,\n isolating: true,\n defining: true,\n\n addAttributes() {\n return {\n title: { default: 'Note' },\n x: { default: 20 },\n y: { default: 0 },\n width: { default: 280 },\n height: { default: 120 },\n borderColor: { default: '#3b82f6' },\n bgColor: { default: '#eff6ff' },\n layout: { default: 'block' },\n zIndex: { default: 10 },\n };\n },\n\n parseHTML() {\n return [{ tag: 'div[data-type=\"floating-dialog\"]' }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', mergeAttributes(HTMLAttributes, { 'data-type': 'floating-dialog' }), 0];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(FloatingDialogView);\n },\n});\n\nexport default FloatingDialogExtension;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FloatingDialog.js","names":[],"sources":["../../../../../src/components/pro/RichTextEditor/extensions/FloatingDialog.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { cn } from '../../../../utils/cn';\nimport { Node, mergeAttributes } from '@tiptap/react';\nimport { NodeViewWrapper, NodeViewContent, ReactNodeViewRenderer } from '@tiptap/react';\nimport type { NodeViewProps } from '@tiptap/react';\n\ntype DialogLayout = 'block' | 'wrap-left' | 'wrap-right' | 'float';\n\ninterface DialogAttrs {\n x: number;\n y: number;\n width: number;\n height: number;\n borderColor: string;\n bgColor: string;\n title: string;\n layout: DialogLayout;\n zIndex: number;\n}\n\nconst DIALOG_COLORS = [\n { label: 'Blue', border: '#3b82f6', bg: '#eff6ff' },\n { label: 'Green', border: '#22c55e', bg: '#f0fdf4' },\n { label: 'Orange', border: '#f97316', bg: '#fff7ed' },\n { label: 'Red', border: '#ef4444', bg: '#fef2f2' },\n { label: 'Purple', border: '#8b5cf6', bg: '#faf5ff' },\n { label: 'Gray', border: '#6b7280', bg: '#f9fafb' },\n];\n\nconst LAYOUT_OPTIONS: { key: DialogLayout; label: string; icon: React.ReactNode }[] = [\n {\n key: 'block', label: 'Block',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" /><line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"3\" /><line x1=\"3\" y1=\"21\" x2=\"21\" y2=\"21\" /></svg>,\n },\n {\n key: 'wrap-left', label: 'Wrap Left',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"2\" y=\"4\" width=\"10\" height=\"8\" rx=\"1\" /><line x1=\"15\" y1=\"5\" x2=\"22\" y2=\"5\" /><line x1=\"15\" y1=\"8\" x2=\"22\" y2=\"8\" /><line x1=\"15\" y1=\"11\" x2=\"22\" y2=\"11\" /><line x1=\"2\" y1=\"15\" x2=\"22\" y2=\"15\" /><line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" /></svg>,\n },\n {\n key: 'wrap-right', label: 'Wrap Right',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"12\" y=\"4\" width=\"10\" height=\"8\" rx=\"1\" /><line x1=\"2\" y1=\"5\" x2=\"9\" y2=\"5\" /><line x1=\"2\" y1=\"8\" x2=\"9\" y2=\"8\" /><line x1=\"2\" y1=\"11\" x2=\"9\" y2=\"11\" /><line x1=\"2\" y1=\"15\" x2=\"22\" y2=\"15\" /><line x1=\"2\" y1=\"18\" x2=\"22\" y2=\"18\" /></svg>,\n },\n {\n key: 'float', label: 'Float',\n icon: <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" /><path d=\"M2 2h4M18 2h4M2 22h4M18 22h4\" strokeDasharray=\"2 2\" /><line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\" strokeDasharray=\"2 2\" /><line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\" strokeDasharray=\"2 2\" /></svg>,\n },\n];\n\n/** Scan the document and return all zIndex values of float-layout floatingDialog nodes */\nfunction collectFloatZIndices(editor: NodeViewProps['editor']): number[] {\n const indices: number[] = [];\n editor.state.doc.descendants((node) => {\n if (node.type.name === 'floatingDialog' && node.attrs.layout === 'float') {\n indices.push(node.attrs.zIndex ?? 10);\n }\n });\n return indices;\n}\n\nconst FloatingDialogView: React.FC<NodeViewProps> = ({\n node,\n editor,\n updateAttributes,\n deleteNode,\n selected,\n}) => {\n const attrs = node.attrs as DialogAttrs;\n const layout = attrs.layout || 'block';\n const isFloat = layout === 'float';\n const zIndex = attrs.zIndex ?? 10;\n\n const [editingTitle, setEditingTitle] = useState(false);\n const [localTitle, setLocalTitle] = useState(attrs.title);\n const [showColorPicker, setShowColorPicker] = useState(false);\n const [showLayoutPicker, setShowLayoutPicker] = useState(false);\n const dragStart = useRef({ mx: 0, my: 0, x: 0, y: 0 });\n const resizeStart = useRef({ mx: 0, my: 0, w: 0, h: 0 });\n const colorRef = useRef<HTMLDivElement>(null);\n const layoutRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setLocalTitle(attrs.title);\n }, [attrs.title]);\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (colorRef.current && !colorRef.current.contains(e.target as globalThis.Node)) {\n setShowColorPicker(false);\n }\n if (layoutRef.current && !layoutRef.current.contains(e.target as globalThis.Node)) {\n setShowLayoutPicker(false);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, []);\n\n const onDragStart = useCallback((e: React.MouseEvent) => {\n if (!isFloat) return;\n e.preventDefault();\n e.stopPropagation();\n dragStart.current = { mx: e.clientX, my: e.clientY, x: attrs.x, y: attrs.y };\n\n const onMove = (ev: MouseEvent) => {\n const dx = ev.clientX - dragStart.current.mx;\n const dy = ev.clientY - dragStart.current.my;\n updateAttributes({\n x: dragStart.current.x + dx,\n y: dragStart.current.y + dy,\n });\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, [isFloat, attrs.x, attrs.y, updateAttributes]);\n\n const onResizeStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n resizeStart.current = { mx: e.clientX, my: e.clientY, w: attrs.width, h: attrs.height };\n\n const onMove = (ev: MouseEvent) => {\n const dw = ev.clientX - resizeStart.current.mx;\n const dh = ev.clientY - resizeStart.current.my;\n updateAttributes({\n width: Math.max(160, resizeStart.current.w + dw),\n height: Math.max(80, resizeStart.current.h + dh),\n });\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, [attrs.width, attrs.height, updateAttributes]);\n\n const saveTitle = useCallback(() => {\n updateAttributes({ title: localTitle });\n setEditingTitle(false);\n }, [localTitle, updateAttributes]);\n\n const bringForward = useCallback(() => {\n const all = collectFloatZIndices(editor);\n const maxZ = Math.max(...all);\n if (zIndex < maxZ) {\n updateAttributes({ zIndex: maxZ + 1 });\n }\n }, [editor, zIndex, updateAttributes]);\n\n const sendBackward = useCallback(() => {\n const all = collectFloatZIndices(editor);\n const minZ = Math.min(...all);\n if (zIndex > minZ) {\n updateAttributes({ zIndex: minZ - 1 });\n } else if (zIndex > 1) {\n updateAttributes({ zIndex: zIndex - 1 });\n }\n }, [editor, zIndex, updateAttributes]);\n\n const wrapperClass = cn(\n 'rte-float-dialog',\n `rte-float-dialog--${layout}`,\n selected && 'rte-float-dialog--selected',\n );\n\n const wrapperStyle: React.CSSProperties = isFloat\n ? { position: 'absolute', left: attrs.x, top: attrs.y, zIndex }\n : {};\n\n const boxStyle: React.CSSProperties = {\n width: layout === 'block' ? '100%' : attrs.width,\n minHeight: attrs.height,\n borderColor: attrs.borderColor,\n backgroundColor: attrs.bgColor,\n };\n\n const layoutIcon = LAYOUT_OPTIONS.find((l) => l.key === layout)?.icon;\n\n return (\n <NodeViewWrapper className={wrapperClass} style={wrapperStyle}>\n <div className=\"rte-float-dialog__box\" style={boxStyle}>\n {/* Title bar */}\n <div\n className=\"rte-float-dialog__titlebar\"\n style={{ borderBottomColor: attrs.borderColor }}\n onMouseDown={onDragStart}\n contentEditable={false}\n >\n {isFloat && (\n <span className=\"rte-float-dialog__drag-icon\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"9\" cy=\"5\" r=\"1.5\" /><circle cx=\"15\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" /><circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"19\" r=\"1.5\" /><circle cx=\"15\" cy=\"19\" r=\"1.5\" />\n </svg>\n </span>\n )}\n\n {editingTitle ? (\n <input\n className=\"rte-float-dialog__title-input\"\n value={localTitle}\n onChange={(e) => setLocalTitle(e.target.value)}\n placeholder=\"Title...\"\n onMouseDown={(e) => e.stopPropagation()}\n onBlur={saveTitle}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === 'Escape') saveTitle(); }}\n autoFocus\n />\n ) : (\n <span className=\"rte-float-dialog__title\" onDoubleClick={() => setEditingTitle(true)}>\n {attrs.title || 'Dialog'}\n </span>\n )}\n\n <div className=\"rte-float-dialog__actions\">\n {/* Z-order controls — only for float layout */}\n {isFloat && (\n <div className=\"rte-float-dialog__zorder\">\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); bringForward(); }}\n title=\"Bring to Front\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"8\" y=\"2\" width=\"13\" height=\"13\" rx=\"2\" />\n <rect x=\"3\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" opacity=\"0.4\" />\n </svg>\n </button>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); sendBackward(); }}\n title=\"Send to Back\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <rect x=\"8\" y=\"2\" width=\"13\" height=\"13\" rx=\"2\" opacity=\"0.4\" />\n </svg>\n </button>\n </div>\n )}\n\n {/* Layout picker */}\n <div ref={layoutRef} style={{ position: 'relative' }}>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); setShowLayoutPicker(!showLayoutPicker); }}\n title={`Layout: ${layout}`}\n onMouseDown={(e) => e.stopPropagation()}\n >\n {layoutIcon}\n </button>\n {showLayoutPicker && (\n <div className=\"rte-float-dialog__layout-dropdown\" onMouseDown={(e) => e.stopPropagation()}>\n {LAYOUT_OPTIONS.map((opt) => (\n <button\n key={opt.key}\n type=\"button\"\n className={`rte-float-dialog__layout-option ${layout === opt.key ? 'rte-float-dialog__layout-option--active' : ''}`}\n onClick={() => { updateAttributes({ layout: opt.key }); setShowLayoutPicker(false); }}\n title={opt.label}\n >\n {opt.icon}\n <span>{opt.label}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Color picker */}\n <div ref={colorRef} style={{ position: 'relative' }}>\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn\"\n onClick={(e) => { e.stopPropagation(); setShowColorPicker(!showColorPicker); }}\n title=\"Color\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill={attrs.borderColor} stroke={attrs.borderColor} strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"8\" />\n </svg>\n </button>\n {showColorPicker && (\n <div className=\"rte-float-dialog__color-dropdown\" onMouseDown={(e) => e.stopPropagation()}>\n {DIALOG_COLORS.map((c) => (\n <button\n key={c.label}\n type=\"button\"\n className=\"rte-float-dialog__color-swatch\"\n style={{ backgroundColor: c.border }}\n onClick={() => { updateAttributes({ borderColor: c.border, bgColor: c.bg }); setShowColorPicker(false); }}\n title={c.label}\n />\n ))}\n </div>\n )}\n </div>\n\n {/* Delete */}\n <button\n type=\"button\"\n className=\"rte-float-dialog__action-btn rte-float-dialog__action-btn--danger\"\n onClick={(e) => { e.stopPropagation(); deleteNode(); }}\n title=\"Delete\"\n onMouseDown={(e) => e.stopPropagation()}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n </div>\n\n {/* Rich text body — Tiptap editable content */}\n <NodeViewContent className=\"rte-float-dialog__body\" />\n\n {/* Resize handle */}\n <div className=\"rte-float-dialog__resize-handle\" onMouseDown={onResizeStart} contentEditable={false}>\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <circle cx=\"8\" cy=\"8\" r=\"1.2\" /><circle cx=\"4\" cy=\"8\" r=\"1.2\" /><circle cx=\"8\" cy=\"4\" r=\"1.2\" />\n </svg>\n </div>\n </div>\n </NodeViewWrapper>\n );\n};\n\n/** Scan document for the highest zIndex among existing float dialogs */\nexport function getNextFloatZIndex(editor: { state: { doc: { descendants: (cb: (node: { type: { name: string }; attrs: Record<string, unknown> }) => void) => void } } }): number {\n let maxZ = 9;\n editor.state.doc.descendants((node) => {\n if (node.type.name === 'floatingDialog' && node.attrs.layout === 'float') {\n const z = (node.attrs.zIndex as number) ?? 10;\n if (z > maxZ) maxZ = z;\n }\n });\n return maxZ + 1;\n}\n\nexport const FloatingDialogExtension = Node.create({\n name: 'floatingDialog',\n group: 'block',\n content: 'block+',\n draggable: true,\n isolating: true,\n defining: true,\n\n addAttributes() {\n return {\n title: { default: 'Note' },\n x: { default: 20 },\n y: { default: 0 },\n width: { default: 280 },\n height: { default: 120 },\n borderColor: { default: '#3b82f6' },\n bgColor: { default: '#eff6ff' },\n layout: { default: 'block' },\n zIndex: { default: 10 },\n };\n },\n\n parseHTML() {\n return [{ tag: 'div[data-type=\"floating-dialog\"]' }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', mergeAttributes(HTMLAttributes, { 'data-type': 'floating-dialog' }), 0];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(FloatingDialogView);\n },\n});\n\nexport default FloatingDialogExtension;\n"],"mappings":"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"}
@@ -1,28 +1,28 @@
1
- import { Extension as n } from "@tiptap/react";
2
- var o = n.create({
3
- name: "fontSize",
4
- addOptions() {
5
- return { types: ["textStyle"] };
6
- },
7
- addGlobalAttributes() {
8
- return [{
9
- types: this.options.types,
10
- attributes: { fontSize: {
11
- default: null,
12
- parseHTML: (t) => t.style.fontSize?.replace(/['"]+/g, "") || null,
13
- renderHTML: (t) => t.fontSize ? { style: `font-size: ${t.fontSize}` } : {}
14
- } }
15
- }];
16
- },
17
- addCommands() {
18
- return {
19
- setFontSize: (t) => ({ chain: e }) => e().setMark("textStyle", { fontSize: t }).run(),
20
- unsetFontSize: () => ({ chain: t }) => t().setMark("textStyle", { fontSize: null }).removeEmptyTextStyle().run()
21
- };
22
- }
1
+ import { Extension as e } from "@tiptap/react";
2
+ //#region src/components/pro/RichTextEditor/extensions/FontSize.ts
3
+ var t = e.create({
4
+ name: "fontSize",
5
+ addOptions() {
6
+ return { types: ["textStyle"] };
7
+ },
8
+ addGlobalAttributes() {
9
+ return [{
10
+ types: this.options.types,
11
+ attributes: { fontSize: {
12
+ default: null,
13
+ parseHTML: (e) => e.style.fontSize?.replace(/['"]+/g, "") || null,
14
+ renderHTML: (e) => e.fontSize ? { style: `font-size: ${e.fontSize}` } : {}
15
+ } }
16
+ }];
17
+ },
18
+ addCommands() {
19
+ return {
20
+ setFontSize: (e) => ({ chain: t }) => t().setMark("textStyle", { fontSize: e }).run(),
21
+ unsetFontSize: () => ({ chain: e }) => e().setMark("textStyle", { fontSize: null }).removeEmptyTextStyle().run()
22
+ };
23
+ }
23
24
  });
24
- export {
25
- o as default
26
- };
25
+ //#endregion
26
+ export { t as default };
27
27
 
28
28
  //# sourceMappingURL=FontSize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FontSize.js","names":[],"sources":["../../../../../src/components/pro/RichTextEditor/extensions/FontSize.ts"],"sourcesContent":["import { Extension } from '@tiptap/react';\n\nexport type FontSizeOptions = {\n types: string[];\n};\n\ndeclare module '@tiptap/react' {\n interface Commands<ReturnType> {\n fontSize: {\n setFontSize: (size: string) => ReturnType;\n unsetFontSize: () => ReturnType;\n };\n }\n}\n\nconst FontSize = Extension.create<FontSizeOptions>({\n name: 'fontSize',\n\n addOptions() {\n return {\n types: ['textStyle'],\n };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n fontSize: {\n default: null,\n parseHTML: (element) => element.style.fontSize?.replace(/['\"]+/g, '') || null,\n renderHTML: (attributes) => {\n if (!attributes.fontSize) return {};\n return { style: `font-size: ${attributes.fontSize}` };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setFontSize:\n (fontSize: string) =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize }).run();\n },\n unsetFontSize:\n () =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize: null }).removeEmptyTextStyle().run();\n },\n };\n },\n});\n\nexport default FontSize;\n"],"mappings":";AAeA,IAAM,IAAW,EAAU,OAAwB;AAAA,EACjD,MAAM;AAAA,EAEN,aAAa;AACX,WAAO,EACL,OAAO,CAAC,WAAW,EACrB;AAAA,EACF;AAAA,EAEA,sBAAsB;AACpB,WAAO,CACL;AAAA,MACE,OAAO,KAAK,QAAQ;AAAA,MACpB,YAAY,EACV,UAAU;AAAA,QACR,SAAS;AAAA,QACT,WAAA,CAAY,MAAY,EAAQ,MAAM,UAAU,QAAQ,UAAU,EAAE,KAAK;AAAA,QACzE,YAAA,CAAa,MACN,EAAW,WACT,EAAE,OAAO,cAAc,EAAW,QAAA,GAAW,IADnB,CAAC;AAAA,MAGtC,EACF;AAAA,IACF,CACF;AAAA,EACF;AAAA,EAEA,cAAc;AACZ,WAAO;AAAA,MACL,aAAA,CACG,MAAA,CACA,EAAE,OAAA,EAAA,MACM,EAAM,EAAE,QAAQ,aAAa,EAAE,UAAA,EAAS,CAAC,EAAE,IAAI;AAAA,MAE1D,eAAA,MAAA,CAEG,EAAE,OAAA,EAAA,MACM,EAAM,EAAE,QAAQ,aAAa,EAAE,UAAU,KAAK,CAAC,EAAE,qBAAqB,EAAE,IAAI;AAAA,IAEzF;AAAA,EACF;AACF,CAAC"}
1
+ {"version":3,"file":"FontSize.js","names":[],"sources":["../../../../../src/components/pro/RichTextEditor/extensions/FontSize.ts"],"sourcesContent":["import { Extension } from '@tiptap/react';\n\nexport type FontSizeOptions = {\n types: string[];\n};\n\ndeclare module '@tiptap/react' {\n interface Commands<ReturnType> {\n fontSize: {\n setFontSize: (size: string) => ReturnType;\n unsetFontSize: () => ReturnType;\n };\n }\n}\n\nconst FontSize = Extension.create<FontSizeOptions>({\n name: 'fontSize',\n\n addOptions() {\n return {\n types: ['textStyle'],\n };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n fontSize: {\n default: null,\n parseHTML: (element) => element.style.fontSize?.replace(/['\"]+/g, '') || null,\n renderHTML: (attributes) => {\n if (!attributes.fontSize) return {};\n return { style: `font-size: ${attributes.fontSize}` };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setFontSize:\n (fontSize: string) =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize }).run();\n },\n unsetFontSize:\n () =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize: null }).removeEmptyTextStyle().run();\n },\n };\n },\n});\n\nexport default FontSize;\n"],"mappings":";;AAeA,IAAM,IAAW,EAAU,OAAwB;CACjD,MAAM;CAEN,aAAa;EACX,OAAO,EACL,OAAO,CAAC,WAAW,EACrB;CACF;CAEA,sBAAsB;EACpB,OAAO,CACL;GACE,OAAO,KAAK,QAAQ;GACpB,YAAY,EACV,UAAU;IACR,SAAS;IACT,YAAY,MAAY,EAAQ,MAAM,UAAU,QAAQ,UAAU,EAAE,KAAK;IACzE,aAAa,MACN,EAAW,WACT,EAAE,OAAO,cAAc,EAAW,WAAW,IADnB,CAAC;GAGtC,EACF;EACF,CACF;CACF;CAEA,cAAc;EACZ,OAAO;GACL,cACG,OACA,EAAE,eACM,EAAM,CAAC,CAAC,QAAQ,aAAa,EAAE,YAAS,CAAC,CAAC,CAAC,IAAI;GAE1D,sBAEG,EAAE,eACM,EAAM,CAAC,CAAC,QAAQ,aAAa,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI;EAEzF;CACF;AACF,CAAC"}
@@ -1,181 +1,172 @@
1
- import { useCallback as s, useEffect as m, useRef as p, useState as f } from "react";
2
- import { jsx as e, jsxs as l } from "react/jsx-runtime";
3
- import { Prism as M } from "react-syntax-highlighter";
4
- import { oneLight as x } from "react-syntax-highlighter/dist/esm/styles/prism";
5
- import _ from "react-markdown";
6
- import L from "remark-gfm";
7
- import N from "rehype-katex";
8
- import R from "rehype-raw";
9
- import C from "remark-math";
10
- import g from "mermaid";
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
+ import { Prism as o } from "react-syntax-highlighter";
4
+ import { oneLight as s } from "react-syntax-highlighter/dist/esm/styles/prism";
5
+ import c from "react-markdown";
6
+ import l from "remark-gfm";
7
+ import u from "rehype-katex";
8
+ import d from "rehype-raw";
9
+ import f from "remark-math";
10
+ import p from "mermaid";
11
11
  import "katex/dist/katex.min.css";
12
- import { Node as B, NodeViewWrapper as E, ReactNodeViewRenderer as H, mergeAttributes as P } from "@tiptap/react";
13
- var w = !1;
14
- function S() {
15
- w || (g.initialize({
16
- startOnLoad: !1,
17
- theme: "default",
18
- securityLevel: "loose",
19
- fontFamily: "inherit",
20
- flowchart: {
21
- useMaxWidth: !0,
22
- htmlLabels: !0
23
- }
24
- }), w = !0);
12
+ import { Node as m, NodeViewWrapper as h, ReactNodeViewRenderer as g, mergeAttributes as _ } from "@tiptap/react";
13
+ //#region src/components/pro/RichTextEditor/extensions/MarkdownBlock.tsx
14
+ var v = !1;
15
+ function y() {
16
+ v ||= (p.initialize({
17
+ startOnLoad: !1,
18
+ theme: "default",
19
+ securityLevel: "loose",
20
+ fontFamily: "inherit",
21
+ flowchart: {
22
+ useMaxWidth: !0,
23
+ htmlLabels: !0
24
+ }
25
+ }), !0);
25
26
  }
26
- var z = ({ code: a }) => {
27
- const r = p(null);
28
- return m(() => {
29
- if (!a.trim() || !r.current) return;
30
- S();
31
- let i = !1;
32
- return (async () => {
33
- try {
34
- const n = `mermaid-md-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`, { svg: o } = await g.render(n, a);
35
- !i && r.current && (r.current.innerHTML = o);
36
- } catch (n) {
37
- !i && r.current && (r.current.innerHTML = `<pre style="color:red;font-size:12px;">${String(n)}</pre>`);
38
- }
39
- })(), () => {
40
- i = !0;
41
- };
42
- }, [a]), /* @__PURE__ */ e("div", {
43
- ref: r,
44
- className: "rte-mermaid-container"
45
- });
46
- }, T = ({ content: a }) => /* @__PURE__ */ e(_, {
47
- remarkPlugins: [L, C],
48
- rehypePlugins: [N, R],
49
- components: { code({ className: r, children: i, ...t }) {
50
- const n = /language-(\w+)/.exec(r || "")?.[1], o = String(i).replace(/\n$/, "");
51
- return n === "mermaid" ? /* @__PURE__ */ e(z, { code: o }) : n ? /* @__PURE__ */ e(M, {
52
- style: x,
53
- language: n,
54
- PreTag: "div",
55
- customStyle: {
56
- borderRadius: "0.5rem",
57
- fontSize: "0.875em",
58
- padding: "1em",
59
- margin: "0.5em 0"
60
- },
61
- children: o
62
- }) : /* @__PURE__ */ e("code", {
63
- className: r,
64
- ...t,
65
- children: i
66
- });
67
- } },
68
- children: a
69
- }), $ = ({ node: a, updateAttributes: r, selected: i }) => {
70
- const [t, n] = f(!1), [o, u] = f(a.attrs.content || ""), d = p(null);
71
- m(() => {
72
- u(a.attrs.content || "");
73
- }, [a.attrs.content]), m(() => {
74
- t && d.current && (d.current.focus(), k(d.current));
75
- }, [t]);
76
- const k = (c) => {
77
- c.style.height = "auto", c.style.height = c.scrollHeight + "px";
78
- }, v = s((c) => {
79
- u(c.target.value), k(c.target);
80
- }, []), y = s(() => {
81
- r({ content: o }), n(!1);
82
- }, [o, r]), b = s((c) => {
83
- c.key === "Escape" && (r({ content: o }), n(!1));
84
- }, [o, r]), h = o || `# Markdown Block
85
-
86
- Write your **markdown** here.
87
-
88
- \`\`\`mermaid
89
- graph LR
90
- A[Start] --> B[End]
91
- \`\`\`
92
- `;
93
- return /* @__PURE__ */ l(E, {
94
- className: `rte-markdown-block ${i ? "rte-markdown-block--selected" : ""}`,
95
- children: [/* @__PURE__ */ l("div", {
96
- className: "rte-markdown-block__header",
97
- children: [/* @__PURE__ */ e("span", {
98
- className: "rte-markdown-block__label",
99
- children: "Markdown"
100
- }), /* @__PURE__ */ l("button", {
101
- type: "button",
102
- className: `rte-markdown-block__toggle ${t ? "rte-markdown-block__toggle--active" : ""}`,
103
- onClick: () => {
104
- t && r({ content: o }), n(!t);
105
- },
106
- title: t ? "Preview" : "Edit",
107
- children: [t ? /* @__PURE__ */ l("svg", {
108
- width: "14",
109
- height: "14",
110
- viewBox: "0 0 24 24",
111
- fill: "none",
112
- stroke: "currentColor",
113
- strokeWidth: "2",
114
- strokeLinecap: "round",
115
- strokeLinejoin: "round",
116
- children: [/* @__PURE__ */ e("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), /* @__PURE__ */ e("circle", {
117
- cx: "12",
118
- cy: "12",
119
- r: "3"
120
- })]
121
- }) : /* @__PURE__ */ l("svg", {
122
- width: "14",
123
- height: "14",
124
- viewBox: "0 0 24 24",
125
- fill: "none",
126
- stroke: "currentColor",
127
- strokeWidth: "2",
128
- strokeLinecap: "round",
129
- strokeLinejoin: "round",
130
- children: [/* @__PURE__ */ e("path", { d: "M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7" }), /* @__PURE__ */ e("path", { d: "M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z" })]
131
- }), /* @__PURE__ */ e("span", { children: t ? "Preview" : "Edit" })]
132
- })]
133
- }), /* @__PURE__ */ e("div", {
134
- className: "rte-markdown-block__body",
135
- children: t ? /* @__PURE__ */ e("textarea", {
136
- ref: d,
137
- className: "rte-markdown-block__editor",
138
- value: o,
139
- onChange: v,
140
- onBlur: y,
141
- onKeyDown: b,
142
- placeholder: "Enter Markdown content...",
143
- rows: 5
144
- }) : /* @__PURE__ */ e("div", {
145
- className: "rte-markdown-block__preview prose",
146
- onDoubleClick: () => n(!0),
147
- children: h.trim() ? /* @__PURE__ */ e(T, { content: h }) : /* @__PURE__ */ e("p", {
148
- className: "rte-markdown-block__placeholder",
149
- children: "Double-click to edit Markdown content..."
150
- })
151
- })
152
- })]
153
- });
154
- }, X = B.create({
155
- name: "markdownBlock",
156
- group: "block",
157
- atom: !0,
158
- draggable: !0,
159
- addAttributes() {
160
- return { content: { default: "" } };
161
- },
162
- parseHTML() {
163
- return [{ tag: 'div[data-type="markdown-block"]' }];
164
- },
165
- renderHTML({ HTMLAttributes: a }) {
166
- return [
167
- "div",
168
- P(a, { "data-type": "markdown-block" }),
169
- 0
170
- ];
171
- },
172
- addNodeView() {
173
- return H($);
174
- }
27
+ var b = ({ code: e }) => {
28
+ let r = n(null);
29
+ return t(() => {
30
+ if (!e.trim() || !r.current) return;
31
+ y();
32
+ let t = !1;
33
+ return (async () => {
34
+ try {
35
+ let n = `mermaid-md-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`, { svg: i } = await p.render(n, e);
36
+ !t && r.current && (r.current.innerHTML = i);
37
+ } catch (e) {
38
+ !t && r.current && (r.current.innerHTML = `<pre style="color:red;font-size:12px;">${String(e)}</pre>`);
39
+ }
40
+ })(), () => {
41
+ t = !0;
42
+ };
43
+ }, [e]), /* @__PURE__ */ i("div", {
44
+ ref: r,
45
+ className: "rte-mermaid-container"
46
+ });
47
+ }, x = ({ content: e }) => /* @__PURE__ */ i(c, {
48
+ remarkPlugins: [l, f],
49
+ rehypePlugins: [u, d],
50
+ components: { code({ className: e, children: t, ...n }) {
51
+ let r = /language-(\w+)/.exec(e || "")?.[1], a = String(t).replace(/\n$/, "");
52
+ return r === "mermaid" ? /* @__PURE__ */ i(b, { code: a }) : r ? /* @__PURE__ */ i(o, {
53
+ style: s,
54
+ language: r,
55
+ PreTag: "div",
56
+ customStyle: {
57
+ borderRadius: "0.5rem",
58
+ fontSize: "0.875em",
59
+ padding: "1em",
60
+ margin: "0.5em 0"
61
+ },
62
+ children: a
63
+ }) : /* @__PURE__ */ i("code", {
64
+ className: e,
65
+ ...n,
66
+ children: t
67
+ });
68
+ } },
69
+ children: e
70
+ }), S = ({ node: o, updateAttributes: s, selected: c }) => {
71
+ let [l, u] = r(!1), [d, f] = r(o.attrs.content || ""), p = n(null);
72
+ t(() => {
73
+ f(o.attrs.content || "");
74
+ }, [o.attrs.content]), t(() => {
75
+ l && p.current && (p.current.focus(), m(p.current));
76
+ }, [l]);
77
+ let m = (e) => {
78
+ e.style.height = "auto", e.style.height = e.scrollHeight + "px";
79
+ }, g = e((e) => {
80
+ f(e.target.value), m(e.target);
81
+ }, []), _ = e(() => {
82
+ s({ content: d }), u(!1);
83
+ }, [d, s]), v = e((e) => {
84
+ e.key === "Escape" && (s({ content: d }), u(!1));
85
+ }, [d, s]), y = d || "# Markdown Block\n\nWrite your **markdown** here.\n\n```mermaid\ngraph LR\n A[Start] --> B[End]\n```\n";
86
+ return /* @__PURE__ */ a(h, {
87
+ className: `rte-markdown-block ${c ? "rte-markdown-block--selected" : ""}`,
88
+ children: [/* @__PURE__ */ a("div", {
89
+ className: "rte-markdown-block__header",
90
+ children: [/* @__PURE__ */ i("span", {
91
+ className: "rte-markdown-block__label",
92
+ children: "Markdown"
93
+ }), /* @__PURE__ */ a("button", {
94
+ type: "button",
95
+ className: `rte-markdown-block__toggle ${l ? "rte-markdown-block__toggle--active" : ""}`,
96
+ onClick: () => {
97
+ l && s({ content: d }), u(!l);
98
+ },
99
+ title: l ? "Preview" : "Edit",
100
+ children: [l ? /* @__PURE__ */ a("svg", {
101
+ width: "14",
102
+ height: "14",
103
+ viewBox: "0 0 24 24",
104
+ fill: "none",
105
+ stroke: "currentColor",
106
+ strokeWidth: "2",
107
+ strokeLinecap: "round",
108
+ strokeLinejoin: "round",
109
+ children: [/* @__PURE__ */ i("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), /* @__PURE__ */ i("circle", {
110
+ cx: "12",
111
+ cy: "12",
112
+ r: "3"
113
+ })]
114
+ }) : /* @__PURE__ */ a("svg", {
115
+ width: "14",
116
+ height: "14",
117
+ viewBox: "0 0 24 24",
118
+ fill: "none",
119
+ stroke: "currentColor",
120
+ strokeWidth: "2",
121
+ strokeLinecap: "round",
122
+ strokeLinejoin: "round",
123
+ children: [/* @__PURE__ */ i("path", { d: "M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7" }), /* @__PURE__ */ i("path", { d: "M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z" })]
124
+ }), /* @__PURE__ */ i("span", { children: l ? "Preview" : "Edit" })]
125
+ })]
126
+ }), /* @__PURE__ */ i("div", {
127
+ className: "rte-markdown-block__body",
128
+ children: l ? /* @__PURE__ */ i("textarea", {
129
+ ref: p,
130
+ className: "rte-markdown-block__editor",
131
+ value: d,
132
+ onChange: g,
133
+ onBlur: _,
134
+ onKeyDown: v,
135
+ placeholder: "Enter Markdown content...",
136
+ rows: 5
137
+ }) : /* @__PURE__ */ i("div", {
138
+ className: "rte-markdown-block__preview prose",
139
+ onDoubleClick: () => u(!0),
140
+ children: y.trim() ? /* @__PURE__ */ i(x, { content: y }) : /* @__PURE__ */ i("p", {
141
+ className: "rte-markdown-block__placeholder",
142
+ children: "Double-click to edit Markdown content..."
143
+ })
144
+ })
145
+ })]
146
+ });
147
+ }, C = m.create({
148
+ name: "markdownBlock",
149
+ group: "block",
150
+ atom: !0,
151
+ draggable: !0,
152
+ addAttributes() {
153
+ return { content: { default: "" } };
154
+ },
155
+ parseHTML() {
156
+ return [{ tag: "div[data-type=\"markdown-block\"]" }];
157
+ },
158
+ renderHTML({ HTMLAttributes: e }) {
159
+ return [
160
+ "div",
161
+ _(e, { "data-type": "markdown-block" }),
162
+ 0
163
+ ];
164
+ },
165
+ addNodeView() {
166
+ return g(S);
167
+ }
175
168
  });
176
- export {
177
- X as MarkdownBlockExtension,
178
- X as default
179
- };
169
+ //#endregion
170
+ export { C as MarkdownBlockExtension, C as default };
180
171
 
181
172
  //# sourceMappingURL=MarkdownBlock.js.map