@ctzhian/tiptap 0.4.0

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 (466) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -0
  3. package/dist/Editor/demo.d.ts +4 -0
  4. package/dist/Editor/demo.js +150 -0
  5. package/dist/Editor/index.d.ts +4 -0
  6. package/dist/Editor/index.js +21 -0
  7. package/dist/EditorThemeProvider/index.d.ts +11 -0
  8. package/dist/EditorThemeProvider/index.js +90 -0
  9. package/dist/EditorToolbar/index.d.ts +9 -0
  10. package/dist/EditorToolbar/index.js +286 -0
  11. package/dist/asset/css/index.css +161 -0
  12. package/dist/asset/images/disk.png +0 -0
  13. package/dist/asset/images/down.svg +3 -0
  14. package/dist/component/CustomBubbleMenu/SelectionText.d.ts +9 -0
  15. package/dist/component/CustomBubbleMenu/SelectionText.js +295 -0
  16. package/dist/component/CustomDragHandle/index.d.ts +9 -0
  17. package/dist/component/CustomDragHandle/index.js +1172 -0
  18. package/dist/component/CustomFloatingMenu/index.d.ts +0 -0
  19. package/dist/component/CustomFloatingMenu/index.js +85 -0
  20. package/dist/component/FloatingPopover/index.d.ts +13 -0
  21. package/dist/component/FloatingPopover/index.js +104 -0
  22. package/dist/component/Icons/ai-generate-2-icon.d.ts +6 -0
  23. package/dist/component/Icons/ai-generate-2-icon.js +13 -0
  24. package/dist/component/Icons/ai-generate-text-icon.d.ts +6 -0
  25. package/dist/component/Icons/ai-generate-text-icon.js +13 -0
  26. package/dist/component/Icons/align-bottom-icon.d.ts +6 -0
  27. package/dist/component/Icons/align-bottom-icon.js +13 -0
  28. package/dist/component/Icons/align-center-icon.d.ts +6 -0
  29. package/dist/component/Icons/align-center-icon.js +13 -0
  30. package/dist/component/Icons/align-justify-icon.d.ts +6 -0
  31. package/dist/component/Icons/align-justify-icon.js +13 -0
  32. package/dist/component/Icons/align-left-icon.d.ts +6 -0
  33. package/dist/component/Icons/align-left-icon.js +13 -0
  34. package/dist/component/Icons/align-right-icon.d.ts +6 -0
  35. package/dist/component/Icons/align-right-icon.js +13 -0
  36. package/dist/component/Icons/align-top-icon.d.ts +6 -0
  37. package/dist/component/Icons/align-top-icon.js +13 -0
  38. package/dist/component/Icons/align-vertically-icon.d.ts +6 -0
  39. package/dist/component/Icons/align-vertically-icon.js +13 -0
  40. package/dist/component/Icons/anticlockwise-line-icon.d.ts +6 -0
  41. package/dist/component/Icons/anticlockwise-line-icon.js +13 -0
  42. package/dist/component/Icons/arrow-down-s-line-icon.d.ts +6 -0
  43. package/dist/component/Icons/arrow-down-s-line-icon.js +13 -0
  44. package/dist/component/Icons/arrow-go-back-line-icon.d.ts +6 -0
  45. package/dist/component/Icons/arrow-go-back-line-icon.js +13 -0
  46. package/dist/component/Icons/arrow-go-forward-line-icon.d.ts +6 -0
  47. package/dist/component/Icons/arrow-go-forward-line-icon.js +13 -0
  48. package/dist/component/Icons/arrow-left-wide-line-icon.d.ts +6 -0
  49. package/dist/component/Icons/arrow-left-wide-line-icon.js +13 -0
  50. package/dist/component/Icons/at-line-icon.d.ts +6 -0
  51. package/dist/component/Icons/at-line-icon.js +13 -0
  52. package/dist/component/Icons/attachment-2-icon.d.ts +6 -0
  53. package/dist/component/Icons/attachment-2-icon.js +13 -0
  54. package/dist/component/Icons/attachment-line-icon.d.ts +6 -0
  55. package/dist/component/Icons/attachment-line-icon.js +13 -0
  56. package/dist/component/Icons/bold-icon.d.ts +6 -0
  57. package/dist/component/Icons/bold-icon.js +13 -0
  58. package/dist/component/Icons/brush-line-icon.d.ts +6 -0
  59. package/dist/component/Icons/brush-line-icon.js +13 -0
  60. package/dist/component/Icons/carousel-view-icon.d.ts +6 -0
  61. package/dist/component/Icons/carousel-view-icon.js +13 -0
  62. package/dist/component/Icons/checkbox-blank-circle-line-icon.d.ts +6 -0
  63. package/dist/component/Icons/checkbox-blank-circle-line-icon.js +13 -0
  64. package/dist/component/Icons/checkbox-circle-line-icon.d.ts +6 -0
  65. package/dist/component/Icons/checkbox-circle-line-icon.js +13 -0
  66. package/dist/component/Icons/clockwise-line-icon.d.ts +6 -0
  67. package/dist/component/Icons/clockwise-line-icon.js +13 -0
  68. package/dist/component/Icons/code-box-line-icon.d.ts +6 -0
  69. package/dist/component/Icons/code-box-line-icon.js +13 -0
  70. package/dist/component/Icons/code-line-icon.d.ts +6 -0
  71. package/dist/component/Icons/code-line-icon.js +13 -0
  72. package/dist/component/Icons/code-s-slash-line-icon.d.ts +6 -0
  73. package/dist/component/Icons/code-s-slash-line-icon.js +13 -0
  74. package/dist/component/Icons/copy-icon.d.ts +6 -0
  75. package/dist/component/Icons/copy-icon.js +13 -0
  76. package/dist/component/Icons/custom-size-icon.d.ts +6 -0
  77. package/dist/component/Icons/custom-size-icon.js +13 -0
  78. package/dist/component/Icons/delete-column-icon.d.ts +6 -0
  79. package/dist/component/Icons/delete-column-icon.js +13 -0
  80. package/dist/component/Icons/delete-line-icon.d.ts +6 -0
  81. package/dist/component/Icons/delete-line-icon.js +13 -0
  82. package/dist/component/Icons/delete-row-icon.d.ts +6 -0
  83. package/dist/component/Icons/delete-row-icon.js +13 -0
  84. package/dist/component/Icons/double-quotes-l-icon.d.ts +6 -0
  85. package/dist/component/Icons/double-quotes-l-icon.js +13 -0
  86. package/dist/component/Icons/download-line-icon.d.ts +6 -0
  87. package/dist/component/Icons/download-line-icon.js +13 -0
  88. package/dist/component/Icons/draggable-icon.d.ts +6 -0
  89. package/dist/component/Icons/draggable-icon.js +13 -0
  90. package/dist/component/Icons/edit-box-line-icon.d.ts +6 -0
  91. package/dist/component/Icons/edit-box-line-icon.js +13 -0
  92. package/dist/component/Icons/export-line-icon.d.ts +6 -0
  93. package/dist/component/Icons/export-line-icon.js +13 -0
  94. package/dist/component/Icons/file-copy-line-icon.d.ts +6 -0
  95. package/dist/component/Icons/file-copy-line-icon.js +13 -0
  96. package/dist/component/Icons/file-upload-line-icon.d.ts +6 -0
  97. package/dist/component/Icons/file-upload-line-icon.js +13 -0
  98. package/dist/component/Icons/flow-chart-icon.d.ts +6 -0
  99. package/dist/component/Icons/flow-chart-icon.js +13 -0
  100. package/dist/component/Icons/font-color-icon.d.ts +6 -0
  101. package/dist/component/Icons/font-color-icon.js +13 -0
  102. package/dist/component/Icons/font-family-icon.d.ts +6 -0
  103. package/dist/component/Icons/font-family-icon.js +13 -0
  104. package/dist/component/Icons/font-size-icon.d.ts +6 -0
  105. package/dist/component/Icons/font-size-icon.js +13 -0
  106. package/dist/component/Icons/format-clear-icon.d.ts +6 -0
  107. package/dist/component/Icons/format-clear-icon.js +13 -0
  108. package/dist/component/Icons/formula-icon.d.ts +6 -0
  109. package/dist/component/Icons/formula-icon.js +13 -0
  110. package/dist/component/Icons/fullscreen-exit-line-icon.d.ts +6 -0
  111. package/dist/component/Icons/fullscreen-exit-line-icon.js +13 -0
  112. package/dist/component/Icons/fullscreen-line-icon.d.ts +6 -0
  113. package/dist/component/Icons/fullscreen-line-icon.js +13 -0
  114. package/dist/component/Icons/functions-icon.d.ts +6 -0
  115. package/dist/component/Icons/functions-icon.js +13 -0
  116. package/dist/component/Icons/game-line-icon.d.ts +6 -0
  117. package/dist/component/Icons/game-line-icon.js +13 -0
  118. package/dist/component/Icons/h-1-icon.d.ts +6 -0
  119. package/dist/component/Icons/h-1-icon.js +13 -0
  120. package/dist/component/Icons/h-2-icon.d.ts +6 -0
  121. package/dist/component/Icons/h-2-icon.js +13 -0
  122. package/dist/component/Icons/h-3-icon.d.ts +6 -0
  123. package/dist/component/Icons/h-3-icon.js +13 -0
  124. package/dist/component/Icons/h-4-icon.d.ts +6 -0
  125. package/dist/component/Icons/h-4-icon.js +13 -0
  126. package/dist/component/Icons/h-5-icon.d.ts +6 -0
  127. package/dist/component/Icons/h-5-icon.js +13 -0
  128. package/dist/component/Icons/h-6-icon.d.ts +6 -0
  129. package/dist/component/Icons/h-6-icon.js +13 -0
  130. package/dist/component/Icons/heading-icon.d.ts +6 -0
  131. package/dist/component/Icons/heading-icon.js +13 -0
  132. package/dist/component/Icons/image-add-line-icon.d.ts +6 -0
  133. package/dist/component/Icons/image-add-line-icon.js +13 -0
  134. package/dist/component/Icons/image-line-icon.d.ts +6 -0
  135. package/dist/component/Icons/image-line-icon.js +13 -0
  136. package/dist/component/Icons/import-line-icon.d.ts +6 -0
  137. package/dist/component/Icons/import-line-icon.js +13 -0
  138. package/dist/component/Icons/index.d.ts +110 -0
  139. package/dist/component/Icons/index.js +113 -0
  140. package/dist/component/Icons/insert-column-left-icon.d.ts +6 -0
  141. package/dist/component/Icons/insert-column-left-icon.js +13 -0
  142. package/dist/component/Icons/insert-column-right-icon.d.ts +6 -0
  143. package/dist/component/Icons/insert-column-right-icon.js +13 -0
  144. package/dist/component/Icons/insert-row-bottom-icon.d.ts +6 -0
  145. package/dist/component/Icons/insert-row-bottom-icon.js +13 -0
  146. package/dist/component/Icons/insert-row-top-icon.d.ts +6 -0
  147. package/dist/component/Icons/insert-row-top-icon.js +13 -0
  148. package/dist/component/Icons/italic-icon.d.ts +6 -0
  149. package/dist/component/Icons/italic-icon.js +13 -0
  150. package/dist/component/Icons/layout-left-2-line-icon.d.ts +6 -0
  151. package/dist/component/Icons/layout-left-2-line-icon.js +13 -0
  152. package/dist/component/Icons/layout-top-2-line-icon.d.ts +6 -0
  153. package/dist/component/Icons/layout-top-2-line-icon.js +13 -0
  154. package/dist/component/Icons/link-icon.d.ts +6 -0
  155. package/dist/component/Icons/link-icon.js +13 -0
  156. package/dist/component/Icons/link-unlink-icon.d.ts +6 -0
  157. package/dist/component/Icons/link-unlink-icon.js +13 -0
  158. package/dist/component/Icons/list-check-2-icon.d.ts +6 -0
  159. package/dist/component/Icons/list-check-2-icon.js +13 -0
  160. package/dist/component/Icons/list-check-3-icon.d.ts +6 -0
  161. package/dist/component/Icons/list-check-3-icon.js +13 -0
  162. package/dist/component/Icons/list-ordered-2-icon.d.ts +6 -0
  163. package/dist/component/Icons/list-ordered-2-icon.js +13 -0
  164. package/dist/component/Icons/list-unordered-icon.d.ts +6 -0
  165. package/dist/component/Icons/list-unordered-icon.js +13 -0
  166. package/dist/component/Icons/markdown-line-icon.d.ts +6 -0
  167. package/dist/component/Icons/markdown-line-icon.js +13 -0
  168. package/dist/component/Icons/markup-line-icon.d.ts +6 -0
  169. package/dist/component/Icons/markup-line-icon.js +13 -0
  170. package/dist/component/Icons/menu-fold-2-fill-icon.d.ts +6 -0
  171. package/dist/component/Icons/menu-fold-2-fill-icon.js +13 -0
  172. package/dist/component/Icons/merge-cells-horizontal-icon.d.ts +6 -0
  173. package/dist/component/Icons/merge-cells-horizontal-icon.js +13 -0
  174. package/dist/component/Icons/merge-cells-vertical-icon.d.ts +6 -0
  175. package/dist/component/Icons/merge-cells-vertical-icon.js +13 -0
  176. package/dist/component/Icons/mind-map-icon.d.ts +6 -0
  177. package/dist/component/Icons/mind-map-icon.js +13 -0
  178. package/dist/component/Icons/more-line-icon.d.ts +6 -0
  179. package/dist/component/Icons/more-line-icon.js +13 -0
  180. package/dist/component/Icons/movie-line-icon.d.ts +6 -0
  181. package/dist/component/Icons/movie-line-icon.js +13 -0
  182. package/dist/component/Icons/music-2-line-icon.d.ts +6 -0
  183. package/dist/component/Icons/music-2-line-icon.js +13 -0
  184. package/dist/component/Icons/node-tree-icon.d.ts +6 -0
  185. package/dist/component/Icons/node-tree-icon.js +13 -0
  186. package/dist/component/Icons/notification-3-line-icon.d.ts +6 -0
  187. package/dist/component/Icons/notification-3-line-icon.js +13 -0
  188. package/dist/component/Icons/organization-chart-icon.d.ts +6 -0
  189. package/dist/component/Icons/organization-chart-icon.js +13 -0
  190. package/dist/component/Icons/pause-line-icon.d.ts +6 -0
  191. package/dist/component/Icons/pause-line-icon.js +13 -0
  192. package/dist/component/Icons/play-line-icon.d.ts +6 -0
  193. package/dist/component/Icons/play-line-icon.js +13 -0
  194. package/dist/component/Icons/quote-text-icon.d.ts +6 -0
  195. package/dist/component/Icons/quote-text-icon.js +13 -0
  196. package/dist/component/Icons/repeat-2-line-icon.d.ts +6 -0
  197. package/dist/component/Icons/repeat-2-line-icon.js +13 -0
  198. package/dist/component/Icons/reset-left-fill-icon.d.ts +6 -0
  199. package/dist/component/Icons/reset-left-fill-icon.js +13 -0
  200. package/dist/component/Icons/scissors-cut-line-icon.d.ts +6 -0
  201. package/dist/component/Icons/scissors-cut-line-icon.js +13 -0
  202. package/dist/component/Icons/screenshot-line-icon.d.ts +6 -0
  203. package/dist/component/Icons/screenshot-line-icon.js +13 -0
  204. package/dist/component/Icons/scroll-to-bottom-line-icon.d.ts +6 -0
  205. package/dist/component/Icons/scroll-to-bottom-line-icon.js +13 -0
  206. package/dist/component/Icons/separator-icon.d.ts +6 -0
  207. package/dist/component/Icons/separator-icon.js +13 -0
  208. package/dist/component/Icons/share-box-line-icon.d.ts +6 -0
  209. package/dist/component/Icons/share-box-line-icon.js +13 -0
  210. package/dist/component/Icons/slash-commands-2-icon.d.ts +3 -0
  211. package/dist/component/Icons/slash-commands-2-icon.js +13 -0
  212. package/dist/component/Icons/speed-line-icon.d.ts +6 -0
  213. package/dist/component/Icons/speed-line-icon.js +13 -0
  214. package/dist/component/Icons/split-cells-horizontal-icon.d.ts +6 -0
  215. package/dist/component/Icons/split-cells-horizontal-icon.js +13 -0
  216. package/dist/component/Icons/split-cells-vertical-icon.d.ts +6 -0
  217. package/dist/component/Icons/split-cells-vertical-icon.js +13 -0
  218. package/dist/component/Icons/square-root-icon.d.ts +6 -0
  219. package/dist/component/Icons/square-root-icon.js +13 -0
  220. package/dist/component/Icons/strikethrough-icon.d.ts +6 -0
  221. package/dist/component/Icons/strikethrough-icon.js +13 -0
  222. package/dist/component/Icons/subscript-icon.d.ts +6 -0
  223. package/dist/component/Icons/subscript-icon.js +13 -0
  224. package/dist/component/Icons/superscript-icon.d.ts +6 -0
  225. package/dist/component/Icons/superscript-icon.js +13 -0
  226. package/dist/component/Icons/table-2-icon.d.ts +6 -0
  227. package/dist/component/Icons/table-2-icon.js +13 -0
  228. package/dist/component/Icons/text-icon.d.ts +6 -0
  229. package/dist/component/Icons/text-icon.js +13 -0
  230. package/dist/component/Icons/text-wrap-icon.d.ts +6 -0
  231. package/dist/component/Icons/text-wrap-icon.js +13 -0
  232. package/dist/component/Icons/title-icon.d.ts +6 -0
  233. package/dist/component/Icons/title-icon.js +13 -0
  234. package/dist/component/Icons/underline-icon.d.ts +6 -0
  235. package/dist/component/Icons/underline-icon.js +13 -0
  236. package/dist/component/Icons/upload-cloud-2-line-icon.d.ts +6 -0
  237. package/dist/component/Icons/upload-cloud-2-line-icon.js +13 -0
  238. package/dist/component/Icons/upload-icon.d.ts +6 -0
  239. package/dist/component/Icons/upload-icon.js +13 -0
  240. package/dist/component/Icons/volume-mute-line-icon.d.ts +6 -0
  241. package/dist/component/Icons/volume-mute-line-icon.js +13 -0
  242. package/dist/component/Icons/volume-up-line-icon.d.ts +6 -0
  243. package/dist/component/Icons/volume-up-line-icon.js +13 -0
  244. package/dist/component/ListHover/index.d.ts +7 -0
  245. package/dist/component/ListHover/index.js +367 -0
  246. package/dist/component/Menu/index.d.ts +4 -0
  247. package/dist/component/Menu/index.js +189 -0
  248. package/dist/component/Toolbar/EditorAlignSelect.d.ts +7 -0
  249. package/dist/component/Toolbar/EditorAlignSelect.js +176 -0
  250. package/dist/component/Toolbar/EditorCode.d.ts +7 -0
  251. package/dist/component/Toolbar/EditorCode.js +150 -0
  252. package/dist/component/Toolbar/EditorFontBgColor.d.ts +7 -0
  253. package/dist/component/Toolbar/EditorFontBgColor.js +244 -0
  254. package/dist/component/Toolbar/EditorFontColor.d.ts +7 -0
  255. package/dist/component/Toolbar/EditorFontColor.js +246 -0
  256. package/dist/component/Toolbar/EditorFontSize.d.ts +7 -0
  257. package/dist/component/Toolbar/EditorFontSize.js +137 -0
  258. package/dist/component/Toolbar/EditorHeading.d.ts +7 -0
  259. package/dist/component/Toolbar/EditorHeading.js +174 -0
  260. package/dist/component/Toolbar/EditorInsert/index.d.ts +7 -0
  261. package/dist/component/Toolbar/EditorInsert/index.js +186 -0
  262. package/dist/component/Toolbar/EditorListSelect.d.ts +7 -0
  263. package/dist/component/Toolbar/EditorListSelect.js +163 -0
  264. package/dist/component/Toolbar/EditorMath.d.ts +7 -0
  265. package/dist/component/Toolbar/EditorMath.js +148 -0
  266. package/dist/component/Toolbar/EditorMore/NotificationDialog.d.ts +7 -0
  267. package/dist/component/Toolbar/EditorMore/NotificationDialog.js +72 -0
  268. package/dist/component/Toolbar/EditorMore/index.d.ts +7 -0
  269. package/dist/component/Toolbar/EditorMore/index.js +101 -0
  270. package/dist/component/Toolbar/EditorScript.d.ts +7 -0
  271. package/dist/component/Toolbar/EditorScript.js +150 -0
  272. package/dist/component/Toolbar/EditorVerticalAlignSelect.d.ts +7 -0
  273. package/dist/component/Toolbar/EditorVerticalAlignSelect.js +163 -0
  274. package/dist/component/Toolbar/Item.d.ts +15 -0
  275. package/dist/component/Toolbar/Item.js +69 -0
  276. package/dist/component/Toolbar/index.d.ts +13 -0
  277. package/dist/component/Toolbar/index.js +13 -0
  278. package/dist/component/index.d.ts +1 -0
  279. package/dist/component/index.js +1 -0
  280. package/dist/contants/enums.d.ts +30 -0
  281. package/dist/contants/enums.js +98 -0
  282. package/dist/contants/highlight.d.ts +4 -0
  283. package/dist/contants/highlight.js +580 -0
  284. package/dist/contants/placeholder.d.ts +16 -0
  285. package/dist/contants/placeholder.js +16 -0
  286. package/dist/contants/shortcut-key.d.ts +48 -0
  287. package/dist/contants/shortcut-key.js +224 -0
  288. package/dist/contants/slash-commands.d.ts +13 -0
  289. package/dist/contants/slash-commands.js +313 -0
  290. package/dist/extension/component/Attachment/Insert.d.ts +13 -0
  291. package/dist/extension/component/Attachment/Insert.js +222 -0
  292. package/dist/extension/component/Attachment/Readonly.d.ts +9 -0
  293. package/dist/extension/component/Attachment/Readonly.js +93 -0
  294. package/dist/extension/component/Attachment/index.d.ts +13 -0
  295. package/dist/extension/component/Attachment/index.js +317 -0
  296. package/dist/extension/component/Audio/Insert.d.ts +10 -0
  297. package/dist/extension/component/Audio/Insert.js +351 -0
  298. package/dist/extension/component/Audio/Readonly.d.ts +8 -0
  299. package/dist/extension/component/Audio/Readonly.js +428 -0
  300. package/dist/extension/component/Audio/index.d.ts +14 -0
  301. package/dist/extension/component/Audio/index.js +740 -0
  302. package/dist/extension/component/CodeBlock/Readonly.d.ts +4 -0
  303. package/dist/extension/component/CodeBlock/Readonly.js +135 -0
  304. package/dist/extension/component/CodeBlock/index.d.ts +4 -0
  305. package/dist/extension/component/CodeBlock/index.js +296 -0
  306. package/dist/extension/component/CustomLink/Insert.d.ts +0 -0
  307. package/dist/extension/component/CustomLink/Insert.js +176 -0
  308. package/dist/extension/component/CustomLink/Readonly.d.ts +0 -0
  309. package/dist/extension/component/CustomLink/Readonly.js +106 -0
  310. package/dist/extension/component/CustomLink/index.d.ts +0 -0
  311. package/dist/extension/component/CustomLink/index.js +440 -0
  312. package/dist/extension/component/EmojiList/index.d.ts +14 -0
  313. package/dist/extension/component/EmojiList/index.js +104 -0
  314. package/dist/extension/component/Image/Crop.d.ts +12 -0
  315. package/dist/extension/component/Image/Crop.js +218 -0
  316. package/dist/extension/component/Image/Insert.d.ts +10 -0
  317. package/dist/extension/component/Image/Insert.js +309 -0
  318. package/dist/extension/component/Image/Readonly.d.ts +8 -0
  319. package/dist/extension/component/Image/Readonly.js +52 -0
  320. package/dist/extension/component/Image/index.d.ts +21 -0
  321. package/dist/extension/component/Image/index.js +372 -0
  322. package/dist/extension/component/Link/Insert.d.ts +10 -0
  323. package/dist/extension/component/Link/Insert.js +253 -0
  324. package/dist/extension/component/Link/Readonly.d.ts +8 -0
  325. package/dist/extension/component/Link/Readonly.js +102 -0
  326. package/dist/extension/component/Link/index.d.ts +12 -0
  327. package/dist/extension/component/Link/index.js +510 -0
  328. package/dist/extension/component/Mathematics/block/Readonly.d.ts +9 -0
  329. package/dist/extension/component/Mathematics/block/Readonly.js +36 -0
  330. package/dist/extension/component/Mathematics/block/index.d.ts +8 -0
  331. package/dist/extension/component/Mathematics/block/index.js +149 -0
  332. package/dist/extension/component/Mathematics/index.d.ts +3 -0
  333. package/dist/extension/component/Mathematics/index.js +3 -0
  334. package/dist/extension/component/Mathematics/inline/Readonly.d.ts +9 -0
  335. package/dist/extension/component/Mathematics/inline/Readonly.js +34 -0
  336. package/dist/extension/component/Mathematics/inline/index.d.ts +8 -0
  337. package/dist/extension/component/Mathematics/inline/index.js +148 -0
  338. package/dist/extension/component/MentionList/index.d.ts +13 -0
  339. package/dist/extension/component/MentionList/index.js +92 -0
  340. package/dist/extension/component/SlashCommandsList/index.d.ts +4 -0
  341. package/dist/extension/component/SlashCommandsList/index.js +121 -0
  342. package/dist/extension/component/Table/ContextMenu.d.ts +10 -0
  343. package/dist/extension/component/Table/ContextMenu.js +228 -0
  344. package/dist/extension/component/Table/TableContextMenuPlugin.d.ts +9 -0
  345. package/dist/extension/component/Table/TableContextMenuPlugin.js +272 -0
  346. package/dist/extension/component/Table/index.d.ts +2 -0
  347. package/dist/extension/component/Table/index.js +2 -0
  348. package/dist/extension/component/UploadProgress/index.d.ts +10 -0
  349. package/dist/extension/component/UploadProgress/index.js +103 -0
  350. package/dist/extension/component/Video/Insert.d.ts +10 -0
  351. package/dist/extension/component/Video/Insert.js +257 -0
  352. package/dist/extension/component/Video/Readonly.d.ts +8 -0
  353. package/dist/extension/component/Video/Readonly.js +41 -0
  354. package/dist/extension/component/Video/index.d.ts +14 -0
  355. package/dist/extension/component/Video/index.js +166 -0
  356. package/dist/extension/extension/SlashCommands.d.ts +3 -0
  357. package/dist/extension/extension/SlashCommands.js +25 -0
  358. package/dist/extension/extension/index.d.ts +1 -0
  359. package/dist/extension/extension/index.js +1 -0
  360. package/dist/extension/index.d.ts +2 -0
  361. package/dist/extension/index.js +176 -0
  362. package/dist/extension/mark/Link.d.ts +0 -0
  363. package/dist/extension/mark/Link.js +58 -0
  364. package/dist/extension/mark/index.d.ts +0 -0
  365. package/dist/extension/mark/index.js +1 -0
  366. package/dist/extension/node/Attachment.d.ts +28 -0
  367. package/dist/extension/node/Attachment.js +227 -0
  368. package/dist/extension/node/Audio.d.ts +23 -0
  369. package/dist/extension/node/Audio.js +194 -0
  370. package/dist/extension/node/CodeBlockLowlight.d.ts +1 -0
  371. package/dist/extension/node/CodeBlockLowlight.js +40 -0
  372. package/dist/extension/node/Details.d.ts +3 -0
  373. package/dist/extension/node/Details.js +39 -0
  374. package/dist/extension/node/Emoji.d.ts +1 -0
  375. package/dist/extension/node/Emoji.js +7 -0
  376. package/dist/extension/node/FileHandler.d.ts +4 -0
  377. package/dist/extension/node/FileHandler.js +294 -0
  378. package/dist/extension/node/Image.d.ts +3 -0
  379. package/dist/extension/node/Image.js +38 -0
  380. package/dist/extension/node/Link/helpers/autolink.d.ts +15 -0
  381. package/dist/extension/node/Link/helpers/autolink.js +162 -0
  382. package/dist/extension/node/Link/helpers/clickHandler.d.ts +10 -0
  383. package/dist/extension/node/Link/helpers/clickHandler.js +46 -0
  384. package/dist/extension/node/Link/helpers/pasteHandler.d.ts +10 -0
  385. package/dist/extension/node/Link/helpers/pasteHandler.js +32 -0
  386. package/dist/extension/node/Link/helpers/whitespace.d.ts +4 -0
  387. package/dist/extension/node/Link/helpers/whitespace.js +6 -0
  388. package/dist/extension/node/Link/index.d.ts +162 -0
  389. package/dist/extension/node/Link/index.js +461 -0
  390. package/dist/extension/node/ListKit.d.ts +2 -0
  391. package/dist/extension/node/ListKit.js +23 -0
  392. package/dist/extension/node/Mathematics.d.ts +27 -0
  393. package/dist/extension/node/Mathematics.js +97 -0
  394. package/dist/extension/node/Mention.d.ts +2 -0
  395. package/dist/extension/node/Mention.js +10 -0
  396. package/dist/extension/node/Table.d.ts +5 -0
  397. package/dist/extension/node/Table.js +174 -0
  398. package/dist/extension/node/TableOfContents/index.d.ts +9 -0
  399. package/dist/extension/node/TableOfContents/index.js +391 -0
  400. package/dist/extension/node/TableOfContents/plugin.d.ts +6 -0
  401. package/dist/extension/node/TableOfContents/plugin.js +58 -0
  402. package/dist/extension/node/TableOfContents/type.d.ts +45 -0
  403. package/dist/extension/node/TableOfContents/type.js +1 -0
  404. package/dist/extension/node/TableOfContents/utils.d.ts +6 -0
  405. package/dist/extension/node/TableOfContents/utils.js +70 -0
  406. package/dist/extension/node/UploadProgress.d.ts +21 -0
  407. package/dist/extension/node/UploadProgress.js +135 -0
  408. package/dist/extension/node/VerticalAlign.d.ts +49 -0
  409. package/dist/extension/node/VerticalAlign.js +88 -0
  410. package/dist/extension/node/Video.d.ts +23 -0
  411. package/dist/extension/node/Video.js +195 -0
  412. package/dist/extension/node/Youtube.d.ts +3 -0
  413. package/dist/extension/node/Youtube.js +14 -0
  414. package/dist/extension/node/index.d.ts +17 -0
  415. package/dist/extension/node/index.js +17 -0
  416. package/dist/extension/suggestion/emoji.d.ts +3 -0
  417. package/dist/extension/suggestion/emoji.js +57 -0
  418. package/dist/extension/suggestion/mention.d.ts +4 -0
  419. package/dist/extension/suggestion/mention.js +88 -0
  420. package/dist/extension/suggestion/slash.d.ts +34 -0
  421. package/dist/extension/suggestion/slash.js +63 -0
  422. package/dist/hook/fn.d.ts +13 -0
  423. package/dist/hook/fn.js +37 -0
  424. package/dist/hook/index.d.ts +4 -0
  425. package/dist/hook/index.js +110 -0
  426. package/dist/index.css +372 -0
  427. package/dist/index.d.ts +7 -0
  428. package/dist/index.js +7 -0
  429. package/dist/themes/color.d.ts +5 -0
  430. package/dist/themes/color.js +4 -0
  431. package/dist/themes/componentStyleOverrides.d.ts +396 -0
  432. package/dist/themes/componentStyleOverrides.js +431 -0
  433. package/dist/themes/custom.d.ts +5 -0
  434. package/dist/themes/custom.js +4 -0
  435. package/dist/themes/dark.d.ts +86 -0
  436. package/dist/themes/dark.js +86 -0
  437. package/dist/themes/index.d.ts +19 -0
  438. package/dist/themes/index.js +37 -0
  439. package/dist/themes/light.d.ts +86 -0
  440. package/dist/themes/light.js +86 -0
  441. package/dist/themes/palette.d.ts +94 -0
  442. package/dist/themes/palette.js +24 -0
  443. package/dist/themes/shadows.d.ts +2 -0
  444. package/dist/themes/shadows.js +3 -0
  445. package/dist/themes/themeContext.d.ts +8 -0
  446. package/dist/themes/themeContext.js +3 -0
  447. package/dist/themes/typography.d.ts +6 -0
  448. package/dist/themes/typography.js +8 -0
  449. package/dist/type/index.d.ts +112 -0
  450. package/dist/type/index.js +1 -0
  451. package/dist/types/images.d.ts +19 -0
  452. package/dist/util/fileDownload.d.ts +16 -0
  453. package/dist/util/fileDownload.js +268 -0
  454. package/dist/util/fileHandler.d.ts +7 -0
  455. package/dist/util/fileHandler.js +79 -0
  456. package/dist/util/floating.d.ts +2 -0
  457. package/dist/util/floating.js +22 -0
  458. package/dist/util/index.d.ts +11 -0
  459. package/dist/util/index.js +39 -0
  460. package/dist/util/migrateMathStrings.d.ts +73 -0
  461. package/dist/util/migrateMathStrings.js +192 -0
  462. package/dist/util/resourceExtractor.d.ts +15 -0
  463. package/dist/util/resourceExtractor.js +62 -0
  464. package/dist/util/shortcutKey.d.ts +2 -0
  465. package/dist/util/shortcutKey.js +9 -0
  466. package/package.json +135 -0
