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