@milkdown/crepe 7.6.1 → 7.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/{todo-list-V4JWO5-M.js → functions-Dk90yOUc.js} +16 -1
  3. package/lib/cjs/functions-Dk90yOUc.js.map +1 -0
  4. package/lib/cjs/{index-YUwSTgPK.js → index-AlHHvSR_.js} +3 -3
  5. package/lib/cjs/{index-YUwSTgPK.js.map → index-AlHHvSR_.js.map} +1 -1
  6. package/lib/cjs/{index-C4JjdSvv.js → index-BuSAwj4j.js} +3 -3
  7. package/lib/cjs/{index-C4JjdSvv.js.map → index-BuSAwj4j.js.map} +1 -1
  8. package/lib/cjs/{index-koRsjvWB.js → index-CfM-XVoy.js} +14 -28
  9. package/lib/cjs/index-CfM-XVoy.js.map +1 -0
  10. package/lib/cjs/index-CvmlYYXX.js +38 -0
  11. package/lib/cjs/{index-nDWnWxJ8.js.map → index-CvmlYYXX.js.map} +1 -1
  12. package/lib/cjs/index-D3lu92SA.js +39 -0
  13. package/lib/cjs/{index-C6EzkFZ_.js.map → index-D3lu92SA.js.map} +1 -1
  14. package/lib/cjs/{index-B4NxKjEA.js → index-D9Fk7rLS.js} +140 -108
  15. package/lib/cjs/index-D9Fk7rLS.js.map +1 -0
  16. package/lib/cjs/{index-D0OPKY6K.js → index-DQll67YS.js} +8 -8
  17. package/lib/cjs/{index-D0OPKY6K.js.map → index-DQll67YS.js.map} +1 -1
  18. package/lib/cjs/{index-BOmVuuoY.js → index-Dub20F3z.js} +3 -3
  19. package/lib/cjs/{index-BOmVuuoY.js.map → index-Dub20F3z.js.map} +1 -1
  20. package/lib/cjs/{index-DkHBuNoK.js → index-dpBsp7Eo.js} +16 -12
  21. package/lib/cjs/index-dpBsp7Eo.js.map +1 -0
  22. package/lib/cjs/{index-DnFbvtbD.js → index-gk_gJ489.js} +17 -17
  23. package/lib/cjs/index-gk_gJ489.js.map +1 -0
  24. package/lib/cjs/{index-8COAwUnB.js → index-hPk2gbSt.js} +5 -5
  25. package/lib/cjs/{index-8COAwUnB.js.map → index-hPk2gbSt.js.map} +1 -1
  26. package/lib/cjs/index-nrFkJeLW.js +26 -0
  27. package/lib/cjs/{index-6oBtF_11.js.map → index-nrFkJeLW.js.map} +1 -1
  28. package/lib/cjs/index.js +2 -1
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/cjs/{inline-latex-CwU8Nsfj.js → inline-latex-D0G71cGk.js} +2 -2
  31. package/lib/cjs/{inline-latex-CwU8Nsfj.js.map → inline-latex-D0G71cGk.js.map} +1 -1
  32. package/lib/esm/{todo-list-B78GeGtK.js → functions-Bsik6ikd.js} +16 -2
  33. package/lib/esm/functions-Bsik6ikd.js.map +1 -0
  34. package/lib/esm/{index-BxpDIDRS.js → index-B3KiKTSt.js} +5 -5
  35. package/lib/esm/{index-BxpDIDRS.js.map → index-B3KiKTSt.js.map} +1 -1
  36. package/lib/esm/index-BFsG6770.js +36 -0
  37. package/lib/esm/{index-BOzN8fKq.js.map → index-BFsG6770.js.map} +1 -1
  38. package/lib/esm/{index-BUFg1FSH.js → index-BMNULyuq.js} +16 -13
  39. package/lib/esm/index-BMNULyuq.js.map +1 -0
  40. package/lib/esm/index-CBrOT1fW.js +37 -0
  41. package/lib/esm/{index-C8tiRHTF.js.map → index-CBrOT1fW.js.map} +1 -1
  42. package/lib/esm/{index-DroARb55.js → index-COPjfgxB.js} +15 -29
  43. package/lib/esm/index-COPjfgxB.js.map +1 -0
  44. package/lib/esm/{index-C7Xr_l-d.js → index-Cuk7cL-r.js} +5 -5
  45. package/lib/esm/{index-C7Xr_l-d.js.map → index-Cuk7cL-r.js.map} +1 -1
  46. package/lib/esm/{index-C7_YCA3P.js → index-CxJ9fxJm.js} +3 -3
  47. package/lib/esm/{index-C7_YCA3P.js.map → index-CxJ9fxJm.js.map} +1 -1
  48. package/lib/esm/{index-CD8fvrRC.js → index-D6fLMv29.js} +3 -3
  49. package/lib/esm/{index-CD8fvrRC.js.map → index-D6fLMv29.js.map} +1 -1
  50. package/lib/esm/{index-C5_dM0IB.js → index-DO_xaFxN.js} +16 -16
  51. package/lib/esm/index-DO_xaFxN.js.map +1 -0
  52. package/lib/esm/{index-WCe-Xh61.js → index-DOrkOhki.js} +3 -3
  53. package/lib/esm/{index-WCe-Xh61.js.map → index-DOrkOhki.js.map} +1 -1
  54. package/lib/esm/index-DcRgwPLd.js +24 -0
  55. package/lib/esm/{index-CEup1V8i.js.map → index-DcRgwPLd.js.map} +1 -1
  56. package/lib/esm/{index-HnGoJxjJ.js → index-Yr5XBaro.js} +138 -106
  57. package/lib/esm/index-Yr5XBaro.js.map +1 -0
  58. package/lib/esm/index.js +1 -1
  59. package/lib/esm/{inline-latex-BLd2QrJC.js → inline-latex-C9IGAXXQ.js} +2 -2
  60. package/lib/esm/{inline-latex-BLd2QrJC.js.map → inline-latex-C9IGAXXQ.js.map} +1 -1
  61. package/lib/theme/common/image-block.css +2 -1
  62. package/lib/theme/crepe/style.css +6 -5
  63. package/lib/theme/crepe-dark/style.css +6 -3
  64. package/lib/theme/frame/style.css +6 -6
  65. package/lib/theme/frame-dark/style.css +6 -4
  66. package/lib/theme/nord/style.css +6 -6
  67. package/lib/theme/nord-dark/style.css +6 -4
  68. package/lib/types/core/crepe.d.ts.map +1 -1
  69. package/lib/types/core/index.d.ts +1 -0
  70. package/lib/types/core/index.d.ts.map +1 -1
  71. package/lib/types/core/slice.d.ts +2 -0
  72. package/lib/types/core/slice.d.ts.map +1 -1
  73. package/lib/types/feature/block-edit/index.d.ts +2 -0
  74. package/lib/types/feature/block-edit/index.d.ts.map +1 -1
  75. package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
  76. package/lib/types/feature/block-edit/menu/config.d.ts +2 -1
  77. package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
  78. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  79. package/lib/types/icons/index.d.ts +1 -0
  80. package/lib/types/icons/index.d.ts.map +1 -1
  81. package/lib/types/index.d.ts +1 -1
  82. package/lib/types/index.d.ts.map +1 -1
  83. package/package.json +3 -3
  84. package/src/core/crepe.ts +4 -1
  85. package/src/core/index.ts +1 -0
  86. package/src/core/slice.ts +3 -0
  87. package/src/feature/block-edit/index.ts +2 -0
  88. package/src/feature/block-edit/menu/component.ts +4 -1
  89. package/src/feature/block-edit/menu/config.ts +43 -9
  90. package/src/feature/latex/block-latex.ts +1 -1
  91. package/src/feature/toolbar/component.ts +1 -1
  92. package/src/icons/index.ts +1 -0
  93. package/src/index.ts +1 -1
  94. package/src/theme/common/image-block.css +2 -1
  95. package/src/theme/crepe/style.css +6 -5
  96. package/src/theme/crepe-dark/style.css +6 -3
  97. package/src/theme/frame/style.css +6 -6
  98. package/src/theme/frame-dark/style.css +6 -4
  99. package/src/theme/nord/style.css +6 -6
  100. package/src/theme/nord-dark/style.css +6 -4
  101. package/lib/cjs/index-6oBtF_11.js +0 -26
  102. package/lib/cjs/index-B4NxKjEA.js.map +0 -1
  103. package/lib/cjs/index-C6EzkFZ_.js +0 -39
  104. package/lib/cjs/index-DkHBuNoK.js.map +0 -1
  105. package/lib/cjs/index-DnFbvtbD.js.map +0 -1
  106. package/lib/cjs/index-koRsjvWB.js.map +0 -1
  107. package/lib/cjs/index-nDWnWxJ8.js +0 -38
  108. package/lib/cjs/todo-list-V4JWO5-M.js.map +0 -1
  109. package/lib/esm/index-BOzN8fKq.js +0 -36
  110. package/lib/esm/index-BUFg1FSH.js.map +0 -1
  111. package/lib/esm/index-C5_dM0IB.js.map +0 -1
  112. package/lib/esm/index-C8tiRHTF.js +0 -37
  113. package/lib/esm/index-CEup1V8i.js +0 -24
  114. package/lib/esm/index-DroARb55.js.map +0 -1
  115. package/lib/esm/index-HnGoJxjJ.js.map +0 -1
  116. package/lib/esm/todo-list-B78GeGtK.js.map +0 -1
@@ -5,7 +5,7 @@ var codemirror = require('codemirror');
5
5
  var view = require('@codemirror/view');
6
6
  var commands = require('@codemirror/commands');
7
7
  var atomico = require('atomico');
8
- var todoList = require('./todo-list-V4JWO5-M.js');
8
+ var functions = require('./functions-Dk90yOUc.js');
9
9
 
