Media
Block-level media nodes.
Media nodes are first-class block nodes. The semantic media family supports image and embed media. Media nodes are atoms: they have no text children and participate in node selection, not text selection.
Authored attributes
Core exposes explicit authored controls with validated numeric bounds:
MediaAlignment="left" | "center" | "right"(withnullmeaning the default unaligned state).- Width bounds:
MIN_MEDIA_WIDTH_PX = 32,MAX_MEDIA_WIDTH_PX = 4096. - Indent bounds:
MIN_MEDIA_INDENT_PX = 0,MAX_MEDIA_INDENT_PX = 16384, stepMEDIA_INDENT_STEP_PX = 48.
Validators: normalizeMediaWidthPx, normalizeMediaAlignment, normalizeMediaIndent. See packages/core/src/media.ts.
Intents
adjustSelectedMediaIndent/setSelectedMediaWidth/setSelectedMediaAlignment— operate on one selected image media node.adjustMediaRowIndent/setMediaRowAlignment— image row groups resolved by the DOM runtime and referenced bymediaPathsandtextBlockPaths.
Navigation around media
Selection and navigation around media atoms are handled in the DOM layer (see frontier and selection-mapping). Core exposes the node model; the runtime enforces caret behavior around atomic blocks.
Pasting media
Media pasted from the OS or a web page flows through the paste planner, which produces a fragment for insertFragment rather than attempting inline text insertion.