@milkdown/crepe 7.5.8 → 7.6.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 (185) hide show
  1. package/lib/cjs/index-6oBtF_11.js +26 -0
  2. package/lib/cjs/{index-BIXWL4Or.js.map → index-6oBtF_11.js.map} +1 -1
  3. package/lib/cjs/{index-Dt55rF23.js → index-8COAwUnB.js} +5 -5
  4. package/lib/cjs/{index-Dt55rF23.js.map → index-8COAwUnB.js.map} +1 -1
  5. package/lib/cjs/{index-By3ewOiO.js → index-B4NxKjEA.js} +52 -52
  6. package/lib/cjs/index-B4NxKjEA.js.map +1 -0
  7. package/lib/cjs/{index-Dub20F3z.js → index-BOmVuuoY.js} +3 -3
  8. package/lib/cjs/{index-Dub20F3z.js.map → index-BOmVuuoY.js.map} +1 -1
  9. package/lib/cjs/{index-BuSAwj4j.js → index-C4JjdSvv.js} +3 -3
  10. package/lib/cjs/{index-BuSAwj4j.js.map → index-C4JjdSvv.js.map} +1 -1
  11. package/lib/cjs/index-C6EzkFZ_.js +39 -0
  12. package/lib/cjs/{index-DmOOfQPi.js.map → index-C6EzkFZ_.js.map} +1 -1
  13. package/lib/cjs/index-D0OPKY6K.js +65 -0
  14. package/lib/cjs/index-D0OPKY6K.js.map +1 -0
  15. package/lib/cjs/index-DkHBuNoK.js +176 -0
  16. package/lib/cjs/index-DkHBuNoK.js.map +1 -0
  17. package/lib/cjs/index-DnFbvtbD.js +278 -0
  18. package/lib/cjs/index-DnFbvtbD.js.map +1 -0
  19. package/lib/cjs/{index-AlHHvSR_.js → index-YUwSTgPK.js} +3 -3
  20. package/lib/cjs/{index-AlHHvSR_.js.map → index-YUwSTgPK.js.map} +1 -1
  21. package/lib/cjs/{index-A8IrOmzS.js → index-koRsjvWB.js} +116 -18
  22. package/lib/cjs/index-koRsjvWB.js.map +1 -0
  23. package/lib/cjs/index-nDWnWxJ8.js +38 -0
  24. package/lib/cjs/index-nDWnWxJ8.js.map +1 -0
  25. package/lib/cjs/index.js +13 -148
  26. package/lib/cjs/index.js.map +1 -1
  27. package/lib/cjs/inline-latex-CwU8Nsfj.js +54 -0
  28. package/lib/cjs/inline-latex-CwU8Nsfj.js.map +1 -0
  29. package/lib/cjs/{todoList-V4JWO5-M.js → todo-list-V4JWO5-M.js} +1 -1
  30. package/lib/cjs/todo-list-V4JWO5-M.js.map +1 -0
  31. package/lib/esm/index-BOzN8fKq.js +36 -0
  32. package/lib/esm/index-BOzN8fKq.js.map +1 -0
  33. package/lib/esm/index-BUFg1FSH.js +172 -0
  34. package/lib/esm/index-BUFg1FSH.js.map +1 -0
  35. package/lib/esm/index-BxpDIDRS.js +63 -0
  36. package/lib/esm/index-BxpDIDRS.js.map +1 -0
  37. package/lib/esm/index-C5_dM0IB.js +276 -0
  38. package/lib/esm/index-C5_dM0IB.js.map +1 -0
  39. package/lib/esm/{index-DlX33Dj0.js → index-C7Xr_l-d.js} +5 -5
  40. package/lib/esm/{index-DlX33Dj0.js.map → index-C7Xr_l-d.js.map} +1 -1
  41. package/lib/esm/{index-CxJ9fxJm.js → index-C7_YCA3P.js} +3 -3
  42. package/lib/esm/{index-CxJ9fxJm.js.map → index-C7_YCA3P.js.map} +1 -1
  43. package/lib/esm/index-C8tiRHTF.js +37 -0
  44. package/lib/esm/{index-BDGHz9p-.js.map → index-C8tiRHTF.js.map} +1 -1
  45. package/lib/esm/{index-D6fLMv29.js → index-CD8fvrRC.js} +3 -3
  46. package/lib/esm/{index-D6fLMv29.js.map → index-CD8fvrRC.js.map} +1 -1
  47. package/lib/esm/index-CEup1V8i.js +24 -0
  48. package/lib/esm/{index-6VoEpEnX.js.map → index-CEup1V8i.js.map} +1 -1
  49. package/lib/esm/{index-kGl7HgN2.js → index-DroARb55.js} +117 -19
  50. package/lib/esm/index-DroARb55.js.map +1 -0
  51. package/lib/esm/{index-zKiGjwHz.js → index-HnGoJxjJ.js} +52 -52
  52. package/lib/esm/index-HnGoJxjJ.js.map +1 -0
  53. package/lib/esm/{index-DOrkOhki.js → index-WCe-Xh61.js} +3 -3
  54. package/lib/esm/{index-DOrkOhki.js.map → index-WCe-Xh61.js.map} +1 -1
  55. package/lib/esm/index.js +11 -150
  56. package/lib/esm/index.js.map +1 -1
  57. package/lib/esm/inline-latex-BLd2QrJC.js +51 -0
  58. package/lib/esm/inline-latex-BLd2QrJC.js.map +1 -0
  59. package/lib/esm/{todoList-CAbx4396.js → todo-list-B78GeGtK.js} +2 -2
  60. package/lib/esm/todo-list-B78GeGtK.js.map +1 -0
  61. package/lib/theme/common/code-mirror.css +93 -34
  62. package/lib/theme/common/latex.css +44 -0
  63. package/lib/theme/common/style.css +1 -0
  64. package/lib/types/core/crepe.d.ts +2 -0
  65. package/lib/types/core/crepe.d.ts.map +1 -1
  66. package/lib/types/feature/block-edit/handle/component.d.ts +3 -3
  67. package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
  68. package/lib/types/feature/block-edit/menu/component.d.ts +1 -1
  69. package/lib/types/feature/block-edit/menu/group-builder.d.ts +4 -4
  70. package/lib/types/feature/code-mirror/index.d.ts +6 -2
  71. package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
  72. package/lib/types/feature/image-block/index.d.ts +1 -0
  73. package/lib/types/feature/image-block/index.d.ts.map +1 -1
  74. package/lib/types/feature/index.d.ts +4 -1
  75. package/lib/types/feature/index.d.ts.map +1 -1
  76. package/lib/types/feature/latex/block-latex.d.ts +2 -0
  77. package/lib/types/feature/latex/block-latex.d.ts.map +1 -0
  78. package/lib/types/feature/latex/index.d.ts +9 -0
  79. package/lib/types/feature/latex/index.d.ts.map +1 -0
  80. package/lib/types/feature/latex/inline-latex.d.ts +3 -0
  81. package/lib/types/feature/latex/inline-latex.d.ts.map +1 -0
  82. package/lib/types/feature/latex/inline-tooltip/component.d.ts +15 -0
  83. package/lib/types/feature/latex/inline-tooltip/component.d.ts.map +1 -0
  84. package/lib/types/feature/latex/inline-tooltip/tooltip.d.ts +2 -0
  85. package/lib/types/feature/latex/inline-tooltip/tooltip.d.ts.map +1 -0
  86. package/lib/types/feature/latex/inline-tooltip/view.d.ts +13 -0
  87. package/lib/types/feature/latex/inline-tooltip/view.d.ts.map +1 -0
  88. package/lib/types/feature/latex/input-rule.d.ts +3 -0
  89. package/lib/types/feature/latex/input-rule.d.ts.map +1 -0
  90. package/lib/types/feature/latex/remark.d.ts +3 -0
  91. package/lib/types/feature/latex/remark.d.ts.map +1 -0
  92. package/lib/types/feature/shared.d.ts +1 -1
  93. package/lib/types/feature/shared.d.ts.map +1 -1
  94. package/lib/types/feature/toolbar/component.d.ts +3 -1
  95. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  96. package/lib/types/feature/toolbar/index.d.ts +1 -0
  97. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  98. package/lib/types/icons/{alignCenter.d.ts → align-center.d.ts} +1 -1
  99. package/lib/types/icons/align-center.d.ts.map +1 -0
  100. package/lib/types/icons/{alignLeft.d.ts → align-left.d.ts} +1 -1
  101. package/lib/types/icons/align-left.d.ts.map +1 -0
  102. package/lib/types/icons/{alignRight.d.ts → align-right.d.ts} +1 -1
  103. package/lib/types/icons/align-right.d.ts.map +1 -0
  104. package/lib/types/icons/{bulletList.d.ts → bullet-list.d.ts} +1 -1
  105. package/lib/types/icons/bullet-list.d.ts.map +1 -0
  106. package/lib/types/icons/{checkBoxChecked.d.ts → check-box-checked.d.ts} +1 -1
  107. package/lib/types/icons/check-box-checked.d.ts.map +1 -0
  108. package/lib/types/icons/{checkBoxUnchecked.d.ts → check-box-unchecked.d.ts} +1 -1
  109. package/lib/types/icons/check-box-unchecked.d.ts.map +1 -0
  110. package/lib/types/icons/{chevronDown.d.ts → chevron-down.d.ts} +1 -1
  111. package/lib/types/icons/chevron-down.d.ts.map +1 -0
  112. package/lib/types/icons/{dragHandle.d.ts → drag-handle.d.ts} +1 -1
  113. package/lib/types/icons/drag-handle.d.ts.map +1 -0
  114. package/lib/types/icons/functions.d.ts +2 -0
  115. package/lib/types/icons/functions.d.ts.map +1 -0
  116. package/lib/types/icons/index.d.ts +10 -10
  117. package/lib/types/icons/index.d.ts.map +1 -1
  118. package/lib/types/icons/{orderedList.d.ts → ordered-list.d.ts} +1 -1
  119. package/lib/types/icons/ordered-list.d.ts.map +1 -0
  120. package/lib/types/icons/{todoList.d.ts → todo-list.d.ts} +1 -1
  121. package/lib/types/icons/todo-list.d.ts.map +1 -0
  122. package/lib/types/icons/visibility-off.d.ts +2 -0
  123. package/lib/types/icons/visibility-off.d.ts.map +1 -0
  124. package/package.json +7 -4
  125. package/src/core/crepe.ts +19 -0
  126. package/src/feature/block-edit/handle/component.ts +2 -2
  127. package/src/feature/block-edit/handle/index.ts +1 -1
  128. package/src/feature/code-mirror/index.ts +23 -3
  129. package/src/feature/image-block/index.ts +3 -0
  130. package/src/feature/index.ts +8 -0
  131. package/src/feature/latex/block-latex.ts +25 -0
  132. package/src/feature/latex/index.ts +73 -0
  133. package/src/feature/latex/inline-latex.ts +55 -0
  134. package/src/feature/latex/inline-tooltip/component.ts +38 -0
  135. package/src/feature/latex/inline-tooltip/tooltip.ts +3 -0
  136. package/src/feature/latex/inline-tooltip/view.ts +122 -0
  137. package/src/feature/latex/input-rule.ts +25 -0
  138. package/src/feature/latex/remark.ts +35 -0
  139. package/src/feature/shared.ts +1 -1
  140. package/src/feature/toolbar/component.ts +91 -3
  141. package/src/feature/toolbar/index.ts +3 -1
  142. package/src/icons/functions.ts +15 -0
  143. package/src/icons/index.ts +10 -10
  144. package/src/icons/visibility-off.ts +14 -0
  145. package/src/theme/common/code-mirror.css +95 -34
  146. package/src/theme/common/latex.css +44 -0
  147. package/src/theme/common/style.css +1 -0
  148. package/lib/cjs/index-3mj4YaCA.js +0 -43
  149. package/lib/cjs/index-3mj4YaCA.js.map +0 -1
  150. package/lib/cjs/index-A8IrOmzS.js.map +0 -1
  151. package/lib/cjs/index-BIXWL4Or.js +0 -26
  152. package/lib/cjs/index-BrCpWPcp.js +0 -36
  153. package/lib/cjs/index-BrCpWPcp.js.map +0 -1
  154. package/lib/cjs/index-By3ewOiO.js.map +0 -1
  155. package/lib/cjs/index-DmOOfQPi.js +0 -39
  156. package/lib/cjs/todoList-V4JWO5-M.js.map +0 -1
  157. package/lib/esm/index-6VoEpEnX.js +0 -24
  158. package/lib/esm/index-BB3Rq6BU.js +0 -41
  159. package/lib/esm/index-BB3Rq6BU.js.map +0 -1
  160. package/lib/esm/index-BDGHz9p-.js +0 -37
  161. package/lib/esm/index-BoTKwL_u.js +0 -34
  162. package/lib/esm/index-BoTKwL_u.js.map +0 -1
  163. package/lib/esm/index-kGl7HgN2.js.map +0 -1
  164. package/lib/esm/index-zKiGjwHz.js.map +0 -1
  165. package/lib/esm/todoList-CAbx4396.js.map +0 -1
  166. package/lib/types/icons/alignCenter.d.ts.map +0 -1
  167. package/lib/types/icons/alignLeft.d.ts.map +0 -1
  168. package/lib/types/icons/alignRight.d.ts.map +0 -1
  169. package/lib/types/icons/bulletList.d.ts.map +0 -1
  170. package/lib/types/icons/checkBoxChecked.d.ts.map +0 -1
  171. package/lib/types/icons/checkBoxUnchecked.d.ts.map +0 -1
  172. package/lib/types/icons/chevronDown.d.ts.map +0 -1
  173. package/lib/types/icons/dragHandle.d.ts.map +0 -1
  174. package/lib/types/icons/orderedList.d.ts.map +0 -1
  175. package/lib/types/icons/todoList.d.ts.map +0 -1
  176. /package/src/icons/{alignCenter.ts → align-center.ts} +0 -0
  177. /package/src/icons/{alignLeft.ts → align-left.ts} +0 -0
  178. /package/src/icons/{alignRight.ts → align-right.ts} +0 -0
  179. /package/src/icons/{bulletList.ts → bullet-list.ts} +0 -0
  180. /package/src/icons/{checkBoxChecked.ts → check-box-checked.ts} +0 -0
  181. /package/src/icons/{checkBoxUnchecked.ts → check-box-unchecked.ts} +0 -0
  182. /package/src/icons/{chevronDown.ts → chevron-down.ts} +0 -0
  183. /package/src/icons/{dragHandle.ts → drag-handle.ts} +0 -0
  184. /package/src/icons/{orderedList.ts → ordered-list.ts} +0 -0
  185. /package/src/icons/{todoList.ts → todo-list.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DnFbvtbD.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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"}
@@ -6,8 +6,8 @@ function isInCodeBlock(selection) {
6
6
  }
7
7
  function isInList(selection) {
8
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";
9
+ const type = (_a = selection.$from.node(selection.$from.depth - 1)) == null ? undefined : _a.type;
10
+ return (type == null ? undefined : type.name) === "list_item";
11
11
  }
12
12
  function defIfNotExists(tagName, element) {
13
13
  if (customElements.get(tagName) == null)
@@ -17,4 +17,4 @@ function defIfNotExists(tagName, element) {
17
17
  exports.defIfNotExists = defIfNotExists;
18
18
  exports.isInCodeBlock = isInCodeBlock;
19
19
  exports.isInList = isInList;
20
- //# sourceMappingURL=index-AlHHvSR_.js.map
20
+ //# sourceMappingURL=index-YUwSTgPK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-AlHHvSR_.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,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA;AAC9D,EAAA,OAAA,CAAO,6BAAM,IAAS,MAAA,WAAA;AACxB;AAEgB,SAAA,cAAA,CACd,SACA,OACA,EAAA;AACA,EAAI,IAAA,cAAA,CAAe,GAAI,CAAA,OAAO,CAAK,IAAA,IAAA;AACjC,IAAe,cAAA,CAAA,MAAA,CAAO,SAAS,OAAO,CAAA;AAC1C;;;;;;"}
1
+ {"version":3,"file":"index-YUwSTgPK.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,SAAA,GAAA,EAAA,CAAA,IAAA;AAC9D,EAAA,OAAA,CAAO,gCAAM,IAAS,MAAA,WAAA;AACxB;AAEgB,SAAA,cAAA,CACd,SACA,OACA,EAAA;AACA,EAAI,IAAA,cAAA,CAAe,GAAI,CAAA,OAAO,CAAK,IAAA,IAAA;AACjC,IAAe,cAAA,CAAA,MAAA,CAAO,SAAS,OAAO,CAAA;AAC1C;;;;;;"}
@@ -2,22 +2,47 @@
2
2
 
3
3
  var tooltip = require('@milkdown/kit/plugin/tooltip');
4
4
  var state = require('@milkdown/kit/prose/state');
5
- var index = require('./index-AlHHvSR_.js');
5
+ var index$1 = require('./index-YUwSTgPK.js');
6
6
  var atomico = require('atomico');
7
7
  var core = require('@milkdown/kit/core');
8
8
  var commonmark = require('@milkdown/kit/preset/commonmark');
9
9
  var clsx = require('clsx');
10
10
  var linkTooltip = require('@milkdown/kit/component/link-tooltip');
11
11
  var gfm = require('@milkdown/kit/preset/gfm');
12
- var todoList = require('./todoList-V4JWO5-M.js');
12
+ var todoList = require('./todo-list-V4JWO5-M.js');
13
+ var inlineLatex = require('./inline-latex-CwU8Nsfj.js');
14
+ var index = require('./index-DkHBuNoK.js');
15
+ require('@milkdown/kit/utils');
16
+ require('katex');
17
+ require('@milkdown/kit/plugin/history');
18
+ require('@milkdown/kit/plugin/indent');
19
+ require('@milkdown/kit/plugin/clipboard');
20
+ require('@milkdown/kit/plugin/trailing');
21
+ require('@milkdown/kit/ctx');
22
+ require('@milkdown/kit/plugin/listener');
23
+
24
+ const functionsIcon = atomico.html`
25
+ <svg
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ width="32"
28
+ height="32"
29
+ viewBox="0 0 24 24"
30
+ >
31
+ <path
32
+ fill="currentColor"
33
+ d="M7 19v-.808L13.096 12L7 5.808V5h10v1.25H9.102L14.727 12l-5.625 5.77H17V19z"
34
+ />
35
+ </svg>
36
+ `;
13
37
 
14
38
  const toolbarComponent = ({
15
39
  ctx,
16
40
  hide,
17
41
  show,
18
- config
42
+ config,
43
+ selection
19
44
  }) => {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
45
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
21
46
  const update = atomico.useUpdate();
22
47
  atomico.useEffect(() => {
23
48
  update();
@@ -28,13 +53,73 @@ const toolbarComponent = ({
28
53
  update();
29
54
  };
30
55
  const isActive = (mark) => {
31
- if (!ctx) return false;
56
+ if (!ctx || !selection) return false;
32
57
  const view = ctx.get(core.editorViewCtx);
33
58
  const {
34
- state: { doc, selection }
59
+ state: { doc }
35
60
  } = view;
36
61
  return doc.rangeHasMark(selection.from, selection.to, mark);
37
62
  };
63
+ const containsNode = (node) => {
64
+ if (!ctx || !selection) return false;
65
+ const view = ctx.get(core.editorViewCtx);
66
+ const {
67
+ state: { doc }
68
+ } = view;
69
+ if (selection instanceof state.NodeSelection) {
70
+ return selection.node.type === node;
71
+ }
72
+ const { from, to } = selection;
73
+ let hasNode = false;
74
+ doc.nodesBetween(from, to, (n) => {
75
+ if (n.type === node) {
76
+ hasNode = true;
77
+ return false;
78
+ }
79
+ return true;
80
+ });
81
+ return hasNode;
82
+ };
83
+ const flags = ctx == null ? undefined : ctx.get(index.FeaturesCtx);
84
+ const isLatexEnabled = flags == null ? undefined : flags.includes(index.CrepeFeature.Latex);
85
+ const toggleLatex = (ctx2) => {
86
+ const hasLatex = containsNode(inlineLatex.mathInlineSchema.type(ctx2));
87
+ const view = ctx2.get(core.editorViewCtx);
88
+ const { selection: selection2, doc, tr } = view.state;
89
+ if (!hasLatex) {
90
+ const text = doc.textBetween(selection2.from, selection2.to);
91
+ let _tr2 = tr.replaceSelectionWith(
92
+ inlineLatex.mathInlineSchema.type(ctx2).create({
93
+ value: text
94
+ })
95
+ );
96
+ view.dispatch(
97
+ _tr2.setSelection(state.NodeSelection.create(_tr2.doc, selection2.from))
98
+ );
99
+ return;
100
+ }
101
+ const { from, to } = selection2;
102
+ let pos = -1;
103
+ let node = null;
104
+ doc.nodesBetween(from, to, (n, p) => {
105
+ if (node) return false;
106
+ if (n.type === inlineLatex.mathInlineSchema.type(ctx2)) {
107
+ pos = p;
108
+ node = n;
109
+ return false;
110
+ }
111
+ return true;
112
+ });
113
+ if (!node || pos < 0) return;
114
+ let _tr = tr.delete(pos, pos + 1);
115
+ const content = node.attrs.value;
116
+ _tr = _tr.insertText(content, pos);
117
+ view.dispatch(
118
+ _tr.setSelection(
119
+ state.TextSelection.create(_tr.doc, from, to + content.length - 1)
120
+ )
121
+ );
122
+ };
38
123
  return atomico.html`<host>
39
124
  <button
40
125
  type="button"
@@ -47,7 +132,7 @@ const toolbarComponent = ({
47
132
  commands.call(commonmark.toggleStrongCommand.key);
48
133
  })}
49
134
  >
50
- ${(_b = (_a = config == null ? void 0 : config.boldIcon) == null ? void 0 : _a.call(config)) != null ? _b : todoList.boldIcon}
135
+ ${(_b = (_a = config == null ? undefined : config.boldIcon) == null ? undefined : _a.call(config)) != null ? _b : todoList.boldIcon}
51
136
  </button>
52
137
  <button
53
138
  type="button"
@@ -60,7 +145,7 @@ const toolbarComponent = ({
60
145
  commands.call(commonmark.toggleEmphasisCommand.key);
61
146
  })}
62
147
  >
63
- ${(_d = (_c = config == null ? void 0 : config.italicIcon) == null ? void 0 : _c.call(config)) != null ? _d : todoList.italicIcon}
148
+ ${(_d = (_c = config == null ? undefined : config.italicIcon) == null ? undefined : _c.call(config)) != null ? _d : todoList.italicIcon}
64
149
  </button>
65
150
  <button
66
151
  type="button"
@@ -73,7 +158,7 @@ const toolbarComponent = ({
73
158
  commands.call(gfm.toggleStrikethroughCommand.key);
74
159
  })}
75
160
  >
76
- ${(_f = (_e = config == null ? void 0 : config.strikethroughIcon) == null ? void 0 : _e.call(config)) != null ? _f : todoList.strikethroughIcon}
161
+ ${(_f = (_e = config == null ? undefined : config.strikethroughIcon) == null ? undefined : _e.call(config)) != null ? _f : todoList.strikethroughIcon}
77
162
  </button>
78
163
  <div class="divider"></div>
79
164
  <button
@@ -87,8 +172,18 @@ const toolbarComponent = ({
87
172
  commands.call(commonmark.toggleInlineCodeCommand.key);
88
173
  })}
89
174
  >
90
- ${(_h = (_g = config == null ? void 0 : config.codeIcon) == null ? void 0 : _g.call(config)) != null ? _h : todoList.codeIcon}
175
+ ${(_h = (_g = config == null ? undefined : config.codeIcon) == null ? undefined : _g.call(config)) != null ? _h : todoList.codeIcon}
91
176
  </button>
177
+ ${isLatexEnabled && atomico.html`<button
178
+ type="button"
179
+ class=${clsx(
180
+ "toolbar-item",
181
+ ctx && containsNode(inlineLatex.mathInlineSchema.type(ctx)) && "active"
182
+ )}
183
+ onmousedown=${onClick(toggleLatex)}
184
+ >
185
+ ${(_j = (_i = config == null ? undefined : config.latexIcon) == null ? undefined : _i.call(config)) != null ? _j : functionsIcon}
186
+ </button>`}
92
187
  <button
93
188
  type="button"
94
189
  class=${clsx(
@@ -97,16 +192,16 @@ const toolbarComponent = ({
97
192
  )}
98
193
  onmousedown=${onClick((ctx2) => {
99
194
  const view = ctx2.get(core.editorViewCtx);
100
- const { selection } = view.state;
195
+ const { selection: selection2 } = view.state;
101
196
  if (isActive(commonmark.linkSchema.type(ctx2))) {
102
- ctx2.get(linkTooltip.linkTooltipAPI.key).removeLink(selection.from, selection.to);
197
+ ctx2.get(linkTooltip.linkTooltipAPI.key).removeLink(selection2.from, selection2.to);
103
198
  return;
104
199
  }
105
- ctx2.get(linkTooltip.linkTooltipAPI.key).addLink(selection.from, selection.to);
106
- hide == null ? void 0 : hide();
200
+ ctx2.get(linkTooltip.linkTooltipAPI.key).addLink(selection2.from, selection2.to);
201
+ hide == null ? undefined : hide();
107
202
  })}
108
203
  >
109
- ${(_j = (_i = config == null ? void 0 : config.linkIcon) == null ? void 0 : _i.call(config)) != null ? _j : todoList.linkIcon}
204
+ ${(_l = (_k = config == null ? undefined : config.linkIcon) == null ? undefined : _k.call(config)) != null ? _l : todoList.linkIcon}
110
205
  </button>
111
206
  </host>`;
112
207
  };
@@ -114,7 +209,8 @@ toolbarComponent.props = {
114
209
  ctx: Object,
115
210
  hide: Function,
116
211
  show: Boolean,
117
- config: Object
212
+ config: Object,
213
+ selection: Object
118
214
  };
119
215
  const ToolbarElement = atomico.c(toolbarComponent);
120
216
 
@@ -133,6 +229,7 @@ class ToolbarView {
133
229
  __privateAdd(this, _content);
134
230
  this.update = (view, prevState) => {
135
231
  __privateGet(this, _tooltipProvider).update(view, prevState);
232
+ __privateGet(this, _content).selection = view.state.selection;
136
233
  };
137
234
  this.destroy = () => {
138
235
  __privateGet(this, _tooltipProvider).destroy();
@@ -146,6 +243,7 @@ class ToolbarView {
146
243
  __privateGet(this, _content).ctx = ctx;
147
244
  __privateGet(this, _content).hide = this.hide;
148
245
  __privateGet(this, _content).config = config;
246
+ __privateGet(this, _content).selection = view.state.selection;
149
247
  __privateSet(this, _tooltipProvider, new tooltip.TooltipProvider({
150
248
  content: __privateGet(this, _content),
151
249
  debounce: 20,
@@ -175,7 +273,7 @@ class ToolbarView {
175
273
  }
176
274
  _tooltipProvider = new WeakMap();
177
275
  _content = new WeakMap();
178
- index.defIfNotExists("milkdown-toolbar", ToolbarElement);
276
+ index$1.defIfNotExists("milkdown-toolbar", ToolbarElement);
179
277
  const defineFeature = (editor, config) => {
180
278
  editor.config((ctx) => {
181
279
  ctx.set(toolbar.key, {
@@ -185,4 +283,4 @@ const defineFeature = (editor, config) => {
185
283
  };
186
284
 
187
285
  exports.defineFeature = defineFeature;
188
- //# sourceMappingURL=index-A8IrOmzS.js.map
286
+ //# sourceMappingURL=index-koRsjvWB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-koRsjvWB.js","sources":["../../src/icons/functions.ts","../../src/feature/toolbar/component.ts","../../src/feature/toolbar/index.ts"],"sourcesContent":["import { html } from 'atomico'\n\nexport const functionsIcon = html`\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","import type { Component } from 'atomico'\nimport { c, html, useEffect, useUpdate } from 'atomico'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport { commandsCtx, editorViewCtx } from '@milkdown/kit/core'\nimport {\n emphasisSchema,\n inlineCodeSchema,\n linkSchema,\n strongSchema,\n toggleEmphasisCommand,\n toggleInlineCodeCommand,\n toggleStrongCommand,\n} from '@milkdown/kit/preset/commonmark'\nimport type { MarkType, Node, NodeType } from '@milkdown/kit/prose/model'\nimport type { Selection } from '@milkdown/kit/prose/state'\nimport clsx from 'clsx'\nimport { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip'\nimport {\n strikethroughSchema,\n toggleStrikethroughCommand,\n} from '@milkdown/kit/preset/gfm'\nimport {\n boldIcon,\n codeIcon,\n italicIcon,\n linkIcon,\n strikethroughIcon,\n} from '../../icons'\nimport type { ToolbarFeatureConfig } from './index'\nimport { functionsIcon } from '../../icons/functions'\nimport { NodeSelection, TextSelection } from '@milkdown/kit/prose/state'\nimport { mathInlineSchema } from '../latex/inline-latex'\nimport { FeaturesCtx } from '../../core/slice'\nimport { CrepeFeature } from '../..'\n\nexport interface ToolbarProps {\n ctx: Ctx\n hide: () => void\n show: boolean\n selection: Selection\n config?: ToolbarFeatureConfig\n}\n\nexport const toolbarComponent: Component<ToolbarProps> = ({\n ctx,\n hide,\n show,\n config,\n selection,\n}) => {\n const update = useUpdate()\n useEffect(() => {\n update()\n }, [show])\n\n const onClick = (fn: (ctx: Ctx) => void) => (e: MouseEvent) => {\n e.preventDefault()\n ctx && fn(ctx)\n update()\n }\n\n const isActive = (mark: MarkType) => {\n if (!ctx || !selection) return false\n const view = ctx.get(editorViewCtx)\n const {\n state: { doc },\n } = view\n return doc.rangeHasMark(selection.from, selection.to, mark)\n }\n\n const containsNode = (node: NodeType) => {\n if (!ctx || !selection) return false\n const view = ctx.get(editorViewCtx)\n const {\n state: { doc },\n } = view\n if (selection instanceof NodeSelection) {\n return selection.node.type === node\n }\n\n const { from, to } = selection\n\n let hasNode = false\n doc.nodesBetween(from, to, (n) => {\n if (n.type === node) {\n hasNode = true\n return false\n }\n return true\n })\n\n return hasNode\n }\n\n const flags = ctx?.get(FeaturesCtx)\n const isLatexEnabled = flags?.includes(CrepeFeature.Latex)\n\n const toggleLatex = (ctx: Ctx) => {\n const hasLatex = containsNode(mathInlineSchema.type(ctx))\n const view = ctx.get(editorViewCtx)\n const { selection, doc, tr } = view.state\n if (!hasLatex) {\n const text = doc.textBetween(selection.from, selection.to)\n let _tr = tr.replaceSelectionWith(\n mathInlineSchema.type(ctx).create({\n value: text,\n })\n )\n view.dispatch(\n _tr.setSelection(NodeSelection.create(_tr.doc, selection.from))\n )\n return\n }\n\n const { from, to } = selection\n let pos = -1\n let node: Node | null = null\n doc.nodesBetween(from, to, (n, p) => {\n if (node) return false\n if (n.type === mathInlineSchema.type(ctx)) {\n pos = p\n node = n\n return false\n }\n return true\n })\n if (!node || pos < 0) return\n\n let _tr = tr.delete(pos, pos + 1)\n const content = (node as Node).attrs.value\n _tr = _tr.insertText(content, pos)\n view.dispatch(\n _tr.setSelection(\n TextSelection.create(_tr.doc, from, to + content.length - 1)\n )\n )\n }\n\n return html`<host>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(strongSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrongCommand.key)\n })}\n >\n ${config?.boldIcon?.() ?? boldIcon}\n </button>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(emphasisSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleEmphasisCommand.key)\n })}\n >\n ${config?.italicIcon?.() ?? italicIcon}\n </button>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(strikethroughSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrikethroughCommand.key)\n })}\n >\n ${config?.strikethroughIcon?.() ?? strikethroughIcon}\n </button>\n <div class=\"divider\"></div>\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(inlineCodeSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleInlineCodeCommand.key)\n })}\n >\n ${config?.codeIcon?.() ?? codeIcon}\n </button>\n ${isLatexEnabled &&\n html`<button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && containsNode(mathInlineSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick(toggleLatex)}\n >\n ${config?.latexIcon?.() ?? functionsIcon}\n </button>`}\n <button\n type=\"button\"\n class=${clsx(\n 'toolbar-item',\n ctx && isActive(linkSchema.type(ctx)) && 'active'\n )}\n onmousedown=${onClick((ctx) => {\n const view = ctx.get(editorViewCtx)\n const { selection } = view.state\n\n if (isActive(linkSchema.type(ctx))) {\n ctx.get(linkTooltipAPI.key).removeLink(selection.from, selection.to)\n return\n }\n\n ctx.get(linkTooltipAPI.key).addLink(selection.from, selection.to)\n hide?.()\n })}\n >\n ${config?.linkIcon?.() ?? linkIcon}\n </button>\n </host>`\n}\n\ntoolbarComponent.props = {\n ctx: Object,\n hide: Function,\n show: Boolean,\n config: Object,\n selection: Object,\n}\n\nexport const ToolbarElement = c(toolbarComponent)\n","import { TooltipProvider, tooltipFactory } from '@milkdown/kit/plugin/tooltip'\nimport type { EditorState, PluginView } from '@milkdown/kit/prose/state'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport type { DefineFeature, Icon } from '../shared'\nimport { defIfNotExists } from '../../utils'\nimport type { ToolbarProps } from './component'\nimport { ToolbarElement } from './component'\n\ninterface ToolbarConfig {\n boldIcon: Icon\n codeIcon: Icon\n italicIcon: Icon\n linkIcon: Icon\n strikethroughIcon: Icon\n latexIcon: Icon\n}\n\nexport type ToolbarFeatureConfig = Partial<ToolbarConfig>\n\nconst toolbar = tooltipFactory('CREPE_TOOLBAR')\n\nclass ToolbarView implements PluginView {\n #tooltipProvider: TooltipProvider\n #content: AtomicoThis<ToolbarProps>\n constructor(ctx: Ctx, view: EditorView, config?: ToolbarFeatureConfig) {\n const content = new ToolbarElement()\n this.#content = content\n this.#content.ctx = ctx\n this.#content.hide = this.hide\n this.#content.config = config\n this.#content.selection = view.state.selection\n this.#tooltipProvider = new TooltipProvider({\n content: this.#content,\n debounce: 20,\n offset: 10,\n shouldShow(view: EditorView) {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock =\n !doc.textBetween(from, to).length &&\n selection instanceof TextSelection\n\n const isNotTextBlock = !(selection instanceof TextSelection)\n\n const activeElement = (view.dom.getRootNode() as ShadowRoot | Document)\n .activeElement\n const isTooltipChildren = content.contains(activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus ||\n isNotTextBlock ||\n empty ||\n isEmptyTextBlock ||\n isReadonly\n )\n return false\n\n return true\n },\n })\n this.#tooltipProvider.onShow = () => {\n this.#content.show = true\n }\n this.#tooltipProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#tooltipProvider.update(view, prevState)\n this.#content.selection = view.state.selection\n }\n\n destroy = () => {\n this.#tooltipProvider.destroy()\n this.#content.remove()\n }\n\n hide = () => {\n this.#tooltipProvider.hide()\n }\n}\n\ndefIfNotExists('milkdown-toolbar', ToolbarElement)\nexport const defineFeature: DefineFeature<ToolbarFeatureConfig> = (\n editor,\n config\n) => {\n editor\n .config((ctx) => {\n ctx.set(toolbar.key, {\n view: (view) => new ToolbarView(ctx, view, config),\n })\n })\n .use(toolbar)\n}\n"],"names":["html","useUpdate","useEffect","editorViewCtx","NodeSelection","FeaturesCtx","CrepeFeature","ctx","mathInlineSchema","selection","_tr","TextSelection","strongSchema","commandsCtx","toggleStrongCommand","boldIcon","emphasisSchema","toggleEmphasisCommand","italicIcon","strikethroughSchema","toggleStrikethroughCommand","strikethroughIcon","inlineCodeSchema","toggleInlineCodeCommand","codeIcon","linkSchema","linkTooltipAPI","linkIcon","c","tooltipFactory","TooltipProvider","view","defIfNotExists"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var imageBlock = require('@milkdown/kit/component/image-block');
4
+ var imageInline = require('@milkdown/kit/component/image-inline');
5
+ var todoList = require('./todo-list-V4JWO5-M.js');
6
+ require('atomico');
7
+
8
+ const defineFeature = (editor, config) => {
9
+ editor.config((ctx) => {
10
+ ctx.update(imageInline.inlineImageConfig.key, (value) => {
11
+ var _a, _b, _c, _d, _e, _f;
12
+ return {
13
+ uploadButton: (_a = config == null ? undefined : config.inlineUploadButton) != null ? _a : () => "Upload",
14
+ imageIcon: (_b = config == null ? undefined : config.inlineImageIcon) != null ? _b : () => todoList.imageIcon,
15
+ confirmButton: (_c = config == null ? undefined : config.inlineConfirmButton) != null ? _c : () => todoList.confirmIcon,
16
+ uploadPlaceholderText: (_d = config == null ? undefined : config.inlineUploadPlaceholderText) != null ? _d : "or paste link",
17
+ onUpload: (_f = (_e = config == null ? undefined : config.inlineOnUpload) != null ? _e : config == null ? undefined : config.onUpload) != null ? _f : value.onUpload,
18
+ proxyDomURL: config == null ? undefined : config.proxyDomURL
19
+ };
20
+ });
21
+ ctx.update(imageBlock.imageBlockConfig.key, (value) => {
22
+ var _a, _b, _c, _d, _e, _f, _g, _h;
23
+ return {
24
+ uploadButton: (_a = config == null ? undefined : config.blockUploadButton) != null ? _a : () => "Upload file",
25
+ imageIcon: (_b = config == null ? undefined : config.blockImageIcon) != null ? _b : () => todoList.imageIcon,
26
+ captionIcon: (_c = config == null ? undefined : config.blockCaptionIcon) != null ? _c : () => todoList.captionIcon,
27
+ confirmButton: (_d = config == null ? undefined : config.blockConfirmButton) != null ? _d : () => "Confirm",
28
+ captionPlaceholderText: (_e = config == null ? undefined : config.blockCaptionPlaceholderText) != null ? _e : "Write Image Caption",
29
+ uploadPlaceholderText: (_f = config == null ? undefined : config.blockUploadPlaceholderText) != null ? _f : "or paste link",
30
+ onUpload: (_h = (_g = config == null ? undefined : config.blockOnUpload) != null ? _g : config == null ? undefined : config.onUpload) != null ? _h : value.onUpload,
31
+ proxyDomURL: config == null ? undefined : config.proxyDomURL
32
+ };
33
+ });
34
+ }).use(imageBlock.imageBlockComponent).use(imageInline.imageInlineComponent);
35
+ };
36
+
37
+ exports.defineFeature = defineFeature;
38
+ //# sourceMappingURL=index-nDWnWxJ8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-nDWnWxJ8.js","sources":["../../src/feature/image-block/index.ts"],"sourcesContent":["import {\n imageBlockComponent,\n imageBlockConfig,\n} from '@milkdown/kit/component/image-block'\nimport {\n imageInlineComponent,\n inlineImageConfig,\n} from '@milkdown/kit/component/image-inline'\nimport type { DefineFeature, Icon } from '../shared'\nimport { captionIcon, confirmIcon, imageIcon } 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","captionIcon","imageBlockComponent","imageInlineComponent"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -1,154 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var core = require('@milkdown/kit/core');
4
- var commonmark = require('@milkdown/kit/preset/commonmark');
5
- var gfm = require('@milkdown/kit/preset/gfm');
6
- var history = require('@milkdown/kit/plugin/history');
7
- var indent = require('@milkdown/kit/plugin/indent');
8
- var utils = require('@milkdown/kit/utils');
9
- var clipboard = require('@milkdown/kit/plugin/clipboard');
10
- var trailing = require('@milkdown/kit/plugin/trailing');
11
- var ctx = require('@milkdown/kit/ctx');
3
+ var index = require('./index-DkHBuNoK.js');
4
+ require('@milkdown/kit/core');
5
+ require('@milkdown/kit/preset/commonmark');
6
+ require('@milkdown/kit/preset/gfm');
7
+ require('@milkdown/kit/plugin/history');
8
+ require('@milkdown/kit/plugin/indent');
9
+ require('@milkdown/kit/utils');
10
+ require('@milkdown/kit/plugin/clipboard');
11
+ require('@milkdown/kit/plugin/trailing');
12
+ require('@milkdown/kit/ctx');
13
+ require('@milkdown/kit/plugin/listener');
12
14
 
13
- var CrepeFeature = /* @__PURE__ */ ((CrepeFeature2) => {
14
- CrepeFeature2["CodeMirror"] = "code-mirror";
15
- CrepeFeature2["ListItem"] = "list-item";
16
- CrepeFeature2["LinkTooltip"] = "link-tooltip";
17
- CrepeFeature2["Cursor"] = "cursor";
18
- CrepeFeature2["ImageBlock"] = "image-block";
19
- CrepeFeature2["BlockEdit"] = "block-edit";
20
- CrepeFeature2["Toolbar"] = "toolbar";
21
- CrepeFeature2["Placeholder"] = "placeholder";
22
- CrepeFeature2["Table"] = "table";
23
- return CrepeFeature2;
24
- })(CrepeFeature || {});
25
- const defaultFeatures = {
26
- ["cursor" /* Cursor */]: true,
27
- ["list-item" /* ListItem */]: true,
28
- ["link-tooltip" /* LinkTooltip */]: true,
29
- ["image-block" /* ImageBlock */]: true,
30
- ["block-edit" /* BlockEdit */]: true,
31
- ["placeholder" /* Placeholder */]: true,
32
- ["toolbar" /* Toolbar */]: true,
33
- ["code-mirror" /* CodeMirror */]: true,
34
- ["table" /* Table */]: true
35
- };
36
- async function loadFeature(feature, editor, config) {
37
- switch (feature) {
38
- case "code-mirror" /* CodeMirror */: {
39
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-3mj4YaCA.js'); });
40
- return defineFeature(editor, config);
41
- }
42
- case "list-item" /* ListItem */: {
43
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-Dt55rF23.js'); });
44
- return defineFeature(editor, config);
45
- }
46
- case "link-tooltip" /* LinkTooltip */: {
47
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BIXWL4Or.js'); });
48
- return defineFeature(editor, config);
49
- }
50
- case "image-block" /* ImageBlock */: {
51
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BrCpWPcp.js'); });
52
- return defineFeature(editor, config);
53
- }
54
- case "cursor" /* Cursor */: {
55
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-BuSAwj4j.js'); });
56
- return defineFeature(editor, config);
57
- }
58
- case "block-edit" /* BlockEdit */: {
59
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-By3ewOiO.js'); });
60
- return defineFeature(editor, config);
61
- }
62
- case "placeholder" /* Placeholder */: {
63
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-Dub20F3z.js'); });
64
- return defineFeature(editor, config);
65
- }
66
- case "toolbar" /* Toolbar */: {
67
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-A8IrOmzS.js'); });
68
- return defineFeature(editor, config);
69
- }
70
- case "table" /* Table */: {
71
- const { defineFeature } = await Promise.resolve().then(function () { return require('./index-DmOOfQPi.js'); });
72
- return defineFeature(editor, config);
73
- }
74
- }
75
- }
76
15
 
77
- const FeaturesCtx = ctx.createSlice([], "FeaturesCtx");
78
- function configureFeatures(features) {
79
- return (ctx) => {
80
- ctx.inject(FeaturesCtx, features);
81
- };
82
- }
83
16
 
84
- var __typeError = (msg) => {
85
- throw TypeError(msg);
86
- };
87
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
88
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
89
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
90
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
91
- var _editor, _initPromise, _rootElement, _editable;
92
- class Crepe {
93
- constructor({
94
- root,
95
- features = {},
96
- featureConfigs = {},
97
- defaultValue = ""
98
- }) {
99
- __privateAdd(this, _editor);
100
- __privateAdd(this, _initPromise);
101
- __privateAdd(this, _rootElement);
102
- __privateAdd(this, _editable, true);
103
- var _a;
104
- const enabledFeatures = Object.entries({
105
- ...defaultFeatures,
106
- ...features
107
- }).filter(([, enabled]) => enabled).map(([feature]) => feature);
108
- __privateSet(this, _rootElement, (_a = typeof root === "string" ? document.querySelector(root) : root) != null ? _a : document.body);
109
- __privateSet(this, _editor, core.Editor.make().config(configureFeatures(enabledFeatures)).config((ctx) => {
110
- ctx.set(core.rootCtx, __privateGet(this, _rootElement));
111
- ctx.set(core.defaultValueCtx, defaultValue);
112
- ctx.set(core.editorViewOptionsCtx, {
113
- editable: () => __privateGet(this, _editable)
114
- });
115
- ctx.update(indent.indentConfig.key, (value) => ({
116
- ...value,
117
- size: 4
118
- }));
119
- }).use(commonmark.commonmark).use(history.history).use(indent.indent).use(trailing.trailing).use(clipboard.clipboard).use(gfm.gfm));
120
- const promiseList = [];
121
- enabledFeatures.forEach((feature) => {
122
- const config = featureConfigs[feature];
123
- promiseList.push(loadFeature(feature, __privateGet(this, _editor), config));
124
- });
125
- __privateSet(this, _initPromise, Promise.all(promiseList));
126
- }
127
- async create() {
128
- await __privateGet(this, _initPromise);
129
- return __privateGet(this, _editor).create();
130
- }
131
- async destroy() {
132
- await __privateGet(this, _initPromise);
133
- return __privateGet(this, _editor).destroy();
134
- }
135
- get editor() {
136
- return __privateGet(this, _editor);
137
- }
138
- setReadonly(value) {
139
- __privateSet(this, _editable, !value);
140
- return this;
141
- }
142
- getMarkdown() {
143
- return __privateGet(this, _editor).action(utils.getMarkdown());
144
- }
145
- }
146
- _editor = new WeakMap();
147
- _initPromise = new WeakMap();
148
- _rootElement = new WeakMap();
149
- _editable = new WeakMap();
150
- Crepe.Feature = CrepeFeature;
151
-
152
- exports.Crepe = Crepe;
153
- exports.CrepeFeature = CrepeFeature;
17
+ exports.Crepe = index.Crepe;
18
+ exports.CrepeFeature = index.CrepeFeature;
154
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.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'\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}\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}\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}\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 }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\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 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 } from './slice'\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(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(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"],"names":["CrepeFeature","createSlice","Editor","rootCtx","defaultValueCtx","editorViewOptionsCtx","indentConfig","commonmark","history","indent","trailing","clipboard","gfm","getMarkdown"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}