@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
@@ -1,31 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var todoList = require('./todoList-Ze4FLMlx.js');
4
- var atomico = require('atomico');
5
- var index$1 = require('./index-tBw4NmwY.js');
6
- var helper = require('./helper-1aludV1Z.js');
7
- var history$1 = require('@milkdown/prose/history');
8
- var commands = require('@milkdown/prose/commands');
9
- var state = require('@milkdown/prose/state');
10
- var floatingUi_dom = require('./floating-ui.dom-2cjBpir5.js');
11
- var clsx = require('./clsx-dASsG01A.js');
12
- var $view = require('./_view-N32ied53.js');
13
-
14
- const defaultConfig$1 = {
15
- extensions: [],
16
- languages: [],
17
- expandIcon: () => "\u2B07",
18
- searchIcon: () => "\u{1F50D}",
19
- clearSearchIcon: () => "\u232B",
20
- searchPlaceholder: "Search language",
21
- noResultText: "No result",
22
- renderLanguage: (language) => atomico.html`${language}`
23
- };
24
- const codeBlockConfig = index$1.$ctx(defaultConfig$1, "codeBlockConfigCtx");
25
- todoList.withMeta(codeBlockConfig, {
26
- displayName: "Config<code-block>",
27
- group: "CodeBlock"
28
- });
3
+ var codeBlock = require('@milkdown/kit/component/code-block');
4
+ var todoList = require('./todoList-YYRQo7wG.js');
29
5
 
