@milkdown/crepe 7.7.0 → 7.9.0

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 (309) hide show
  1. package/lib/cjs/confirm-CNveM9QH.js +26 -0
  2. package/lib/cjs/confirm-CNveM9QH.js.map +1 -0
  3. package/lib/cjs/edit-BUtBJHpV.js +24 -0
  4. package/lib/cjs/edit-BUtBJHpV.js.map +1 -0
  5. package/lib/cjs/functions-BAY51plB.js +39 -0
  6. package/lib/cjs/functions-BAY51plB.js.map +1 -0
  7. package/lib/cjs/image-BXLkOVnO.js +24 -0
  8. package/lib/cjs/image-BXLkOVnO.js.map +1 -0
  9. package/lib/cjs/{index-Dac851tb.js → index-B7gqgc1H.js} +494 -204
  10. package/lib/cjs/index-B7gqgc1H.js.map +1 -0
  11. package/lib/cjs/{index-Dub20F3z.js → index-B91KhPew.js} +4 -4
  12. package/lib/cjs/index-B91KhPew.js.map +1 -0
  13. package/lib/cjs/{index-nrFkJeLW.js → index-BsrJn8Jp.js} +22 -7
  14. package/lib/cjs/index-BsrJn8Jp.js.map +1 -0
  15. package/lib/cjs/{index-BuSAwj4j.js → index-C2CAbC2F.js} +8 -1
  16. package/lib/cjs/index-C2CAbC2F.js.map +1 -0
  17. package/lib/cjs/{index-ooYXC5xk.js → index-CnyNb_OH.js} +45 -45
  18. package/lib/cjs/index-CnyNb_OH.js.map +1 -0
  19. package/lib/cjs/{index-7pgPMFV4.js → index-CoTb-QdE.js} +123 -105
  20. package/lib/cjs/index-CoTb-QdE.js.map +1 -0
  21. package/lib/cjs/index-DEs_IHHy.js +91 -0
  22. package/lib/cjs/index-DEs_IHHy.js.map +1 -0
  23. package/lib/cjs/index-DGAwtnNK.js +349 -0
  24. package/lib/cjs/index-DGAwtnNK.js.map +1 -0
  25. package/lib/cjs/index-DLIudQKW.js +126 -0
  26. package/lib/cjs/index-DLIudQKW.js.map +1 -0
  27. package/lib/cjs/index-Dw6lXgs6.js +81 -0
  28. package/lib/cjs/index-Dw6lXgs6.js.map +1 -0
  29. package/lib/cjs/{index-AlHHvSR_.js → index-xbwf60wt.js} +1 -6
  30. package/lib/cjs/{index-AlHHvSR_.js.map → index-xbwf60wt.js.map} +1 -1
  31. package/lib/cjs/{index-CvmlYYXX.js → index-xbxqAqH2.js} +21 -7
  32. package/lib/cjs/index-xbxqAqH2.js.map +1 -0
  33. package/lib/cjs/index.js +6 -6
  34. package/lib/cjs/plus-XLomtlXf.js +24 -0
  35. package/lib/cjs/plus-XLomtlXf.js.map +1 -0
  36. package/lib/cjs/remove-Ba-ypwBf.js +17 -0
  37. package/lib/cjs/remove-Ba-ypwBf.js.map +1 -0
  38. package/lib/esm/confirm-DtE-HkVd.js +24 -0
  39. package/lib/esm/confirm-DtE-HkVd.js.map +1 -0
  40. package/lib/esm/edit-D--t_JAb.js +22 -0
  41. package/lib/esm/edit-D--t_JAb.js.map +1 -0
  42. package/lib/esm/functions-DlJPkGmE.js +36 -0
  43. package/lib/esm/functions-DlJPkGmE.js.map +1 -0
  44. package/lib/esm/image-DoB1o1sl.js +22 -0
  45. package/lib/esm/image-DoB1o1sl.js.map +1 -0
  46. package/lib/esm/index-BAQT-9au.js +347 -0
  47. package/lib/esm/index-BAQT-9au.js.map +1 -0
  48. package/lib/esm/{index-DOrkOhki.js → index-BCvtgOeI.js} +4 -4
  49. package/lib/esm/index-BCvtgOeI.js.map +1 -0
  50. package/lib/esm/{index-s33c_M2f.js → index-BDZ_pnSv.js} +122 -104
  51. package/lib/esm/index-BDZ_pnSv.js.map +1 -0
  52. package/lib/esm/{index-D6fLMv29.js → index-BPG8iO8t.js} +2 -6
  53. package/lib/esm/{index-D6fLMv29.js.map → index-BPG8iO8t.js.map} +1 -1
  54. package/lib/esm/{index-DcRgwPLd.js → index-BUBXHhHG.js} +18 -3
  55. package/lib/esm/index-BUBXHhHG.js.map +1 -0
  56. package/lib/esm/{index-CxJ9fxJm.js → index-Bvz1Yyiz.js} +8 -1
  57. package/lib/esm/index-Bvz1Yyiz.js.map +1 -0
  58. package/lib/esm/index-C1aVAv1l.js +124 -0
  59. package/lib/esm/index-C1aVAv1l.js.map +1 -0
  60. package/lib/esm/{index-uHWmZXqe.js → index-CM4urRY9.js} +480 -190
  61. package/lib/esm/index-CM4urRY9.js.map +1 -0
  62. package/lib/esm/{index-BFsG6770.js → index-ChR5Qhyf.js} +17 -3
  63. package/lib/esm/index-ChR5Qhyf.js.map +1 -0
  64. package/lib/esm/index-CwMVnVeI.js +89 -0
  65. package/lib/esm/index-CwMVnVeI.js.map +1 -0
  66. package/lib/esm/{index-CLpluqvF.js → index-Dc_wWopW.js} +46 -46
  67. package/lib/esm/index-Dc_wWopW.js.map +1 -0
  68. package/lib/esm/index-E8UgFLeN.js +79 -0
  69. package/lib/esm/index-E8UgFLeN.js.map +1 -0
  70. package/lib/esm/index.js +6 -6
  71. package/lib/esm/plus-lrX0Q75O.js +22 -0
  72. package/lib/esm/plus-lrX0Q75O.js.map +1 -0
  73. package/lib/esm/remove-D3g0Cd6_.js +15 -0
  74. package/lib/esm/remove-D3g0Cd6_.js.map +1 -0
  75. package/lib/theme/_internal/classic-common.css +7 -1
  76. package/lib/theme/common/block-edit.css +23 -23
  77. package/lib/theme/common/code-mirror.css +43 -44
  78. package/lib/theme/common/cursor.css +5 -0
  79. package/lib/theme/common/image-block.css +79 -81
  80. package/lib/theme/common/latex.css +6 -6
  81. package/lib/theme/common/link-tooltip.css +21 -21
  82. package/lib/theme/common/list-item.css +11 -10
  83. package/lib/theme/common/table.css +39 -39
  84. package/lib/theme/common/toolbar.css +8 -8
  85. package/lib/tsconfig.tsbuildinfo +1 -0
  86. package/lib/types/core/crepe.d.ts +6 -6
  87. package/lib/types/core/crepe.d.ts.map +1 -1
  88. package/lib/types/core/slice.d.ts.map +1 -1
  89. package/lib/types/feature/block-edit/handle/component.d.ts +4 -8
  90. package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
  91. package/lib/types/feature/block-edit/handle/index.d.ts +1 -1
  92. package/lib/types/feature/block-edit/handle/index.d.ts.map +1 -1
  93. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  94. package/lib/types/feature/block-edit/menu/component.d.ts +8 -11
  95. package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
  96. package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
  97. package/lib/types/feature/block-edit/menu/index.d.ts.map +1 -1
  98. package/lib/types/feature/block-edit/menu/utils.d.ts +2 -3
  99. package/lib/types/feature/block-edit/menu/utils.d.ts.map +1 -1
  100. package/lib/types/feature/code-mirror/index.d.ts +3 -4
  101. package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
  102. package/lib/types/feature/cursor/index.d.ts +1 -0
  103. package/lib/types/feature/cursor/index.d.ts.map +1 -1
  104. package/lib/types/feature/image-block/index.d.ts.map +1 -1
  105. package/lib/types/feature/index.d.ts +4 -4
  106. package/lib/types/feature/index.d.ts.map +1 -1
  107. package/lib/types/feature/latex/index.d.ts.map +1 -1
  108. package/lib/types/feature/latex/inline-tooltip/component.d.ts +6 -10
  109. package/lib/types/feature/latex/inline-tooltip/component.d.ts.map +1 -1
  110. package/lib/types/feature/latex/inline-tooltip/view.d.ts.map +1 -1
  111. package/lib/types/feature/latex/input-rule.d.ts.map +1 -1
  112. package/lib/types/feature/latex/remark.d.ts.map +1 -1
  113. package/lib/types/feature/link-tooltip/index.d.ts.map +1 -1
  114. package/lib/types/feature/list-item/index.d.ts.map +1 -1
  115. package/lib/types/feature/placeholder/index.d.ts.map +1 -1
  116. package/lib/types/feature/shared.d.ts +1 -2
  117. package/lib/types/feature/shared.d.ts.map +1 -1
  118. package/lib/types/feature/table/index.d.ts.map +1 -1
  119. package/lib/types/feature/toolbar/component.d.ts +9 -12
  120. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  121. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  122. package/lib/types/icons/align-center.d.ts +1 -1
  123. package/lib/types/icons/align-center.d.ts.map +1 -1
  124. package/lib/types/icons/align-left.d.ts +1 -1
  125. package/lib/types/icons/align-left.d.ts.map +1 -1
  126. package/lib/types/icons/align-right.d.ts +1 -1
  127. package/lib/types/icons/align-right.d.ts.map +1 -1
  128. package/lib/types/icons/bold.d.ts +1 -1
  129. package/lib/types/icons/bold.d.ts.map +1 -1
  130. package/lib/types/icons/bullet-list.d.ts +1 -1
  131. package/lib/types/icons/bullet-list.d.ts.map +1 -1
  132. package/lib/types/icons/bullet.d.ts +1 -1
  133. package/lib/types/icons/bullet.d.ts.map +1 -1
  134. package/lib/types/icons/caption.d.ts +1 -1
  135. package/lib/types/icons/caption.d.ts.map +1 -1
  136. package/lib/types/icons/check-box-checked.d.ts +1 -1
  137. package/lib/types/icons/check-box-checked.d.ts.map +1 -1
  138. package/lib/types/icons/check-box-unchecked.d.ts +1 -1
  139. package/lib/types/icons/check-box-unchecked.d.ts.map +1 -1
  140. package/lib/types/icons/chevron-down.d.ts +1 -1
  141. package/lib/types/icons/chevron-down.d.ts.map +1 -1
  142. package/lib/types/icons/clear.d.ts +1 -1
  143. package/lib/types/icons/clear.d.ts.map +1 -1
  144. package/lib/types/icons/code.d.ts +1 -1
  145. package/lib/types/icons/code.d.ts.map +1 -1
  146. package/lib/types/icons/confirm.d.ts +1 -1
  147. package/lib/types/icons/confirm.d.ts.map +1 -1
  148. package/lib/types/icons/copy.d.ts +1 -1
  149. package/lib/types/icons/copy.d.ts.map +1 -1
  150. package/lib/types/icons/divider.d.ts +1 -1
  151. package/lib/types/icons/divider.d.ts.map +1 -1
  152. package/lib/types/icons/drag-handle.d.ts +1 -1
  153. package/lib/types/icons/drag-handle.d.ts.map +1 -1
  154. package/lib/types/icons/edit.d.ts +1 -1
  155. package/lib/types/icons/edit.d.ts.map +1 -1
  156. package/lib/types/icons/functions.d.ts +1 -1
  157. package/lib/types/icons/functions.d.ts.map +1 -1
  158. package/lib/types/icons/h1.d.ts +1 -1
  159. package/lib/types/icons/h1.d.ts.map +1 -1
  160. package/lib/types/icons/h2.d.ts +1 -1
  161. package/lib/types/icons/h2.d.ts.map +1 -1
  162. package/lib/types/icons/h3.d.ts +1 -1
  163. package/lib/types/icons/h3.d.ts.map +1 -1
  164. package/lib/types/icons/h4.d.ts +1 -1
  165. package/lib/types/icons/h4.d.ts.map +1 -1
  166. package/lib/types/icons/h5.d.ts +1 -1
  167. package/lib/types/icons/h5.d.ts.map +1 -1
  168. package/lib/types/icons/h6.d.ts +1 -1
  169. package/lib/types/icons/h6.d.ts.map +1 -1
  170. package/lib/types/icons/image.d.ts +1 -1
  171. package/lib/types/icons/image.d.ts.map +1 -1
  172. package/lib/types/icons/italic.d.ts +1 -1
  173. package/lib/types/icons/italic.d.ts.map +1 -1
  174. package/lib/types/icons/link.d.ts +1 -1
  175. package/lib/types/icons/link.d.ts.map +1 -1
  176. package/lib/types/icons/menu.d.ts +1 -1
  177. package/lib/types/icons/menu.d.ts.map +1 -1
  178. package/lib/types/icons/ordered-list.d.ts +1 -1
  179. package/lib/types/icons/ordered-list.d.ts.map +1 -1
  180. package/lib/types/icons/plus.d.ts +1 -1
  181. package/lib/types/icons/plus.d.ts.map +1 -1
  182. package/lib/types/icons/quote.d.ts +1 -1
  183. package/lib/types/icons/quote.d.ts.map +1 -1
  184. package/lib/types/icons/remove.d.ts +1 -1
  185. package/lib/types/icons/remove.d.ts.map +1 -1
  186. package/lib/types/icons/search.d.ts +1 -1
  187. package/lib/types/icons/search.d.ts.map +1 -1
  188. package/lib/types/icons/strikethrough.d.ts +1 -1
  189. package/lib/types/icons/strikethrough.d.ts.map +1 -1
  190. package/lib/types/icons/table.d.ts +1 -1
  191. package/lib/types/icons/table.d.ts.map +1 -1
  192. package/lib/types/icons/text.d.ts +1 -1
  193. package/lib/types/icons/text.d.ts.map +1 -1
  194. package/lib/types/icons/todo-list.d.ts +1 -1
  195. package/lib/types/icons/todo-list.d.ts.map +1 -1
  196. package/lib/types/icons/visibility-off.d.ts +1 -1
  197. package/lib/types/icons/visibility-off.d.ts.map +1 -1
  198. package/package.json +5 -26
  199. package/src/core/crepe.ts +13 -12
  200. package/src/core/slice.ts +2 -0
  201. package/src/feature/block-edit/handle/component.tsx +60 -0
  202. package/src/feature/block-edit/handle/index.ts +22 -14
  203. package/src/feature/block-edit/index.ts +3 -1
  204. package/src/feature/block-edit/menu/component.tsx +237 -0
  205. package/src/feature/block-edit/menu/config.ts +6 -3
  206. package/src/feature/block-edit/menu/index.ts +55 -17
  207. package/src/feature/block-edit/menu/utils.ts +3 -3
  208. package/src/feature/code-mirror/index.ts +20 -20
  209. package/src/feature/cursor/index.ts +10 -0
  210. package/src/feature/image-block/index.ts +3 -1
  211. package/src/feature/index.ts +5 -4
  212. package/src/feature/latex/index.ts +8 -8
  213. package/src/feature/latex/inline-tooltip/component.tsx +57 -0
  214. package/src/feature/latex/inline-tooltip/view.ts +30 -17
  215. package/src/feature/latex/input-rule.ts +4 -3
  216. package/src/feature/latex/remark.ts +3 -2
  217. package/src/feature/link-tooltip/index.ts +3 -1
  218. package/src/feature/list-item/index.ts +8 -16
  219. package/src/feature/placeholder/index.ts +6 -3
  220. package/src/feature/shared.ts +1 -2
  221. package/src/feature/table/index.ts +2 -0
  222. package/src/feature/toolbar/component.tsx +256 -0
  223. package/src/feature/toolbar/index.ts +34 -17
  224. package/src/icons/align-center.ts +1 -3
  225. package/src/icons/align-left.ts +1 -3
  226. package/src/icons/align-right.ts +1 -3
  227. package/src/icons/bold.ts +1 -3
  228. package/src/icons/bullet-list.ts +1 -3
  229. package/src/icons/bullet.ts +1 -3
  230. package/src/icons/caption.ts +1 -3
  231. package/src/icons/check-box-checked.ts +1 -3
  232. package/src/icons/check-box-unchecked.ts +1 -3
  233. package/src/icons/chevron-down.ts +1 -3
  234. package/src/icons/clear.ts +1 -3
  235. package/src/icons/code.ts +1 -3
  236. package/src/icons/confirm.ts +1 -3
  237. package/src/icons/copy.ts +1 -3
  238. package/src/icons/divider.ts +1 -3
  239. package/src/icons/drag-handle.ts +1 -3
  240. package/src/icons/edit.ts +1 -3
  241. package/src/icons/functions.ts +1 -3
  242. package/src/icons/h1.ts +1 -3
  243. package/src/icons/h2.ts +1 -3
  244. package/src/icons/h3.ts +1 -3
  245. package/src/icons/h4.ts +1 -3
  246. package/src/icons/h5.ts +1 -3
  247. package/src/icons/h6.ts +1 -3
  248. package/src/icons/image.ts +1 -3
  249. package/src/icons/italic.ts +1 -3
  250. package/src/icons/link.ts +1 -3
  251. package/src/icons/menu.ts +1 -3
  252. package/src/icons/ordered-list.ts +1 -3
  253. package/src/icons/plus.ts +1 -3
  254. package/src/icons/quote.ts +1 -3
  255. package/src/icons/remove.ts +1 -3
  256. package/src/icons/search.ts +1 -3
  257. package/src/icons/strikethrough.ts +1 -3
  258. package/src/icons/table.ts +1 -3
  259. package/src/icons/text.ts +1 -3
  260. package/src/icons/todo-list.ts +1 -3
  261. package/src/icons/visibility-off.ts +1 -3
  262. package/src/theme/_internal/classic-common.css +7 -1
  263. package/src/theme/common/block-edit.css +2 -2
  264. package/src/theme/common/code-mirror.css +5 -6
  265. package/src/theme/common/cursor.css +5 -0
  266. package/src/theme/common/image-block.css +9 -11
  267. package/src/theme/common/latex.css +1 -1
  268. package/src/theme/common/link-tooltip.css +2 -2
  269. package/src/theme/common/list-item.css +3 -2
  270. package/src/theme/common/table.css +2 -2
  271. package/src/theme/common/toolbar.css +1 -1
  272. package/lib/cjs/functions-Dk90yOUc.js +0 -690
  273. package/lib/cjs/functions-Dk90yOUc.js.map +0 -1
  274. package/lib/cjs/index-7pgPMFV4.js.map +0 -1
  275. package/lib/cjs/index-Bjy2DUKs.js +0 -272
  276. package/lib/cjs/index-Bjy2DUKs.js.map +0 -1
  277. package/lib/cjs/index-BuSAwj4j.js.map +0 -1
  278. package/lib/cjs/index-CvmlYYXX.js.map +0 -1
  279. package/lib/cjs/index-D3lu92SA.js +0 -39
  280. package/lib/cjs/index-D3lu92SA.js.map +0 -1
  281. package/lib/cjs/index-DQll67YS.js +0 -65
  282. package/lib/cjs/index-DQll67YS.js.map +0 -1
  283. package/lib/cjs/index-Dac851tb.js.map +0 -1
  284. package/lib/cjs/index-Dub20F3z.js.map +0 -1
  285. package/lib/cjs/index-hPk2gbSt.js +0 -35
  286. package/lib/cjs/index-hPk2gbSt.js.map +0 -1
  287. package/lib/cjs/index-nrFkJeLW.js.map +0 -1
  288. package/lib/cjs/index-ooYXC5xk.js.map +0 -1
  289. package/lib/esm/functions-Bsik6ikd.js +0 -652
  290. package/lib/esm/functions-Bsik6ikd.js.map +0 -1
  291. package/lib/esm/index-B3KiKTSt.js +0 -63
  292. package/lib/esm/index-B3KiKTSt.js.map +0 -1
  293. package/lib/esm/index-BFsG6770.js.map +0 -1
  294. package/lib/esm/index-CBrOT1fW.js +0 -37
  295. package/lib/esm/index-CBrOT1fW.js.map +0 -1
  296. package/lib/esm/index-CLpluqvF.js.map +0 -1
  297. package/lib/esm/index-CsEtSFhk.js +0 -270
  298. package/lib/esm/index-CsEtSFhk.js.map +0 -1
  299. package/lib/esm/index-Cuk7cL-r.js +0 -33
  300. package/lib/esm/index-Cuk7cL-r.js.map +0 -1
  301. package/lib/esm/index-CxJ9fxJm.js.map +0 -1
  302. package/lib/esm/index-DOrkOhki.js.map +0 -1
  303. package/lib/esm/index-DcRgwPLd.js.map +0 -1
  304. package/lib/esm/index-s33c_M2f.js.map +0 -1
  305. package/lib/esm/index-uHWmZXqe.js.map +0 -1
  306. package/src/feature/block-edit/handle/component.ts +0 -54
  307. package/src/feature/block-edit/menu/component.ts +0 -241
  308. package/src/feature/latex/inline-tooltip/component.ts +0 -38
  309. package/src/feature/toolbar/component.ts +0 -236
