@milkdown/crepe 7.4.0 → 7.5.1

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 (424) hide show
  1. package/lib/cjs/clsx-dASsG01A.js +6 -0
  2. package/lib/cjs/clsx-dASsG01A.js.map +1 -0
  3. package/lib/cjs/{index-5PcT4iSf.js → index--2zEz40J.js} +8 -22
  4. package/lib/cjs/{index-5PcT4iSf.js.map → index--2zEz40J.js.map} +1 -1
  5. package/lib/cjs/{index-lrFGGa_l.js → index-5n9R-QCl.js} +5 -19
  6. package/lib/cjs/{index-lrFGGa_l.js.map → index-5n9R-QCl.js.map} +1 -1
  7. package/lib/cjs/{index-SxWWV8XD.js → index-HEdBw63r.js} +8 -22
  8. package/lib/cjs/{index-SxWWV8XD.js.map → index-HEdBw63r.js.map} +1 -1
  9. package/lib/cjs/{index-vlxA_KJ8.js → index-Hlt9dRH5.js} +5 -19
  10. package/lib/cjs/{index-vlxA_KJ8.js.map → index-Hlt9dRH5.js.map} +1 -1
  11. package/lib/cjs/{index-TEjdwq--.js → index-KCW2CzRk.js} +8 -22
  12. package/lib/{esm/index-DoEghZHy.js.map → cjs/index-KCW2CzRk.js.map} +1 -1
  13. package/lib/cjs/{index-qRg5-QJH.js → index-KSZhahYb.js} +6 -20
  14. package/lib/cjs/{index-qRg5-QJH.js.map → index-KSZhahYb.js.map} +1 -1
  15. package/lib/cjs/index-N1cRxqdw.js +39 -0
  16. package/lib/cjs/index-N1cRxqdw.js.map +1 -0
  17. package/lib/cjs/{index-fkT0ywfA.js → index-NNo_VSEA.js} +5 -19
  18. package/lib/cjs/{index-fkT0ywfA.js.map → index-NNo_VSEA.js.map} +1 -1
  19. package/lib/cjs/{index-OtaMLv5l.js → index-O1bDbloo.js} +5 -19
  20. package/lib/cjs/{index-OtaMLv5l.js.map → index-O1bDbloo.js.map} +1 -1
  21. package/lib/cjs/{index-mJ47ZWO2.js → index-OPh9naof.js} +8 -22
  22. package/lib/cjs/{index-mJ47ZWO2.js.map → index-OPh9naof.js.map} +1 -1
  23. package/lib/cjs/{index-OA_u95ey.js → index-PAhfZtcH.js} +5 -19
  24. package/lib/cjs/{index-OA_u95ey.js.map → index-PAhfZtcH.js.map} +1 -1
  25. package/lib/cjs/{index-zBr61zy6.js → index-PeRHVz4A.js} +5 -19
  26. package/lib/{esm/index-6P9Xk934.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
  27. package/lib/cjs/{index-llNS_EuP.js → index-U7GWrg-w.js} +26 -470
  28. package/lib/cjs/index-U7GWrg-w.js.map +1 -0
  29. package/lib/cjs/{index-wXLifZgm.js → index-UTb0Az5e.js} +2 -2
  30. package/lib/cjs/{index-wXLifZgm.js.map → index-UTb0Az5e.js.map} +1 -1
  31. package/lib/cjs/{index-t_GA5F26.js → index-UnEAyH8X.js} +5 -19
  32. package/lib/cjs/{index-t_GA5F26.js.map → index-UnEAyH8X.js.map} +1 -1
  33. package/lib/cjs/{index-i0_v2uVp.js → index-VCkq0ru1.js} +5 -19
  34. package/lib/{esm/index-4QzlLVWs.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
  35. package/lib/cjs/{index-OIQn1x0L.js → index-WQl7Du53.js} +4 -18
  36. package/lib/cjs/index-WQl7Du53.js.map +1 -0
  37. package/lib/cjs/{index-GEIgbcVc.js → index-ahL5MvrQ.js} +28 -42
  38. package/lib/cjs/{index-GEIgbcVc.js.map → index-ahL5MvrQ.js.map} +1 -1
  39. package/lib/cjs/{index-tbEq3xma.js → index-bpgWLeRY.js} +5 -19
  40. package/lib/cjs/{index-tbEq3xma.js.map → index-bpgWLeRY.js.map} +1 -1
  41. package/lib/cjs/index-dEVmN_aj.js +26 -0
  42. package/lib/cjs/index-dEVmN_aj.js.map +1 -0
  43. package/lib/cjs/{index-w9buMrFW.js → index-fZupvR_f.js} +8 -22
  44. package/lib/{esm/index-hQaRWeq1.js.map → cjs/index-fZupvR_f.js.map} +1 -1
  45. package/lib/cjs/{index-ortUqbAp.js → index-gSM-jgti.js} +5 -19
  46. package/lib/{esm/index-oMy83ynO.js.map → cjs/index-gSM-jgti.js.map} +1 -1
  47. package/lib/cjs/{index-LdEYPSZc.js → index-jlPr_A_N.js} +5 -19
  48. package/lib/cjs/{index-LdEYPSZc.js.map → index-jlPr_A_N.js.map} +1 -1
  49. package/lib/cjs/index-ocxd4A-M.js +675 -0
  50. package/lib/cjs/index-ocxd4A-M.js.map +1 -0
  51. package/lib/cjs/{index-xqKfEyRA.js → index-rFFAL9YA.js} +14 -17
  52. package/lib/cjs/index-rFFAL9YA.js.map +1 -0
  53. package/lib/cjs/index-tlx25I_m.js +36 -0
  54. package/lib/cjs/index-tlx25I_m.js.map +1 -0
  55. package/lib/cjs/index-tqAbVyds.js +28 -0
  56. package/lib/cjs/index-tqAbVyds.js.map +1 -0
  57. package/lib/cjs/index-udZSknd8.js +167 -0
  58. package/lib/cjs/index-udZSknd8.js.map +1 -0
  59. package/lib/cjs/index-uleaJDBC.js +19 -0
  60. package/lib/cjs/index-uleaJDBC.js.map +1 -0
  61. package/lib/cjs/{index-de3dfsQr.js → index-urB-WDqA.js} +7 -21
  62. package/lib/cjs/{index-de3dfsQr.js.map → index-urB-WDqA.js.map} +1 -1
  63. package/lib/cjs/{index-78P4PeZ9.js → index-xWgWtxUR.js} +6 -20
  64. package/lib/cjs/{index-78P4PeZ9.js.map → index-xWgWtxUR.js.map} +1 -1
  65. package/lib/cjs/index-z6pe2alg.js.map +1 -1
  66. package/lib/cjs/index.js +150 -13
  67. package/lib/cjs/index.js.map +1 -1
  68. package/lib/cjs/todoList-YYRQo7wG.js +404 -0
  69. package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
  70. package/lib/esm/clsx-RxCLxYpD.js +4 -0
  71. package/lib/esm/clsx-RxCLxYpD.js.map +1 -0
  72. package/lib/esm/{index-a-SAfeeT.js → index-1NetiFdJ.js} +8 -22
  73. package/lib/esm/{index-a-SAfeeT.js.map → index-1NetiFdJ.js.map} +1 -1
  74. package/lib/esm/{index-NmjiRA0M.js → index-2I_xbjAZ.js} +28 -42
  75. package/lib/esm/{index-NmjiRA0M.js.map → index-2I_xbjAZ.js.map} +1 -1
  76. package/lib/esm/{index-Grquo08f.js → index-2huXYfuJ.js} +8 -22
  77. package/lib/esm/{index-Grquo08f.js.map → index-2huXYfuJ.js.map} +1 -1
  78. package/lib/esm/{index-U8q-F7hU.js → index-4x6_TVZv.js} +5 -19
  79. package/lib/esm/{index-U8q-F7hU.js.map → index-4x6_TVZv.js.map} +1 -1
  80. package/lib/esm/index-6JoGWH2I.js +17 -0
  81. package/lib/esm/index-6JoGWH2I.js.map +1 -0
  82. package/lib/esm/{index-x-zW6gKj.js → index-A-dNwMMf.js} +2 -2
  83. package/lib/esm/{index-x-zW6gKj.js.map → index-A-dNwMMf.js.map} +1 -1
  84. package/lib/esm/{index-oMy83ynO.js → index-AV99ipmP.js} +5 -19
  85. package/lib/{cjs/index-ortUqbAp.js.map → esm/index-AV99ipmP.js.map} +1 -1
  86. package/lib/esm/{index-VyZguCIt.js → index-CMGDOz11.js} +10 -13
  87. package/lib/esm/index-CMGDOz11.js.map +1 -0
  88. package/lib/esm/index-HlPKwzLC.js +34 -0
  89. package/lib/esm/index-HlPKwzLC.js.map +1 -0
  90. package/lib/esm/index-Jvxff1vU.js.map +1 -1
  91. package/lib/esm/{index-vwrMVELn.js → index-PC2bahtq.js} +5 -19
  92. package/lib/esm/{index-vwrMVELn.js.map → index-PC2bahtq.js.map} +1 -1
  93. package/lib/esm/{index-UBeneu17.js → index-QBYz82jZ.js} +5 -19
  94. package/lib/esm/{index-UBeneu17.js.map → index-QBYz82jZ.js.map} +1 -1
  95. package/lib/esm/{index-bsED907r.js → index-W1pAMr_8.js} +6 -20
  96. package/lib/esm/{index-bsED907r.js.map → index-W1pAMr_8.js.map} +1 -1
  97. package/lib/esm/{index-q-qE7-96.js → index-Xzdc2jbA.js} +25 -469
  98. package/lib/esm/index-Xzdc2jbA.js.map +1 -0
  99. package/lib/esm/{index-A9zdyi2L.js → index-ZAtZWqJQ.js} +5 -19
  100. package/lib/esm/{index-A9zdyi2L.js.map → index-ZAtZWqJQ.js.map} +1 -1
  101. package/lib/esm/index-_A9vu1ED.js +673 -0
  102. package/lib/esm/index-_A9vu1ED.js.map +1 -0
  103. package/lib/esm/{index-U71v7KdA.js → index-bnSKBrbD.js} +5 -19
  104. package/lib/esm/{index-U71v7KdA.js.map → index-bnSKBrbD.js.map} +1 -1
  105. package/lib/esm/index-fVrfHXda.js +24 -0
  106. package/lib/esm/index-fVrfHXda.js.map +1 -0
  107. package/lib/esm/{index-PkBZpDL4.js → index-ftnOhuRS.js} +4 -18
  108. package/lib/esm/index-ftnOhuRS.js.map +1 -0
  109. package/lib/esm/{index-4oMdufW4.js → index-iQPB0Rdl.js} +6 -20
  110. package/lib/esm/{index-4oMdufW4.js.map → index-iQPB0Rdl.js.map} +1 -1
  111. package/lib/esm/{index-0khVa44f.js → index-kPj3-TKp.js} +5 -19
  112. package/lib/esm/{index-0khVa44f.js.map → index-kPj3-TKp.js.map} +1 -1
  113. package/lib/esm/{index-hQaRWeq1.js → index-kgOR7SZ6.js} +8 -22
  114. package/lib/{cjs/index-w9buMrFW.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
  115. package/lib/esm/index-lm00PM0y.js +165 -0
  116. package/lib/esm/index-lm00PM0y.js.map +1 -0
  117. package/lib/esm/{index-4QzlLVWs.js → index-m49Bj3q7.js} +5 -19
  118. package/lib/{cjs/index-i0_v2uVp.js.map → esm/index-m49Bj3q7.js.map} +1 -1
  119. package/lib/esm/index-ohmbt6Ys.js +37 -0
  120. package/lib/esm/index-ohmbt6Ys.js.map +1 -0
  121. package/lib/esm/{index-DoEghZHy.js → index-sWVjGw-3.js} +8 -22
  122. package/lib/esm/index-sWVjGw-3.js.map +1 -0
  123. package/lib/esm/{index-L7VXk-jT.js → index-twh8lL5o.js} +5 -19
  124. package/lib/esm/{index-L7VXk-jT.js.map → index-twh8lL5o.js.map} +1 -1
  125. package/lib/esm/{index-6P9Xk934.js → index-v02MCz4_.js} +5 -19
  126. package/lib/{cjs/index-zBr61zy6.js.map → esm/index-v02MCz4_.js.map} +1 -1
  127. package/lib/esm/index-v3rvbocl.js +26 -0
  128. package/lib/esm/index-v3rvbocl.js.map +1 -0
  129. package/lib/esm/{index-7BVeXLQZ.js → index-wEXT8mbN.js} +5 -19
  130. package/lib/esm/{index-7BVeXLQZ.js.map → index-wEXT8mbN.js.map} +1 -1
  131. package/lib/esm/{index-rwcSpYkt.js → index-wFIac5Kw.js} +7 -21
  132. package/lib/esm/{index-rwcSpYkt.js.map → index-wFIac5Kw.js.map} +1 -1
  133. package/lib/esm/{index-bVubJ6Rv.js → index-wg94ewRo.js} +8 -22
  134. package/lib/esm/{index-bVubJ6Rv.js.map → index-wg94ewRo.js.map} +1 -1
  135. package/lib/esm/index.js +152 -11
  136. package/lib/esm/index.js.map +1 -1
  137. package/lib/esm/todoList-9QsDDcmB.js +368 -0
  138. package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
  139. package/lib/theme/_internal/classic-common.css +3 -2
  140. package/lib/theme/common/block-edit.css +3 -1
  141. package/lib/theme/common/code-mirror.css +15 -0
  142. package/lib/theme/common/cursor.css +1 -1
  143. package/lib/theme/common/image-block.css +2 -0
  144. package/lib/theme/common/link-tooltip.css +10 -13
  145. package/lib/theme/common/list-item.css +16 -1
  146. package/lib/theme/common/prosemirror.css +1 -1
  147. package/lib/theme/common/style.css +1 -0
  148. package/lib/theme/common/table.css +217 -0
  149. package/lib/theme/common/toolbar.css +11 -4
  150. package/lib/theme/{classic-dark → crepe-dark}/style.css +2 -2
  151. package/lib/theme/frame/style.css +28 -0
  152. package/lib/theme/frame-dark/style.css +28 -0
  153. package/lib/theme/nord/style.css +28 -0
  154. package/lib/theme/nord-dark/style.css +28 -0
  155. package/lib/types/core/crepe.d.ts +5 -3
  156. package/lib/types/core/crepe.d.ts.map +1 -1
  157. package/lib/types/core/slice.d.ts +2 -2
  158. package/lib/types/core/slice.d.ts.map +1 -1
  159. package/lib/types/feature/block-edit/handle/component.d.ts +3 -0
  160. package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
  161. package/lib/types/feature/block-edit/handle/index.d.ts +5 -4
  162. package/lib/types/feature/block-edit/handle/index.d.ts.map +1 -1
  163. package/lib/types/feature/block-edit/index.d.ts +43 -2
  164. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  165. package/lib/types/feature/block-edit/menu/component.d.ts +3 -1
  166. package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
  167. package/lib/types/feature/block-edit/menu/config.d.ts +3 -12
  168. package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
  169. package/lib/types/feature/block-edit/menu/group-builder.d.ts +29 -0
  170. package/lib/types/feature/block-edit/menu/group-builder.d.ts.map +1 -0
  171. package/lib/types/feature/block-edit/menu/index.d.ts +5 -4
  172. package/lib/types/feature/block-edit/menu/index.d.ts.map +1 -1
  173. package/lib/types/feature/block-edit/menu/utils.d.ts +28 -0
  174. package/lib/types/feature/block-edit/menu/utils.d.ts.map +1 -0
  175. package/lib/types/feature/code-mirror/index.d.ts +9 -1
  176. package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
  177. package/lib/types/feature/cursor/index.d.ts +1 -1
  178. package/lib/types/feature/cursor/index.d.ts.map +1 -1
  179. package/lib/types/feature/image-block/index.d.ts +19 -2
  180. package/lib/types/feature/image-block/index.d.ts.map +1 -1
  181. package/lib/types/feature/index.d.ts +17 -2
  182. package/lib/types/feature/index.d.ts.map +1 -1
  183. package/lib/types/feature/link-tooltip/index.d.ts +12 -2
  184. package/lib/types/feature/link-tooltip/index.d.ts.map +1 -1
  185. package/lib/types/feature/list-item/index.d.ts +8 -2
  186. package/lib/types/feature/list-item/index.d.ts.map +1 -1
  187. package/lib/types/feature/placeholder/index.d.ts +2 -2
  188. package/lib/types/feature/placeholder/index.d.ts.map +1 -1
  189. package/lib/types/feature/shared.d.ts +3 -1
  190. package/lib/types/feature/shared.d.ts.map +1 -1
  191. package/lib/types/feature/table/index.d.ts +16 -0
  192. package/lib/types/feature/table/index.d.ts.map +1 -0
  193. package/lib/types/feature/toolbar/component.d.ts +3 -1
  194. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  195. package/lib/types/feature/toolbar/index.d.ts +11 -2
  196. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  197. package/lib/types/icons/alignCenter.d.ts +2 -0
  198. package/lib/types/icons/alignCenter.d.ts.map +1 -0
  199. package/lib/types/icons/alignLeft.d.ts +2 -0
  200. package/lib/types/icons/alignLeft.d.ts.map +1 -0
  201. package/lib/types/icons/alignRight.d.ts +2 -0
  202. package/lib/types/icons/alignRight.d.ts.map +1 -0
  203. package/lib/types/icons/bold.d.ts +2 -0
  204. package/lib/types/icons/bold.d.ts.map +1 -0
  205. package/lib/types/{feature/list-item/consts.d.ts → icons/bullet.d.ts} +1 -1
  206. package/lib/types/icons/bullet.d.ts.map +1 -0
  207. package/lib/types/icons/bulletList.d.ts +2 -0
  208. package/lib/types/icons/bulletList.d.ts.map +1 -0
  209. package/lib/types/icons/caption.d.ts +2 -0
  210. package/lib/types/icons/caption.d.ts.map +1 -0
  211. package/lib/types/icons/checkBoxChecked.d.ts +2 -0
  212. package/lib/types/icons/checkBoxChecked.d.ts.map +1 -0
  213. package/lib/types/icons/checkBoxUnchecked.d.ts +2 -0
  214. package/lib/types/icons/checkBoxUnchecked.d.ts.map +1 -0
  215. package/lib/types/icons/chevronDown.d.ts +2 -0
  216. package/lib/types/icons/chevronDown.d.ts.map +1 -0
  217. package/lib/types/icons/clear.d.ts +2 -0
  218. package/lib/types/icons/clear.d.ts.map +1 -0
  219. package/lib/types/icons/code.d.ts +2 -0
  220. package/lib/types/icons/code.d.ts.map +1 -0
  221. package/lib/types/icons/confirm.d.ts +2 -0
  222. package/lib/types/icons/confirm.d.ts.map +1 -0
  223. package/lib/types/icons/divider.d.ts +2 -0
  224. package/lib/types/icons/divider.d.ts.map +1 -0
  225. package/lib/types/icons/dragHandle.d.ts +2 -0
  226. package/lib/types/icons/dragHandle.d.ts.map +1 -0
  227. package/lib/types/icons/edit.d.ts +2 -0
  228. package/lib/types/icons/edit.d.ts.map +1 -0
  229. package/lib/types/icons/h1.d.ts +2 -0
  230. package/lib/types/icons/h1.d.ts.map +1 -0
  231. package/lib/types/icons/h2.d.ts +2 -0
  232. package/lib/types/icons/h2.d.ts.map +1 -0
  233. package/lib/types/icons/h3.d.ts +2 -0
  234. package/lib/types/icons/h3.d.ts.map +1 -0
  235. package/lib/types/icons/h4.d.ts +2 -0
  236. package/lib/types/icons/h4.d.ts.map +1 -0
  237. package/lib/types/icons/h5.d.ts +2 -0
  238. package/lib/types/icons/h5.d.ts.map +1 -0
  239. package/lib/types/icons/h6.d.ts +2 -0
  240. package/lib/types/icons/h6.d.ts.map +1 -0
  241. package/lib/types/icons/image.d.ts +2 -0
  242. package/lib/types/icons/image.d.ts.map +1 -0
  243. package/lib/types/icons/index.d.ts +36 -0
  244. package/lib/types/icons/index.d.ts.map +1 -0
  245. package/lib/types/icons/italic.d.ts +2 -0
  246. package/lib/types/icons/italic.d.ts.map +1 -0
  247. package/lib/types/icons/link.d.ts +2 -0
  248. package/lib/types/icons/link.d.ts.map +1 -0
  249. package/lib/types/icons/menu.d.ts +2 -0
  250. package/lib/types/icons/menu.d.ts.map +1 -0
  251. package/lib/types/icons/orderedList.d.ts +2 -0
  252. package/lib/types/icons/orderedList.d.ts.map +1 -0
  253. package/lib/types/icons/plus.d.ts +2 -0
  254. package/lib/types/icons/plus.d.ts.map +1 -0
  255. package/lib/types/icons/quote.d.ts +2 -0
  256. package/lib/types/icons/quote.d.ts.map +1 -0
  257. package/lib/types/icons/remove.d.ts +2 -0
  258. package/lib/types/icons/remove.d.ts.map +1 -0
  259. package/lib/types/icons/search.d.ts +2 -0
  260. package/lib/types/icons/search.d.ts.map +1 -0
  261. package/lib/types/icons/strikethrough.d.ts +2 -0
  262. package/lib/types/icons/strikethrough.d.ts.map +1 -0
  263. package/lib/types/icons/table.d.ts +2 -0
  264. package/lib/types/icons/table.d.ts.map +1 -0
  265. package/lib/types/icons/text.d.ts +2 -0
  266. package/lib/types/icons/text.d.ts.map +1 -0
  267. package/lib/types/icons/todoList.d.ts +2 -0
  268. package/lib/types/icons/todoList.d.ts.map +1 -0
  269. package/lib/types/utils/index.d.ts +1 -1
  270. package/lib/types/utils/index.d.ts.map +1 -1
  271. package/package.json +9 -23
  272. package/src/core/crepe.ts +15 -9
  273. package/src/core/slice.ts +2 -2
  274. package/src/feature/block-edit/handle/component.ts +13 -29
  275. package/src/feature/block-edit/handle/index.ts +16 -17
  276. package/src/feature/block-edit/index.ts +50 -5
  277. package/src/feature/block-edit/menu/component.ts +6 -7
  278. package/src/feature/block-edit/menu/config.ts +203 -274
  279. package/src/feature/block-edit/menu/group-builder.ts +50 -0
  280. package/src/feature/block-edit/menu/index.ts +11 -8
  281. package/src/feature/block-edit/menu/utils.ts +89 -0
  282. package/src/feature/code-mirror/index.ts +27 -19
  283. package/src/feature/cursor/index.ts +3 -4
  284. package/src/feature/image-block/index.ts +34 -41
  285. package/src/feature/index.ts +23 -3
  286. package/src/feature/link-tooltip/index.ts +23 -10
  287. package/src/feature/list-item/index.ts +21 -9
  288. package/src/feature/placeholder/index.ts +11 -6
  289. package/src/feature/shared.ts +4 -1
  290. package/src/feature/table/index.ts +54 -0
  291. package/src/feature/toolbar/component.ts +29 -11
  292. package/src/feature/toolbar/index.ts +21 -9
  293. package/src/icons/alignCenter.ts +7 -0
  294. package/src/icons/alignLeft.ts +7 -0
  295. package/src/icons/alignRight.ts +7 -0
  296. package/src/icons/bold.ts +7 -0
  297. package/src/{feature/list-item/consts.ts → icons/bullet.ts} +3 -3
  298. package/src/icons/bulletList.ts +14 -0
  299. package/src/icons/caption.ts +7 -0
  300. package/src/icons/checkBoxChecked.ts +14 -0
  301. package/src/icons/checkBoxUnchecked.ts +14 -0
  302. package/src/icons/chevronDown.ts +7 -0
  303. package/src/icons/clear.ts +14 -0
  304. package/src/icons/code.ts +14 -0
  305. package/src/icons/confirm.ts +14 -0
  306. package/src/icons/divider.ts +14 -0
  307. package/src/icons/dragHandle.ts +7 -0
  308. package/src/icons/edit.ts +14 -0
  309. package/src/icons/h1.ts +14 -0
  310. package/src/icons/h2.ts +14 -0
  311. package/src/icons/h3.ts +14 -0
  312. package/src/icons/h4.ts +14 -0
  313. package/src/icons/h5.ts +14 -0
  314. package/src/icons/h6.ts +14 -0
  315. package/src/icons/image.ts +14 -0
  316. package/src/icons/index.ts +35 -0
  317. package/src/icons/italic.ts +7 -0
  318. package/src/icons/link.ts +7 -0
  319. package/src/icons/menu.ts +14 -0
  320. package/src/icons/orderedList.ts +14 -0
  321. package/src/icons/plus.ts +14 -0
  322. package/src/icons/quote.ts +14 -0
  323. package/src/icons/remove.ts +7 -0
  324. package/src/icons/search.ts +7 -0
  325. package/src/icons/strikethrough.ts +7 -0
  326. package/src/icons/table.ts +14 -0
  327. package/src/icons/text.ts +14 -0
  328. package/src/icons/todoList.ts +7 -0
  329. package/src/theme/_internal/classic-common.css +3 -2
  330. package/src/theme/common/block-edit.css +3 -1
  331. package/src/theme/common/code-mirror.css +13 -0
  332. package/src/theme/common/cursor.css +1 -1
  333. package/src/theme/common/image-block.css +2 -0
  334. package/src/theme/common/link-tooltip.css +11 -14
  335. package/src/theme/common/list-item.css +9 -0
  336. package/src/theme/common/prosemirror.css +1 -1
  337. package/src/theme/common/style.css +1 -0
  338. package/src/theme/common/table.css +204 -0
  339. package/src/theme/common/toolbar.css +14 -4
  340. package/src/theme/{classic-dark → crepe-dark}/style.css +2 -2
  341. package/src/theme/frame/style.css +28 -0
  342. package/src/theme/frame-dark/style.css +28 -0
  343. package/src/theme/nord/style.css +28 -0
  344. package/src/theme/nord-dark/style.css +28 -0
  345. package/src/utils/index.ts +1 -1
  346. package/lib/cjs/_view-TbSIR42F.js +0 -27
  347. package/lib/cjs/_view-TbSIR42F.js.map +0 -1
  348. package/lib/cjs/clsx-7JLENl8W.js +0 -62
  349. package/lib/cjs/clsx-7JLENl8W.js.map +0 -1
  350. package/lib/cjs/composed-offset-position.browser.min-FwypoGc1.js +0 -1138
  351. package/lib/cjs/composed-offset-position.browser.min-FwypoGc1.js.map +0 -1
  352. package/lib/cjs/helper-OEW-2Vxr.js +0 -9
  353. package/lib/cjs/helper-OEW-2Vxr.js.map +0 -1
  354. package/lib/cjs/index-2oxl5Zo4.js +0 -551
  355. package/lib/cjs/index-2oxl5Zo4.js.map +0 -1
  356. package/lib/cjs/index-GKolgvC5.js +0 -505
  357. package/lib/cjs/index-GKolgvC5.js.map +0 -1
  358. package/lib/cjs/index-JAqL0ybh.js +0 -55
  359. package/lib/cjs/index-JAqL0ybh.js.map +0 -1
  360. package/lib/cjs/index-Ne_pk53w.js +0 -178
  361. package/lib/cjs/index-Ne_pk53w.js.map +0 -1
  362. package/lib/cjs/index-O3vRXWIP.js +0 -199
  363. package/lib/cjs/index-O3vRXWIP.js.map +0 -1
  364. package/lib/cjs/index-OIQn1x0L.js.map +0 -1
  365. package/lib/cjs/index-PF7s7DOo.js +0 -386
  366. package/lib/cjs/index-PF7s7DOo.js.map +0 -1
  367. package/lib/cjs/index-TEjdwq--.js.map +0 -1
  368. package/lib/cjs/index-kNI3S3lF.js +0 -22477
  369. package/lib/cjs/index-kNI3S3lF.js.map +0 -1
  370. package/lib/cjs/index-kvO8ReCY.js +0 -1960
  371. package/lib/cjs/index-kvO8ReCY.js.map +0 -1
  372. package/lib/cjs/index-llNS_EuP.js.map +0 -1
  373. package/lib/cjs/index-xqKfEyRA.js.map +0 -1
  374. package/lib/cjs/meta-q8q9fHyr.js +0 -14
  375. package/lib/cjs/meta-q8q9fHyr.js.map +0 -1
  376. package/lib/cjs/schema-7d3meDfB.js +0 -74
  377. package/lib/cjs/schema-7d3meDfB.js.map +0 -1
  378. package/lib/cjs/tooltip-plugin-Mk9fRTxI.js +0 -200
  379. package/lib/cjs/tooltip-plugin-Mk9fRTxI.js.map +0 -1
  380. package/lib/esm/_view-JjtfhQ8k.js +0 -25
  381. package/lib/esm/_view-JjtfhQ8k.js.map +0 -1
  382. package/lib/esm/clsx-R7WFaNKL.js +0 -52
  383. package/lib/esm/clsx-R7WFaNKL.js.map +0 -1
  384. package/lib/esm/composed-offset-position.browser.min-Tnm31e-m.js +0 -1132
  385. package/lib/esm/composed-offset-position.browser.min-Tnm31e-m.js.map +0 -1
  386. package/lib/esm/helper-iYEjPbOY.js +0 -7
  387. package/lib/esm/helper-iYEjPbOY.js.map +0 -1
  388. package/lib/esm/index-218OjRxG.js +0 -549
  389. package/lib/esm/index-218OjRxG.js.map +0 -1
  390. package/lib/esm/index-AHPvVH4H.js +0 -197
  391. package/lib/esm/index-AHPvVH4H.js.map +0 -1
  392. package/lib/esm/index-Bg5GFp0g.js +0 -384
  393. package/lib/esm/index-Bg5GFp0g.js.map +0 -1
  394. package/lib/esm/index-JkHHp3K-.js +0 -22445
  395. package/lib/esm/index-JkHHp3K-.js.map +0 -1
  396. package/lib/esm/index-PkBZpDL4.js.map +0 -1
  397. package/lib/esm/index-TNMG6UrN.js +0 -53
  398. package/lib/esm/index-TNMG6UrN.js.map +0 -1
  399. package/lib/esm/index-VyZguCIt.js.map +0 -1
  400. package/lib/esm/index-h1arGiXv.js +0 -1958
  401. package/lib/esm/index-h1arGiXv.js.map +0 -1
  402. package/lib/esm/index-pHsvfB_I.js +0 -503
  403. package/lib/esm/index-pHsvfB_I.js.map +0 -1
  404. package/lib/esm/index-q-qE7-96.js.map +0 -1
  405. package/lib/esm/index-u8tWJbca.js +0 -176
  406. package/lib/esm/index-u8tWJbca.js.map +0 -1
  407. package/lib/esm/meta-3ZYGAGrY.js +0 -12
  408. package/lib/esm/meta-3ZYGAGrY.js.map +0 -1
  409. package/lib/esm/schema-hVsy-vme.js +0 -71
  410. package/lib/esm/schema-hVsy-vme.js.map +0 -1
  411. package/lib/esm/tooltip-plugin-vZefVSGL.js +0 -194
  412. package/lib/esm/tooltip-plugin-vZefVSGL.js.map +0 -1
  413. package/lib/types/feature/block-edit/menu/icons.d.ts +0 -14
  414. package/lib/types/feature/block-edit/menu/icons.d.ts.map +0 -1
  415. package/lib/types/feature/link-tooltip/consts.d.ts +0 -5
  416. package/lib/types/feature/link-tooltip/consts.d.ts.map +0 -1
  417. package/lib/types/feature/list-item/consts.d.ts.map +0 -1
  418. package/lib/types/feature/toolbar/consts.d.ts +0 -5
  419. package/lib/types/feature/toolbar/consts.d.ts.map +0 -1
  420. package/src/feature/block-edit/menu/icons.ts +0 -170
  421. package/src/feature/link-tooltip/consts.ts +0 -46
  422. package/src/feature/toolbar/consts.ts +0 -25
  423. /package/lib/theme/{classic → crepe}/style.css +0 -0
  424. /package/src/theme/{classic → crepe}/style.css +0 -0
@@ -1,505 +0,0 @@
1
- 'use strict';
2
-
3
- var tooltipPlugin = require('./tooltip-plugin-Mk9fRTxI.js');
4
- var meta = require('./meta-q8q9fHyr.js');
5
- var index$1 = require('./index-PF7s7DOo.js');
6
- var prose = require('@milkdown/prose');
7
- var index = require('./index-kNI3S3lF.js');
8
- var helper = require('./helper-OEW-2Vxr.js');
9
- var atomico = require('atomico');
10
- var clsx = require('./clsx-7JLENl8W.js');
11
- var state = require('@milkdown/prose/state');
12
- require('./composed-offset-position.browser.min-FwypoGc1.js');
13
- require('@milkdown/prose/history');
14
- require('@milkdown/prose/model');
15
- require('@milkdown/prose/keymap');
16
- require('@milkdown/prose/commands');
17
- require('@milkdown/prose/inputrules');
18
- require('@milkdown/prose/schema-list');
19
- require('@milkdown/prose/view');
20
- require('@milkdown/prose/transform');
21
-
22
- const linkPreviewTooltip = tooltipPlugin.tooltipFactory("LINK_PREVIEW");
23
- meta.withMeta(linkPreviewTooltip[0], {
24
- displayName: "PreviewTooltipSpec<link-tooltip>",
25
- group: "LinkTooltip"
26
- });
27
- meta.withMeta(linkPreviewTooltip[1], {
28
- displayName: "PreviewTooltipPlugin<link-tooltip>",
29
- group: "LinkTooltip"
30
- });
31
- const linkEditTooltip = tooltipPlugin.tooltipFactory("LINK_EDIT");
32
- meta.withMeta(linkEditTooltip[0], {
33
- displayName: "EditTooltipSpec<link-tooltip>",
34
- group: "LinkTooltip"
35
- });
36
- meta.withMeta(linkEditTooltip[1], {
37
- displayName: "EditTooltipPlugin<link-tooltip>",
38
- group: "LinkTooltip"
39
- });
40
-
41
- function findMarkPosition(mark, node, doc, from, to) {
42
- let markPos = { start: -1, end: -1 };
43
- doc.nodesBetween(from, to, (n, pos) => {
44
- if (markPos.start > -1)
45
- return false;
46
- if (markPos.start === -1 && mark.isInSet(n.marks) && node === n) {
47
- markPos = {
48
- start: pos,
49
- end: pos + Math.max(n.textContent.length, 1)
50
- };
51
- }
52
- return void 0;
53
- });
54
- return markPos;
55
- }
56
- function shouldShowPreviewWhenHover(ctx, view, event) {
57
- const $pos = view.posAtCoords({ left: event.clientX, top: event.clientY });
58
- if (!$pos)
59
- return;
60
- const { pos } = $pos;
61
- const node = view.state.doc.nodeAt(pos);
62
- if (!node)
63
- return;
64
- const mark = node.marks.find((mark2) => mark2.type === index.linkSchema.mark.type(ctx));
65
- if (!mark)
66
- return;
67
- const key = linkPreviewTooltip.pluginKey();
68
- if (!key)
69
- return;
70
- return { show: true, pos, node, mark };
71
- }
72
-
73
- const linkPreviewComponent = ({ config, src, onEdit, onRemove }) => {
74
- const onClickEditButton = (e) => {
75
- e.stopPropagation();
76
- e.preventDefault();
77
- onEdit == null ? void 0 : onEdit();
78
- };
79
- const onClickRemoveButton = (e) => {
80
- e.stopPropagation();
81
- e.preventDefault();
82
- onRemove == null ? void 0 : onRemove();
83
- };
84
- const onClickPreview = (e) => {
85
- e.preventDefault();
86
- if (navigator.clipboard && src) {
87
- navigator.clipboard.writeText(src).then(() => {
88
- config == null ? void 0 : config.onCopyLink(src);
89
- }).catch((e2) => {
90
- throw e2;
91
- });
92
- }
93
- };
94
- return atomico.html`
95
- <host>
96
- <div class="link-preview" onmousedown=${onClickPreview}>
97
- <span class="link-icon">
98
- ${config == null ? void 0 : config.linkIcon()}
99
- </span>
100
- <span class="link-display">${src}</span>
101
- <span class="button link-edit-button" onmousedown=${onClickEditButton}>
102
- ${config == null ? void 0 : config.editButton()}
103
- </span>
104
- <span class="button link-remove-button" onmousedown=${onClickRemoveButton}>
105
- ${config == null ? void 0 : config.removeButton()}
106
- </span>
107
- </div>
108
- </host>
109
- `;
110
- };
111
- linkPreviewComponent.props = {
112
- config: Object,
113
- src: String,
114
- onEdit: Function,
115
- onRemove: Function
116
- };
117
- const LinkPreviewElement = atomico.c(linkPreviewComponent);
118
-
119
- var __typeError$1 = (msg) => {
120
- throw TypeError(msg);
121
- };
122
- var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
123
- var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
124
- var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
125
- var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
126
- var _content$1, _provider$1, _slice, _hovering, _onStateChange, _onMouseEnter, _onMouseLeave, _hide;
127
- class LinkPreviewTooltip {
128
- // get #instance() {
129
- // return this.#provider.getInstance()
130
- // }
131
- constructor(ctx, view) {
132
- this.ctx = ctx;
133
- __privateAdd$1(this, _content$1, new LinkPreviewElement());
134
- __privateAdd$1(this, _provider$1);
135
- __privateAdd$1(this, _slice, this.ctx.use(tooltipPlugin.linkTooltipState.key));
136
- __privateAdd$1(this, _hovering, false);
137
- // setRect = (rect: DOMRect) => {
138
- // // this.#provider.getInstance()?.setProps({
139
- // // getReferenceClientRect: () => rect,
140
- // // })
141
- // this.#provider.virtualElement = {
142
- // getBoundingClientRect: () => rect,
143
- // }
144
- // }
145
- __privateAdd$1(this, _onStateChange, ({ mode }) => {
146
- if (mode === "edit")
147
- __privateGet$1(this, _hide).call(this);
148
- });
149
- __privateAdd$1(this, _onMouseEnter, () => {
150
- __privateSet$1(this, _hovering, true);
151
- });
152
- __privateAdd$1(this, _onMouseLeave, () => {
153
- __privateSet$1(this, _hovering, false);
154
- });
155
- __privateAdd$1(this, _hide, () => {
156
- __privateGet$1(this, _provider$1).hide();
157
- __privateGet$1(this, _provider$1).element.removeEventListener("mouseenter", __privateGet$1(this, _onMouseEnter));
158
- __privateGet$1(this, _provider$1).element.removeEventListener("mouseleave", __privateGet$1(this, _onMouseLeave));
159
- });
160
- this.show = (mark, from, to, rect) => {
161
- __privateGet$1(this, _content$1).config = this.ctx.get(tooltipPlugin.linkTooltipConfig.key);
162
- __privateGet$1(this, _content$1).src = mark.attrs.href;
163
- __privateGet$1(this, _content$1).onEdit = () => {
164
- this.ctx.get(tooltipPlugin.linkTooltipAPI.key).editLink(mark, from, to);
165
- };
166
- __privateGet$1(this, _content$1).onRemove = () => {
167
- this.ctx.get(tooltipPlugin.linkTooltipAPI.key).removeLink(from, to);
168
- __privateGet$1(this, _hide).call(this);
169
- };
170
- __privateGet$1(this, _provider$1).show({
171
- getBoundingClientRect: () => rect
172
- });
173
- __privateGet$1(this, _provider$1).element.addEventListener("mouseenter", __privateGet$1(this, _onMouseEnter));
174
- __privateGet$1(this, _provider$1).element.addEventListener("mouseleave", __privateGet$1(this, _onMouseLeave));
175
- };
176
- this.hide = () => {
177
- if (__privateGet$1(this, _hovering))
178
- return;
179
- __privateGet$1(this, _hide).call(this);
180
- };
181
- this.update = () => {
182
- };
183
- this.destroy = () => {
184
- __privateGet$1(this, _slice).off(__privateGet$1(this, _onStateChange));
185
- __privateGet$1(this, _provider$1).destroy();
186
- __privateGet$1(this, _content$1).remove();
187
- };
188
- __privateSet$1(this, _provider$1, new tooltipPlugin.TooltipProvider({
189
- debounce: 0,
190
- content: __privateGet$1(this, _content$1),
191
- shouldShow: () => false
192
- }));
193
- __privateGet$1(this, _provider$1).update(view);
194
- __privateSet$1(this, _slice, ctx.use(tooltipPlugin.linkTooltipState.key));
195
- __privateGet$1(this, _slice).on(__privateGet$1(this, _onStateChange));
196
- }
197
- }
198
- _content$1 = new WeakMap();
199
- _provider$1 = new WeakMap();
200
- _slice = new WeakMap();
201
- _hovering = new WeakMap();
202
- _onStateChange = new WeakMap();
203
- _onMouseEnter = new WeakMap();
204
- _onMouseLeave = new WeakMap();
205
- _hide = new WeakMap();
206
-
207
- helper.defIfNotExists("milkdown-link-preview", LinkPreviewElement);
208
- function configureLinkPreviewTooltip(ctx) {
209
- let linkPreviewTooltipView;
210
- const DELAY = 200;
211
- const onMouseMove = index$1.debounce((view, event) => {
212
- if (!linkPreviewTooltipView)
213
- return;
214
- if (!view.hasFocus())
215
- return;
216
- const state = ctx.get(tooltipPlugin.linkTooltipState.key);
217
- if (state.mode === "edit")
218
- return;
219
- const result = shouldShowPreviewWhenHover(ctx, view, event);
220
- if (result) {
221
- const position = view.state.doc.resolve(result.pos);
222
- const markPosition = findMarkPosition(result.mark, result.node, view.state.doc, position.before(), position.after());
223
- const from = markPosition.start;
224
- const to = markPosition.end;
225
- linkPreviewTooltipView.show(result.mark, from, to, prose.posToDOMRect(view, from, to));
226
- return;
227
- }
228
- linkPreviewTooltipView.hide();
229
- }, DELAY);
230
- const onMouseLeave = () => {
231
- setTimeout(() => {
232
- linkPreviewTooltipView == null ? void 0 : linkPreviewTooltipView.hide();
233
- }, DELAY);
234
- };
235
- ctx.set(linkPreviewTooltip.key, {
236
- props: {
237
- handleDOMEvents: {
238
- mousemove: onMouseMove,
239
- mouseleave: onMouseLeave
240
- }
241
- },
242
- view: (view) => {
243
- linkPreviewTooltipView = new LinkPreviewTooltip(ctx, view);
244
- return linkPreviewTooltipView;
245
- }
246
- });
247
- }
248
-
249
- const linkEditComponent = ({
250
- src,
251
- onConfirm,
252
- onCancel,
253
- config
254
- }) => {
255
- const linkInput = atomico.useRef();
256
- const [link, setLink] = atomico.useState(src);
257
- atomico.useEffect(() => {
258
- setLink(src != null ? src : "");
259
- }, [src]);
260
- const onConfirmEdit = () => {
261
- var _a, _b;
262
- onConfirm == null ? void 0 : onConfirm((_b = (_a = linkInput.current) == null ? void 0 : _a.value) != null ? _b : "");
263
- };
264
- const onKeydown = (e) => {
265
- var _a, _b;
266
- e.stopPropagation();
267
- if (e.key === "Enter") {
268
- onConfirm == null ? void 0 : onConfirm((_b = (_a = linkInput.current) == null ? void 0 : _a.value) != null ? _b : "");
269
- e.preventDefault();
270
- }
271
- if (e.key === "Escape") {
272
- onCancel == null ? void 0 : onCancel();
273
- e.preventDefault();
274
- }
275
- };
276
- return atomico.html`
277
- <host>
278
- <div class="link-edit">
279
- <input
280
- class="input-area"
281
- placeholder=${config == null ? void 0 : config.inputPlaceholder}
282
- ref=${linkInput}
283
- onkeydown=${onKeydown}
284
- oninput=${(e) => setLink(e.target.value)}
285
- value=${link}
286
- />
287
- <span class=${clsx.clsx("button confirm", !link && "hidden")} onclick=${onConfirmEdit}>
288
- ${config == null ? void 0 : config.confirmButton()}
289
- </span>
290
- </div>
291
- </host>
292
- `;
293
- };
294
- linkEditComponent.props = {
295
- config: Object,
296
- src: String,
297
- onConfirm: Function,
298
- onCancel: Function
299
- };
300
- const LinkEditElement = atomico.c(linkEditComponent);
301
-
302
- var __typeError = (msg) => {
303
- throw TypeError(msg);
304
- };
305
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
306
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
307
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
308
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
309
- var _content, _provider, _data, _reset, _confirmEdit, _enterEditMode;
310
- const defaultData = {
311
- from: -1,
312
- to: -1,
313
- mark: null
314
- };
315
- class LinkEditTooltip {
316
- constructor(ctx, view) {
317
- this.ctx = ctx;
318
- __privateAdd(this, _content, new LinkEditElement());
319
- __privateAdd(this, _provider);
320
- __privateAdd(this, _data, { ...defaultData });
321
- __privateAdd(this, _reset, () => {
322
- __privateGet(this, _provider).hide();
323
- this.ctx.update(tooltipPlugin.linkTooltipState.key, (state) => ({
324
- ...state,
325
- mode: "preview"
326
- }));
327
- __privateSet(this, _data, { ...defaultData });
328
- });
329
- __privateAdd(this, _confirmEdit, (href) => {
330
- const view = this.ctx.get(index.editorViewCtx);
331
- const { from, to, mark } = __privateGet(this, _data);
332
- const type = index.linkSchema.type(this.ctx);
333
- if (mark && mark.attrs.href === href) {
334
- __privateGet(this, _reset).call(this);
335
- return;
336
- }
337
- const tr = view.state.tr;
338
- if (mark)
339
- tr.removeMark(from, to, mark);
340
- tr.addMark(from, to, type.create({ href }));
341
- view.dispatch(tr);
342
- __privateGet(this, _reset).call(this);
343
- });
344
- __privateAdd(this, _enterEditMode, (value, from, to) => {
345
- const config = this.ctx.get(tooltipPlugin.linkTooltipConfig.key);
346
- __privateGet(this, _content).config = config;
347
- __privateGet(this, _content).src = value;
348
- this.ctx.update(tooltipPlugin.linkTooltipState.key, (state) => ({
349
- ...state,
350
- mode: "edit"
351
- }));
352
- const view = this.ctx.get(index.editorViewCtx);
353
- view.dispatch(view.state.tr.setSelection(state.TextSelection.create(view.state.doc, from, to)));
354
- __privateGet(this, _provider).show({
355
- getBoundingClientRect: () => prose.posToDOMRect(view, from, to)
356
- });
357
- requestAnimationFrame(() => {
358
- var _a;
359
- (_a = __privateGet(this, _content).querySelector("input")) == null ? void 0 : _a.focus();
360
- });
361
- });
362
- this.update = (view) => {
363
- const { state } = view;
364
- const { selection } = state;
365
- const { from, to } = selection;
366
- if (from === __privateGet(this, _data).from && to === __privateGet(this, _data).to)
367
- return;
368
- __privateGet(this, _reset).call(this);
369
- };
370
- this.destroy = () => {
371
- __privateGet(this, _provider).destroy();
372
- __privateGet(this, _content).remove();
373
- };
374
- this.addLink = (from, to) => {
375
- __privateSet(this, _data, {
376
- from,
377
- to,
378
- mark: null
379
- });
380
- __privateGet(this, _enterEditMode).call(this, "", from, to);
381
- };
382
- this.editLink = (mark, from, to) => {
383
- __privateSet(this, _data, {
384
- from,
385
- to,
386
- mark
387
- });
388
- __privateGet(this, _enterEditMode).call(this, mark.attrs.href, from, to);
389
- };
390
- this.removeLink = (from, to) => {
391
- const view = this.ctx.get(index.editorViewCtx);
392
- const tr = view.state.tr;
393
- tr.removeMark(from, to, index.linkSchema.type(this.ctx));
394
- view.dispatch(tr);
395
- __privateGet(this, _reset).call(this);
396
- };
397
- __privateSet(this, _provider, new tooltipPlugin.TooltipProvider({
398
- content: __privateGet(this, _content),
399
- debounce: 0,
400
- shouldShow: () => false
401
- }));
402
- __privateGet(this, _provider).onHide = () => {
403
- __privateGet(this, _content).update().catch((e) => {
404
- throw e;
405
- });
406
- view.dom.focus({ preventScroll: true });
407
- };
408
- __privateGet(this, _provider).update(view);
409
- __privateGet(this, _content).onConfirm = __privateGet(this, _confirmEdit);
410
- __privateGet(this, _content).onCancel = __privateGet(this, _reset);
411
- }
412
- }
413
- _content = new WeakMap();
414
- _provider = new WeakMap();
415
- _data = new WeakMap();
416
- _reset = new WeakMap();
417
- _confirmEdit = new WeakMap();
418
- _enterEditMode = new WeakMap();
419
-
420
- helper.defIfNotExists("milkdown-link-edit", LinkEditElement);
421
- function configureLinkEditTooltip(ctx) {
422
- let linkEditTooltipView;
423
- ctx.update(tooltipPlugin.linkTooltipAPI.key, (api) => ({
424
- ...api,
425
- addLink: (from, to) => {
426
- linkEditTooltipView == null ? void 0 : linkEditTooltipView.addLink(from, to);
427
- },
428
- editLink: (mark, from, to) => {
429
- linkEditTooltipView == null ? void 0 : linkEditTooltipView.editLink(mark, from, to);
430
- },
431
- removeLink: (from, to) => {
432
- linkEditTooltipView == null ? void 0 : linkEditTooltipView.removeLink(from, to);
433
- }
434
- }));
435
- ctx.set(linkEditTooltip.key, {
436
- view: (view) => {
437
- linkEditTooltipView = new LinkEditTooltip(ctx, view);
438
- return linkEditTooltipView;
439
- }
440
- });
441
- }
442
-
443
- function configureLinkTooltip(ctx) {
444
- configureLinkPreviewTooltip(ctx);
445
- configureLinkEditTooltip(ctx);
446
- }
447
-
448
- const linkTooltipPlugin = [tooltipPlugin.linkTooltipState, tooltipPlugin.linkTooltipAPI, tooltipPlugin.linkTooltipConfig, linkPreviewTooltip, linkEditTooltip].flat();
449
-
450
- const linkIcon = atomico.html`
451
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
452
- <path d="M17.0385 19.5003V16.5388H14.0769V15.0388H17.0385V12.0773H18.5384V15.0388H21.5V16.5388H18.5384V19.5003H17.0385ZM10.8077 16.5388H7.03845C5.78282 16.5388 4.7125 16.0963 3.8275 15.2114C2.9425 14.3266 2.5 13.2564 2.5 12.0009C2.5 10.7454 2.9425 9.67504 3.8275 8.78979C4.7125 7.90454 5.78282 7.46191 7.03845 7.46191H10.8077V8.96186H7.03845C6.1987 8.96186 5.48235 9.25834 4.8894 9.85129C4.29645 10.4442 3.99998 11.1606 3.99998 12.0003C3.99998 12.8401 4.29645 13.5564 4.8894 14.1494C5.48235 14.7423 6.1987 15.0388 7.03845 15.0388H10.8077V16.5388ZM8.25 12.7503V11.2504H15.75V12.7503H8.25ZM21.5 12.0003H20C20 11.1606 19.7035 10.4442 19.1106 9.85129C18.5176 9.25834 17.8013 8.96186 16.9615 8.96186H13.1923V7.46191H16.9615C18.2171 7.46191 19.2875 7.90441 20.1725 8.78939C21.0575 9.67439 21.5 10.7447 21.5 12.0003Z" fill="#817567"/>
453
- </svg>
454
- `;
455
- const editIcon = atomico.html`
456
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
457
- <g clip-path="url(#clip0_1013_1585)">
458
- <path d="M14.06 9.02L14.98 9.94L5.92 19H5V18.08L14.06 9.02ZM17.66 3C17.41 3 17.15 3.1 16.96 3.29L15.13 5.12L18.88 8.87L20.71 7.04C21.1 6.65 21.1 6.02 20.71 5.63L18.37 3.29C18.17 3.09 17.92 3 17.66 3ZM14.06 6.19L3 17.25V21H6.75L17.81 9.94L14.06 6.19Z" fill="#817567"/>
459
- </g>
460
- <defs>
461
- <clipPath id="clip0_1013_1585">
462
- <rect width="24" height="24" fill="white"/>
463
- </clipPath>
464
- </defs>
465
- </svg>
466
- `;
467
- const deleteIcon = atomico.html`
468
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
469
- <g clip-path="url(#clip0_1013_1627)">
470
- <path d="M6 19C6 20.1 6.9 21 8 21H16C17.1 21 18 20.1 18 19V9C18 7.9 17.1 7 16 7H8C6.9 7 6 7.9 6 9V19ZM9 9H15C15.55 9 16 9.45 16 10V18C16 18.55 15.55 19 15 19H9C8.45 19 8 18.55 8 18V10C8 9.45 8.45 9 9 9ZM15.5 4L14.79 3.29C14.61 3.11 14.35 3 14.09 3H9.91C9.65 3 9.39 3.11 9.21 3.29L8.5 4H6C5.45 4 5 4.45 5 5C5 5.55 5.45 6 6 6H18C18.55 6 19 5.55 19 5C19 4.45 18.55 4 18 4H15.5Z" fill="#817567"/>
471
- </g>
472
- <defs>
473
- <clipPath id="clip0_1013_1627">
474
- <rect width="24" height="24" fill="white"/>
475
- </clipPath>
476
- </defs>
477
- </svg>
478
- `;
479
- const confirmIcon = atomico.html`
480
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
481
- <g clip-path="url(#clip0_1013_1545)">
482
- <path d="M9.00012 16.1998L5.50012 12.6998C5.11012 12.3098 4.49012 12.3098 4.10012 12.6998C3.71012 13.0898 3.71012 13.7098 4.10012 14.0998L8.29012 18.2898C8.68012 18.6798 9.31012 18.6798 9.70012 18.2898L20.3001 7.69982C20.6901 7.30982 20.6901 6.68982 20.3001 6.29982C19.9101 5.90982 19.2901 5.90982 18.9001 6.29982L9.00012 16.1998Z" fill="#817567"/>
483
- </g>
484
- <defs>
485
- <clipPath id="clip0_1013_1545">
486
- <rect width="24" height="24" fill="white"/>
487
- </clipPath>
488
- </defs>
489
- </svg>
490
- `;
491
-
492
- const defineFeature = (editor) => {
493
- editor.config(configureLinkTooltip).config((ctx) => {
494
- ctx.update(tooltipPlugin.linkTooltipConfig.key, (config) => ({
495
- ...config,
496
- linkIcon: () => linkIcon,
497
- editButton: () => editIcon,
498
- removeButton: () => deleteIcon,
499
- confirmButton: () => confirmIcon
500
- }));
501
- }).use(linkTooltipPlugin);
502
- };
503
-
504
- exports.defineFeature = defineFeature;
505
- //# sourceMappingURL=index-GKolgvC5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-GKolgvC5.js","sources":["../../../components/src/link-tooltip/tooltips.ts","../../../components/src/link-tooltip/utils.ts","../../../components/src/link-tooltip/preview/preview-component.ts","../../../components/src/link-tooltip/preview/preview-view.ts","../../../components/src/link-tooltip/preview/preview-configure.ts","../../../components/src/link-tooltip/edit/edit-component.ts","../../../components/src/link-tooltip/edit/edit-view.ts","../../../components/src/link-tooltip/edit/edit-configure.ts","../../../components/src/link-tooltip/configure.ts","../../../components/src/link-tooltip/index.ts","../../src/feature/link-tooltip/consts.ts","../../src/feature/link-tooltip/index.ts"],"sourcesContent":["import { tooltipFactory } from '@milkdown/plugin-tooltip'\nimport { withMeta } from '../__internal__/meta'\n\nexport const linkPreviewTooltip = tooltipFactory('LINK_PREVIEW')\nwithMeta(linkPreviewTooltip[0], {\n displayName: 'PreviewTooltipSpec<link-tooltip>',\n group: 'LinkTooltip',\n})\nwithMeta(linkPreviewTooltip[1], {\n displayName: 'PreviewTooltipPlugin<link-tooltip>',\n group: 'LinkTooltip',\n})\nexport const linkEditTooltip = tooltipFactory('LINK_EDIT')\nwithMeta(linkEditTooltip[0], {\n displayName: 'EditTooltipSpec<link-tooltip>',\n group: 'LinkTooltip',\n})\nwithMeta(linkEditTooltip[1], {\n displayName: 'EditTooltipPlugin<link-tooltip>',\n group: 'LinkTooltip',\n})\n","import type { Mark, Node } from '@milkdown/prose/model'\nimport type { Ctx } from '@milkdown/ctx'\nimport type { EditorView } from '@milkdown/prose/view'\nimport { linkSchema } from '@milkdown/preset-commonmark'\nimport { linkPreviewTooltip } from './tooltips'\n\nexport function findMarkPosition(mark: Mark, node: Node, doc: Node, from: number, to: number) {\n let markPos = { start: -1, end: -1 }\n doc.nodesBetween(from, to, (n, pos) => {\n // stop recursive finding if result is found\n if (markPos.start > -1)\n return false\n\n if (markPos.start === -1 && mark.isInSet(n.marks) && node === n) {\n markPos = {\n start: pos,\n end: pos + Math.max(n.textContent.length, 1),\n }\n }\n\n return undefined\n })\n\n return markPos\n}\n\nexport function shouldShowPreviewWhenHover(ctx: Ctx, view: EditorView, event: MouseEvent) {\n const $pos = view.posAtCoords({ left: event.clientX, top: event.clientY })\n if (!$pos)\n return\n\n const { pos } = $pos\n const node = view.state.doc.nodeAt(pos)\n\n if (!node)\n return\n\n const mark = node.marks.find(mark => mark.type === linkSchema.mark.type(ctx))\n if (!mark)\n return\n\n const key = linkPreviewTooltip.pluginKey()\n if (!key)\n return\n\n return { show: true, pos, node, mark }\n}\n","import type { Component } from 'atomico'\nimport { c, html } from 'atomico'\nimport type { LinkTooltipConfig } from '../slices'\n\nexport interface LinkPreviewProps {\n config: LinkTooltipConfig\n src: string\n onEdit: () => void\n onRemove: () => void\n}\n\nexport const linkPreviewComponent: Component<LinkPreviewProps> = ({ config, src, onEdit, onRemove }) => {\n const onClickEditButton = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n onEdit?.()\n }\n\n const onClickRemoveButton = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n onRemove?.()\n }\n\n const onClickPreview = (e: MouseEvent) => {\n e.preventDefault()\n if (navigator.clipboard && src) {\n navigator.clipboard.writeText(src)\n .then(() => {\n config?.onCopyLink(src)\n }).catch((e) => {\n throw e\n })\n }\n }\n\n return html`\n <host>\n <div class=\"link-preview\" onmousedown=${onClickPreview}>\n <span class=\"link-icon\">\n ${config?.linkIcon()}\n </span>\n <span class=\"link-display\">${src}</span>\n <span class=\"button link-edit-button\" onmousedown=${onClickEditButton}>\n ${config?.editButton()}\n </span>\n <span class=\"button link-remove-button\" onmousedown=${onClickRemoveButton}>\n ${config?.removeButton()}\n </span>\n </div>\n </host>\n `\n}\n\nlinkPreviewComponent.props = {\n config: Object,\n src: String,\n onEdit: Function,\n onRemove: Function,\n}\n\nexport const LinkPreviewElement = c(linkPreviewComponent)\n","import type { PluginView } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\nimport type { Mark } from '@milkdown/prose/model'\nimport { TooltipProvider } from '@milkdown/plugin-tooltip'\nimport type { Ctx, Slice } from '@milkdown/ctx'\nimport type { LinkToolTipState } from '../slices'\nimport { linkTooltipAPI, linkTooltipConfig, linkTooltipState } from '../slices'\nimport { LinkPreviewElement } from './preview-component'\n\nexport class LinkPreviewTooltip implements PluginView {\n #content = new LinkPreviewElement()\n #provider: TooltipProvider\n #slice: Slice<LinkToolTipState> = this.ctx.use(linkTooltipState.key)\n\n #hovering = false\n\n // get #instance() {\n // return this.#provider.getInstance()\n // }\n\n constructor(readonly ctx: Ctx, view: EditorView) {\n this.#provider = new TooltipProvider({\n debounce: 0,\n content: this.#content,\n shouldShow: () => false,\n })\n this.#provider.update(view)\n this.#slice = ctx.use(linkTooltipState.key)\n this.#slice.on(this.#onStateChange)\n }\n\n // setRect = (rect: DOMRect) => {\n // // this.#provider.getInstance()?.setProps({\n // // getReferenceClientRect: () => rect,\n // // })\n // this.#provider.virtualElement = {\n // getBoundingClientRect: () => rect,\n // }\n // }\n\n #onStateChange = ({ mode }: LinkToolTipState) => {\n if (mode === 'edit')\n this.#hide()\n }\n\n #onMouseEnter = () => {\n this.#hovering = true\n }\n\n #onMouseLeave = () => {\n this.#hovering = false\n }\n\n #hide = () => {\n this.#provider.hide()\n this.#provider.element.removeEventListener('mouseenter', this.#onMouseEnter)\n this.#provider.element.removeEventListener('mouseleave', this.#onMouseLeave)\n }\n\n show = (mark: Mark, from: number, to: number, rect: DOMRect) => {\n this.#content.config = this.ctx.get(linkTooltipConfig.key)\n this.#content.src = mark.attrs.href\n this.#content.onEdit = () => {\n this.ctx.get(linkTooltipAPI.key).editLink(mark, from, to)\n }\n this.#content.onRemove = () => {\n this.ctx.get(linkTooltipAPI.key).removeLink(from, to)\n this.#hide()\n }\n\n this.#provider.show({\n getBoundingClientRect: () => rect,\n })\n this.#provider.element.addEventListener('mouseenter', this.#onMouseEnter)\n this.#provider.element.addEventListener('mouseleave', this.#onMouseLeave)\n }\n\n hide = () => {\n if (this.#hovering)\n return\n\n this.#hide()\n }\n\n update = () => {}\n\n destroy = () => {\n this.#slice.off(this.#onStateChange)\n this.#provider.destroy()\n this.#content.remove()\n }\n}\n","import type { Ctx } from '@milkdown/ctx'\nimport debounce from 'lodash.debounce'\nimport type { EditorView } from '@milkdown/prose/view'\nimport { posToDOMRect } from '@milkdown/prose'\nimport { linkTooltipState } from '../slices'\nimport { findMarkPosition, shouldShowPreviewWhenHover } from '../utils'\nimport { linkPreviewTooltip } from '../tooltips'\nimport { defIfNotExists } from '../../__internal__/helper'\nimport { LinkPreviewTooltip } from './preview-view'\nimport { LinkPreviewElement } from './preview-component'\n\ndefIfNotExists('milkdown-link-preview', LinkPreviewElement)\nexport function configureLinkPreviewTooltip(ctx: Ctx) {\n let linkPreviewTooltipView: LinkPreviewTooltip | null\n\n const DELAY = 200\n const onMouseMove = debounce((view: EditorView, event: MouseEvent) => {\n if (!linkPreviewTooltipView)\n return\n if (!view.hasFocus())\n return\n\n const state = ctx.get(linkTooltipState.key)\n if (state.mode === 'edit')\n return\n\n const result = shouldShowPreviewWhenHover(ctx, view, event)\n if (result) {\n const position = view.state.doc.resolve(result.pos)\n const markPosition = findMarkPosition(result.mark, result.node, view.state.doc, position.before(), position.after())\n const from = markPosition.start\n const to = markPosition.end\n linkPreviewTooltipView.show(result.mark, from, to, posToDOMRect(view, from, to))\n return\n }\n\n linkPreviewTooltipView.hide()\n }, DELAY)\n\n const onMouseLeave = () => {\n setTimeout(() => {\n linkPreviewTooltipView?.hide()\n }, DELAY)\n }\n\n ctx.set(linkPreviewTooltip.key, {\n props: {\n handleDOMEvents: {\n mousemove: onMouseMove,\n mouseleave: onMouseLeave,\n },\n },\n view: (view) => {\n linkPreviewTooltipView = new LinkPreviewTooltip(ctx, view)\n return linkPreviewTooltipView\n },\n })\n}\n","import type { Component } from 'atomico'\nimport { c, html, useEffect, useRef, useState } from 'atomico'\nimport clsx from 'clsx'\nimport type { LinkTooltipConfig } from '../slices'\n\nexport interface LinkEditProps {\n config: LinkTooltipConfig\n src: string\n onConfirm: (href: string) => void\n onCancel: () => void\n}\n\nexport const linkEditComponent: Component<LinkEditProps> = ({\n src,\n onConfirm,\n onCancel,\n config,\n}) => {\n const linkInput = useRef<HTMLInputElement>()\n const [link, setLink] = useState(src)\n\n useEffect(() => {\n setLink(src ?? '')\n }, [src])\n\n const onConfirmEdit = () => {\n onConfirm?.(linkInput.current?.value ?? '')\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n e.stopPropagation()\n if (e.key === 'Enter') {\n onConfirm?.(linkInput.current?.value ?? '')\n e.preventDefault()\n }\n if (e.key === 'Escape') {\n onCancel?.()\n e.preventDefault()\n }\n }\n\n return html`\n <host>\n <div class=\"link-edit\">\n <input\n class=\"input-area\"\n placeholder=${config?.inputPlaceholder}\n ref=${linkInput}\n onkeydown=${onKeydown}\n oninput=${(e: InputEvent) => setLink((e.target as HTMLInputElement).value)}\n value=${link}\n />\n <span class=${clsx('button confirm', !link && 'hidden')} onclick=${onConfirmEdit}>\n ${config?.confirmButton()}\n </span>\n </div>\n </host>\n `\n}\n\nlinkEditComponent.props = {\n config: Object,\n src: String,\n onConfirm: Function,\n onCancel: Function,\n}\n\nexport const LinkEditElement = c(linkEditComponent)\n","import type { Ctx } from '@milkdown/ctx'\nimport { TextSelection } from '@milkdown/prose/state'\nimport type { PluginView } from '@milkdown/prose/state'\nimport type { Mark } from '@milkdown/prose/model'\nimport type { EditorView } from '@milkdown/prose/view'\nimport { TooltipProvider } from '@milkdown/plugin-tooltip'\nimport { editorViewCtx } from '@milkdown/core'\nimport { linkSchema } from '@milkdown/preset-commonmark'\nimport { posToDOMRect } from '@milkdown/prose'\nimport { linkTooltipConfig, linkTooltipState } from '../slices'\nimport { LinkEditElement } from './edit-component'\n\ninterface Data {\n from: number\n to: number\n mark: Mark | null\n}\n\nconst defaultData: Data = {\n from: -1,\n to: -1,\n mark: null,\n}\n\nexport class LinkEditTooltip implements PluginView {\n #content = new LinkEditElement()\n #provider: TooltipProvider\n #data: Data = { ...defaultData }\n\n constructor(readonly ctx: Ctx, view: EditorView) {\n this.#provider = new TooltipProvider({\n content: this.#content,\n debounce: 0,\n shouldShow: () => false,\n })\n this.#provider.onHide = () => {\n this.#content.update().catch((e) => {\n throw e\n })\n view.dom.focus({ preventScroll: true })\n }\n this.#provider.update(view)\n this.#content.onConfirm = this.#confirmEdit\n this.#content.onCancel = this.#reset\n }\n\n #reset = () => {\n this.#provider.hide()\n this.ctx.update(linkTooltipState.key, state => ({\n ...state,\n mode: 'preview' as const,\n }))\n this.#data = { ...defaultData }\n }\n\n #confirmEdit = (href: string) => {\n const view = this.ctx.get(editorViewCtx)\n const { from, to, mark } = this.#data\n const type = linkSchema.type(this.ctx)\n if (mark && mark.attrs.href === href) {\n this.#reset()\n return\n }\n\n const tr = view.state.tr\n if (mark)\n tr.removeMark(from, to, mark)\n\n tr.addMark(from, to, type.create({ href }))\n view.dispatch(tr)\n\n this.#reset()\n }\n\n #enterEditMode = (value: string, from: number, to: number) => {\n const config = this.ctx.get(linkTooltipConfig.key)\n this.#content.config = config\n this.#content.src = value\n this.ctx.update(linkTooltipState.key, state => ({\n ...state,\n mode: 'edit' as const,\n }))\n const view = this.ctx.get(editorViewCtx)\n // this.#setRect(posToDOMRect(view, from, to))\n view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.doc, from, to)))\n this.#provider.show({\n getBoundingClientRect: () => posToDOMRect(view, from, to),\n })\n requestAnimationFrame(() => {\n this.#content.querySelector('input')?.focus()\n })\n }\n\n update = (view: EditorView) => {\n const { state } = view\n const { selection } = state\n const { from, to } = selection\n if (from === this.#data.from && to === this.#data.to)\n return\n\n this.#reset()\n }\n\n destroy = () => {\n this.#provider.destroy()\n this.#content.remove()\n }\n\n addLink = (from: number, to: number) => {\n this.#data = {\n from,\n to,\n mark: null,\n }\n this.#enterEditMode('', from, to)\n }\n\n editLink = (mark: Mark, from: number, to: number) => {\n this.#data = {\n from,\n to,\n mark,\n }\n this.#enterEditMode(mark.attrs.href, from, to)\n }\n\n removeLink = (from: number, to: number) => {\n const view = this.ctx.get(editorViewCtx)\n\n const tr = view.state.tr\n tr.removeMark(from, to, linkSchema.type(this.ctx))\n view.dispatch(tr)\n\n this.#reset()\n }\n}\n","import type { Ctx } from '@milkdown/ctx'\nimport { linkTooltipAPI } from '../slices'\nimport { linkEditTooltip } from '../tooltips'\nimport { defIfNotExists } from '../../__internal__/helper'\nimport { LinkEditElement } from './edit-component'\nimport { LinkEditTooltip } from './edit-view'\n\ndefIfNotExists('milkdown-link-edit', LinkEditElement)\nexport function configureLinkEditTooltip(ctx: Ctx) {\n let linkEditTooltipView: LinkEditTooltip | null\n\n ctx.update(linkTooltipAPI.key, api => ({\n ...api,\n addLink: (from, to) => {\n linkEditTooltipView?.addLink(from, to)\n },\n editLink: (mark, from, to) => {\n linkEditTooltipView?.editLink(mark, from, to)\n },\n removeLink: (from, to) => {\n linkEditTooltipView?.removeLink(from, to)\n },\n }))\n\n ctx.set(linkEditTooltip.key, {\n view: (view) => {\n linkEditTooltipView = new LinkEditTooltip(ctx, view)\n return linkEditTooltipView\n },\n })\n}\n","import type { Ctx } from '@milkdown/ctx'\nimport { configureLinkPreviewTooltip } from './preview/preview-configure'\nimport { configureLinkEditTooltip } from './edit/edit-configure'\n\nexport function configureLinkTooltip(ctx: Ctx) {\n configureLinkPreviewTooltip(ctx)\n configureLinkEditTooltip(ctx)\n}\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { linkTooltipAPI, linkTooltipConfig, linkTooltipState } from './slices'\nimport { linkEditTooltip, linkPreviewTooltip } from './tooltips'\n\nexport * from './slices'\nexport * from './configure'\nexport * from './tooltips'\n\nexport const linkTooltipPlugin: MilkdownPlugin[] = [linkTooltipState, linkTooltipAPI, linkTooltipConfig, linkPreviewTooltip, linkEditTooltip].flat()\n","import { html } from 'atomico'\n\nexport const linkIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M17.0385 19.5003V16.5388H14.0769V15.0388H17.0385V12.0773H18.5384V15.0388H21.5V16.5388H18.5384V19.5003H17.0385ZM10.8077 16.5388H7.03845C5.78282 16.5388 4.7125 16.0963 3.8275 15.2114C2.9425 14.3266 2.5 13.2564 2.5 12.0009C2.5 10.7454 2.9425 9.67504 3.8275 8.78979C4.7125 7.90454 5.78282 7.46191 7.03845 7.46191H10.8077V8.96186H7.03845C6.1987 8.96186 5.48235 9.25834 4.8894 9.85129C4.29645 10.4442 3.99998 11.1606 3.99998 12.0003C3.99998 12.8401 4.29645 13.5564 4.8894 14.1494C5.48235 14.7423 6.1987 15.0388 7.03845 15.0388H10.8077V16.5388ZM8.25 12.7503V11.2504H15.75V12.7503H8.25ZM21.5 12.0003H20C20 11.1606 19.7035 10.4442 19.1106 9.85129C18.5176 9.25834 17.8013 8.96186 16.9615 8.96186H13.1923V7.46191H16.9615C18.2171 7.46191 19.2875 7.90441 20.1725 8.78939C21.0575 9.67439 21.5 10.7447 21.5 12.0003Z\" fill=\"#817567\"/>\n </svg>\n`\n\nexport const editIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <g clip-path=\"url(#clip0_1013_1585)\">\n <path d=\"M14.06 9.02L14.98 9.94L5.92 19H5V18.08L14.06 9.02ZM17.66 3C17.41 3 17.15 3.1 16.96 3.29L15.13 5.12L18.88 8.87L20.71 7.04C21.1 6.65 21.1 6.02 20.71 5.63L18.37 3.29C18.17 3.09 17.92 3 17.66 3ZM14.06 6.19L3 17.25V21H6.75L17.81 9.94L14.06 6.19Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_1013_1585\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const deleteIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <g clip-path=\"url(#clip0_1013_1627)\">\n <path d=\"M6 19C6 20.1 6.9 21 8 21H16C17.1 21 18 20.1 18 19V9C18 7.9 17.1 7 16 7H8C6.9 7 6 7.9 6 9V19ZM9 9H15C15.55 9 16 9.45 16 10V18C16 18.55 15.55 19 15 19H9C8.45 19 8 18.55 8 18V10C8 9.45 8.45 9 9 9ZM15.5 4L14.79 3.29C14.61 3.11 14.35 3 14.09 3H9.91C9.65 3 9.39 3.11 9.21 3.29L8.5 4H6C5.45 4 5 4.45 5 5C5 5.55 5.45 6 6 6H18C18.55 6 19 5.55 19 5C19 4.45 18.55 4 18 4H15.5Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_1013_1627\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const confirmIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <g clip-path=\"url(#clip0_1013_1545)\">\n <path d=\"M9.00012 16.1998L5.50012 12.6998C5.11012 12.3098 4.49012 12.3098 4.10012 12.6998C3.71012 13.0898 3.71012 13.7098 4.10012 14.0998L8.29012 18.2898C8.68012 18.6798 9.31012 18.6798 9.70012 18.2898L20.3001 7.69982C20.6901 7.30982 20.6901 6.68982 20.3001 6.29982C19.9101 5.90982 19.2901 5.90982 18.9001 6.29982L9.00012 16.1998Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_1013_1545\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n","import { configureLinkTooltip, linkTooltipConfig, linkTooltipPlugin } from '@milkdown/components/link-tooltip'\nimport type { DefineFeature } from '../shared'\nimport { confirmIcon, deleteIcon, editIcon, linkIcon } from './consts'\n\nexport const defineFeature: DefineFeature = (editor) => {\n editor\n .config(configureLinkTooltip)\n .config((ctx) => {\n ctx.update(linkTooltipConfig.key, config => ({\n ...config,\n linkIcon: () => linkIcon,\n editButton: () => editIcon,\n removeButton: () => deleteIcon,\n confirmButton: () => confirmIcon,\n }))\n })\n .use(linkTooltipPlugin)\n}\n"],"names":["tooltipFactory","withMeta","mark","linkSchema","e","html","c","_content","_provider","__privateAdd","linkTooltipState","__privateGet","__privateSet","linkTooltipConfig","linkTooltipAPI","TooltipProvider","defIfNotExists","debounce","posToDOMRect","useRef","useState","useEffect","clsx","editorViewCtx","TextSelection"],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- var dropcursor = require('@milkdown/prose/dropcursor');
4
- var gapcursor = require('@milkdown/prose/gapcursor');
5
- var index = require('./index-kNI3S3lF.js');
6
- require('@milkdown/prose/history');
7
- require('@milkdown/prose/model');
8
- require('@milkdown/prose/keymap');
9
- require('@milkdown/prose/commands');
10
- require('@milkdown/prose');
11
- require('@milkdown/prose/state');
12
- require('@milkdown/prose/inputrules');
13
- require('@milkdown/prose/schema-list');
14
- require('@milkdown/prose/view');
15
- require('@milkdown/prose/transform');
16
-
17
- function withMeta(plugin, meta) {
18
- Object.assign(plugin, {
19
- meta: {
20
- package: "@milkdown/plugin-cursor",
21
- ...meta
22
- }
23
- });
24
- return plugin;
25
- }
26
- const dropCursorConfig = index.$ctx({}, "dropCursorConfig");
27
- withMeta(dropCursorConfig, {
28
- displayName: "Ctx<dropCursor>"
29
- });
30
- const dropCursorPlugin = index.$prose((ctx) => dropcursor.dropCursor(ctx.get(dropCursorConfig.key)));
31
- withMeta(dropCursorPlugin, {
32
- displayName: "Prose<dropCursor>"
33
- });
34
- const gapCursorPlugin = index.$prose(() => gapcursor.gapCursor());
35
- withMeta(gapCursorPlugin, {
36
- displayName: "Prose<gapCursor>"
37
- });
38
- const cursor = [dropCursorConfig, dropCursorPlugin, gapCursorPlugin];
39
-
40
- const defineFeature = (editor, config) => {
41
- editor.config((ctx) => {
42
- ctx.update(dropCursorConfig.key, (value) => {
43
- var _a, _b;
44
- return {
45
- ...value,
46
- class: "crepe-drop-cursor",
47
- width: (_a = config == null ? void 0 : config.width) != null ? _a : 4,
48
- color: (_b = config == null ? void 0 : config.color) != null ? _b : false
49
- };
50
- });
51
- }).use(cursor);
52
- };
53
-
54
- exports.defineFeature = defineFeature;
55
- //# sourceMappingURL=index-JAqL0ybh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-JAqL0ybh.js","sources":["../../../plugins/plugin-cursor/src/index.ts","../../src/feature/cursor/index.ts"],"sourcesContent":["import type { Meta, MilkdownPlugin } from '@milkdown/ctx'\nimport { dropCursor } from '@milkdown/prose/dropcursor'\nimport { gapCursor } from '@milkdown/prose/gapcursor'\nimport { $ctx, $prose } from '@milkdown/utils'\n\nfunction withMeta<T extends MilkdownPlugin>(plugin: T, meta: Partial<Meta> & Pick<Meta, 'displayName'>): T {\n Object.assign(plugin, {\n meta: {\n package: '@milkdown/plugin-cursor',\n ...meta,\n },\n })\n\n return plugin\n}\n\n/// @internal\nexport interface DropCursorOptions {\n /**\n The color of the cursor. Defaults to `black`.\n */\n color?: string | false\n /**\n The precise width of the cursor in pixels. Defaults to 1.\n */\n width?: number\n /**\n A CSS class name to add to the cursor element.\n */\n class?: string\n}\n\n/// A slice that contains [options for drop cursor](https://github.com/ProseMirror/prosemirror-dropcursor#documentation).\nexport const dropCursorConfig = $ctx<DropCursorOptions, 'dropCursorConfig'>({}, 'dropCursorConfig')\n\nwithMeta(dropCursorConfig, {\n displayName: 'Ctx<dropCursor>',\n})\n\n/// This plugin wraps [drop cursor](https://github.com/ProseMirror/prosemirror-dropcursor).\nexport const dropCursorPlugin = $prose(ctx => dropCursor(ctx.get(dropCursorConfig.key)))\n\nwithMeta(dropCursorPlugin, {\n displayName: 'Prose<dropCursor>',\n})\n\n/// This plugin wraps [gap cursor](https://github.com/ProseMirror/prosemirror-gapcursor).\nexport const gapCursorPlugin = $prose(() => gapCursor())\n\nwithMeta(gapCursorPlugin, {\n displayName: 'Prose<gapCursor>',\n})\n\n/// All plugins exported by this package.\nexport const cursor: MilkdownPlugin[] = [dropCursorConfig, dropCursorPlugin, gapCursorPlugin]\n","import { cursor, dropCursorConfig } from '@milkdown/plugin-cursor'\n\nimport type { DefineFeature } from '../shared'\n\ninterface CursorConfig {\n color: string | false\n width: number\n}\nexport type CursorFeatureConfig = CursorConfig\n\nexport const defineFeature: DefineFeature<CursorFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.update(dropCursorConfig.key, value => ({\n ...value,\n class: 'crepe-drop-cursor',\n width: config?.width ?? 4,\n color: config?.color ?? false,\n }))\n })\n .use(cursor)\n}\n"],"names":["$ctx","$prose","dropCursor","gapCursor"],"mappings":";;;;;;;;;;;;;;;;AAKA,SAAS,QAAA,CAAmC,QAAW,IAAoD,EAAA;AACzG,EAAA,MAAA,CAAO,OAAO,MAAQ,EAAA;AAAA,IACpB,IAAM,EAAA;AAAA,MACJ,OAAS,EAAA,yBAAA;AAAA,MACT,GAAG,IAAA;AAAA,KACL;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAmBO,MAAM,gBAAmB,GAAAA,UAAA,CAA4C,EAAC,EAAG,kBAAkB,CAAA,CAAA;AAElG,QAAA,CAAS,gBAAkB,EAAA;AAAA,EACzB,WAAa,EAAA,iBAAA;AACf,CAAC,CAAA,CAAA;AAGY,MAAA,gBAAA,GAAmBC,aAAO,CAAO,GAAA,KAAAC,qBAAA,CAAW,IAAI,GAAI,CAAA,gBAAA,CAAiB,GAAG,CAAC,CAAC,CAAA,CAAA;AAEvF,QAAA,CAAS,gBAAkB,EAAA;AAAA,EACzB,WAAa,EAAA,mBAAA;AACf,CAAC,CAAA,CAAA;AAGM,MAAM,eAAkB,GAAAD,YAAA,CAAO,MAAME,mBAAA,EAAW,CAAA,CAAA;AAEvD,QAAA,CAAS,eAAiB,EAAA;AAAA,EACxB,WAAa,EAAA,kBAAA;AACf,CAAC,CAAA,CAAA;AAGM,MAAM,MAA2B,GAAA,CAAC,gBAAkB,EAAA,gBAAA,EAAkB,eAAe,CAAA;;AC5C/E,MAAA,aAAA,GAAoD,CAAC,MAAA,EAAQ,MAAW,KAAA;AACnF,EACG,MAAA,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,IAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,GAAA,EAAK,CAAM,KAAA,KAAA;AAb7C,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAaiD,MAAA,OAAA;AAAA,QACzC,GAAG,KAAA;AAAA,QACH,KAAO,EAAA,mBAAA;AAAA,QACP,KAAA,EAAA,CAAO,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,KAAR,IAAiB,GAAA,EAAA,GAAA,CAAA;AAAA,QACxB,KAAA,EAAA,CAAO,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,KAAR,IAAiB,GAAA,EAAA,GAAA,KAAA;AAAA,OAC1B,CAAA;AAAA,KAAE,CAAA,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAI,MAAM,CAAA,CAAA;AACf;;;;"}