You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The v1 ProseMirror → `FlowBlock[]` adapter is owned by `@superdoc/super-editor`
21
+
(`src/editors/v1/core/layout-adapter`). It is v1 SuperEditor's projection from
22
+
hidden ProseMirror state into layout data. v2 owns its own projection adapter.
23
+
`layout-engine` runtime packages consume `FlowBlock[]` and layout contracts
24
+
only; they must never import either concrete adapter.
19
25
-`PresentationEditor` wraps a hidden ProseMirror `Editor`. Its contenteditable DOM is never shown. PresentationEditor bridges editor events into layout/paint state; do not resolve OOXML semantics there.
20
26
-**DomPainter** (`layout-engine/painters/dom/`) owns all visual rendering.
21
-
- Style-resolved properties flow `pm-adapter` → DomPainter. Do not style document content with PM decorations.
27
+
- Style-resolved properties flow `layout-adapter` → DomPainter. Do not style document content with PM decorations.
22
28
23
29
### Where To Put Your Change
24
30
25
31
| Concern | Where | Rule |
26
32
|---|---|---|
27
33
| DOCX import/export |`super-editor/src/editors/v1/core/super-converter/`| Parse and preserve OOXML, style refs, inline properties. Do not bake resolved formatting into direct attrs. |
28
34
| Style cascade |`layout-engine/style-engine/`| Single source of truth for defaults, styles, conditional formatting, inline overrides. |
29
-
| Static document visuals |`pm-adapter/` data + `layout-engine/painters/dom/` rendering | Feed typed data into DomPainter. Do not style static content with PM decorations. |
30
-
| Direction-aware properties |`layout-engine/painters/dom/`| DomPainter mirrors at paint time for `w:bidiVisual`. pm-adapter stores logical sides LTR-default. Pre-mirroring upstream is a double-swap. See `packages/layout-engine/pm-adapter/src/direction/README.md`. |
35
+
| Static document visuals |v1 `core/layout-adapter/` data + `layout-engine/painters/dom/` rendering | Feed typed data into DomPainter. Do not style static content with PM decorations. |
36
+
| Direction-aware properties |`layout-engine/painters/dom/`| DomPainter mirrors at paint time for `w:bidiVisual`. The v1 layout-adapter stores logical sides LTR-default. Pre-mirroring upstream is a double-swap. See `packages/super-editor/src/editors/v1/core/layout-adapter/direction/README.md`. |
31
37
| Editing behavior |`super-editor/src/editors/v1/extensions/`| Commands, keybindings, editor plugins. Do not duplicate cascade or render document visuals here. |
32
38
| Final DOM rendering |`layout-engine/painters/dom/`| Render `ResolvedLayout`. Paint-time transforms (e.g. RTL mirror) live here. |
33
39
| New doc-api operation |`packages/document-api/src/contract/operation-definitions.ts`| Contract-first; touches 4 files. See `packages/document-api/README.md`. |
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,13 +47,17 @@ SuperDoc uses its own rendering pipeline -- ProseMirror is NOT used for visual o
47
47
```
48
48
DOCX File
49
49
→ super-converter (parse OOXML into ProseMirror document)
50
-
→ pm-adapter (convert PM nodes into FlowBlocks)
50
+
→ v1 layout-adapter (super-editor: convert PM nodes into FlowBlocks)
51
51
→ layout-engine (paginate FlowBlocks into Layouts)
52
52
→ DomPainter (render Layouts to DOM)
53
53
```
54
54
55
55
A hidden ProseMirror `Editor` instance manages document state and editing commands, but its DOM is never shown to the user. All visual rendering goes through DomPainter.
56
56
57
+
The PM → FlowBlock adapter is owned by `super-editor`
58
+
(`src/editors/v1/core/layout-adapter`), not by `layout-engine`. The layout
59
+
engine packages consume `FlowBlock[]` and shared layout contracts only.
0 commit comments