@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 +0,0 @@
1
- {"version":3,"file":"index-kvO8ReCY.js","sources":["../../../plugins/plugin-block/src/__internal__/with-meta.ts","../../../plugins/plugin-block/src/block-config.ts","../../../../node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js","../../../plugins/plugin-block/src/__internal__/remove-possible-table.ts","../../../plugins/plugin-block/src/__internal__/select-node-by-dom.ts","../../../plugins/plugin-block/src/__internal__/serialize-for-clipboard.ts","../../../plugins/plugin-block/src/block-service.ts","../../../plugins/plugin-block/src/block-plugin.ts","../../../plugins/plugin-block/src/block-provider.ts","../../../plugins/plugin-block/src/index.ts","../../../plugins/plugin-slash/src/slash-plugin.ts","../../../plugins/plugin-slash/src/slash-provider.ts","../../src/feature/block-edit/menu/icons.ts","../../src/feature/block-edit/menu/config.ts","../../src/feature/block-edit/menu/component.ts","../../src/feature/block-edit/menu/index.ts","../../src/feature/block-edit/handle/component.ts","../../src/feature/block-edit/handle/index.ts","../../src/feature/block-edit/index.ts"],"sourcesContent":["import type { Meta, MilkdownPlugin } from '@milkdown/ctx'\n\nexport function withMeta<T extends MilkdownPlugin>(plugin: T, meta: Partial<Meta> & Pick<Meta, 'displayName'>): T {\n Object.assign(plugin, {\n meta: {\n package: '@milkdown/plugin-block',\n ...meta,\n },\n })\n\n return plugin\n}\n","import type { Node, ResolvedPos } from '@milkdown/prose/model'\nimport { $ctx } from '@milkdown/utils'\n\nimport { withMeta } from './__internal__/with-meta'\n\n/// @internal\nexport type FilterNodes = (pos: ResolvedPos, node: Node) => boolean\n\n/// @internal\nexport const defaultNodeFilter: FilterNodes = (_pos, node) => {\n const { name } = node.type\n if (name.startsWith('table') && name !== 'table')\n return false\n\n return true\n}\n\n/// A slice contains the block config.\n/// Possible properties:\n/// - `filterNodes`: A function to filter nodes that can be dragged.\nexport const blockConfig = $ctx<{ filterNodes: FilterNodes }, 'blockConfig'>({ filterNodes: defaultNodeFilter }, 'blockConfig')\n\nwithMeta(blockConfig, {\n displayName: 'Ctx<blockConfig>',\n})\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","import type { Transaction } from '@milkdown/prose/state'\nimport { dropPoint } from '@milkdown/prose/transform'\nimport type { EditorView } from '@milkdown/prose/view'\n\nexport function removePossibleTable(view: EditorView, event: DragEvent): Transaction | null {\n const { state } = view\n\n const $pos = state.selection.$anchor\n for (let d = $pos.depth; d > 0; d--) {\n const node = $pos.node(d)\n if (node.type.spec.tableRole === 'table') {\n const eventPos = view.posAtCoords({ left: event.clientX, top: event.clientY })\n if (!eventPos)\n return null\n const slice = view.dragging?.slice\n if (!slice)\n return null\n\n const $mouse = view.state.doc.resolve(eventPos.pos)\n const insertPos = dropPoint(view.state.doc, $mouse.pos, slice)\n if (insertPos == null || insertPos < 0)\n return null\n\n let tr = state.tr\n tr = tr.delete($pos.before(d), $pos.after(d))\n\n const pos = tr.mapping.map(insertPos)\n\n tr = tr.replaceRange(pos, pos, slice)\n\n return tr\n }\n }\n\n return null\n}\n","import type { EditorView } from '@milkdown/prose/view'\n\nimport type { FilterNodes } from '../block-config'\nimport type { ActiveNode } from '../types'\n\nexport function selectRootNodeByDom(view: EditorView, coords: { x: number, y: number }, filterNodes: FilterNodes): ActiveNode | null {\n const root = view.dom.parentElement\n if (!root)\n return null\n\n const pos = view.posAtCoords({\n left: coords.x,\n top: coords.y,\n })?.inside\n if (pos == null || pos < 0)\n return null\n\n let $pos = view.state.doc.resolve(pos)\n let node = view.state.doc.nodeAt(pos)\n let element = view.nodeDOM(pos) as HTMLElement | null\n\n const filter = () => {\n if ($pos.depth >= 1 && $pos.index($pos.depth) === 0) {\n const ancestorPos = $pos.before($pos.depth)\n node = view.state.doc.nodeAt(ancestorPos)\n element = view.nodeDOM(ancestorPos) as HTMLElement | null\n $pos = view.state.doc.resolve(ancestorPos)\n if (!filterNodes($pos, node!))\n filter()\n }\n }\n\n filter()\n\n if (!element || !node)\n return null\n\n return { node, $pos, el: element }\n}\n","/**\n * Copy pasted from https://github.com/ProseMirror/prosemirror-view/blob/master/src/clipboard.ts\n */\n\nimport type { NodeType, Slice } from '@milkdown/prose/model'\nimport { DOMSerializer } from '@milkdown/prose/model'\nimport type { EditorView } from '@milkdown/prose/view'\n\nlet _detachedDoc: Document | null = null\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument('title'))\n}\n\nconst wrapMap: { [node: string]: string[] } = {\n thead: ['table'],\n tbody: ['table'],\n tfoot: ['table'],\n caption: ['table'],\n colgroup: ['table'],\n col: ['table', 'colgroup'],\n tr: ['table', 'tbody'],\n td: ['table', 'tbody', 'tr'],\n th: ['table', 'tbody', 'tr'],\n}\n\nexport function serializeForClipboard(view: EditorView, slice: Slice) {\n const context = []\n let { openStart, openEnd, content } = slice\n while (openStart > 1 && openEnd > 1 && content.childCount === 1 && content.firstChild!.childCount === 1) {\n openStart -= 1\n openEnd -= 1\n const node = content.firstChild!\n context.push(\n node.type.name,\n node.attrs !== (node.type as NodeType & { defaultAttrs: unknown }).defaultAttrs ? node.attrs : null,\n )\n content = node.content\n }\n\n const serializer = view.someProp('clipboardSerializer') || DOMSerializer.fromSchema(view.state.schema)\n const doc = detachedDoc()\n const wrap = doc.createElement('div')\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }))\n\n let firstChild = wrap.firstChild\n let needsWrap\n let wrappers = 0\n // eslint-disable-next-line no-cond-assign\n while (firstChild && firstChild.nodeType === 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n const wrapper = doc.createElement(needsWrap[i] as string)\n while (wrap.firstChild) wrapper.appendChild(wrap.firstChild)\n wrap.appendChild(wrapper)\n wrappers++\n }\n firstChild = wrap.firstChild\n }\n\n if (firstChild && firstChild.nodeType === 1) {\n (firstChild as HTMLElement).setAttribute(\n 'data-pm-slice',\n `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : ''} ${JSON.stringify(context)}`,\n )\n }\n\n const text\n = view.someProp('clipboardTextSerializer', f => f(slice, view))\n || slice.content.textBetween(0, slice.content.size, '\\n\\n')\n\n return { dom: wrap, text }\n}\n","import type { Ctx } from '@milkdown/ctx'\nimport { editorViewCtx } from '@milkdown/core'\nimport { browser } from '@milkdown/prose'\nimport type { Selection } from '@milkdown/prose/state'\nimport { NodeSelection } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\nimport throttle from 'lodash.throttle'\n\nimport type { FilterNodes } from './block-config'\nimport { blockConfig } from './block-config'\nimport { removePossibleTable } from './__internal__/remove-possible-table'\nimport { selectRootNodeByDom } from './__internal__/select-node-by-dom'\nimport { serializeForClipboard } from './__internal__/serialize-for-clipboard'\nimport type { ActiveNode } from './types'\n\nconst brokenClipboardAPI\n = (browser.ie && <number>browser.ie_version < 15) || (browser.ios && browser.webkit_version < 604)\n\nconst buffer = 20\n\n/// @internal\nexport type BlockServiceMessageType = {\n type: 'hide'\n} | {\n type: 'show'\n active: ActiveNode\n}\n\n/// @internal\nexport type BlockServiceMessage = (message: BlockServiceMessageType) => void\n\n/// @internal\n/// The block service, provide events and methods for block plugin.\n/// Generally you don't need to use this class directly.\nexport class BlockService {\n /// @internal\n #ctx?: Ctx\n\n /// @internal\n #createSelection: () => null | Selection = () => {\n if (!this.#active)\n return null\n const result = this.#active\n const view = this.#view\n\n if (view && NodeSelection.isSelectable(result.node)) {\n const nodeSelection = NodeSelection.create(view.state.doc, result.$pos.pos)\n view.dispatch(view.state.tr.setSelection(nodeSelection))\n view.focus()\n this.#activeSelection = nodeSelection\n return nodeSelection\n }\n return null\n }\n\n /// @internal\n #activeSelection: null | Selection = null\n /// @internal\n #active: null | ActiveNode = null\n /// @internal\n #activeDOMRect: undefined | DOMRect = undefined\n\n /// @internal\n #dragging = false\n\n /// @internal\n get #filterNodes(): FilterNodes | undefined {\n return this.#ctx?.get(blockConfig.key).filterNodes\n }\n\n /// @internal\n get #view() {\n return this.#ctx?.get(editorViewCtx)\n }\n\n /// @internal\n #notify?: BlockServiceMessage\n\n /// @internal\n #hide = () => {\n this.#notify?.({ type: 'hide' })\n this.#active = null\n }\n\n /// @internal\n #show = (active: ActiveNode) => {\n this.#active = active\n this.#notify?.({ type: 'show', active })\n }\n\n /// Bind editor context and notify function to the service.\n bind = (ctx: Ctx, notify: BlockServiceMessage) => {\n this.#ctx = ctx\n this.#notify = notify\n }\n\n /// Add mouse event to the dom.\n addEvent = (dom: HTMLElement) => {\n dom.addEventListener('mousedown', this.#handleMouseDown)\n dom.addEventListener('mouseup', this.#handleMouseUp)\n dom.addEventListener('dragstart', this.#handleDragStart)\n }\n\n /// Remove mouse event to the dom.\n removeEvent = (dom: HTMLElement) => {\n dom.removeEventListener('mousedown', this.#handleMouseDown)\n dom.removeEventListener('mouseup', this.#handleMouseUp)\n dom.removeEventListener('dragstart', this.#handleDragStart)\n }\n\n /// Unbind the notify function.\n unBind = () => {\n this.#notify = undefined\n }\n\n /// @internal\n #handleMouseDown = () => {\n this.#activeDOMRect = this.#active?.el.getBoundingClientRect()\n this.#createSelection()\n }\n\n /// @internal\n #handleMouseUp = () => {\n if (!this.#dragging) {\n requestAnimationFrame(() => {\n if (!this.#activeDOMRect)\n return\n this.#view?.focus()\n })\n\n return\n }\n this.#dragging = false\n this.#activeSelection = null\n }\n\n /// @internal\n #handleDragStart = (event: DragEvent) => {\n this.#dragging = true\n\n const view = this.#view\n if (!view)\n return\n view.dom.dataset.dragging = 'true'\n\n const selection = this.#activeSelection\n if (event.dataTransfer && selection) {\n const slice = selection.content()\n event.dataTransfer.effectAllowed = 'copyMove'\n const { dom, text } = serializeForClipboard(view, slice)\n event.dataTransfer.clearData()\n event.dataTransfer.setData(brokenClipboardAPI ? 'Text' : 'text/html', dom.innerHTML)\n if (!brokenClipboardAPI)\n event.dataTransfer.setData('text/plain', text)\n const activeEl = this.#active?.el\n if (activeEl)\n event.dataTransfer.setDragImage(activeEl, 0, 0)\n\n view.dragging = {\n slice,\n move: true,\n }\n this.#hide()\n }\n }\n\n /// @internal\n keydownCallback = (view: EditorView) => {\n this.#hide()\n\n this.#dragging = false\n view.dom.dataset.dragging = 'false'\n return false\n }\n\n /// @internal\n #mousemoveCallback = throttle((view: EditorView, event: MouseEvent) => {\n if (!view.editable)\n return\n\n const rect = view.dom.getBoundingClientRect()\n const x = rect.left + rect.width / 2\n const dom = view.root.elementFromPoint(x, event.clientY)\n if (!(dom instanceof Element)) {\n this.#hide()\n return\n }\n\n const filterNodes = this.#filterNodes\n if (!filterNodes)\n return\n\n const result = selectRootNodeByDom(view, { x, y: event.clientY }, filterNodes)\n\n if (!result) {\n this.#hide()\n return\n }\n this.#show(result)\n }, 200)\n\n /// @internal\n mousemoveCallback = (view: EditorView, event: MouseEvent) => {\n if (view.composing || !view.editable)\n return false\n\n this.#mousemoveCallback(view, event)\n\n return false\n }\n\n /// @internal\n dragoverCallback = (view: EditorView, event: DragEvent) => {\n if (this.#dragging) {\n const root = this.#view?.dom.parentElement\n if (!root)\n return false\n\n const hasHorizontalScrollbar = root.scrollHeight > root.clientHeight\n\n const rootRect = root.getBoundingClientRect()\n if (hasHorizontalScrollbar) {\n if (root.scrollTop > 0 && Math.abs(event.y - rootRect.y) < buffer) {\n const top = root.scrollTop > 10 ? root.scrollTop - 10 : 0\n root.scrollTop = top\n return false\n }\n const totalHeight = Math.round(view.dom.getBoundingClientRect().height)\n const scrollBottom = Math.round(root.scrollTop + rootRect.height)\n if (scrollBottom < totalHeight && Math.abs(event.y - (rootRect.height + rootRect.y)) < buffer) {\n const top = root.scrollTop + 10\n root.scrollTop = top\n return false\n }\n }\n }\n return false\n }\n\n /// @internal\n dragenterCallback = (view: EditorView) => {\n this.#dragging = true\n view.dom.dataset.dragging = 'true'\n }\n\n /// @internal\n dragleaveCallback = (view: EditorView, event: DragEvent) => {\n const x = event.clientX\n const y = event.clientY\n // if cursor out of the editor\n if (x < 0 || y < 0 || x > window.innerWidth || y > window.innerHeight) {\n this.#active = null\n this.#dragEnd(view)\n }\n }\n\n /// @internal\n dropCallback = (view: EditorView, event: DragEvent) => {\n const tr = removePossibleTable(view, event)\n\n this.#dragEnd(view)\n\n if (tr) {\n view.dispatch(tr)\n\n event.preventDefault()\n\n return true\n }\n\n return false\n }\n\n /// @internal\n dragendCallback = (view: EditorView) => {\n this.#dragEnd(view)\n }\n\n /// @internal\n #dragEnd = (view: EditorView) => {\n this.#dragging = false\n view.dom.dataset.dragging = 'false'\n }\n}\n","import type { PluginSpec } from '@milkdown/prose/state'\nimport { Plugin, PluginKey } from '@milkdown/prose/state'\nimport { $ctx, $prose } from '@milkdown/utils'\n\nimport { BlockService } from './block-service'\nimport { withMeta } from './__internal__/with-meta'\nimport { blockConfig } from './block-config'\n\n/// @internal\nexport const blockService = $ctx(new BlockService(), 'blockService')\n\nwithMeta(blockConfig, {\n displayName: 'Ctx<blockService>',\n})\n\n/// A slice contains a factory that will return a plugin spec.\n/// Users can use this slice to customize the plugin.\nexport const blockSpec = $ctx<PluginSpec<any>, 'blockSpec'>({}, 'blockSpec')\n\nwithMeta(blockConfig, {\n displayName: 'Ctx<blockSpec>',\n})\n\n/// The block prosemirror plugin.\nexport const blockPlugin = $prose((ctx) => {\n const milkdownPluginBlockKey = new PluginKey('MILKDOWN_BLOCK')\n const service = ctx.get(blockService.key)\n const spec = ctx.get(blockSpec.key)\n\n return new Plugin({\n key: milkdownPluginBlockKey,\n ...spec,\n props: {\n ...spec.props,\n handleDOMEvents: {\n drop: (view, event) => {\n return service.dropCallback(view, event)\n },\n pointermove: (view, event) => {\n return service.mousemoveCallback(view, event)\n },\n keydown: (view) => {\n return service.keydownCallback(view)\n },\n dragover: (view, event) => {\n return service.dragoverCallback(view, event)\n },\n dragleave: (view, event) => {\n return service.dragleaveCallback(view, event)\n },\n dragenter: (view) => {\n return service.dragenterCallback(view)\n },\n dragend: (view) => {\n return service.dragendCallback(view)\n },\n },\n },\n })\n})\n\nwithMeta(blockPlugin, {\n displayName: 'Prose<block>',\n})\n","import type { Ctx } from '@milkdown/ctx'\nimport type { EditorState } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\n\nimport type { Placement, VirtualElement } from '@floating-ui/dom'\nimport { computePosition, flip, offset, platform } from '@floating-ui/dom'\n\nimport { offsetParent } from 'composed-offset-position'\nimport { editorViewCtx } from '@milkdown/core'\nimport type { BlockService } from './block-service'\nimport { blockService } from './block-plugin'\nimport type { ActiveNode } from './types'\n\n/// The context of the block provider.\nexport interface DeriveContext {\n ctx: Ctx\n active: ActiveNode\n editorDom: HTMLElement\n blockDom: HTMLElement\n}\n\n/// Options for creating block provider.\nexport interface BlockProviderOptions {\n /// The context of the editor.\n ctx: Ctx\n /// The content of the block.\n content: HTMLElement\n /// The function to determine whether the tooltip should be shown.\n shouldShow?: (view: EditorView, prevState?: EditorState) => boolean\n /// The offset to get the block. Default is 0.\n getOffset?: (deriveContext: DeriveContext) => number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n /// The function to get the position of the block. Default is the position of the active node.\n getPosition?: (deriveContext: DeriveContext) => Omit<DOMRect, 'toJSON'>\n /// The function to get the placement of the block. Default is 'left'.\n getPlacement?: (deriveContext: DeriveContext) => Placement\n}\n\n/// A provider for creating block.\nexport class BlockProvider {\n /// @internal\n readonly #element: HTMLElement\n\n /// @internal\n readonly #ctx: Ctx\n\n /// @internal\n #service?: BlockService\n\n /// @internal\n #activeNode: ActiveNode | null = null\n\n /// @internal\n #initialized = false\n\n /// @internal\n readonly #getOffset?: (deriveContext: DeriveContext) => number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n\n /// @internal\n readonly #getPosition?: (deriveContext: DeriveContext) => Omit<DOMRect, 'toJSON'>\n\n /// @internal\n readonly #getPlacement?: (deriveContext: DeriveContext) => Placement\n\n /// The context of current active node.\n get active() {\n return this.#activeNode\n }\n\n constructor(options: BlockProviderOptions) {\n this.#ctx = options.ctx\n this.#element = options.content\n this.#getOffset = options.getOffset\n this.#getPosition = options.getPosition\n this.#getPlacement = options.getPlacement\n this.hide()\n }\n\n /// @internal\n #init() {\n const view = this.#ctx.get(editorViewCtx)\n view.dom.parentElement?.appendChild(this.#element)\n\n const service = this.#ctx.get(blockService.key)\n service.bind(this.#ctx, (message) => {\n if (message.type === 'hide') {\n this.hide()\n this.#activeNode = null\n }\n\n else if (message.type === 'show') {\n this.show(message.active)\n this.#activeNode = message.active\n }\n })\n\n this.#service = service\n this.#service.addEvent(this.#element)\n this.#element.draggable = true\n }\n\n /// Update provider state by editor view.\n update = (): void => {\n requestAnimationFrame(() => {\n if (!this.#initialized) {\n try {\n this.#init()\n this.#initialized = true\n }\n catch {\n // ignore\n }\n }\n })\n }\n\n /// Destroy the block.\n destroy = () => {\n this.#service?.unBind()\n this.#service?.removeEvent(this.#element)\n this.#element.remove()\n }\n\n /// Show the block.\n show = (active: ActiveNode) => {\n const dom = active.el\n const editorDom = this.#ctx.get(editorViewCtx).dom\n const deriveContext: DeriveContext = {\n ctx: this.#ctx,\n active,\n editorDom,\n blockDom: this.#element,\n }\n const virtualEl: VirtualElement = {\n contextElement: dom,\n getBoundingClientRect: () => {\n if (this.#getPosition)\n return this.#getPosition(deriveContext)\n\n return dom.getBoundingClientRect()\n },\n }\n const middleware = [flip()]\n if (this.#getOffset) {\n const offsetOption = this.#getOffset(deriveContext)\n const offsetExt = offset(offsetOption)\n middleware.push(offsetExt)\n }\n\n computePosition(virtualEl, this.#element, {\n placement: this.#getPlacement\n ? this.#getPlacement(deriveContext)\n : 'left',\n middleware,\n platform: {\n ...platform,\n getOffsetParent: element =>\n platform.getOffsetParent(element, offsetParent),\n },\n }).then(({ x, y }) => {\n Object.assign(this.#element.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n this.#element.dataset.show = 'true'\n })\n }\n\n /// Hide the block.\n hide = () => {\n this.#element.dataset.show = 'false'\n Object.assign(this.#element.style, {\n left: `-999px`,\n top: `-999px`,\n })\n }\n}\n","import type { SliceType } from '@milkdown/ctx'\nimport type { PluginSpec } from '@milkdown/prose/state'\nimport type { $Ctx, $Prose } from '@milkdown/utils'\nimport type { FilterNodes } from './block-config'\nimport { blockConfig } from './block-config'\nimport { blockPlugin, blockService, blockSpec } from './block-plugin'\nimport type { BlockService } from './block-service'\n\nexport * from './block-plugin'\nexport * from './block-provider'\nexport * from './block-service'\nexport * from './block-config'\nexport * from './types'\n\n/// @internal\nexport type BlockPlugin = [\n $Ctx<PluginSpec<any>, 'blockSpec'>,\n $Ctx<{ filterNodes: FilterNodes }, 'blockConfig'>,\n $Ctx<BlockService, 'blockService'>,\n $Prose,\n] & {\n key: SliceType<PluginSpec<any>, 'blockSpec'>\n pluginKey: $Prose['key']\n}\n\n/// All plugins exported by this package.\nexport const block = [blockSpec, blockConfig, blockService, blockPlugin] as BlockPlugin\nblock.key = blockSpec.key\nblock.pluginKey = blockPlugin.key\n","import type { SliceType } from '@milkdown/ctx'\nimport type { PluginSpec } from '@milkdown/prose/state'\nimport { Plugin, PluginKey } from '@milkdown/prose/state'\nimport type { $Ctx, $Prose } from '@milkdown/utils'\nimport { $ctx, $prose } from '@milkdown/utils'\n\n/// @internal\nexport type SlashPluginSpecId<Id extends string> = `${Id}_SLASH_SPEC`\n\n/// @internal\nexport type SlashPlugin<Id extends string, State = any> = [$Ctx<PluginSpec<State>, SlashPluginSpecId<Id>>, $Prose] & {\n key: SliceType<PluginSpec<State>, SlashPluginSpecId<Id>>\n pluginKey: $Prose['key']\n}\n\n/// Create a slash plugin with a unique id.\nexport function slashFactory<Id extends string, State = any>(id: Id) {\n const slashSpec = $ctx<PluginSpec<State>, SlashPluginSpecId<Id>>({}, `${id}_SLASH_SPEC`)\n const slashPlugin = $prose((ctx) => {\n const spec = ctx.get(slashSpec.key)\n return new Plugin({\n key: new PluginKey(`${id}_SLASH`),\n ...spec,\n })\n })\n const result = [slashSpec, slashPlugin] as SlashPlugin<Id>\n result.key = slashSpec.key\n result.pluginKey = slashPlugin.key\n slashSpec.meta = {\n package: '@milkdown/plugin-slash',\n displayName: `Ctx<slashSpec>|${id}`,\n }\n slashPlugin.meta = {\n package: '@milkdown/plugin-slash',\n displayName: `Prose<slash>|${id}`,\n }\n\n return result\n}\n","import { findParentNode, posToDOMRect } from '@milkdown/prose'\nimport type { EditorState } from '@milkdown/prose/state'\nimport type { Node } from '@milkdown/prose/model'\nimport { TextSelection } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\nimport debounce from 'lodash.debounce'\nimport type { VirtualElement } from '@floating-ui/dom'\nimport { computePosition, flip, offset, platform } from '@floating-ui/dom'\nimport { offsetParent } from 'composed-offset-position'\n\n/// Options for slash provider.\nexport interface SlashProviderOptions {\n /// The slash content.\n content: HTMLElement\n /// The debounce time for updating slash, 200ms by default.\n debounce?: number\n /// The function to determine whether the tooltip should be shown.\n shouldShow?: (view: EditorView, prevState?: EditorState) => boolean\n /// The key trigger for shouldShow, '/' by default.\n trigger?: string | string[]\n /// The offset to get the block. Default is 0.\n offset?: number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n}\n\n/// A provider for creating slash.\nexport class SlashProvider {\n /// The root element of the slash.\n element: HTMLElement\n\n /// @internal\n #initialized = false\n\n /// @internal\n readonly #debounce: number\n\n /// @internal\n readonly #trigger: string | string[]\n\n /// @internal\n readonly #shouldShow: (view: EditorView, prevState?: EditorState) => boolean\n\n /// The offset to get the block. Default is 0.\n readonly #offset?: number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n\n /// On show callback.\n onShow = () => {}\n\n /// On hide callback.\n onHide = () => {}\n\n constructor(options: SlashProviderOptions) {\n this.element = options.content\n this.#debounce = options.debounce ?? 200\n this.#shouldShow = options.shouldShow ?? this.#_shouldShow\n this.#trigger = options.trigger ?? '/'\n this.#offset = options.offset\n }\n\n /// @internal\n #onUpdate = (view: EditorView, prevState?: EditorState): void => {\n const { state, composing } = view\n const { selection, doc } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const isSame = prevState && prevState.doc.eq(doc) && prevState.selection.eq(selection)\n\n if (!this.#initialized) {\n view.dom.parentElement?.appendChild(this.element)\n this.#initialized = true\n }\n\n if (composing || isSame)\n return\n\n if (!this.#shouldShow(view, prevState)) {\n this.hide()\n return\n }\n\n const virtualEl: VirtualElement = {\n getBoundingClientRect: () => posToDOMRect(view, from, to),\n }\n computePosition(virtualEl, this.element, {\n placement: 'bottom-start',\n middleware: [flip(), offset(this.#offset)],\n platform: {\n ...platform,\n getOffsetParent: element =>\n platform.getOffsetParent(element, offsetParent),\n },\n })\n .then(({ x, y }) => {\n Object.assign(this.element.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n })\n\n this.show()\n }\n\n /// @internal\n #_shouldShow(view: EditorView): boolean {\n const currentTextBlockContent = this.getContent(view)\n\n if (!currentTextBlockContent)\n return false\n\n const target = currentTextBlockContent.at(-1)\n\n if (!target)\n return false\n\n return Array.isArray(this.#trigger) ? this.#trigger.includes(target) : this.#trigger === target\n }\n\n /// Update provider state by editor view.\n update = (view: EditorView, prevState?: EditorState): void => {\n const updater = debounce(this.#onUpdate, this.#debounce)\n\n updater(view, prevState)\n }\n\n /// Get the content of the current text block.\n /// Pass the `matchNode` function to determine whether the current node should be matched, by default, it will match the paragraph node.\n getContent = (view: EditorView, matchNode: (node: Node) => boolean = node => node.type.name === 'paragraph'): string | undefined => {\n const { selection } = view.state\n const { empty, $from } = selection\n const isTextBlock = view.state.selection instanceof TextSelection\n\n const isSlashChildren = this.element.contains(document.activeElement)\n\n const notHasFocus = !view.hasFocus() && !isSlashChildren\n\n const isReadonly = !view.editable\n\n const paragraph = findParentNode(matchNode)(view.state.selection)\n\n const isNotInParagraph = !paragraph\n\n if (notHasFocus || isReadonly || !empty || !isTextBlock || isNotInParagraph)\n return\n\n return $from.parent.textBetween(Math.max(0, $from.parentOffset - 500), $from.parentOffset, undefined, '\\uFFFC')\n }\n\n /// Destroy the slash.\n destroy = () => {\n }\n\n /// Show the slash.\n show = () => {\n this.element.dataset.show = 'true'\n this.onShow()\n }\n\n /// Hide the slash.\n hide = () => {\n this.element.dataset.show = 'false'\n this.onHide()\n }\n}\n","import { html } from 'atomico'\n\nexport const textIcon = 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_992_5547)\">\n <path d=\"M5 5.5C5 6.33 5.67 7 6.5 7H10.5V17.5C10.5 18.33 11.17 19 12 19C12.83 19 13.5 18.33 13.5 17.5V7H17.5C18.33 7 19 6.33 19 5.5C19 4.67 18.33 4 17.5 4H6.5C5.67 4 5 4.67 5 5.5Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_992_5547\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h1Icon = 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_992_5553)\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM12 17H14V7H10V9H12V17Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_992_5553\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h2Icon = 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_992_5559)\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15H11V13H13C14.1 13 15 12.11 15 11V9C15 7.89 14.1 7 13 7H9V9H13V11H11C9.9 11 9 11.89 9 13V17H15V15Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_992_5559\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h3Icon = 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_992_5565)\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15V13.5C15 12.67 14.33 12 13.5 12C14.33 12 15 11.33 15 10.5V9C15 7.89 14.1 7 13 7H9V9H13V11H11V13H13V15H9V17H13C14.1 17 15 16.11 15 15Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_992_5565\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h4Icon = 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_977_7757)\">\n <path d=\"M19.04 3H5.04004C3.94004 3 3.04004 3.9 3.04004 5V19C3.04004 20.1 3.94004 21 5.04004 21H19.04C20.14 21 21.04 20.1 21.04 19V5C21.04 3.9 20.14 3 19.04 3ZM19.04 19H5.04004V5H19.04V19ZM13.04 17H15.04V7H13.04V11H11.04V7H9.04004V13H13.04V17Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_7757\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h5Icon = 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_977_7760)\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15V13C15 11.89 14.1 11 13 11H11V9H15V7H9V13H13V15H9V17H13C14.1 17 15 16.11 15 15Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_7760\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const h6Icon = 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_977_7763)\">\n <path d=\"M11 17H13C14.1 17 15 16.11 15 15V13C15 11.89 14.1 11 13 11H11V9H15V7H11C9.9 7 9 7.89 9 9V15C9 16.11 9.9 17 11 17ZM11 13H13V15H11V13ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_7763\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const bulletListIcon = 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_977_8070)\">\n <path d=\"M4 10.5C3.17 10.5 2.5 11.17 2.5 12C2.5 12.83 3.17 13.5 4 13.5C4.83 13.5 5.5 12.83 5.5 12C5.5 11.17 4.83 10.5 4 10.5ZM4 4.5C3.17 4.5 2.5 5.17 2.5 6C2.5 6.83 3.17 7.5 4 7.5C4.83 7.5 5.5 6.83 5.5 6C5.5 5.17 4.83 4.5 4 4.5ZM4 16.5C3.17 16.5 2.5 17.18 2.5 18C2.5 18.82 3.18 19.5 4 19.5C4.82 19.5 5.5 18.82 5.5 18C5.5 17.18 4.83 16.5 4 16.5ZM8 19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H8C7.45 17 7 17.45 7 18C7 18.55 7.45 19 8 19ZM8 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H8C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM7 6C7 6.55 7.45 7 8 7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H8C7.45 5 7 5.45 7 6Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_8070\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const orderedListIcon = 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_977_8067)\">\n <path d=\"M8 7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H8C7.45 5 7 5.45 7 6C7 6.55 7.45 7 8 7ZM20 17H8C7.45 17 7 17.45 7 18C7 18.55 7.45 19 8 19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17ZM20 11H8C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11ZM4.5 16H2.5C2.22 16 2 16.22 2 16.5C2 16.78 2.22 17 2.5 17H4V17.5H3.5C3.22 17.5 3 17.72 3 18C3 18.28 3.22 18.5 3.5 18.5H4V19H2.5C2.22 19 2 19.22 2 19.5C2 19.78 2.22 20 2.5 20H4.5C4.78 20 5 19.78 5 19.5V16.5C5 16.22 4.78 16 4.5 16ZM2.5 5H3V7.5C3 7.78 3.22 8 3.5 8C3.78 8 4 7.78 4 7.5V4.5C4 4.22 3.78 4 3.5 4H2.5C2.22 4 2 4.22 2 4.5C2 4.78 2.22 5 2.5 5ZM4.5 10H2.5C2.22 10 2 10.22 2 10.5C2 10.78 2.22 11 2.5 11H3.8L2.12 12.96C2.04 13.05 2 13.17 2 13.28V13.5C2 13.78 2.22 14 2.5 14H4.5C4.78 14 5 13.78 5 13.5C5 13.22 4.78 13 4.5 13H3.2L4.88 11.04C4.96 10.95 5 10.83 5 10.72V10.5C5 10.22 4.78 10 4.5 10Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_8067\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const quoteIcon = 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_977_7897)\">\n <path d=\"M7.17 17C7.68 17 8.15 16.71 8.37 16.26L9.79 13.42C9.93 13.14 10 12.84 10 12.53V8C10 7.45 9.55 7 9 7H5C4.45 7 4 7.45 4 8V12C4 12.55 4.45 13 5 13H7L5.97 15.06C5.52 15.95 6.17 17 7.17 17ZM17.17 17C17.68 17 18.15 16.71 18.37 16.26L19.79 13.42C19.93 13.14 20 12.84 20 12.53V8C20 7.45 19.55 7 19 7H15C14.45 7 14 7.45 14 8V12C14 12.55 14.45 13 15 13H17L15.97 15.06C15.52 15.95 16.17 17 17.17 17Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_7897\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const dividerIcon = 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_977_7900)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 13H5C4.45 13 4 12.55 4 12C4 11.45 4.45 11 5 11H19C19.55 11 20 11.45 20 12C20 12.55 19.55 13 19 13Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_7900\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const imageIcon = 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_977_8075)\">\n <path d=\"M19 5V19H5V5H19ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM14.14 11.86L11.14 15.73L9 13.14L6 17H18L14.14 11.86Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_8075\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport const codeIcon = 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_977_8081)\">\n <path d=\"M9.4 16.6L4.8 12L9.4 7.4L8 6L2 12L8 18L9.4 16.6ZM14.6 16.6L19.2 12L14.6 7.4L16 6L22 12L16 18L14.6 16.6Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_977_8081\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n","import type { html } from 'atomico'\nimport type { Ctx } from '@milkdown/ctx'\nimport { editorViewCtx } from '@milkdown/core'\nimport {\n blockquoteSchema,\n bulletListSchema,\n codeBlockSchema,\n headingSchema,\n hrSchema,\n orderedListSchema,\n paragraphSchema,\n} from '@milkdown/preset-commonmark'\nimport type { Attrs, NodeType } from '@milkdown/prose/model'\nimport { findWrapping } from '@milkdown/prose/transform'\nimport type { Command, Transaction } from '@milkdown/prose/state'\nimport { imageBlockSchema } from '@milkdown/components'\nimport {\n bulletListIcon,\n codeIcon,\n dividerIcon,\n h1Icon,\n h2Icon,\n h3Icon,\n h4Icon,\n h5Icon,\n h6Icon,\n imageIcon,\n orderedListIcon,\n quoteIcon,\n textIcon,\n} from './icons'\n\ninterface MenuItem {\n index: number\n key: string\n label: string\n icon: ReturnType<typeof html>\n onRun: (ctx: Ctx) => void\n}\n\ntype WithRange<T, HasIndex extends true | false = true> = HasIndex extends true ? T & { range: [start: number, end: number] } : T\n\ntype MenuItemGroup<HasIndex extends true | false = true> = WithRange<{\n key: string\n label: string\n items: HasIndex extends true ? MenuItem[] : Omit<MenuItem, 'index'>[]\n}, HasIndex>\n\nfunction clearRange(tr: Transaction) {\n const { $from, $to } = tr.selection\n const { pos: from } = $from\n const { pos: to } = $to\n tr = tr.deleteRange(from - $from.node().content.size, to)\n return tr\n}\n\nfunction setBlockType(tr: Transaction, nodeType: NodeType, attrs: Attrs | null = null) {\n const { from, to } = tr.selection\n return tr.setBlockType(from, to, nodeType, attrs)\n}\n\nfunction wrapInBlockType(tr: Transaction, nodeType: NodeType, attrs: Attrs | null = null) {\n const { $from, $to } = tr.selection\n\n const range = $from.blockRange($to)\n const wrapping = range && findWrapping(range, nodeType, attrs)\n if (!wrapping)\n return null\n\n return tr.wrap(range, wrapping)\n}\n\nfunction addBlockType(tr: Transaction, nodeType: NodeType, attrs: Attrs | null = null) {\n const node = nodeType.createAndFill(attrs)\n if (!node)\n return null\n\n return tr.replaceSelectionWith(node)\n}\n\nfunction clearContentAndSetBlockType(nodeType: NodeType, attrs: Attrs | null = null): Command {\n return (state, dispatch) => {\n if (dispatch) {\n const tr = setBlockType(clearRange(state.tr), nodeType, attrs)\n dispatch(tr.scrollIntoView())\n }\n return true\n }\n}\n\nfunction clearContentAndWrapInBlockType(nodeType: NodeType, attrs: Attrs | null = null): Command {\n return (state, dispatch) => {\n const tr = wrapInBlockType(clearRange(state.tr), nodeType, attrs)\n if (!tr)\n return false\n\n if (dispatch)\n dispatch(tr.scrollIntoView())\n\n return true\n }\n}\n\nfunction clearContentAndAddBlockType(nodeType: NodeType, attrs: Attrs | null = null): Command {\n return (state, dispatch) => {\n const tr = addBlockType(clearRange(state.tr), nodeType, attrs)\n if (!tr)\n return false\n\n if (dispatch)\n dispatch(tr.scrollIntoView())\n\n return true\n }\n}\n\nexport function getGroups(filter?: string) {\n let groups: MenuItemGroup<false>[] = [\n {\n key: 'text',\n label: 'Text',\n items: [\n {\n key: 'text',\n label: 'Text',\n icon: textIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(paragraphSchema.type(ctx))\n command(state, dispatch)\n },\n },\n {\n key: 'h1',\n label: 'Heading 1',\n icon: h1Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 1 })\n command(state, dispatch)\n },\n },\n {\n key: 'h2',\n label: 'Heading 2',\n icon: h2Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 2 })\n command(state, dispatch)\n },\n },\n {\n key: 'h3',\n label: 'Heading 3',\n icon: h3Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 3 })\n command(state, dispatch)\n },\n },\n {\n key: 'h4',\n label: 'Heading 4',\n icon: h4Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 4 })\n command(state, dispatch)\n },\n },\n {\n key: 'h5',\n label: 'Heading 5',\n icon: h5Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 5 })\n command(state, dispatch)\n },\n },\n {\n key: 'h6',\n label: 'Heading 6',\n icon: h6Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), { level: 6 })\n command(state, dispatch)\n },\n },\n {\n key: 'quote',\n label: 'Quote',\n icon: quoteIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(blockquoteSchema.type(ctx))\n command(state, dispatch)\n },\n },\n {\n key: 'divider',\n label: 'Divider',\n icon: dividerIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(hrSchema.type(ctx))\n command(state, dispatch)\n },\n },\n ],\n },\n {\n key: 'list',\n label: 'List',\n items: [\n {\n key: 'bullet-list',\n label: 'Bullet List',\n icon: bulletListIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(bulletListSchema.type(ctx))\n command(state, dispatch)\n },\n },\n {\n key: 'ordered-list',\n label: 'Ordered List',\n icon: orderedListIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(orderedListSchema.type(ctx))\n command(state, dispatch)\n },\n },\n ],\n },\n {\n key: 'advanced',\n label: 'Advanced',\n items: [\n {\n key: 'image',\n label: 'Image',\n icon: imageIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(imageBlockSchema.type(ctx))\n command(state, dispatch)\n },\n },\n {\n key: 'code',\n label: 'Code',\n icon: codeIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(codeBlockSchema.type(ctx))\n command(state, dispatch)\n },\n },\n ],\n },\n ]\n\n if (filter) {\n groups = groups\n .map((group) => {\n const items = group\n .items\n .filter(item =>\n item\n .label\n .toLowerCase()\n .includes(filter.toLowerCase()))\n\n return {\n ...group,\n items,\n }\n })\n .filter(group => group.items.length > 0)\n }\n\n const items = groups.flatMap(groups => groups.items)\n items\n .forEach(((item, index) => {\n Object.assign(item, {\n index,\n })\n }))\n\n groups.reduce((acc, group) => {\n const end = acc + group.items.length\n Object.assign(group, {\n range: [acc, end],\n })\n return end\n }, 0)\n\n return {\n groups: groups as unknown as MenuItemGroup[],\n size: items.length,\n }\n}\n","import type { Component } from 'atomico'\nimport { c, html, useCallback, useEffect, useHost, useMemo, useRef, useState } from 'atomico'\nimport type { Ctx } from '@milkdown/ctx'\nimport { getGroups } from './config'\n\nexport interface MenuProps {\n ctx: Ctx\n show: boolean\n filter: string\n hide: () => void\n}\n\nexport const menuComponent: Component<MenuProps> = ({\n show,\n hide,\n ctx,\n filter,\n}) => {\n const { groups, size } = useMemo(() => getGroups(filter), [filter])\n\n const host = useHost()\n const [hoverIndex, setHoverIndex] = useState(0)\n\n const root = useMemo(() => host.current.getRootNode() as HTMLElement, [host])\n\n const prevMousePosition = useRef({ x: -999, y: -999 })\n\n const onMouseMove = useCallback((e: MouseEvent) => {\n const prevPos = prevMousePosition.current\n if (!prevPos)\n return\n\n const { x, y } = e\n prevPos.x = x\n prevPos.y = y\n }, [])\n\n useEffect(() => {\n if (size === 0 && show)\n hide?.()\n }, [size, show])\n\n const onHover = useCallback((\n index: number | ((prev: number) => number),\n after?: (index: number) => void,\n ) => {\n setHoverIndex((prev) => {\n const next = typeof index === 'function' ? index(prev) : index\n\n after?.(next)\n return next\n })\n }, [])\n\n const scrollToIndex = useCallback((index: number) => {\n const target = host\n .current\n .querySelector<HTMLElement>(`[data-index=\"${index}\"]`)\n const scrollRoot = host.current.querySelector<HTMLElement>('.menu-groups')\n\n if (!target || !scrollRoot)\n return\n\n scrollRoot.scrollTop = target.offsetTop - scrollRoot.offsetTop\n\n // target?.scrollIntoView({\n // behavior: 'smooth',\n // block: 'end',\n // })\n }, [])\n\n const runByIndex = useCallback((index: number) => {\n const item = groups.flatMap(group => group.items).at(index)\n if (item && ctx)\n item.onRun(ctx)\n\n hide?.()\n }, [groups])\n\n const onKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault()\n hide?.()\n return\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n return onHover(index => (index < size - 1) ? index + 1 : index, scrollToIndex)\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n return onHover(index => index <= 0 ? index : index - 1, scrollToIndex)\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n return onHover((index) => {\n const group = groups.find(group => group.range[0] <= index && group.range[1] > index)\n if (!group)\n return index\n\n const prevGroup = groups[groups.indexOf(group) - 1]\n if (!prevGroup)\n return index\n\n return prevGroup.range[1] - 1\n }, scrollToIndex)\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault()\n return onHover((index) => {\n const group = groups.find(group => group.range[0] <= index && group.range[1] > index)\n if (!group)\n return index\n\n const nextGroup = groups[groups.indexOf(group) + 1]\n if (!nextGroup)\n return index\n\n return nextGroup.range[0]\n }, scrollToIndex)\n }\n\n if (e.key === 'Enter') {\n e.preventDefault()\n runByIndex(hoverIndex)\n }\n }, [hide, groups, hoverIndex])\n\n const onMouseEnter = useCallback((index: number) => {\n return (e: MouseEvent) => {\n const prevPos = prevMousePosition.current\n if (!prevPos)\n return\n\n const { x, y } = e\n if (x === prevPos.x && y === prevPos.y)\n return\n\n onHover(index)\n }\n }, [])\n\n useEffect(() => {\n if (show)\n root.addEventListener('keydown', onKeydown, { capture: true })\n\n else root.removeEventListener('keydown', onKeydown, { capture: true })\n\n return () => {\n root.removeEventListener('keydown', onKeydown, { capture: true })\n }\n }, [show, onKeydown])\n\n return html`\n <host onmousedown=${(e: MouseEvent) => e.preventDefault()}>\n <nav class=\"tab-group\">\n <ul>\n ${groups.map(group =>\n html`<li\n key=${group.key}\n onmousedown=${() => onHover(group.range[0], scrollToIndex)}\n class=${hoverIndex >= group.range[0] && hoverIndex < group.range[1] ? 'selected' : ''}\n >\n ${group.label}\n </li>`)}\n </ul>\n </nav>\n <div class=\"menu-groups\" onmousemove=${onMouseMove}>\n ${groups.map((group) => {\n return html`\n <div key=${group.key} class=\"menu-group\">\n <h6>${group.label}</h6>\n <ul>\n ${group.items.map(item =>\n html`<li\n key=${item.key}\n data-index=${item.index}\n class=${hoverIndex === item.index ? 'hover' : ''}\n onmouseenter=${onMouseEnter(item.index)}\n onmousedown=${() => {\n host\n .current\n .querySelector(`[data-index=\"${item.index}\"]`)\n ?.classList.add('active')\n }}\n onmouseup=${() => {\n host\n .current\n .querySelector(`[data-index=\"${item.index}\"]`)\n ?.classList.remove('active')\n runByIndex(item.index)\n }}\n >\n ${item.icon}\n <span>${item.label}</span>\n </li>`,\n )}\n </ul>\n </div>\n `\n })}\n </div>\n </host>\n `\n}\n\nmenuComponent.props = {\n ctx: Object,\n show: Boolean,\n filter: String,\n hide: Function,\n}\n\nexport const MenuElement = c(menuComponent)\n","import type { PluginView } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\nimport { SlashProvider, slashFactory } from '@milkdown/plugin-slash'\nimport type { Ctx } from '@milkdown/ctx'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport { $ctx } from '@milkdown/utils'\nimport { defIfNotExists, isInCodeBlock, isInList } from '../../../utils'\nimport type { MenuProps } from './component'\nimport { MenuElement } from './component'\n\nexport const menu = slashFactory('CREPE_MENU')\n\nexport interface MenuAPI {\n show: (pos: number) => void\n hide: () => void\n}\n\nexport const menuAPI = $ctx({\n show: () => {},\n hide: () => {},\n} as MenuAPI, 'menuAPICtx')\n\ndefIfNotExists('milkdown-slash-menu', MenuElement)\nexport function configureMenu(ctx: Ctx) {\n ctx.set(menu.key, {\n view: view => new MenuView(ctx, view),\n })\n}\n\nclass MenuView implements PluginView {\n readonly #content: AtomicoThis<MenuProps, HTMLElement>\n readonly #slashProvider: SlashProvider\n #programmaticallyPos: number | null = null\n\n constructor(ctx: Ctx, view: EditorView) {\n this.#content = new MenuElement()\n this.#content.hide = this.hide\n this.#content.ctx = ctx\n // eslint-disable-next-line ts/no-this-alias\n const self = this\n this.#slashProvider = new SlashProvider({\n content: this.#content,\n debounce: 20,\n shouldShow(this: SlashProvider, view: EditorView) {\n if (isInCodeBlock(view.state.selection) || isInList(view.state.selection))\n return false\n\n const currentText = this.getContent(view, node =>\n ['paragraph', 'heading'].includes(node.type.name))\n\n if (currentText == null)\n return false\n\n const pos = self.#programmaticallyPos\n\n self.#content.filter = currentText.startsWith('/') ? currentText.slice(1) : currentText\n\n if (typeof pos === 'number') {\n if (view.state.doc.resolve(pos).node() !== view.state.doc.resolve(view.state.selection.from).node()) {\n self.#programmaticallyPos = null\n\n return false\n }\n\n return true\n }\n\n if (!currentText.startsWith('/'))\n return false\n\n return true\n },\n })\n\n this.#slashProvider.onShow = () => {\n this.#content.show = true\n }\n this.#slashProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n\n ctx.set(menuAPI.key, {\n show: pos => this.show(pos),\n hide: () => this.hide(),\n })\n }\n\n update = (view: EditorView) => {\n this.#slashProvider.update(view)\n }\n\n show = (pos: number) => {\n this.#programmaticallyPos = pos\n this.#content.filter = ''\n this.#slashProvider.show()\n }\n\n hide = () => {\n this.#programmaticallyPos = null\n this.#slashProvider.hide()\n }\n\n destroy = () => {\n this.#slashProvider.destroy()\n this.#content.remove()\n }\n}\n","import { type Component, c, html, useEffect, useRef } from 'atomico'\n\nconst menuIcon = 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_971_7680)\">\n <path d=\"M11 18C11 19.1 10.1 20 9 20C7.9 20 7 19.1 7 18C7 16.9 7.9 16 9 16C10.1 16 11 16.9 11 18ZM9 10C7.9 10 7 10.9 7 12C7 13.1 7.9 14 9 14C10.1 14 11 13.1 11 12C11 10.9 10.1 10 9 10ZM9 4C7.9 4 7 4.9 7 6C7 7.1 7.9 8 9 8C10.1 8 11 7.1 11 6C11 4.9 10.1 4 9 4ZM15 8C16.1 8 17 7.1 17 6C17 4.9 16.1 4 15 4C13.9 4 13 4.9 13 6C13 7.1 13.9 8 15 8ZM15 10C13.9 10 13 10.9 13 12C13 13.1 13.9 14 15 14C16.1 14 17 13.1 17 12C17 10.9 16.1 10 15 10ZM15 16C13.9 16 13 16.9 13 18C13 19.1 13.9 20 15 20C16.1 20 17 19.1 17 18C17 16.9 16.1 16 15 16Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_971_7680\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nconst plusIcon = 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_971_7676)\">\n <path d=\"M18 13H13V18C13 18.55 12.55 19 12 19C11.45 19 11 18.55 11 18V13H6C5.45 13 5 12.55 5 12C5 11.45 5.45 11 6 11H11V6C11 5.45 11.45 5 12 5C12.55 5 13 5.45 13 6V11H18C18.55 11 19 11.45 19 12C19 12.55 18.55 13 18 13Z\" fill=\"#817567\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_971_7676\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n\nexport interface BlockHandleProps {\n show: boolean\n onAdd: () => void\n}\n\nconst blockHandleComponent: Component<BlockHandleProps> = ({ onAdd }) => {\n const ref = useRef<HTMLDivElement>()\n useEffect(() => {\n ref.current?.classList.remove('active')\n })\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n ref.current?.classList.add('active')\n }\n const onMouseUp = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n onAdd?.()\n ref.current?.classList.remove('active')\n }\n return html`\n <host>\n <div ref=${ref} onmousedown=${onMouseDown} onmouseup=${onMouseUp} class=\"operation-item\">\n ${plusIcon}\n </div>\n <div class=\"operation-item\">\n ${menuIcon}\n </div>\n </host>\n `\n}\n\nblockHandleComponent.props = {\n show: Boolean,\n onAdd: Function,\n}\n\nexport const BlockHandleElement = c(blockHandleComponent)\n","import type { PluginView } from '@milkdown/prose/state'\nimport { TextSelection } from '@milkdown/prose/state'\nimport { BlockProvider, block } from '@milkdown/plugin-block'\nimport type { Ctx } from '@milkdown/ctx'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport { editorViewCtx } from '@milkdown/core'\nimport { paragraphSchema } from '@milkdown/preset-commonmark'\nimport { menuAPI } from '../menu'\nimport { defIfNotExists } from '../../../utils'\nimport type { BlockHandleProps } from './component'\nimport { BlockHandleElement } from './component'\n\nexport class BlockHandleView implements PluginView {\n #content: AtomicoThis<BlockHandleProps>\n #provider: BlockProvider\n readonly #ctx: Ctx\n\n constructor(ctx: Ctx) {\n this.#ctx = ctx\n const content = new BlockHandleElement()\n this.#content = content\n this.#content.onAdd = this.onAdd\n this.#provider = new BlockProvider({\n ctx,\n content,\n getOffset: () => 16,\n getPlacement: ({ active, blockDom }) => {\n let totalDescendant = 0\n active.node.descendants((node) => {\n totalDescendant += node.childCount\n })\n const dom = active.el\n const domRect = dom.getBoundingClientRect()\n const handleRect = blockDom.getBoundingClientRect()\n const style = window.getComputedStyle(dom)\n const paddingTop = Number.parseInt(style.paddingTop, 10) || 0\n const paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0\n const height = domRect.height - paddingTop - paddingBottom\n const handleHeight = handleRect.height\n return totalDescendant > 2 || handleHeight * 2 < height ? 'left-start' : 'left'\n },\n })\n this.update()\n }\n\n update = () => {\n this.#provider.update()\n }\n\n destroy = () => {\n this.#provider.destroy()\n this.#content.remove()\n }\n\n onAdd = () => {\n const ctx = this.#ctx\n const view = ctx.get(editorViewCtx)\n if (!view.hasFocus())\n view.focus()\n\n const { state, dispatch } = view\n const active = this.#provider.active\n if (!active)\n return\n\n const pos = active.$pos\n const isNoneTextBlock = ['hr', 'image-block'].includes(active.node.type.name)\n const nodeSize = isNoneTextBlock ? active.node.nodeSize : active.node.content.size\n const side = pos.pos + nodeSize + (['blockquote'].includes(pos.parent.type.name) ? 1 : 0)\n const offset\n = ['blockquote'].includes(pos.parent.type.name) ? 1 : isNoneTextBlock ? 1 : 2\n let tr = state.tr.insert(side, paragraphSchema.type(ctx).create())\n tr = tr.setSelection(TextSelection.create(tr.doc, side + offset))\n dispatch(tr.scrollIntoView())\n\n this.#provider.hide()\n ctx.get(menuAPI.key).show(tr.selection.from)\n }\n}\n\ndefIfNotExists('milkdown-block-handle', BlockHandleElement)\nexport function configureBlockHandle(ctx: Ctx) {\n ctx.set(block.key, {\n view: () => new BlockHandleView(ctx),\n })\n}\n","import { block } from '@milkdown/plugin-block'\nimport type { DefineFeature } from '../shared'\nimport { configureBlockHandle } from './handle'\nimport { configureMenu, menu, menuAPI } from './menu'\n\nexport const defineFeature: DefineFeature = (editor) => {\n editor\n .config(configureBlockHandle)\n .config(configureMenu)\n .use(menuAPI)\n .use(block)\n .use(menu)\n}\n"],"names":["$ctx","global","dropPoint","DOMSerializer","_ctx","browser","__privateAdd","__privateGet","NodeSelection","__privateSet","throttle","editorViewCtx","$prose","PluginKey","Plugin","_initialized","__privateMethod","flip","offset","computePosition","platform","offsetParent","posToDOMRect","debounce","TextSelection","findParentNode","html","findWrapping","paragraphSchema","headingSchema","blockquoteSchema","hrSchema","bulletListSchema","orderedListSchema","imageBlockSchema","codeBlockSchema","items","groups","useMemo","useHost","useState","useRef","useCallback","useEffect","group","c","_content","defIfNotExists","view","isInCodeBlock","isInList","state"],"mappings":"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","x_google_ignoreList":[2]}