@milkdown/crepe 7.5.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 (197) hide show
  1. package/lib/cjs/{index--tnUmqZ_.js → index--2zEz40J.js} +8 -23
  2. package/lib/cjs/{index--tnUmqZ_.js.map → index--2zEz40J.js.map} +1 -1
  3. package/lib/cjs/{index-92bwto5V.js → index-5n9R-QCl.js} +5 -20
  4. package/lib/cjs/{index-92bwto5V.js.map → index-5n9R-QCl.js.map} +1 -1
  5. package/lib/cjs/{index-HH5lPgpj.js → index-HEdBw63r.js} +8 -23
  6. package/lib/cjs/{index-HH5lPgpj.js.map → index-HEdBw63r.js.map} +1 -1
  7. package/lib/cjs/{index-J1-yHn7v.js → index-Hlt9dRH5.js} +5 -20
  8. package/lib/cjs/{index-J1-yHn7v.js.map → index-Hlt9dRH5.js.map} +1 -1
  9. package/lib/cjs/{index-cb-5m0vG.js → index-KCW2CzRk.js} +8 -23
  10. package/lib/cjs/index-KCW2CzRk.js.map +1 -0
  11. package/lib/cjs/{index-VYwHTL3F.js → index-KSZhahYb.js} +6 -21
  12. package/lib/cjs/{index-VYwHTL3F.js.map → index-KSZhahYb.js.map} +1 -1
  13. package/lib/cjs/index-N1cRxqdw.js +39 -0
  14. package/lib/cjs/index-N1cRxqdw.js.map +1 -0
  15. package/lib/cjs/{index-c_OzudR7.js → index-NNo_VSEA.js} +5 -20
  16. package/lib/{esm/index-DS7Z4Ach.js.map → cjs/index-NNo_VSEA.js.map} +1 -1
  17. package/lib/cjs/{index-Tjg8KyK7.js → index-O1bDbloo.js} +5 -20
  18. package/lib/{esm/index-eqd5wtjX.js.map → cjs/index-O1bDbloo.js.map} +1 -1
  19. package/lib/cjs/{index-55VIM-52.js → index-OPh9naof.js} +8 -23
  20. package/lib/cjs/{index-55VIM-52.js.map → index-OPh9naof.js.map} +1 -1
  21. package/lib/cjs/{index-E4Ist86Z.js → index-PAhfZtcH.js} +5 -20
  22. package/lib/cjs/{index-E4Ist86Z.js.map → index-PAhfZtcH.js.map} +1 -1
  23. package/lib/cjs/{index-vfzLCXfi.js → index-PeRHVz4A.js} +5 -20
  24. package/lib/{esm/index-3bDzhU6z.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
  25. package/lib/cjs/{index-Jztk6JlP.js → index-U7GWrg-w.js} +9 -456
  26. package/lib/cjs/index-U7GWrg-w.js.map +1 -0
  27. package/lib/cjs/{index-zXSAHvAj.js → index-UTb0Az5e.js} +2 -2
  28. package/lib/cjs/{index-zXSAHvAj.js.map → index-UTb0Az5e.js.map} +1 -1
  29. package/lib/cjs/{index-lBumFRUQ.js → index-UnEAyH8X.js} +5 -20
  30. package/lib/cjs/{index-lBumFRUQ.js.map → index-UnEAyH8X.js.map} +1 -1
  31. package/lib/cjs/{index-1vHyMXH8.js → index-VCkq0ru1.js} +5 -20
  32. package/lib/{esm/index-g_3dzLYU.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
  33. package/lib/cjs/{index-FbNqlZU8.js → index-WQl7Du53.js} +4 -19
  34. package/lib/cjs/index-WQl7Du53.js.map +1 -0
  35. package/lib/cjs/{index-nTfDKYYi.js → index-ahL5MvrQ.js} +28 -43
  36. package/lib/cjs/{index-nTfDKYYi.js.map → index-ahL5MvrQ.js.map} +1 -1
  37. package/lib/cjs/{index--sa4NMpW.js → index-bpgWLeRY.js} +5 -20
  38. package/lib/cjs/{index--sa4NMpW.js.map → index-bpgWLeRY.js.map} +1 -1
  39. package/lib/cjs/index-dEVmN_aj.js +26 -0
  40. package/lib/cjs/index-dEVmN_aj.js.map +1 -0
  41. package/lib/cjs/{index-von4W2LG.js → index-fZupvR_f.js} +8 -23
  42. package/lib/{esm/index-NZ5-xr5_.js.map → cjs/index-fZupvR_f.js.map} +1 -1
  43. package/lib/cjs/{index-mcxgNBq9.js → index-gSM-jgti.js} +5 -20
  44. package/lib/cjs/{index-mcxgNBq9.js.map → index-gSM-jgti.js.map} +1 -1
  45. package/lib/cjs/{index-lUNj3xuC.js → index-jlPr_A_N.js} +5 -20
  46. package/lib/cjs/{index-lUNj3xuC.js.map → index-jlPr_A_N.js.map} +1 -1
  47. package/lib/cjs/index-ocxd4A-M.js +675 -0
  48. package/lib/cjs/index-ocxd4A-M.js.map +1 -0
  49. package/lib/cjs/{index-J3XY9IPt.js → index-rFFAL9YA.js} +9 -17
  50. package/lib/cjs/{index-J3XY9IPt.js.map → index-rFFAL9YA.js.map} +1 -1
  51. package/lib/cjs/index-tlx25I_m.js +36 -0
  52. package/lib/cjs/index-tlx25I_m.js.map +1 -0
  53. package/lib/cjs/index-tqAbVyds.js +28 -0
  54. package/lib/cjs/index-tqAbVyds.js.map +1 -0
  55. package/lib/cjs/{index-cpC-j5Nt.js → index-udZSknd8.js} +30 -39
  56. package/lib/cjs/{index-cpC-j5Nt.js.map → index-udZSknd8.js.map} +1 -1
  57. package/lib/cjs/index-uleaJDBC.js +19 -0
  58. package/lib/cjs/index-uleaJDBC.js.map +1 -0
  59. package/lib/cjs/{index-jn036wuh.js → index-urB-WDqA.js} +7 -22
  60. package/lib/{esm/index-VoX_n1l_.js.map → cjs/index-urB-WDqA.js.map} +1 -1
  61. package/lib/cjs/{index-jlfsu92T.js → index-xWgWtxUR.js} +6 -21
  62. package/lib/cjs/{index-jlfsu92T.js.map → index-xWgWtxUR.js.map} +1 -1
  63. package/lib/cjs/index.js +150 -14
  64. package/lib/cjs/index.js.map +1 -1
  65. package/lib/cjs/{todoList-Ze4FLMlx.js → todoList-YYRQo7wG.js} +1 -12
  66. package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
  67. package/lib/esm/{index-Yuj7sNhQ.js → index-1NetiFdJ.js} +8 -23
  68. package/lib/esm/{index-Yuj7sNhQ.js.map → index-1NetiFdJ.js.map} +1 -1
  69. package/lib/esm/{index-6GrVnloh.js → index-2I_xbjAZ.js} +28 -43
  70. package/lib/esm/{index-6GrVnloh.js.map → index-2I_xbjAZ.js.map} +1 -1
  71. package/lib/esm/{index-bexsWrgs.js → index-2huXYfuJ.js} +8 -23
  72. package/lib/esm/{index-bexsWrgs.js.map → index-2huXYfuJ.js.map} +1 -1
  73. package/lib/esm/{index-zrQXXSXm.js → index-4x6_TVZv.js} +5 -20
  74. package/lib/esm/{index-zrQXXSXm.js.map → index-4x6_TVZv.js.map} +1 -1
  75. package/lib/esm/index-6JoGWH2I.js +17 -0
  76. package/lib/esm/index-6JoGWH2I.js.map +1 -0
  77. package/lib/esm/{index-OpUb5xP6.js → index-A-dNwMMf.js} +2 -2
  78. package/lib/esm/{index-OpUb5xP6.js.map → index-A-dNwMMf.js.map} +1 -1
  79. package/lib/esm/{index-SDPCpsD5.js → index-AV99ipmP.js} +5 -20
  80. package/lib/esm/{index-SDPCpsD5.js.map → index-AV99ipmP.js.map} +1 -1
  81. package/lib/esm/{index-MB6wQe1U.js → index-CMGDOz11.js} +5 -13
  82. package/lib/esm/{index-MB6wQe1U.js.map → index-CMGDOz11.js.map} +1 -1
  83. package/lib/esm/index-HlPKwzLC.js +34 -0
  84. package/lib/esm/index-HlPKwzLC.js.map +1 -0
  85. package/lib/esm/{index-MxgqkRtj.js → index-PC2bahtq.js} +5 -20
  86. package/lib/esm/{index-MxgqkRtj.js.map → index-PC2bahtq.js.map} +1 -1
  87. package/lib/esm/{index-eqd5wtjX.js → index-QBYz82jZ.js} +5 -20
  88. package/lib/{cjs/index-Tjg8KyK7.js.map → esm/index-QBYz82jZ.js.map} +1 -1
  89. package/lib/esm/{index-VP76m4nW.js → index-W1pAMr_8.js} +6 -21
  90. package/lib/esm/{index-VP76m4nW.js.map → index-W1pAMr_8.js.map} +1 -1
  91. package/lib/esm/{index-i79QMXpJ.js → index-Xzdc2jbA.js} +7 -454
  92. package/lib/esm/index-Xzdc2jbA.js.map +1 -0
  93. package/lib/esm/{index-_4fWmRbN.js → index-ZAtZWqJQ.js} +5 -20
  94. package/lib/esm/{index-_4fWmRbN.js.map → index-ZAtZWqJQ.js.map} +1 -1
  95. package/lib/esm/index-_A9vu1ED.js +673 -0
  96. package/lib/esm/index-_A9vu1ED.js.map +1 -0
  97. package/lib/esm/{index-x8SyiPMC.js → index-bnSKBrbD.js} +5 -20
  98. package/lib/esm/{index-x8SyiPMC.js.map → index-bnSKBrbD.js.map} +1 -1
  99. package/lib/esm/index-fVrfHXda.js +24 -0
  100. package/lib/esm/index-fVrfHXda.js.map +1 -0
  101. package/lib/esm/{index-Vl0W0S3h.js → index-ftnOhuRS.js} +4 -19
  102. package/lib/esm/index-ftnOhuRS.js.map +1 -0
  103. package/lib/esm/{index-1l-61HI-.js → index-iQPB0Rdl.js} +6 -21
  104. package/lib/esm/{index-1l-61HI-.js.map → index-iQPB0Rdl.js.map} +1 -1
  105. package/lib/esm/{index-grT-Kuf2.js → index-kPj3-TKp.js} +5 -20
  106. package/lib/esm/{index-grT-Kuf2.js.map → index-kPj3-TKp.js.map} +1 -1
  107. package/lib/esm/{index-NZ5-xr5_.js → index-kgOR7SZ6.js} +8 -23
  108. package/lib/{cjs/index-von4W2LG.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
  109. package/lib/esm/{index-A83StUe6.js → index-lm00PM0y.js} +8 -17
  110. package/lib/esm/{index-A83StUe6.js.map → index-lm00PM0y.js.map} +1 -1
  111. package/lib/esm/{index-g_3dzLYU.js → index-m49Bj3q7.js} +5 -20
  112. package/lib/{cjs/index-1vHyMXH8.js.map → esm/index-m49Bj3q7.js.map} +1 -1
  113. package/lib/esm/index-ohmbt6Ys.js +37 -0
  114. package/lib/esm/index-ohmbt6Ys.js.map +1 -0
  115. package/lib/esm/{index-rvOBAXap.js → index-sWVjGw-3.js} +8 -23
  116. package/lib/esm/index-sWVjGw-3.js.map +1 -0
  117. package/lib/esm/{index-DS7Z4Ach.js → index-twh8lL5o.js} +5 -20
  118. package/lib/{cjs/index-c_OzudR7.js.map → esm/index-twh8lL5o.js.map} +1 -1
  119. package/lib/esm/{index-3bDzhU6z.js → index-v02MCz4_.js} +5 -20
  120. package/lib/{cjs/index-vfzLCXfi.js.map → esm/index-v02MCz4_.js.map} +1 -1
  121. package/lib/esm/index-v3rvbocl.js +26 -0
  122. package/lib/esm/index-v3rvbocl.js.map +1 -0
  123. package/lib/esm/{index-XH7OnwZl.js → index-wEXT8mbN.js} +5 -20
  124. package/lib/esm/{index-XH7OnwZl.js.map → index-wEXT8mbN.js.map} +1 -1
  125. package/lib/esm/{index-VoX_n1l_.js → index-wFIac5Kw.js} +7 -22
  126. package/lib/{cjs/index-jn036wuh.js.map → esm/index-wFIac5Kw.js.map} +1 -1
  127. package/lib/esm/{index-3HeWs5rX.js → index-wg94ewRo.js} +8 -23
  128. package/lib/esm/{index-3HeWs5rX.js.map → index-wg94ewRo.js.map} +1 -1
  129. package/lib/esm/index.js +152 -12
  130. package/lib/esm/index.js.map +1 -1
  131. package/lib/esm/{todoList-M-PGJKde.js → todoList-9QsDDcmB.js} +2 -12
  132. package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
  133. package/package.json +1 -1
  134. package/lib/cjs/_view-N32ied53.js +0 -27
  135. package/lib/cjs/_view-N32ied53.js.map +0 -1
  136. package/lib/cjs/floating-ui.dom-2cjBpir5.js +0 -1134
  137. package/lib/cjs/floating-ui.dom-2cjBpir5.js.map +0 -1
  138. package/lib/cjs/helper-1aludV1Z.js +0 -15
  139. package/lib/cjs/helper-1aludV1Z.js.map +0 -1
  140. package/lib/cjs/index-28q261C7.js +0 -448
  141. package/lib/cjs/index-28q261C7.js.map +0 -1
  142. package/lib/cjs/index-Buu2tD9O.js +0 -534
  143. package/lib/cjs/index-Buu2tD9O.js.map +0 -1
  144. package/lib/cjs/index-FbNqlZU8.js.map +0 -1
  145. package/lib/cjs/index-Jztk6JlP.js.map +0 -1
  146. package/lib/cjs/index-N6pPZY61.js +0 -191
  147. package/lib/cjs/index-N6pPZY61.js.map +0 -1
  148. package/lib/cjs/index-TUJs6KKL.js +0 -472
  149. package/lib/cjs/index-TUJs6KKL.js.map +0 -1
  150. package/lib/cjs/index-_GOdKqUK.js +0 -1147
  151. package/lib/cjs/index-_GOdKqUK.js.map +0 -1
  152. package/lib/cjs/index-cKQcw-eu.js +0 -386
  153. package/lib/cjs/index-cKQcw-eu.js.map +0 -1
  154. package/lib/cjs/index-cb-5m0vG.js.map +0 -1
  155. package/lib/cjs/index-crv_k6dv.js +0 -1353
  156. package/lib/cjs/index-crv_k6dv.js.map +0 -1
  157. package/lib/cjs/index-kqz-P6o6.js +0 -55
  158. package/lib/cjs/index-kqz-P6o6.js.map +0 -1
  159. package/lib/cjs/index-tBw4NmwY.js +0 -33852
  160. package/lib/cjs/index-tBw4NmwY.js.map +0 -1
  161. package/lib/cjs/schema-RVrwDDcq.js +0 -74
  162. package/lib/cjs/schema-RVrwDDcq.js.map +0 -1
  163. package/lib/cjs/todoList-Ze4FLMlx.js.map +0 -1
  164. package/lib/cjs/tooltip-plugin--lhebztC.js +0 -191
  165. package/lib/cjs/tooltip-plugin--lhebztC.js.map +0 -1
  166. package/lib/esm/_view-IlZC8FA6.js +0 -25
  167. package/lib/esm/_view-IlZC8FA6.js.map +0 -1
  168. package/lib/esm/floating-ui.dom-CAYjY8Gv.js +0 -1130
  169. package/lib/esm/floating-ui.dom-CAYjY8Gv.js.map +0 -1
  170. package/lib/esm/helper-wZAtC67x.js +0 -13
  171. package/lib/esm/helper-wZAtC67x.js.map +0 -1
  172. package/lib/esm/index-0-j8Icms.js +0 -384
  173. package/lib/esm/index-0-j8Icms.js.map +0 -1
  174. package/lib/esm/index-8QJbxTYk.js +0 -1145
  175. package/lib/esm/index-8QJbxTYk.js.map +0 -1
  176. package/lib/esm/index-9w_hdnvb.js +0 -532
  177. package/lib/esm/index-9w_hdnvb.js.map +0 -1
  178. package/lib/esm/index-AOoFzBaK.js +0 -53
  179. package/lib/esm/index-AOoFzBaK.js.map +0 -1
  180. package/lib/esm/index-LAdX6LsO.js +0 -33805
  181. package/lib/esm/index-LAdX6LsO.js.map +0 -1
  182. package/lib/esm/index-Vl0W0S3h.js.map +0 -1
  183. package/lib/esm/index-chrnjY1D.js +0 -470
  184. package/lib/esm/index-chrnjY1D.js.map +0 -1
  185. package/lib/esm/index-hF04phbf.js +0 -189
  186. package/lib/esm/index-hF04phbf.js.map +0 -1
  187. package/lib/esm/index-i79QMXpJ.js.map +0 -1
  188. package/lib/esm/index-rvOBAXap.js.map +0 -1
  189. package/lib/esm/index-uP9BKsTM.js +0 -446
  190. package/lib/esm/index-uP9BKsTM.js.map +0 -1
  191. package/lib/esm/index-ueQQMSgm.js +0 -1351
  192. package/lib/esm/index-ueQQMSgm.js.map +0 -1
  193. package/lib/esm/schema-JWJqD9qa.js +0 -71
  194. package/lib/esm/schema-JWJqD9qa.js.map +0 -1
  195. package/lib/esm/todoList-M-PGJKde.js.map +0 -1
  196. package/lib/esm/tooltip-plugin-iw2EQWIG.js +0 -185
  197. package/lib/esm/tooltip-plugin-iw2EQWIG.js.map +0 -1
@@ -0,0 +1,675 @@
1
+ 'use strict';
2
+
3
+ var block = require('@milkdown/kit/plugin/block');
4
+ var state = require('@milkdown/kit/prose/state');
5
+ var core = require('@milkdown/kit/core');
6
+ var commonmark = require('@milkdown/kit/preset/commonmark');
7
+ var slash = require('@milkdown/kit/plugin/slash');
8
+ var utils = require('@milkdown/kit/utils');
9
+ var index = require('./index-z6pe2alg.js');
10
+ var atomico = require('atomico');
11
+ var imageBlock = require('@milkdown/kit/component/image-block');
12
+ var gfm = require('@milkdown/kit/preset/gfm');
13
+ var todoList = require('./todoList-YYRQo7wG.js');
14
+ var transform = require('@milkdown/kit/prose/transform');
15
+
16
+ function clearRange(tr) {
17
+ const { $from, $to } = tr.selection;
18
+ const { pos: from } = $from;
19
+ const { pos: to } = $to;
20
+ tr = tr.deleteRange(from - $from.node().content.size, to);
21
+ return tr;
22
+ }
23
+ function setBlockType(tr, nodeType, attrs = null) {
24
+ const { from, to } = tr.selection;
25
+ return tr.setBlockType(from, to, nodeType, attrs);
26
+ }
27
+ function wrapInBlockType(tr, nodeType, attrs = null) {
28
+ const { $from, $to } = tr.selection;
29
+ const range = $from.blockRange($to);
30
+ const wrapping = range && transform.findWrapping(range, nodeType, attrs);
31
+ if (!wrapping)
32
+ return null;
33
+ return tr.wrap(range, wrapping);
34
+ }
35
+ function addBlockType(tr, nodeType, attrs = null) {
36
+ const node = nodeType.createAndFill(attrs);
37
+ if (!node)
38
+ return null;
39
+ return tr.replaceSelectionWith(node);
40
+ }
41
+ function clearContentAndSetBlockType(nodeType, attrs = null) {
42
+ return (state, dispatch) => {
43
+ if (dispatch) {
44
+ const tr = setBlockType(clearRange(state.tr), nodeType, attrs);
45
+ dispatch(tr.scrollIntoView());
46
+ }
47
+ return true;
48
+ };
49
+ }
50
+ function clearContentAndWrapInBlockType(nodeType, attrs = null) {
51
+ return (state, dispatch) => {
52
+ const tr = wrapInBlockType(clearRange(state.tr), nodeType, attrs);
53
+ if (!tr)
54
+ return false;
55
+ if (dispatch)
56
+ dispatch(tr.scrollIntoView());
57
+ return true;
58
+ };
59
+ }
60
+ function clearContentAndAddBlockType(nodeType, attrs = null) {
61
+ return (state, dispatch) => {
62
+ const tr = addBlockType(clearRange(state.tr), nodeType, attrs);
63
+ if (!tr)
64
+ return false;
65
+ if (dispatch)
66
+ dispatch(tr.scrollIntoView());
67
+ return true;
68
+ };
69
+ }
70
+
71
+ var __typeError$2 = (msg) => {
72
+ throw TypeError(msg);
73
+ };
74
+ var __accessCheck$2 = (obj, member, msg) => member.has(obj) || __typeError$2("Cannot " + msg);
75
+ var __privateGet$2 = (obj, member, getter) => (__accessCheck$2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
76
+ var __privateAdd$2 = (obj, member, value) => member.has(obj) ? __typeError$2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
77
+ var __privateSet$2 = (obj, member, value, setter) => (__accessCheck$2(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
78
+ var _groups, _getGroupInstance;
79
+ class GroupBuilder {
80
+ constructor() {
81
+ __privateAdd$2(this, _groups, []);
82
+ this.clear = () => {
83
+ __privateSet$2(this, _groups, []);
84
+ return this;
85
+ };
86
+ __privateAdd$2(this, _getGroupInstance, (group) => {
87
+ const groupInstance = {
88
+ group,
89
+ addItem: (key, item) => {
90
+ const data = { key, ...item };
91
+ group.items.push(data);
92
+ return groupInstance;
93
+ },
94
+ clear: () => {
95
+ group.items = [];
96
+ return groupInstance;
97
+ }
98
+ };
99
+ return groupInstance;
100
+ });
101
+ this.addGroup = (key, label) => {
102
+ const items = [];
103
+ const group = {
104
+ key,
105
+ label,
106
+ items
107
+ };
108
+ __privateGet$2(this, _groups).push(group);
109
+ return __privateGet$2(this, _getGroupInstance).call(this, group);
110
+ };
111
+ this.getGroup = (key) => {
112
+ const group = __privateGet$2(this, _groups).find((group2) => group2.key === key);
113
+ if (!group)
114
+ throw new Error(`Group with key ${key} not found`);
115
+ return __privateGet$2(this, _getGroupInstance).call(this, group);
116
+ };
117
+ this.build = () => {
118
+ return __privateGet$2(this, _groups);
119
+ };
120
+ }
121
+ }
122
+ _groups = new WeakMap();
123
+ _getGroupInstance = new WeakMap();
124
+
125
+ function getGroups(filter, config) {
126
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W;
127
+ const groupBuilder = new GroupBuilder();
128
+ groupBuilder.addGroup("text", (_a = config == null ? void 0 : config.slashMenuTextGroupLabel) != null ? _a : "Text").addItem("text", {
129
+ label: (_b = config == null ? void 0 : config.slashMenuTextGroupLabel) != null ? _b : "Text",
130
+ icon: (_d = (_c = config == null ? void 0 : config.slashMenuTextIcon) == null ? void 0 : _c.call(config)) != null ? _d : todoList.textIcon,
131
+ onRun: (ctx) => {
132
+ const view = ctx.get(core.editorViewCtx);
133
+ const { dispatch, state } = view;
134
+ const command = clearContentAndSetBlockType(commonmark.paragraphSchema.type(ctx));
135
+ command(state, dispatch);
136
+ }
137
+ }).addItem("h1", {
138
+ label: (_e = config == null ? void 0 : config.slashMenuH1Label) != null ? _e : "Heading 1",
139
+ icon: (_g = (_f = config == null ? void 0 : config.slashMenuH1Icon) == null ? void 0 : _f.call(config)) != null ? _g : todoList.h1Icon,
140
+ onRun: (ctx) => {
141
+ const view = ctx.get(core.editorViewCtx);
142
+ const { dispatch, state } = view;
143
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 1 });
144
+ command(state, dispatch);
145
+ }
146
+ }).addItem("h2", {
147
+ label: (_h = config == null ? void 0 : config.slashMenuH2Label) != null ? _h : "Heading 2",
148
+ icon: (_j = (_i = config == null ? void 0 : config.slashMenuH2Icon) == null ? void 0 : _i.call(config)) != null ? _j : todoList.h2Icon,
149
+ onRun: (ctx) => {
150
+ const view = ctx.get(core.editorViewCtx);
151
+ const { dispatch, state } = view;
152
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 2 });
153
+ command(state, dispatch);
154
+ }
155
+ }).addItem("h3", {
156
+ label: (_k = config == null ? void 0 : config.slashMenuH3Label) != null ? _k : "Heading 3",
157
+ icon: (_m = (_l = config == null ? void 0 : config.slashMenuH3Icon) == null ? void 0 : _l.call(config)) != null ? _m : todoList.h3Icon,
158
+ onRun: (ctx) => {
159
+ const view = ctx.get(core.editorViewCtx);
160
+ const { dispatch, state } = view;
161
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 3 });
162
+ command(state, dispatch);
163
+ }
164
+ }).addItem("h4", {
165
+ label: (_n = config == null ? void 0 : config.slashMenuH4Label) != null ? _n : "Heading 4",
166
+ icon: (_p = (_o = config == null ? void 0 : config.slashMenuH4Icon) == null ? void 0 : _o.call(config)) != null ? _p : todoList.h4Icon,
167
+ onRun: (ctx) => {
168
+ const view = ctx.get(core.editorViewCtx);
169
+ const { dispatch, state } = view;
170
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 4 });
171
+ command(state, dispatch);
172
+ }
173
+ }).addItem("h5", {
174
+ label: (_q = config == null ? void 0 : config.slashMenuH5Label) != null ? _q : "Heading 5",
175
+ icon: (_s = (_r = config == null ? void 0 : config.slashMenuH5Icon) == null ? void 0 : _r.call(config)) != null ? _s : todoList.h5Icon,
176
+ onRun: (ctx) => {
177
+ const view = ctx.get(core.editorViewCtx);
178
+ const { dispatch, state } = view;
179
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 5 });
180
+ command(state, dispatch);
181
+ }
182
+ }).addItem("h6", {
183
+ label: (_t = config == null ? void 0 : config.slashMenuH6Label) != null ? _t : "Heading 6",
184
+ icon: (_v = (_u = config == null ? void 0 : config.slashMenuH6Icon) == null ? void 0 : _u.call(config)) != null ? _v : todoList.h6Icon,
185
+ onRun: (ctx) => {
186
+ const view = ctx.get(core.editorViewCtx);
187
+ const { dispatch, state } = view;
188
+ const command = clearContentAndSetBlockType(commonmark.headingSchema.type(ctx), { level: 6 });
189
+ command(state, dispatch);
190
+ }
191
+ }).addItem("quote", {
192
+ label: (_w = config == null ? void 0 : config.slashMenuQuoteLabel) != null ? _w : "Quote",
193
+ icon: (_y = (_x = config == null ? void 0 : config.slashMenuQuoteIcon) == null ? void 0 : _x.call(config)) != null ? _y : todoList.quoteIcon,
194
+ onRun: (ctx) => {
195
+ const view = ctx.get(core.editorViewCtx);
196
+ const { dispatch, state } = view;
197
+ const command = clearContentAndWrapInBlockType(commonmark.blockquoteSchema.type(ctx));
198
+ command(state, dispatch);
199
+ }
200
+ }).addItem("divider", {
201
+ label: (_z = config == null ? void 0 : config.slashMenuDividerLabel) != null ? _z : "Divider",
202
+ icon: (_B = (_A = config == null ? void 0 : config.slashMenuDividerIcon) == null ? void 0 : _A.call(config)) != null ? _B : todoList.dividerIcon,
203
+ onRun: (ctx) => {
204
+ const view = ctx.get(core.editorViewCtx);
205
+ const { dispatch, state } = view;
206
+ const command = clearContentAndAddBlockType(commonmark.hrSchema.type(ctx));
207
+ command(state, dispatch);
208
+ }
209
+ });
210
+ groupBuilder.addGroup("list", (_C = config == null ? void 0 : config.slashMenuListGroupLabel) != null ? _C : "List").addItem("bullet-list", {
211
+ label: (_D = config == null ? void 0 : config.slashMenuBulletListLabel) != null ? _D : "Bullet List",
212
+ icon: (_F = (_E = config == null ? void 0 : config.slashMenuBulletListIcon) == null ? void 0 : _E.call(config)) != null ? _F : todoList.bulletListIcon,
213
+ onRun: (ctx) => {
214
+ const view = ctx.get(core.editorViewCtx);
215
+ const { dispatch, state } = view;
216
+ const command = clearContentAndWrapInBlockType(commonmark.bulletListSchema.type(ctx));
217
+ command(state, dispatch);
218
+ }
219
+ }).addItem("ordered-list", {
220
+ label: (_G = config == null ? void 0 : config.slashMenuOrderedListLabel) != null ? _G : "Ordered List",
221
+ icon: (_I = (_H = config == null ? void 0 : config.slashMenuOrderedListIcon) == null ? void 0 : _H.call(config)) != null ? _I : todoList.orderedListIcon,
222
+ onRun: (ctx) => {
223
+ const view = ctx.get(core.editorViewCtx);
224
+ const { dispatch, state } = view;
225
+ const command = clearContentAndWrapInBlockType(commonmark.orderedListSchema.type(ctx));
226
+ command(state, dispatch);
227
+ }
228
+ }).addItem("todo-list", {
229
+ label: (_J = config == null ? void 0 : config.slashMenuTaskListLabel) != null ? _J : "Todo List",
230
+ icon: (_L = (_K = config == null ? void 0 : config.slashMenuTaskListIcon) == null ? void 0 : _K.call(config)) != null ? _L : todoList.todoListIcon,
231
+ onRun: (ctx) => {
232
+ const view = ctx.get(core.editorViewCtx);
233
+ const { dispatch, state } = view;
234
+ const command = clearContentAndWrapInBlockType(commonmark.listItemSchema.type(ctx), { checked: false });
235
+ command(state, dispatch);
236
+ }
237
+ });
238
+ groupBuilder.addGroup("advanced", (_M = config == null ? void 0 : config.slashMenuAdvancedGroupLabel) != null ? _M : "Advanced").addItem("image", {
239
+ label: (_N = config == null ? void 0 : config.slashMenuImageLabel) != null ? _N : "Image",
240
+ icon: (_P = (_O = config == null ? void 0 : config.slashMenuImageIcon) == null ? void 0 : _O.call(config)) != null ? _P : todoList.imageIcon,
241
+ onRun: (ctx) => {
242
+ const view = ctx.get(core.editorViewCtx);
243
+ const { dispatch, state } = view;
244
+ const command = clearContentAndAddBlockType(imageBlock.imageBlockSchema.type(ctx));
245
+ command(state, dispatch);
246
+ }
247
+ }).addItem("code", {
248
+ label: (_Q = config == null ? void 0 : config.slashMenuCodeBlockLabel) != null ? _Q : "Code",
249
+ icon: (_S = (_R = config == null ? void 0 : config.slashMenuCodeBlockIcon) == null ? void 0 : _R.call(config)) != null ? _S : todoList.codeIcon,
250
+ onRun: (ctx) => {
251
+ const view = ctx.get(core.editorViewCtx);
252
+ const { dispatch, state } = view;
253
+ const command = clearContentAndAddBlockType(commonmark.codeBlockSchema.type(ctx));
254
+ command(state, dispatch);
255
+ }
256
+ }).addItem("table", {
257
+ label: (_T = config == null ? void 0 : config.slashMenuTableLabel) != null ? _T : "Table",
258
+ icon: (_V = (_U = config == null ? void 0 : config.slashMenuTableIcon) == null ? void 0 : _U.call(config)) != null ? _V : todoList.tableIcon,
259
+ onRun: (ctx) => {
260
+ const view = ctx.get(core.editorViewCtx);
261
+ const { dispatch, state: state$1 } = view;
262
+ const tr = clearRange(state$1.tr);
263
+ const table = gfm.createTable(ctx, 3, 3);
264
+ tr.replaceSelectionWith(table);
265
+ const { from } = tr.selection;
266
+ const pos = from - table.nodeSize + 2;
267
+ dispatch(tr);
268
+ requestAnimationFrame(() => {
269
+ const selection = state.NodeSelection.create(view.state.tr.doc, pos);
270
+ dispatch(view.state.tr.setSelection(selection).scrollIntoView());
271
+ });
272
+ }
273
+ });
274
+ (_W = config == null ? void 0 : config.buildMenu) == null ? void 0 : _W.call(config, groupBuilder);
275
+ let groups = groupBuilder.build();
276
+ if (filter) {
277
+ groups = groups.map((group) => {
278
+ const items2 = group.items.filter((item) => item.label.toLowerCase().includes(filter.toLowerCase()));
279
+ return {
280
+ ...group,
281
+ items: items2
282
+ };
283
+ }).filter((group) => group.items.length > 0);
284
+ }
285
+ const items = groups.flatMap((groups2) => groups2.items);
286
+ items.forEach((item, index) => {
287
+ Object.assign(item, { index });
288
+ });
289
+ groups.reduce((acc, group) => {
290
+ const end = acc + group.items.length;
291
+ Object.assign(group, {
292
+ range: [acc, end]
293
+ });
294
+ return end;
295
+ }, 0);
296
+ return {
297
+ groups,
298
+ size: items.length
299
+ };
300
+ }
301
+
302
+ const menuComponent = ({
303
+ show,
304
+ hide,
305
+ ctx,
306
+ filter,
307
+ config
308
+ }) => {
309
+ const { groups, size } = atomico.useMemo(() => getGroups(filter, config), [filter]);
310
+ const host = atomico.useHost();
311
+ const [hoverIndex, setHoverIndex] = atomico.useState(0);
312
+ const root = atomico.useMemo(() => host.current.getRootNode(), [host]);
313
+ const prevMousePosition = atomico.useRef({ x: -999, y: -999 });
314
+ const onMouseMove = atomico.useCallback((e) => {
315
+ const prevPos = prevMousePosition.current;
316
+ if (!prevPos)
317
+ return;
318
+ const { x, y } = e;
319
+ prevPos.x = x;
320
+ prevPos.y = y;
321
+ }, []);
322
+ atomico.useEffect(() => {
323
+ if (size === 0 && show)
324
+ hide == null ? void 0 : hide();
325
+ }, [size, show]);
326
+ const onHover = atomico.useCallback((index, after) => {
327
+ setHoverIndex((prev) => {
328
+ const next = typeof index === "function" ? index(prev) : index;
329
+ after == null ? void 0 : after(next);
330
+ return next;
331
+ });
332
+ }, []);
333
+ const scrollToIndex = atomico.useCallback((index) => {
334
+ const target = host.current.querySelector(`[data-index="${index}"]`);
335
+ const scrollRoot = host.current.querySelector(".menu-groups");
336
+ if (!target || !scrollRoot)
337
+ return;
338
+ scrollRoot.scrollTop = target.offsetTop - scrollRoot.offsetTop;
339
+ }, []);
340
+ const runByIndex = atomico.useCallback((index) => {
341
+ const item = groups.flatMap((group) => group.items).at(index);
342
+ if (item && ctx)
343
+ item.onRun(ctx);
344
+ hide == null ? void 0 : hide();
345
+ }, [groups]);
346
+ const onKeydown = atomico.useCallback((e) => {
347
+ if (e.key === "Escape") {
348
+ e.preventDefault();
349
+ hide == null ? void 0 : hide();
350
+ return;
351
+ }
352
+ if (e.key === "ArrowDown") {
353
+ e.preventDefault();
354
+ return onHover((index) => index < size - 1 ? index + 1 : index, scrollToIndex);
355
+ }
356
+ if (e.key === "ArrowUp") {
357
+ e.preventDefault();
358
+ return onHover((index) => index <= 0 ? index : index - 1, scrollToIndex);
359
+ }
360
+ if (e.key === "ArrowLeft") {
361
+ e.preventDefault();
362
+ return onHover((index) => {
363
+ const group = groups.find((group2) => group2.range[0] <= index && group2.range[1] > index);
364
+ if (!group)
365
+ return index;
366
+ const prevGroup = groups[groups.indexOf(group) - 1];
367
+ if (!prevGroup)
368
+ return index;
369
+ return prevGroup.range[1] - 1;
370
+ }, scrollToIndex);
371
+ }
372
+ if (e.key === "ArrowRight") {
373
+ e.preventDefault();
374
+ return onHover((index) => {
375
+ const group = groups.find((group2) => group2.range[0] <= index && group2.range[1] > index);
376
+ if (!group)
377
+ return index;
378
+ const nextGroup = groups[groups.indexOf(group) + 1];
379
+ if (!nextGroup)
380
+ return index;
381
+ return nextGroup.range[0];
382
+ }, scrollToIndex);
383
+ }
384
+ if (e.key === "Enter") {
385
+ e.preventDefault();
386
+ runByIndex(hoverIndex);
387
+ }
388
+ }, [hide, groups, hoverIndex]);
389
+ const onMouseEnter = atomico.useCallback((index) => {
390
+ return (e) => {
391
+ const prevPos = prevMousePosition.current;
392
+ if (!prevPos)
393
+ return;
394
+ const { x, y } = e;
395
+ if (x === prevPos.x && y === prevPos.y)
396
+ return;
397
+ onHover(index);
398
+ };
399
+ }, []);
400
+ atomico.useEffect(() => {
401
+ if (show)
402
+ root.addEventListener("keydown", onKeydown, { capture: true });
403
+ else root.removeEventListener("keydown", onKeydown, { capture: true });
404
+ return () => {
405
+ root.removeEventListener("keydown", onKeydown, { capture: true });
406
+ };
407
+ }, [show, onKeydown]);
408
+ return atomico.html`
409
+ <host onmousedown=${(e) => e.preventDefault()}>
410
+ <nav class="tab-group">
411
+ <ul>
412
+ ${groups.map((group) => atomico.html`<li
413
+ key=${group.key}
414
+ onmousedown=${() => onHover(group.range[0], scrollToIndex)}
415
+ class=${hoverIndex >= group.range[0] && hoverIndex < group.range[1] ? "selected" : ""}
416
+ >
417
+ ${group.label}
418
+ </li>`)}
419
+ </ul>
420
+ </nav>
421
+ <div class="menu-groups" onmousemove=${onMouseMove}>
422
+ ${groups.map((group) => {
423
+ return atomico.html`
424
+ <div key=${group.key} class="menu-group">
425
+ <h6>${group.label}</h6>
426
+ <ul>
427
+ ${group.items.map(
428
+ (item) => atomico.html`<li
429
+ key=${item.key}
430
+ data-index=${item.index}
431
+ class=${hoverIndex === item.index ? "hover" : ""}
432
+ onmouseenter=${onMouseEnter(item.index)}
433
+ onmousedown=${() => {
434
+ var _a;
435
+ (_a = host.current.querySelector(`[data-index="${item.index}"]`)) == null ? void 0 : _a.classList.add("active");
436
+ }}
437
+ onmouseup=${() => {
438
+ var _a;
439
+ (_a = host.current.querySelector(`[data-index="${item.index}"]`)) == null ? void 0 : _a.classList.remove("active");
440
+ runByIndex(item.index);
441
+ }}
442
+ >
443
+ ${item.icon}
444
+ <span>${item.label}</span>
445
+ </li>`
446
+ )}
447
+ </ul>
448
+ </div>
449
+ `;
450
+ })}
451
+ </div>
452
+ </host>
453
+ `;
454
+ };
455
+ menuComponent.props = {
456
+ ctx: Object,
457
+ config: Object,
458
+ show: Boolean,
459
+ filter: String,
460
+ hide: Function
461
+ };
462
+ const MenuElement = atomico.c(menuComponent);
463
+
464
+ var __typeError$1 = (msg) => {
465
+ throw TypeError(msg);
466
+ };
467
+ var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
468
+ var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
469
+ var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
470
+ var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
471
+ var _content$1, _slashProvider, _programmaticallyPos;
472
+ const menu = slash.slashFactory("CREPE_MENU");
473
+ const menuAPI = utils.$ctx({
474
+ show: () => {
475
+ },
476
+ hide: () => {
477
+ }
478
+ }, "menuAPICtx");
479
+ index.defIfNotExists("milkdown-slash-menu", MenuElement);
480
+ function configureMenu(ctx, config) {
481
+ ctx.set(menu.key, {
482
+ view: (view) => new MenuView(ctx, view, config)
483
+ });
484
+ }
485
+ class MenuView {
486
+ constructor(ctx, view, config) {
487
+ __privateAdd$1(this, _content$1);
488
+ __privateAdd$1(this, _slashProvider);
489
+ __privateAdd$1(this, _programmaticallyPos, null);
490
+ this.update = (view) => {
491
+ __privateGet$1(this, _slashProvider).update(view);
492
+ };
493
+ this.show = (pos) => {
494
+ __privateSet$1(this, _programmaticallyPos, pos);
495
+ __privateGet$1(this, _content$1).filter = "";
496
+ __privateGet$1(this, _slashProvider).show();
497
+ };
498
+ this.hide = () => {
499
+ __privateSet$1(this, _programmaticallyPos, null);
500
+ __privateGet$1(this, _slashProvider).hide();
501
+ };
502
+ this.destroy = () => {
503
+ __privateGet$1(this, _slashProvider).destroy();
504
+ __privateGet$1(this, _content$1).remove();
505
+ };
506
+ __privateSet$1(this, _content$1, new MenuElement());
507
+ __privateGet$1(this, _content$1).hide = this.hide;
508
+ __privateGet$1(this, _content$1).ctx = ctx;
509
+ __privateGet$1(this, _content$1).config = config;
510
+ const self = this;
511
+ __privateSet$1(this, _slashProvider, new slash.SlashProvider({
512
+ content: __privateGet$1(this, _content$1),
513
+ debounce: 20,
514
+ shouldShow(view2) {
515
+ if (index.isInCodeBlock(view2.state.selection) || index.isInList(view2.state.selection))
516
+ return false;
517
+ const currentText = this.getContent(view2, (node) => ["paragraph", "heading"].includes(node.type.name));
518
+ if (currentText == null)
519
+ return false;
520
+ const pos = __privateGet$1(self, _programmaticallyPos);
521
+ __privateGet$1(self, _content$1).filter = currentText.startsWith("/") ? currentText.slice(1) : currentText;
522
+ if (typeof pos === "number") {
523
+ if (view2.state.doc.resolve(pos).node() !== view2.state.doc.resolve(view2.state.selection.from).node()) {
524
+ __privateSet$1(self, _programmaticallyPos, null);
525
+ return false;
526
+ }
527
+ return true;
528
+ }
529
+ if (!currentText.startsWith("/"))
530
+ return false;
531
+ return true;
532
+ },
533
+ offset: 10
534
+ }));
535
+ __privateGet$1(this, _slashProvider).onShow = () => {
536
+ __privateGet$1(this, _content$1).show = true;
537
+ };
538
+ __privateGet$1(this, _slashProvider).onHide = () => {
539
+ __privateGet$1(this, _content$1).show = false;
540
+ };
541
+ this.update(view);
542
+ ctx.set(menuAPI.key, {
543
+ show: (pos) => this.show(pos),
544
+ hide: () => this.hide()
545
+ });
546
+ }
547
+ }
548
+ _content$1 = new WeakMap();
549
+ _slashProvider = new WeakMap();
550
+ _programmaticallyPos = new WeakMap();
551
+
552
+ const blockHandleComponent = ({
553
+ onAdd,
554
+ addIcon,
555
+ handleIcon
556
+ }) => {
557
+ const ref = atomico.useRef();
558
+ atomico.useEffect(() => {
559
+ var _a;
560
+ (_a = ref.current) == null ? void 0 : _a.classList.remove("active");
561
+ });
562
+ const onMouseDown = (e) => {
563
+ var _a;
564
+ e.preventDefault();
565
+ e.stopPropagation();
566
+ (_a = ref.current) == null ? void 0 : _a.classList.add("active");
567
+ };
568
+ const onMouseUp = (e) => {
569
+ var _a;
570
+ e.preventDefault();
571
+ e.stopPropagation();
572
+ onAdd == null ? void 0 : onAdd();
573
+ (_a = ref.current) == null ? void 0 : _a.classList.remove("active");
574
+ };
575
+ return atomico.html`
576
+ <host>
577
+ <div ref=${ref} onmousedown=${onMouseDown} onmouseup=${onMouseUp} class="operation-item">
578
+ ${(addIcon == null ? void 0 : addIcon()) || todoList.plusIcon}
579
+ </div>
580
+ <div class="operation-item">
581
+ ${(handleIcon == null ? void 0 : handleIcon()) || todoList.menuIcon}
582
+ </div>
583
+ </host>
584
+ `;
585
+ };
586
+ blockHandleComponent.props = {
587
+ show: Boolean,
588
+ onAdd: Function,
589
+ addIcon: Function,
590
+ handleIcon: Function
591
+ };
592
+ const BlockHandleElement = atomico.c(blockHandleComponent);
593
+
594
+ var __typeError = (msg) => {
595
+ throw TypeError(msg);
596
+ };
597
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
598
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
599
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
600
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
601
+ var _content, _provider, _ctx;
602
+ class BlockHandleView {
603
+ constructor(ctx, config) {
604
+ __privateAdd(this, _content);
605
+ __privateAdd(this, _provider);
606
+ __privateAdd(this, _ctx);
607
+ this.update = () => {
608
+ __privateGet(this, _provider).update();
609
+ };
610
+ this.destroy = () => {
611
+ __privateGet(this, _provider).destroy();
612
+ __privateGet(this, _content).remove();
613
+ };
614
+ this.onAdd = () => {
615
+ const ctx = __privateGet(this, _ctx);
616
+ const view = ctx.get(core.editorViewCtx);
617
+ if (!view.hasFocus())
618
+ view.focus();
619
+ const { state: state$1, dispatch } = view;
620
+ const active = __privateGet(this, _provider).active;
621
+ if (!active)
622
+ return;
623
+ const $pos = active.$pos;
624
+ const pos = $pos.pos + active.node.nodeSize;
625
+ let tr = state$1.tr.insert(pos, commonmark.paragraphSchema.type(ctx).create());
626
+ tr = tr.setSelection(state.TextSelection.near(tr.doc.resolve(pos)));
627
+ dispatch(tr.scrollIntoView());
628
+ __privateGet(this, _provider).hide();
629
+ ctx.get(menuAPI.key).show(tr.selection.from);
630
+ };
631
+ __privateSet(this, _ctx, ctx);
632
+ const content = new BlockHandleElement();
633
+ __privateSet(this, _content, content);
634
+ __privateGet(this, _content).onAdd = this.onAdd;
635
+ __privateGet(this, _content).addIcon = config == null ? void 0 : config.handleAddIcon;
636
+ __privateGet(this, _content).handleIcon = config == null ? void 0 : config.handleDragIcon;
637
+ __privateSet(this, _provider, new block.BlockProvider({
638
+ ctx,
639
+ content,
640
+ getOffset: () => 16,
641
+ getPlacement: ({ active, blockDom }) => {
642
+ let totalDescendant = 0;
643
+ active.node.descendants((node) => {
644
+ totalDescendant += node.childCount;
645
+ });
646
+ const dom = active.el;
647
+ const domRect = dom.getBoundingClientRect();
648
+ const handleRect = blockDom.getBoundingClientRect();
649
+ const style = window.getComputedStyle(dom);
650
+ const paddingTop = Number.parseInt(style.paddingTop, 10) || 0;
651
+ const paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0;
652
+ const height = domRect.height - paddingTop - paddingBottom;
653
+ const handleHeight = handleRect.height;
654
+ return totalDescendant > 2 || handleHeight * 2 < height ? "left-start" : "left";
655
+ }
656
+ }));
657
+ this.update();
658
+ }
659
+ }
660
+ _content = new WeakMap();
661
+ _provider = new WeakMap();
662
+ _ctx = new WeakMap();
663
+ index.defIfNotExists("milkdown-block-handle", BlockHandleElement);
664
+ function configureBlockHandle(ctx, config) {
665
+ ctx.set(block.block.key, {
666
+ view: () => new BlockHandleView(ctx, config)
667
+ });
668
+ }
669
+
670
+ const defineFeature = (editor, config) => {
671
+ editor.config((ctx) => configureBlockHandle(ctx, config)).config((ctx) => configureMenu(ctx, config)).use(menuAPI).use(block.block).use(menu);
672
+ };
673
+
674
+ exports.defineFeature = defineFeature;
675
+ //# sourceMappingURL=index-ocxd4A-M.js.map