@milkdown/crepe 7.6.1 → 7.6.3

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 (116) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/{todo-list-V4JWO5-M.js → functions-Dk90yOUc.js} +16 -1
  3. package/lib/cjs/functions-Dk90yOUc.js.map +1 -0
  4. package/lib/cjs/{index-YUwSTgPK.js → index-AlHHvSR_.js} +3 -3
  5. package/lib/cjs/{index-YUwSTgPK.js.map → index-AlHHvSR_.js.map} +1 -1
  6. package/lib/cjs/{index-C4JjdSvv.js → index-BuSAwj4j.js} +3 -3
  7. package/lib/cjs/{index-C4JjdSvv.js.map → index-BuSAwj4j.js.map} +1 -1
  8. package/lib/cjs/{index-koRsjvWB.js → index-CfM-XVoy.js} +14 -28
  9. package/lib/cjs/index-CfM-XVoy.js.map +1 -0
  10. package/lib/cjs/index-CvmlYYXX.js +38 -0
  11. package/lib/cjs/{index-nDWnWxJ8.js.map → index-CvmlYYXX.js.map} +1 -1
  12. package/lib/cjs/index-D3lu92SA.js +39 -0
  13. package/lib/cjs/{index-C6EzkFZ_.js.map → index-D3lu92SA.js.map} +1 -1
  14. package/lib/cjs/{index-B4NxKjEA.js → index-D9Fk7rLS.js} +140 -108
  15. package/lib/cjs/index-D9Fk7rLS.js.map +1 -0
  16. package/lib/cjs/{index-D0OPKY6K.js → index-DQll67YS.js} +8 -8
  17. package/lib/cjs/{index-D0OPKY6K.js.map → index-DQll67YS.js.map} +1 -1
  18. package/lib/cjs/{index-BOmVuuoY.js → index-Dub20F3z.js} +3 -3
  19. package/lib/cjs/{index-BOmVuuoY.js.map → index-Dub20F3z.js.map} +1 -1
  20. package/lib/cjs/{index-DkHBuNoK.js → index-dpBsp7Eo.js} +16 -12
  21. package/lib/cjs/index-dpBsp7Eo.js.map +1 -0
  22. package/lib/cjs/{index-DnFbvtbD.js → index-gk_gJ489.js} +17 -17
  23. package/lib/cjs/index-gk_gJ489.js.map +1 -0
  24. package/lib/cjs/{index-8COAwUnB.js → index-hPk2gbSt.js} +5 -5
  25. package/lib/cjs/{index-8COAwUnB.js.map → index-hPk2gbSt.js.map} +1 -1
  26. package/lib/cjs/index-nrFkJeLW.js +26 -0
  27. package/lib/cjs/{index-6oBtF_11.js.map → index-nrFkJeLW.js.map} +1 -1
  28. package/lib/cjs/index.js +2 -1
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/cjs/{inline-latex-CwU8Nsfj.js → inline-latex-D0G71cGk.js} +2 -2
  31. package/lib/cjs/{inline-latex-CwU8Nsfj.js.map → inline-latex-D0G71cGk.js.map} +1 -1
  32. package/lib/esm/{todo-list-B78GeGtK.js → functions-Bsik6ikd.js} +16 -2
  33. package/lib/esm/functions-Bsik6ikd.js.map +1 -0
  34. package/lib/esm/{index-BxpDIDRS.js → index-B3KiKTSt.js} +5 -5
  35. package/lib/esm/{index-BxpDIDRS.js.map → index-B3KiKTSt.js.map} +1 -1
  36. package/lib/esm/index-BFsG6770.js +36 -0
  37. package/lib/esm/{index-BOzN8fKq.js.map → index-BFsG6770.js.map} +1 -1
  38. package/lib/esm/{index-BUFg1FSH.js → index-BMNULyuq.js} +16 -13
  39. package/lib/esm/index-BMNULyuq.js.map +1 -0
  40. package/lib/esm/index-CBrOT1fW.js +37 -0
  41. package/lib/esm/{index-C8tiRHTF.js.map → index-CBrOT1fW.js.map} +1 -1
  42. package/lib/esm/{index-DroARb55.js → index-COPjfgxB.js} +15 -29
  43. package/lib/esm/index-COPjfgxB.js.map +1 -0
  44. package/lib/esm/{index-C7Xr_l-d.js → index-Cuk7cL-r.js} +5 -5
  45. package/lib/esm/{index-C7Xr_l-d.js.map → index-Cuk7cL-r.js.map} +1 -1
  46. package/lib/esm/{index-C7_YCA3P.js → index-CxJ9fxJm.js} +3 -3
  47. package/lib/esm/{index-C7_YCA3P.js.map → index-CxJ9fxJm.js.map} +1 -1
  48. package/lib/esm/{index-CD8fvrRC.js → index-D6fLMv29.js} +3 -3
  49. package/lib/esm/{index-CD8fvrRC.js.map → index-D6fLMv29.js.map} +1 -1
  50. package/lib/esm/{index-C5_dM0IB.js → index-DO_xaFxN.js} +16 -16
  51. package/lib/esm/index-DO_xaFxN.js.map +1 -0
  52. package/lib/esm/{index-WCe-Xh61.js → index-DOrkOhki.js} +3 -3
  53. package/lib/esm/{index-WCe-Xh61.js.map → index-DOrkOhki.js.map} +1 -1
  54. package/lib/esm/index-DcRgwPLd.js +24 -0
  55. package/lib/esm/{index-CEup1V8i.js.map → index-DcRgwPLd.js.map} +1 -1
  56. package/lib/esm/{index-HnGoJxjJ.js → index-Yr5XBaro.js} +138 -106
  57. package/lib/esm/index-Yr5XBaro.js.map +1 -0
  58. package/lib/esm/index.js +1 -1
  59. package/lib/esm/{inline-latex-BLd2QrJC.js → inline-latex-C9IGAXXQ.js} +2 -2
  60. package/lib/esm/{inline-latex-BLd2QrJC.js.map → inline-latex-C9IGAXXQ.js.map} +1 -1
  61. package/lib/theme/common/image-block.css +2 -1
  62. package/lib/theme/crepe/style.css +6 -5
  63. package/lib/theme/crepe-dark/style.css +6 -3
  64. package/lib/theme/frame/style.css +6 -6
  65. package/lib/theme/frame-dark/style.css +6 -4
  66. package/lib/theme/nord/style.css +6 -6
  67. package/lib/theme/nord-dark/style.css +6 -4
  68. package/lib/types/core/crepe.d.ts.map +1 -1
  69. package/lib/types/core/index.d.ts +1 -0
  70. package/lib/types/core/index.d.ts.map +1 -1
  71. package/lib/types/core/slice.d.ts +2 -0
  72. package/lib/types/core/slice.d.ts.map +1 -1
  73. package/lib/types/feature/block-edit/index.d.ts +2 -0
  74. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  75. package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
  76. package/lib/types/feature/block-edit/menu/config.d.ts +2 -1
  77. package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
  78. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  79. package/lib/types/icons/index.d.ts +1 -0
  80. package/lib/types/icons/index.d.ts.map +1 -1
  81. package/lib/types/index.d.ts +1 -1
  82. package/lib/types/index.d.ts.map +1 -1
  83. package/package.json +3 -3
  84. package/src/core/crepe.ts +4 -1
  85. package/src/core/index.ts +1 -0
  86. package/src/core/slice.ts +3 -0
  87. package/src/feature/block-edit/index.ts +2 -0
  88. package/src/feature/block-edit/menu/component.ts +4 -1
  89. package/src/feature/block-edit/menu/config.ts +43 -9
  90. package/src/feature/latex/block-latex.ts +1 -1
  91. package/src/feature/toolbar/component.ts +1 -1
  92. package/src/icons/index.ts +1 -0
  93. package/src/index.ts +1 -1
  94. package/src/theme/common/image-block.css +2 -1
  95. package/src/theme/crepe/style.css +6 -5
  96. package/src/theme/crepe-dark/style.css +6 -3
  97. package/src/theme/frame/style.css +6 -6
  98. package/src/theme/frame-dark/style.css +6 -4
  99. package/src/theme/nord/style.css +6 -6
  100. package/src/theme/nord-dark/style.css +6 -4
  101. package/lib/cjs/index-6oBtF_11.js +0 -26
  102. package/lib/cjs/index-B4NxKjEA.js.map +0 -1
  103. package/lib/cjs/index-C6EzkFZ_.js +0 -39
  104. package/lib/cjs/index-DkHBuNoK.js.map +0 -1
  105. package/lib/cjs/index-DnFbvtbD.js.map +0 -1
  106. package/lib/cjs/index-koRsjvWB.js.map +0 -1
  107. package/lib/cjs/index-nDWnWxJ8.js +0 -38
  108. package/lib/cjs/todo-list-V4JWO5-M.js.map +0 -1
  109. package/lib/esm/index-BOzN8fKq.js +0 -36
  110. package/lib/esm/index-BUFg1FSH.js.map +0 -1
  111. package/lib/esm/index-C5_dM0IB.js.map +0 -1
  112. package/lib/esm/index-C8tiRHTF.js +0 -37
  113. package/lib/esm/index-CEup1V8i.js +0 -24
  114. package/lib/esm/index-DroARb55.js.map +0 -1
  115. package/lib/esm/index-HnGoJxjJ.js.map +0 -1
  116. package/lib/esm/todo-list-B78GeGtK.js.map +0 -1
