miyuan-editor 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +525 -0
  2. package/dist/core/index.cjs.js +40 -0
  3. package/dist/core/index.esm.js +4 -0
  4. package/dist/dist-5Q_Z9Ell.js +6390 -0
  5. package/dist/dist-5Q_Z9Ell.js.map +1 -0
  6. package/dist/dist-CMM6n8DO.cjs +4629 -0
  7. package/dist/dist-CMM6n8DO.cjs.map +1 -0
  8. package/dist/dist-CRSJDo2G.cjs +6617 -0
  9. package/dist/dist-CRSJDo2G.cjs.map +1 -0
  10. package/dist/dist-CZw77IJK.js +4612 -0
  11. package/dist/dist-CZw77IJK.js.map +1 -0
  12. package/dist/dist-CnVrDtsI.js +556 -0
  13. package/dist/dist-CnVrDtsI.js.map +1 -0
  14. package/dist/dist-rItBfhNb.cjs +591 -0
  15. package/dist/dist-rItBfhNb.cjs.map +1 -0
  16. package/dist/export-utils-CYaNoyVg.cjs +167 -0
  17. package/dist/export-utils-CYaNoyVg.cjs.map +1 -0
  18. package/dist/export-utils-DN0Gu8Vu.js +144 -0
  19. package/dist/export-utils-DN0Gu8Vu.js.map +1 -0
  20. package/dist/extension-BPFuYyzN.cjs +338 -0
  21. package/dist/extension-BPFuYyzN.cjs.map +1 -0
  22. package/dist/extension-Cl6x5MDR.js +321 -0
  23. package/dist/extension-Cl6x5MDR.js.map +1 -0
  24. package/dist/extensions/index.cjs.js +3462 -0
  25. package/dist/extensions/index.cjs.js.map +1 -0
  26. package/dist/extensions/index.esm.js +3412 -0
  27. package/dist/extensions/index.esm.js.map +1 -0
  28. package/dist/prompt-B4AOP8f_.js +24143 -0
  29. package/dist/prompt-B4AOP8f_.js.map +1 -0
  30. package/dist/prompt-CGLw2O21.cjs +25530 -0
  31. package/dist/prompt-CGLw2O21.cjs.map +1 -0
  32. package/dist/react/index.cjs.js +839 -0
  33. package/dist/react/index.cjs.js.map +1 -0
  34. package/dist/react/index.esm.js +820 -0
  35. package/dist/react/index.esm.js.map +1 -0
  36. package/dist/shortcut-panel-BskGXV8n.js +49468 -0
  37. package/dist/shortcut-panel-BskGXV8n.js.map +1 -0
  38. package/dist/shortcut-panel-yP4RPTFt.cjs +49563 -0
  39. package/dist/shortcut-panel-yP4RPTFt.cjs.map +1 -0
  40. package/dist/toc-extension-BESc0uEW.js +150 -0
  41. package/dist/toc-extension-BESc0uEW.js.map +1 -0
  42. package/dist/toc-extension-SRvSuskn.cjs +173 -0
  43. package/dist/toc-extension-SRvSuskn.cjs.map +1 -0
  44. package/dist/toolbar-config-Cgc9mV2v.js +243 -0
  45. package/dist/toolbar-config-Cgc9mV2v.js.map +1 -0
  46. package/dist/toolbar-config-Cjt_fPMi.cjs +260 -0
  47. package/dist/toolbar-config-Cjt_fPMi.cjs.map +1 -0
  48. package/dist/ui/index.cjs.js +18 -0
  49. package/dist/ui/index.esm.js +3 -0
  50. package/dist/vue/index.cjs.js +323 -0
  51. package/dist/vue/index.cjs.js.map +1 -0
  52. package/dist/vue/index.esm.js +307 -0
  53. package/dist/vue/index.esm.js.map +1 -0
  54. package/dist/vue2/index.cjs.js +323 -0
  55. package/dist/vue2/index.cjs.js.map +1 -0
  56. package/dist/vue2/index.esm.js +307 -0
  57. package/dist/vue2/index.esm.js.map +1 -0
  58. package/package.json +116 -0