30
6
  /**
31
7
  The data structure for documents. @nonabstract
@@ -14755,429 +14731,6 @@ function highlightActiveLineGutter() {
14755
14731
  return activeLineGutterHighlighter;
14756
14732
  }
14757
14733
 
14758
- class CodeMirrorBlock {
14759
- constructor(node, view, getPos, loader, config) {
14760
- this.node = node;
14761
- this.view = view;
14762
- this.getPos = getPos;
14763
- this.loader = loader;
14764
- this.config = config;
14765
- this.updating = false;
14766
- this.languageName = "";
14767
- this.forwardUpdate = (update) => {
14768
- var _a;
14769
- if (this.updating || !this.cm.hasFocus)
14770
- return;
14771
- let offset = ((_a = this.getPos()) != null ? _a : 0) + 1;
14772
- const { main } = update.state.selection;
14773
- const selFrom = offset + main.from;
14774
- const selTo = offset + main.to;
14775
- const pmSel = this.view.state.selection;
14776
- if (update.docChanged || pmSel.from !== selFrom || pmSel.to !== selTo) {
14777
- const tr = this.view.state.tr;
14778
- update.changes.iterChanges((fromA, toA, fromB, toB, text) => {
14779
- if (text.length)
14780
- tr.replaceWith(offset + fromA, offset + toA, this.view.state.schema.text(text.toString()));
14781
- else tr.delete(offset + fromA, offset + toA);
14782
- offset += toB - fromB - (toA - fromA);
14783
- });
14784
- tr.setSelection(state.TextSelection.create(tr.doc, selFrom, selTo));
14785
- this.view.dispatch(tr);
14786
- }
14787
- };
14788
- this.codeMirrorKeymap = () => {
14789
- const view = this.view;
14790
- return [
14791
- { key: "ArrowUp", run: () => this.maybeEscape("line", -1) },
14792
- { key: "ArrowLeft", run: () => this.maybeEscape("char", -1) },
14793
- { key: "ArrowDown", run: () => this.maybeEscape("line", 1) },
14794
- { key: "ArrowRight", run: () => this.maybeEscape("char", 1) },
14795
- {
14796
- key: "Mod-Enter",
14797
- run: () => {
14798
- if (!commands.exitCode(view.state, view.dispatch))
14799
- return false;
14800
- view.focus();
14801
- return true;
14802
- }
14803
- },
14804
- { key: "Mod-z", run: () => history$1.undo(view.state, view.dispatch) },
14805
- { key: "Shift-Mod-z", run: () => history$1.redo(view.state, view.dispatch) },
14806
- { key: "Mod-y", run: () => history$1.redo(view.state, view.dispatch) },
14807
- {
14808
- key: "Backspace",
14809
- run: () => {
14810
- var _a;
14811
- const ranges = this.cm.state.selection.ranges;
14812
- if (ranges.length > 1)
14813
- return false;
14814
- const selection = ranges[0];
14815
- if (selection && (!selection.empty || selection.anchor > 0))
14816
- return false;
14817
- if (this.cm.state.doc.lines >= 2)
14818
- return false;
14819
- const state$1 = this.view.state;
14820
- const pos = (_a = this.getPos()) != null ? _a : 0;
14821
- const tr = state$1.tr.replaceWith(pos, pos + this.node.nodeSize, state$1.schema.nodes.paragraph.createChecked({}, this.node.content));
14822
- tr.setSelection(state.TextSelection.near(tr.doc.resolve(pos)));
14823
- this.view.dispatch(tr);
14824
- this.view.focus();
14825
- return true;
14826
- }
14827
- }
14828
- ];
14829
- };
14830
- this.maybeEscape = (unit, dir) => {
14831
- var _a;
14832
- const { state: state$1 } = this.cm;
14833
- let main = state$1.selection.main;
14834
- if (!main.empty)
14835
- return false;
14836
- if (unit === "line")
14837
- main = state$1.doc.lineAt(main.head);
14838
- if (dir < 0 ? main.from > 0 : main.to < state$1.doc.length)
14839
- return false;
14840
- const targetPos = ((_a = this.getPos()) != null ? _a : 0) + (dir < 0 ? 0 : this.node.nodeSize);
14841
- const selection = state.TextSelection.near(this.view.state.doc.resolve(targetPos), dir);
14842
- const tr = this.view.state.tr.setSelection(selection).scrollIntoView();
14843
- this.view.dispatch(tr);
14844
- this.view.focus();
14845
- return true;
14846
- };
14847
- this.setLanguage = (language) => {
14848
- var _a;
14849
- this.view.dispatch(
14850
- this.view.state.tr.setNodeAttribute((_a = this.getPos()) != null ? _a : 0, "language", language)
14851
- );
14852
- };
14853
- this.getAllLanguages = () => {
14854
- return this.loader.getAll();
14855
- };
14856
- this.languageConf = new Compartment();
14857
- this.readOnlyConf = new Compartment();
14858
- this.cm = new EditorView({
14859
- doc: this.node.textContent,
14860
- root: this.view.root,
14861
- extensions: [
14862
- this.readOnlyConf.of(EditorState.readOnly.of(!this.view.editable)),
14863
- keymap.of(this.codeMirrorKeymap()),
14864
- this.languageConf.of([]),
14865
- ...config.extensions,
14866
- EditorView.updateListener.of(this.forwardUpdate)
14867
- ]
14868
- });
14869
- this.dom = this.createDom();
14870
- this.updateLanguage();
14871
- }
14872
- createDom() {
14873
- const dom = document.createElement("milkdown-code-block");
14874
- dom.codemirror = this.cm;
14875
- dom.getAllLanguages = this.getAllLanguages;
14876
- dom.setLanguage = this.setLanguage;
14877
- dom.isEditorReadonly = () => !this.view.editable;
14878
- const {
14879
- languages,
14880
- extensions,
14881
- ...viewConfig
14882
- } = this.config;
14883
- dom.config = viewConfig;
14884
- return dom;
14885
- }
14886
- updateLanguage() {
14887
- const languageName = this.node.attrs.language;
14888
- if (languageName === this.languageName)
14889
- return;
14890
- this.dom.language = languageName;
14891
- const language = this.loader.load(languageName != null ? languageName : "");
14892
- language.then((lang) => {
14893
- if (lang) {
14894
- this.cm.dispatch({
14895
- effects: this.languageConf.reconfigure(lang)
14896
- });
14897
- this.languageName = languageName;
14898
- }
14899
- });
14900
- }
14901
- setSelection(anchor, head) {
14902
- if (!this.cm.dom.isConnected)
14903
- return;
14904
- this.cm.focus();
14905
- this.updating = true;
14906
- this.cm.dispatch({ selection: { anchor, head } });
14907
- this.updating = false;
14908
- }
14909
- update(node) {
14910
- if (node.type !== this.node.type)
14911
- return false;
14912
- if (this.updating)
14913
- return true;
14914
- this.node = node;
14915
- this.updateLanguage();
14916
- if (this.view.editable === this.cm.state.readOnly) {
14917
- this.cm.dispatch({
14918
- effects: this.readOnlyConf.reconfigure(EditorState.readOnly.of(!this.view.editable))
14919
- });
14920
- }
14921
- const change = computeChange(this.cm.state.doc.toString(), node.textContent);
14922
- if (change) {
14923
- this.updating = true;
14924
- this.cm.dispatch({
14925
- changes: { from: change.from, to: change.to, insert: change.text }
14926
- });
14927
- this.updating = false;
14928
- }
14929
- return true;
14930
- }
14931
- selectNode() {
14932
- this.dom.selected = true;
14933
- this.cm.focus();
14934
- }
14935
- deselectNode() {
14936
- this.dom.selected = false;
14937
- }
14938
- stopEvent() {
14939
- return true;
14940
- }
14941
- destroy() {
14942
- this.cm.destroy();
14943
- }
14944
- }
14945
- function computeChange(oldVal, newVal) {
14946
- if (oldVal === newVal)
14947
- return null;
14948
- let start = 0;
14949
- let oldEnd = oldVal.length;
14950
- let newEnd = newVal.length;
14951
- while (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start))
14952
- ++start;
14953
- while (oldEnd > start && newEnd > start && oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)) {
14954
- oldEnd--;
14955
- newEnd--;
14956
- }
14957
- return { from: start, to: oldEnd, text: newVal.slice(start, newEnd) };
14958
- }
14959
-
14960
- class LanguageLoader {
14961
- constructor(languages) {
14962
- this.languages = languages;
14963
- this.map = {};
14964
- languages.forEach((language) => {
14965
- language.alias.forEach((alias) => {
14966
- this.map[alias] = language;
14967
- });
14968
- });
14969
- }
14970
- getAll() {
14971
- return this.languages.map((language) => {
14972
- return {
14973
- name: language.name,
14974
- alias: language.alias
14975
- };
14976
- });
14977
- }
14978
- load(languageName) {
14979
- const languageMap = this.map;
14980
- const language = languageMap[languageName.toLowerCase()];
14981
- if (!language)
14982
- return Promise.resolve(void 0);
14983
- if (language.support)
14984
- return Promise.resolve(language.support);
14985
- return language.load();
14986
- }
14987
- }
14988
-
14989
- const codeComponent = ({
14990
- selected = false,
14991
- codemirror,
14992
- getAllLanguages,
14993
- setLanguage,
14994
- language,
14995
- config,
14996
- isEditorReadonly
14997
- }) => {
14998
- var _a, _b, _c;
14999
- const host = atomico.useHost();
15000
- const triggerRef = atomico.useRef();
15001
- const pickerRef = atomico.useRef();
15002
- const [filter, setFilter] = atomico.useState("");
15003
- const [showPicker, setShowPicker] = atomico.useState(false);
15004
- const root = atomico.useMemo(() => host.current.getRootNode(), [host]);
15005
- atomico.useEffect(() => {
15006
- var _a2;
15007
- const lang = (_a2 = getAllLanguages == null ? void 0 : getAllLanguages()) == null ? void 0 : _a2.find((languageInfo) => languageInfo.alias.some((alias) => alias.toLowerCase() === (language == null ? void 0 : language.toLowerCase())));
15008
- if (lang && lang.name !== language)
15009
- setLanguage == null ? void 0 : setLanguage(lang.name);
15010
- }, [language]);
15011
- atomico.useEffect(() => {
15012
- setShowPicker(false);
15013
- }, [language]);
15014
- atomico.useEffect(() => {
15015
- const clickHandler = (e) => {
15016
- const target = e.target;
15017
- if (triggerRef.current && triggerRef.current.contains(target))
15018
- return;
15019
- const picker = pickerRef.current;
15020
- if (!picker)
15021
- return;
15022
- if (picker.dataset.expanded !== "true")
15023
- return;
15024
- if (!picker.contains(target))
15025
- setShowPicker(false);
15026
- };
15027
- root.addEventListener("click", clickHandler);
15028
- return () => {
15029
- root.removeEventListener("click", clickHandler);
15030
- };
15031
- }, []);
15032
- atomico.useLayoutEffect(() => {
15033
- setFilter("");
15034
- const picker = triggerRef.current;
15035
- const languageList = pickerRef.current;
15036
- if (!picker || !languageList)
15037
- return;
15038
- floatingUi_dom.computePosition(picker, languageList, {
15039
- placement: "bottom-start"
15040
- }).then(({ x, y }) => {
15041
- Object.assign(languageList.style, {
15042
- left: `${x}px`,
15043
- top: `${y}px`
15044
- });
15045
- });
15046
- }, [showPicker]);
15047
- const languages = atomico.useMemo(() => {
15048
- var _a2;
15049
- if (!showPicker)
15050
- return [];
15051
- const all = (_a2 = getAllLanguages == null ? void 0 : getAllLanguages()) != null ? _a2 : [];
15052
- const selected2 = all.find((languageInfo) => languageInfo.name.toLowerCase() === (language == null ? void 0 : language.toLowerCase()));
15053
- const filtered = all.filter((languageInfo) => {
15054
- return (languageInfo.name.toLowerCase().includes(filter.toLowerCase()) || languageInfo.alias.some((alias) => alias.toLowerCase().includes(filter.toLowerCase()))) && languageInfo !== selected2;
15055
- });
15056
- if (filtered.length === 0)
15057
- return [];
15058
- if (!selected2)
15059
- return filtered;
15060
- return [selected2, ...filtered];
15061
- }, [filter, showPicker, language]);
15062
- const changeFilter = (e) => {
15063
- const target = e.target;
15064
- setFilter(target.value);
15065
- };
15066
- const onTogglePicker = (e) => {
15067
- e.preventDefault();
15068
- e.stopPropagation();
15069
- if (isEditorReadonly == null ? void 0 : isEditorReadonly())
15070
- return;
15071
- setShowPicker((show) => {
15072
- return !show;
15073
- });
15074
- };
15075
- const onClear = (e) => {
15076
- e.preventDefault();
15077
- setFilter("");
15078
- };
15079
- const onSearchKeydown = (e) => {
15080
- if (e.key === "Escape")
15081
- setFilter("");
15082
- };
15083
- const onListKeydown = (e) => {
15084
- if (e.key === "Enter") {
15085
- const active = document.activeElement;
15086
- if (active instanceof HTMLElement && active.dataset.language)
15087
- setLanguage == null ? void 0 : setLanguage(active.dataset.language);
15088
- }
15089
- };
15090
- const renderedLanguageList = atomico.useMemo(() => {
15091
- if (!(languages == null ? void 0 : languages.length))
15092
- return atomico.html`<li class="language-list-item no-result">${config == null ? void 0 : config.noResultText}</li>`;
15093
- return languages.map(
15094
- (languageInfo) => {
15095
- var _a2;
15096
- return atomico.html`<li
15097
- role="listitem"
15098
- tabindex="0"
15099
- class="language-list-item"
15100
- aria-selected=${languageInfo.name.toLowerCase() === (language == null ? void 0 : language.toLowerCase())}
15101
- data-language=${languageInfo.name}
15102
- onclick=${() => setLanguage == null ? void 0 : setLanguage(languageInfo.name)}
15103
- >
15104
- ${(_a2 = config == null ? void 0 : config.renderLanguage) == null ? void 0 : _a2.call(config, languageInfo.name, languageInfo.name.toLowerCase() === (language == null ? void 0 : language.toLowerCase()))}
15105
- </li>`;
15106
- }
15107
- );
15108
- }, [languages]);
15109
- return atomico.html`<host class=${clsx.clsx(selected && "selected")}>
15110
- <div class="tools">
15111
- <button
15112
- ref=${triggerRef}
15113
- class="language-button"
15114
- onpointerdown=${onTogglePicker}
15115
- data-expanded=${showPicker}
15116
- >
15117
- ${language || "Text"}
15118
- <div class="expand-icon">
15119
- ${(_a = config == null ? void 0 : config.expandIcon) == null ? void 0 : _a.call(config)}
15120
- </div>
15121
- </button>
15122
- <div ref=${pickerRef} data-expanded=${showPicker} class=${clsx.clsx("language-picker", showPicker && "show")}>
15123
- <div class="list-wrapper">
15124
- <div class="search-box">
15125
- <div class="search-icon">
15126
- ${(_b = config == null ? void 0 : config.searchIcon) == null ? void 0 : _b.call(config)}
15127
- </div>
15128
- <input
15129
- class="search-input"
15130
- placeholder=${config == null ? void 0 : config.searchPlaceholder}
15131
- value=${filter}
15132
- oninput=${changeFilter}
15133
- onkeydown=${onSearchKeydown}
15134
- />
15135
- <div class=${clsx.clsx("clear-icon", filter.length === 0 && "hidden")} onmousedown=${onClear}>
15136
- ${(_c = config == null ? void 0 : config.clearSearchIcon) == null ? void 0 : _c.call(config)}
15137
- </div>
15138
- </div>
15139
- <ul class="language-list" role="listbox" onkeydown=${onListKeydown}>
15140
- ${renderedLanguageList}
15141
- </ul>
15142
- </div>
15143
- </div>
15144
- </div>
15145
- <div class="codemirror-host">${atomico.h(codemirror == null ? void 0 : codemirror.dom, {})}</div>
15146
- </host>`;
15147
- };
15148
- codeComponent.props = {
15149
- selected: Boolean,
15150
- codemirror: Object,
15151
- language: String,
15152
- getAllLanguages: Function,
15153
- setLanguage: Function,
15154
- isEditorReadonly: Function,
15155
- config: Object
15156
- };
15157
- const CodeElement = atomico.c(codeComponent);
15158
-
15159
- helper.defIfNotExists("milkdown-code-block", CodeElement);
15160
- const codeBlockView = $view.$view(index$1.codeBlockSchema.node, (ctx) => {
15161
- const config = ctx.get(codeBlockConfig.key);
15162
- const languageLoader = new LanguageLoader(config.languages);
15163
- return (node, view, getPos) => new CodeMirrorBlock(
15164
- node,
15165
- view,
15166
- getPos,
15167
- languageLoader,
15168
- config
15169
- );
15170
- });
15171
- todoList.withMeta(codeBlockView, {
15172
- displayName: "NodeView<code-block>",
15173
- group: "CodeBlock"
15174
- });
15175
-
15176
- const codeBlockComponent = [
15177
- codeBlockView,
15178
- codeBlockConfig
15179
- ];
15180
-
15181
14734
  /**
15182
14735
  The default maximum length of a `TreeBuffer` node.
15183
14736
  */
