@milkdown/crepe 7.11.0 → 7.12.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 (209) hide show
  1. package/lib/cjs/builder/builder.js +107 -0
  2. package/lib/cjs/builder/builder.js.map +1 -0
  3. package/lib/cjs/{index-oVztbsWz.js → feature/block-edit/index.js} +165 -61
  4. package/lib/cjs/feature/block-edit/index.js.map +1 -0
  5. package/lib/cjs/feature/code-mirror/index.js +161 -0
  6. package/lib/cjs/feature/code-mirror/index.js.map +1 -0
  7. package/lib/cjs/feature/cursor/index.js +57 -0
  8. package/lib/cjs/feature/cursor/index.js.map +1 -0
  9. package/lib/cjs/feature/image-block/index.js +123 -0
  10. package/lib/cjs/feature/image-block/index.js.map +1 -0
  11. package/lib/cjs/{index-DdWGHNC3.js → feature/latex/index.js} +111 -24
  12. package/lib/cjs/feature/latex/index.js.map +1 -0
  13. package/lib/cjs/feature/link-tooltip/index.js +124 -0
  14. package/lib/cjs/feature/link-tooltip/index.js.map +1 -0
  15. package/lib/cjs/{index-Dw6lXgs6.js → feature/list-item/index.js} +39 -8
  16. package/lib/cjs/feature/list-item/index.js.map +1 -0
  17. package/lib/cjs/{index-B91KhPew.js → feature/placeholder/index.js} +46 -6
  18. package/lib/cjs/feature/placeholder/index.js.map +1 -0
  19. package/lib/cjs/{index-DEs_IHHy.js → feature/table/index.js} +78 -16
  20. package/lib/cjs/feature/table/index.js.map +1 -0
  21. package/lib/cjs/{index-CqC8Inzm.js → feature/toolbar/index.js} +133 -31
  22. package/lib/cjs/feature/toolbar/index.js.map +1 -0
  23. package/lib/cjs/index/index.js +2464 -0
  24. package/lib/cjs/index/index.js.map +1 -0
  25. package/lib/esm/builder/builder.js +105 -0
  26. package/lib/esm/builder/builder.js.map +1 -0
  27. package/lib/esm/{index-BUOhiAN3.js → feature/block-edit/index.js} +161 -57
  28. package/lib/esm/feature/block-edit/index.js.map +1 -0
  29. package/lib/esm/feature/code-mirror/index.js +159 -0
  30. package/lib/esm/feature/code-mirror/index.js.map +1 -0
  31. package/lib/esm/feature/cursor/index.js +55 -0
  32. package/lib/esm/feature/cursor/index.js.map +1 -0
  33. package/lib/esm/feature/image-block/index.js +121 -0
  34. package/lib/esm/feature/image-block/index.js.map +1 -0
  35. package/lib/esm/{index-CQOlw1Xn.js → feature/latex/index.js} +107 -20
  36. package/lib/esm/feature/latex/index.js.map +1 -0
  37. package/lib/esm/feature/link-tooltip/index.js +122 -0
  38. package/lib/esm/feature/link-tooltip/index.js.map +1 -0
  39. package/lib/esm/{index-E8UgFLeN.js → feature/list-item/index.js} +39 -8
  40. package/lib/esm/feature/list-item/index.js.map +1 -0
  41. package/lib/esm/{index-BCvtgOeI.js → feature/placeholder/index.js} +45 -5
  42. package/lib/esm/feature/placeholder/index.js.map +1 -0
  43. package/lib/esm/{index-CwMVnVeI.js → feature/table/index.js} +78 -16
  44. package/lib/esm/feature/table/index.js.map +1 -0
  45. package/lib/esm/{index-B69WyZeK.js → feature/toolbar/index.js} +128 -26
  46. package/lib/esm/feature/toolbar/index.js.map +1 -0
  47. package/lib/esm/index/index.js +2458 -0
  48. package/lib/esm/index/index.js.map +1 -0
  49. package/lib/theme/common/code-mirror.css +69 -1
  50. package/lib/theme/common/style.css +1 -0
  51. package/lib/theme/crepe/style.css +0 -2
  52. package/lib/theme/crepe-dark/style.css +0 -2
  53. package/lib/theme/frame/style.css +0 -2
  54. package/lib/theme/frame-dark/style.css +0 -2
  55. package/lib/theme/nord/style.css +0 -2
  56. package/lib/theme/nord-dark/style.css +0 -2
  57. package/lib/tsconfig.tsbuildinfo +1 -1
  58. package/lib/types/builder.d.ts +2 -0
  59. package/lib/types/builder.d.ts.map +1 -0
  60. package/lib/types/core/builder.d.ts +23 -0
  61. package/lib/types/core/builder.d.ts.map +1 -0
  62. package/lib/types/core/crepe.d.ts +4 -15
  63. package/lib/types/core/crepe.d.ts.map +1 -1
  64. package/lib/types/core/index.d.ts +2 -1
  65. package/lib/types/core/index.d.ts.map +1 -1
  66. package/lib/types/core/slice.d.ts +6 -4
  67. package/lib/types/core/slice.d.ts.map +1 -1
  68. package/lib/types/default-config/index.d.ts +3 -0
  69. package/lib/types/default-config/index.d.ts.map +1 -0
  70. package/lib/types/feature/block-edit/handle/component.d.ts +2 -3
  71. package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
  72. package/lib/types/feature/block-edit/index.d.ts +20 -20
  73. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  74. package/lib/types/feature/code-mirror/index.d.ts +7 -7
  75. package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
  76. package/lib/types/feature/cursor/index.d.ts +1 -1
  77. package/lib/types/feature/cursor/index.d.ts.map +1 -1
  78. package/lib/types/feature/image-block/index.d.ts +9 -9
  79. package/lib/types/feature/image-block/index.d.ts.map +1 -1
  80. package/lib/types/feature/index.d.ts +2 -4
  81. package/lib/types/feature/index.d.ts.map +1 -1
  82. package/lib/types/feature/latex/index.d.ts +3 -3
  83. package/lib/types/feature/latex/index.d.ts.map +1 -1
  84. package/lib/types/feature/link-tooltip/index.d.ts +6 -6
  85. package/lib/types/feature/link-tooltip/index.d.ts.map +1 -1
  86. package/lib/types/feature/list-item/index.d.ts +5 -5
  87. package/lib/types/feature/list-item/index.d.ts.map +1 -1
  88. package/lib/types/feature/loader.d.ts +4 -0
  89. package/lib/types/feature/loader.d.ts.map +1 -0
  90. package/lib/types/feature/placeholder/index.d.ts +2 -2
  91. package/lib/types/feature/placeholder/index.d.ts.map +1 -1
  92. package/lib/types/feature/shared.d.ts +1 -2
  93. package/lib/types/feature/shared.d.ts.map +1 -1
  94. package/lib/types/feature/table/index.d.ts +11 -11
  95. package/lib/types/feature/table/index.d.ts.map +1 -1
  96. package/lib/types/feature/toolbar/index.d.ts +8 -8
  97. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  98. package/lib/types/icons/index.d.ts +1 -0
  99. package/lib/types/icons/index.d.ts.map +1 -1
  100. package/lib/types/index.d.ts +1 -1
  101. package/lib/types/index.d.ts.map +1 -1
  102. package/lib/types/utils/index.d.ts +0 -1
  103. package/lib/types/utils/index.d.ts.map +1 -1
  104. package/package.json +60 -3
  105. package/src/builder.ts +1 -0
  106. package/src/core/builder.ts +143 -0
  107. package/src/core/crepe.ts +23 -110
  108. package/src/core/index.ts +2 -1
  109. package/src/core/slice.ts +47 -7
  110. package/src/default-config/index.ts +25 -0
  111. package/src/feature/block-edit/handle/component.tsx +6 -8
  112. package/src/feature/block-edit/handle/index.ts +2 -2
  113. package/src/feature/block-edit/index.ts +23 -20
  114. package/src/feature/block-edit/menu/config.ts +19 -19
  115. package/src/feature/code-mirror/index.ts +32 -28
  116. package/src/feature/cursor/index.ts +10 -6
  117. package/src/feature/image-block/index.ts +19 -16
  118. package/src/feature/index.ts +24 -53
  119. package/src/feature/latex/index.ts +8 -10
  120. package/src/feature/latex/inline-tooltip/component.tsx +1 -1
  121. package/src/feature/link-tooltip/index.ts +13 -10
  122. package/src/feature/list-item/index.ts +11 -8
  123. package/src/feature/loader.ts +52 -0
  124. package/src/feature/placeholder/index.ts +5 -2
  125. package/src/feature/shared.ts +1 -3
  126. package/src/feature/table/index.ts +23 -23
  127. package/src/feature/toolbar/component.tsx +9 -9
  128. package/src/feature/toolbar/index.ts +14 -11
  129. package/src/icons/index.ts +1 -0
  130. package/src/index.ts +1 -1
  131. package/src/theme/common/code-mirror.css +61 -1
  132. package/src/theme/common/style.css +1 -0
  133. package/src/theme/crepe/style.css +0 -2
  134. package/src/theme/crepe-dark/style.css +0 -2
  135. package/src/theme/frame/style.css +0 -2
  136. package/src/theme/frame-dark/style.css +0 -2
  137. package/src/theme/nord/style.css +0 -2
  138. package/src/theme/nord-dark/style.css +0 -2
  139. package/src/utils/index.ts +0 -8
  140. package/lib/cjs/confirm-CNveM9QH.js +0 -26
  141. package/lib/cjs/confirm-CNveM9QH.js.map +0 -1
  142. package/lib/cjs/edit-BUtBJHpV.js +0 -24
  143. package/lib/cjs/edit-BUtBJHpV.js.map +0 -1
  144. package/lib/cjs/functions-BAY51plB.js +0 -39
  145. package/lib/cjs/functions-BAY51plB.js.map +0 -1
  146. package/lib/cjs/image-BXLkOVnO.js +0 -24
  147. package/lib/cjs/image-BXLkOVnO.js.map +0 -1
  148. package/lib/cjs/index-B91KhPew.js.map +0 -1
  149. package/lib/cjs/index-BsrJn8Jp.js +0 -41
  150. package/lib/cjs/index-BsrJn8Jp.js.map +0 -1
  151. package/lib/cjs/index-C2CAbC2F.js +0 -26
  152. package/lib/cjs/index-C2CAbC2F.js.map +0 -1
  153. package/lib/cjs/index-CqC8Inzm.js.map +0 -1
  154. package/lib/cjs/index-DEs_IHHy.js.map +0 -1
  155. package/lib/cjs/index-DLIudQKW.js +0 -126
  156. package/lib/cjs/index-DLIudQKW.js.map +0 -1
  157. package/lib/cjs/index-DRKcvY0k.js +0 -188
  158. package/lib/cjs/index-DRKcvY0k.js.map +0 -1
  159. package/lib/cjs/index-DdWGHNC3.js.map +0 -1
  160. package/lib/cjs/index-Dw6lXgs6.js.map +0 -1
  161. package/lib/cjs/index-oVztbsWz.js.map +0 -1
  162. package/lib/cjs/index-xbwf60wt.js +0 -15
  163. package/lib/cjs/index-xbwf60wt.js.map +0 -1
  164. package/lib/cjs/index-xbxqAqH2.js +0 -52
  165. package/lib/cjs/index-xbxqAqH2.js.map +0 -1
  166. package/lib/cjs/index.js +0 -20
  167. package/lib/cjs/index.js.map +0 -1
  168. package/lib/cjs/inline-latex-D0G71cGk.js +0 -54
  169. package/lib/cjs/inline-latex-D0G71cGk.js.map +0 -1
  170. package/lib/cjs/plus-XLomtlXf.js +0 -24
  171. package/lib/cjs/plus-XLomtlXf.js.map +0 -1
  172. package/lib/cjs/remove-Ba-ypwBf.js +0 -17
  173. package/lib/cjs/remove-Ba-ypwBf.js.map +0 -1
  174. package/lib/esm/confirm-DtE-HkVd.js +0 -24
  175. package/lib/esm/confirm-DtE-HkVd.js.map +0 -1
  176. package/lib/esm/edit-D--t_JAb.js +0 -22
  177. package/lib/esm/edit-D--t_JAb.js.map +0 -1
  178. package/lib/esm/functions-DlJPkGmE.js +0 -36
  179. package/lib/esm/functions-DlJPkGmE.js.map +0 -1
  180. package/lib/esm/image-DoB1o1sl.js +0 -22
  181. package/lib/esm/image-DoB1o1sl.js.map +0 -1
  182. package/lib/esm/index-B69WyZeK.js.map +0 -1
  183. package/lib/esm/index-BCvtgOeI.js.map +0 -1
  184. package/lib/esm/index-BPG8iO8t.js +0 -12
  185. package/lib/esm/index-BPG8iO8t.js.map +0 -1
  186. package/lib/esm/index-BUBXHhHG.js +0 -39
  187. package/lib/esm/index-BUBXHhHG.js.map +0 -1
  188. package/lib/esm/index-BUOhiAN3.js.map +0 -1
  189. package/lib/esm/index-Bvz1Yyiz.js +0 -24
  190. package/lib/esm/index-Bvz1Yyiz.js.map +0 -1
  191. package/lib/esm/index-C1aVAv1l.js +0 -124
  192. package/lib/esm/index-C1aVAv1l.js.map +0 -1
  193. package/lib/esm/index-CQOlw1Xn.js.map +0 -1
  194. package/lib/esm/index-CdjziarM.js +0 -183
  195. package/lib/esm/index-CdjziarM.js.map +0 -1
  196. package/lib/esm/index-ChR5Qhyf.js +0 -50
  197. package/lib/esm/index-ChR5Qhyf.js.map +0 -1
  198. package/lib/esm/index-CwMVnVeI.js.map +0 -1
  199. package/lib/esm/index-E8UgFLeN.js.map +0 -1
  200. package/lib/esm/index.js +0 -12
  201. package/lib/esm/index.js.map +0 -1
  202. package/lib/esm/inline-latex-C9IGAXXQ.js +0 -51
  203. package/lib/esm/inline-latex-C9IGAXXQ.js.map +0 -1
  204. package/lib/esm/plus-lrX0Q75O.js +0 -22
  205. package/lib/esm/plus-lrX0Q75O.js.map +0 -1
  206. package/lib/esm/remove-D3g0Cd6_.js +0 -15
  207. package/lib/esm/remove-D3g0Cd6_.js.map +0 -1
  208. /package/lib/theme/{_internal/classic-common.css → common/reset.css} +0 -0
  209. /package/src/theme/{_internal/classic-common.css → common/reset.css} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-oVztbsWz.js","sources":["../../src/icons/bullet-list.ts","../../src/icons/divider.ts","../../src/icons/h1.ts","../../src/icons/h2.ts","../../src/icons/h3.ts","../../src/icons/h4.ts","../../src/icons/h5.ts","../../src/icons/h6.ts","../../src/icons/menu.ts","../../src/icons/ordered-list.ts","../../src/icons/quote.ts","../../src/icons/table.ts","../../src/icons/text.ts","../../src/icons/todo-list.ts","../../src/feature/block-edit/menu/group-builder.ts","../../src/feature/block-edit/menu/utils.ts","../../src/feature/block-edit/menu/config.ts","../../src/feature/block-edit/menu/component.tsx","../../src/feature/block-edit/menu/index.ts","../../src/feature/block-edit/handle/component.tsx","../../src/feature/block-edit/handle/index.ts","../../src/feature/block-edit/index.ts"],"sourcesContent":["export const bulletListIcon = `\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_977_8070)\">\n <path\n d=\"M4 10.5C3.17 10.5 2.5 11.17 2.5 12C2.5 12.83 3.17 13.5 4 13.5C4.83 13.5 5.5 12.83 5.5 12C5.5 11.17 4.83 10.5 4 10.5ZM4 4.5C3.17 4.5 2.5 5.17 2.5 6C2.5 6.83 3.17 7.5 4 7.5C4.83 7.5 5.5 6.83 5.5 6C5.5 5.17 4.83 4.5 4 4.5ZM4 16.5C3.17 16.5 2.5 17.18 2.5 18C2.5 18.82 3.18 19.5 4 19.5C4.82 19.5 5.5 18.82 5.5 18C5.5 17.18 4.83 16.5 4 16.5ZM8 19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H8C7.45 17 7 17.45 7 18C7 18.55 7.45 19 8 19ZM8 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H8C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM7 6C7 6.55 7.45 7 8 7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H8C7.45 5 7 5.45 7 6Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_8070\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const dividerIcon = `\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_977_7900)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19 13H5C4.45 13 4 12.55 4 12C4 11.45 4.45 11 5 11H19C19.55 11 20 11.45 20 12C20 12.55 19.55 13 19 13Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_7900\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h1Icon = `\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_992_5553)\">\n <path\n d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM12 17H14V7H10V9H12V17Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_992_5553\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h2Icon = `\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_992_5559)\">\n <path\n d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15H11V13H13C14.1 13 15 12.11 15 11V9C15 7.89 14.1 7 13 7H9V9H13V11H11C9.9 11 9 11.89 9 13V17H15V15Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_992_5559\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h3Icon = `\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_992_5565)\">\n <path\n d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15V13.5C15 12.67 14.33 12 13.5 12C14.33 12 15 11.33 15 10.5V9C15 7.89 14.1 7 13 7H9V9H13V11H11V13H13V15H9V17H13C14.1 17 15 16.11 15 15Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_992_5565\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h4Icon = `\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_977_7757)\">\n <path\n d=\"M19.04 3H5.04004C3.94004 3 3.04004 3.9 3.04004 5V19C3.04004 20.1 3.94004 21 5.04004 21H19.04C20.14 21 21.04 20.1 21.04 19V5C21.04 3.9 20.14 3 19.04 3ZM19.04 19H5.04004V5H19.04V19ZM13.04 17H15.04V7H13.04V11H11.04V7H9.04004V13H13.04V17Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_7757\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h5Icon = `\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_977_7760)\">\n <path\n d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19ZM15 15V13C15 11.89 14.1 11 13 11H11V9H15V7H9V13H13V15H9V17H13C14.1 17 15 16.11 15 15Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_7760\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const h6Icon = `\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_977_7763)\">\n <path\n d=\"M11 17H13C14.1 17 15 16.11 15 15V13C15 11.89 14.1 11 13 11H11V9H15V7H11C9.9 7 9 7.89 9 9V15C9 16.11 9.9 17 11 17ZM11 13H13V15H11V13ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM19 19H5V5H19V19Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_7763\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const menuIcon = `\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_971_7680)\">\n <path\n d=\"M11 18C11 19.1 10.1 20 9 20C7.9 20 7 19.1 7 18C7 16.9 7.9 16 9 16C10.1 16 11 16.9 11 18ZM9 10C7.9 10 7 10.9 7 12C7 13.1 7.9 14 9 14C10.1 14 11 13.1 11 12C11 10.9 10.1 10 9 10ZM9 4C7.9 4 7 4.9 7 6C7 7.1 7.9 8 9 8C10.1 8 11 7.1 11 6C11 4.9 10.1 4 9 4ZM15 8C16.1 8 17 7.1 17 6C17 4.9 16.1 4 15 4C13.9 4 13 4.9 13 6C13 7.1 13.9 8 15 8ZM15 10C13.9 10 13 10.9 13 12C13 13.1 13.9 14 15 14C16.1 14 17 13.1 17 12C17 10.9 16.1 10 15 10ZM15 16C13.9 16 13 16.9 13 18C13 19.1 13.9 20 15 20C16.1 20 17 19.1 17 18C17 16.9 16.1 16 15 16Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_971_7680\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const orderedListIcon = `\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_977_8067)\">\n <path\n d=\"M8 7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H8C7.45 5 7 5.45 7 6C7 6.55 7.45 7 8 7ZM20 17H8C7.45 17 7 17.45 7 18C7 18.55 7.45 19 8 19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17ZM20 11H8C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11ZM4.5 16H2.5C2.22 16 2 16.22 2 16.5C2 16.78 2.22 17 2.5 17H4V17.5H3.5C3.22 17.5 3 17.72 3 18C3 18.28 3.22 18.5 3.5 18.5H4V19H2.5C2.22 19 2 19.22 2 19.5C2 19.78 2.22 20 2.5 20H4.5C4.78 20 5 19.78 5 19.5V16.5C5 16.22 4.78 16 4.5 16ZM2.5 5H3V7.5C3 7.78 3.22 8 3.5 8C3.78 8 4 7.78 4 7.5V4.5C4 4.22 3.78 4 3.5 4H2.5C2.22 4 2 4.22 2 4.5C2 4.78 2.22 5 2.5 5ZM4.5 10H2.5C2.22 10 2 10.22 2 10.5C2 10.78 2.22 11 2.5 11H3.8L2.12 12.96C2.04 13.05 2 13.17 2 13.28V13.5C2 13.78 2.22 14 2.5 14H4.5C4.78 14 5 13.78 5 13.5C5 13.22 4.78 13 4.5 13H3.2L4.88 11.04C4.96 10.95 5 10.83 5 10.72V10.5C5 10.22 4.78 10 4.5 10Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_8067\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const quoteIcon = `\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_977_7897)\">\n <path\n d=\"M7.17 17C7.68 17 8.15 16.71 8.37 16.26L9.79 13.42C9.93 13.14 10 12.84 10 12.53V8C10 7.45 9.55 7 9 7H5C4.45 7 4 7.45 4 8V12C4 12.55 4.45 13 5 13H7L5.97 15.06C5.52 15.95 6.17 17 7.17 17ZM17.17 17C17.68 17 18.15 16.71 18.37 16.26L19.79 13.42C19.93 13.14 20 12.84 20 12.53V8C20 7.45 19.55 7 19 7H15C14.45 7 14 7.45 14 8V12C14 12.55 14.45 13 15 13H17L15.97 15.06C15.52 15.95 16.17 17 17.17 17Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_7897\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const tableIcon = `\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_977_8078)\">\n <path\n d=\"M20 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H20C21.1 21 22 20.1 22 19V5C22 3.9 21.1 3 20 3ZM20 5V8H5V5H20ZM15 19H10V10H15V19ZM5 10H8V19H5V10ZM17 19V10H20V19H17Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_8078\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const textIcon = `\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_992_5547)\">\n <path\n d=\"M5 5.5C5 6.33 5.67 7 6.5 7H10.5V17.5C10.5 18.33 11.17 19 12 19C12.83 19 13.5 18.33 13.5 17.5V7H17.5C18.33 7 19 6.33 19 5.5C19 4.67 18.33 4 17.5 4H6.5C5.67 4 5 4.67 5 5.5Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_992_5547\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const todoListIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M5.66936 16.3389L9.39244 12.6158C9.54115 12.4671 9.71679 12.3937 9.91936 12.3957C10.1219 12.3976 10.2975 12.4761 10.4463 12.6312C10.5847 12.7823 10.654 12.9585 10.654 13.1599C10.654 13.3613 10.5847 13.5363 10.4463 13.6851L6.32704 17.8197C6.14627 18.0004 5.93538 18.0908 5.69436 18.0908C5.45333 18.0908 5.24243 18.0004 5.06166 17.8197L3.01744 15.7754C2.87899 15.637 2.81136 15.4629 2.81456 15.2533C2.81776 15.0437 2.88859 14.8697 3.02706 14.7312C3.16551 14.5928 3.34008 14.5235 3.55076 14.5235C3.76144 14.5235 3.93494 14.5928 4.07126 14.7312L5.66936 16.3389ZM5.66936 8.72359L9.39244 5.00049C9.54115 4.85177 9.71679 4.77838 9.91936 4.78031C10.1219 4.78223 10.2975 4.86075 10.4463 5.01586C10.5847 5.16691 10.654 5.34314 10.654 5.54454C10.654 5.74592 10.5847 5.92097 10.4463 6.06969L6.32704 10.2043C6.14627 10.3851 5.93538 10.4755 5.69436 10.4755C5.45333 10.4755 5.24243 10.3851 5.06166 10.2043L3.01744 8.16009C2.87899 8.02162 2.81136 7.84759 2.81456 7.63799C2.81776 7.42837 2.88859 7.25433 3.02706 7.11586C3.16551 6.97741 3.34008 6.90819 3.55076 6.90819C3.76144 6.90819 3.93494 6.97741 4.07126 7.11586L5.66936 8.72359ZM13.7597 16.5581C13.5472 16.5581 13.3691 16.4862 13.2253 16.3424C13.0816 16.1986 13.0097 16.0204 13.0097 15.8078C13.0097 15.5952 13.0816 15.4171 13.2253 15.2735C13.3691 15.13 13.5472 15.0582 13.7597 15.0582H20.7597C20.9722 15.0582 21.1503 15.1301 21.2941 15.2739C21.4378 15.4177 21.5097 15.5959 21.5097 15.8085C21.5097 16.0211 21.4378 16.1992 21.2941 16.3427C21.1503 16.4863 20.9722 16.5581 20.7597 16.5581H13.7597ZM13.7597 8.94276C13.5472 8.94276 13.3691 8.87085 13.2253 8.72704C13.0816 8.58324 13.0097 8.40504 13.0097 8.19244C13.0097 7.97985 13.0816 7.80177 13.2253 7.65819C13.3691 7.5146 13.5472 7.44281 13.7597 7.44281H20.7597C20.9722 7.44281 21.1503 7.51471 21.2941 7.65851C21.4378 7.80233 21.5097 7.98053 21.5097 8.19311C21.5097 8.40571 21.4378 8.5838 21.2941 8.72739C21.1503 8.87097 20.9722 8.94276 20.7597 8.94276H13.7597Z\"\n />\n </svg>\n`\n","import type { MenuItem, MenuItemGroup } from './utils'\n\nexport class GroupBuilder {\n #groups: MenuItemGroup<false>[] = []\n\n clear = () => {\n this.#groups = []\n return this\n }\n\n #getGroupInstance = (group: MenuItemGroup<false>) => {\n const groupInstance = {\n group,\n addItem: (key: string, item: Omit<MenuItem, 'key' | 'index'>) => {\n const data = { key, ...item }\n group.items.push(data)\n return groupInstance\n },\n clear: () => {\n group.items = []\n return groupInstance\n },\n }\n return groupInstance\n }\n\n addGroup = (key: string, label: string) => {\n const items: Omit<MenuItem, 'index'>[] = []\n const group: MenuItemGroup<false> = {\n key,\n label,\n items,\n }\n this.#groups.push(group)\n\n return this.#getGroupInstance(group)\n }\n\n getGroup = (key: string) => {\n const group = this.#groups.find((group) => group.key === key)\n if (!group) throw new Error(`Group with key ${key} not found`)\n\n return this.#getGroupInstance(group)\n }\n\n build = () => {\n return this.#groups\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport type { Attrs, NodeType } from '@milkdown/kit/prose/model'\nimport type { Command, Transaction } from '@milkdown/kit/prose/state'\n\nimport { findWrapping } from '@milkdown/kit/prose/transform'\n\nexport interface MenuItem {\n index: number\n key: string\n label: string\n icon: string\n onRun: (ctx: Ctx) => void\n}\n\ntype WithRange<T, HasIndex extends true | false = true> = HasIndex extends true\n ? T & { range: [start: number, end: number] }\n : T\n\nexport type MenuItemGroup<HasIndex extends true | false = true> = WithRange<\n {\n key: string\n label: string\n items: HasIndex extends true ? MenuItem[] : Omit<MenuItem, 'index'>[]\n },\n HasIndex\n>\n\nexport function clearRange(tr: Transaction) {\n const { $from, $to } = tr.selection\n const { pos: from } = $from\n const { pos: to } = $to\n tr = tr.deleteRange(from - $from.node().content.size, to)\n return tr\n}\n\nexport function setBlockType(\n tr: Transaction,\n nodeType: NodeType,\n attrs: Attrs | null = null\n) {\n const { from, to } = tr.selection\n return tr.setBlockType(from, to, nodeType, attrs)\n}\n\nexport function wrapInBlockType(\n tr: Transaction,\n nodeType: NodeType,\n attrs: Attrs | null = null\n) {\n const { $from, $to } = tr.selection\n\n const range = $from.blockRange($to)\n const wrapping = range && findWrapping(range, nodeType, attrs)\n if (!wrapping) return null\n\n return tr.wrap(range, wrapping)\n}\n\nexport function addBlockType(\n tr: Transaction,\n nodeType: NodeType,\n attrs: Attrs | null = null\n) {\n const node = nodeType.createAndFill(attrs)\n if (!node) return null\n\n return tr.replaceSelectionWith(node)\n}\n\nexport function clearContentAndSetBlockType(\n nodeType: NodeType,\n attrs: Attrs | null = null\n): Command {\n return (state, dispatch) => {\n if (dispatch) {\n const tr = setBlockType(clearRange(state.tr), nodeType, attrs)\n dispatch(tr.scrollIntoView())\n }\n return true\n }\n}\n\nexport function clearContentAndWrapInBlockType(\n nodeType: NodeType,\n attrs: Attrs | null = null\n): Command {\n return (state, dispatch) => {\n const tr = wrapInBlockType(clearRange(state.tr), nodeType, attrs)\n if (!tr) return false\n\n if (dispatch) dispatch(tr.scrollIntoView())\n\n return true\n }\n}\n\nexport function clearContentAndAddBlockType(\n nodeType: NodeType,\n attrs: Attrs | null = null\n): Command {\n return (state, dispatch) => {\n const tr = addBlockType(clearRange(state.tr), nodeType, attrs)\n if (!tr) return false\n\n if (dispatch) dispatch(tr.scrollIntoView())\n\n return true\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\n\nimport { imageBlockSchema } from '@milkdown/kit/component/image-block'\nimport { editorViewCtx } from '@milkdown/kit/core'\nimport {\n blockquoteSchema,\n bulletListSchema,\n codeBlockSchema,\n headingSchema,\n hrSchema,\n listItemSchema,\n orderedListSchema,\n paragraphSchema,\n} from '@milkdown/kit/preset/commonmark'\nimport { createTable } from '@milkdown/kit/preset/gfm'\nimport { TextSelection } from '@milkdown/kit/prose/state'\n\nimport type { BlockEditFeatureConfig } from '../index'\nimport type { MenuItemGroup } from './utils'\n\nimport { CrepeFeature } from '../../..'\nimport { FeaturesCtx } from '../../../core/slice'\nimport {\n bulletListIcon,\n codeIcon,\n dividerIcon,\n functionsIcon,\n h1Icon,\n h2Icon,\n h3Icon,\n h4Icon,\n h5Icon,\n h6Icon,\n imageIcon,\n orderedListIcon,\n quoteIcon,\n tableIcon,\n textIcon,\n todoListIcon,\n} from '../../../icons'\nimport { GroupBuilder } from './group-builder'\nimport {\n clearContentAndAddBlockType,\n clearContentAndSetBlockType,\n clearContentAndWrapInBlockType,\n clearRange,\n} from './utils'\n\nexport function getGroups(\n filter?: string,\n config?: BlockEditFeatureConfig,\n ctx?: Ctx\n) {\n const flags = ctx?.get(FeaturesCtx)\n const isLatexEnabled = flags?.includes(CrepeFeature.Latex)\n const isImageBlockEnabled = flags?.includes(CrepeFeature.ImageBlock)\n const isTableEnabled = flags?.includes(CrepeFeature.Table)\n\n const groupBuilder = new GroupBuilder()\n groupBuilder\n .addGroup('text', config?.slashMenuTextGroupLabel ?? 'Text')\n .addItem('text', {\n label: config?.slashMenuTextLabel ?? 'Text',\n icon: config?.slashMenuTextIcon?.() ?? textIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(paragraphSchema.type(ctx))\n command(state, dispatch)\n },\n })\n .addItem('h1', {\n label: config?.slashMenuH1Label ?? 'Heading 1',\n icon: config?.slashMenuH1Icon?.() ?? h1Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 1,\n })\n command(state, dispatch)\n },\n })\n .addItem('h2', {\n label: config?.slashMenuH2Label ?? 'Heading 2',\n icon: config?.slashMenuH2Icon?.() ?? h2Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 2,\n })\n command(state, dispatch)\n },\n })\n .addItem('h3', {\n label: config?.slashMenuH3Label ?? 'Heading 3',\n icon: config?.slashMenuH3Icon?.() ?? h3Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 3,\n })\n command(state, dispatch)\n },\n })\n .addItem('h4', {\n label: config?.slashMenuH4Label ?? 'Heading 4',\n icon: config?.slashMenuH4Icon?.() ?? h4Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 4,\n })\n command(state, dispatch)\n },\n })\n .addItem('h5', {\n label: config?.slashMenuH5Label ?? 'Heading 5',\n icon: config?.slashMenuH5Icon?.() ?? h5Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 5,\n })\n command(state, dispatch)\n },\n })\n .addItem('h6', {\n label: config?.slashMenuH6Label ?? 'Heading 6',\n icon: config?.slashMenuH6Icon?.() ?? h6Icon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndSetBlockType(headingSchema.type(ctx), {\n level: 6,\n })\n command(state, dispatch)\n },\n })\n .addItem('quote', {\n label: config?.slashMenuQuoteLabel ?? 'Quote',\n icon: config?.slashMenuQuoteIcon?.() ?? quoteIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(\n blockquoteSchema.type(ctx)\n )\n command(state, dispatch)\n },\n })\n .addItem('divider', {\n label: config?.slashMenuDividerLabel ?? 'Divider',\n icon: config?.slashMenuDividerIcon?.() ?? dividerIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(hrSchema.type(ctx))\n command(state, dispatch)\n },\n })\n\n groupBuilder\n .addGroup('list', config?.slashMenuListGroupLabel ?? 'List')\n .addItem('bullet-list', {\n label: config?.slashMenuBulletListLabel ?? 'Bullet List',\n icon: config?.slashMenuBulletListIcon?.() ?? bulletListIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(\n bulletListSchema.type(ctx)\n )\n command(state, dispatch)\n },\n })\n .addItem('ordered-list', {\n label: config?.slashMenuOrderedListLabel ?? 'Ordered List',\n icon: config?.slashMenuOrderedListIcon?.() ?? orderedListIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(\n orderedListSchema.type(ctx)\n )\n command(state, dispatch)\n },\n })\n .addItem('todo-list', {\n label: config?.slashMenuTaskListLabel ?? 'Todo List',\n icon: config?.slashMenuTaskListIcon?.() ?? todoListIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndWrapInBlockType(\n listItemSchema.type(ctx),\n { checked: false }\n )\n command(state, dispatch)\n },\n })\n\n const advancedGroup = groupBuilder.addGroup(\n 'advanced',\n config?.slashMenuAdvancedGroupLabel ?? 'Advanced'\n )\n\n if (isImageBlockEnabled) {\n advancedGroup.addItem('image', {\n label: config?.slashMenuImageLabel ?? 'Image',\n icon: config?.slashMenuImageIcon?.() ?? imageIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(imageBlockSchema.type(ctx))\n command(state, dispatch)\n },\n })\n }\n\n advancedGroup.addItem('code', {\n label: config?.slashMenuCodeBlockLabel ?? 'Code',\n icon: config?.slashMenuCodeBlockIcon?.() ?? codeIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(codeBlockSchema.type(ctx))\n command(state, dispatch)\n },\n })\n\n if (isTableEnabled) {\n advancedGroup.addItem('table', {\n label: config?.slashMenuTableLabel ?? 'Table',\n icon: config?.slashMenuTableIcon?.() ?? tableIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n let { tr } = state\n tr = clearRange(tr)\n const from = tr.selection.from\n const table = createTable(ctx, 3, 3)\n tr = tr.replaceSelectionWith(table)\n dispatch(tr)\n\n requestAnimationFrame(() => {\n const docSize = view.state.doc.content.size\n const $pos = view.state.doc.resolve(\n from > docSize ? docSize : from < 0 ? 0 : from\n )\n const selection = TextSelection.near($pos)\n const tr = view.state.tr\n tr.setSelection(selection)\n dispatch(tr.scrollIntoView())\n })\n },\n })\n }\n\n if (isLatexEnabled) {\n advancedGroup.addItem('math', {\n label: config?.slashMenuMathLabel ?? 'Math',\n icon: config?.slashMenuMathIcon?.() ?? functionsIcon,\n onRun: (ctx) => {\n const view = ctx.get(editorViewCtx)\n const { dispatch, state } = view\n\n const command = clearContentAndAddBlockType(codeBlockSchema.type(ctx), {\n language: 'LaTex',\n })\n command(state, dispatch)\n },\n })\n }\n\n config?.buildMenu?.(groupBuilder)\n\n let groups = groupBuilder.build()\n\n if (filter) {\n groups = groups\n .map((group) => {\n const items = group.items.filter((item) =>\n item.label.toLowerCase().includes(filter.toLowerCase())\n )\n\n return {\n ...group,\n items,\n }\n })\n .filter((group) => group.items.length > 0)\n }\n\n const items = groups.flatMap((groups) => groups.items)\n items.forEach((item, index) => {\n Object.assign(item, { index })\n })\n\n groups.reduce((acc, group) => {\n const end = acc + group.items.length\n Object.assign(group, {\n range: [acc, end],\n })\n return end\n }, 0)\n\n return {\n groups: groups as MenuItemGroup[],\n size: items.length,\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\n\nimport { Icon } from '@milkdown/kit/component'\nimport {\n computed,\n defineComponent,\n onUnmounted,\n ref,\n watch,\n watchEffect,\n type Ref,\n h,\n} from 'vue'\n\nimport type { BlockEditFeatureConfig } from '..'\n\nimport { getGroups } from './config'\n\nh\n\ntype MenuProps = {\n ctx: Ctx\n show: Ref<boolean>\n filter: Ref<string>\n hide: () => void\n config?: BlockEditFeatureConfig\n}\n\nexport const Menu = defineComponent<MenuProps>({\n props: {\n ctx: {\n type: Object,\n required: true,\n },\n show: {\n type: Object,\n required: true,\n },\n filter: {\n type: Object,\n required: true,\n },\n hide: {\n type: Function,\n required: true,\n },\n config: {\n type: Object,\n required: false,\n },\n },\n setup({ ctx, show, filter, hide, config }) {\n const host = ref<HTMLElement>()\n const groupInfo = computed(() => getGroups(filter.value, config, ctx))\n const hoverIndex = ref(0)\n const prevMousePosition = ref({ x: -999, y: -999 })\n\n const onPointerMove = (e: MouseEvent) => {\n const { x, y } = e\n prevMousePosition.value = { x, y }\n }\n\n watch([groupInfo, show], () => {\n const { size } = groupInfo.value\n if (size === 0 && show.value) hide()\n else if (hoverIndex.value >= size) hoverIndex.value = 0\n })\n\n const onHover = (\n index: number | ((prev: number) => number),\n after?: (index: number) => void\n ) => {\n const prevHoverIndex = hoverIndex.value\n const next = typeof index === 'function' ? index(prevHoverIndex) : index\n after?.(next)\n hoverIndex.value = next\n }\n\n const scrollToIndex = (index: number) => {\n const target = host.value?.querySelector<HTMLElement>(\n `[data-index=\"${index}\"]`\n )\n const scrollRoot = host.value?.querySelector<HTMLElement>('.menu-groups')\n\n if (!target || !scrollRoot) return\n\n scrollRoot.scrollTop = target.offsetTop - scrollRoot.offsetTop\n }\n\n const runByIndex = (index: number) => {\n const item = groupInfo.value.groups\n .flatMap((group) => group.items)\n .at(index)\n if (item && ctx) item.onRun(ctx)\n\n hide()\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n const { size, groups } = groupInfo.value\n if (e.key === 'Escape') {\n e.preventDefault()\n hide?.()\n return\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n return onHover(\n (index) => (index < size - 1 ? index + 1 : index),\n scrollToIndex\n )\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n return onHover(\n (index) => (index <= 0 ? index : index - 1),\n scrollToIndex\n )\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n return onHover((index) => {\n const group = groups.find(\n (group) => group.range[0] <= index && group.range[1] > index\n )\n if (!group) return index\n\n const prevGroup = groups[groups.indexOf(group) - 1]\n if (!prevGroup) return index\n\n return prevGroup.range[1] - 1\n }, scrollToIndex)\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault()\n return onHover((index) => {\n const group = groups.find(\n (group) => group.range[0] <= index && group.range[1] > index\n )\n if (!group) return index\n\n const nextGroup = groups[groups.indexOf(group) + 1]\n if (!nextGroup) return index\n\n return nextGroup.range[0]\n }, scrollToIndex)\n }\n\n if (e.key === 'Enter') {\n e.preventDefault()\n runByIndex(hoverIndex.value)\n }\n }\n\n const getOnPointerEnter = (index: number) => (e: MouseEvent) => {\n const prevPos = prevMousePosition.value\n if (!prevPos) return\n\n const { x, y } = e\n if (x === prevPos.x && y === prevPos.y) return\n\n onHover(index)\n }\n\n watchEffect(() => {\n const isShown = show.value\n if (isShown) {\n window.addEventListener('keydown', onKeydown, { capture: true })\n } else {\n window.removeEventListener('keydown', onKeydown, { capture: true })\n }\n })\n onUnmounted(() => {\n window.removeEventListener('keydown', onKeydown, { capture: true })\n })\n\n return () => {\n return (\n <div ref={host} onPointerdown={(e) => e.preventDefault()}>\n <nav class=\"tab-group\">\n <ul>\n {groupInfo.value.groups.map((group) => (\n <li\n key={group.key}\n onPointerdown={() => onHover(group.range[0], scrollToIndex)}\n class={\n hoverIndex.value >= group.range[0] &&\n hoverIndex.value < group.range[1]\n ? 'selected'\n : ''\n }\n >\n {group.label}\n </li>\n ))}\n </ul>\n </nav>\n <div class=\"menu-groups\" onPointermove={onPointerMove}>\n {groupInfo.value.groups.map((group) => (\n <div key={group.key} class=\"menu-group\">\n <h6>{group.label}</h6>\n <ul>\n {group.items.map((item) => (\n <li\n key={item.key}\n data-index={item.index}\n class={hoverIndex.value === item.index ? 'hover' : ''}\n onPointerenter={getOnPointerEnter(item.index)}\n onPointerdown={() => {\n host.value\n ?.querySelector(`[data-index=\"${item.index}\"]`)\n ?.classList.add('active')\n }}\n onPointerup={() => {\n host.value\n ?.querySelector(`[data-index=\"${item.index}\"]`)\n ?.classList.remove('active')\n runByIndex(item.index)\n }}\n >\n <Icon icon={item.icon} />\n <span>{item.label}</span>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n )\n }\n },\n})\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\n\nimport { SlashProvider, slashFactory } from '@milkdown/kit/plugin/slash'\nimport {\n TextSelection,\n type PluginView,\n type Selection,\n} from '@milkdown/kit/prose/state'\nimport { $ctx } from '@milkdown/kit/utils'\nimport { createApp, ref, type App, type Ref } from 'vue'\n\nimport type { BlockEditFeatureConfig } from '../index'\n\nimport { isInCodeBlock, isInList } from '../../../utils'\nimport { Menu } from './component'\n\nexport const menu = slashFactory('CREPE_MENU')\n\nexport interface MenuAPI {\n show: (pos: number) => void\n hide: () => void\n}\n\nexport const menuAPI = $ctx(\n {\n show: () => {},\n hide: () => {},\n } as MenuAPI,\n 'menuAPICtx'\n)\n\nexport function configureMenu(ctx: Ctx, config?: BlockEditFeatureConfig) {\n ctx.set(menu.key, {\n view: (view) => new MenuView(ctx, view, config),\n })\n}\n\nclass MenuView implements PluginView {\n readonly #content: HTMLElement\n readonly #app: App\n readonly #filter: Ref<string>\n readonly #slashProvider: SlashProvider\n #programmaticallyPos: number | null = null\n\n constructor(ctx: Ctx, view: EditorView, config?: BlockEditFeatureConfig) {\n const content = document.createElement('div')\n content.classList.add('milkdown-slash-menu')\n const show = ref(false)\n\n const filter = ref('')\n this.#filter = filter\n\n const hide = this.hide\n\n const app = createApp(Menu, {\n ctx,\n config,\n show,\n filter,\n hide,\n })\n this.#app = app\n app.mount(content)\n\n this.#content = content\n // oxlint-disable-next-line ts/no-this-alias\n const self = this\n this.#slashProvider = new SlashProvider({\n content: this.#content,\n debounce: 20,\n shouldShow(this: SlashProvider, view: EditorView) {\n if (\n isInCodeBlock(view.state.selection) ||\n isInList(view.state.selection)\n )\n return false\n\n const currentText = this.getContent(view, (node) =>\n ['paragraph', 'heading'].includes(node.type.name)\n )\n\n if (currentText == null) return false\n\n if (!isSelectionAtEndOfNode(view.state.selection)) {\n return false\n }\n\n const pos = self.#programmaticallyPos\n\n filter.value = currentText.startsWith('/')\n ? currentText.slice(1)\n : currentText\n\n if (typeof pos === 'number') {\n const maxSize = view.state.doc.nodeSize - 2\n const validPos = Math.min(pos, maxSize)\n if (\n view.state.doc.resolve(validPos).node() !==\n view.state.doc.resolve(view.state.selection.from).node()\n ) {\n self.#programmaticallyPos = null\n\n return false\n }\n\n return true\n }\n\n if (!currentText.startsWith('/')) return false\n\n return true\n },\n offset: 10,\n })\n\n this.#slashProvider.onShow = () => {\n show.value = true\n }\n this.#slashProvider.onHide = () => {\n show.value = false\n }\n this.update(view)\n\n ctx.set(menuAPI.key, {\n show: (pos) => this.show(pos),\n hide: () => this.hide(),\n })\n }\n\n update = (view: EditorView) => {\n this.#slashProvider.update(view)\n }\n\n show = (pos: number) => {\n this.#programmaticallyPos = pos\n this.#filter.value = ''\n this.#slashProvider.show()\n }\n\n hide = () => {\n this.#programmaticallyPos = null\n this.#slashProvider.hide()\n }\n\n destroy = () => {\n this.#slashProvider.destroy()\n this.#app.unmount()\n this.#content.remove()\n }\n}\n\nfunction isSelectionAtEndOfNode(selection: Selection) {\n if (!(selection instanceof TextSelection)) return false\n\n const { $head } = selection\n const parent = $head.parent\n const offset = $head.parentOffset\n\n return offset === parent.content.size\n}\n","import { Icon } from '@milkdown/kit/component'\nimport { defineComponent, ref, h, Fragment } from 'vue'\n\nimport type { Icon as IconType } from '../../shared'\n\nh\nFragment\n\nexport interface BlockHandleProps {\n onAdd: () => void\n addIcon: IconType\n handleIcon: IconType\n}\n\nexport const BlockHandle = defineComponent<BlockHandleProps>({\n props: {\n onAdd: {\n type: Function,\n required: true,\n },\n addIcon: {\n type: Function,\n required: true,\n },\n handleIcon: {\n type: Function,\n required: true,\n },\n },\n setup(props) {\n const addButton = ref<HTMLDivElement>()\n\n return () => {\n return (\n <>\n <div\n ref={addButton}\n class=\"operation-item\"\n onPointerdown={(e) => {\n e.preventDefault()\n e.stopPropagation()\n addButton.value?.classList.add('active')\n }}\n onPointerup={(e) => {\n e.preventDefault()\n e.stopPropagation()\n addButton.value?.classList.remove('active')\n props.onAdd()\n }}\n >\n <Icon icon={props.addIcon()} />\n </div>\n <div class=\"operation-item\">\n <Icon icon={props.handleIcon()} />\n </div>\n </>\n )\n }\n },\n})\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport type { PluginView } from '@milkdown/kit/prose/state'\n\nimport { editorViewCtx } from '@milkdown/kit/core'\nimport { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { paragraphSchema } from '@milkdown/kit/preset/commonmark'\nimport { findParent } from '@milkdown/kit/prose'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport { createApp, type App } from 'vue'\n\nimport type { BlockEditFeatureConfig } from '../index'\n\nimport { menuIcon, plusIcon } from '../../../icons'\nimport { menuAPI } from '../menu'\nimport { BlockHandle } from './component'\n\nexport class BlockHandleView implements PluginView {\n #content: HTMLElement\n #provider: BlockProvider\n #app: App\n readonly #ctx: Ctx\n\n constructor(ctx: Ctx, config?: BlockEditFeatureConfig) {\n this.#ctx = ctx\n const content = document.createElement('div')\n content.classList.add('milkdown-block-handle')\n const app = createApp(BlockHandle, {\n onAdd: this.onAdd,\n addIcon: config?.handleAddIcon ?? (() => plusIcon),\n handleIcon: config?.handleDragIcon ?? (() => menuIcon),\n })\n app.mount(content)\n this.#app = app\n this.#content = content\n this.#provider = new BlockProvider({\n ctx,\n content,\n getOffset: () => 16,\n getPlacement: ({ active, blockDom }) => {\n if (active.node.type.name === 'heading') return 'left'\n\n let totalDescendant = 0\n active.node.descendants((node) => {\n totalDescendant += node.childCount\n })\n const dom = active.el\n const domRect = dom.getBoundingClientRect()\n const handleRect = blockDom.getBoundingClientRect()\n const style = window.getComputedStyle(dom)\n const paddingTop = Number.parseInt(style.paddingTop, 10) || 0\n const paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0\n const height = domRect.height - paddingTop - paddingBottom\n const handleHeight = handleRect.height\n return totalDescendant > 2 || handleHeight < height\n ? 'left-start'\n : 'left'\n },\n })\n this.update()\n }\n\n update = () => {\n this.#provider.update()\n }\n\n destroy = () => {\n this.#provider.destroy()\n this.#content.remove()\n this.#app.unmount()\n }\n\n onAdd = () => {\n const ctx = this.#ctx\n const view = ctx.get(editorViewCtx)\n if (!view.hasFocus()) view.focus()\n\n const { state, dispatch } = view\n const active = this.#provider.active\n if (!active) return\n\n const $pos = active.$pos\n const pos = $pos.pos + active.node.nodeSize\n let tr = state.tr.insert(pos, paragraphSchema.type(ctx).create())\n tr = tr.setSelection(TextSelection.near(tr.doc.resolve(pos)))\n dispatch(tr.scrollIntoView())\n\n this.#provider.hide()\n ctx.get(menuAPI.key).show(tr.selection.from)\n }\n}\n\nexport function configureBlockHandle(\n ctx: Ctx,\n config?: BlockEditFeatureConfig\n) {\n ctx.set(blockConfig.key, {\n filterNodes: (pos) => {\n const filter = findParent((node) =>\n ['table', 'blockquote', 'math_inline'].includes(node.type.name)\n )(pos)\n if (filter) return false\n\n return true\n },\n })\n ctx.set(block.key, {\n view: () => new BlockHandleView(ctx, config),\n })\n}\n","import { block } from '@milkdown/kit/plugin/block'\n\nimport type { DefineFeature, Icon } from '../shared'\nimport type { GroupBuilder } from './menu/group-builder'\n\nimport { configureBlockHandle } from './handle'\nimport { configureMenu, menu, menuAPI } from './menu'\n\ninterface BlockEditConfig {\n handleAddIcon: Icon\n handleDragIcon: Icon\n buildMenu: (builder: GroupBuilder) => void\n\n slashMenuTextGroupLabel: string\n slashMenuTextIcon: Icon\n slashMenuTextLabel: string\n slashMenuH1Icon: Icon\n slashMenuH1Label: string\n slashMenuH2Icon: Icon\n slashMenuH2Label: string\n slashMenuH3Icon: Icon\n slashMenuH3Label: string\n slashMenuH4Icon: Icon\n slashMenuH4Label: string\n slashMenuH5Icon: Icon\n slashMenuH5Label: string\n slashMenuH6Icon: Icon\n slashMenuH6Label: string\n slashMenuQuoteIcon: Icon\n slashMenuQuoteLabel: string\n slashMenuDividerIcon: Icon\n slashMenuDividerLabel: string\n\n slashMenuListGroupLabel: string\n slashMenuBulletListIcon: Icon\n slashMenuBulletListLabel: string\n slashMenuOrderedListIcon: Icon\n slashMenuOrderedListLabel: string\n slashMenuTaskListIcon: Icon\n slashMenuTaskListLabel: string\n\n slashMenuAdvancedGroupLabel: string\n slashMenuImageIcon: Icon\n slashMenuImageLabel: string\n slashMenuCodeBlockIcon: Icon\n slashMenuCodeBlockLabel: string\n slashMenuTableIcon: Icon\n slashMenuTableLabel: string\n slashMenuMathIcon: Icon\n slashMenuMathLabel: string\n}\n\nexport type BlockEditFeatureConfig = Partial<BlockEditConfig>\n\nexport const defineFeature: DefineFeature<BlockEditFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => configureBlockHandle(ctx, config))\n .config((ctx) => configureMenu(ctx, config))\n .use(menuAPI)\n .use(block)\n .use(menu)\n}\n"],"names":["__privateAdd","__privateSet","__privateGet","group","findWrapping","FeaturesCtx","CrepeFeature","ctx","editorViewCtx","paragraphSchema","headingSchema","blockquoteSchema","hrSchema","bulletListSchema","orderedListSchema","listItemSchema","imageIcon","imageBlockSchema","codeIcon","codeBlockSchema","state","createTable","TextSelection","tr","functionsIcon","items","groups","defineComponent","ref","computed","watch","watchEffect","onUnmounted","h","Icon","_content","_app","slashFactory","$ctx","createApp","SlashProvider","view","isInCodeBlock","isInList","Fragment","plusIcon","BlockProvider","blockConfig","findParent","block"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- function isInCodeBlock(selection) {
4
- const type = selection.$from.parent.type;
5
- return type.name === "code_block";
6
- }
7
- function isInList(selection) {
8
- var _a;
9
- const type = (_a = selection.$from.node(selection.$from.depth - 1)) == null ? void 0 : _a.type;
10
- return (type == null ? void 0 : type.name) === "list_item";
11
- }
12
-
13
- exports.isInCodeBlock = isInCodeBlock;
14
- exports.isInList = isInList;
15
- //# sourceMappingURL=index-xbwf60wt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-xbwf60wt.js","sources":["../../src/utils/index.ts"],"sourcesContent":["import type { Selection } from '@milkdown/kit/prose/state'\n\nexport function isInCodeBlock(selection: Selection) {\n const type = selection.$from.parent.type\n return type.name === 'code_block'\n}\n\nexport function isInList(selection: Selection) {\n const type = selection.$from.node(selection.$from.depth - 1)?.type\n return type?.name === 'list_item'\n}\n\nexport function defIfNotExists(\n tagName: string,\n element: CustomElementConstructor\n) {\n if (customElements.get(tagName) == null)\n customElements.define(tagName, element)\n}\n"],"names":[],"mappings":";;AAEO,SAAS,cAAc,SAAsB,EAAA;AAClD,EAAM,MAAA,IAAA,GAAO,SAAU,CAAA,KAAA,CAAM,MAAO,CAAA,IAAA;AACpC,EAAA,OAAO,KAAK,IAAS,KAAA,YAAA;AACvB;AAEO,SAAS,SAAS,SAAsB,EAAA;AAP/C,EAAA,IAAA,EAAA;AAQE,EAAM,MAAA,IAAA,GAAA,CAAO,eAAU,KAAM,CAAA,IAAA,CAAK,UAAU,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,KAA9C,IAAiD,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA;AAC9D,EAAA,OAAA,CAAO,6BAAM,IAAS,MAAA,WAAA;AACxB;;;;;"}
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var imageBlock = require('@milkdown/kit/component/image-block');
4
- var imageInline = require('@milkdown/kit/component/image-inline');
5
- var confirm = require('./confirm-CNveM9QH.js');
6
- var image = require('./image-BXLkOVnO.js');
7
-
8
- const captionIcon = `
9
- <svg
10
- xmlns="http://www.w3.org/2000/svg"
11
- width="32"
12
- height="32"
13
- viewBox="0 0 24 24"
14
- >
15
- <path
16
- fill="currentColor"
17
- d="M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12z"
18
- />
19
- </svg>
20
- `;
21
-
22
- const defineFeature = (editor, config) => {
23
- editor.config((ctx) => {
24
- ctx.update(imageInline.inlineImageConfig.key, (value) => {
25
- var _a, _b, _c, _d, _e, _f;
26
- return {
27
- uploadButton: (_a = config == null ? void 0 : config.inlineUploadButton) != null ? _a : () => "Upload",
28
- imageIcon: (_b = config == null ? void 0 : config.inlineImageIcon) != null ? _b : () => image.imageIcon,
29
- confirmButton: (_c = config == null ? void 0 : config.inlineConfirmButton) != null ? _c : () => confirm.confirmIcon,
30
- uploadPlaceholderText: (_d = config == null ? void 0 : config.inlineUploadPlaceholderText) != null ? _d : "or paste link",
31
- onUpload: (_f = (_e = config == null ? void 0 : config.inlineOnUpload) != null ? _e : config == null ? void 0 : config.onUpload) != null ? _f : value.onUpload,
32
- proxyDomURL: config == null ? void 0 : config.proxyDomURL
33
- };
34
- });
35
- ctx.update(imageBlock.imageBlockConfig.key, (value) => {
36
- var _a, _b, _c, _d, _e, _f, _g, _h;
37
- return {
38
- uploadButton: (_a = config == null ? void 0 : config.blockUploadButton) != null ? _a : () => "Upload file",
39
- imageIcon: (_b = config == null ? void 0 : config.blockImageIcon) != null ? _b : () => image.imageIcon,
40
- captionIcon: (_c = config == null ? void 0 : config.blockCaptionIcon) != null ? _c : () => captionIcon,
41
- confirmButton: (_d = config == null ? void 0 : config.blockConfirmButton) != null ? _d : () => "Confirm",
42
- captionPlaceholderText: (_e = config == null ? void 0 : config.blockCaptionPlaceholderText) != null ? _e : "Write Image Caption",
43
- uploadPlaceholderText: (_f = config == null ? void 0 : config.blockUploadPlaceholderText) != null ? _f : "or paste link",
44
- onUpload: (_h = (_g = config == null ? void 0 : config.blockOnUpload) != null ? _g : config == null ? void 0 : config.onUpload) != null ? _h : value.onUpload,
45
- proxyDomURL: config == null ? void 0 : config.proxyDomURL
46
- };
47
- });
48
- }).use(imageBlock.imageBlockComponent).use(imageInline.imageInlineComponent);
49
- };
50
-
51
- exports.defineFeature = defineFeature;
52
- //# sourceMappingURL=index-xbxqAqH2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-xbxqAqH2.js","sources":["../../src/icons/caption.ts","../../src/feature/image-block/index.ts"],"sourcesContent":["export const captionIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12z\"\n />\n </svg>\n`\n","import {\n imageBlockComponent,\n imageBlockConfig,\n} from '@milkdown/kit/component/image-block'\nimport {\n imageInlineComponent,\n inlineImageConfig,\n} from '@milkdown/kit/component/image-inline'\n\nimport type { DefineFeature, Icon } from '../shared'\n\nimport { captionIcon, imageIcon, confirmIcon } from '../../icons'\n\ninterface ImageBlockConfig {\n onUpload: (file: File) => Promise<string>\n proxyDomURL: (url: string) => Promise<string> | string\n\n inlineImageIcon: Icon\n inlineConfirmButton: Icon\n inlineUploadButton: Icon\n inlineUploadPlaceholderText: string\n inlineOnUpload: (file: File) => Promise<string>\n\n blockImageIcon: Icon\n blockConfirmButton: Icon\n blockCaptionIcon: Icon\n blockUploadButton: Icon\n blockCaptionPlaceholderText: string\n blockUploadPlaceholderText: string\n blockOnUpload: (file: File) => Promise<string>\n}\n\nexport type ImageBlockFeatureConfig = Partial<ImageBlockConfig>\n\nexport const defineFeature: DefineFeature<ImageBlockFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n ctx.update(inlineImageConfig.key, (value) => ({\n uploadButton: config?.inlineUploadButton ?? (() => 'Upload'),\n imageIcon: config?.inlineImageIcon ?? (() => imageIcon),\n confirmButton: config?.inlineConfirmButton ?? (() => confirmIcon),\n uploadPlaceholderText:\n config?.inlineUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.inlineOnUpload ?? config?.onUpload ?? value.onUpload,\n proxyDomURL: config?.proxyDomURL,\n }))\n ctx.update(imageBlockConfig.key, (value) => ({\n uploadButton: config?.blockUploadButton ?? (() => 'Upload file'),\n imageIcon: config?.blockImageIcon ?? (() => imageIcon),\n captionIcon: config?.blockCaptionIcon ?? (() => captionIcon),\n confirmButton: config?.blockConfirmButton ?? (() => 'Confirm'),\n captionPlaceholderText:\n config?.blockCaptionPlaceholderText ?? 'Write Image Caption',\n uploadPlaceholderText:\n config?.blockUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.blockOnUpload ?? config?.onUpload ?? value.onUpload,\n proxyDomURL: config?.proxyDomURL,\n }))\n })\n .use(imageBlockComponent)\n .use(imageInlineComponent)\n}\n"],"names":["inlineImageConfig","imageIcon","confirmIcon","imageBlockConfig","imageBlockComponent","imageInlineComponent"],"mappings":"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"}
package/lib/cjs/index.js DELETED
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-DRKcvY0k.js');
4
- require('@milkdown/kit/core');
5
- require('@milkdown/kit/plugin/clipboard');
6
- require('@milkdown/kit/plugin/history');
7
- require('@milkdown/kit/plugin/indent');
8
- require('@milkdown/kit/plugin/listener');
9
- require('@milkdown/kit/plugin/trailing');
10
- require('@milkdown/kit/preset/commonmark');
11
- require('@milkdown/kit/preset/gfm');
12
- require('@milkdown/kit/utils');
13
- require('@milkdown/kit/ctx');
14
-
15
-
16
-
17
- exports.Crepe = index.Crepe;
18
- exports.CrepeFeature = index.CrepeFeature;
19
- exports.crepeCtx = index.crepeCtx;
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -1,54 +0,0 @@
1
- 'use strict';
2
-
3
- var utils = require('@milkdown/kit/utils');
4
- var katex = require('katex');
5
-
6
- const mathInlineId = "math_inline";
7
- const mathInlineSchema = utils.$nodeSchema(mathInlineId, () => ({
8
- group: "inline",
9
- inline: true,
10
- draggable: true,
11
- atom: true,
12
- attrs: {
13
- value: {
14
- default: ""
15
- }
16
- },
17
- parseDOM: [
18
- {
19
- tag: `span[data-type="${mathInlineId}"]`,
20
- getAttrs: (dom) => {
21
- var _a;
22
- return {
23
- value: (_a = dom.dataset.value) != null ? _a : ""
24
- };
25
- }
26
- }
27
- ],
28
- toDOM: (node) => {
29
- const code = node.attrs.value;
30
- const dom = document.createElement("span");
31
- dom.dataset.type = mathInlineId;
32
- dom.dataset.value = code;
33
- katex.render(code, dom, {
34
- throwOnError: false
35
- });
36
- return dom;
37
- },
38
- parseMarkdown: {
39
- match: (node) => node.type === "inlineMath",
40
- runner: (state, node, type) => {
41
- state.addNode(type, { value: node.value });
42
- }
43
- },
44
- toMarkdown: {
45
- match: (node) => node.type.name === mathInlineId,
46
- runner: (state, node) => {
47
- state.addNode("inlineMath", void 0, node.attrs.value);
48
- }
49
- }
50
- }));
51
-
52
- exports.mathInlineId = mathInlineId;
53
- exports.mathInlineSchema = mathInlineSchema;
54
- //# sourceMappingURL=inline-latex-D0G71cGk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-latex-D0G71cGk.js","sources":["../../src/feature/latex/inline-latex.ts"],"sourcesContent":["import { $nodeSchema } from '@milkdown/kit/utils'\nimport katex from 'katex'\n\nexport const mathInlineId = 'math_inline'\n\n/// Schema for inline math node.\n/// Add support for:\n///\n/// ```markdown\n/// $a^2 + b^2 = c^2$\n/// ```\nexport const mathInlineSchema = $nodeSchema(mathInlineId, () => ({\n group: 'inline',\n inline: true,\n draggable: true,\n atom: true,\n attrs: {\n value: {\n default: '',\n },\n },\n parseDOM: [\n {\n tag: `span[data-type=\"${mathInlineId}\"]`,\n getAttrs: (dom) => {\n return {\n value: (dom as HTMLElement).dataset.value ?? '',\n }\n },\n },\n ],\n toDOM: (node) => {\n const code: string = node.attrs.value\n const dom = document.createElement('span')\n dom.dataset.type = mathInlineId\n dom.dataset.value = code\n katex.render(code, dom, {\n throwOnError: false,\n })\n\n return dom\n },\n parseMarkdown: {\n match: (node) => node.type === 'inlineMath',\n runner: (state, node, type) => {\n state.addNode(type, { value: node.value as string })\n },\n },\n toMarkdown: {\n match: (node) => node.type.name === mathInlineId,\n runner: (state, node) => {\n state.addNode('inlineMath', undefined, node.attrs.value)\n },\n },\n}))\n"],"names":["$nodeSchema"],"mappings":";;;;;AAGO,MAAM,YAAe,GAAA;AAQf,MAAA,gBAAA,GAAmBA,iBAAY,CAAA,YAAA,EAAc,OAAO;AAAA,EAC/D,KAAO,EAAA,QAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,SAAW,EAAA,IAAA;AAAA,EACX,IAAM,EAAA,IAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,KAAO,EAAA;AAAA,MACL,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR;AAAA,MACE,GAAA,EAAK,mBAAmB,YAAY,CAAA,EAAA,CAAA;AAAA,MACpC,QAAA,EAAU,CAAC,GAAQ,KAAA;AAxBzB,QAAA,IAAA,EAAA;AAyBQ,QAAO,OAAA;AAAA,UACL,KAAQ,EAAA,CAAA,EAAA,GAAA,GAAA,CAAoB,OAAQ,CAAA,KAAA,KAA5B,IAAqC,GAAA,EAAA,GAAA;AAAA,SAC/C;AAAA;AACF;AACF,GACF;AAAA,EACA,KAAA,EAAO,CAAC,IAAS,KAAA;AACf,IAAM,MAAA,IAAA,GAAe,KAAK,KAAM,CAAA,KAAA;AAChC,IAAM,MAAA,GAAA,GAAM,QAAS,CAAA,aAAA,CAAc,MAAM,CAAA;AACzC,IAAA,GAAA,CAAI,QAAQ,IAAO,GAAA,YAAA;AACnB,IAAA,GAAA,CAAI,QAAQ,KAAQ,GAAA,IAAA;AACpB,IAAM,KAAA,CAAA,MAAA,CAAO,MAAM,GAAK,EAAA;AAAA,MACtB,YAAc,EAAA;AAAA,KACf,CAAA;AAED,IAAO,OAAA,GAAA;AAAA,GACT;AAAA,EACA,aAAe,EAAA;AAAA,IACb,KAAO,EAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAS,KAAA,YAAA;AAAA,IAC/B,MAAQ,EAAA,CAAC,KAAO,EAAA,IAAA,EAAM,IAAS,KAAA;AAC7B,MAAA,KAAA,CAAM,QAAQ,IAAM,EAAA,EAAE,KAAO,EAAA,IAAA,CAAK,OAAiB,CAAA;AAAA;AACrD,GACF;AAAA,EACA,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,CAAC,IAAS,KAAA,IAAA,CAAK,KAAK,IAAS,KAAA,YAAA;AAAA,IACpC,MAAA,EAAQ,CAAC,KAAA,EAAO,IAAS,KAAA;AACvB,MAAA,KAAA,CAAM,OAAQ,CAAA,YAAA,EAAc,MAAW,EAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AACzD;AAEJ,CAAE,CAAA;;;;;"}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- const plusIcon = `
4
- <svg
5
- xmlns="http://www.w3.org/2000/svg"
6
- width="24"
7
- height="24"
8
- viewBox="0 0 24 24"
9
- >
10
- <g clip-path="url(#clip0_971_7676)">
11
- <path
12
- d="M18 13H13V18C13 18.55 12.55 19 12 19C11.45 19 11 18.55 11 18V13H6C5.45 13 5 12.55 5 12C5 11.45 5.45 11 6 11H11V6C11 5.45 11.45 5 12 5C12.55 5 13 5.45 13 6V11H18C18.55 11 19 11.45 19 12C19 12.55 18.55 13 18 13Z"
13
- />
14
- </g>
15
- <defs>
16
- <clipPath id="clip0_971_7676">
17
- <rect width="24" height="24" />
18
- </clipPath>
19
- </defs>
20
- </svg>
21
- `;
22
-
23
- exports.plusIcon = plusIcon;
24
- //# sourceMappingURL=plus-XLomtlXf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plus-XLomtlXf.js","sources":["../../src/icons/plus.ts"],"sourcesContent":["export const plusIcon = `\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_971_7676)\">\n <path\n d=\"M18 13H13V18C13 18.55 12.55 19 12 19C11.45 19 11 18.55 11 18V13H6C5.45 13 5 12.55 5 12C5 11.45 5.45 11 6 11H11V6C11 5.45 11.45 5 12 5C12.55 5 13 5.45 13 6V11H18C18.55 11 19 11.45 19 12C19 12.55 18.55 13 18 13Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_971_7676\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n"],"names":[],"mappings":";;AAAO,MAAM,QAAW,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const removeIcon = `
4
- <svg
5
- xmlns="http://www.w3.org/2000/svg"
6
- width="24"
7
- height="24"
8
- viewBox="0 0 24 24"
9
- >
10
- <path
11
- d="M7.30775 20.4997C6.81058 20.4997 6.385 20.3227 6.031 19.9687C5.677 19.6147 5.5 19.1892 5.5 18.692V5.99973H5.25C5.0375 5.99973 4.85942 5.92782 4.71575 5.78398C4.57192 5.64015 4.5 5.46198 4.5 5.24948C4.5 5.03682 4.57192 4.85873 4.71575 4.71523C4.85942 4.57157 5.0375 4.49973 5.25 4.49973H9C9 4.2549 9.08625 4.04624 9.25875 3.87374C9.43108 3.7014 9.63967 3.61523 9.8845 3.61523H14.1155C14.3603 3.61523 14.5689 3.7014 14.7413 3.87374C14.9138 4.04624 15 4.2549 15 4.49973H18.75C18.9625 4.49973 19.1406 4.57165 19.2843 4.71548C19.4281 4.85932 19.5 5.03748 19.5 5.24998C19.5 5.46265 19.4281 5.64073 19.2843 5.78423C19.1406 5.9279 18.9625 5.99973 18.75 5.99973H18.5V18.692C18.5 19.1892 18.323 19.6147 17.969 19.9687C17.615 20.3227 17.1894 20.4997 16.6923 20.4997H7.30775ZM17 5.99973H7V18.692C7 18.7818 7.02883 18.8556 7.0865 18.9132C7.14417 18.9709 7.21792 18.9997 7.30775 18.9997H16.6923C16.7821 18.9997 16.8558 18.9709 16.9135 18.9132C16.9712 18.8556 17 18.7818 17 18.692V5.99973ZM10.1543 16.9997C10.3668 16.9997 10.5448 16.9279 10.6885 16.7842C10.832 16.6404 10.9037 16.4622 10.9037 16.2497V8.74973C10.9037 8.53723 10.8318 8.35907 10.688 8.21523C10.5443 8.07157 10.3662 7.99973 10.1535 7.99973C9.941 7.99973 9.76292 8.07157 9.61925 8.21523C9.47575 8.35907 9.404 8.53723 9.404 8.74973V16.2497C9.404 16.4622 9.47583 16.6404 9.6195 16.7842C9.76333 16.9279 9.94158 16.9997 10.1543 16.9997ZM13.8465 16.9997C14.059 16.9997 14.2371 16.9279 14.3807 16.7842C14.5243 16.6404 14.596 16.4622 14.596 16.2497V8.74973C14.596 8.53723 14.5242 8.35907 14.3805 8.21523C14.2367 8.07157 14.0584 7.99973 13.8458 7.99973C13.6333 7.99973 13.4552 8.07157 13.3115 8.21523C13.168 8.35907 13.0962 8.53723 13.0962 8.74973V16.2497C13.0962 16.4622 13.1682 16.6404 13.312 16.7842C13.4557 16.9279 13.6338 16.9997 13.8465 16.9997Z"
12
- />
13
- </svg>
14
- `;
15
-
16
- exports.removeIcon = removeIcon;
17
- //# sourceMappingURL=remove-Ba-ypwBf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-Ba-ypwBf.js","sources":["../../src/icons/remove.ts"],"sourcesContent":["export const removeIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M7.30775 20.4997C6.81058 20.4997 6.385 20.3227 6.031 19.9687C5.677 19.6147 5.5 19.1892 5.5 18.692V5.99973H5.25C5.0375 5.99973 4.85942 5.92782 4.71575 5.78398C4.57192 5.64015 4.5 5.46198 4.5 5.24948C4.5 5.03682 4.57192 4.85873 4.71575 4.71523C4.85942 4.57157 5.0375 4.49973 5.25 4.49973H9C9 4.2549 9.08625 4.04624 9.25875 3.87374C9.43108 3.7014 9.63967 3.61523 9.8845 3.61523H14.1155C14.3603 3.61523 14.5689 3.7014 14.7413 3.87374C14.9138 4.04624 15 4.2549 15 4.49973H18.75C18.9625 4.49973 19.1406 4.57165 19.2843 4.71548C19.4281 4.85932 19.5 5.03748 19.5 5.24998C19.5 5.46265 19.4281 5.64073 19.2843 5.78423C19.1406 5.9279 18.9625 5.99973 18.75 5.99973H18.5V18.692C18.5 19.1892 18.323 19.6147 17.969 19.9687C17.615 20.3227 17.1894 20.4997 16.6923 20.4997H7.30775ZM17 5.99973H7V18.692C7 18.7818 7.02883 18.8556 7.0865 18.9132C7.14417 18.9709 7.21792 18.9997 7.30775 18.9997H16.6923C16.7821 18.9997 16.8558 18.9709 16.9135 18.9132C16.9712 18.8556 17 18.7818 17 18.692V5.99973ZM10.1543 16.9997C10.3668 16.9997 10.5448 16.9279 10.6885 16.7842C10.832 16.6404 10.9037 16.4622 10.9037 16.2497V8.74973C10.9037 8.53723 10.8318 8.35907 10.688 8.21523C10.5443 8.07157 10.3662 7.99973 10.1535 7.99973C9.941 7.99973 9.76292 8.07157 9.61925 8.21523C9.47575 8.35907 9.404 8.53723 9.404 8.74973V16.2497C9.404 16.4622 9.47583 16.6404 9.6195 16.7842C9.76333 16.9279 9.94158 16.9997 10.1543 16.9997ZM13.8465 16.9997C14.059 16.9997 14.2371 16.9279 14.3807 16.7842C14.5243 16.6404 14.596 16.4622 14.596 16.2497V8.74973C14.596 8.53723 14.5242 8.35907 14.3805 8.21523C14.2367 8.07157 14.0584 7.99973 13.8458 7.99973C13.6333 7.99973 13.4552 8.07157 13.3115 8.21523C13.168 8.35907 13.0962 8.53723 13.0962 8.74973V16.2497C13.0962 16.4622 13.1682 16.6404 13.312 16.7842C13.4557 16.9279 13.6338 16.9997 13.8465 16.9997Z\"\n />\n </svg>\n`\n"],"names":[],"mappings":";;AAAO,MAAM,UAAa,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -1,24 +0,0 @@
1
- const confirmIcon = `
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- fill="none"
8
- >
9
- <g clip-path="url(#clip0_1013_1606)">
10
- <path
11
- d="M9.00012 16.1998L5.50012 12.6998C5.11012 12.3098 4.49012 12.3098 4.10012 12.6998C3.71012 13.0898 3.71012 13.7098 4.10012 14.0998L8.29012 18.2898C8.68012 18.6798 9.31012 18.6798 9.70012 18.2898L20.3001 7.69982C20.6901 7.30982 20.6901 6.68982 20.3001 6.29982C19.9101 5.90982 19.2901 5.90982 18.9001 6.29982L9.00012 16.1998Z"
12
- fill="#817567"
13
- />
14
- </g>
15
- <defs>
16
- <clipPath id="clip0_1013_1606">
17
- <rect width="24" height="24" />
18
- </clipPath>
19
- </defs>
20
- </svg>
21
- `;
22
-
23
- export { confirmIcon as c };
24
- //# sourceMappingURL=confirm-DtE-HkVd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirm-DtE-HkVd.js","sources":["../../src/icons/confirm.ts"],"sourcesContent":["export const confirmIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_1013_1606)\">\n <path\n d=\"M9.00012 16.1998L5.50012 12.6998C5.11012 12.3098 4.49012 12.3098 4.10012 12.6998C3.71012 13.0898 3.71012 13.7098 4.10012 14.0998L8.29012 18.2898C8.68012 18.6798 9.31012 18.6798 9.70012 18.2898L20.3001 7.69982C20.6901 7.30982 20.6901 6.68982 20.3001 6.29982C19.9101 5.90982 19.2901 5.90982 18.9001 6.29982L9.00012 16.1998Z\"\n fill=\"#817567\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1013_1606\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n"],"names":[],"mappings":"AAAO,MAAM,WAAc,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -1,22 +0,0 @@
1
- const editIcon = `
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- >
8
- <g clip-path="url(#clip0_1013_1585)">
9
- <path
10
- d="M14.06 9.02L14.98 9.94L5.92 19H5V18.08L14.06 9.02ZM17.66 3C17.41 3 17.15 3.1 16.96 3.29L15.13 5.12L18.88 8.87L20.71 7.04C21.1 6.65 21.1 6.02 20.71 5.63L18.37 3.29C18.17 3.09 17.92 3 17.66 3ZM14.06 6.19L3 17.25V21H6.75L17.81 9.94L14.06 6.19Z"
11
- />
12
- </g>
13
- <defs>
14
- <clipPath id="clip0_1013_1585">
15
- <rect width="24" height="24" />
16
- </clipPath>
17
- </defs>
18
- </svg>
19
- `;
20
-
21
- export { editIcon as e };
22
- //# sourceMappingURL=edit-D--t_JAb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit-D--t_JAb.js","sources":["../../src/icons/edit.ts"],"sourcesContent":["export const editIcon = `\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_1013_1585)\">\n <path\n d=\"M14.06 9.02L14.98 9.94L5.92 19H5V18.08L14.06 9.02ZM17.66 3C17.41 3 17.15 3.1 16.96 3.29L15.13 5.12L18.88 8.87L20.71 7.04C21.1 6.65 21.1 6.02 20.71 5.63L18.37 3.29C18.17 3.09 17.92 3 17.66 3ZM14.06 6.19L3 17.25V21H6.75L17.81 9.94L14.06 6.19Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1013_1585\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n"],"names":[],"mappings":"AAAO,MAAM,QAAW,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -1,36 +0,0 @@
1
- const codeIcon = `
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- >
8
- <g clip-path="url(#clip0_977_8081)">
9
- <path
10
- d="M9.4 16.6L4.8 12L9.4 7.4L8 6L2 12L8 18L9.4 16.6ZM14.6 16.6L19.2 12L14.6 7.4L16 6L22 12L16 18L14.6 16.6Z"
11
- />
12
- </g>
13
- <defs>
14
- <clipPath id="clip0_977_8081">
15
- <rect width="24" height="24" />
16
- </clipPath>
17
- </defs>
18
- </svg>
19
- `;
20
-
21
- const functionsIcon = `
22
- <svg
23
- xmlns="http://www.w3.org/2000/svg"
24
- width="32"
25
- height="32"
26
- viewBox="0 0 24 24"
27
- >
28
- <path
29
- fill="currentColor"
30
- d="M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z"
31
- />
32
- </svg>
33
- `;
34
-
35
- export { codeIcon as c, functionsIcon as f };
36
- //# sourceMappingURL=functions-DlJPkGmE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions-DlJPkGmE.js","sources":["../../src/icons/code.ts","../../src/icons/functions.ts"],"sourcesContent":["export const codeIcon = `\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_977_8081)\">\n <path\n d=\"M9.4 16.6L4.8 12L9.4 7.4L8 6L2 12L8 18L9.4 16.6ZM14.6 16.6L19.2 12L14.6 7.4L16 6L22 12L16 18L14.6 16.6Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_8081\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const functionsIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z\"\n />\n </svg>\n`\n"],"names":[],"mappings":"AAAO,MAAM,QAAW,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;ACAjB,MAAM,aAAgB,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -1,22 +0,0 @@
1
- const imageIcon = `
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="24"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- >
8
- <g clip-path="url(#clip0_977_8075)">
9
- <path
10
- d="M19 5V19H5V5H19ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM14.14 11.86L11.14 15.73L9 13.14L6 17H18L14.14 11.86Z"
11
- />
12
- </g>
13
- <defs>
14
- <clipPath id="clip0_977_8075">
15
- <rect width="24" height="24" />
16
- </clipPath>
17
- </defs>
18
- </svg>
19
- `;
20
-
21
- export { imageIcon as i };
22
- //# sourceMappingURL=image-DoB1o1sl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-DoB1o1sl.js","sources":["../../src/icons/image.ts"],"sourcesContent":["export const imageIcon = `\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_977_8075)\">\n <path\n d=\"M19 5V19H5V5H19ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM14.14 11.86L11.14 15.73L9 13.14L6 17H18L14.14 11.86Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_977_8075\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n"],"names":[],"mappings":"AAAO,MAAM,SAAY,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}