10
10
  const visibilityOffIcon = atomico.html`
11
11
  <svg
@@ -38,12 +38,12 @@ const defineFeature = (editor, config = {}) => {
38
38
  view.keymap.of(commands.defaultKeymap.concat(commands.indentWithTab)),
39
39
  codemirror.basicSetup,
40
40
  theme,
41
- ...(_a = config == null ? undefined : config.extensions) != null ? _a : []
41
+ ...(_a = config == null ? void 0 : config.extensions) != null ? _a : []
42
42
  ],
43
43
  languages,
44
- expandIcon: config.expandIcon || (() => todoList.chevronDownIcon),
45
- searchIcon: config.searchIcon || (() => todoList.searchIcon),
46
- clearSearchIcon: config.clearSearchIcon || (() => todoList.clearIcon),
44
+ expandIcon: config.expandIcon || (() => functions.chevronDownIcon),
45
+ searchIcon: config.searchIcon || (() => functions.searchIcon),
46
+ clearSearchIcon: config.clearSearchIcon || (() => functions.clearIcon),
47
47
  searchPlaceholder: config.searchPlaceholder || "Search language",
48
48
  noResultText: config.noResultText || "No result",
49
49
  renderLanguage: config.renderLanguage || defaultConfig.renderLanguage,
@@ -51,8 +51,8 @@ const defineFeature = (editor, config = {}) => {
51
51
  previewToggleButton: (previewOnlyMode) => {
52
52
  var _a2, _b;
53
53
  return atomico.html`
54
- ${((_a2 = config.previewToggleIcon) == null ? undefined : _a2.call(config, previewOnlyMode)) || (previewOnlyMode ? todoList.editIcon : visibilityOffIcon)}
55
- ${((_b = config.previewToggleText) == null ? undefined : _b.call(config, previewOnlyMode)) || (previewOnlyMode ? "Edit" : "Hide")}
54
+ ${((_a2 = config.previewToggleIcon) == null ? void 0 : _a2.call(config, previewOnlyMode)) || (previewOnlyMode ? functions.editIcon : visibilityOffIcon)}
55
+ ${((_b = config.previewToggleText) == null ? void 0 : _b.call(config, previewOnlyMode)) || (previewOnlyMode ? "Edit" : "Hide")}
56
56
  `;
57
57
  },
58
58
  previewLabel: config.previewLabel || defaultConfig.previewLabel
@@ -62,4 +62,4 @@ const defineFeature = (editor, config = {}) => {
62
62
  };
63
63
 
64
64
  exports.defineFeature = defineFeature;
65
- //# sourceMappingURL=index-D0OPKY6K.js.map
65
+ //# sourceMappingURL=index-DQll67YS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-D0OPKY6K.js","sources":["../../src/icons/visibility-off.ts","../../src/feature/code-mirror/index.ts"],"sourcesContent":["import { html } from 'atomico'\n\nexport const visibilityOffIcon = html`\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 {\n codeBlockComponent,\n codeBlockConfig,\n} from '@milkdown/kit/component/code-block'\nimport type { LanguageDescription } from '@codemirror/language'\nimport type { Extension } from '@codemirror/state'\nimport { basicSetup } from 'codemirror'\nimport { keymap } from '@codemirror/view'\nimport { defaultKeymap, indentWithTab } from '@codemirror/commands'\nimport { html } from 'atomico'\nimport type { DefineFeature, Icon } from '../shared'\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: (\n language: string,\n selected: boolean\n ) => ReturnType<typeof html> | 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) => ReturnType<typeof html>\n previewLabel: () => ReturnType<typeof html>\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 return html`\n ${config.previewToggleIcon?.(previewOnlyMode) ||\n (previewOnlyMode ? editIcon : visibilityOffIcon)}\n ${config.previewToggleText?.(previewOnlyMode) ||\n (previewOnlyMode ? 'Edit' : 'Hide')}\n `\n },\n previewLabel: config.previewLabel || defaultConfig.previewLabel,\n }))\n })\n .use(codeBlockComponent)\n}\n"],"names":["html","codeBlockConfig","keymap","defaultKeymap","indentWithTab","basicSetup","chevronDownIcon","searchIcon","clearIcon","_a","editIcon","codeBlockComponent"],"mappings":";;;;;;;;;AAEO,MAAM,iBAAoB,GAAAA,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;ACwC1B,MAAM,aAAwD,GAAA,CACnE,MACA,EAAA,MAAA,GAAS,EACN,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,OAAO,GAAQ,KAAA;AACrB,IAAI,IAAA,EAAE,SAAW,EAAA,KAAA,EAAU,GAAA,MAAA;AAC3B,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAa,GAAA,MAAM,OACpC,2BACF,CAAA;AACA,MAAY,SAAA,GAAA,QAAA;AAAA;AAEd,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,MAAM,OAAO,4BAA4B,CAAA;AAC7D,MAAQ,KAAA,GAAA,OAAA;AAAA;AAEV,IAAA,GAAA,CAAI,MAAO,CAAAC,yBAAA,CAAgB,GAAK,EAAA,CAAC,aAAe,KAAA;AA3DtD,MAAA,IAAA,EAAA;AA2D0D,MAAA,OAAA;AAAA,QAClD,UAAY,EAAA;AAAA,UACVC,WAAO,CAAA,EAAA,CAAGC,sBAAc,CAAA,MAAA,CAAOC,sBAAa,CAAC,CAAA;AAAA,UAC7CC,qBAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAI,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAsB;AAAC,SAC7B;AAAA,QACA,SAAA;AAAA,QAEA,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,wBAAA,CAAA;AAAA,QACxC,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,mBAAA,CAAA;AAAA,QACxC,eAAA,EAAiB,MAAO,CAAA,eAAA,KAAoB,MAAMC,kBAAA,CAAA;AAAA,QAClD,iBAAA,EAAmB,OAAO,iBAAqB,IAAA,iBAAA;AAAA,QAC/C,YAAA,EAAc,OAAO,YAAgB,IAAA,WAAA;AAAA,QACrC,cAAA,EAAgB,MAAO,CAAA,cAAA,IAAkB,aAAc,CAAA,cAAA;AAAA,QACvD,aAAA,EAAe,MAAO,CAAA,aAAA,IAAiB,aAAc,CAAA,aAAA;AAAA,QACrD,mBAAA,EAAqB,CAAC,eAAoB,KAAA;AA3ElD,UAAA,IAAAC,GAAA,EAAA,EAAA;AA4EU,UAAO,OAAAT,YAAA;AAAA,YACHS,EAAAA,CAAAA,CAAAA,GAAAA,GAAA,OAAO,iBAAP,KAAA,IAAA,GAAA,SAAA,GAAAA,IAAA,IAA2B,CAAA,MAAA,EAAA,eAAA,CAAA,MAC5B,eAAkB,GAAAC,iBAAA,GAAW,iBAAkB,CAAA;AAAA,YAAA,EAAA,CAAA,CAC9C,YAAO,iBAAP,KAAA,IAAA,GAAA,SAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAA2B,eAC5B,CAAA,MAAA,eAAA,GAAkB,SAAS,MAAO,CAAA;AAAA,UAAA,CAAA;AAAA,SAEvC;AAAA,QACA,YAAA,EAAc,MAAO,CAAA,YAAA,IAAgB,aAAc,CAAA;AAAA,OACrD;AAAA,KAAE,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAIC,4BAAkB,CAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"index-DQll67YS.js","sources":["../../src/icons/visibility-off.ts","../../src/feature/code-mirror/index.ts"],"sourcesContent":["import { html } from 'atomico'\n\nexport const visibilityOffIcon = html`\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 {\n codeBlockComponent,\n codeBlockConfig,\n} from '@milkdown/kit/component/code-block'\nimport type { LanguageDescription } from '@codemirror/language'\nimport type { Extension } from '@codemirror/state'\nimport { basicSetup } from 'codemirror'\nimport { keymap } from '@codemirror/view'\nimport { defaultKeymap, indentWithTab } from '@codemirror/commands'\nimport { html } from 'atomico'\nimport type { DefineFeature, Icon } from '../shared'\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: (\n language: string,\n selected: boolean\n ) => ReturnType<typeof html> | 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) => ReturnType<typeof html>\n previewLabel: () => ReturnType<typeof html>\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 return html`\n ${config.previewToggleIcon?.(previewOnlyMode) ||\n (previewOnlyMode ? editIcon : visibilityOffIcon)}\n ${config.previewToggleText?.(previewOnlyMode) ||\n (previewOnlyMode ? 'Edit' : 'Hide')}\n `\n },\n previewLabel: config.previewLabel || defaultConfig.previewLabel,\n }))\n })\n .use(codeBlockComponent)\n}\n"],"names":["html","codeBlockConfig","keymap","defaultKeymap","indentWithTab","basicSetup","chevronDownIcon","searchIcon","clearIcon","_a","editIcon","codeBlockComponent"],"mappings":";;;;;;;;;AAEO,MAAM,iBAAoB,GAAAA,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;ACwC1B,MAAM,aAAwD,GAAA,CACnE,MACA,EAAA,MAAA,GAAS,EACN,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,OAAO,GAAQ,KAAA;AACrB,IAAI,IAAA,EAAE,SAAW,EAAA,KAAA,EAAU,GAAA,MAAA;AAC3B,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAa,GAAA,MAAM,OACpC,2BACF,CAAA;AACA,MAAY,SAAA,GAAA,QAAA;AAAA;AAEd,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,MAAM,OAAO,4BAA4B,CAAA;AAC7D,MAAQ,KAAA,GAAA,OAAA;AAAA;AAEV,IAAA,GAAA,CAAI,MAAO,CAAAC,yBAAA,CAAgB,GAAK,EAAA,CAAC,aAAe,KAAA;AA3DtD,MAAA,IAAA,EAAA;AA2D0D,MAAA,OAAA;AAAA,QAClD,UAAY,EAAA;AAAA,UACVC,WAAO,CAAA,EAAA,CAAGC,sBAAc,CAAA,MAAA,CAAOC,sBAAa,CAAC,CAAA;AAAA,UAC7CC,qBAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAI,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAsB;AAAC,SAC7B;AAAA,QACA,SAAA;AAAA,QAEA,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,yBAAA,CAAA;AAAA,QACxC,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,oBAAA,CAAA;AAAA,QACxC,eAAA,EAAiB,MAAO,CAAA,eAAA,KAAoB,MAAMC,mBAAA,CAAA;AAAA,QAClD,iBAAA,EAAmB,OAAO,iBAAqB,IAAA,iBAAA;AAAA,QAC/C,YAAA,EAAc,OAAO,YAAgB,IAAA,WAAA;AAAA,QACrC,cAAA,EAAgB,MAAO,CAAA,cAAA,IAAkB,aAAc,CAAA,cAAA;AAAA,QACvD,aAAA,EAAe,MAAO,CAAA,aAAA,IAAiB,aAAc,CAAA,aAAA;AAAA,QACrD,mBAAA,EAAqB,CAAC,eAAoB,KAAA;AA3ElD,UAAA,IAAAC,GAAA,EAAA,EAAA;AA4EU,UAAO,OAAAT,YAAA;AAAA,YACHS,EAAAA,CAAAA,CAAAA,GAAAA,GAAA,OAAO,iBAAP,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAA,IAA2B,CAAA,MAAA,EAAA,eAAA,CAAA,MAC5B,eAAkB,GAAAC,kBAAA,GAAW,iBAAkB,CAAA;AAAA,YAAA,EAAA,CAAA,CAC9C,YAAO,iBAAP,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAA2B,eAC5B,CAAA,MAAA,eAAA,GAAkB,SAAS,MAAO,CAAA;AAAA,UAAA,CAAA;AAAA,SAEvC;AAAA,QACA,YAAA,EAAc,MAAO,CAAA,YAAA,IAAgB,aAAc,CAAA;AAAA,OACrD;AAAA,KAAE,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAIC,4BAAkB,CAAA;AAC3B;;;;"}
@@ -4,11 +4,11 @@ var utils = require('@milkdown/kit/utils');
4
4
  var state = require('@milkdown/kit/prose/state');