package/README.md ADDED
@@ -0,0 +1,525 @@
1
+ # @miyuan/editor
2
+
3
+ > 一个高扩展性的富文本编辑器引擎,支持多框架(React / Vue 3 / Vue 2)
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@miyuan/editor.svg)](http://npm.gzmiyuan.com:4873/)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue.svg)](https://www.typescriptlang.org/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+
9
+ ## ✨ 特性
10
+
11
+ - 🎯 **Schema 驱动** - 所有节点类型通过 Schema 注册,插件可自由扩展
12
+ - 🔌 **组合式插件系统** - Extension 作为一等公民,声明式贡献节点、命令、快捷键
13
+ - 🔄 **事务化状态管理** - 不可变状态 + 事务描述修改,天然支持撤销/重做
14
+ - 📝 **多格式序列化** - JSON ↔ HTML ↔ Markdown ↔ PlainText 完整转换链
15
+ - 🖥️ **多框架支持** - 核心引擎框架无关,提供 React、Vue 3、Vue 2 适配层
16
+ - 🎨 **薄壳 UI 层** - UI 组件用纯 DOM 编写,每个框架仅提供薄壳挂载
17
+
18
+ ## 📦 安装
19
+
20
+ ```bash
21
+ # 使用私有 registry
22
+ npm install @miyuan/editor --registry http://npm.gzmiyuan.com:4873/
23
+
24
+ # 或配置 .npmrc 后直接安装
25
+ npm install @miyuan/editor
26
+
27
+ # 或使用 yarn
28
+ yarn add @miyuan/editor --registry http://npm.gzmiyuan.com:4873/
29
+
30
+ # 或使用 pnpm
31
+ pnpm add @miyuan/editor --registry http://npm.gzmiyuan.com:4873/
32
+ ```
33
+
34
+ **配置私有 registry(推荐):**
35
+
36
+ 在项目根目录创建 `.npmrc` 文件:
37
+
38
+ ```ini
39
+ @miyuan:registry=http://npm.gzmiyuan.com:4873/
40
+ ```
41
+
42
+ 或在用户目录配置全局 registry:
43
+
44
+ ```bash
45
+ npm config set @miyuan:registry http://npm.gzmiyuan.com:4873/
46
+ ```
47
+
48
+ ## 🚀 快速开始
49
+
50
+ ### React 项目
51
+
52
+ ```tsx
53
+ import { useEditor, EditorContent } from '@miyuan/editor/react'
54
+ import {
55
+ DocExtension,
56
+ TextExtension,
57
+ ParagraphExtension,
58
+ BoldExtension,
59
+ ItalicExtension,
60
+ HeadingExtension,
61
+ HistoryExtension,
62
+ } from '@miyuan/editor/extensions'
63
+
64
+ function MyEditor() {
65
+ const editor = useEditor({
66
+ extensions: [
67
+ DocExtension(),
68
+ TextExtension(),
69
+ ParagraphExtension(),
70
+ BoldExtension(),
71
+ ItalicExtension(),
72
+ HeadingExtension(),
73
+ HistoryExtension(),
74
+ ],
75
+ content: '<p>开始编辑...</p>',
76
+ })
77
+
78
+ return (
79
+ <div>
80
+ <button onClick={() => editor.commands.bold()}>加粗</button>
81
+ <EditorContent editor={editor} />
82
+ </div>
83
+ )
84
+ }
85
+ ```
86
+
87
+ ### Vue 3 项目
88
+
89
+ ```vue
90
+ <template>
91
+ <div>
92
+ <button @click="editor.commands.bold()">加粗</button>
93
+ <EditorContent :editor="editor" />
94
+ </div>
95
+ </template>
96
+
97
+ <script setup>
98
+ import { useEditor, EditorContent } from '@miyuan/editor/vue'
99
+ import {
100
+ DocExtension,
101
+ TextExtension,
102
+ ParagraphExtension,
103
+ BoldExtension,
104
+ HistoryExtension,
105
+ } from '@miyuan/editor/extensions'
106
+
107
+ const editor = useEditor({
108
+ extensions: [
109
+ DocExtension(),
110
+ TextExtension(),
111
+ ParagraphExtension(),
112
+ BoldExtension(),
113
+ HistoryExtension(),
114
+ ],
115
+ content: '<p>开始编辑...</p>',
116
+ })
117
+ </script>
118
+ ```
119
+
120
+ ## 📚 文档目录
121
+
122
+ - [架构设计](#架构设计)
123
+ - [核心概念](#核心概念)
124
+ - [扩展开发](#扩展开发)
125
+ - [API 参考](#api-参考)
126
+ - [序列化](#序列化)
127
+ - [开发指南](#开发指南)
128
+
129
+ ## 🏗️ 架构设计
130
+
131
+ ```
132
+ src/
133
+ ├── core/ ← 编辑器内核(纯 TS,零框架依赖)
134
+ │ ├── extension.ts ← Extension 系统
135
+ │ ├── editor-view.ts ← EditorView 封装
136
+ │ ├── schema.ts ← Schema 编译
137
+ │ └── ...
138
+ ├── extensions/ ← 官方扩展集合(纯 TS)
139
+ │ ├── doc-extension.ts
140
+ │ ├── mark-extensions.ts ← Bold, Italic, Link...
141
+ │ ├── node-extensions.ts ← Heading, List, CodeBlock...
142
+ │ └── behavior-extensions.ts ← History, Placeholder...
143
+ ├── ui/ ← UI 纯 DOM 核心(一套代码)
144
+ ├── react/ ← React 适配层
145
+ ├── vue/ ← Vue 3 适配层
146
+ └── vue2/ ← Vue 2 适配层
147
+ ```
148
+
149
+ **依赖方向严格单向:** `ui → react/vue/vue2 → extensions → core`
150
+
151
+ ## 🎓 核心概念
152
+
153
+ ### Extension(扩展)
154
+
155
+ Extension 是编辑器功能的基本单元:
156
+
157
+ ```typescript
158
+ interface Extension {
159
+ name: string
160
+ type: 'node' | 'mark' | 'extension'
161
+
162
+ addNodes?(): Record<string, NodeSpec>
163
+ addMarks?(): Record<string, MarkSpec>
164
+ addCommands?(): Record<string, CommandFactory>
165
+ addKeyboardShortcuts?(): Record<string, Command>
166
+ addPlugins?(): Plugin[]
167
+ }
168
+ ```
169
+
170
+ ### Schema(模式)
171
+
172
+ Schema 定义文档结构:
173
+
174
+ ```typescript
175
+ const schema = new Schema({
176
+ nodes: {
177
+ doc: { content: 'block+' },
178
+ paragraph: { group: 'block', content: 'inline*' },
179
+ text: { group: 'inline' },
180
+ heading: {
181
+ group: 'block',
182
+ content: 'inline*',
183
+ attrs: { level: { default: 1 } }
184
+ },
185
+ },
186
+ marks: {
187
+ bold: {},
188
+ italic: {},
189
+ }
190
+ })
191
+ ```
192
+
193
+ ### Transaction(事务)
194
+
195
+ 所有修改通过事务进行:
196
+
197
+ ```typescript
198
+ const tr = state.tr
199
+ tr.insertText('Hello', 0, 0)
200
+ tr.addMark(0, 5, schema.marks.bold.create())
201
+ view.dispatch(tr)
202
+ ```
203
+
204
+ ## 🔧 扩展开发
205
+
206
+ ### 创建自定义节点
207
+
208
+ ```typescript
209
+ import type { Extension } from '@miyuan/editor'
210
+ import type { NodeSpec } from 'prosemirror-model'
211
+
212
+ export function CalloutExtension(): Extension {
213
+ return {
214
+ name: 'callout',
215
+ type: 'node',
216
+ addNodes() {
217
+ return {
218
+ callout: {
219
+ group: 'block',
220
+ content: 'inline*',
221
+ attrs: {
222
+ type: { default: 'info' }, // info, warning, error
223
+ },
224
+ toDOM(node) {
225
+ return ['div', { class: `callout callout-${node.attrs.type}` }, 0]
226
+ },
227
+ parseDOM: [{
228
+ tag: 'div.callout',
229
+ getAttrs(dom) {
230
+ const el = dom as HTMLElement
231
+ const type = el.className.match(/callout-(\w+)/)?.[1] || 'info'
232
+ return { type }
233
+ },
234
+ }],
235
+ }
236
+ }
237
+ },
238
+ addCommands() {
239
+ return {
240
+ setCallout: (type: string) => (state, dispatch) => {
241
+ const nt = state.schema.nodes['callout']
242
+ if (!nt) return false
243
+ const tr = state.tr
244
+ tr.replaceSelectionWith(nt.create({ type }))
245
+ if (dispatch) dispatch(tr)
246
+ return true
247
+ },
248
+ }
249
+ },
250
+ }
251
+ }
252
+ ```
253
+
254
+ ### 创建自定义 Mark
255
+
256
+ ```typescript
257
+ export function HighlightExtension(): Extension {
258
+ return {
259
+ name: 'highlight',
260
+ type: 'mark',
261
+ addMarks() {
262
+ return {
263
+ highlight: {
264
+ attrs: { color: { default: '#ffff00' } },
265
+ toDOM(mark) {
266
+ return ['mark', { style: `background-color: ${mark.attrs.color}` }, 0]
267
+ },
268
+ parseDOM: [{
269
+ tag: 'mark',
270
+ getAttrs(dom) {
271
+ return { color: (dom as HTMLElement).style.backgroundColor || '#ffff00' }
272
+ },
273
+ }],
274
+ }
275
+ }
276
+ },
277
+ addCommands() {
278
+ return {
279
+ setHighlight: (color: string) => (state, dispatch) => {
280
+ const mt = state.schema.marks['highlight']
281
+ if (!mt) return false
282
+ const { from, to } = state.selection
283
+ if (from === to) return false
284
+ if (dispatch) {
285
+ dispatch(state.tr.addMark(from, to, mt.create({ color })))
286
+ }
287
+ return true
288
+ },
289
+ }
290
+ },
291
+ }
292
+ }
293
+ ```
294
+
295
+ ## 📖 API 参考
296
+
297
+ ### React Hook
298
+
299
+ ```typescript
300
+ interface UseEditorOptions {
301
+ extensions: Extension[]
302
+ content?: string | object
303
+ editable?: boolean
304
+ onUpdate?: (state: EditorState) => void
305
+ onSelectionChange?: (state: EditorState) => void
306
+ }
307
+
308
+ interface EditorHandle {
309
+ view: EditorView | null
310
+ state: EditorState | null
311
+ schema: Schema | null
312
+ commands: Record<string, CommandFactory>
313
+ }
314
+ ```
315
+
316
+ ### 命令系统
317
+
318
+ 所有命令返回 `(state, dispatch) => boolean`:
319
+
320
+ ```typescript
321
+ // 文本格式
322
+ editor.commands.bold()
323
+ editor.commands.italic()
324
+ editor.commands.underline()
325
+ editor.commands.strike()
326
+ editor.commands.code()
327
+
328
+ // 块级元素
329
+ editor.commands.heading(level: number)
330
+ editor.commands.paragraph()
331
+ editor.commands.blockquote()
332
+ editor.commands.bulletList()
333
+ editor.commands.orderedList()
334
+ editor.commands.taskList()
335
+
336
+ // 其他
337
+ editor.commands.undo()
338
+ editor.commands.redo()
339
+ editor.commands.setTextAlign(align: 'left' | 'center' | 'right')
340
+ editor.commands.setLineHeight(height: number)
341
+ ```
342
+
343
+ ## 🔄 序列化
344
+
345
+ ### JSON
346
+
347
+ ```typescript
348
+ import { nodeToJSON, nodeFromJSON } from '@miyuan/editor/serialization'
349
+
350
+ // 文档 → JSON
351
+ const json = nodeToJSON(state.doc)
352
+
353
+ // JSON → 文档
354
+ const doc = nodeFromJSON(schema, json)
355
+ ```
356
+
357
+ ### HTML
358
+
359
+ ```typescript
360
+ import { toHTML, fromHTML } from '@miyuan/editor/serialization'
361
+
362
+ // 文档 → HTML
363
+ const html = toHTML(state.doc, schema)
364
+
365
+ // HTML → 文档
366
+ const doc = fromHTML('<h1>标题</h1><p>内容</p>', schema)
367
+ ```
368
+
369
+ ### Markdown
370
+
371
+ ```typescript
372
+ import { toMarkdown, fromMarkdown } from '@miyuan/editor/serialization'
373
+
374
+ // 文档 → Markdown
375
+ const md = toMarkdown(state.doc, schema)
376
+
377
+ // Markdown → 文档
378
+ const doc = fromMarkdown('# 标题\n\n内容', schema)
379
+ ```
380
+
381
+ ### SerializationRegistry
382
+
383
+ ```typescript
384
+ import { SerializationRegistry } from '@miyuan/editor/serialization'
385
+
386
+ const registry = new SerializationRegistry()
387
+
388
+ // 序列化
389
+ const json = registry.serialize(doc, 'json', schema)
390
+ const html = registry.serialize(doc, 'html', schema)
391
+ const md = registry.serialize(doc, 'markdown', schema)
392
+
393
+ // 解析
394
+ const docFromJson = registry.parse(json, 'json', schema)
395
+ const docFromHtml = registry.parse(html, 'html', schema)
396
+ const docFromMd = registry.parse(md, 'markdown', schema)
397
+ ```
398
+
399
+ ## 🛠️ 开发指南
400
+
401
+ ### 本地开发
402
+
403
+ ```bash
404
+ # 克隆项目
405
+ git clone https://github.com/your-org/miyuan-editor.git
406
+ cd miyuan-editor
407
+
408
+ # 安装依赖
409
+ npm install
410
+
411
+ # 启动开发服务器(Playground)
412
+ npm run dev
413
+
414
+ # 构建
415
+ npm run build
416
+
417
+ # 运行测试
418
+ npm test
419
+
420
+ # 类型检查
421
+ npm run typecheck
422
+
423
+ # 代码检查
424
+ npm run lint
425
+ npm run format
426
+ ```
427
+
428
+ ### 项目结构
429
+
430
+ ```
431
+ miyuan-editor/
432
+ ├── src/ # 源代码
433
+ │ ├── core/ # 核心引擎
434
+ │ ├── extensions/ # 官方扩展
435
+ │ ├── ui/ # UI 组件
436
+ │ ├── react/ # React 适配
437
+ │ ├── vue/ # Vue 3 适配
438
+ │ └── vue2/ # Vue 2 适配
439
+ ├── tests/ # 单元测试
440
+ ├── playground/ # 开发预览应用
441
+ ├── package.json
442
+ ├── tsconfig.json
443
+ ├── vite.config.ts
444
+ └── vitest.config.ts
445
+ ```
446
+
447
+ ### 发布流程
448
+
449
+ ```bash
450
+ # 1. 更新版本号
451
+ npm version patch # 或 minor, major
452
+
453
+ # 2. 构建
454
+ npm run build
455
+
456
+ # 3. 运行测试
457
+ npm test
458
+
459
+ # 4. 发布到私有 registry
460
+ npm publish --registry http://npm.gzmiyuan.com:4873/
461
+ ```
462
+
463
+ ## 📝 内置扩展
464
+
465
+ ### 节点扩展
466
+ - `DocExtension` - 文档根节点
467
+ - `TextExtension` - 文本节点
468
+ - `ParagraphExtension` - 段落(支持对齐、缩进、行高)
469
+ - `HeadingExtension` - 标题 H1-H6
470
+ - `BlockquoteExtension` - 引用块
471
+ - `BulletListExtension` - 无序列表
472
+ - `OrderedListExtension` - 有序列表
473
+ - `TaskListExtension` - 任务列表
474
+ - `CodeBlockExtension` - 代码块
475
+ - `HorizontalRuleExtension` - 分割线
476
+ - `HardBreakExtension` - 换行
477
+ - `ImageExtension` - 图片
478
+
479
+ ### 标记扩展
480
+ - `BoldExtension` - 加粗 (Ctrl+B)
481
+ - `ItalicExtension` - 斜体 (Ctrl+I)
482
+ - `CodeExtension` - 行内代码 (Ctrl+E)
483
+ - `StrikeExtension` - 删除线
484
+ - `UnderlineExtension` - 下划线 (Ctrl+U)
485
+ - `LinkExtension` - 链接
486
+ - `TextColorExtension` - 文字颜色
487
+ - `BackgroundColorExtension` - 背景颜色
488
+ - `FontSizeExtension` - 字体大小
489
+
490
+ ### 行为扩展
491
+ - `HistoryExtension` - 撤销/重做 (Ctrl+Z / Ctrl+Y)
492
+ - `PlaceholderExtension` - 占位提示
493
+ - `ImageUploadExtension` - 图片上传
494
+
495
+ ## 🤝 贡献指南
496
+
497
+ 我们欢迎所有形式的贡献!
498
+
499
+ 1. Fork 本仓库
500
+ 2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
501
+ 3. 提交更改 (`git commit -m 'feat: add amazing feature'`)
502
+ 4. 推送到分支 (`git push origin feature/amazing-feature`)
503
+ 5. 提交 Pull Request
504
+
505
+ ### 开发规范
506
+
507
+ - 使用 TypeScript strict 模式
508
+ - 遵循 ESLint 规则
509
+ - 为新功能添加测试
510
+ - 更新文档
511
+
512
+ ## 📄 许可证
513
+
514
+ [MIT License](LICENSE)
515
+
516
+ ## 🔗 相关链接
517
+
518
+ - [ProseMirror](https://prosemirror.net/) - 底层编辑器框架
519
+ - [私有 npm Registry](http://npm.gzmiyuan.com:4873/) - 包管理服务
520
+ - [示例项目](playground/) - Playground 开发预览应用
521
+ - [问题反馈](https://github.com/your-org/miyuan-editor/issues)
522
+
523
+ ---
524
+
525
+ Made with ❤️ by miyuan Team
@@ -0,0 +1,40 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../prompt-CGLw2O21.cjs");
3
+ const require_dist = require("../dist-CRSJDo2G.cjs");
4
+ const require_extension = require("../extension-BPFuYyzN.cjs");
5
+ const require_dist$1 = require("../dist-rItBfhNb.cjs");
6
+ exports.AddMarkStep = require_dist.AddMarkStep;
7
+ exports.EditorState = require_dist.EditorState;
8
+ exports.EditorView = require_extension.EditorView;
9
+ exports.ExtensionManager = require_extension.ExtensionManager;
10
+ exports.Fragment = require_dist.Fragment;
11
+ exports.Mapping = require_dist.Mapping;
12
+ exports.Mark = require_dist.Mark;
13
+ exports.Node = require_dist.Node;
14
+ exports.Plugin = require_dist.Plugin;
15
+ exports.PluginKey = require_dist.PluginKey;
16
+ exports.RemoveMarkStep = require_dist.RemoveMarkStep;
17
+ exports.ReplaceStep = require_dist.ReplaceStep;
18
+ exports.ResolvedPos = require_dist.ResolvedPos;
19
+ exports.Schema = require_dist.Schema;
20
+ exports.Slice = require_dist.Slice;
21
+ exports.Step = require_dist.Step;
22
+ exports.StepMap = require_dist.StepMap;
23
+ exports.Transaction = require_dist.Transaction;
24
+ exports.Transform = require_dist.Transform;
25
+ exports.baseKeymap = require_dist.baseKeymap;
26
+ exports.deleteSelection = require_dist.deleteSelection;
27
+ exports.history = require_dist$1.history;
28
+ exports.joinBackward = require_dist.joinBackward;
29
+ exports.joinForward = require_dist.joinForward;
30
+ exports.keymap = require_extension.keymap;
31
+ exports.lift = require_dist.lift;
32
+ exports.liftListItem = require_dist$1.liftListItem;
33
+ exports.redo = require_dist$1.redo;
34
+ exports.selectAll = require_dist.selectAll;
35
+ exports.setBlockType = require_dist.setBlockType;
36
+ exports.sinkListItem = require_dist$1.sinkListItem;
37
+ exports.splitListItem = require_dist$1.splitListItem;
38
+ exports.toggleMark = require_dist.toggleMark;
39
+ exports.undo = require_dist$1.undo;
40
+ exports.wrapIn = require_dist.wrapIn;
@@ -0,0 +1,4 @@
1
+ import { C as Step, I as ResolvedPos, L as Schema, M as Fragment, N as Mark, P as Node, R as Slice, S as ReplaceStep, T as Transform, _ as Transaction, a as lift, b as RemoveMarkStep, c as toggleMark, d as EditorState, i as joinForward, l as wrapIn, m as PluginKey, n as deleteSelection, o as selectAll, p as Plugin, r as joinBackward, s as setBlockType, t as baseKeymap, v as AddMarkStep, w as StepMap, y as Mapping } from "../dist-5Q_Z9Ell.js";
2
+ import { n as keymap, r as EditorView, t as ExtensionManager } from "../extension-Cl6x5MDR.js";
3
+ import { a as sinkListItem, i as liftListItem, n as redo, o as splitListItem, r as undo, t as history } from "../dist-CnVrDtsI.js";
4
+ export { AddMarkStep, EditorState, EditorView, ExtensionManager, Fragment, Mapping, Mark, Node, Plugin, PluginKey, RemoveMarkStep, ReplaceStep, ResolvedPos, Schema, Slice, Step, StepMap, Transaction, Transform, baseKeymap, deleteSelection, history, joinBackward, joinForward, keymap, lift, liftListItem, redo, selectAll, setBlockType, sinkListItem, splitListItem, toggleMark, undo, wrapIn };