@@ -0,0 +1,228 @@
1
+ import { Box, Divider, MenuItem, MenuList, Stack } from '@mui/material';
2
+ import { ToolbarItem } from "../../../component/Toolbar";
3
+ import React from 'react';
4
+ import { BoldIcon, DeleteColumnIcon, DeleteLineIcon, DeleteRowIcon, InsertColumnLeftIcon, InsertColumnRightIcon, InsertRowBottomIcon, InsertRowTopIcon, ItalicIcon, LayoutLeft2LineIcon, LayoutTop2LineIcon, MergeCellsHorizontalIcon, SplitCellsHorizontalIcon, StrikethroughIcon, UnderlineIcon } from "../../../component/Icons";
5
+ var TableContextMenu = function TableContextMenu(_ref) {
6
+ var editor = _ref.editor,
7
+ onClose = _ref.onClose,
8
+ hasMultipleSelection = _ref.hasMultipleSelection,
9
+ onCommandExecute = _ref.onCommandExecute;
10
+ var handleCommand = function handleCommand(command) {
11
+ command();
12
+ onCommandExecute === null || onCommandExecute === void 0 || onCommandExecute();
13
+ onClose();
14
+ };
15
+ var menuItems = [{
16
+ label: '在左侧插入列',
17
+ icon: /*#__PURE__*/React.createElement(InsertColumnLeftIcon, {
18
+ sx: {
19
+ fontSize: '1rem'
20
+ }
21
+ }),
22
+ action: function action() {
23
+ return handleCommand(function () {
24
+ return editor.chain().focus().addColumnBefore().run();
25
+ });
26
+ },
27
+ show: true
28
+ }, {
29
+ label: '在右侧插入列',
30
+ icon: /*#__PURE__*/React.createElement(InsertColumnRightIcon, {
31
+ sx: {
32
+ fontSize: '1rem'
33
+ }
34
+ }),
35
+ action: function action() {
36
+ return handleCommand(function () {
37
+ return editor.chain().focus().addColumnAfter().run();
38
+ });
39
+ },
40
+ show: true
41
+ }, {
42
+ label: '在上方插入行',
43
+ icon: /*#__PURE__*/React.createElement(InsertRowTopIcon, {
44
+ sx: {
45
+ fontSize: '1rem'
46
+ }
47
+ }),
48
+ action: function action() {
49
+ return handleCommand(function () {
50
+ return editor.chain().focus().addRowBefore().run();
51
+ });
52
+ },
53
+ show: true
54
+ }, {
55
+ label: '在下方插入行',
56
+ icon: /*#__PURE__*/React.createElement(InsertRowBottomIcon, {
57
+ sx: {
58
+ fontSize: '1rem'
59
+ }
60
+ }),
61
+ action: function action() {
62
+ return handleCommand(function () {
63
+ return editor.chain().focus().addRowAfter().run();
64
+ });
65
+ },
66
+ show: true
67
+ }, {
68
+ label: '合并单元格',
69
+ icon: /*#__PURE__*/React.createElement(MergeCellsHorizontalIcon, {
70
+ sx: {
71
+ fontSize: '1rem'
72
+ }
73
+ }),
74
+ action: function action() {
75
+ return handleCommand(function () {
76
+ return editor.chain().focus().mergeCells().run();
77
+ });
78
+ },
79
+ show: hasMultipleSelection
80
+ }, {
81
+ label: '拆分单元格',
82
+ icon: /*#__PURE__*/React.createElement(SplitCellsHorizontalIcon, {
83
+ sx: {
84
+ fontSize: '1rem'
85
+ }
86
+ }),
87
+ action: function action() {
88
+ return handleCommand(function () {
89
+ return editor.chain().focus().splitCell().run();
90
+ });
91
+ },
92
+ show: true
93
+ }, {
94
+ label: '切换表头行',
95
+ icon: /*#__PURE__*/React.createElement(LayoutTop2LineIcon, {
96
+ sx: {
97
+ fontSize: '1rem'
98
+ }
99
+ }),
100
+ action: function action() {
101
+ return handleCommand(function () {
102
+ return editor.chain().focus().toggleHeaderRow().run();
103
+ });
104
+ },
105
+ show: true
106
+ }, {
107
+ label: '切换表头列',
108
+ icon: /*#__PURE__*/React.createElement(LayoutLeft2LineIcon, {
109
+ sx: {
110
+ fontSize: '1rem'
111
+ }
112
+ }),
113
+ action: function action() {
114
+ return handleCommand(function () {
115
+ return editor.chain().focus().toggleHeaderColumn().run();
116
+ });
117
+ },
118
+ show: true
119
+ }, {
120
+ label: '删除当前列',
121
+ icon: /*#__PURE__*/React.createElement(DeleteColumnIcon, {
122
+ sx: {
123
+ fontSize: '1rem',
124
+ color: 'error.main'
125
+ }
126
+ }),
127
+ action: function action() {
128
+ return handleCommand(function () {
129
+ return editor.chain().focus().deleteColumn().run();
130
+ });
131
+ },
132
+ show: true
133
+ }, {
134
+ label: '删除当前行',
135
+ icon: /*#__PURE__*/React.createElement(DeleteRowIcon, {
136
+ sx: {
137
+ fontSize: '1rem',
138
+ color: 'error.main'
139
+ }
140
+ }),
141
+ action: function action() {
142
+ return handleCommand(function () {
143
+ return editor.chain().focus().deleteRow().run();
144
+ });
145
+ },
146
+ show: true
147
+ }, {
148
+ label: '删除表格',
149
+ icon: /*#__PURE__*/React.createElement(DeleteLineIcon, {
150
+ sx: {
151
+ fontSize: '1rem',
152
+ color: 'error.main'
153
+ }
154
+ }),
155
+ action: function action() {
156
+ return handleCommand(function () {
157
+ return editor.chain().focus().deleteTable().run();
158
+ });
159
+ },
160
+ show: true
161
+ }];
162
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Stack, {
163
+ direction: 'row',
164
+ alignItems: 'center',
165
+ sx: {
166
+ p: 0.5
167
+ }
168
+ }, /*#__PURE__*/React.createElement(ToolbarItem, {
169
+ onClick: function onClick() {
170
+ return editor.chain().focus().toggleBold().run();
171
+ },
172
+ icon: /*#__PURE__*/React.createElement(BoldIcon, {
173
+ sx: {
174
+ fontSize: '1rem'
175
+ }
176
+ })
177
+ }), /*#__PURE__*/React.createElement(ToolbarItem, {
178
+ onClick: function onClick() {
179
+ return editor.chain().focus().toggleItalic().run();
180
+ },
181
+ icon: /*#__PURE__*/React.createElement(ItalicIcon, {
182
+ sx: {
183
+ fontSize: '1rem'
184
+ }
185
+ })
186
+ }), /*#__PURE__*/React.createElement(ToolbarItem, {
187
+ onClick: function onClick() {
188
+ return editor.chain().focus().toggleUnderline().run();
189
+ },
190
+ icon: /*#__PURE__*/React.createElement(UnderlineIcon, {
191
+ sx: {
192
+ fontSize: '1rem'
193
+ }
194
+ })
195
+ }), /*#__PURE__*/React.createElement(ToolbarItem, {
196
+ onClick: function onClick() {
197
+ return editor.chain().focus().toggleStrike().run();
198
+ },
199
+ icon: /*#__PURE__*/React.createElement(StrikethroughIcon, {
200
+ sx: {
201
+ fontSize: '1rem'
202
+ }
203
+ })
204
+ })), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(MenuList, {
205
+ sx: {
206
+ p: 0.5
207
+ }
208
+ }, menuItems.map(function (item, index) {
209
+ return item.show ? /*#__PURE__*/React.createElement(MenuItem, {
210
+ key: index,
211
+ onClick: item.action,
212
+ sx: {
213
+ py: 1,
214
+ px: 2,
215
+ fontSize: '0.875rem',
216
+ borderRadius: 'var(--mui-shape-borderRadius)',
217
+ '&:hover': {
218
+ backgroundColor: 'action.hover'
219
+ }
220
+ }
221
+ }, /*#__PURE__*/React.createElement(Stack, {
222
+ direction: "row",
223
+ alignItems: "center",
224
+ gap: 1.5
225
+ }, item.icon, /*#__PURE__*/React.createElement(Box, null, item.label))) : null;
226
+ })));
227
+ };
228
+ export default TableContextMenu;
@@ -0,0 +1,9 @@
1
+ import { Editor } from '@tiptap/core';
2
+ import { Plugin, PluginKey } from '@tiptap/pm/state';
3
+ export interface TableContextMenuPluginState {
4
+ show: boolean;
5
+ anchorEl: HTMLElement | null;
6
+ hasMultipleSelection: boolean;
7
+ }
8
+ export declare const TableContextMenuPluginKey: PluginKey<TableContextMenuPluginState>;
9
+ export declare const createTableContextMenuPlugin: (editor: Editor) => Plugin<TableContextMenuPluginState>;
@@ -0,0 +1,272 @@
1
+ import { Plugin, PluginKey } from '@tiptap/pm/state';
2
+ import React from 'react';
3
+ import { createRoot } from 'react-dom/client';
4
+ import { FloatingPopover } from "../../../component/FloatingPopover";
5
+ import TableContextMenu from "./ContextMenu";
6
+ var hasMultipleCellSelection = function hasMultipleCellSelection(editor) {
7
+ var selection = editor.state.selection;
8
+ if (selection.constructor.name === 'CellSelection') {
9
+ var cellSelection = selection;
10
+ if (cellSelection.ranges && cellSelection.ranges.length > 1) {
11
+ return true;
12
+ }
13
+ if (cellSelection.$anchorCell && cellSelection.$headCell) {
14
+ return cellSelection.$anchorCell.pos !== cellSelection.$headCell.pos;
15
+ }
16
+ }
17
+ var selectionAny = selection;
18
+ if (selectionAny.isColSelection || selectionAny.isRowSelection) {
19
+ return true;
20
+ }
21
+ if (selection.from !== selection.to) {
22
+ var resolvedFrom = editor.state.doc.resolve(selection.from);
23
+ var resolvedTo = editor.state.doc.resolve(selection.to);
24
+ if (resolvedFrom.nodeAfter && resolvedTo.nodeBefore) {
25
+ var fromCell = resolvedFrom.node();
26
+ var toCell = resolvedTo.node();
27
+ if (fromCell !== toCell && (fromCell.type.name === 'tableCell' || fromCell.type.name === 'tableHeader')) {
28
+ return true;
29
+ }
30
+ }
31
+ }
32
+ return false;
33
+ };
34
+ var isClickedCellInSelection = function isClickedCellInSelection(editor, clickedElement) {
35
+ var selection = editor.state.selection;
36
+ if (selection.constructor.name !== '_CellSelection') {
37
+ return false;
38
+ }
39
+ try {
40
+ var editorView = editor.view;
41
+ var domPosition = null;
42
+ if (clickedElement.tagName === 'TD' || clickedElement.tagName === 'TH') {
43
+ domPosition = editorView.posAtDOM(clickedElement, 0);
44
+ } else {
45
+ var parentCell = clickedElement.closest('td, th');
46
+ if (parentCell) {
47
+ domPosition = editorView.posAtDOM(parentCell, 0);
48
+ }
49
+ }
50
+ if (domPosition === null || domPosition === undefined || domPosition < 0) {
51
+ return false;
52
+ }
53
+ var cellSelection = selection;
54
+ // 使用范围判断不精确,直接使用ranges判断
55
+ var ranges = cellSelection.ranges.map(function (it) {
56
+ return it.$from.pos;
57
+ });
58
+ return ranges.includes(domPosition);
59
+ // if (cellSelection.$anchorCell && cellSelection.$headCell) {
60
+ // const anchorPos = cellSelection.$anchorCell.pos;
61
+ // const headPos = cellSelection.$headCell.pos;
62
+ // const minPos = Math.min(anchorPos, headPos);
63
+ // const maxPos = Math.max(anchorPos, headPos);
64
+ // return domPosition >= minPos && domPosition <= maxPos;
65
+ // }
66
+ // return domPosition >= selection.from && domPosition <= selection.to;
67
+ } catch (error) {
68
+ console.warn('Error checking if clicked cell is in selection:', error);
69
+ return false;
70
+ }
71
+ };
72
+ var saveCurrentSelection = function saveCurrentSelection(editor) {
73
+ return {
74
+ selection: editor.state.selection,
75
+ doc: editor.state.doc
76
+ };
77
+ };
78
+ var restoreSelection = function restoreSelection(editor, savedState) {
79
+ if (savedState && savedState.selection) {
80
+ try {
81
+ var tr = editor.state.tr.setSelection(savedState.selection);
82
+ editor.view.dispatch(tr);
83
+ editor.view.updateState(editor.view.state);
84
+ requestAnimationFrame(function () {
85
+ editor.view.dom.dispatchEvent(new Event('selectionchange', {
86
+ bubbles: true
87
+ }));
88
+ });
89
+ } catch (error) {
90
+ console.warn('Failed to restore table cell selection:', error);
91
+ }
92
+ }
93
+ };
94
+ var isInTableCell = function isInTableCell(element) {
95
+ var cell = element.closest('td, th');
96
+ if (!cell) return false;
97
+ var editorElement = cell.closest('.tiptap');
98
+ return !!editorElement;
99
+ };
100
+ var getTableCell = function getTableCell(element) {
101
+ var cell = element.closest('td, th');
102
+ if (!cell) return null;
103
+ var editorElement = cell.closest('.tiptap');
104
+ return editorElement ? cell : null;
105
+ };
106
+ export var TableContextMenuPluginKey = new PluginKey('tableContextMenu');
107
+ export var createTableContextMenuPlugin = function createTableContextMenuPlugin(editor) {
108
+ var menuContainer = null;
109
+ var root = null;
110
+ var savedSelection = null;
111
+ var commandExecuted = false;
112
+ var preventSelectionLoss = false;
113
+ var createMenuContainer = function createMenuContainer() {
114
+ if (!menuContainer) {
115
+ menuContainer = document.createElement('div');
116
+ menuContainer.style.position = 'fixed';
117
+ menuContainer.style.zIndex = '9999';
118
+ menuContainer.style.pointerEvents = 'auto';
119
+ document.body.appendChild(menuContainer);
120
+ root = createRoot(menuContainer);
121
+ }
122
+ return {
123
+ menuContainer: menuContainer,
124
+ root: root
125
+ };
126
+ };
127
+ var destroyMenuContainer = function destroyMenuContainer() {
128
+ if (root) {
129
+ root.unmount();
130
+ root = null;
131
+ }
132
+ if (menuContainer) {
133
+ document.body.removeChild(menuContainer);
134
+ menuContainer = null;
135
+ }
136
+ };
137
+ var hideContextMenu = function hideContextMenu() {
138
+ if (root) {
139
+ root.render(null);
140
+ }
141
+ if (savedSelection && !commandExecuted && !preventSelectionLoss) {
142
+ restoreSelection(editor, savedSelection);
143
+ }
144
+ savedSelection = null;
145
+ commandExecuted = false;
146
+ preventSelectionLoss = false;
147
+ };
148
+ var showContextMenu = function showContextMenu(anchorEl, hasMultipleSelection) {
149
+ var _createMenuContainer = createMenuContainer(),
150
+ root = _createMenuContainer.root;
151
+ commandExecuted = false;
152
+ var handleClose = function handleClose() {
153
+ hideContextMenu();
154
+ };
155
+ var handleCommandExecute = function handleCommandExecute() {
156
+ commandExecuted = true;
157
+ savedSelection = null;
158
+ };
159
+ root.render( /*#__PURE__*/React.createElement(FloatingPopover, {
160
+ open: !!anchorEl,
161
+ anchorEl: anchorEl,
162
+ onClose: handleClose,
163
+ placement: "bottom"
164
+ }, /*#__PURE__*/React.createElement(TableContextMenu, {
165
+ editor: editor,
166
+ hasMultipleSelection: hasMultipleSelection,
167
+ onClose: handleClose,
168
+ onCommandExecute: handleCommandExecute
169
+ })));
170
+ };
171
+ return new Plugin({
172
+ key: TableContextMenuPluginKey,
173
+ state: {
174
+ init: function init() {
175
+ return {
176
+ show: false,
177
+ anchorEl: null,
178
+ hasMultipleSelection: false
179
+ };
180
+ },
181
+ apply: function apply(tr, oldState) {
182
+ return oldState;
183
+ }
184
+ },
185
+ props: {
186
+ handleDOMEvents: {
187
+ contextmenu: function contextmenu(view, event) {
188
+ var target = event.target;
189
+ if (!isInTableCell(target)) {
190
+ hideContextMenu();
191
+ preventSelectionLoss = false;
192
+ return false;
193
+ }
194
+ event.preventDefault();
195
+ event.stopPropagation();
196
+ var cellElement = getTableCell(target);
197
+ if (!cellElement) {
198
+ preventSelectionLoss = false;
199
+ return false;
200
+ }
201
+ if (preventSelectionLoss && savedSelection) {
202
+ restoreSelection(editor, savedSelection);
203
+ setTimeout(function () {
204
+ var selectedCells = document.querySelectorAll('.tiptap .selectedCell');
205
+ console.log('✅ Selected cells after restore:', selectedCells.length);
206
+ }, 50);
207
+ }
208
+ var hasMultipleSelection = savedSelection ? true : hasMultipleCellSelection(editor);
209
+ showContextMenu(cellElement, hasMultipleSelection);
210
+ preventSelectionLoss = false;
211
+ return true;
212
+ },
213
+ mousedown: function mousedown(view, event) {
214
+ var target = event.target;
215
+ if (event.button === 2) {
216
+ if (isInTableCell(target)) {
217
+ var cellElement = getTableCell(target);
218
+ if (cellElement) {
219
+ var currentHasMultipleSelection = hasMultipleCellSelection(editor);
220
+ if (currentHasMultipleSelection) {
221
+ var isInSelection = isClickedCellInSelection(editor, cellElement);
222
+ if (isInSelection) {
223
+ savedSelection = saveCurrentSelection(editor);
224
+ preventSelectionLoss = true;
225
+ event.preventDefault();
226
+ event.stopPropagation();
227
+ return true;
228
+ } else {
229
+ console.log('❌ Right-click outside selection, allowing normal behavior');
230
+ }
231
+ }
232
+ }
233
+ }
234
+ } else {
235
+ if (!target.closest('[role="menu"]') && !target.closest('.MuiPaper-root')) {
236
+ hideContextMenu();
237
+ }
238
+ }
239
+ return false;
240
+ },
241
+ mouseup: function mouseup(view, event) {
242
+ if (event.button === 2 && preventSelectionLoss) {
243
+ setTimeout(function () {
244
+ if (preventSelectionLoss) {
245
+ preventSelectionLoss = false;
246
+ if (savedSelection && !commandExecuted) {
247
+ restoreSelection(editor, savedSelection);
248
+ savedSelection = null;
249
+ }
250
+ }
251
+ }, 10);
252
+ }
253
+ return false;
254
+ },
255
+ keydown: function keydown(view, event) {
256
+ if (event.key === 'Escape') {
257
+ hideContextMenu();
258
+ return true;
259
+ }
260
+ return false;
261
+ }
262
+ }
263
+ },
264
+ view: function view() {
265
+ return {
266
+ destroy: function destroy() {
267
+ destroyMenuContainer();
268
+ }
269
+ };
270
+ }
271
+ });
272
+ };
@@ -0,0 +1,2 @@
1
+ export { default as TableContextMenu } from './ContextMenu';
2
+ export { createTableContextMenuPlugin, TableContextMenuPluginKey, type TableContextMenuPluginState } from './TableContextMenuPlugin';
@@ -0,0 +1,2 @@
1
+ export { default as TableContextMenu } from "./ContextMenu";
2
+ export { createTableContextMenuPlugin, TableContextMenuPluginKey } from "./TableContextMenuPlugin";
@@ -0,0 +1,10 @@
1
+ import { NodeViewProps } from '@tiptap/react';
2
+ import React from 'react';
3
+ export interface UploadProgressAttributes {
4
+ fileName: string;
5
+ fileType: 'image' | 'video' | 'other';
6
+ progress: number;
7
+ tempId: string;
8
+ }
9
+ declare const UploadProgressView: React.FC<NodeViewProps>;
10
+ export default UploadProgressView;
@@ -0,0 +1,103 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { Box, CircularProgress, Stack } from '@mui/material';
8
+ import { NodeViewWrapper } from '@tiptap/react';
9
+ import { AttachmentLineIcon, ImageLineIcon, MovieLineIcon } from "../../../component/Icons";
10
+ import React from 'react';
11
+ var UploadProgressView = function UploadProgressView(_ref) {
12
+ var node = _ref.node;
13
+ var attrs = node.attrs;
14
+ var getFileIcon = function getFileIcon(fileType) {
15
+ switch (fileType) {
16
+ case 'image':
17
+ return /*#__PURE__*/React.createElement(ImageLineIcon, {
18
+ sx: {
19
+ fontSize: '1rem'
20
+ }
21
+ });
22
+ case 'video':
23
+ return /*#__PURE__*/React.createElement(MovieLineIcon, {
24
+ sx: {
25
+ fontSize: '1rem'
26
+ }
27
+ });
28
+ default:
29
+ return /*#__PURE__*/React.createElement(AttachmentLineIcon, {
30
+ sx: {
31
+ fontSize: '1rem'
32
+ }
33
+ });
34
+ }
35
+ };
36
+ var getFileTypeText = function getFileTypeText(fileType) {
37
+ switch (fileType) {
38
+ case 'image':
39
+ return '图片';
40
+ case 'video':
41
+ return '视频';
42
+ default:
43
+ return '文件';
44
+ }
45
+ };
46
+ return /*#__PURE__*/React.createElement(NodeViewWrapper, {
47
+ className: "upload-progress-wrapper"
48
+ }, /*#__PURE__*/React.createElement(Box, {
49
+ sx: _objectSpread({
50
+ position: 'relative',
51
+ border: '1px dashed',
52
+ borderColor: 'divider',
53
+ borderRadius: 'var(--mui-shape-borderRadius)',
54
+ p: 2
55
+ }, !attrs.progress ? {
56
+ cursor: 'pointer',
57
+ '&:hover': {
58
+ bgcolor: 'action.hover'
59
+ },
60
+ '&:active': {
61
+ bgcolor: 'action.selected'
62
+ }
63
+ } : {
64
+ "&::before": {
65
+ content: '""',
66
+ position: 'absolute',
67
+ top: 0,
68
+ left: 0,
69
+ height: '100%',
70
+ width: "".concat(attrs.progress * 100, "%"),
71
+ bgcolor: 'primary.main',
72
+ opacity: 0.1,
73
+ transition: 'width 0.3s ease'
74
+ }
75
+ }),
76
+ "data-temp-id": attrs.tempId
77
+ }, /*#__PURE__*/React.createElement(Stack, {
78
+ direction: "row",
79
+ alignItems: "center",
80
+ justifyContent: "space-between"
81
+ }, /*#__PURE__*/React.createElement(Stack, {
82
+ direction: "row",
83
+ alignItems: "center",
84
+ gap: 2
85
+ }, getFileIcon(attrs.fileType), /*#__PURE__*/React.createElement(Box, {
86
+ sx: {
87
+ fontSize: '0.875rem',
88
+ color: 'text.primary'
89
+ }
90
+ }, "\u6B63\u5728\u4E0A\u4F20", getFileTypeText(attrs.fileType), "\uFF1A", attrs.fileName)), /*#__PURE__*/React.createElement(Stack, {
91
+ direction: "row",
92
+ alignItems: "center",
93
+ gap: 1
94
+ }, attrs.progress < 1 && /*#__PURE__*/React.createElement(CircularProgress, {
95
+ size: 14
96
+ }), /*#__PURE__*/React.createElement(Box, {
97
+ sx: {
98
+ fontSize: '0.75rem',
99
+ color: 'text.secondary'
100
+ }
101
+ }, Math.round(attrs.progress * 100), "%")))));
102
+ };
103
+ export default UploadProgressView;
@@ -0,0 +1,10 @@
1
+ import { EditorFnProps } from "../../../type";
2
+ import React from "react";
3
+ import { VideoAttributes } from ".";
4
+ type InsertVideoProps = {
5
+ selected: boolean;
6
+ attrs: VideoAttributes;
7
+ updateAttributes: (attrs: VideoAttributes) => void;
8
+ } & EditorFnProps;
9
+ declare const InsertVideo: ({ selected, attrs, updateAttributes, onUpload, onError }: InsertVideoProps) => React.JSX.Element;
10
+ export default InsertVideo;