@jvs-milkdown/crepe 1.2.12 → 1.2.14

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 (114) hide show
  1. package/lib/cjs/builder.js +41 -2
  2. package/lib/cjs/builder.js.map +1 -1
  3. package/lib/cjs/feature/block-edit/index.js +10 -2
  4. package/lib/cjs/feature/block-edit/index.js.map +1 -1
  5. package/lib/cjs/feature/code-mirror/index.js +9 -2
  6. package/lib/cjs/feature/code-mirror/index.js.map +1 -1
  7. package/lib/cjs/feature/cursor/index.js +9 -2
  8. package/lib/cjs/feature/cursor/index.js.map +1 -1
  9. package/lib/cjs/feature/image-block/index.js +10 -3
  10. package/lib/cjs/feature/image-block/index.js.map +1 -1
  11. package/lib/cjs/feature/inline-diff/index.js +1298 -0
  12. package/lib/cjs/feature/inline-diff/index.js.map +1 -0
  13. package/lib/cjs/feature/latex/index.js +9 -2
  14. package/lib/cjs/feature/latex/index.js.map +1 -1
  15. package/lib/cjs/feature/link-tooltip/index.js +10 -2
  16. package/lib/cjs/feature/link-tooltip/index.js.map +1 -1
  17. package/lib/cjs/feature/list-item/index.js +9 -2
  18. package/lib/cjs/feature/list-item/index.js.map +1 -1
  19. package/lib/cjs/feature/placeholder/index.js +9 -2
  20. package/lib/cjs/feature/placeholder/index.js.map +1 -1
  21. package/lib/cjs/feature/table/index.js +10 -2
  22. package/lib/cjs/feature/table/index.js.map +1 -1
  23. package/lib/cjs/feature/toolbar/index.js +134 -12
  24. package/lib/cjs/feature/toolbar/index.js.map +1 -1
  25. package/lib/cjs/index.js +1410 -241
  26. package/lib/cjs/index.js.map +1 -1
  27. package/lib/esm/builder.js +41 -2
  28. package/lib/esm/builder.js.map +1 -1
  29. package/lib/esm/feature/block-edit/index.js +10 -2
  30. package/lib/esm/feature/block-edit/index.js.map +1 -1
  31. package/lib/esm/feature/code-mirror/index.js +9 -2
  32. package/lib/esm/feature/code-mirror/index.js.map +1 -1
  33. package/lib/esm/feature/cursor/index.js +9 -2
  34. package/lib/esm/feature/cursor/index.js.map +1 -1
  35. package/lib/esm/feature/image-block/index.js +10 -3
  36. package/lib/esm/feature/image-block/index.js.map +1 -1
  37. package/lib/esm/feature/inline-diff/index.js +1274 -0
  38. package/lib/esm/feature/inline-diff/index.js.map +1 -0
  39. package/lib/esm/feature/latex/index.js +9 -2
  40. package/lib/esm/feature/latex/index.js.map +1 -1
  41. package/lib/esm/feature/link-tooltip/index.js +10 -2
  42. package/lib/esm/feature/link-tooltip/index.js.map +1 -1
  43. package/lib/esm/feature/list-item/index.js +9 -2
  44. package/lib/esm/feature/list-item/index.js.map +1 -1
  45. package/lib/esm/feature/placeholder/index.js +9 -2
  46. package/lib/esm/feature/placeholder/index.js.map +1 -1
  47. package/lib/esm/feature/table/index.js +10 -2
  48. package/lib/esm/feature/table/index.js.map +1 -1
  49. package/lib/esm/feature/toolbar/index.js +134 -12
  50. package/lib/esm/feature/toolbar/index.js.map +1 -1
  51. package/lib/esm/index.js +1392 -242
  52. package/lib/esm/index.js.map +1 -1
  53. package/lib/theme/common/diff-block.css +41 -0
  54. package/lib/theme/common/inline-diff.css +142 -0
  55. package/lib/theme/common/style.css +2 -0
  56. package/lib/theme/common/table.css +4 -4
  57. package/lib/tsconfig.tsbuildinfo +1 -1
  58. package/lib/types/core/builder.d.ts +2 -0
  59. package/lib/types/core/builder.d.ts.map +1 -1
  60. package/lib/types/core/locale.d.ts +4 -0
  61. package/lib/types/core/locale.d.ts.map +1 -1
  62. package/lib/types/feature/diff-block/index.d.ts +10 -0
  63. package/lib/types/feature/diff-block/index.d.ts.map +1 -0
  64. package/lib/types/feature/fixed-toolbar/document-header.d.ts.map +1 -1
  65. package/lib/types/feature/fixed-toolbar/index.d.ts.map +1 -1
  66. package/lib/types/feature/fixed-toolbar/menu-bar.d.ts.map +1 -1
  67. package/lib/types/feature/fixed-toolbar/outline-panel.d.ts.map +1 -1
  68. package/lib/types/feature/index.d.ts +7 -1
  69. package/lib/types/feature/index.d.ts.map +1 -1
  70. package/lib/types/feature/inline-diff/change-panel.d.ts +4 -0
  71. package/lib/types/feature/inline-diff/change-panel.d.ts.map +1 -0
  72. package/lib/types/feature/inline-diff/config.d.ts +12 -0
  73. package/lib/types/feature/inline-diff/config.d.ts.map +1 -0
  74. package/lib/types/feature/inline-diff/diff-engine.d.ts +20 -0
  75. package/lib/types/feature/inline-diff/diff-engine.d.ts.map +1 -0
  76. package/lib/types/feature/inline-diff/diff-view.d.ts +2 -0
  77. package/lib/types/feature/inline-diff/diff-view.d.ts.map +1 -0
  78. package/lib/types/feature/inline-diff/doc-builder.d.ts +21 -0
  79. package/lib/types/feature/inline-diff/doc-builder.d.ts.map +1 -0
  80. package/lib/types/feature/inline-diff/index.d.ts +9 -0
  81. package/lib/types/feature/inline-diff/index.d.ts.map +1 -0
  82. package/lib/types/feature/loader.d.ts.map +1 -1
  83. package/lib/types/feature/toolbar/component.d.ts.map +1 -1
  84. package/lib/types/feature/toolbar/index.d.ts.map +1 -1
  85. package/lib/types/icons/remove.d.ts +1 -1
  86. package/lib/types/icons/remove.d.ts.map +1 -1
  87. package/lib/types/utils/fixed-toolbar-popup-state.d.ts +7 -0
  88. package/lib/types/utils/fixed-toolbar-popup-state.d.ts.map +1 -0
  89. package/package.json +15 -4
  90. package/src/core/builder.ts +19 -0
  91. package/src/core/locale.ts +7 -0
  92. package/src/feature/diff-block/index.ts +48 -0
  93. package/src/feature/fixed-toolbar/index.ts +97 -25
  94. package/src/feature/fixed-toolbar/menu-bar.tsx +13 -2
  95. package/src/feature/fixed-toolbar/outline-panel.tsx +3 -2
  96. package/src/feature/fixed-toolbar/shortcut-help-modal.tsx +1 -1
  97. package/src/feature/fixed-toolbar/view-menu-state.ts +1 -1
  98. package/src/feature/image-block/index.ts +1 -1
  99. package/src/feature/index.ts +12 -0
  100. package/src/feature/inline-diff/change-panel.ts +280 -0
  101. package/src/feature/inline-diff/config.ts +28 -0
  102. package/src/feature/inline-diff/diff-engine.ts +181 -0
  103. package/src/feature/inline-diff/diff-view.ts +2 -0
  104. package/src/feature/inline-diff/doc-builder.ts +139 -0
  105. package/src/feature/inline-diff/index.ts +514 -0
  106. package/src/feature/loader.ts +8 -0
  107. package/src/feature/toolbar/component.tsx +97 -9
  108. package/src/feature/toolbar/index.ts +33 -0
  109. package/src/icons/remove.ts +1 -0
  110. package/src/theme/common/diff-block.css +43 -0
  111. package/src/theme/common/inline-diff.css +148 -0
  112. package/src/theme/common/style.css +2 -0
  113. package/src/theme/common/table.css +4 -4
  114. package/src/utils/fixed-toolbar-popup-state.ts +27 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/core/locale.ts","../../../../src/core/slice.ts","../../../../src/icons/align-center.ts","../../../../src/icons/align-left.ts","../../../../src/icons/align-right.ts","../../../../src/icons/drag-handle.ts","../../../../src/icons/plus.ts","../../../../src/icons/remove.ts","../../../../src/icons/merge-cell.ts","../../../../src/icons/split-cell.ts","../../../../src/feature/index.ts","../../../../src/feature/table/index.ts"],"sourcesContent":["import type { Ctx } from '@jvs-milkdown/kit/ctx'\n\nimport { createSlice } from '@jvs-milkdown/kit/ctx'\n\nexport const zhCN = {\n // block handle\n 'handle.add': '插入内容',\n 'handle.menu': '点击打开菜单',\n 'handle.drag': '拖拽移动位置',\n // placeholder\n 'placeholder.text': \"输入正文或 '/' 快速插入内容\",\n\n // toolbar\n 'toolbar.heading': '标题',\n 'toolbar.formatting': '格式',\n 'toolbar.function': '功能',\n 'toolbar.formatPainter': '格式刷',\n\n // menu bar\n 'menuBar.file': '文件',\n 'menuBar.edit': '编辑',\n 'menuBar.view': '视图',\n 'menuBar.insert': '插入',\n 'menuBar.format': '格式',\n\n // view menu\n 'view.outline': '大纲面板',\n 'view.outlineLeft': '在左侧显示',\n 'view.outlineRight': '在右侧显示',\n 'view.docBackground': '文档背景色',\n 'view.title': '显示标题',\n 'view.cover': '显示封面',\n 'view.editorWidth': '内容宽度',\n 'view.widthDefault': '默认',\n 'view.widthWide': '较宽',\n 'view.widthFull': '全宽',\n\n // code-mirror\n 'codeMirror.searchPlaceholder': '搜索语言',\n 'codeMirror.noResultText': '无结果',\n 'codeMirror.previewToggleOptionEdit': '编辑',\n 'codeMirror.previewToggleOptionHide': '隐藏',\n 'codeMirror.previewLabel': '预览',\n 'codeMirror.wrapText': '自动换行',\n\n // link-tooltip\n 'linkTooltip.pasteLink': '粘贴链接...',\n\n // image-block\n 'imageBlock.inlineUploadButton': '上传',\n 'imageBlock.inlineUploadPlaceholder': '或粘贴链接',\n 'imageBlock.blockUploadButton': '上传文件',\n 'imageBlock.blockUploadPlaceholder': '或粘贴链接',\n 'imageBlock.blockCaptionPlaceholder': '写下图片描述...',\n 'imageBlock.blockConfirmButton': '确定',\n\n // attachment-block\n 'attachmentBlock.uploadButton': '上传文件',\n 'attachmentBlock.uploadPlaceholderText': '或点击上传',\n 'attachmentBlock.download': '下载',\n\n // menu categories\n 'menu.group.text': '正文',\n 'menu.group.block': '段落',\n 'menu.group.list': '列表',\n 'menu.group.advanced': '高级',\n\n // menu items\n 'menu.item.text': '普通文本',\n 'menu.item.h1': '标题 1',\n 'menu.item.h2': '标题 2',\n 'menu.item.h3': '标题 3',\n 'menu.item.h4': '标题 4',\n 'menu.item.h5': '标题 5',\n 'menu.item.h6': '标题 6',\n 'menu.item.quote': '引用',\n 'menu.item.divider': '分割线',\n 'menu.item.bulletList': '无序列表',\n 'menu.item.orderedList': '有序列表',\n 'menu.item.taskList': '任务列表',\n 'menu.item.image': '图片',\n 'menu.item.attachment': '视频或文件',\n 'menu.item.code': '代码块',\n 'menu.item.table': '表格',\n 'menu.item.math': '公式',\n 'menu.item.bold': '加粗',\n 'menu.item.italic': '斜体',\n 'menu.item.strikethrough': '删除线',\n 'menu.item.underline': '下划线',\n 'menu.item.highlight': '高亮',\n 'menu.item.lineCode': '行内代码',\n 'menu.item.link': '链接',\n\n // menu tooltips\n 'menu.tooltip.text': '普通文本 (Ctrl+Alt+0)',\n 'menu.tooltip.h1': '标题 1 (Ctrl+Alt+1)\\nMarkdown: # 空格',\n 'menu.tooltip.h2': '标题 2 (Ctrl+Alt+2)\\nMarkdown: ## 空格',\n 'menu.tooltip.h3': '标题 3 (Ctrl+Alt+3)\\nMarkdown: ### 空格',\n 'menu.tooltip.h4': '标题 4 (Ctrl+Alt+4)\\nMarkdown: #### 空格',\n 'menu.tooltip.h5': '标题 5 (Ctrl+Alt+5)\\nMarkdown: ##### 空格',\n 'menu.tooltip.h6': '标题 6 (Ctrl+Alt+6)\\nMarkdown: ###### 空格',\n 'menu.tooltip.quote': '引用 (Ctrl+Shift+9)\\nMarkdown: > 空格',\n 'menu.tooltip.divider': '分割线\\nMarkdown: --- 空格',\n 'menu.tooltip.bulletList':\n '无序列表 (Ctrl+Shift+8)\\nMarkdown: - 空格 或 * 空格',\n 'menu.tooltip.orderedList': '有序列表 (Ctrl+Shift+7)\\nMarkdown: 1. 空格',\n 'menu.tooltip.taskList': '任务列表\\nMarkdown: - [ ] 空格',\n 'menu.tooltip.image': '图片\\nMarkdown: ![alt](url)',\n 'menu.tooltip.code': '代码块 (Ctrl+Shift+\\\\)\\nMarkdown: ``` 回车',\n 'menu.tooltip.table': '表格\\nMarkdown: | | |',\n 'menu.tooltip.math': '公式\\nMarkdown: $$ 回车',\n\n // custom block menu items\n 'customMenu.indentAndAlign': '缩进和对齐',\n 'customMenu.color': '颜色',\n 'customMenu.cut': '剪切',\n 'customMenu.copy': '复制',\n 'customMenu.delete': '删除',\n 'customMenu.addBelow': '在下方添加',\n 'customMenu.alignLeft': '左对齐',\n 'customMenu.alignCenter': '居中对齐',\n 'customMenu.alignRight': '右对齐',\n 'customMenu.increaseIndent': '增加缩进',\n 'customMenu.decreaseIndent': '减少缩进',\n 'customMenu.textColor': '字体颜色',\n 'customMenu.bgColor': '背景颜色',\n 'customMenu.restoreDefault': '恢复默认',\n 'customMenu.colorDefault': '默认',\n 'customMenu.colorRed': '红色',\n 'customMenu.colorOrange': '橙色',\n 'customMenu.colorYellow': '黄色',\n 'customMenu.colorGreen': '绿色',\n 'customMenu.colorBlue': '蓝色',\n 'customMenu.colorPurple': '紫色',\n 'customMenu.colorGray': '灰色',\n 'customMenu.insertTable': '插入支持富文本的表格',\n\n 'customMenu.fontDefault': '默认',\n 'font.fangSong': '仿宋',\n 'font.stFangsong': '华文仿宋',\n 'font.stSong': '华文宋体',\n 'font.stKaiti': '华文楷体',\n 'font.simSun': '宋体',\n 'font.microsoftYaHei': '微软雅黑',\n 'font.kaiTi': '楷体',\n 'font.simHei': '黑体',\n\n // latex\n 'latex.escToExit': '按 ESC 完成输入',\n 'latex.helpDoc': '查看帮助文档',\n 'latex.emptyPlaceholder': '添加 LaTeX 公式',\n 'latex.inputPlaceholder': '请输入公式',\n\n // shortcuts\n 'shortcuts.title': '键盘快捷键',\n 'shortcuts.formatting': '文本格式',\n 'shortcuts.bold': '加粗',\n 'shortcuts.italic': '斜体',\n 'shortcuts.underline': '下划线',\n 'shortcuts.strikethrough': '删除线',\n 'shortcuts.inlineCode': '行内代码',\n 'shortcuts.highlight': '高亮',\n 'shortcuts.paragraph': '段落',\n 'shortcuts.heading': '标题',\n 'shortcuts.block': '块级元素',\n 'shortcuts.codeBlock': '代码块',\n 'shortcuts.blockquote': '引用',\n 'shortcuts.orderedList': '有序列表',\n 'shortcuts.bulletList': '无序列表',\n 'shortcuts.indent': '增加缩进',\n 'shortcuts.outdent': '减少缩进',\n 'shortcuts.hardBreak': '换行',\n 'shortcuts.history': '历史记录',\n 'shortcuts.undo': '撤销',\n 'shortcuts.redo': '重做',\n}\n\nexport const enUS: typeof zhCN = {\n 'handle.add': 'Add content',\n 'handle.menu': 'Open menu',\n 'handle.drag': 'Drag to move',\n 'placeholder.text': \"Type '/' to use slash menu\",\n\n 'toolbar.heading': 'Heading',\n 'toolbar.formatting': 'Formatting',\n 'toolbar.function': 'Function',\n 'toolbar.formatPainter': 'Format Painter',\n\n 'menuBar.file': 'File',\n 'menuBar.edit': 'Edit',\n 'menuBar.view': 'View',\n 'menuBar.insert': 'Insert',\n 'menuBar.format': 'Format',\n\n 'view.outline': 'Outline Panel',\n 'view.outlineLeft': 'Show on Left',\n 'view.outlineRight': 'Show on Right',\n 'view.docBackground': 'Document Background',\n 'view.title': 'Show Title',\n 'view.cover': 'Show Cover',\n 'view.editorWidth': 'Content Width',\n 'view.widthDefault': 'Default',\n 'view.widthWide': 'Wide',\n 'view.widthFull': 'Full Width',\n\n 'codeMirror.searchPlaceholder': 'Search language',\n 'codeMirror.noResultText': 'No result',\n 'codeMirror.previewToggleOptionEdit': 'Edit',\n 'codeMirror.previewToggleOptionHide': 'Hide',\n 'codeMirror.previewLabel': 'Preview',\n 'codeMirror.wrapText': 'Wrap',\n\n 'linkTooltip.pasteLink': 'Paste link...',\n\n 'imageBlock.inlineUploadButton': 'Upload',\n 'imageBlock.inlineUploadPlaceholder': 'or paste link',\n 'imageBlock.blockUploadButton': 'Upload file',\n 'imageBlock.blockUploadPlaceholder': 'or paste link',\n 'imageBlock.blockCaptionPlaceholder': 'Write Image Caption',\n 'imageBlock.blockConfirmButton': 'Confirm',\n\n 'attachmentBlock.uploadButton': 'Upload file',\n 'attachmentBlock.uploadPlaceholderText': 'or click to upload',\n 'attachmentBlock.download': 'Download',\n\n 'menu.group.text': 'Text',\n 'menu.group.block': 'Block',\n 'menu.group.list': 'List',\n 'menu.group.advanced': 'Advanced',\n\n 'menu.item.text': 'Text',\n 'menu.item.h1': 'Heading 1',\n 'menu.item.h2': 'Heading 2',\n 'menu.item.h3': 'Heading 3',\n 'menu.item.h4': 'Heading 4',\n 'menu.item.h5': 'Heading 5',\n 'menu.item.h6': 'Heading 6',\n 'menu.item.quote': 'Quote',\n 'menu.item.divider': 'Divider',\n 'menu.item.bulletList': 'Bullet List',\n 'menu.item.orderedList': 'Ordered List',\n 'menu.item.taskList': 'Task List',\n 'menu.item.image': 'Image',\n 'menu.item.attachment': 'Video or File',\n 'menu.item.code': 'Code',\n 'menu.item.table': 'Table',\n 'menu.item.math': 'Math',\n 'menu.item.bold': 'Bold',\n 'menu.item.italic': 'Italic',\n 'menu.item.strikethrough': 'Strikethrough',\n 'menu.item.underline': 'Underline',\n 'menu.item.highlight': 'Highlight',\n 'menu.item.lineCode': 'Inline Code',\n 'menu.item.link': 'Link',\n\n 'menu.tooltip.text': 'Text (Ctrl+Alt+0)',\n 'menu.tooltip.h1': 'Heading 1 (Ctrl+Alt+1)\\nMarkdown: # Space',\n 'menu.tooltip.h2': 'Heading 2 (Ctrl+Alt+2)\\nMarkdown: ## Space',\n 'menu.tooltip.h3': 'Heading 3 (Ctrl+Alt+3)\\nMarkdown: ### Space',\n 'menu.tooltip.h4': 'Heading 4 (Ctrl+Alt+4)\\nMarkdown: #### Space',\n 'menu.tooltip.h5': 'Heading 5 (Ctrl+Alt+5)\\nMarkdown: ##### Space',\n 'menu.tooltip.h6': 'Heading 6 (Ctrl+Alt+6)\\nMarkdown: ###### Space',\n 'menu.tooltip.quote': 'Quote (Ctrl+Shift+9)\\nMarkdown: > Space',\n 'menu.tooltip.divider': 'Divider\\nMarkdown: --- Space',\n 'menu.tooltip.bulletList':\n 'Bullet List (Ctrl+Shift+8)\\nMarkdown: - Space or * Space',\n 'menu.tooltip.orderedList': 'Ordered List (Ctrl+Shift+7)\\nMarkdown: 1. Space',\n 'menu.tooltip.taskList': 'Task List\\nMarkdown: - [ ] Space',\n 'menu.tooltip.image': 'Image\\nMarkdown: ![alt](url)',\n 'menu.tooltip.code': 'Code Block (Ctrl+Shift+\\\\)\\nMarkdown: ``` Enter',\n 'menu.tooltip.table': 'Table\\nMarkdown: | | |',\n 'menu.tooltip.math': 'Math\\nMarkdown: $$ Enter',\n\n 'customMenu.indentAndAlign': 'Indent & Align',\n 'customMenu.color': 'Color',\n 'customMenu.cut': 'Cut',\n 'customMenu.copy': 'Copy',\n 'customMenu.delete': 'Delete',\n 'customMenu.addBelow': 'Add below',\n 'customMenu.alignLeft': 'Align Left',\n 'customMenu.alignCenter': 'Align Center',\n 'customMenu.alignRight': 'Align Right',\n 'customMenu.increaseIndent': 'Increase Indent',\n 'customMenu.decreaseIndent': 'Decrease Indent',\n 'customMenu.textColor': 'Text Color',\n 'customMenu.bgColor': 'Background Color',\n 'customMenu.restoreDefault': 'Restore Default',\n 'customMenu.colorDefault': 'Default',\n 'customMenu.colorRed': 'Red',\n 'customMenu.colorOrange': 'Orange',\n 'customMenu.colorYellow': 'Yellow',\n 'customMenu.colorGreen': 'Green',\n 'customMenu.colorBlue': 'Blue',\n 'customMenu.colorPurple': 'Purple',\n 'customMenu.colorGray': 'Gray',\n 'customMenu.insertTable': 'Insert Table',\n\n 'customMenu.fontDefault': 'Default',\n 'font.fangSong': 'FangSong',\n 'font.stFangsong': 'STFangsong',\n 'font.stSong': 'STSong',\n 'font.stKaiti': 'STKaiti',\n 'font.simSun': 'SimSun',\n 'font.microsoftYaHei': 'Microsoft YaHei',\n 'font.kaiTi': 'KaiTi',\n 'font.simHei': 'SimHei',\n\n 'latex.escToExit': 'Press ESC to finish',\n 'latex.helpDoc': 'Help Doc',\n 'latex.emptyPlaceholder': 'Add LaTeX',\n 'latex.inputPlaceholder': 'Please enter formula',\n\n 'shortcuts.title': 'Keyboard Shortcuts',\n 'shortcuts.formatting': 'Text Formatting',\n 'shortcuts.bold': 'Bold',\n 'shortcuts.italic': 'Italic',\n 'shortcuts.underline': 'Underline',\n 'shortcuts.strikethrough': 'Strikethrough',\n 'shortcuts.inlineCode': 'Inline Code',\n 'shortcuts.highlight': 'Highlight',\n 'shortcuts.paragraph': 'Paragraph',\n 'shortcuts.heading': 'Heading',\n 'shortcuts.block': 'Block Elements',\n 'shortcuts.codeBlock': 'Code Block',\n 'shortcuts.blockquote': 'Blockquote',\n 'shortcuts.orderedList': 'Ordered List',\n 'shortcuts.bulletList': 'Bullet List',\n 'shortcuts.indent': 'Indent',\n 'shortcuts.outdent': 'Outdent',\n 'shortcuts.hardBreak': 'Hard Break',\n 'shortcuts.history': 'History',\n 'shortcuts.undo': 'Undo',\n 'shortcuts.redo': 'Redo',\n}\n\nexport type CrepeTranslations = typeof zhCN\n\nexport const translationsCtx = createSlice<\n Record<string, Partial<CrepeTranslations>>\n>(\n {\n 'zh-CN': zhCN,\n 'en-US': enUS,\n },\n 'translationsCtx'\n)\n\nexport const localeCtx = createSlice('zh-CN', 'localeCtx')\n\nexport function i18n(ctx: Ctx, key: keyof CrepeTranslations): string {\n const translations = ctx.get(translationsCtx)\n const locale = ctx.get(localeCtx)\n return (\n translations[locale]?.[key] ??\n translations['zh-CN']?.[key] ??\n enUS[key] ??\n key\n )\n}\n","import { createSlice, type Ctx } from '@jvs-milkdown/kit/ctx'\n\nimport type { CrepeFeature } from '../feature'\nimport type { CrepeBuilder } from './builder'\n\n/// @internal\n/// The feature flags context.\n/// ⚠️ Most of the time, you should use `useCrepeFeatures` to get the features.\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\n/// @internal\n/// The crepe editor context.\n/// ⚠️ Most of the time, you should use `useCrepe` to get the crepe editor instance.\nexport const CrepeCtx = createSlice({} as CrepeBuilder, 'CrepeCtx')\n\n/// The crepe editor context.\n/// You can use this context to access the crepe editor instance within Milkdown plugins.\n/// ```ts\n/// import { crepeCtx } from '@jvs-milkdown/crepe'\n/// const plugin = (ctx: Ctx) => {\n/// return () => {\n/// const crepe = useCrepe(ctx)\n/// crepe.setReadonly(true)\n/// }\n/// }\n/// ```\nexport function useCrepe(ctx: Ctx) {\n // We should use string slice here to avoid the slice to be bundled in multiple entries\n return ctx.get<CrepeBuilder, 'CrepeCtx'>('CrepeCtx')\n}\n\n/// Check the enabled FeatureFlags\n/// ```ts\n/// import { useCrepeFeatures } from '@jvs-milkdown/crepe'\n/// const plugin = (ctx: Ctx) => {\n/// const features = useCrepeFeatures(ctx)\n/// if (features.get().includes(CrepeFeature.CodeMirror)) {\n/// // Do something with CodeMirror\n/// }\n/// }\nexport function useCrepeFeatures(ctx: Ctx) {\n // We should use string slice here to avoid the slice to be bundled in multiple entries\n return ctx.use<CrepeFeature[], 'FeaturesCtx'>('FeaturesCtx')\n}\n\n/// @internal\nexport function crepeFeatureConfig(feature: CrepeFeature) {\n return (ctx: Ctx) => {\n useCrepeFeatures(ctx).update((features) => {\n if (features.includes(feature)) {\n return features\n }\n return [...features, feature]\n })\n }\n}\n\nexport { localeCtx, translationsCtx } from './locale'\n","export const alignCenterIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n ><path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52612\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52613\"></path><path d=\"M288 497.536c0 25.664 20.8 46.464 46.464 46.464h355.072a46.464 46.464 0 0 0 0-92.928H334.464c-25.664 0-46.464 20.8-46.464 46.464zM224 750.464c0 25.6 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H270.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52614\"></path></svg>\n`\n\nexport const alignCenterIconActive = `\n<svg width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"52154\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52155\"></path><path d=\"M288 497.536c0 25.664 20.8 46.464 46.464 46.464h355.072a46.464 46.464 0 0 0 0-92.928H334.464c-25.664 0-46.464 20.8-46.464 46.464zM224 750.464c0 25.6 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H270.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"52156\"></path></svg>\n`\n","export const alignLeftIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\"\n height=\"24\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52306\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52307\"></path><path d=\"M128 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52308\"></path><path d=\"M128 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H174.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52309\"></path></svg>\n`\nexport const alignLeftIconActive = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\"\n height=\"24\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"50196\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"50197\"></path><path d=\"M128 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"50198\"></path><path d=\"M128 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H174.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"50199\"></path>\n </svg>\n`\n","export const alignRightIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n ><path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52459\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52460\"></path><path d=\"M447.99999995 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52461\"></path><path d=\"M319.99999997 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H366.46399997c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52462\"></path></svg>\n`\nexport const alignRightIconActive = `\n<svg width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"52001\"></path>\n <path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52002\"></path><path d=\"M447.99999995 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52003\"></path><path d=\"M319.99999997 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H366.46399997c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"52004\"></path>\n </svg>\n`\n","export const dragHandleIcon = `\n <svg viewBox=\"0 0 1024 1024\"xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"height=\"16\">\n <path d=\"M663.744 737.92q3.84 0 7.68 0.384t7.68 1.088q3.84 0.768 7.488 1.92 3.712 1.152 7.296 2.56 3.52 1.536 6.976 3.392 3.392 1.792 6.592 3.968 3.2 2.176 6.208 4.608 3.008 2.496 5.76 5.184 2.688 2.752 5.12 5.76 2.496 3.008 4.608 6.272 2.176 3.2 3.968 6.656 1.856 3.392 3.328 7.04 1.472 3.52 2.56 7.232 1.152 3.712 1.92 7.552 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.68 0 3.968-0.384 7.808-0.32 3.84-1.088 7.68t-1.92 7.488q-1.088 3.712-2.56 7.36-1.472 3.584-3.328 7.04-1.792 3.392-3.968 6.592-2.112 3.2-4.608 6.208-2.432 3.008-5.12 5.76-2.752 2.752-5.76 5.248-3.008 2.432-6.208 4.608-3.2 2.176-6.592 3.968-3.456 1.856-7.04 3.328-3.52 1.472-7.232 2.56-3.712 1.152-7.488 1.92-3.84 0.768-7.68 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.776-0.768-7.488-1.92-3.712-1.088-7.232-2.56-3.584-1.472-7.04-3.328-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-2.944-2.496-5.76-5.248-2.688-2.752-5.12-5.76-2.432-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.792-3.392-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.488-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.744 0-3.84 0.384-7.744 0.384-3.84 1.088-7.68 0.768-3.84 1.92-7.552 1.088-3.712 2.56-7.296 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.176-3.2 4.608-6.272 2.432-3.008 5.12-5.76 2.816-2.688 5.76-5.12 3.008-2.56 6.208-4.672 3.2-2.176 6.656-3.968 3.392-1.856 6.976-3.328 3.52-1.472 7.232-2.624 3.712-1.152 7.488-1.92 3.84-0.704 7.68-1.088 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.84 0.768 7.488 1.92 3.712 1.088 7.296 2.56 3.52 1.536 6.976 3.328 3.392 1.856 6.592 3.968 3.2 2.176 6.208 4.672 3.008 2.432 5.76 5.184 2.688 2.752 5.12 5.76 2.496 3.008 4.608 6.208 2.176 3.2 3.968 6.656 1.856 3.456 3.328 7.04 1.472 3.584 2.56 7.296 1.152 3.712 1.92 7.488 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.744t-0.384 7.808q-0.32 3.84-1.088 7.68-0.768 3.776-1.92 7.488-1.088 3.712-2.56 7.296t-3.328 7.04q-1.792 3.392-3.968 6.656-2.112 3.2-4.608 6.208-2.432 3.008-5.12 5.76-2.752 2.752-5.76 5.184-3.008 2.496-6.208 4.608-3.2 2.176-6.592 4.032-3.456 1.792-7.04 3.328-3.52 1.472-7.232 2.56-3.712 1.152-7.488 1.92-3.84 0.768-7.68 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.776-0.768-7.488-1.92-3.712-1.088-7.232-2.56-3.584-1.536-7.04-3.328-3.392-1.856-6.592-4.032-3.2-2.112-6.208-4.608-2.944-2.432-5.76-5.184-2.688-2.752-5.12-5.76t-4.608-6.208q-2.176-3.2-3.968-6.656-1.792-3.456-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.552-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.68 0-3.904 0.384-7.808 0.384-3.84 1.088-7.68 0.768-3.776 1.92-7.488 1.088-3.712 2.56-7.296 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.656 2.176-3.2 4.608-6.208 2.432-3.008 5.12-5.76 2.816-2.752 5.76-5.184 3.008-2.496 6.208-4.672 3.2-2.112 6.656-3.968 3.392-1.792 6.976-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.84 0.768 7.488 1.92 3.712 1.088 7.296 2.56 3.52 1.472 6.976 3.328 3.392 1.792 6.592 3.968 3.2 2.176 6.208 4.608 3.008 2.496 5.76 5.248 2.688 2.752 5.12 5.76 2.496 2.944 4.608 6.208 2.176 3.2 3.968 6.656 1.856 3.392 3.328 7.04 1.472 3.584 2.56 7.296 1.152 3.712 1.92 7.488 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.32 3.84-1.088 7.68t-1.92 7.552q-1.088 3.712-2.56 7.296t-3.328 7.04q-1.792 3.392-3.968 6.592-2.112 3.2-4.608 6.272-2.432 3.008-5.12 5.76-2.752 2.688-5.76 5.12-3.008 2.56-6.208 4.672-3.2 2.176-6.592 3.968-3.456 1.856-7.04 3.328-3.52 1.472-7.232 2.624-3.712 1.152-7.488 1.92-3.84 0.704-7.68 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.088-3.776-0.768-7.488-1.92-3.712-1.152-7.232-2.56-3.584-1.536-7.04-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-2.944-2.496-5.76-5.184-2.688-2.752-5.12-5.76t-4.608-6.272q-2.176-3.2-3.968-6.656-1.792-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.088-7.68q0.768-3.84 1.92-7.488 1.088-3.712 2.56-7.36 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.176-3.2 4.608-6.208 2.432-3.008 5.12-5.76 2.816-2.752 5.76-5.248 3.008-2.432 6.208-4.608 3.2-2.176 6.656-3.968 3.392-1.856 6.976-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384zM360.32 737.92q3.84 0 7.68 0.384t7.68 1.088q3.776 0.768 7.424 1.92 3.712 1.152 7.296 2.56 3.584 1.536 7.04 3.392 3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.184 2.752 2.752 5.12 5.76 2.56 3.008 4.672 6.272 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.52 2.624 7.232 1.152 3.712 1.92 7.552 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.68 0 3.968-0.384 7.808t-1.152 7.68q-0.704 3.84-1.856 7.488-1.152 3.712-2.56 7.36-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.208-2.432 3.008-5.184 5.76-2.752 2.752-5.76 5.248-2.944 2.432-6.144 4.608-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.56-3.648 1.152-7.488 1.92-3.776 0.768-7.616 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.84-0.768-7.488-1.92-3.712-1.088-7.296-2.56t-6.976-3.328q-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.248-2.688-2.752-5.12-5.76-2.496-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.488-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.744 0-3.84 0.384-7.744 0.384-3.84 1.152-7.68 0.768-3.84 1.92-7.552 1.088-3.712 2.56-7.296t3.328-7.04q1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.272 2.496-3.008 5.184-5.76 2.752-2.688 5.76-5.12 2.944-2.56 6.208-4.672 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.624 3.712-1.152 7.488-1.92 3.84-0.704 7.68-1.088 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.776 0.768 7.424 1.92 3.712 1.088 7.296 2.56t7.04 3.328q3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.248 2.752 2.752 5.12 5.76 2.56 2.944 4.672 6.208 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.52 2.624 7.296 1.152 3.712 1.92 7.488 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.384 3.84-1.152 7.68-0.704 3.84-1.856 7.552-1.152 3.712-2.56 7.296-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.272-2.432 3.008-5.184 5.76-2.752 2.688-5.76 5.12-2.944 2.56-6.144 4.672-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.624-3.648 1.152-7.488 1.92-3.776 0.704-7.616 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.84-0.704-7.488-1.856-3.712-1.152-7.296-2.56-3.584-1.536-6.976-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.248-2.688-2.688-5.12-5.76-2.496-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.152-7.68q0.768-3.84 1.92-7.488 1.088-3.776 2.56-7.36 1.472-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.208 2.496-3.008 5.184-5.76 2.752-2.752 5.76-5.248 2.944-2.432 6.208-4.608 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384zM360.32 128q3.84 0 7.68 0.384t7.68 1.152q3.776 0.768 7.424 1.92 3.712 1.088 7.296 2.56t7.04 3.328q3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.248 2.752 2.752 5.12 5.76 2.56 2.944 4.672 6.208 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.584 2.624 7.296 1.152 3.712 1.92 7.488 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.384 3.84-1.152 7.68-0.704 3.84-1.856 7.552-1.152 3.712-2.56 7.296-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.272-2.432 3.008-5.184 5.76-2.752 2.688-5.76 5.12-2.944 2.56-6.144 4.672-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.624-3.648 1.152-7.488 1.92-3.776 0.704-7.616 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.088-3.84-0.768-7.488-1.92-3.712-1.152-7.296-2.56-3.584-1.536-6.976-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.184-2.688-2.752-5.12-5.76-2.496-3.008-4.608-6.272-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.152-7.68q0.768-3.84 1.92-7.488 1.088-3.712 2.56-7.36 1.472-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.208 2.496-3.008 5.184-5.76 2.752-2.752 5.76-5.248 2.944-2.432 6.208-4.608 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152Q356.48 128 360.32 128z\" fill=\"#6F7588\" p-id=\"19748\"></path>\n </svg>\n`\n","export const plusIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <g clip-path=\"url(#clip0_971_7676)\">\n <path\n d=\"M18 13H13V18C13 18.55 12.55 19 12 19C11.45 19 11 18.55 11 18V13H6C5.45 13 5 12.55 5 12C5 11.45 5.45 11 6 11H11V6C11 5.45 11.45 5 12 5C12.55 5 13 5.45 13 6V11H18C18.55 11 19 11.45 19 12C19 12.55 18.55 13 18 13Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_971_7676\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const removeIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M7.30775 20.4997C6.81058 20.4997 6.385 20.3227 6.031 19.9687C5.677 19.6147 5.5 19.1892 5.5 18.692V5.99973H5.25C5.0375 5.99973 4.85942 5.92782 4.71575 5.78398C4.57192 5.64015 4.5 5.46198 4.5 5.24948C4.5 5.03682 4.57192 4.85873 4.71575 4.71523C4.85942 4.57157 5.0375 4.49973 5.25 4.49973H9C9 4.2549 9.08625 4.04624 9.25875 3.87374C9.43108 3.7014 9.63967 3.61523 9.8845 3.61523H14.1155C14.3603 3.61523 14.5689 3.7014 14.7413 3.87374C14.9138 4.04624 15 4.2549 15 4.49973H18.75C18.9625 4.49973 19.1406 4.57165 19.2843 4.71548C19.4281 4.85932 19.5 5.03748 19.5 5.24998C19.5 5.46265 19.4281 5.64073 19.2843 5.78423C19.1406 5.9279 18.9625 5.99973 18.75 5.99973H18.5V18.692C18.5 19.1892 18.323 19.6147 17.969 19.9687C17.615 20.3227 17.1894 20.4997 16.6923 20.4997H7.30775ZM17 5.99973H7V18.692C7 18.7818 7.02883 18.8556 7.0865 18.9132C7.14417 18.9709 7.21792 18.9997 7.30775 18.9997H16.6923C16.7821 18.9997 16.8558 18.9709 16.9135 18.9132C16.9712 18.8556 17 18.7818 17 18.692V5.99973ZM10.1543 16.9997C10.3668 16.9997 10.5448 16.9279 10.6885 16.7842C10.832 16.6404 10.9037 16.4622 10.9037 16.2497V8.74973C10.9037 8.53723 10.8318 8.35907 10.688 8.21523C10.5443 8.07157 10.3662 7.99973 10.1535 7.99973C9.941 7.99973 9.76292 8.07157 9.61925 8.21523C9.47575 8.35907 9.404 8.53723 9.404 8.74973V16.2497C9.404 16.4622 9.47583 16.6404 9.6195 16.7842C9.76333 16.9279 9.94158 16.9997 10.1543 16.9997ZM13.8465 16.9997C14.059 16.9997 14.2371 16.9279 14.3807 16.7842C14.5243 16.6404 14.596 16.4622 14.596 16.2497V8.74973C14.596 8.53723 14.5242 8.35907 14.3805 8.21523C14.2367 8.07157 14.0584 7.99973 13.8458 7.99973C13.6333 7.99973 13.4552 8.07157 13.3115 8.21523C13.168 8.35907 13.0962 8.53723 13.0962 8.74973V16.2497C13.0962 16.4622 13.1682 16.6404 13.312 16.7842C13.4557 16.9279 13.6338 16.9997 13.8465 16.9997Z\"\n />\n </svg>\n`\n","export const mergeCellIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\" height=\"24\">\n <path d=\"M853.2992 221.8496q0-51.2-51.2-51.2H632.832q-18.944 0.0512-32.3584-13.312-13.3632-13.4144-13.3632-32.3072 0-18.944 13.3632-32.3072 13.4144-13.4144 32.3584-13.3632h169.3696q58.9824 0 100.7616 41.728 41.728 41.728 41.728 100.7616v169.472q0 18.8416-13.3632 32.256-13.3632 13.312-32.256 13.312-18.944 0-32.256-13.312-13.4144-13.4144-13.4144-32.256l-0.0512-169.472z m-728.2688 215.04H124.928q-18.944 0-32.256-13.3632-13.3632-13.4144-13.3632-32.3072V221.8496q0-59.0336 41.728-100.7616t100.7616-41.728h169.3696q18.944 0 32.3072 13.312 13.4144 13.4144 13.4144 32.3584t-13.4144 32.256q-13.3632 13.4144-32.256 13.4144H221.7984q-51.1488 0-51.1488 51.1488v169.472q-0.0512 18.944-13.4656 32.256-13.312 13.312-32.256 13.312z m576.6144 251.6992l-136.8576-137.3696q-16.2304-16.1792-13.9776-39.0144V511.744q-2.2016-22.8352 13.9776-39.0144l136.8576-136.8576q14.336-14.336 34.4576-14.336 20.224 0 34.5088 14.336 14.2848 14.2336 14.2336 34.4576 0 20.1728-14.2848 34.4576l-58.4704 58.4704h183.808q20.1728 0 34.4576 14.2848t14.2848 34.4576q0 20.0192-14.1824 34.2016-14.1824 14.2336-34.304 14.2336h-184.32l58.7264 59.2384q13.9776 14.336 13.9776 34.4576 0.2048 20.1728-13.9776 34.4576-14.2336 14.336-34.4576 14.336-20.1728 0-34.4576-14.336z m-228.4544-176.384q2.2016 22.8352-13.9776 39.0144L322.304 688.64q-14.2336 14.336-34.4576 14.336-20.1728 0-34.4064-14.336-14.2336-14.2848-14.0288-34.4576-0.1536-20.1216 14.0288-34.4576l58.6752-59.2384h-184.32q-20.0704 0-34.2528-14.2336-14.1824-14.1824-14.1824-34.2016 0-20.224 14.2848-34.4576 14.2336-14.2848 34.4064-14.2848h183.808L253.44 404.7872q-14.2848-14.2848-14.2848-34.4576 0-20.224 14.2848-34.4576 14.2848-14.336 34.4576-14.336 20.224 0 34.4576 14.336L459.264 472.7296q16.1792 16.1792 13.9776 39.0144V512.2048z m-49.664 419.0208q-13.3632 13.4144-32.256 13.4144H221.7984q-59.0336 0-100.7616-41.7792-41.728-41.728-41.728-100.7616v-169.3696q0-18.944 13.312-32.256 13.3632-13.4144 32.256-13.4656 18.944 0 32.3584 13.312 13.3632 13.3632 13.4144 32.256v169.5232q0 51.2 51.2 51.2H391.168q18.944 0 32.256 13.312 13.4144 13.4144 13.4144 32.3584 0 18.8928-13.3632 32.256z m479.3856-28.3648q-41.7792 41.7792-100.7616 41.7792h-169.3696q-18.944 0-32.3072-13.4144-13.3632-13.3632-13.3632-32.256 0-18.944 13.312-32.3072 13.4144-13.4144 32.3584-13.4144h169.3696q51.1488 0 51.1488-51.1488l0.1536-169.4208q0-18.8928 13.312-32.256 13.3632-13.312 32.256-13.312 18.944 0 32.256 13.312 13.312 13.3632 13.312 32.256v169.472q0 58.9824-41.6768 100.7104z\" fill=\"#363B4C\" p-id=\"3356\"></path>\n </svg>\n`\n","export const splitCellIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\" height=\"24\">\n <path d=\"M448 405.4528a42.5472 42.5472 0 0 1-85.0944 0.1024V256q0-42.9056-42.9056-42.9056H170.5472a42.5472 42.5472 0 1 1 0-85.0944H320A128 128 0 0 1 448 256v149.4528z m0 234.5472V768a128 128 0 0 1-128 128H170.5472a42.5472 42.5472 0 1 1 0-85.0944H320q42.9056 0 42.9056-42.9056v-149.5552a42.5472 42.5472 0 1 1 85.0944 0.1024v21.4528z m448-469.4528c0 23.552-19.0464 42.5984-42.5472 42.5472H704q-42.9056 0-42.9056 42.9056v149.504a42.496 42.496 0 0 1-85.0944 0V256a128 128 0 0 1 128-128h149.4528c23.4496 0 42.5472 19.0976 42.5472 42.5472z m0 682.9056c0 23.5008-19.0464 42.5472-42.5472 42.5472H704a128 128 0 0 1-128-128v-149.504a42.496 42.496 0 0 1 85.0432 0l0.1024 149.504q0 42.9056 42.8544 42.9056h149.4528c23.4496 0 42.5472 19.0464 42.5472 42.496z\" fill=\"#363B4C\" p-id=\"3508\"></path><path d=\"M882.7392 475.8016c9.5744 9.5232 14.336 22.8352 13.0048 36.2496a45.0048 45.0048 0 0 1-13.0048 36.2496l-120.7296 121.1904a45.2096 45.2096 0 0 1-64 0 44.8 44.8 0 0 1-13.0048-32c0-11.6736 4.1984-23.04 13.0048-32l47.9744-48.384H588.8a45.0048 45.0048 0 0 1-45.056-45.056c0-24.9856 20.2752-45.2608 45.2608-45.2608h156.7744l-47.7696-47.7696a45.056 45.056 0 0 1 0-64 45.1584 45.1584 0 0 1 64 0l120.7296 120.7808z m-740.9664 0a45.0048 45.0048 0 0 0-13.0048 36.2496 45.0048 45.0048 0 0 0 13.0048 36.2496l120.7808 121.1904a45.2096 45.2096 0 0 0 64 0 44.8 44.8 0 0 0 12.9536-32 45.0048 45.0048 0 0 0-12.9536-32l-48.0256-48.384h157.2352c24.8832 0 45.056-20.224 45.0048-45.056a45.2608 45.2608 0 0 0-45.2608-45.2608H278.7328l47.8208-47.7696a45.056 45.056 0 0 0 0-64 45.2096 45.2096 0 0 0-64 0l-120.832 120.7808z\" fill=\"#363B4C\" p-id=\"3509\"></path>\n </svg>\n`\n","import type { AttachmentFeatureConfig } from './attachment/config'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { FixedToolbarFeatureConfig } from './fixed-toolbar'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LatexFeatureConfig } from './latex'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { PlaceholderFeatureConfig } from './placeholder'\nimport type { TableFeatureConfig } from './table'\nimport type { ToolbarFeatureConfig } from './toolbar'\n\n/// The crepe editor feature flags.\n/// Every feature is enabled by default.\n/// Every feature is a string literal type.\nexport enum CrepeFeature {\n /// Syntax highlighting and editing for code blocks with language support, theme customization, and preview capabilities.\n CodeMirror = 'code-mirror',\n\n /// Support for bullet lists, ordered lists, and todo lists with customizable icons and formatting.\n ListItem = 'list-item',\n\n /// Enhanced link editing and preview with customizable tooltips, edit/remove actions, and copy functionality.\n LinkTooltip = 'link-tooltip',\n\n /// Enhanced cursor experience with drop cursor and gap cursor for better content placement.\n Cursor = 'cursor',\n\n /// Image upload and management with resizing, captions, and support for both inline and block images.\n ImageBlock = 'image-block',\n\n /// Drag-and-drop block management and slash commands for quick content insertion and organization.\n BlockEdit = 'block-edit',\n\n /// Formatting toolbar for selected text with customizable icons and actions.\n Toolbar = 'toolbar',\n\n /// Fixed formatting toolbar that is always visible at the top of the editor.\n FixedToolbar = 'fixed-toolbar',\n\n /// Document or block level placeholders to guide users when content is empty.\n Placeholder = 'placeholder',\n\n /// Full-featured table editing with row/column management, alignment options, and drag-and-drop functionality.\n Table = 'table',\n\n /// Mathematical formula support with both inline and block math rendering using KaTeX.\n Latex = 'latex',\n\n /// File attachment uploads\n Attachment = 'attachment',\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.FixedToolbar]?: FixedToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n [CrepeFeature.Latex]?: LatexFeatureConfig\n [CrepeFeature.Attachment]?: AttachmentFeatureConfig\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.FixedToolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n [CrepeFeature.Latex]: true,\n [CrepeFeature.Attachment]: true,\n}\n","import {\n tableBlock,\n tableBlockConfig,\n} from '@jvs-milkdown/kit/component/table-block'\n\nimport type { DefineFeature } from '../shared'\n\nimport { crepeFeatureConfig } from '../../core/slice'\nimport {\n alignCenterIcon,\n alignLeftIcon,\n alignRightIcon,\n dragHandleIcon,\n mergeCellIcon,\n plusIcon,\n removeIcon,\n splitCellIcon,\n} from '../../icons'\nimport { CrepeFeature } from '../index'\n\ninterface TableConfig {\n addRowIcon: string\n addColIcon: string\n deleteRowIcon: string\n deleteColIcon: string\n alignLeftIcon: string\n alignCenterIcon: string\n alignRightIcon: string\n colDragHandleIcon: string\n rowDragHandleIcon: string\n mergeCellsIcon: string\n splitCellIcon: string\n}\n\nexport type TableFeatureConfig = Partial<TableConfig>\n\nexport const table: DefineFeature<TableFeatureConfig> = (editor, config) => {\n editor\n .config(crepeFeatureConfig(CrepeFeature.Table))\n .config((ctx) => {\n ctx.update(tableBlockConfig.key, (defaultConfig) => ({\n ...defaultConfig,\n renderButton: (renderType) => {\n switch (renderType) {\n case 'add_row':\n return config?.addRowIcon ?? plusIcon\n case 'add_col':\n return config?.addColIcon ?? plusIcon\n case 'delete_row':\n return config?.deleteRowIcon ?? removeIcon\n case 'delete_col':\n return config?.deleteColIcon ?? removeIcon\n case 'align_col_left':\n return config?.alignLeftIcon ?? alignLeftIcon\n case 'align_col_center':\n return config?.alignCenterIcon ?? alignCenterIcon\n case 'align_col_right':\n return config?.alignRightIcon ?? alignRightIcon\n case 'col_drag_handle':\n return config?.colDragHandleIcon ?? dragHandleIcon\n case 'row_drag_handle':\n return config?.rowDragHandleIcon ?? dragHandleIcon\n case 'merge_cells':\n return config?.mergeCellsIcon ?? mergeCellIcon\n case 'split_cell':\n return config?.splitCellIcon ?? splitCellIcon\n }\n },\n }))\n })\n .use(tableBlock)\n}\n"],"names":["createSlice","CrepeFeature","tableBlockConfig","tableBlock"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/core/locale.ts","../../../../src/core/slice.ts","../../../../src/icons/align-center.ts","../../../../src/icons/align-left.ts","../../../../src/icons/align-right.ts","../../../../src/icons/drag-handle.ts","../../../../src/icons/plus.ts","../../../../src/icons/remove.ts","../../../../src/icons/merge-cell.ts","../../../../src/icons/split-cell.ts","../../../../src/feature/index.ts","../../../../src/feature/table/index.ts"],"sourcesContent":["import type { Ctx } from '@jvs-milkdown/kit/ctx'\n\nimport { createSlice } from '@jvs-milkdown/kit/ctx'\n\nexport const zhCN = {\n // block handle\n 'handle.add': '插入内容',\n 'handle.menu': '点击打开菜单',\n 'handle.drag': '拖拽移动位置',\n // placeholder\n 'placeholder.text': \"输入正文或 '/' 快速插入内容\",\n\n // toolbar\n 'toolbar.heading': '标题',\n 'toolbar.formatting': '格式',\n 'toolbar.function': '功能',\n 'toolbar.formatPainter': '格式刷',\n\n // menu bar\n 'menuBar.file': '文件',\n 'menuBar.edit': '编辑',\n 'menuBar.view': '视图',\n 'menuBar.insert': '插入',\n 'menuBar.format': '格式',\n\n // view menu\n 'view.outline': '大纲面板',\n 'view.outlineLeft': '在左侧显示',\n 'view.outlineRight': '在右侧显示',\n 'view.docBackground': '文档背景色',\n 'view.title': '显示标题',\n 'view.cover': '显示封面',\n 'view.editorWidth': '内容宽度',\n 'view.widthDefault': '默认',\n 'view.widthWide': '较宽',\n 'view.widthFull': '全宽',\n\n // code-mirror\n 'codeMirror.searchPlaceholder': '搜索语言',\n 'codeMirror.noResultText': '无结果',\n 'codeMirror.previewToggleOptionEdit': '编辑',\n 'codeMirror.previewToggleOptionHide': '隐藏',\n 'codeMirror.previewLabel': '预览',\n 'codeMirror.wrapText': '自动换行',\n\n // link-tooltip\n 'linkTooltip.pasteLink': '粘贴链接...',\n\n // image-block\n 'imageBlock.inlineUploadButton': '上传',\n 'imageBlock.inlineUploadPlaceholder': '或粘贴链接',\n 'imageBlock.blockUploadButton': '上传文件',\n 'imageBlock.blockUploadPlaceholder': '或粘贴链接',\n 'imageBlock.blockCaptionPlaceholder': '写下图片描述...',\n 'imageBlock.blockConfirmButton': '确定',\n\n // attachment-block\n 'attachmentBlock.uploadButton': '上传文件',\n 'attachmentBlock.uploadPlaceholderText': '或点击上传',\n 'attachmentBlock.download': '下载',\n\n // menu categories\n 'menu.group.text': '正文',\n 'menu.group.block': '段落',\n 'menu.group.list': '列表',\n 'menu.group.advanced': '高级',\n\n // menu items\n 'menu.item.text': '普通文本',\n 'menu.item.h1': '标题 1',\n 'menu.item.h2': '标题 2',\n 'menu.item.h3': '标题 3',\n 'menu.item.h4': '标题 4',\n 'menu.item.h5': '标题 5',\n 'menu.item.h6': '标题 6',\n 'menu.item.quote': '引用',\n 'menu.item.divider': '分割线',\n 'menu.item.bulletList': '无序列表',\n 'menu.item.orderedList': '有序列表',\n 'menu.item.taskList': '任务列表',\n 'menu.item.image': '图片',\n 'menu.item.attachment': '视频或文件',\n 'menu.item.code': '代码块',\n 'menu.item.table': '表格',\n 'menu.item.math': '公式',\n 'menu.item.bold': '加粗',\n 'menu.item.italic': '斜体',\n 'menu.item.strikethrough': '删除线',\n 'menu.item.underline': '下划线',\n 'menu.item.highlight': '高亮',\n 'menu.item.lineCode': '行内代码',\n 'menu.item.link': '链接',\n\n // menu tooltips\n 'menu.tooltip.text': '普通文本 (Ctrl+Alt+0)',\n 'menu.tooltip.h1': '标题 1 (Ctrl+Alt+1)\\nMarkdown: # 空格',\n 'menu.tooltip.h2': '标题 2 (Ctrl+Alt+2)\\nMarkdown: ## 空格',\n 'menu.tooltip.h3': '标题 3 (Ctrl+Alt+3)\\nMarkdown: ### 空格',\n 'menu.tooltip.h4': '标题 4 (Ctrl+Alt+4)\\nMarkdown: #### 空格',\n 'menu.tooltip.h5': '标题 5 (Ctrl+Alt+5)\\nMarkdown: ##### 空格',\n 'menu.tooltip.h6': '标题 6 (Ctrl+Alt+6)\\nMarkdown: ###### 空格',\n 'menu.tooltip.quote': '引用 (Ctrl+Shift+9)\\nMarkdown: > 空格',\n 'menu.tooltip.divider': '分割线\\nMarkdown: --- 空格',\n 'menu.tooltip.bulletList':\n '无序列表 (Ctrl+Shift+8)\\nMarkdown: - 空格 或 * 空格',\n 'menu.tooltip.orderedList': '有序列表 (Ctrl+Shift+7)\\nMarkdown: 1. 空格',\n 'menu.tooltip.taskList': '任务列表\\nMarkdown: - [ ] 空格',\n 'menu.tooltip.image': '图片\\nMarkdown: ![alt](url)',\n 'menu.tooltip.code': '代码块 (Ctrl+Shift+\\\\)\\nMarkdown: ``` 回车',\n 'menu.tooltip.table': '表格\\nMarkdown: | | |',\n 'menu.tooltip.math': '公式\\nMarkdown: $$ 回车',\n\n // custom block menu items\n 'customMenu.indentAndAlign': '缩进和对齐',\n 'customMenu.color': '颜色',\n 'customMenu.cut': '剪切',\n 'customMenu.copy': '复制',\n 'customMenu.delete': '删除',\n 'customMenu.addBelow': '在下方添加',\n 'customMenu.alignLeft': '左对齐',\n 'customMenu.alignCenter': '居中对齐',\n 'customMenu.alignRight': '右对齐',\n 'customMenu.increaseIndent': '增加缩进',\n 'customMenu.decreaseIndent': '减少缩进',\n 'customMenu.textColor': '字体颜色',\n 'customMenu.bgColor': '背景颜色',\n 'customMenu.restoreDefault': '恢复默认',\n 'customMenu.colorDefault': '默认',\n 'customMenu.colorRed': '红色',\n 'customMenu.colorOrange': '橙色',\n 'customMenu.colorYellow': '黄色',\n 'customMenu.colorGreen': '绿色',\n 'customMenu.colorBlue': '蓝色',\n 'customMenu.colorPurple': '紫色',\n 'customMenu.colorGray': '灰色',\n 'customMenu.insertTable': '插入支持富文本的表格',\n\n 'customMenu.fontDefault': '默认',\n 'font.fangSong': '仿宋',\n 'font.stFangsong': '华文仿宋',\n 'font.stSong': '华文宋体',\n 'font.stKaiti': '华文楷体',\n 'font.simSun': '宋体',\n 'font.microsoftYaHei': '微软雅黑',\n 'font.kaiTi': '楷体',\n 'font.simHei': '黑体',\n\n // latex\n 'latex.escToExit': '按 ESC 完成输入',\n 'latex.helpDoc': '查看帮助文档',\n 'latex.emptyPlaceholder': '添加 LaTeX 公式',\n 'latex.inputPlaceholder': '请输入公式',\n\n // shortcuts\n 'shortcuts.title': '键盘快捷键',\n 'shortcuts.formatting': '文本格式',\n 'shortcuts.bold': '加粗',\n 'shortcuts.italic': '斜体',\n 'shortcuts.underline': '下划线',\n 'shortcuts.strikethrough': '删除线',\n 'shortcuts.inlineCode': '行内代码',\n 'shortcuts.highlight': '高亮',\n 'shortcuts.paragraph': '段落',\n 'shortcuts.heading': '标题',\n 'shortcuts.block': '块级元素',\n 'shortcuts.codeBlock': '代码块',\n 'shortcuts.blockquote': '引用',\n 'shortcuts.orderedList': '有序列表',\n 'shortcuts.bulletList': '无序列表',\n 'shortcuts.indent': '增加缩进',\n 'shortcuts.outdent': '减少缩进',\n 'shortcuts.hardBreak': '换行',\n 'shortcuts.history': '历史记录',\n 'shortcuts.undo': '撤销',\n 'shortcuts.redo': '重做',\n\n // inline-diff\n 'inlineDiff.accept': '接受',\n 'inlineDiff.reject': '拒绝',\n}\n\nexport const enUS: typeof zhCN = {\n 'handle.add': 'Add content',\n 'handle.menu': 'Open menu',\n 'handle.drag': 'Drag to move',\n 'placeholder.text': \"Type '/' to use slash menu\",\n\n 'toolbar.heading': 'Heading',\n 'toolbar.formatting': 'Formatting',\n 'toolbar.function': 'Function',\n 'toolbar.formatPainter': 'Format Painter',\n\n 'menuBar.file': 'File',\n 'menuBar.edit': 'Edit',\n 'menuBar.view': 'View',\n 'menuBar.insert': 'Insert',\n 'menuBar.format': 'Format',\n\n 'view.outline': 'Outline Panel',\n 'view.outlineLeft': 'Show on Left',\n 'view.outlineRight': 'Show on Right',\n 'view.docBackground': 'Document Background',\n 'view.title': 'Show Title',\n 'view.cover': 'Show Cover',\n 'view.editorWidth': 'Content Width',\n 'view.widthDefault': 'Default',\n 'view.widthWide': 'Wide',\n 'view.widthFull': 'Full Width',\n\n 'codeMirror.searchPlaceholder': 'Search language',\n 'codeMirror.noResultText': 'No result',\n 'codeMirror.previewToggleOptionEdit': 'Edit',\n 'codeMirror.previewToggleOptionHide': 'Hide',\n 'codeMirror.previewLabel': 'Preview',\n 'codeMirror.wrapText': 'Wrap',\n\n 'linkTooltip.pasteLink': 'Paste link...',\n\n 'imageBlock.inlineUploadButton': 'Upload',\n 'imageBlock.inlineUploadPlaceholder': 'or paste link',\n 'imageBlock.blockUploadButton': 'Upload file',\n 'imageBlock.blockUploadPlaceholder': 'or paste link',\n 'imageBlock.blockCaptionPlaceholder': 'Write Image Caption',\n 'imageBlock.blockConfirmButton': 'Confirm',\n\n 'attachmentBlock.uploadButton': 'Upload file',\n 'attachmentBlock.uploadPlaceholderText': 'or click to upload',\n 'attachmentBlock.download': 'Download',\n\n 'menu.group.text': 'Text',\n 'menu.group.block': 'Block',\n 'menu.group.list': 'List',\n 'menu.group.advanced': 'Advanced',\n\n 'menu.item.text': 'Text',\n 'menu.item.h1': 'Heading 1',\n 'menu.item.h2': 'Heading 2',\n 'menu.item.h3': 'Heading 3',\n 'menu.item.h4': 'Heading 4',\n 'menu.item.h5': 'Heading 5',\n 'menu.item.h6': 'Heading 6',\n 'menu.item.quote': 'Quote',\n 'menu.item.divider': 'Divider',\n 'menu.item.bulletList': 'Bullet List',\n 'menu.item.orderedList': 'Ordered List',\n 'menu.item.taskList': 'Task List',\n 'menu.item.image': 'Image',\n 'menu.item.attachment': 'Video or File',\n 'menu.item.code': 'Code',\n 'menu.item.table': 'Table',\n 'menu.item.math': 'Math',\n 'menu.item.bold': 'Bold',\n 'menu.item.italic': 'Italic',\n 'menu.item.strikethrough': 'Strikethrough',\n 'menu.item.underline': 'Underline',\n 'menu.item.highlight': 'Highlight',\n 'menu.item.lineCode': 'Inline Code',\n 'menu.item.link': 'Link',\n\n 'menu.tooltip.text': 'Text (Ctrl+Alt+0)',\n 'menu.tooltip.h1': 'Heading 1 (Ctrl+Alt+1)\\nMarkdown: # Space',\n 'menu.tooltip.h2': 'Heading 2 (Ctrl+Alt+2)\\nMarkdown: ## Space',\n 'menu.tooltip.h3': 'Heading 3 (Ctrl+Alt+3)\\nMarkdown: ### Space',\n 'menu.tooltip.h4': 'Heading 4 (Ctrl+Alt+4)\\nMarkdown: #### Space',\n 'menu.tooltip.h5': 'Heading 5 (Ctrl+Alt+5)\\nMarkdown: ##### Space',\n 'menu.tooltip.h6': 'Heading 6 (Ctrl+Alt+6)\\nMarkdown: ###### Space',\n 'menu.tooltip.quote': 'Quote (Ctrl+Shift+9)\\nMarkdown: > Space',\n 'menu.tooltip.divider': 'Divider\\nMarkdown: --- Space',\n 'menu.tooltip.bulletList':\n 'Bullet List (Ctrl+Shift+8)\\nMarkdown: - Space or * Space',\n 'menu.tooltip.orderedList': 'Ordered List (Ctrl+Shift+7)\\nMarkdown: 1. Space',\n 'menu.tooltip.taskList': 'Task List\\nMarkdown: - [ ] Space',\n 'menu.tooltip.image': 'Image\\nMarkdown: ![alt](url)',\n 'menu.tooltip.code': 'Code Block (Ctrl+Shift+\\\\)\\nMarkdown: ``` Enter',\n 'menu.tooltip.table': 'Table\\nMarkdown: | | |',\n 'menu.tooltip.math': 'Math\\nMarkdown: $$ Enter',\n\n 'customMenu.indentAndAlign': 'Indent & Align',\n 'customMenu.color': 'Color',\n 'customMenu.cut': 'Cut',\n 'customMenu.copy': 'Copy',\n 'customMenu.delete': 'Delete',\n 'customMenu.addBelow': 'Add below',\n 'customMenu.alignLeft': 'Align Left',\n 'customMenu.alignCenter': 'Align Center',\n 'customMenu.alignRight': 'Align Right',\n 'customMenu.increaseIndent': 'Increase Indent',\n 'customMenu.decreaseIndent': 'Decrease Indent',\n 'customMenu.textColor': 'Text Color',\n 'customMenu.bgColor': 'Background Color',\n 'customMenu.restoreDefault': 'Restore Default',\n 'customMenu.colorDefault': 'Default',\n 'customMenu.colorRed': 'Red',\n 'customMenu.colorOrange': 'Orange',\n 'customMenu.colorYellow': 'Yellow',\n 'customMenu.colorGreen': 'Green',\n 'customMenu.colorBlue': 'Blue',\n 'customMenu.colorPurple': 'Purple',\n 'customMenu.colorGray': 'Gray',\n 'customMenu.insertTable': 'Insert Table',\n\n 'customMenu.fontDefault': 'Default',\n 'font.fangSong': 'FangSong',\n 'font.stFangsong': 'STFangsong',\n 'font.stSong': 'STSong',\n 'font.stKaiti': 'STKaiti',\n 'font.simSun': 'SimSun',\n 'font.microsoftYaHei': 'Microsoft YaHei',\n 'font.kaiTi': 'KaiTi',\n 'font.simHei': 'SimHei',\n\n 'latex.escToExit': 'Press ESC to finish',\n 'latex.helpDoc': 'Help Doc',\n 'latex.emptyPlaceholder': 'Add LaTeX',\n 'latex.inputPlaceholder': 'Please enter formula',\n\n 'shortcuts.title': 'Keyboard Shortcuts',\n 'shortcuts.formatting': 'Text Formatting',\n 'shortcuts.bold': 'Bold',\n 'shortcuts.italic': 'Italic',\n 'shortcuts.underline': 'Underline',\n 'shortcuts.strikethrough': 'Strikethrough',\n 'shortcuts.inlineCode': 'Inline Code',\n 'shortcuts.highlight': 'Highlight',\n 'shortcuts.paragraph': 'Paragraph',\n 'shortcuts.heading': 'Heading',\n 'shortcuts.block': 'Block Elements',\n 'shortcuts.codeBlock': 'Code Block',\n 'shortcuts.blockquote': 'Blockquote',\n 'shortcuts.orderedList': 'Ordered List',\n 'shortcuts.bulletList': 'Bullet List',\n 'shortcuts.indent': 'Indent',\n 'shortcuts.outdent': 'Outdent',\n 'shortcuts.hardBreak': 'Hard Break',\n 'shortcuts.history': 'History',\n 'shortcuts.undo': 'Undo',\n 'shortcuts.redo': 'Redo',\n\n 'inlineDiff.accept': 'Accept',\n 'inlineDiff.reject': 'Reject',\n}\n\nexport type CrepeTranslations = typeof zhCN\n\nexport const translationsCtx = createSlice<\n Record<string, Partial<CrepeTranslations>>\n>(\n {\n 'zh-CN': zhCN,\n 'en-US': enUS,\n },\n 'translationsCtx'\n)\n\nexport const localeCtx = createSlice('zh-CN', 'localeCtx')\n\nexport function i18n(ctx: Ctx, key: keyof CrepeTranslations): string {\n const translations = ctx.get(translationsCtx)\n const locale = ctx.get(localeCtx)\n return (\n translations[locale]?.[key] ??\n translations['zh-CN']?.[key] ??\n enUS[key] ??\n key\n )\n}\n","import { createSlice, type Ctx } from '@jvs-milkdown/kit/ctx'\n\nimport type { CrepeFeature } from '../feature'\nimport type { CrepeBuilder } from './builder'\n\n/// @internal\n/// The feature flags context.\n/// ⚠️ Most of the time, you should use `useCrepeFeatures` to get the features.\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\n/// @internal\n/// The crepe editor context.\n/// ⚠️ Most of the time, you should use `useCrepe` to get the crepe editor instance.\nexport const CrepeCtx = createSlice({} as CrepeBuilder, 'CrepeCtx')\n\n/// The crepe editor context.\n/// You can use this context to access the crepe editor instance within Milkdown plugins.\n/// ```ts\n/// import { crepeCtx } from '@jvs-milkdown/crepe'\n/// const plugin = (ctx: Ctx) => {\n/// return () => {\n/// const crepe = useCrepe(ctx)\n/// crepe.setReadonly(true)\n/// }\n/// }\n/// ```\nexport function useCrepe(ctx: Ctx) {\n // We should use string slice here to avoid the slice to be bundled in multiple entries\n return ctx.get<CrepeBuilder, 'CrepeCtx'>('CrepeCtx')\n}\n\n/// Check the enabled FeatureFlags\n/// ```ts\n/// import { useCrepeFeatures } from '@jvs-milkdown/crepe'\n/// const plugin = (ctx: Ctx) => {\n/// const features = useCrepeFeatures(ctx)\n/// if (features.get().includes(CrepeFeature.CodeMirror)) {\n/// // Do something with CodeMirror\n/// }\n/// }\nexport function useCrepeFeatures(ctx: Ctx) {\n // We should use string slice here to avoid the slice to be bundled in multiple entries\n return ctx.use<CrepeFeature[], 'FeaturesCtx'>('FeaturesCtx')\n}\n\n/// @internal\nexport function crepeFeatureConfig(feature: CrepeFeature) {\n return (ctx: Ctx) => {\n useCrepeFeatures(ctx).update((features) => {\n if (features.includes(feature)) {\n return features\n }\n return [...features, feature]\n })\n }\n}\n\nexport { localeCtx, translationsCtx } from './locale'\n","export const alignCenterIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n ><path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52612\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52613\"></path><path d=\"M288 497.536c0 25.664 20.8 46.464 46.464 46.464h355.072a46.464 46.464 0 0 0 0-92.928H334.464c-25.664 0-46.464 20.8-46.464 46.464zM224 750.464c0 25.6 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H270.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52614\"></path></svg>\n`\n\nexport const alignCenterIconActive = `\n<svg width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"52154\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52155\"></path><path d=\"M288 497.536c0 25.664 20.8 46.464 46.464 46.464h355.072a46.464 46.464 0 0 0 0-92.928H334.464c-25.664 0-46.464 20.8-46.464 46.464zM224 750.464c0 25.6 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H270.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"52156\"></path></svg>\n`\n","export const alignLeftIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\"\n height=\"24\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52306\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52307\"></path><path d=\"M128 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52308\"></path><path d=\"M128 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H174.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52309\"></path></svg>\n`\nexport const alignLeftIconActive = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\"\n height=\"24\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"50196\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"50197\"></path><path d=\"M128 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"50198\"></path><path d=\"M128 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H174.464c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"50199\"></path>\n </svg>\n`\n","export const alignRightIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n ><path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#D8D8D8\" fill-opacity=\"0\" p-id=\"52459\"></path><path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52460\"></path><path d=\"M447.99999995 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#363B4C\" p-id=\"52461\"></path><path d=\"M319.99999997 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H366.46399997c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#363B4C\" p-id=\"52462\"></path></svg>\n`\nexport const alignRightIconActive = `\n<svg width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\">\n <path d=\"M0 0m0 0l1024 0q0 0 0 0l0 1024q0 0 0 0l-1024 0q0 0 0 0l0-1024q0 0 0 0Z\" fill=\"#1E6FFF\" fill-opacity=\"0\" p-id=\"52001\"></path>\n <path d=\"M128 192m46.464 0l675.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-675.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52002\"></path><path d=\"M447.99999995 448m46.464 0l355.072 0q46.464 0 46.464 46.464l0 0q0 46.464-46.464 46.464l-355.072 0q-46.464 0-46.464-46.464l0 0q0-46.464 46.464-46.464Z\" fill=\"#1E6FFF\" p-id=\"52003\"></path><path d=\"M319.99999997 753.536c0 25.664 20.8 46.464 46.464 46.464h483.072a46.464 46.464 0 0 0 0-92.928H366.46399997c-25.664 0-46.464 20.8-46.464 46.464z\" fill=\"#1E6FFF\" p-id=\"52004\"></path>\n </svg>\n`\n","export const dragHandleIcon = `\n <svg viewBox=\"0 0 1024 1024\"xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"height=\"16\">\n <path d=\"M663.744 737.92q3.84 0 7.68 0.384t7.68 1.088q3.84 0.768 7.488 1.92 3.712 1.152 7.296 2.56 3.52 1.536 6.976 3.392 3.392 1.792 6.592 3.968 3.2 2.176 6.208 4.608 3.008 2.496 5.76 5.184 2.688 2.752 5.12 5.76 2.496 3.008 4.608 6.272 2.176 3.2 3.968 6.656 1.856 3.392 3.328 7.04 1.472 3.52 2.56 7.232 1.152 3.712 1.92 7.552 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.68 0 3.968-0.384 7.808-0.32 3.84-1.088 7.68t-1.92 7.488q-1.088 3.712-2.56 7.36-1.472 3.584-3.328 7.04-1.792 3.392-3.968 6.592-2.112 3.2-4.608 6.208-2.432 3.008-5.12 5.76-2.752 2.752-5.76 5.248-3.008 2.432-6.208 4.608-3.2 2.176-6.592 3.968-3.456 1.856-7.04 3.328-3.52 1.472-7.232 2.56-3.712 1.152-7.488 1.92-3.84 0.768-7.68 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.776-0.768-7.488-1.92-3.712-1.088-7.232-2.56-3.584-1.472-7.04-3.328-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-2.944-2.496-5.76-5.248-2.688-2.752-5.12-5.76-2.432-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.792-3.392-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.488-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.744 0-3.84 0.384-7.744 0.384-3.84 1.088-7.68 0.768-3.84 1.92-7.552 1.088-3.712 2.56-7.296 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.176-3.2 4.608-6.272 2.432-3.008 5.12-5.76 2.816-2.688 5.76-5.12 3.008-2.56 6.208-4.672 3.2-2.176 6.656-3.968 3.392-1.856 6.976-3.328 3.52-1.472 7.232-2.624 3.712-1.152 7.488-1.92 3.84-0.704 7.68-1.088 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.84 0.768 7.488 1.92 3.712 1.088 7.296 2.56 3.52 1.536 6.976 3.328 3.392 1.856 6.592 3.968 3.2 2.176 6.208 4.672 3.008 2.432 5.76 5.184 2.688 2.752 5.12 5.76 2.496 3.008 4.608 6.208 2.176 3.2 3.968 6.656 1.856 3.456 3.328 7.04 1.472 3.584 2.56 7.296 1.152 3.712 1.92 7.488 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.744t-0.384 7.808q-0.32 3.84-1.088 7.68-0.768 3.776-1.92 7.488-1.088 3.712-2.56 7.296t-3.328 7.04q-1.792 3.392-3.968 6.656-2.112 3.2-4.608 6.208-2.432 3.008-5.12 5.76-2.752 2.752-5.76 5.184-3.008 2.496-6.208 4.608-3.2 2.176-6.592 4.032-3.456 1.792-7.04 3.328-3.52 1.472-7.232 2.56-3.712 1.152-7.488 1.92-3.84 0.768-7.68 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.776-0.768-7.488-1.92-3.712-1.088-7.232-2.56-3.584-1.536-7.04-3.328-3.392-1.856-6.592-4.032-3.2-2.112-6.208-4.608-2.944-2.432-5.76-5.184-2.688-2.752-5.12-5.76t-4.608-6.208q-2.176-3.2-3.968-6.656-1.792-3.456-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.552-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.68 0-3.904 0.384-7.808 0.384-3.84 1.088-7.68 0.768-3.776 1.92-7.488 1.088-3.712 2.56-7.296 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.656 2.176-3.2 4.608-6.208 2.432-3.008 5.12-5.76 2.816-2.752 5.76-5.184 3.008-2.496 6.208-4.672 3.2-2.112 6.656-3.968 3.392-1.792 6.976-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.84 0.768 7.488 1.92 3.712 1.088 7.296 2.56 3.52 1.472 6.976 3.328 3.392 1.792 6.592 3.968 3.2 2.176 6.208 4.608 3.008 2.496 5.76 5.248 2.688 2.752 5.12 5.76 2.496 2.944 4.608 6.208 2.176 3.2 3.968 6.656 1.856 3.392 3.328 7.04 1.472 3.584 2.56 7.296 1.152 3.712 1.92 7.488 0.768 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.32 3.84-1.088 7.68t-1.92 7.552q-1.088 3.712-2.56 7.296t-3.328 7.04q-1.792 3.392-3.968 6.592-2.112 3.2-4.608 6.272-2.432 3.008-5.12 5.76-2.752 2.688-5.76 5.12-3.008 2.56-6.208 4.672-3.2 2.176-6.592 3.968-3.456 1.856-7.04 3.328-3.52 1.472-7.232 2.624-3.712 1.152-7.488 1.92-3.84 0.704-7.68 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.088-3.776-0.768-7.488-1.92-3.712-1.152-7.232-2.56-3.584-1.536-7.04-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-2.944-2.496-5.76-5.184-2.688-2.752-5.12-5.76t-4.608-6.272q-2.176-3.2-3.968-6.656-1.792-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.704-3.84-1.088-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.088-7.68q0.768-3.84 1.92-7.488 1.088-3.712 2.56-7.36 1.536-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.176-3.2 4.608-6.208 2.432-3.008 5.12-5.76 2.816-2.752 5.76-5.248 3.008-2.432 6.208-4.608 3.2-2.176 6.656-3.968 3.392-1.856 6.976-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384zM360.32 737.92q3.84 0 7.68 0.384t7.68 1.088q3.776 0.768 7.424 1.92 3.712 1.152 7.296 2.56 3.584 1.536 7.04 3.392 3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.184 2.752 2.752 5.12 5.76 2.56 3.008 4.672 6.272 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.52 2.624 7.232 1.152 3.712 1.92 7.552 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.68 0 3.968-0.384 7.808t-1.152 7.68q-0.704 3.84-1.856 7.488-1.152 3.712-2.56 7.36-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.208-2.432 3.008-5.184 5.76-2.752 2.752-5.76 5.248-2.944 2.432-6.144 4.608-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.56-3.648 1.152-7.488 1.92-3.776 0.768-7.616 1.152-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.84-0.768-7.488-1.92-3.712-1.088-7.296-2.56t-6.976-3.328q-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.248-2.688-2.752-5.12-5.76-2.496-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.584-2.56-7.296-1.152-3.712-1.92-7.488-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.744 0-3.84 0.384-7.744 0.384-3.84 1.152-7.68 0.768-3.84 1.92-7.552 1.088-3.712 2.56-7.296t3.328-7.04q1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.272 2.496-3.008 5.184-5.76 2.752-2.688 5.76-5.12 2.944-2.56 6.208-4.672 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.624 3.712-1.152 7.488-1.92 3.84-0.704 7.68-1.088 3.84-0.384 7.68-0.384z m0-304.96q3.84 0 7.68 0.384t7.68 1.152q3.776 0.768 7.424 1.92 3.712 1.088 7.296 2.56t7.04 3.328q3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.248 2.752 2.752 5.12 5.76 2.56 2.944 4.672 6.208 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.52 2.624 7.296 1.152 3.712 1.92 7.488 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.384 3.84-1.152 7.68-0.704 3.84-1.856 7.552-1.152 3.712-2.56 7.296-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.272-2.432 3.008-5.184 5.76-2.752 2.688-5.76 5.12-2.944 2.56-6.144 4.672-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.624-3.648 1.152-7.488 1.92-3.776 0.704-7.616 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.152-3.84-0.704-7.488-1.856-3.712-1.152-7.296-2.56-3.584-1.536-6.976-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.248-2.688-2.688-5.12-5.76-2.496-2.944-4.608-6.208-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.152-7.68q0.768-3.84 1.92-7.488 1.088-3.776 2.56-7.36 1.472-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.208 2.496-3.008 5.184-5.76 2.752-2.752 5.76-5.248 2.944-2.432 6.208-4.608 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152 3.84-0.384 7.68-0.384zM360.32 128q3.84 0 7.68 0.384t7.68 1.152q3.776 0.768 7.424 1.92 3.712 1.088 7.296 2.56t7.04 3.328q3.328 1.792 6.592 3.968 3.2 2.176 6.144 4.608 3.008 2.496 5.76 5.248 2.752 2.752 5.12 5.76 2.56 2.944 4.672 6.208 2.112 3.2 3.968 6.656 1.792 3.392 3.264 7.04 1.472 3.584 2.624 7.296 1.152 3.712 1.92 7.488 0.704 3.84 1.088 7.68 0.384 3.84 0.384 7.744 0 3.84-0.384 7.744-0.384 3.84-1.152 7.68-0.704 3.84-1.856 7.552-1.152 3.712-2.56 7.296-1.536 3.584-3.328 7.04-1.856 3.392-3.968 6.592-2.176 3.2-4.608 6.272-2.432 3.008-5.184 5.76-2.752 2.688-5.76 5.12-2.944 2.56-6.144 4.672-3.2 2.176-6.656 3.968-3.392 1.856-6.976 3.328-3.584 1.472-7.296 2.624-3.648 1.152-7.488 1.92-3.776 0.704-7.616 1.088-3.84 0.384-7.68 0.384t-7.68-0.384q-3.84-0.384-7.68-1.088-3.84-0.768-7.488-1.92-3.712-1.152-7.296-2.56-3.584-1.536-6.976-3.392-3.392-1.792-6.592-3.968-3.2-2.176-6.208-4.608-3.008-2.496-5.76-5.184-2.688-2.752-5.12-5.76-2.496-3.008-4.608-6.272-2.176-3.2-3.968-6.656-1.856-3.392-3.328-7.04-1.472-3.52-2.56-7.232-1.152-3.712-1.92-7.552-0.768-3.84-1.152-7.68-0.384-3.84-0.384-7.68 0-3.968 0.384-7.808t1.152-7.68q0.768-3.84 1.92-7.488 1.088-3.712 2.56-7.36 1.472-3.584 3.328-7.04 1.792-3.392 3.968-6.592 2.112-3.2 4.544-6.208 2.496-3.008 5.184-5.76 2.752-2.752 5.76-5.248 2.944-2.432 6.208-4.608 3.2-2.176 6.592-3.968 3.392-1.856 7.04-3.328 3.52-1.472 7.232-2.56 3.712-1.152 7.488-1.92 3.84-0.768 7.68-1.152Q356.48 128 360.32 128z\" fill=\"#6F7588\" p-id=\"19748\"></path>\n </svg>\n`\n","export const plusIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <g clip-path=\"url(#clip0_971_7676)\">\n <path\n d=\"M18 13H13V18C13 18.55 12.55 19 12 19C11.45 19 11 18.55 11 18V13H6C5.45 13 5 12.55 5 12C5 11.45 5.45 11 6 11H11V6C11 5.45 11.45 5 12 5C12.55 5 13 5.45 13 6V11H18C18.55 11 19 11.45 19 12C19 12.55 18.55 13 18 13Z\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_971_7676\">\n <rect width=\"24\" height=\"24\" />\n </clipPath>\n </defs>\n </svg>\n`\n","export const removeIcon = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M7.30775 20.4997C6.81058 20.4997 6.385 20.3227 6.031 19.9687C5.677 19.6147 5.5 19.1892 5.5 18.692V5.99973H5.25C5.0375 5.99973 4.85942 5.92782 4.71575 5.78398C4.57192 5.64015 4.5 5.46198 4.5 5.24948C4.5 5.03682 4.57192 4.85873 4.71575 4.71523C4.85942 4.57157 5.0375 4.49973 5.25 4.49973H9C9 4.2549 9.08625 4.04624 9.25875 3.87374C9.43108 3.7014 9.63967 3.61523 9.8845 3.61523H14.1155C14.3603 3.61523 14.5689 3.7014 14.7413 3.87374C14.9138 4.04624 15 4.2549 15 4.49973H18.75C18.9625 4.49973 19.1406 4.57165 19.2843 4.71548C19.4281 4.85932 19.5 5.03748 19.5 5.24998C19.5 5.46265 19.4281 5.64073 19.2843 5.78423C19.1406 5.9279 18.9625 5.99973 18.75 5.99973H18.5V18.692C18.5 19.1892 18.323 19.6147 17.969 19.9687C17.615 20.3227 17.1894 20.4997 16.6923 20.4997H7.30775ZM17 5.99973H7V18.692C7 18.7818 7.02883 18.8556 7.0865 18.9132C7.14417 18.9709 7.21792 18.9997 7.30775 18.9997H16.6923C16.7821 18.9997 16.8558 18.9709 16.9135 18.9132C16.9712 18.8556 17 18.7818 17 18.692V5.99973ZM10.1543 16.9997C10.3668 16.9997 10.5448 16.9279 10.6885 16.7842C10.832 16.6404 10.9037 16.4622 10.9037 16.2497V8.74973C10.9037 8.53723 10.8318 8.35907 10.688 8.21523C10.5443 8.07157 10.3662 7.99973 10.1535 7.99973C9.941 7.99973 9.76292 8.07157 9.61925 8.21523C9.47575 8.35907 9.404 8.53723 9.404 8.74973V16.2497C9.404 16.4622 9.47583 16.6404 9.6195 16.7842C9.76333 16.9279 9.94158 16.9997 10.1543 16.9997ZM13.8465 16.9997C14.059 16.9997 14.2371 16.9279 14.3807 16.7842C14.5243 16.6404 14.596 16.4622 14.596 16.2497V8.74973C14.596 8.53723 14.5242 8.35907 14.3805 8.21523C14.2367 8.07157 14.0584 7.99973 13.8458 7.99973C13.6333 7.99973 13.4552 8.07157 13.3115 8.21523C13.168 8.35907 13.0962 8.53723 13.0962 8.74973V16.2497C13.0962 16.4622 13.1682 16.6404 13.312 16.7842C13.4557 16.9279 13.6338 16.9997 13.8465 16.9997Z\"\n fill=\"#363B4C\"\n />\n </svg>\n`\n","export const mergeCellIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\" height=\"24\">\n <path d=\"M853.2992 221.8496q0-51.2-51.2-51.2H632.832q-18.944 0.0512-32.3584-13.312-13.3632-13.4144-13.3632-32.3072 0-18.944 13.3632-32.3072 13.4144-13.4144 32.3584-13.3632h169.3696q58.9824 0 100.7616 41.728 41.728 41.728 41.728 100.7616v169.472q0 18.8416-13.3632 32.256-13.3632 13.312-32.256 13.312-18.944 0-32.256-13.312-13.4144-13.4144-13.4144-32.256l-0.0512-169.472z m-728.2688 215.04H124.928q-18.944 0-32.256-13.3632-13.3632-13.4144-13.3632-32.3072V221.8496q0-59.0336 41.728-100.7616t100.7616-41.728h169.3696q18.944 0 32.3072 13.312 13.4144 13.4144 13.4144 32.3584t-13.4144 32.256q-13.3632 13.4144-32.256 13.4144H221.7984q-51.1488 0-51.1488 51.1488v169.472q-0.0512 18.944-13.4656 32.256-13.312 13.312-32.256 13.312z m576.6144 251.6992l-136.8576-137.3696q-16.2304-16.1792-13.9776-39.0144V511.744q-2.2016-22.8352 13.9776-39.0144l136.8576-136.8576q14.336-14.336 34.4576-14.336 20.224 0 34.5088 14.336 14.2848 14.2336 14.2336 34.4576 0 20.1728-14.2848 34.4576l-58.4704 58.4704h183.808q20.1728 0 34.4576 14.2848t14.2848 34.4576q0 20.0192-14.1824 34.2016-14.1824 14.2336-34.304 14.2336h-184.32l58.7264 59.2384q13.9776 14.336 13.9776 34.4576 0.2048 20.1728-13.9776 34.4576-14.2336 14.336-34.4576 14.336-20.1728 0-34.4576-14.336z m-228.4544-176.384q2.2016 22.8352-13.9776 39.0144L322.304 688.64q-14.2336 14.336-34.4576 14.336-20.1728 0-34.4064-14.336-14.2336-14.2848-14.0288-34.4576-0.1536-20.1216 14.0288-34.4576l58.6752-59.2384h-184.32q-20.0704 0-34.2528-14.2336-14.1824-14.1824-14.1824-34.2016 0-20.224 14.2848-34.4576 14.2336-14.2848 34.4064-14.2848h183.808L253.44 404.7872q-14.2848-14.2848-14.2848-34.4576 0-20.224 14.2848-34.4576 14.2848-14.336 34.4576-14.336 20.224 0 34.4576 14.336L459.264 472.7296q16.1792 16.1792 13.9776 39.0144V512.2048z m-49.664 419.0208q-13.3632 13.4144-32.256 13.4144H221.7984q-59.0336 0-100.7616-41.7792-41.728-41.728-41.728-100.7616v-169.3696q0-18.944 13.312-32.256 13.3632-13.4144 32.256-13.4656 18.944 0 32.3584 13.312 13.3632 13.3632 13.4144 32.256v169.5232q0 51.2 51.2 51.2H391.168q18.944 0 32.256 13.312 13.4144 13.4144 13.4144 32.3584 0 18.8928-13.3632 32.256z m479.3856-28.3648q-41.7792 41.7792-100.7616 41.7792h-169.3696q-18.944 0-32.3072-13.4144-13.3632-13.3632-13.3632-32.256 0-18.944 13.312-32.3072 13.4144-13.4144 32.3584-13.4144h169.3696q51.1488 0 51.1488-51.1488l0.1536-169.4208q0-18.8928 13.312-32.256 13.3632-13.312 32.256-13.312 18.944 0 32.256 13.312 13.312 13.3632 13.312 32.256v169.472q0 58.9824-41.6768 100.7104z\" fill=\"#363B4C\" p-id=\"3356\"></path>\n </svg>\n`\n","export const splitCellIcon = `\n <svg viewBox=\"0 0 1024 1024\" width=\"24\" height=\"24\">\n <path d=\"M448 405.4528a42.5472 42.5472 0 0 1-85.0944 0.1024V256q0-42.9056-42.9056-42.9056H170.5472a42.5472 42.5472 0 1 1 0-85.0944H320A128 128 0 0 1 448 256v149.4528z m0 234.5472V768a128 128 0 0 1-128 128H170.5472a42.5472 42.5472 0 1 1 0-85.0944H320q42.9056 0 42.9056-42.9056v-149.5552a42.5472 42.5472 0 1 1 85.0944 0.1024v21.4528z m448-469.4528c0 23.552-19.0464 42.5984-42.5472 42.5472H704q-42.9056 0-42.9056 42.9056v149.504a42.496 42.496 0 0 1-85.0944 0V256a128 128 0 0 1 128-128h149.4528c23.4496 0 42.5472 19.0976 42.5472 42.5472z m0 682.9056c0 23.5008-19.0464 42.5472-42.5472 42.5472H704a128 128 0 0 1-128-128v-149.504a42.496 42.496 0 0 1 85.0432 0l0.1024 149.504q0 42.9056 42.8544 42.9056h149.4528c23.4496 0 42.5472 19.0464 42.5472 42.496z\" fill=\"#363B4C\" p-id=\"3508\"></path><path d=\"M882.7392 475.8016c9.5744 9.5232 14.336 22.8352 13.0048 36.2496a45.0048 45.0048 0 0 1-13.0048 36.2496l-120.7296 121.1904a45.2096 45.2096 0 0 1-64 0 44.8 44.8 0 0 1-13.0048-32c0-11.6736 4.1984-23.04 13.0048-32l47.9744-48.384H588.8a45.0048 45.0048 0 0 1-45.056-45.056c0-24.9856 20.2752-45.2608 45.2608-45.2608h156.7744l-47.7696-47.7696a45.056 45.056 0 0 1 0-64 45.1584 45.1584 0 0 1 64 0l120.7296 120.7808z m-740.9664 0a45.0048 45.0048 0 0 0-13.0048 36.2496 45.0048 45.0048 0 0 0 13.0048 36.2496l120.7808 121.1904a45.2096 45.2096 0 0 0 64 0 44.8 44.8 0 0 0 12.9536-32 45.0048 45.0048 0 0 0-12.9536-32l-48.0256-48.384h157.2352c24.8832 0 45.056-20.224 45.0048-45.056a45.2608 45.2608 0 0 0-45.2608-45.2608H278.7328l47.8208-47.7696a45.056 45.056 0 0 0 0-64 45.2096 45.2096 0 0 0-64 0l-120.832 120.7808z\" fill=\"#363B4C\" p-id=\"3509\"></path>\n </svg>\n`\n","import type { AttachmentFeatureConfig } from './attachment/config'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { DiffBlockFeatureConfig } from './diff-block'\nimport type { FixedToolbarFeatureConfig } from './fixed-toolbar'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { InlineDiffFeatureConfig } from './inline-diff'\nimport type { LatexFeatureConfig } from './latex'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { PlaceholderFeatureConfig } from './placeholder'\nimport type { TableFeatureConfig } from './table'\nimport type { ToolbarFeatureConfig } from './toolbar'\n\n/// The crepe editor feature flags.\n/// Every feature is enabled by default.\n/// Every feature is a string literal type.\nexport enum CrepeFeature {\n /// Syntax highlighting and editing for code blocks with language support, theme customization, and preview capabilities.\n CodeMirror = 'code-mirror',\n\n /// Support for bullet lists, ordered lists, and todo lists with customizable icons and formatting.\n ListItem = 'list-item',\n\n /// Enhanced link editing and preview with customizable tooltips, edit/remove actions, and copy functionality.\n LinkTooltip = 'link-tooltip',\n\n /// Enhanced cursor experience with drop cursor and gap cursor for better content placement.\n Cursor = 'cursor',\n\n /// Image upload and management with resizing, captions, and support for both inline and block images.\n ImageBlock = 'image-block',\n\n /// Drag-and-drop block management and slash commands for quick content insertion and organization.\n BlockEdit = 'block-edit',\n\n /// Formatting toolbar for selected text with customizable icons and actions.\n Toolbar = 'toolbar',\n\n /// Fixed formatting toolbar that is always visible at the top of the editor.\n FixedToolbar = 'fixed-toolbar',\n\n /// Document or block level placeholders to guide users when content is empty.\n Placeholder = 'placeholder',\n\n /// Full-featured table editing with row/column management, alignment options, and drag-and-drop functionality.\n Table = 'table',\n\n /// Mathematical formula support with both inline and block math rendering using KaTeX.\n Latex = 'latex',\n\n /// File attachment uploads\n Attachment = 'attachment',\n\n /// Inline diff comparison between two document versions, similar to Word track changes.\n InlineDiff = 'inline-diff',\n\n /// Diff comparison block for showing code differences\n DiffBlock = 'diff-block',\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.FixedToolbar]?: FixedToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n [CrepeFeature.Latex]?: LatexFeatureConfig\n [CrepeFeature.Attachment]?: AttachmentFeatureConfig\n [CrepeFeature.InlineDiff]?: InlineDiffFeatureConfig\n [CrepeFeature.DiffBlock]?: DiffBlockFeatureConfig\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.FixedToolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n [CrepeFeature.Latex]: true,\n [CrepeFeature.Attachment]: true,\n [CrepeFeature.InlineDiff]: false,\n [CrepeFeature.DiffBlock]: true,\n}\n","import {\n tableBlock,\n tableBlockConfig,\n} from '@jvs-milkdown/kit/component/table-block'\n\nimport type { DefineFeature } from '../shared'\n\nimport { crepeFeatureConfig } from '../../core/slice'\nimport {\n alignCenterIcon,\n alignLeftIcon,\n alignRightIcon,\n dragHandleIcon,\n mergeCellIcon,\n plusIcon,\n removeIcon,\n splitCellIcon,\n} from '../../icons'\nimport { CrepeFeature } from '../index'\n\ninterface TableConfig {\n addRowIcon: string\n addColIcon: string\n deleteRowIcon: string\n deleteColIcon: string\n alignLeftIcon: string\n alignCenterIcon: string\n alignRightIcon: string\n colDragHandleIcon: string\n rowDragHandleIcon: string\n mergeCellsIcon: string\n splitCellIcon: string\n}\n\nexport type TableFeatureConfig = Partial<TableConfig>\n\nexport const table: DefineFeature<TableFeatureConfig> = (editor, config) => {\n editor\n .config(crepeFeatureConfig(CrepeFeature.Table))\n .config((ctx) => {\n ctx.update(tableBlockConfig.key, (defaultConfig) => ({\n ...defaultConfig,\n renderButton: (renderType) => {\n switch (renderType) {\n case 'add_row':\n return config?.addRowIcon ?? plusIcon\n case 'add_col':\n return config?.addColIcon ?? plusIcon\n case 'delete_row':\n return config?.deleteRowIcon ?? removeIcon\n case 'delete_col':\n return config?.deleteColIcon ?? removeIcon\n case 'align_col_left':\n return config?.alignLeftIcon ?? alignLeftIcon\n case 'align_col_center':\n return config?.alignCenterIcon ?? alignCenterIcon\n case 'align_col_right':\n return config?.alignRightIcon ?? alignRightIcon\n case 'col_drag_handle':\n return config?.colDragHandleIcon ?? dragHandleIcon\n case 'row_drag_handle':\n return config?.rowDragHandleIcon ?? dragHandleIcon\n case 'merge_cells':\n return config?.mergeCellsIcon ?? mergeCellIcon\n case 'split_cell':\n return config?.splitCellIcon ?? splitCellIcon\n }\n },\n }))\n })\n .use(tableBlock)\n}\n"],"names":["createSlice","CrepeFeature","tableBlockConfig","tableBlock"],"mappings":"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"}
@@ -177,7 +177,10 @@ const zhCN = {
177
177
  "shortcuts.hardBreak": "\u6362\u884C",
178
178
  "shortcuts.history": "\u5386\u53F2\u8BB0\u5F55",
179
179
  "shortcuts.undo": "\u64A4\u9500",
180
- "shortcuts.redo": "\u91CD\u505A"
180
+ "shortcuts.redo": "\u91CD\u505A",
181
+ // inline-diff
182
+ "inlineDiff.accept": "\u63A5\u53D7",
183
+ "inlineDiff.reject": "\u62D2\u7EDD"
181
184
  };
182
185
  const enUS = {
183
186
  "handle.add": "Add content",
@@ -319,7 +322,9 @@ const enUS = {
319
322
  "shortcuts.hardBreak": "Hard Break",
320
323
  "shortcuts.history": "History",
321
324
  "shortcuts.undo": "Undo",
322
- "shortcuts.redo": "Redo"
325
+ "shortcuts.redo": "Redo",
326
+ "inlineDiff.accept": "Accept",
327
+ "inlineDiff.reject": "Reject"
323
328
  };
324
329
  const translationsCtx = ctx.createSlice(
325
330
  {
@@ -365,6 +370,8 @@ var CrepeFeature = /* @__PURE__ */ ((CrepeFeature2) => {
365
370
  CrepeFeature2["Table"] = "table";
366
371
  CrepeFeature2["Latex"] = "latex";
367
372
  CrepeFeature2["Attachment"] = "attachment";
373
+ CrepeFeature2["InlineDiff"] = "inline-diff";
374
+ CrepeFeature2["DiffBlock"] = "diff-block";
368
375
  return CrepeFeature2;
369
376
  })(CrepeFeature || {});
370
377
 
@@ -889,6 +896,7 @@ const removeIcon = `
889
896
  >
890
897
  <path
891
898
  d="M7.30775 20.4997C6.81058 20.4997 6.385 20.3227 6.031 19.9687C5.677 19.6147 5.5 19.1892 5.5 18.692V5.99973H5.25C5.0375 5.99973 4.85942 5.92782 4.71575 5.78398C4.57192 5.64015 4.5 5.46198 4.5 5.24948C4.5 5.03682 4.57192 4.85873 4.71575 4.71523C4.85942 4.57157 5.0375 4.49973 5.25 4.49973H9C9 4.2549 9.08625 4.04624 9.25875 3.87374C9.43108 3.7014 9.63967 3.61523 9.8845 3.61523H14.1155C14.3603 3.61523 14.5689 3.7014 14.7413 3.87374C14.9138 4.04624 15 4.2549 15 4.49973H18.75C18.9625 4.49973 19.1406 4.57165 19.2843 4.71548C19.4281 4.85932 19.5 5.03748 19.5 5.24998C19.5 5.46265 19.4281 5.64073 19.2843 5.78423C19.1406 5.9279 18.9625 5.99973 18.75 5.99973H18.5V18.692C18.5 19.1892 18.323 19.6147 17.969 19.9687C17.615 20.3227 17.1894 20.4997 16.6923 20.4997H7.30775ZM17 5.99973H7V18.692C7 18.7818 7.02883 18.8556 7.0865 18.9132C7.14417 18.9709 7.21792 18.9997 7.30775 18.9997H16.6923C16.7821 18.9997 16.8558 18.9709 16.9135 18.9132C16.9712 18.8556 17 18.7818 17 18.692V5.99973ZM10.1543 16.9997C10.3668 16.9997 10.5448 16.9279 10.6885 16.7842C10.832 16.6404 10.9037 16.4622 10.9037 16.2497V8.74973C10.9037 8.53723 10.8318 8.35907 10.688 8.21523C10.5443 8.07157 10.3662 7.99973 10.1535 7.99973C9.941 7.99973 9.76292 8.07157 9.61925 8.21523C9.47575 8.35907 9.404 8.53723 9.404 8.74973V16.2497C9.404 16.4622 9.47583 16.6404 9.6195 16.7842C9.76333 16.9279 9.94158 16.9997 10.1543 16.9997ZM13.8465 16.9997C14.059 16.9997 14.2371 16.9279 14.3807 16.7842C14.5243 16.6404 14.596 16.4622 14.596 16.2497V8.74973C14.596 8.53723 14.5242 8.35907 14.3805 8.21523C14.2367 8.07157 14.0584 7.99973 13.8458 7.99973C13.6333 7.99973 13.4552 8.07157 13.3115 8.21523C13.168 8.35907 13.0962 8.53723 13.0962 8.74973V16.2497C13.0962 16.4622 13.1682 16.6404 13.312 16.7842C13.4557 16.9279 13.6338 16.9997 13.8465 16.9997Z"
899
+ fill="#363B4C"
892
900
  />
893
901
  </svg>
894
902
  `;
@@ -1024,6 +1032,29 @@ const formatPainterIcon = `
1024
1032
  </svg>
1025
1033
  `;
1026
1034
 
1035
+ const listeners = /* @__PURE__ */ new Set();
1036
+ let _popupCount = 0;
1037
+ function getIsAnyPopupOpen() {
1038
+ return _popupCount > 0;
1039
+ }
1040
+ function addPopupChangeListener(fn) {
1041
+ listeners.add(fn);
1042
+ return () => listeners.delete(fn);
1043
+ }
1044
+ function incrementPopupCount() {
1045
+ const wasZero = _popupCount === 0;
1046
+ _popupCount++;
1047
+ if (wasZero) {
1048
+ listeners.forEach((fn) => fn());
1049
+ }
1050
+ }
1051
+ function decrementPopupCount() {
1052
+ _popupCount = Math.max(0, _popupCount - 1);
1053
+ if (_popupCount === 0) {
1054
+ listeners.forEach((fn) => fn());
1055
+ }
1056
+ }
1057
+
1027
1058
  function keepAlive(..._args) {
1028
1059
  }
1029
1060
 
@@ -4166,6 +4197,8 @@ const Toolbar = vue.defineComponent({
4166
4197
  const {
4167
4198
  marks: savedMarks,
4168
4199
  align: savedAlign,
4200
+ blockType: savedBlockType,
4201
+ blockAttrs: savedBlockAttrs,
4169
4202
  isPersistent
4170
4203
  } = formatPainterState.value;
4171
4204
  let applied = false;
@@ -4187,6 +4220,30 @@ const Toolbar = vue.defineComponent({
4187
4220
  }
4188
4221
  );
4189
4222
  }
4223
+ if (savedBlockType) {
4224
+ curState.doc.nodesBetween(
4225
+ curSelection.from,
4226
+ curSelection.to,
4227
+ (node, pos) => {
4228
+ if (node.type.name === "paragraph") {
4229
+ tr.setNodeMarkup(
4230
+ pos,
4231
+ curState.schema.nodes[savedBlockType],
4232
+ {
4233
+ ...savedBlockAttrs,
4234
+ ...savedAlign ? { align: savedAlign } : {}
4235
+ }
4236
+ );
4237
+ } else if (node.type.name === "heading" && savedBlockAttrs) {
4238
+ tr.setNodeMarkup(pos, null, {
4239
+ ...node.attrs,
4240
+ ...savedBlockAttrs,
4241
+ ...savedAlign ? { align: savedAlign } : {}
4242
+ });
4243
+ }
4244
+ }
4245
+ );
4246
+ }
4190
4247
  dispatch(tr);
4191
4248
  applied = true;
4192
4249
  } else {
@@ -4219,6 +4276,22 @@ const Toolbar = vue.defineComponent({
4219
4276
  });
4220
4277
  }
4221
4278
  }
4279
+ if (savedBlockType) {
4280
+ const pos = curSelection.$from.before(curSelection.$from.depth);
4281
+ const node = curState.doc.nodeAt(pos);
4282
+ if (node && node.type.name === "paragraph") {
4283
+ tr.setNodeMarkup(pos, curState.schema.nodes[savedBlockType], {
4284
+ ...savedBlockAttrs,
4285
+ ...savedAlign ? { align: savedAlign } : {}
4286
+ });
4287
+ } else if (node && node.type.name === "heading" && savedBlockAttrs) {
4288
+ tr.setNodeMarkup(pos, null, {
4289
+ ...node.attrs,
4290
+ ...savedBlockAttrs,
4291
+ ...savedAlign ? { align: savedAlign } : {}
4292
+ });
4293
+ }
4294
+ }
4222
4295
  tr.setStoredMarks(savedMarks);
4223
4296
  dispatch(tr);
4224
4297
  applied = true;
@@ -4267,7 +4340,22 @@ const Toolbar = vue.defineComponent({
4267
4340
  }
4268
4341
  }
4269
4342
  align = foundAlign;
4270
- formatPainterState.value = { marks, align, isPersistent };
4343
+ let blockType = null;
4344
+ let blockAttrs = null;
4345
+ {
4346
+ const parent = selection.$from.parent;
4347
+ if (parent.type.name === "heading") {
4348
+ blockType = "heading";
4349
+ blockAttrs = { level: parent.attrs.level };
4350
+ }
4351
+ }
4352
+ formatPainterState.value = {
4353
+ marks,
4354
+ align,
4355
+ blockType,
4356
+ blockAttrs,
4357
+ isPersistent
4358
+ };
4271
4359
  document.removeEventListener("pointerup", formatPainterHandler);
4272
4360
  setTimeout(() => {
4273
4361
  document.addEventListener("pointerup", formatPainterHandler);
@@ -4320,6 +4408,13 @@ const Toolbar = vue.defineComponent({
4320
4408
  const showOverflowMenu = vue.ref(false);
4321
4409
  const overflowMenuPos = vue.ref({ top: 0 });
4322
4410
  const cachedWidths = /* @__PURE__ */ new Map();
4411
+ const anyFixedPopup = vue.computed(
4412
+ () => !!isFixed && (showBlockMenu.value || showAlignMenu.value || showColorMenu.value || showFontFamilyMenu.value || showFontSizeMenu.value || showTableMenu.value || showOverflowMenu.value)
4413
+ );
4414
+ vue.watch(anyFixedPopup, (val) => {
4415
+ if (val) incrementPopupCount();
4416
+ else decrementPopupCount();
4417
+ });
4323
4418
  const getMenuLeftPos = (rect, menuWidth) => {
4324
4419
  let left = rect.left;
4325
4420
  if (left + menuWidth > window.innerWidth) {
@@ -4362,7 +4457,8 @@ const Toolbar = vue.defineComponent({
4362
4457
  containerWidth = container.clientWidth;
4363
4458
  }
4364
4459
  } else {
4365
- containerWidth = container.clientWidth;
4460
+ const view = ctx.get(core.editorViewCtx);
4461
+ containerWidth = view.dom.clientWidth - 32;
4366
4462
  }
4367
4463
  if (containerWidth === lastContainerWidth) {
4368
4464
  return;
@@ -4556,6 +4652,7 @@ const Toolbar = vue.defineComponent({
4556
4652
  if (hideFontFamilyTimer) clearTimeout(hideFontFamilyTimer);
4557
4653
  if (hideFontSizeTimer) clearTimeout(hideFontSizeTimer);
4558
4654
  if (hideTableTimer) clearTimeout(hideTableTimer);
4655
+ if (anyFixedPopup.value) decrementPopupCount();
4559
4656
  });
4560
4657
  let overflowResizeObserver = null;
4561
4658
  let overflowSetupDone = false;
@@ -4994,13 +5091,11 @@ const Toolbar = vue.defineComponent({
4994
5091
  });
4995
5092
  }
4996
5093
  });
4997
- const nonHeadingGroups = toolbarGroupInfo.value.filter(
4998
- (group) => {
4999
- if (group.key === "heading") return false;
5000
- if (props.isFixed && group.key === "function") return false;
5001
- return true;
5002
- }
5003
- );
5094
+ const nonHeadingGroups = toolbarGroupInfo.value.filter((group) => {
5095
+ if (group.key === "heading") return false;
5096
+ if (props.isFixed && group.key === "function") return false;
5097
+ return true;
5098
+ });
5004
5099
  const isSectionOverflowed = (idx) => idx >= overflowVisibleCount.value;
5005
5100
  const hasOverflow = overflowVisibleCount.value < totalSectionCount.value;
5006
5101
  return /* @__PURE__ */ vue.h(
@@ -6256,7 +6351,7 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
6256
6351
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6257
6352
  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);
6258
6353
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
6259
- var _tooltipProvider, _content, _app, _selection, _show, _mousePressed;
6354
+ var _tooltipProvider, _content, _app, _selection, _show, _mousePressed, _removePopupListener, _onDocumentMouseUp;
6260
6355
  const toolbarTooltip = tooltip.tooltipFactory("CREPE_TOOLBAR");
6261
6356
  class ToolbarView {
6262
6357
  constructor(ctx, view, config) {
@@ -6266,11 +6361,18 @@ class ToolbarView {
6266
6361
  __privateAdd(this, _selection);
6267
6362
  __privateAdd(this, _show, vue.ref(false));
6268
6363
  __privateAdd(this, _mousePressed, false);
6364
+ __privateAdd(this, _removePopupListener);
6365
+ __privateAdd(this, _onDocumentMouseUp);
6269
6366
  this.update = (view, prevState) => {
6270
6367
  __privateGet(this, _tooltipProvider).update(view, prevState);
6271
6368
  __privateGet(this, _selection).value = view.state.selection;
6272
6369
  };
6273
6370
  this.destroy = () => {
6371
+ var _a;
6372
+ (_a = __privateGet(this, _removePopupListener)) == null ? void 0 : _a.call(this);
6373
+ if (__privateGet(this, _onDocumentMouseUp)) {
6374
+ document.removeEventListener("mouseup", __privateGet(this, _onDocumentMouseUp));
6375
+ }
6274
6376
  __privateGet(this, _tooltipProvider).destroy();
6275
6377
  __privateGet(this, _app).unmount();
6276
6378
  __privateGet(this, _content).remove();
@@ -6300,12 +6402,23 @@ class ToolbarView {
6300
6402
  this.update(view);
6301
6403
  }, 0);
6302
6404
  });
6405
+ const onDocumentMouseUp = () => {
6406
+ if (__privateGet(this, _mousePressed)) {
6407
+ __privateSet(this, _mousePressed, false);
6408
+ setTimeout(() => {
6409
+ this.update(view);
6410
+ }, 0);
6411
+ }
6412
+ };
6413
+ document.addEventListener("mouseup", onDocumentMouseUp);
6414
+ __privateSet(this, _onDocumentMouseUp, onDocumentMouseUp);
6303
6415
  __privateSet(this, _tooltipProvider, new tooltip.TooltipProvider({
6304
6416
  content: __privateGet(this, _content),
6305
6417
  debounce: 20,
6306
6418
  offset: 10,
6307
6419
  shouldShow: (view2) => {
6308
6420
  if (__privateGet(this, _mousePressed)) return false;
6421
+ if (getIsAnyPopupOpen()) return false;
6309
6422
  const { doc, selection } = view2.state;
6310
6423
  const { empty, from, to } = selection;
6311
6424
  const isEmptyTextBlock = !doc.textBetween(from, to).length && selection instanceof state.TextSelection;
@@ -6325,6 +6438,13 @@ class ToolbarView {
6325
6438
  __privateGet(this, _tooltipProvider).onHide = () => {
6326
6439
  __privateGet(this, _show).value = false;
6327
6440
  };
6441
+ __privateSet(this, _removePopupListener, addPopupChangeListener(() => {
6442
+ if (getIsAnyPopupOpen()) {
6443
+ __privateGet(this, _tooltipProvider).hide();
6444
+ } else {
6445
+ __privateGet(this, _tooltipProvider).update(view);
6446
+ }
6447
+ }));
6328
6448
  this.update(view);
6329
6449
  }
6330
6450
  }
@@ -6334,6 +6454,8 @@ _app = new WeakMap();
6334
6454
  _selection = new WeakMap();
6335
6455
  _show = new WeakMap();
6336
6456
  _mousePressed = new WeakMap();
6457
+ _removePopupListener = new WeakMap();
6458
+ _onDocumentMouseUp = new WeakMap();
6337
6459
  const toolbar = (editor, config) => {
6338
6460
  editor.config(crepeFeatureConfig(CrepeFeature.Toolbar)).config((ctx) => {
6339
6461
  ctx.set(toolbarTooltip.key, {