5
5
  var view = require('@milkdown/kit/prose/view');
6
6
  var prose = require('@milkdown/kit/prose');
7
- var index = require('./index-YUwSTgPK.js');
7
+ var index = require('./index-AlHHvSR_.js');
8
8
 
9
9
  function isDocEmpty(doc) {
10
10
  var _a;
11
- return doc.childCount <= 1 && !((_a = doc.firstChild) == null ? undefined : _a.content.size);
11
+ return doc.childCount <= 1 && !((_a = doc.firstChild) == null ? void 0 : _a.content.size);
12
12
  }
13
13
  function createPlaceholderDecoration(state, placeholderText) {
14
14
  const { selection } = state;
@@ -65,4 +65,4 @@ const defineFeature = (editor, config) => {
65
65
  exports.defineFeature = defineFeature;
66
66
  exports.placeholderConfig = placeholderConfig;
67
67
  exports.placeholderPlugin = placeholderPlugin;
68
- //# sourceMappingURL=index-BOmVuuoY.js.map
68
+ //# sourceMappingURL=index-Dub20F3z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BOmVuuoY.js","sources":["../../src/feature/placeholder/index.ts"],"sourcesContent":["import { $ctx, $prose } from '@milkdown/kit/utils'\nimport type { EditorState } from '@milkdown/kit/prose/state'\nimport { Plugin, PluginKey } from '@milkdown/kit/prose/state'\nimport type { Node } from '@milkdown/kit/prose/model'\nimport { Decoration, DecorationSet } from '@milkdown/kit/prose/view'\nimport { findParent } from '@milkdown/kit/prose'\nimport type { DefineFeature } from '../shared'\nimport { isInCodeBlock, isInList } from '../../utils'\n\nfunction isDocEmpty(doc: Node) {\n return doc.childCount <= 1 && !doc.firstChild?.content.size\n}\n\nfunction createPlaceholderDecoration(\n state: EditorState,\n placeholderText: string\n): Decoration | null {\n const { selection } = state\n if (!selection.empty) return null\n\n const $pos = selection.$anchor\n const node = $pos.parent\n if (node.content.size > 0) return null\n\n const inTable = findParent((node) => node.type.name === 'table')($pos)\n if (inTable) return null\n\n const before = $pos.before()\n\n return Decoration.node(before, before + node.nodeSize, {\n class: 'crepe-placeholder',\n 'data-placeholder': placeholderText,\n })\n}\n\ninterface PlaceholderConfig {\n text: string\n mode: 'doc' | 'block'\n}\n\nexport type PlaceHolderFeatureConfig = Partial<PlaceholderConfig>\n\nexport const placeholderConfig = $ctx(\n {\n text: 'Please enter...',\n mode: 'block',\n } as PlaceholderConfig,\n 'placeholderConfigCtx'\n)\n\nexport const placeholderPlugin = $prose((ctx) => {\n return new Plugin({\n key: new PluginKey('CREPE_PLACEHOLDER'),\n props: {\n decorations: (state) => {\n const config = ctx.get(placeholderConfig.key)\n if (config.mode === 'doc' && !isDocEmpty(state.doc)) return null\n\n if (isInCodeBlock(state.selection) || isInList(state.selection))\n return null\n\n const placeholderText = config.text ?? 'Please enter...'\n const deco = createPlaceholderDecoration(state, placeholderText)\n if (!deco) return null\n\n return DecorationSet.create(state.doc, [deco])\n },\n },\n })\n})\n\nexport const defineFeature: DefineFeature<PlaceHolderFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n if (config) {\n ctx.update(placeholderConfig.key, (prev) => {\n return {\n ...prev,\n ...config,\n }\n })\n }\n })\n .use(placeholderPlugin)\n .use(placeholderConfig)\n}\n"],"names":["findParent","node","Decoration","$ctx","$prose","Plugin","PluginKey","isInCodeBlock","isInList","DecorationSet"],"mappings":";;;;;;;;AASA,SAAS,WAAW,GAAW,EAAA;AAT/B,EAAA,IAAA,EAAA;AAUE,EAAA,OAAO,IAAI,UAAc,IAAA,CAAA,IAAK,GAAC,EAAI,GAAA,GAAA,CAAA,UAAA,KAAJ,sBAAgB,OAAQ,CAAA,IAAA,CAAA;AACzD;AAEA,SAAS,2BAAA,CACP,OACA,eACmB,EAAA;AACnB,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA;AACtB,EAAI,IAAA,CAAC,SAAU,CAAA,KAAA,EAAc,OAAA,IAAA;AAE7B,EAAA,MAAM,OAAO,SAAU,CAAA,OAAA;AACvB,EAAA,MAAM,OAAO,IAAK,CAAA,MAAA;AAClB,EAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,IAAO,GAAA,CAAA,EAAU,OAAA,IAAA;AAElC,EAAM,MAAA,OAAA,GAAUA,iBAAW,CAACC,KAAAA,KAASA,MAAK,IAAK,CAAA,IAAA,KAAS,OAAO,CAAA,CAAE,IAAI,CAAA;AACrE,EAAA,IAAI,SAAgB,OAAA,IAAA;AAEpB,EAAM,MAAA,MAAA,GAAS,KAAK,MAAO,EAAA;AAE3B,EAAA,OAAOC,eAAW,CAAA,IAAA,CAAK,MAAQ,EAAA,MAAA,GAAS,KAAK,QAAU,EAAA;AAAA,IACrD,KAAO,EAAA,mBAAA;AAAA,IACP,kBAAoB,EAAA;AAAA,GACrB,CAAA;AACH;AASO,MAAM,iBAAoB,GAAAC,UAAA;AAAA,EAC/B;AAAA,IACE,IAAM,EAAA,iBAAA;AAAA,IACN,IAAM,EAAA;AAAA,GACR;AAAA,EACA;AACF;AAEa,MAAA,iBAAA,GAAoBC,YAAO,CAAA,CAAC,GAAQ,KAAA;AAC/C,EAAA,OAAO,IAAIC,YAAO,CAAA;AAAA,IAChB,GAAA,EAAK,IAAIC,eAAA,CAAU,mBAAmB,CAAA;AAAA,IACtC,KAAO,EAAA;AAAA,MACL,WAAA,EAAa,CAAC,KAAU,KAAA;AAtD9B,QAAA,IAAA,EAAA;AAuDQ,QAAA,MAAM,MAAS,GAAA,GAAA,CAAI,GAAI,CAAA,iBAAA,CAAkB,GAAG,CAAA;AAC5C,QAAI,IAAA,MAAA,CAAO,SAAS,KAAS,IAAA,CAAC,WAAW,KAAM,CAAA,GAAG,GAAU,OAAA,IAAA;AAE5D,QAAA,IAAIC,oBAAc,KAAM,CAAA,SAAS,CAAK,IAAAC,cAAA,CAAS,MAAM,SAAS,CAAA;AAC5D,UAAO,OAAA,IAAA;AAET,QAAM,MAAA,eAAA,GAAA,CAAkB,EAAO,GAAA,MAAA,CAAA,IAAA,KAAP,IAAe,GAAA,EAAA,GAAA,iBAAA;AACvC,QAAM,MAAA,IAAA,GAAO,2BAA4B,CAAA,KAAA,EAAO,eAAe,CAAA;AAC/D,QAAI,IAAA,CAAC,MAAa,OAAA,IAAA;AAElB,QAAA,OAAOC,mBAAc,MAAO,CAAA,KAAA,CAAM,GAAK,EAAA,CAAC,IAAI,CAAC,CAAA;AAAA;AAC/C;AACF,GACD,CAAA;AACH,CAAC;AAEY,MAAA,aAAA,GAAyD,CACpE,MAAA,EACA,MACG,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,GAAA,CAAI,MAAO,CAAA,iBAAA,CAAkB,GAAK,EAAA,CAAC,IAAS,KAAA;AAC1C,QAAO,OAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACH,GAAG;AAAA,SACL;AAAA,OACD,CAAA;AAAA;AACH,GACD,CACA,CAAA,GAAA,CAAI,iBAAiB,CAAA,CACrB,IAAI,iBAAiB,CAAA;AAC1B;;;;;;"}
1
+ {"version":3,"file":"index-Dub20F3z.js","sources":["../../src/feature/placeholder/index.ts"],"sourcesContent":["import { $ctx, $prose } from '@milkdown/kit/utils'\nimport type { EditorState } from '@milkdown/kit/prose/state'\nimport { Plugin, PluginKey } from '@milkdown/kit/prose/state'\nimport type { Node } from '@milkdown/kit/prose/model'\nimport { Decoration, DecorationSet } from '@milkdown/kit/prose/view'\nimport { findParent } from '@milkdown/kit/prose'\nimport type { DefineFeature } from '../shared'\nimport { isInCodeBlock, isInList } from '../../utils'\n\nfunction isDocEmpty(doc: Node) {\n return doc.childCount <= 1 && !doc.firstChild?.content.size\n}\n\nfunction createPlaceholderDecoration(\n state: EditorState,\n placeholderText: string\n): Decoration | null {\n const { selection } = state\n if (!selection.empty) return null\n\n const $pos = selection.$anchor\n const node = $pos.parent\n if (node.content.size > 0) return null\n\n const inTable = findParent((node) => node.type.name === 'table')($pos)\n if (inTable) return null\n\n const before = $pos.before()\n\n return Decoration.node(before, before + node.nodeSize, {\n class: 'crepe-placeholder',\n 'data-placeholder': placeholderText,\n })\n}\n\ninterface PlaceholderConfig {\n text: string\n mode: 'doc' | 'block'\n}\n\nexport type PlaceHolderFeatureConfig = Partial<PlaceholderConfig>\n\nexport const placeholderConfig = $ctx(\n {\n text: 'Please enter...',\n mode: 'block',\n } as PlaceholderConfig,\n 'placeholderConfigCtx'\n)\n\nexport const placeholderPlugin = $prose((ctx) => {\n return new Plugin({\n key: new PluginKey('CREPE_PLACEHOLDER'),\n props: {\n decorations: (state) => {\n const config = ctx.get(placeholderConfig.key)\n if (config.mode === 'doc' && !isDocEmpty(state.doc)) return null\n\n if (isInCodeBlock(state.selection) || isInList(state.selection))\n return null\n\n const placeholderText = config.text ?? 'Please enter...'\n const deco = createPlaceholderDecoration(state, placeholderText)\n if (!deco) return null\n\n return DecorationSet.create(state.doc, [deco])\n },\n },\n })\n})\n\nexport const defineFeature: DefineFeature<PlaceHolderFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n if (config) {\n ctx.update(placeholderConfig.key, (prev) => {\n return {\n ...prev,\n ...config,\n }\n })\n }\n })\n .use(placeholderPlugin)\n .use(placeholderConfig)\n}\n"],"names":["findParent","node","Decoration","$ctx","$prose","Plugin","PluginKey","isInCodeBlock","isInList","DecorationSet"],"mappings":";;;;;;;;AASA,SAAS,WAAW,GAAW,EAAA;AAT/B,EAAA,IAAA,EAAA;AAUE,EAAA,OAAO,IAAI,UAAc,IAAA,CAAA,IAAK,GAAC,EAAI,GAAA,GAAA,CAAA,UAAA,KAAJ,mBAAgB,OAAQ,CAAA,IAAA,CAAA;AACzD;AAEA,SAAS,2BAAA,CACP,OACA,eACmB,EAAA;AACnB,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA;AACtB,EAAI,IAAA,CAAC,SAAU,CAAA,KAAA,EAAc,OAAA,IAAA;AAE7B,EAAA,MAAM,OAAO,SAAU,CAAA,OAAA;AACvB,EAAA,MAAM,OAAO,IAAK,CAAA,MAAA;AAClB,EAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,IAAO,GAAA,CAAA,EAAU,OAAA,IAAA;AAElC,EAAM,MAAA,OAAA,GAAUA,iBAAW,CAACC,KAAAA,KAASA,MAAK,IAAK,CAAA,IAAA,KAAS,OAAO,CAAA,CAAE,IAAI,CAAA;AACrE,EAAA,IAAI,SAAgB,OAAA,IAAA;AAEpB,EAAM,MAAA,MAAA,GAAS,KAAK,MAAO,EAAA;AAE3B,EAAA,OAAOC,eAAW,CAAA,IAAA,CAAK,MAAQ,EAAA,MAAA,GAAS,KAAK,QAAU,EAAA;AAAA,IACrD,KAAO,EAAA,mBAAA;AAAA,IACP,kBAAoB,EAAA;AAAA,GACrB,CAAA;AACH;AASO,MAAM,iBAAoB,GAAAC,UAAA;AAAA,EAC/B;AAAA,IACE,IAAM,EAAA,iBAAA;AAAA,IACN,IAAM,EAAA;AAAA,GACR;AAAA,EACA;AACF;AAEa,MAAA,iBAAA,GAAoBC,YAAO,CAAA,CAAC,GAAQ,KAAA;AAC/C,EAAA,OAAO,IAAIC,YAAO,CAAA;AAAA,IAChB,GAAA,EAAK,IAAIC,eAAA,CAAU,mBAAmB,CAAA;AAAA,IACtC,KAAO,EAAA;AAAA,MACL,WAAA,EAAa,CAAC,KAAU,KAAA;AAtD9B,QAAA,IAAA,EAAA;AAuDQ,QAAA,MAAM,MAAS,GAAA,GAAA,CAAI,GAAI,CAAA,iBAAA,CAAkB,GAAG,CAAA;AAC5C,QAAI,IAAA,MAAA,CAAO,SAAS,KAAS,IAAA,CAAC,WAAW,KAAM,CAAA,GAAG,GAAU,OAAA,IAAA;AAE5D,QAAA,IAAIC,oBAAc,KAAM,CAAA,SAAS,CAAK,IAAAC,cAAA,CAAS,MAAM,SAAS,CAAA;AAC5D,UAAO,OAAA,IAAA;AAET,QAAM,MAAA,eAAA,GAAA,CAAkB,EAAO,GAAA,MAAA,CAAA,IAAA,KAAP,IAAe,GAAA,EAAA,GAAA,iBAAA;AACvC,QAAM,MAAA,IAAA,GAAO,2BAA4B,CAAA,KAAA,EAAO,eAAe,CAAA;AAC/D,QAAI,IAAA,CAAC,MAAa,OAAA,IAAA;AAElB,QAAA,OAAOC,mBAAc,MAAO,CAAA,KAAA,CAAM,GAAK,EAAA,CAAC,IAAI,CAAC,CAAA;AAAA;AAC/C;AACF,GACD,CAAA;AACH,CAAC;AAEY,MAAA,aAAA,GAAyD,CACpE,MAAA,EACA,MACG,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,GAAA,CAAI,MAAO,CAAA,iBAAA,CAAkB,GAAK,EAAA,CAAC,IAAS,KAAA;AAC1C,QAAO,OAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACH,GAAG;AAAA,SACL;AAAA,OACD,CAAA;AAAA;AACH,GACD,CACA,CAAA,GAAA,CAAI,iBAAiB,CAAA,CACrB,IAAI,iBAAiB,CAAA;AAC1B;;;;;;"}
@@ -39,49 +39,50 @@ const defaultFeatures = {
39
39
  async function loadFeature(feature, editor, config) {
40
40
  switch (feature) {
41
41
  case "code-mirror" /* CodeMirror */: {
42
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-D0OPKY6K.js'); });
42
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-DQll67YS.js'); });
43
43
  return defineFeature(editor, config);
44
44
  }
45
45
  case "list-item" /* ListItem */: {
46
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-8COAwUnB.js'); });
46
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-hPk2gbSt.js'); });
47
47
  return defineFeature(editor, config);
48
48
  }
49
49
  case "link-tooltip" /* LinkTooltip */: {
50
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-6oBtF_11.js'); });
50
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-nrFkJeLW.js'); });
51
51
  return defineFeature(editor, config);
52
52
  }
53
53
  case "image-block" /* ImageBlock */: {
54
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-nDWnWxJ8.js'); });
54
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-CvmlYYXX.js'); });
55
55
  return defineFeature(editor, config);
56
56
  }
57
57
  case "cursor" /* Cursor */: {
58
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-C4JjdSvv.js'); });
58
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BuSAwj4j.js'); });
59
59
  return defineFeature(editor, config);
60
60
  }
61
61
  case "block-edit" /* BlockEdit */: {
62
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-B4NxKjEA.js'); });
62
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-D9Fk7rLS.js'); });
63
63
  return defineFeature(editor, config);
64
64
  }
65
65
  case "placeholder" /* Placeholder */: {
66
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BOmVuuoY.js'); });
66
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-Dub20F3z.js'); });
67
67
  return defineFeature(editor, config);
68
68
  }
69
69
  case "toolbar" /* Toolbar */: {
70
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-koRsjvWB.js'); });
70
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-CfM-XVoy.js'); });
71
71
  return defineFeature(editor, config);
72
72
  }
73
73
  case "table" /* Table */: {
74
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-C6EzkFZ_.js'); });
74
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-D3lu92SA.js'); });
75
75
  return defineFeature(editor, config);
76
76
  }
77
77
  case "latex" /* Latex */: {
78
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-DnFbvtbD.js'); });
78
+ const { defineFeature } = await Promise.resolve().then(function () { return require('./index-gk_gJ489.js'); });
79
79
  return defineFeature(editor, config);
80
80
  }
81
81
  }
82
82
  }
83
83
 
84
84
  const FeaturesCtx = ctx.createSlice([], "FeaturesCtx");
85
+ const crepeCtx = ctx.createSlice({}, "CrepeCtx");
85
86
  function configureFeatures(features) {
86
87
  return (ctx) => {
87
88
  ctx.inject(FeaturesCtx, features);
@@ -113,7 +114,9 @@ class Crepe {
113
114
  ...features
114
115
  }).filter(([, enabled]) => enabled).map(([feature]) => feature);
115
116
  __privateSet(this, _rootElement, (_a = typeof root === "string" ? document.querySelector(root) : root) != null ? _a : document.body);
116
- __privateSet(this, _editor, core.Editor.make().config(configureFeatures(enabledFeatures)).config((ctx) => {
117
+ __privateSet(this, _editor, core.Editor.make().config((ctx) => {
118
+ ctx.inject(crepeCtx, this);
119
+ }).config(configureFeatures(enabledFeatures)).config((ctx) => {
117
120
  ctx.set(core.rootCtx, __privateGet(this, _rootElement));
118
121
  ctx.set(core.defaultValueCtx, defaultValue);
119
122
  ctx.set(core.editorViewOptionsCtx, {
@@ -173,4 +176,5 @@ Crepe.Feature = CrepeFeature;
173
176
  exports.Crepe = Crepe;
174
177
  exports.CrepeFeature = CrepeFeature;
175
178
  exports.FeaturesCtx = FeaturesCtx;
176
- //# sourceMappingURL=index-DkHBuNoK.js.map
179
+ exports.crepeCtx = crepeCtx;
180
+ //# sourceMappingURL=index-dpBsp7Eo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-dpBsp7Eo.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\nimport type { LatexFeatureConfig } from './latex'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n Latex = 'latex',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n [CrepeFeature.Latex]?: LatexFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n [CrepeFeature.Latex]: true,\n}\n\nexport async function loadFeature(\n feature: CrepeFeature,\n editor: Editor,\n config?: never\n) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Latex: {\n const { defineFeature } = await import('./latex')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\nimport type { Crepe } from './crepe'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport const crepeCtx = createSlice({} as Crepe, 'CrepeCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport {\n Editor,\n EditorStatus,\n defaultValueCtx,\n editorViewOptionsCtx,\n rootCtx,\n} from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures, crepeCtx } from './slice'\nimport type { ListenerManager } from '@milkdown/kit/plugin/listener'\nimport { listener, listenerCtx } from '@milkdown/kit/plugin/listener'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object.entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement =\n (typeof root === 'string' ? document.querySelector(root) : root) ??\n document.body\n this.#editor = Editor.make()\n .config((ctx) => {\n ctx.inject(crepeCtx, this)\n })\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, (value) => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(listener)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[\n feature\n ]\n promiseList.push(loadFeature(feature, this.#editor, config))\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n\n on(fn: (api: ListenerManager) => void) {\n if (this.#editor.status !== EditorStatus.Created) {\n this.#editor.config((ctx) => {\n const listener = ctx.get(listenerCtx)\n fn(listener)\n })\n return this\n }\n this.#editor.action((ctx) => {\n const listener = ctx.get(listenerCtx)\n fn(listener)\n })\n return this\n }\n}\n"],"names":["CrepeFeature","createSlice","Editor","rootCtx","defaultValueCtx","editorViewOptionsCtx","indentConfig","commonmark","listener","history","indent","trailing","clipboard","gfm","getMarkdown","EditorStatus","listenerCtx"],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  var katex = require('katex');
4
4
  var codeBlock = require('@milkdown/kit/component/code-block');
5
- var index$1 = require('./index-DkHBuNoK.js');
5
+ var index = require('./index-dpBsp7Eo.js');
6
6
  var remarkMath = require('remark-math');
7
7
  var utils = require('@milkdown/kit/utils');
8
8
  var unistUtilVisit = require('unist-util-visit');
9
- var inlineLatex = require('./inline-latex-CwU8Nsfj.js');
10
- var index = require('./index-YUwSTgPK.js');
9
+ var inlineLatex = require('./inline-latex-D0G71cGk.js');
10
+ var index$1 = require('./index-AlHHvSR_.js');
11
11
  var atomico = require('atomico');
12
12
  var tooltip = require('@milkdown/kit/plugin/tooltip');
13
13
  var state = require('@milkdown/kit/prose/state');
@@ -15,7 +15,7 @@ var view = require('@milkdown/kit/prose/view');
15
15
  var keymap = require('@milkdown/kit/prose/keymap');
16
16
  var history = require('@milkdown/kit/prose/history');
17
17
  var model = require('@milkdown/kit/prose/model');
18
- var todoList = require('./todo-list-V4JWO5-M.js');
18
+ var functions = require('./functions-Dk90yOUc.js');
19
19
  var prose = require('@milkdown/kit/prose');
20
20
  var commonmark = require('@milkdown/kit/preset/commonmark');
21
21
  var inputrules = require('@milkdown/kit/prose/inputrules');
@@ -60,14 +60,14 @@ const latexEditComponent = ({
60
60
  var _a;
61
61
  const onMouseDown = (e) => {
62
62
  e.preventDefault();
63
- updateValue == null ? undefined : updateValue();
63
+ updateValue == null ? void 0 : updateValue();
64
64
  };
65
65
  return atomico.html`
66
66
  <host>
67
67
  <div class="container">
68
68
  ${innerView && atomico.h(innerView.dom, {})}
69
69
  <button onmousedown=${onMouseDown}>
70
- ${(_a = config == null ? undefined : config.inlineEditConfirm) == null ? undefined : _a.call(config)}
70
+ ${(_a = config == null ? void 0 : config.inlineEditConfirm) == null ? void 0 : _a.call(config)}
71
71
  </button>
72
72
  </div>
73
73
  </host>
@@ -143,7 +143,7 @@ class LatexInlineTooltip {
143
143
  "Mod-y": history.redo,
144
144
  Enter: () => {
145
145
  var _a, _b;
146
- (_b = (_a = __privateGet(this, _content)).updateValue) == null ? undefined : _b.call(_a);
146
+ (_b = (_a = __privateGet(this, _content)).updateValue) == null ? void 0 : _b.call(_a);
147
147
  return true;
148
148
  }
149
149
  })
@@ -219,13 +219,13 @@ const blockLatexSchema = commonmark.codeBlockSchema.extendSchema((prev) => {
219
219
  toMarkdown: {
220
220
  match: baseSchema.toMarkdown.match,
221
221
  runner: (state, node) => {
222
- var _a;
223
- const language = node.attrs.language;
222
+ var _a, _b;
223
+ const language = (_a = node.attrs.language) != null ? _a : "";
224
224
  if (language.toLowerCase() === "latex") {
225
225
  state.addNode(
226
226
  "math",
227
- undefined,
228
- ((_a = node.content.firstChild) == null ? undefined : _a.text) || ""
227
+ void 0,
228
+ ((_b = node.content.firstChild) == null ? void 0 : _b.text) || ""
229
229
  );
230
230
  } else {
231
231
  return baseSchema.toMarkdown.runner(state, node);
@@ -236,11 +236,11 @@ const blockLatexSchema = commonmark.codeBlockSchema.extendSchema((prev) => {
236
236
  };
237
237
  });
238
238
 
239
- index.defIfNotExists("milkdown-latex-inline-edit", LatexInlineEditElement);
239
+ index$1.defIfNotExists("milkdown-latex-inline-edit", LatexInlineEditElement);
240
240
  const defineFeature = (editor, config) => {
241
241
  editor.config((ctx) => {
242
- const flags = ctx.get(index$1.FeaturesCtx);
243
- const isCodeMirrorEnabled = flags.includes(index$1.CrepeFeature.CodeMirror);
242
+ const flags = ctx.get(index.FeaturesCtx);
243
+ const isCodeMirrorEnabled = flags.includes(index.CrepeFeature.CodeMirror);
244
244
  if (!isCodeMirrorEnabled) {
245
245
  throw new Error("You need to enable CodeMirror to use LaTeX feature");
246
246
  }
@@ -248,7 +248,7 @@ const defineFeature = (editor, config) => {
248
248
  ...prev,
249
249
  renderPreview: (language, content) => {
250
250
  if (language.toLowerCase() === "latex" && content.length > 0) {
251
- return renderLatex(content, config == null ? undefined : config.katexOptions);
251
+ return renderLatex(content, config == null ? void 0 : config.katexOptions);
252
252
  }
253
253
  const renderPreview = prev.renderPreview;
254
254
  return renderPreview(language, content);
@@ -258,7 +258,7 @@ const defineFeature = (editor, config) => {
258
258
  view: (view) => {
259
259
  var _a;
260
260
  return new LatexInlineTooltip(ctx, view, {
261
- inlineEditConfirm: (_a = config == null ? undefined : config.inlineEditConfirm) != null ? _a : () => todoList.confirmIcon,
261
+ inlineEditConfirm: (_a = config == null ? void 0 : config.inlineEditConfirm) != null ? _a : () => functions.confirmIcon,
262
262
  ...config
263
263
  });
264
264
  }
@@ -275,4 +275,4 @@ function renderLatex(content, options) {
275
275
  }
276
276
 
277
277
  exports.defineFeature = defineFeature;
278
- //# sourceMappingURL=index-DnFbvtbD.js.map
278
+ //# sourceMappingURL=index-gk_gJ489.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-gk_gJ489.js","sources":["../../src/feature/latex/remark.ts","../../src/feature/latex/inline-tooltip/component.ts","../../src/feature/latex/inline-tooltip/tooltip.ts","../../src/feature/latex/inline-tooltip/view.ts","../../src/feature/latex/input-rule.ts","../../src/feature/latex/block-latex.ts","../../src/feature/latex/index.ts"],"sourcesContent":["import remarkMath from 'remark-math'\nimport { $remark } from '@milkdown/kit/utils'\nimport type { Node } from '@milkdown/kit/transformer'\nimport { visit } from 'unist-util-visit'\n\nexport const remarkMathPlugin = $remark<'remarkMath', undefined>(\n 'remarkMath',\n () => remarkMath\n)\n\nfunction visitMathBlock(ast: Node) {\n return visit(\n ast,\n 'math',\n (\n node: Node & { value: string },\n index: number,\n parent: Node & { children: Node[] }\n ) => {\n const { value } = node as Node & { value: string }\n const newNode = {\n type: 'code',\n lang: 'LaTeX',\n value,\n }\n parent.children.splice(index, 1, newNode)\n }\n )\n}\n\n/// Turn math block into code block with language LaTeX.\nexport const remarkMathBlockPlugin = $remark(\n 'remarkMathBlock',\n () => () => visitMathBlock\n)\n","import { c, h, html, type Component } from 'atomico'\nimport type { LatexConfig } from '..'\nimport type { EditorView } from '@milkdown/kit/prose/view'\n\ntype LatexEditComponentProps = {\n config: Partial<LatexConfig>\n innerView: EditorView\n updateValue: () => void\n}\n\nexport const latexEditComponent: Component<LatexEditComponentProps> = ({\n config,\n innerView,\n updateValue,\n}) => {\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n updateValue?.()\n }\n return html`\n <host>\n <div class=\"container\">\n ${innerView && h(innerView.dom, {})}\n <button onmousedown=${onMouseDown}>\n ${config?.inlineEditConfirm?.()}\n </button>\n </div>\n </host>\n `\n}\n\nlatexEditComponent.props = {\n config: Object,\n innerView: Object,\n updateValue: Function,\n}\n\nexport const LatexInlineEditElement = c(latexEditComponent)\n","import { tooltipFactory } from '@milkdown/kit/plugin/tooltip'\n\nexport const inlineLatexTooltip = tooltipFactory('INLINE_LATEX')\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { TooltipProvider } from '@milkdown/kit/plugin/tooltip'\nimport type { PluginView } from '@milkdown/kit/prose/state'\nimport { EditorState, NodeSelection } from '@milkdown/kit/prose/state'\nimport { EditorView } from '@milkdown/kit/prose/view'\nimport { mathInlineId } from '../inline-latex'\nimport { LatexInlineEditElement } from './component'\nimport type { LatexConfig } from '..'\nimport { keymap } from '@milkdown/kit/prose/keymap'\nimport { redo, undo } from '@milkdown/kit/prose/history'\nimport { Schema } from '@milkdown/kit/prose/model'\n\nexport class LatexInlineTooltip implements PluginView {\n #content = new LatexInlineEditElement()\n #provider: TooltipProvider\n #dom: HTMLElement\n #innerView: EditorView | null\n\n constructor(\n readonly ctx: Ctx,\n view: EditorView,\n config: Partial<LatexConfig>\n ) {\n this.#provider = new TooltipProvider({\n debounce: 0,\n content: this.#content,\n shouldShow: this.#shouldShow,\n offset: 10,\n floatingUIOptions: {\n placement: 'bottom',\n },\n })\n this.#content.config = config\n this.#provider.update(view)\n this.#dom = document.createElement('div')\n this.#innerView = null\n }\n\n #onHide = () => {\n if (this.#innerView) {\n this.#innerView.destroy()\n this.#innerView = null\n }\n }\n\n #shouldShow = (view: EditorView) => {\n const shouldShow = () => {\n const { selection, schema } = view.state\n if (selection.empty) return false\n if (!(selection instanceof NodeSelection)) return false\n const node = selection.node\n if (node.type.name !== mathInlineId) return false\n\n const textFrom = selection.from\n\n const paragraph = schema.nodes.paragraph!.create(\n null,\n schema.text(node.attrs.value)\n )\n\n const innerView = new EditorView(this.#dom, {\n state: EditorState.create({\n doc: paragraph,\n schema: new Schema({\n nodes: {\n doc: {\n content: 'block+',\n },\n paragraph: {\n content: 'inline*',\n group: 'block',\n parseDOM: [{ tag: 'p' }],\n toDOM() {\n return ['p', 0]\n },\n },\n text: {\n group: 'inline',\n },\n },\n }),\n plugins: [\n keymap({\n 'Mod-z': undo,\n 'Mod-Z': redo,\n 'Mod-y': redo,\n Enter: () => {\n this.#content.updateValue?.()\n return true\n },\n }),\n ],\n }),\n })\n\n this.#innerView = innerView\n this.#content.innerView = this.#innerView\n this.#content.updateValue = () => {\n const { tr } = view.state\n tr.setNodeAttribute(textFrom, 'value', innerView.state.doc.textContent)\n view.dispatch(tr)\n requestAnimationFrame(() => {\n view.focus()\n })\n }\n return true\n }\n\n const show = shouldShow()\n if (!show) this.#onHide()\n return show\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#provider.update(view, prevState)\n }\n\n destroy = () => {\n this.#provider.destroy()\n this.#content.remove()\n }\n}\n","import { $inputRule } from '@milkdown/kit/utils'\nimport { nodeRule } from '@milkdown/kit/prose'\nimport { mathInlineSchema } from './inline-latex'\nimport { codeBlockSchema } from '@milkdown/kit/preset/commonmark'\nimport { textblockTypeInputRule } from '@milkdown/kit/prose/inputrules'\n\n/// Input rule for inline math.\n/// When you type $E=MC^2$, it will create an inline math node.\nexport const mathInlineInputRule = $inputRule((ctx) =>\n nodeRule(/(?:\\$)([^$]+)(?:\\$)$/, mathInlineSchema.type(ctx), {\n getAttr: (match) => {\n return {\n value: match[1] ?? '',\n }\n },\n })\n)\n\n/// A input rule for creating block math.\n/// For example, `$$ ` will create a code block with language javascript.\nexport const mathBlockInputRule = $inputRule((ctx) =>\n textblockTypeInputRule(/^\\$\\$[\\s\\n]$/, codeBlockSchema.type(ctx), () => ({\n language: 'LaTeX',\n }))\n)\n","import { codeBlockSchema } from '@milkdown/kit/preset/commonmark'\n\nexport const blockLatexSchema = codeBlockSchema.extendSchema((prev) => {\n return (ctx) => {\n const baseSchema = prev(ctx)\n return {\n ...baseSchema,\n toMarkdown: {\n match: baseSchema.toMarkdown.match,\n runner: (state, node) => {\n const language = node.attrs.language ?? ''\n if (language.toLowerCase() === 'latex') {\n state.addNode(\n 'math',\n undefined,\n node.content.firstChild?.text || ''\n )\n } else {\n return baseSchema.toMarkdown.runner(state, node)\n }\n },\n },\n }\n }\n})\n","import type { KatexOptions } from 'katex'\nimport katex from 'katex'\nimport { codeBlockConfig } from '@milkdown/kit/component/code-block'\nimport { CrepeFeature } from '../..'\nimport { FeaturesCtx } from '../../core/slice'\nimport type { DefineFeature, Icon } from '../shared'\nimport { remarkMathBlockPlugin, remarkMathPlugin } from './remark'\nimport { mathInlineSchema } from './inline-latex'\nimport { defIfNotExists } from '../../utils'\nimport { LatexInlineEditElement } from './inline-tooltip/component'\nimport { inlineLatexTooltip } from './inline-tooltip/tooltip'\nimport { LatexInlineTooltip } from './inline-tooltip/view'\nimport { confirmIcon } from '../../icons'\nimport { mathBlockInputRule, mathInlineInputRule } from './input-rule'\nimport { blockLatexSchema } from './block-latex'\n\nexport interface LatexConfig {\n katexOptions: KatexOptions\n inlineEditConfirm: Icon\n}\n\nexport type LatexFeatureConfig = Partial<LatexConfig>\n\ndefIfNotExists('milkdown-latex-inline-edit', LatexInlineEditElement)\nexport const defineFeature: DefineFeature<LatexFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n const flags = ctx.get(FeaturesCtx)\n const isCodeMirrorEnabled = flags.includes(CrepeFeature.CodeMirror)\n if (!isCodeMirrorEnabled) {\n throw new Error('You need to enable CodeMirror to use LaTeX feature')\n }\n\n ctx.update(codeBlockConfig.key, (prev) => ({\n ...prev,\n renderPreview: (language, content) => {\n if (language.toLowerCase() === 'latex' && content.length > 0) {\n return renderLatex(content, config?.katexOptions)\n }\n const renderPreview = prev.renderPreview\n return renderPreview(language, content)\n },\n }))\n\n ctx.set(inlineLatexTooltip.key, {\n view: (view) => {\n return new LatexInlineTooltip(ctx, view, {\n inlineEditConfirm: config?.inlineEditConfirm ?? (() => confirmIcon),\n ...config,\n })\n },\n })\n })\n .use(remarkMathPlugin)\n .use(remarkMathBlockPlugin)\n .use(mathInlineSchema)\n .use(inlineLatexTooltip)\n .use(mathInlineInputRule)\n .use(mathBlockInputRule)\n .use(blockLatexSchema)\n}\n\nfunction renderLatex(content: string, options?: KatexOptions) {\n const html = katex.renderToString(content, {\n ...options,\n throwOnError: false,\n displayMode: true,\n })\n return html\n}\n"],"names":["$remark","visit","html","h","c","tooltipFactory","view","NodeSelection","mathInlineId","EditorView","EditorState","Schema","keymap","undo","redo","TooltipProvider","$inputRule","nodeRule","mathInlineSchema","textblockTypeInputRule","codeBlockSchema","defIfNotExists","FeaturesCtx","CrepeFeature","codeBlockConfig","confirmIcon"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  var listItemBlock = require('@milkdown/kit/component/list-item-block');
4
4
  var atomico = require('atomico');
5
5
  var clsx = require('clsx');
6
- var todoList = require('./todo-list-V4JWO5-M.js');
6
+ var functions = require('./functions-Dk90yOUc.js');
7
7
 
8
8
  function configureListItem(ctx, config) {
9
9
  ctx.set(listItemBlock.listItemBlockConfig.key, {
@@ -12,17 +12,17 @@ function configureListItem(ctx, config) {
12
12
  if (checked == null) {
13
13
  if (listType === "bullet")
14
14
  return atomico.html`<span class="label"
15
- >${(_b = (_a = config == null ? undefined : config.bulletIcon) == null ? undefined : _a.call(config)) != null ? _b : todoList.bulletIcon}</span
15
+ >${(_b = (_a = config == null ? void 0 : config.bulletIcon) == null ? void 0 : _a.call(config)) != null ? _b : functions.bulletIcon}</span
16
16
  >`;
17
17
  return atomico.html`<span class="label">${label}</span>`;
18
18
  }
19
19
  if (checked)
20
20
  return atomico.html`<span
21
21
  class=${clsx("label checkbox", readonly && "readonly")}
22
- >${(_d = (_c = config == null ? undefined : config.checkBoxCheckedIcon) == null ? undefined : _c.call(config)) != null ? _d : todoList.checkBoxCheckedIcon}</span
22
+ >${(_d = (_c = config == null ? void 0 : config.checkBoxCheckedIcon) == null ? void 0 : _c.call(config)) != null ? _d : functions.checkBoxCheckedIcon}</span
23
23
  >`;
24
24
  return atomico.html`<span class=${clsx("label checkbox", readonly && "readonly")}
25
- >${(_f = (_e = config == null ? undefined : config.checkBoxUncheckedIcon) == null ? undefined : _e.call(config)) != null ? _f : todoList.checkBoxUncheckedIcon}</span
25
+ >${(_f = (_e = config == null ? void 0 : config.checkBoxUncheckedIcon) == null ? void 0 : _e.call(config)) != null ? _f : functions.checkBoxUncheckedIcon}</span
26
26
  >`;
27
27
  }
28
28
  });
@@ -32,4 +32,4 @@ const defineFeature = (editor, config) => {
32
32
  };
33
33
 
34
34
  exports.defineFeature = defineFeature;
35
- //# sourceMappingURL=index-8COAwUnB.js.map
35
+ //# sourceMappingURL=index-hPk2gbSt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-8COAwUnB.js","sources":["../../src/feature/list-item/index.ts"],"sourcesContent":["import type { Ctx } from '@milkdown/kit/ctx'\nimport {\n listItemBlockComponent,\n listItemBlockConfig,\n} from '@milkdown/kit/component/list-item-block'\nimport { html } from 'atomico'\nimport clsx from 'clsx'\nimport type { DefineFeature, Icon } from '../shared'\nimport {\n bulletIcon,\n checkBoxCheckedIcon,\n checkBoxUncheckedIcon,\n} from '../../icons'\n\nexport interface ListItemConfig {\n bulletIcon: Icon\n checkBoxCheckedIcon: Icon\n checkBoxUncheckedIcon: Icon\n}\n\nexport type ListItemFeatureConfig = Partial<ListItemConfig>\n\nfunction configureListItem(ctx: Ctx, config?: ListItemFeatureConfig) {\n ctx.set(listItemBlockConfig.key, {\n renderLabel: ({ label, listType, checked, readonly }) => {\n if (checked == null) {\n if (listType === 'bullet')\n return html`<span class=\"label\"\n >${config?.bulletIcon?.() ?? bulletIcon}</span\n >`\n\n return html`<span class=\"label\">${label}</span>`\n }\n\n if (checked)\n return html`<span\n class=${clsx('label checkbox', readonly && 'readonly')}\n >${config?.checkBoxCheckedIcon?.() ?? checkBoxCheckedIcon}</span\n >`\n\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}\n >${config?.checkBoxUncheckedIcon?.() ?? checkBoxUncheckedIcon}</span\n >`\n },\n })\n}\n\nexport const defineFeature: DefineFeature<ListItemFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => configureListItem(ctx, config))\n .use(listItemBlockComponent)\n}\n"],"names":["listItemBlockConfig","html","bulletIcon","checkBoxCheckedIcon","checkBoxUncheckedIcon","listItemBlockComponent"],"mappings":";;;;;;;AAsBA,SAAS,iBAAA,CAAkB,KAAU,MAAgC,EAAA;AACnE,EAAI,GAAA,CAAA,GAAA,CAAIA,kCAAoB,GAAK,EAAA;AAAA,IAC/B,aAAa,CAAC,EAAE,OAAO,QAAU,EAAA,OAAA,EAAS,UAAe,KAAA;AAxB7D,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyBM,MAAA,IAAI,WAAW,IAAM,EAAA;AACnB,QAAA,IAAI,QAAa,KAAA,QAAA;AACf,UAAO,OAAAC,YAAA,CAAA;AAAA,aACF,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,SAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAA0BC,mBAAU,CAAA;AAAA,WAAA,CAAA;AAG3C,QAAA,OAAOD,mCAA2B,KAAK,CAAA,OAAA,CAAA;AAAA;AAGzC,MAAI,IAAA,OAAA;AACF,QAAO,OAAAA,YAAA,CAAA;AAAA,gBAAA,EACG,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC;AAAA,WACnD,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,mBAAR,KAAA,IAAA,GAAA,SAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAmCE,4BAAmB,CAAA;AAAA,SAAA,CAAA;AAG7D,MAAA,OAAOF,YAAmB,CAAA,YAAA,EAAA,IAAA,CAAK,gBAAkB,EAAA,QAAA,IAAY,UAAU,CAAC;AAAA,SACnE,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,qBAAR,KAAA,IAAA,GAAA,SAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAqCG,8BAAqB,CAAA;AAAA,OAAA,CAAA;AAAA;AAEjE,GACD,CAAA;AACH;AAEa,MAAA,aAAA,GAAsD,CACjE,MAAA,EACA,MACG,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA,iBAAA,CAAkB,KAAK,MAAM,CAAC,CAC9C,CAAA,GAAA,CAAIC,oCAAsB,CAAA;AAC/B;;;;"}
1
+ {"version":3,"file":"index-hPk2gbSt.js","sources":["../../src/feature/list-item/index.ts"],"sourcesContent":["import type { Ctx } from '@milkdown/kit/ctx'\nimport {\n listItemBlockComponent,\n listItemBlockConfig,\n} from '@milkdown/kit/component/list-item-block'\nimport { html } from 'atomico'\nimport clsx from 'clsx'\nimport type { DefineFeature, Icon } from '../shared'\nimport {\n bulletIcon,\n checkBoxCheckedIcon,\n checkBoxUncheckedIcon,\n} from '../../icons'\n\nexport interface ListItemConfig {\n bulletIcon: Icon\n checkBoxCheckedIcon: Icon\n checkBoxUncheckedIcon: Icon\n}\n\nexport type ListItemFeatureConfig = Partial<ListItemConfig>\n\nfunction configureListItem(ctx: Ctx, config?: ListItemFeatureConfig) {\n ctx.set(listItemBlockConfig.key, {\n renderLabel: ({ label, listType, checked, readonly }) => {\n if (checked == null) {\n if (listType === 'bullet')\n return html`<span class=\"label\"\n >${config?.bulletIcon?.() ?? bulletIcon}</span\n >`\n\n return html`<span class=\"label\">${label}</span>`\n }\n\n if (checked)\n return html`<span\n class=${clsx('label checkbox', readonly && 'readonly')}\n >${config?.checkBoxCheckedIcon?.() ?? checkBoxCheckedIcon}</span\n >`\n\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}\n >${config?.checkBoxUncheckedIcon?.() ?? checkBoxUncheckedIcon}</span\n >`\n },\n })\n}\n\nexport const defineFeature: DefineFeature<ListItemFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => configureListItem(ctx, config))\n .use(listItemBlockComponent)\n}\n"],"names":["listItemBlockConfig","html","bulletIcon","checkBoxCheckedIcon","checkBoxUncheckedIcon","listItemBlockComponent"],"mappings":";;;;;;;AAsBA,SAAS,iBAAA,CAAkB,KAAU,MAAgC,EAAA;AACnE,EAAI,GAAA,CAAA,GAAA,CAAIA,kCAAoB,GAAK,EAAA;AAAA,IAC/B,aAAa,CAAC,EAAE,OAAO,QAAU,EAAA,OAAA,EAAS,UAAe,KAAA;AAxB7D,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyBM,MAAA,IAAI,WAAW,IAAM,EAAA;AACnB,QAAA,IAAI,QAAa,KAAA,QAAA;AACf,UAAO,OAAAC,YAAA,CAAA;AAAA,aACF,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAA0BC,oBAAU,CAAA;AAAA,WAAA,CAAA;AAG3C,QAAA,OAAOD,mCAA2B,KAAK,CAAA,OAAA,CAAA;AAAA;AAGzC,MAAI,IAAA,OAAA;AACF,QAAO,OAAAA,YAAA,CAAA;AAAA,gBAAA,EACG,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC;AAAA,WACnD,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,mBAAR,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAmCE,6BAAmB,CAAA;AAAA,SAAA,CAAA;AAG7D,MAAA,OAAOF,YAAmB,CAAA,YAAA,EAAA,IAAA,CAAK,gBAAkB,EAAA,QAAA,IAAY,UAAU,CAAC;AAAA,SACnE,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,qBAAR,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAqCG,+BAAqB,CAAA;AAAA,OAAA,CAAA;AAAA;AAEjE,GACD,CAAA;AACH;AAEa,MAAA,aAAA,GAAsD,CACjE,MAAA,EACA,MACG,KAAA;AACH,EACG,MAAA,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA,iBAAA,CAAkB,KAAK,MAAM,CAAC,CAC9C,CAAA,GAAA,CAAIC,oCAAsB,CAAA;AAC/B;;;;"}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var linkTooltip = require('@milkdown/kit/component/link-tooltip');
4
+ var functions = require('./functions-Dk90yOUc.js');
5
+ require('atomico');
6
+
7
+ const defineFeature = (editor, config) => {
8
+ editor.config(linkTooltip.configureLinkTooltip).config((ctx) => {
9
+ ctx.update(linkTooltip.linkTooltipConfig.key, (prev) => {
10
+ var _a, _b, _c, _d, _e, _f;
11
+ return {
12
+ ...prev,
13
+ linkIcon: (_a = config == null ? void 0 : config.linkIcon) != null ? _a : () => functions.copyIcon,
14
+ editButton: (_b = config == null ? void 0 : config.editButton) != null ? _b : () => functions.editIcon,
15
+ removeButton: (_c = config == null ? void 0 : config.removeButton) != null ? _c : () => functions.removeIcon,
16
+ confirmButton: (_d = config == null ? void 0 : config.confirmButton) != null ? _d : () => functions.confirmIcon,
17
+ inputPlaceholder: (_e = config == null ? void 0 : config.inputPlaceholder) != null ? _e : "Paste link...",
18
+ onCopyLink: (_f = config == null ? void 0 : config.onCopyLink) != null ? _f : () => {
19
+ }
20
+ };
21
+ });
22
+ }).use(linkTooltip.linkTooltipPlugin);
23
+ };
24
+
25
+ exports.defineFeature = defineFeature;
26
+ //# sourceMappingURL=index-nrFkJeLW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-6oBtF_11.js","sources":["../../src/feature/link-tooltip/index.ts"],"sourcesContent":["import {\n configureLinkTooltip,\n linkTooltipConfig,\n linkTooltipPlugin,\n} from '@milkdown/kit/component/link-tooltip'\nimport type { DefineFeature, Icon } from '../shared'\nimport { confirmIcon, copyIcon, editIcon, removeIcon } from '../../icons'\n\ninterface LinkTooltipConfig {\n linkIcon: Icon\n editButton: Icon\n removeButton: Icon\n confirmButton: Icon\n inputPlaceholder: string\n onCopyLink: (link: string) => void\n}\n\nexport type LinkTooltipFeatureConfig = Partial<LinkTooltipConfig>\n\nexport const defineFeature: DefineFeature<LinkTooltipFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config(configureLinkTooltip)\n .config((ctx) => {\n ctx.update(linkTooltipConfig.key, (prev) => ({\n ...prev,\n linkIcon: config?.linkIcon ?? (() => copyIcon),\n editButton: config?.editButton ?? (() => editIcon),\n removeButton: config?.removeButton ?? (() => removeIcon),\n confirmButton: config?.confirmButton ?? (() => confirmIcon),\n inputPlaceholder: config?.inputPlaceholder ?? 'Paste link...',\n onCopyLink: config?.onCopyLink ?? (() => {}),\n }))\n })\n .use(linkTooltipPlugin)\n}\n"],"names":["configureLinkTooltip","linkTooltipConfig","copyIcon","editIcon","removeIcon","confirmIcon","linkTooltipPlugin"],"mappings":";;;;;;AAmBa,MAAA,aAAA,GAAyD,CACpE,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAA,CACG,MAAO,CAAAA,gCAAoB,CAC3B,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,IAAA,GAAA,CAAI,MAAO,CAAAC,6BAAA,CAAkB,GAAK,EAAA,CAAC,IAAM,KAAA;AA1B/C,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0BmD,MAAA,OAAA;AAAA,QAC3C,GAAG,IAAA;AAAA,QACH,QAAU,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,QAAR,KAAA,IAAA,GAAA,EAAA,GAAqB,MAAMC,iBAAA;AAAA,QACrC,UAAY,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAuB,MAAMC,iBAAA;AAAA,QACzC,YAAc,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,YAAR,KAAA,IAAA,GAAA,EAAA,GAAyB,MAAMC,mBAAA;AAAA,QAC7C,aAAe,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,aAAR,KAAA,IAAA,GAAA,EAAA,GAA0B,MAAMC,oBAAA;AAAA,QAC/C,gBAAA,EAAA,CAAkB,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAA,gBAAA,KAAR,IAA4B,GAAA,EAAA,GAAA,eAAA;AAAA,QAC9C,UAAY,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,SAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAuB,MAAM;AAAA;AAAC,OAC5C;AAAA,KAAE,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAIC,6BAAiB,CAAA;AAC1B;;;;"}
1
+ {"version":3,"file":"index-nrFkJeLW.js","sources":["../../src/feature/link-tooltip/index.ts"],"sourcesContent":["import {\n configureLinkTooltip,\n linkTooltipConfig,\n linkTooltipPlugin,\n} from '@milkdown/kit/component/link-tooltip'\nimport type { DefineFeature, Icon } from '../shared'\nimport { confirmIcon, copyIcon, editIcon, removeIcon } from '../../icons'\n\ninterface LinkTooltipConfig {\n linkIcon: Icon\n editButton: Icon\n removeButton: Icon\n confirmButton: Icon\n inputPlaceholder: string\n onCopyLink: (link: string) => void\n}\n\nexport type LinkTooltipFeatureConfig = Partial<LinkTooltipConfig>\n\nexport const defineFeature: DefineFeature<LinkTooltipFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config(configureLinkTooltip)\n .config((ctx) => {\n ctx.update(linkTooltipConfig.key, (prev) => ({\n ...prev,\n linkIcon: config?.linkIcon ?? (() => copyIcon),\n editButton: config?.editButton ?? (() => editIcon),\n removeButton: config?.removeButton ?? (() => removeIcon),\n confirmButton: config?.confirmButton ?? (() => confirmIcon),\n inputPlaceholder: config?.inputPlaceholder ?? 'Paste link...',\n onCopyLink: config?.onCopyLink ?? (() => {}),\n }))\n })\n .use(linkTooltipPlugin)\n}\n"],"names":["configureLinkTooltip","linkTooltipConfig","copyIcon","editIcon","removeIcon","confirmIcon","linkTooltipPlugin"],"mappings":";;;;;;AAmBa,MAAA,aAAA,GAAyD,CACpE,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAA,CACG,MAAO,CAAAA,gCAAoB,CAC3B,CAAA,MAAA,CAAO,CAAC,GAAQ,KAAA;AACf,IAAA,GAAA,CAAI,MAAO,CAAAC,6BAAA,CAAkB,GAAK,EAAA,CAAC,IAAM,KAAA;AA1B/C,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0BmD,MAAA,OAAA;AAAA,QAC3C,GAAG,IAAA;AAAA,QACH,QAAU,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,QAAR,KAAA,IAAA,GAAA,EAAA,GAAqB,MAAMC,kBAAA;AAAA,QACrC,UAAY,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAuB,MAAMC,kBAAA;AAAA,QACzC,YAAc,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,YAAR,KAAA,IAAA,GAAA,EAAA,GAAyB,MAAMC,oBAAA;AAAA,QAC7C,aAAe,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,aAAR,KAAA,IAAA,GAAA,EAAA,GAA0B,MAAMC,qBAAA;AAAA,QAC/C,gBAAA,EAAA,CAAkB,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,gBAAA,KAAR,IAA4B,GAAA,EAAA,GAAA,eAAA;AAAA,QAC9C,UAAY,EAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAuB,MAAM;AAAA;AAAC,OAC5C;AAAA,KAAE,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAIC,6BAAiB,CAAA;AAC1B;;;;"}
package/lib/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DkHBuNoK.js');
3
+ var index = require('./index-dpBsp7Eo.js');
4
4
  require('@milkdown/kit/core');
5
5
  require('@milkdown/kit/preset/commonmark');
6
6
  require('@milkdown/kit/preset/gfm');
@@ -16,4 +16,5 @@ require('@milkdown/kit/plugin/listener');
16
16
 
17
17
  exports.Crepe = index.Crepe;
18
18
  exports.CrepeFeature = index.CrepeFeature;
19
+ exports.crepeCtx = index.crepeCtx;
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -44,11 +44,11 @@ const mathInlineSchema = utils.$nodeSchema(mathInlineId, () => ({
44
44
  toMarkdown: {
45
45
  match: (node) => node.type.name === mathInlineId,
46
46
  runner: (state, node) => {
47
- state.addNode("inlineMath", undefined, node.attrs.value);
47
+ state.addNode("inlineMath", void 0, node.attrs.value);
48
48
  }
49
49
  }
50
50
  }));
51
51
 
52
52
  exports.mathInlineId = mathInlineId;
53
53
  exports.mathInlineSchema = mathInlineSchema;
54
- //# sourceMappingURL=inline-latex-CwU8Nsfj.js.map
54
+ //# sourceMappingURL=inline-latex-D0G71cGk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-latex-CwU8Nsfj.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,SAAW,EAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AACzD;AAEJ,CAAE,CAAA;;;;;"}
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;;;;;"}
@@ -634,5 +634,19 @@ const todoListIcon = html`
634
634
  </svg>
635
635
  `;
636
636
 
637
- export { plusIcon as A, menuIcon as B, boldIcon as C, italicIcon as D, strikethroughIcon as E, linkIcon as F, dragHandleIcon as G, alignRightIcon as H, alignCenterIcon as I, alignLeftIcon as J, clearIcon as a, bulletIcon as b, chevronDownIcon as c, checkBoxCheckedIcon as d, editIcon as e, checkBoxUncheckedIcon as f, copyIcon as g, confirmIcon as h, imageIcon as i, captionIcon as j, h1Icon as k, h2Icon as l, h3Icon as m, h4Icon as n, h5Icon as o, h6Icon as p, quoteIcon as q, removeIcon as r, searchIcon as s, textIcon as t, dividerIcon as u, bulletListIcon as v, orderedListIcon as w, todoListIcon as x, codeIcon as y, tableIcon as z };
638
- //# sourceMappingURL=todo-list-B78GeGtK.js.map
637
+ const functionsIcon = html`
638
+ <svg
639
+ xmlns="http://www.w3.org/2000/svg"
640
+ width="32"
641
+ height="32"
642
+ viewBox="0 0 24 24"
643
+ >
644
+ <path
645
+ fill="currentColor"
646
+ d="M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z"
647
+ />
648
+ </svg>
649
+ `;
650
+
651
+ export { functionsIcon as A, plusIcon as B, menuIcon as C, boldIcon as D, italicIcon as E, strikethroughIcon as F, linkIcon as G, dragHandleIcon as H, alignRightIcon as I, alignCenterIcon as J, alignLeftIcon as K, chevronDownIcon as a, bulletIcon as b, clearIcon as c, checkBoxCheckedIcon as d, editIcon as e, checkBoxUncheckedIcon as f, confirmIcon as g, copyIcon as h, imageIcon as i, captionIcon as j, h1Icon as k, h2Icon as l, h3Icon as m, h4Icon as n, h5Icon as o, h6Icon as p, quoteIcon as q, removeIcon as r, searchIcon as s, textIcon as t, dividerIcon as u, bulletListIcon as v, orderedListIcon as w, todoListIcon as x, codeIcon as y, tableIcon as z };
652
+ //# sourceMappingURL=functions-Bsik6ikd.js.map