@@ -0,0 +1,124 @@
1
+ import { defaultKeymap, indentWithTab } from '@codemirror/commands';
2
+ import { keymap } from '@codemirror/view';
3
+ import { codeBlockConfig, codeBlockComponent } from '@milkdown/kit/component/code-block';
4
+ import { basicSetup } from 'codemirror';
5
+ import { e as editIcon } from './edit-D--t_JAb.js';
6
+
7
+ const chevronDownIcon = `
8
+ <svg
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ fill="none"
11
+ viewBox="0 0 24 24"
12
+ stroke-width="1.5"
13
+ stroke="currentColor"
14
+ class="w-6 h-6"
15
+ >
16
+ <path
17
+ stroke-linecap="round"
18
+ stroke-linejoin="round"
19
+ d="M19.5 8.25l-7.5 7.5-7.5-7.5"
20
+ />
21
+ </svg>
22
+ `;
23
+
24
+ const clearIcon = `
25
+ <svg
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ width="24"
28
+ height="24"
29
+ viewBox="0 0 24 24"
30
+ >
31
+ <g clip-path="url(#clip0_1098_15553)">
32
+ <path
33
+ d="M18.3007 5.70973C17.9107 5.31973 17.2807 5.31973 16.8907 5.70973L12.0007 10.5897L7.1107 5.69973C6.7207 5.30973 6.0907 5.30973 5.7007 5.69973C5.3107 6.08973 5.3107 6.71973 5.7007 7.10973L10.5907 11.9997L5.7007 16.8897C5.3107 17.2797 5.3107 17.9097 5.7007 18.2997C6.0907 18.6897 6.7207 18.6897 7.1107 18.2997L12.0007 13.4097L16.8907 18.2997C17.2807 18.6897 17.9107 18.6897 18.3007 18.2997C18.6907 17.9097 18.6907 17.2797 18.3007 16.8897L13.4107 11.9997L18.3007 7.10973C18.6807 6.72973 18.6807 6.08973 18.3007 5.70973Z"
34
+ />
35
+ </g>
36
+ <defs>
37
+ <clipPath id="clip0_1098_15553">
38
+ <rect width="24" height="24" />
39
+ </clipPath>
40
+ </defs>
41
+ </svg>
42
+ `;
43
+
44
+ const searchIcon = `
45
+ <svg
46
+ xmlns="http://www.w3.org/2000/svg"
47
+ fill="none"
48
+ viewBox="0 0 24 24"
49
+ stroke-width="1.5"
50
+ stroke="currentColor"
51
+ class="w-6 h-6"
52
+ >
53
+ <path
54
+ stroke-linecap="round"
55
+ stroke-linejoin="round"
56
+ d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"
57
+ />
58
+ </svg>
59
+ `;
60
+
61
+ const visibilityOffIcon = `
62
+ <svg
63
+ xmlns="http://www.w3.org/2000/svg"
64
+ height="24px"
65
+ viewBox="0 -960 960 960"
66
+ width="24px"
67
+ >
68
+ <path
69
+ d="m644-428-58-58q9-47-27-88t-93-32l-58-58q17-8 34.5-12t37.5-4q75 0 127.5 52.5T660-500q0 20-4 37.5T644-428Zm128 126-58-56q38-29 67.5-63.5T832-500q-50-101-143.5-160.5T480-720q-29 0-57 4t-55 12l-62-62q41-17 84-25.5t90-8.5q151 0 269 83.5T920-500q-23 59-60.5 109.5T772-302Zm20 246L624-222q-35 11-70.5 16.5T480-200q-151 0-269-83.5T40-500q21-53 53-98.5t73-81.5L56-792l56-56 736 736-56 56ZM222-624q-29 26-53 57t-41 67q50 101 143.5 160.5T480-280q20 0 39-2.5t39-5.5l-36-38q-11 3-21 4.5t-21 1.5q-75 0-127.5-52.5T300-500q0-11 1.5-21t4.5-21l-84-82Zm319 93Zm-151 75Z"
70
+ />
71
+ </svg>
72
+ `;
73
+
74
+ const defineFeature = (editor, config = {}) => {
75
+ editor.config(async (ctx) => {
76
+ let { languages, theme } = config;
77
+ if (!languages) {
78
+ const { languages: langList } = await import('@codemirror/language-data');
79
+ languages = langList;
80
+ }
81
+ if (!theme) {
82
+ const { oneDark } = await import('@codemirror/theme-one-dark');
83
+ theme = oneDark;
84
+ }
85
+ ctx.update(codeBlockConfig.key, (defaultConfig) => {
86
+ var _a;
87
+ return {
88
+ extensions: [
89
+ keymap.of(defaultKeymap.concat(indentWithTab)),
90
+ basicSetup,
91
+ theme,
92
+ ...(_a = config == null ? void 0 : config.extensions) != null ? _a : []
93
+ ],
94
+ languages,
95
+ expandIcon: () => {
96
+ var _a2;
97
+ return ((_a2 = config.expandIcon) == null ? void 0 : _a2.call(config)) || chevronDownIcon;
98
+ },
99
+ searchIcon: () => {
100
+ var _a2;
101
+ return ((_a2 = config.searchIcon) == null ? void 0 : _a2.call(config)) || searchIcon;
102
+ },
103
+ clearSearchIcon: () => {
104
+ var _a2;
105
+ return ((_a2 = config.clearSearchIcon) == null ? void 0 : _a2.call(config)) || clearIcon;
106
+ },
107
+ searchPlaceholder: config.searchPlaceholder || "Search language",
108
+ noResultText: config.noResultText || "No result",
109
+ renderLanguage: config.renderLanguage || defaultConfig.renderLanguage,
110
+ renderPreview: config.renderPreview || defaultConfig.renderPreview,
111
+ previewToggleButton: (previewOnlyMode) => {
112
+ var _a2, _b;
113
+ const icon = ((_a2 = config.previewToggleIcon) == null ? void 0 : _a2.call(config, previewOnlyMode)) || (previewOnlyMode ? editIcon : visibilityOffIcon);
114
+ const text = ((_b = config.previewToggleText) == null ? void 0 : _b.call(config, previewOnlyMode)) || (previewOnlyMode ? "Edit" : "Hide");
115
+ return [icon, text].map((v) => v.trim()).join(" ");
116
+ },
117
+ previewLabel: config.previewLabel || defaultConfig.previewLabel
118
+ };
119
+ });
120
+ }).use(codeBlockComponent);
121
+ };
122
+
123
+ export { defineFeature };
124
+ //# sourceMappingURL=index-C1aVAv1l.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-C1aVAv1l.js","sources":["../../src/icons/chevron-down.ts","../../src/icons/clear.ts","../../src/icons/search.ts","../../src/icons/visibility-off.ts","../../src/feature/code-mirror/index.ts"],"sourcesContent":["export const chevronDownIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"w-6 h-6\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M19.5 8.25l-7.5 7.5-7.5-7.5\"\n />\n </svg>\n`\n","export const clearIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <g clip-path=\"url(#clip0_1098_15553)\">\n <path\n d=\"M18.3007 5.70973C17.9107 5.31973 17.2807 5.31973 16.8907 5.70973L12.0007 10.5897L7.1107 5.69973C6.7207 5.30973 6.0907 5.30973 5.7007 5.69973C5.3107 6.08973 5.3107 6.71973 5.7007 7.10973L10.5907 11.9997L5.7007 16.8897C5.3107 17.2797 5.3107 17.9097 5.7007 18.2997C6.0907 18.6897 6.7207 18.6897 7.1107 18.2997L12.0007 13.4097L16.8907 18.2997C17.2807 18.6897 17.9107 18.6897 18.3007 18.2997C18.6907 17.9097 18.6907 17.2797 18.3007 16.8897L13.4107 11.9997L18.3007 7.10973C18.6807 6.72973 18.6807 6.08973 18.3007 5.70973Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1098_15553\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const searchIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"w-6 h-6\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z\"\n />\n </svg>\n`\n","export const visibilityOffIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n >\n <path\n d=\"m644-428-58-58q9-47-27-88t-93-32l-58-58q17-8 34.5-12t37.5-4q75 0 127.5 52.5T660-500q0 20-4 37.5T644-428Zm128 126-58-56q38-29 67.5-63.5T832-500q-50-101-143.5-160.5T480-720q-29 0-57 4t-55 12l-62-62q41-17 84-25.5t90-8.5q151 0 269 83.5T920-500q-23 59-60.5 109.5T772-302Zm20 246L624-222q-35 11-70.5 16.5T480-200q-151 0-269-83.5T40-500q21-53 53-98.5t73-81.5L56-792l56-56 736 736-56 56ZM222-624q-29 26-53 57t-41 67q50 101 143.5 160.5T480-280q20 0 39-2.5t39-5.5l-36-38q-11 3-21 4.5t-21 1.5q-75 0-127.5-52.5T300-500q0-11 1.5-21t4.5-21l-84-82Zm319 93Zm-151 75Z\"\n />\n </svg>\n`\n","import type { LanguageDescription } from '@codemirror/language'\nimport type { Extension } from '@codemirror/state'\n\nimport { defaultKeymap, indentWithTab } from '@codemirror/commands'\nimport { keymap } from '@codemirror/view'\nimport {\n codeBlockComponent,\n codeBlockConfig,\n} from '@milkdown/kit/component/code-block'\nimport { basicSetup } from 'codemirror'\n\nimport type { DefineFeature, Icon } from '../shared'\n\nimport { chevronDownIcon, clearIcon, editIcon, searchIcon } from '../../icons'\nimport { visibilityOffIcon } from '../../icons/visibility-off'\n\ninterface CodeMirrorConfig {\n extensions: Extension[]\n languages: LanguageDescription[]\n theme: Extension\n\n expandIcon: Icon\n searchIcon: Icon\n clearSearchIcon: Icon\n\n searchPlaceholder: string\n noResultText: string\n\n renderLanguage: (language: string, selected: boolean) => string\n\n renderPreview: (\n language: string,\n content: string\n ) => string | HTMLElement | null\n\n previewToggleIcon: (previewOnlyMode: boolean) => ReturnType<Icon>\n previewToggleText: (previewOnlyMode: boolean) => string\n previewLabel: () => string\n}\nexport type CodeMirrorFeatureConfig = Partial<CodeMirrorConfig>\n\nexport const defineFeature: DefineFeature<CodeMirrorFeatureConfig> = (\n editor,\n config = {}\n) => {\n editor\n .config(async (ctx) => {\n let { languages, theme } = config\n if (!languages) {\n const { languages: langList } = await import(\n '@codemirror/language-data'\n )\n languages = langList\n }\n if (!theme) {\n const { oneDark } = await import('@codemirror/theme-one-dark')\n theme = oneDark\n }\n ctx.update(codeBlockConfig.key, (defaultConfig) => ({\n extensions: [\n keymap.of(defaultKeymap.concat(indentWithTab)),\n basicSetup,\n theme,\n ...(config?.extensions ?? []),\n ],\n languages,\n\n expandIcon: () => config.expandIcon?.() || chevronDownIcon,\n searchIcon: () => config.searchIcon?.() || searchIcon,\n clearSearchIcon: () => config.clearSearchIcon?.() || clearIcon,\n searchPlaceholder: config.searchPlaceholder || 'Search language',\n noResultText: config.noResultText || 'No result',\n renderLanguage: config.renderLanguage || defaultConfig.renderLanguage,\n renderPreview: config.renderPreview || defaultConfig.renderPreview,\n previewToggleButton: (previewOnlyMode) => {\n const icon =\n config.previewToggleIcon?.(previewOnlyMode) ||\n (previewOnlyMode ? editIcon : visibilityOffIcon)\n const text =\n config.previewToggleText?.(previewOnlyMode) ||\n (previewOnlyMode ? 'Edit' : 'Hide')\n return [icon, text].map((v) => v.trim()).join(' ')\n },\n previewLabel: config.previewLabel || defaultConfig.previewLabel,\n }))\n })\n .use(codeBlockComponent)\n}\n"],"names":["_a"],"mappings":"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"}