@@ -25619,14 +25172,14 @@ const defineFeature = (editor, config = {}) => {
25619
25172
  theme
25620
25173
  } = config;
25621
25174
  if (!languages) {
25622
- const { languages: langList } = await Promise.resolve().then(function () { return require('./index-nTfDKYYi.js'); });
25175
+ const { languages: langList } = await Promise.resolve().then(function () { return require('./index-ahL5MvrQ.js'); });
25623
25176
  languages = langList;
25624
25177
  }
25625
25178
  if (!theme) {
25626
- const { nord } = await Promise.resolve().then(function () { return require('./index-FbNqlZU8.js'); });
25179
+ const { nord } = await Promise.resolve().then(function () { return require('./index-WQl7Du53.js'); });
25627
25180
  theme = nord;
25628
25181
  }
25629
- ctx.update(codeBlockConfig.key, (defaultConfig) => {
25182
+ ctx.update(codeBlock.codeBlockConfig.key, (defaultConfig) => {
25630
25183
  var _a;
25631
25184
  return {
25632
25185
  extensions: [
@@ -25644,12 +25197,12 @@ const defineFeature = (editor, config = {}) => {
25644
25197
  renderLanguage: config.renderLanguage || defaultConfig.renderLanguage
25645
25198
  };
25646
25199
  });
25647
- }).use(codeBlockComponent);
25200
+ }).use(codeBlock.codeBlockComponent);
25648
25201
  };
25649
25202
 
25650
25203
  var index = /*#__PURE__*/Object.freeze({
25651
- __proto__: null,
25652
- defineFeature: defineFeature
25204
+ __proto__: null,
25205
+ defineFeature: defineFeature
25653
25206
  });
25654
25207
 
25655
25208
  exports.CompletionContext = CompletionContext;
@@ -25695,4 +25248,4 @@ exports.sublanguageProp = sublanguageProp;
25695
25248
  exports.syntaxHighlighting = syntaxHighlighting;
25696
25249
  exports.syntaxTree = syntaxTree;
25697
25250
  exports.tags = tags;
25698
- //# sourceMappingURL=index-Jztk6JlP.js.map
25251
+ //# sourceMappingURL=index-U7GWrg-w.js.map