@@ -21,10 +21,11 @@
21
21
 
22
22
  --crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
24
+ --crepe-font-code:
25
+ Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
25
26
 
26
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
27
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
28
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
29
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
30
31
  }
@@ -21,10 +21,13 @@
21
21
 
22
22
  --crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
24
+ --crepe-font-code:
25
+ Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
25
26
 
26
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
28
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
29
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
30
33
  }
@@ -21,11 +21,11 @@
21
21
 
22
22
  --crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New',
25
- Courier, monospace;
24
+ --crepe-font-code:
25
+ 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
28
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
30
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
31
31
  }
@@ -21,11 +21,13 @@
21
21
 
22
22
  --crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New',
25
- Courier, monospace;
24
+ --crepe-font-code:
25
+ 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
28
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
29
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
31
33
  }
@@ -21,11 +21,11 @@
21
21
 
22
22
  --crepe-font-title: Rubik, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: Inter, Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier,
25
- monospace;
24
+ --crepe-font-code:
25
+ 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
28
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
30
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
31
31
  }
@@ -21,11 +21,13 @@
21
21
 
22
22
  --crepe-font-title: Rubik, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: Inter, Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier,
25
- monospace;
24
+ --crepe-font-code:
25
+ 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
28
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
29
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
31
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crepe.d.ts","sourceRoot":"","sources":["../../../src/core/crepe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EACL,MAAM,EAKP,MAAM,oBAAoB,CAAA;AAU3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,YAAY,EAAgC,MAAM,YAAY,CAAA;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAGpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,qBAAa,KAAK;;IAChB,MAAM,CAAC,OAAO,sBAAe;gBAMjB,EACV,IAAI,EACJ,QAAa,EACb,cAAmB,EACnB,YAAiB,GAClB,EAAE,WAAW;IA4CR,MAAM;IAKN,OAAO;IAKb,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,WAAW,CAAC,KAAK,EAAE,OAAO;IAK1B,WAAW;IAIX,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI;CActC"}
1
+ {"version":3,"file":"crepe.d.ts","sourceRoot":"","sources":["../../../src/core/crepe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EACL,MAAM,EAKP,MAAM,oBAAoB,CAAA;AAU3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,YAAY,EAAgC,MAAM,YAAY,CAAA;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAGpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,qBAAa,KAAK;;IAChB,MAAM,CAAC,OAAO,sBAAe;gBAMjB,EACV,IAAI,EACJ,QAAa,EACb,cAAmB,EACnB,YAAiB,GAClB,EAAE,WAAW;IA+CR,MAAM;IAKN,OAAO;IAKb,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,WAAW,CAAC,KAAK,EAAE,OAAO;IAK1B,WAAW;IAIX,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI;CActC"}
@@ -1,2 +1,3 @@
1
1
  export { Crepe, type CrepeConfig } from './crepe';
2
+ export { crepeCtx } from './slice';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import type { Ctx } from '@milkdown/kit/ctx';
2
2
  import type { CrepeFeature } from '../feature';
3
+ import type { Crepe } from './crepe';
3
4
  export declare const FeaturesCtx: import("@milkdown/ctx").SliceType<CrepeFeature[], "FeaturesCtx">;
5
+ export declare const crepeCtx: import("@milkdown/ctx").SliceType<Crepe, "CrepeCtx">;
4
6
  export declare function configureFeatures(features: CrepeFeature[]): (ctx: Ctx) => void;
5
7
  //# sourceMappingURL=slice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/core/slice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,WAAW,kEAAmD,CAAA;AAE3E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAC3C,GAAG,UAGjB"}
1
+ {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../src/core/slice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,eAAO,MAAM,WAAW,kEAAmD,CAAA;AAE3E,eAAO,MAAM,QAAQ,sDAAuC,CAAA;AAE5D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAC3C,GAAG,UAGjB"}
@@ -37,6 +37,8 @@ interface BlockEditConfig {
37
37
  slashMenuCodeBlockLabel: string;
38
38
  slashMenuTableIcon: Icon;
39
39
  slashMenuTableLabel: string;
40
+ slashMenuMathIcon: Icon;
41
+ slashMenuMathLabel: string;
40
42
  }
41
43
  export type BlockEditFeatureConfig = Partial<BlockEditConfig>;
42
44
  export declare const defineFeature: DefineFeature<BlockEditFeatureConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/block-edit/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,UAAU,eAAe;IACvB,aAAa,EAAE,IAAI,CAAA;IACnB,cAAc,EAAE,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAE1C,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,IAAI,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,IAAI,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAE7B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uBAAuB,EAAE,IAAI,CAAA;IAC7B,wBAAwB,EAAE,MAAM,CAAA;IAChC,wBAAwB,EAAE,IAAI,CAAA;IAC9B,yBAAyB,EAAE,MAAM,CAAA;IACjC,qBAAqB,EAAE,IAAI,CAAA;IAC3B,sBAAsB,EAAE,MAAM,CAAA;IAE9B,2BAA2B,EAAE,MAAM,CAAA;IACnC,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sBAAsB,EAAE,IAAI,CAAA;IAC5B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7D,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,sBAAsB,CAU/D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/block-edit/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,UAAU,eAAe;IACvB,aAAa,EAAE,IAAI,CAAA;IACnB,cAAc,EAAE,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAE1C,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,IAAI,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,IAAI,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,IAAI,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAE7B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uBAAuB,EAAE,IAAI,CAAA;IAC7B,wBAAwB,EAAE,MAAM,CAAA;IAChC,wBAAwB,EAAE,IAAI,CAAA;IAC9B,yBAAyB,EAAE,MAAM,CAAA;IACjC,qBAAqB,EAAE,IAAI,CAAA;IAC3B,sBAAsB,EAAE,MAAM,CAAA;IAE9B,2BAA2B,EAAE,MAAM,CAAA;IACnC,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sBAAsB,EAAE,IAAI,CAAA;IAC5B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,kBAAkB,EAAE,IAAI,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,IAAI,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7D,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,sBAAsB,CAU/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAWxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,SAAS,CA4M9C,CAAA;AAUD,eAAO,MAAM,WAAW;;;EAAmB,CAAA"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAWxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,SAAS,CA+M9C,CAAA;AAUD,eAAO,MAAM,WAAW;;;EAAmB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import type { BlockEditFeatureConfig } from '../index';
2
2
  import type { MenuItemGroup } from './utils';
3
- export declare function getGroups(filter?: string, config?: BlockEditFeatureConfig): {
3
+ import type { Ctx } from '@milkdown/kit/ctx';
4
+ export declare function getGroups(filter?: string, config?: BlockEditFeatureConfig, ctx?: Ctx): {
4
5
  groups: MenuItemGroup[];
5
6
  size: number;
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/config.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAS5C,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB;YA6OpD,aAAa,EAAE;;EAGpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/feature/block-edit/menu/config.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAQ5C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAI5C,wBAAgB,SAAS,CACvB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,sBAAsB,EAC/B,GAAG,CAAC,EAAE,GAAG;YAwQW,aAAa,EAAE;;EAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAY5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAc1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAOnD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAsLpD,CAAA;AAUD,eAAO,MAAM,cAAc;;;EAAsB,CAAA"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/toolbar/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAY5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAe1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAMnD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAsLpD,CAAA;AAUD,eAAO,MAAM,cAAc;;;EAAsB,CAAA"}
@@ -34,4 +34,5 @@ export * from './strikethrough';
34
34
  export * from './table';
35
35
  export * from './text';
36
36
  export * from './todo-list';
37
+ export * from './functions';
37
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { CrepeFeature } from './feature';
2
- export * from './core';
2
+ export { Crepe, type CrepeConfig, crepeCtx } from './core';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@milkdown/crepe",
3
3
  "type": "module",
4
- "version": "7.6.1",
4
+ "version": "7.6.3",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -45,11 +45,11 @@
45
45
  "clsx": "^2.0.0",
46
46
  "codemirror": "^6.0.1",
47
47
  "katex": "^0.16.0",
48
- "nanoid": "^5.0.0",
48
+ "nanoid": "^5.0.9",
49
49
  "remark-math": "^6.0.0",
50
50
  "tslib": "^2.8.1",
51
51
  "unist-util-visit": "^5.0.0",
52
- "@milkdown/kit": "7.6.1"
52
+ "@milkdown/kit": "7.6.3"
53
53
  },
54
54
  "nx": {
55
55
  "targets": {
package/src/core/crepe.ts CHANGED
@@ -17,7 +17,7 @@ import { trailing } from '@milkdown/kit/plugin/trailing'
17
17
 
18
18
  import type { CrepeFeatureConfig } from '../feature'
19
19
  import { CrepeFeature, defaultFeatures, loadFeature } from '../feature'
20
- import { configureFeatures } from './slice'
20
+ import { configureFeatures, crepeCtx } from './slice'
21
21
  import type { ListenerManager } from '@milkdown/kit/plugin/listener'
22
22
  import { listener, listenerCtx } from '@milkdown/kit/plugin/listener'
23
23
 
@@ -52,6 +52,9 @@ export class Crepe {
52
52
  (typeof root === 'string' ? document.querySelector(root) : root) ??
53
53
  document.body
54
54
  this.#editor = Editor.make()
55
+ .config((ctx) => {
56
+ ctx.inject(crepeCtx, this)
57
+ })
55
58
  .config(configureFeatures(enabledFeatures))
56
59
  .config((ctx) => {
57
60
  ctx.set(rootCtx, this.#rootElement)
package/src/core/index.ts CHANGED
@@ -1 +1,2 @@
1
1
  export { Crepe, type CrepeConfig } from './crepe'
2
+ export { crepeCtx } from './slice'
package/src/core/slice.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  import type { Ctx } from '@milkdown/kit/ctx'
2
2
  import { createSlice } from '@milkdown/kit/ctx'
3
3
  import type { CrepeFeature } from '../feature'
4
+ import type { Crepe } from './crepe'
4
5
 
5
6
  export const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')
6
7
 
8
+ export const crepeCtx = createSlice({} as Crepe, 'CrepeCtx')
9
+
7
10
  export function configureFeatures(features: CrepeFeature[]) {
8
11
  return (ctx: Ctx) => {
9
12
  ctx.inject(FeaturesCtx, features)
@@ -44,6 +44,8 @@ interface BlockEditConfig {
44
44
  slashMenuCodeBlockLabel: string
45
45
  slashMenuTableIcon: Icon
46
46
  slashMenuTableLabel: string
47
+ slashMenuMathIcon: Icon
48
+ slashMenuMathLabel: string
47
49
  }
48
50
 
49
51
  export type BlockEditFeatureConfig = Partial<BlockEditConfig>
@@ -28,7 +28,10 @@ export const menuComponent: Component<MenuProps> = ({
28
28
  filter,
29
29
  config,
30
30
  }) => {
31
- const { groups, size } = useMemo(() => getGroups(filter, config), [filter])
31
+ const { groups, size } = useMemo(
32
+ () => getGroups(filter, config, ctx),
33
+ [filter]
34
+ )
32
35
 
33
36
  const host = useHost()
34
37
  const [hoverIndex, setHoverIndex] = useState(0)
@@ -9,7 +9,7 @@ import {
9
9
  orderedListSchema,
10
10
  paragraphSchema,
11
11
  } from '@milkdown/kit/preset/commonmark'
12
- import { NodeSelection } from '@milkdown/kit/prose/state'
12
+ import { TextSelection } from '@milkdown/kit/prose/state'
13
13
  import { imageBlockSchema } from '@milkdown/kit/component/image-block'
14
14
  import { createTable } from '@milkdown/kit/preset/gfm'
15
15
  import {
@@ -28,6 +28,7 @@ import {
28
28
  tableIcon,
29
29
  textIcon,
30
30
  todoListIcon,
31
+ functionsIcon,
31
32
  } from '../../../icons'
32
33
  import type { BlockEditFeatureConfig } from '../index'
33
34
  import type { MenuItemGroup } from './utils'
@@ -38,8 +39,18 @@ import {
38
39
  clearRange,
39
40
  } from './utils'
40
41
  import { GroupBuilder } from './group-builder'
42
+ import type { Ctx } from '@milkdown/kit/ctx'
43
+ import { FeaturesCtx } from '../../../core/slice'
44
+ import { CrepeFeature } from '../../..'
45
+
46
+ export function getGroups(
47
+ filter?: string,
48
+ config?: BlockEditFeatureConfig,
49
+ ctx?: Ctx
50
+ ) {
51
+ const flags = ctx?.get(FeaturesCtx)
52
+ const isLatexEnabled = flags?.includes(CrepeFeature.Latex)
41
53
 
42
- export function getGroups(filter?: string, config?: BlockEditFeatureConfig) {
43
54
  const groupBuilder = new GroupBuilder()
44
55
  groupBuilder
45
56
  .addGroup('text', config?.slashMenuTextGroupLabel ?? 'Text')
@@ -200,7 +211,7 @@ export function getGroups(filter?: string, config?: BlockEditFeatureConfig) {
200
211
  },
201
212
  })
202
213
 
203
- groupBuilder
214
+ const advancedGroup = groupBuilder
204
215
  .addGroup('advanced', config?.slashMenuAdvancedGroupLabel ?? 'Advanced')
205
216
  .addItem('image', {
206
217
  label: config?.slashMenuImageLabel ?? 'Image',
@@ -230,19 +241,42 @@ export function getGroups(filter?: string, config?: BlockEditFeatureConfig) {
230
241
  onRun: (ctx) => {
231
242
  const view = ctx.get(editorViewCtx)
232
243
  const { dispatch, state } = view
233
- const tr = clearRange(state.tr)
244
+ let { tr } = state
245
+ tr = clearRange(tr)
246
+ const from = tr.selection.from
234
247
  const table = createTable(ctx, 3, 3)
235
- tr.replaceSelectionWith(table)
236
- const { from } = tr.selection
237
- const pos = from - table.nodeSize + 2
248
+ tr = tr.replaceSelectionWith(table)
238
249
  dispatch(tr)
250
+
239
251
  requestAnimationFrame(() => {
240
- const selection = NodeSelection.create(view.state.tr.doc, pos)
241
- dispatch(view.state.tr.setSelection(selection).scrollIntoView())
252
+ const docSize = view.state.doc.content.size
253
+ const $pos = view.state.doc.resolve(
254
+ from > docSize ? docSize : from < 0 ? 0 : from
255
+ )
256
+ const selection = TextSelection.near($pos)
257
+ const tr = view.state.tr
258
+ tr.setSelection(selection)
259
+ dispatch(tr.scrollIntoView())
242
260
  })
243
261
  },
244
262
  })
245
263
 
264
+ if (isLatexEnabled) {
265
+ advancedGroup.addItem('math', {
266
+ label: config?.slashMenuMathLabel ?? 'Math',
267
+ icon: config?.slashMenuMathIcon?.() ?? functionsIcon,
268
+ onRun: (ctx) => {
269
+ const view = ctx.get(editorViewCtx)
270
+ const { dispatch, state } = view
271
+
272
+ const command = clearContentAndAddBlockType(codeBlockSchema.type(ctx), {
273
+ language: 'LaTex',
274
+ })
275
+ command(state, dispatch)
276
+ },
277
+ })
278
+ }
279
+
246
280
  config?.buildMenu?.(groupBuilder)
247
281
 
248
282
  let groups = groupBuilder.build()
@@ -8,7 +8,7 @@ export const blockLatexSchema = codeBlockSchema.extendSchema((prev) => {
8
8
  toMarkdown: {
9
9
  match: baseSchema.toMarkdown.match,
10
10
  runner: (state, node) => {
11
- const language = node.attrs.language
11
+ const language = node.attrs.language ?? ''
12
12
  if (language.toLowerCase() === 'latex') {
13
13
  state.addNode(
14
14
  'math',
@@ -25,9 +25,9 @@ import {
25
25
  italicIcon,
26
26
  linkIcon,
27
27
  strikethroughIcon,
28
+ functionsIcon,
28
29
  } from '../../icons'
29
30
  import type { ToolbarFeatureConfig } from './index'
30
- import { functionsIcon } from '../../icons/functions'
31
31
  import { NodeSelection, TextSelection } from '@milkdown/kit/prose/state'
32
32
  import { mathInlineSchema } from '../latex/inline-latex'
33
33
  import { FeaturesCtx } from '../../core/slice'
@@ -34,3 +34,4 @@ export * from './strikethrough'
34
34
  export * from './table'
35
35
  export * from './text'
36
36
  export * from './todo-list'
37
+ export * from './functions'
package/src/index.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { CrepeFeature } from './feature'
2
- export * from './core'
2
+ export { Crepe, type CrepeConfig, crepeCtx } from './core'
@@ -390,7 +390,8 @@
390
390
  font-size: 14px;
391
391
  font-weight: 600;
392
392
  &:hover {
393
- background: linear-gradient(
393
+ background:
394
+ linear-gradient(
394
395
  0deg,
395
396
  rgba(29, 25, 43, 0.08) 0%,
396
397
  rgba(29, 25, 43, 0.08) 100%
@@ -21,10 +21,11 @@
21
21
 
22
22
  --crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
24
+ --crepe-font-code:
25
+ Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
25
26
 
26
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
27
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
28
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
29
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
30
31
  }
@@ -21,10 +21,13 @@
21
21
 
22
22
  --crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
24
+ --crepe-font-code:
25
+ Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
25
26
 
26
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
28
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
29
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
30
33
  }
@@ -21,11 +21,11 @@
21
21
 
22
22
  --crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New',
25
- Courier, monospace;
24
+ --crepe-font-code:
25
+ 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
28
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
30
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
31
31
  }
@@ -21,11 +21,13 @@
21
21
 
22
22
  --crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New',
25
- Courier, monospace;
24
+ --crepe-font-code:
25
+ 'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
28
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
29
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
31
33
  }
@@ -21,11 +21,11 @@
21
21
 
22
22
  --crepe-font-title: Rubik, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: Inter, Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier,
25
- monospace;
24
+ --crepe-font-code:
25
+ 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15),
28
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
- --crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
30
- 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
27
+ --crepe-shadow-1:
28
+ 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
29
+ --crepe-shadow-2:
30
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
31
31
  }
@@ -21,11 +21,13 @@
21
21
 
22
22
  --crepe-font-title: Rubik, Cambria, 'Times New Roman', Times, serif;
23
23
  --crepe-font-default: Inter, Arial, Helvetica, sans-serif;
24
- --crepe-font-code: 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier,
25
- monospace;
24
+ --crepe-font-code:
25
+ 'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier, monospace;
26
26
 
27
- --crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
27
+ --crepe-shadow-1:
28
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
28
29
  0px 1px 3px 1px rgba(255, 255, 255, 0.15);
29
- --crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
+ --crepe-shadow-2:
31
+ 0px 1px 2px 0px rgba(255, 255, 255, 0.3),
30
32
  0px 2px 6px 2px rgba(255, 255, 255, 0.15);
31
33
  }
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- var linkTooltip = require('@milkdown/kit/component/link-tooltip');
4
- var todoList = require('./todo-list-V4JWO5-M.js');
5
- require('atomico');
6
-
7
- const defineFeature = (editor, config) => {
8
- editor.config(linkTooltip.configureLinkTooltip).config((ctx) => {
9
- ctx.update(linkTooltip.linkTooltipConfig.key, (prev) => {
10
- var _a, _b, _c, _d, _e, _f;
11
- return {
12
- ...prev,
13
- linkIcon: (_a = config == null ? undefined : config.linkIcon) != null ? _a : () => todoList.copyIcon,
14
- editButton: (_b = config == null ? undefined : config.editButton) != null ? _b : () => todoList.editIcon,
15
- removeButton: (_c = config == null ? undefined : config.removeButton) != null ? _c : () => todoList.removeIcon,
16
- confirmButton: (_d = config == null ? undefined : config.confirmButton) != null ? _d : () => todoList.confirmIcon,
17
- inputPlaceholder: (_e = config == null ? undefined : config.inputPlaceholder) != null ? _e : "Paste link...",
18
- onCopyLink: (_f = config == null ? undefined : config.onCopyLink) != null ? _f : () => {
19
- }
20
- };
21
- });
22
- }).use(linkTooltip.linkTooltipPlugin);
23
- };
24
-
25
- exports.defineFeature = defineFeature;
26
- //# sourceMappingURL=index-6oBtF_11.js.map