Inspector.Root must be rendered inside the current editor context, and it
requires the EmailTheming extension to be present in the editor.
Core components
Inspector.Root
Wraps your inspector UI and decides which panel should be active based on the current selection.boolean
default:"false"
Render without the default
aside wrapper and pass props to the child via
Radix UI’s Slot.aside are also supported if asChild is false.
Inspector.Document
This is meant for inspecting and changing properties related to the entire editor’s content. That is, EmailTheming, page-level settings, and other document-wide concerns. It shows up when the editor is not focused on a specific node or text selection, or when the editor is unfocused.(context: InspectorDocumentContext) => ReactNode
Optional render prop. When provided, you receive the document inspector
context instead of the default UI.
InspectorDocumentContext
PanelGroup[]
Theme-backed document style groups after merging defaults.
(classReference, property, value) => void
Updates a single document-level style.
(changes) => void
Applies multiple document style changes at once.
(classReference, property) => string | number
Reads the current or default value for a document style.
Inspector.Node
Renders when a node is focused or selected. Withoutchildren, it shows the
default node-specific sections for the active node type.
(context: InspectorNodeContext) => ReactNode
Optional render prop. When provided, you receive the node inspector context
instead of the default UI.
InspectorNodeContext
string
Active node type, such as
image, button, or section.{ pos: number; inside: number }
ProseMirror position information for the focused node.
(prop) => string | number | undefined
Reads a resolved style value for the node.
(prop, value) => void
Updates one inline style on the focused node.
(changes) => void
Applies multiple inline style updates in one call.
(name) => unknown
Reads a node attribute.
(name, value) => void
Updates a node attribute.
Record<string, string | number | undefined>
Resolved theme defaults for the current node.
string[]
Colors collected from the current document.
Inspector.Text
Renders when text is selected. Withoutchildren, it shows typography controls
and link controls when a link mark is active.
(context: InspectorTextContext) => ReactNode
Optional render prop. When provided, you receive the text inspector context
instead of the default UI.
InspectorTextContext
Record<string, boolean>
Active text marks like
bold, italic, and underline.(mark: string) => void
Toggles a text mark on the current selection.
string
Current block alignment.
(value: string) => void
Updates the parent block alignment.
string
Current link URL when a link mark is active.
string
Resolved link color.
(color: string) => void
Updates the active link color.
boolean
Whether the current text selection is inside a link.
(prop) => string | number | undefined
Reads the resolved parent block style.
(prop, value) => void
Updates the parent block style.
string[]
Colors collected from the current document.
Inspector.Breadcrumb
Renders the current path from the document root to the focused node.(segments: InspectorBreadcrumbSegment[]) => ReactNode
Optional render prop for completely custom breadcrumb rendering.
FocusedNode
The node for this breadcrumb segment. The root segment is the
body node.() => void
Focuses the corresponding node.
Built-in sections
Use these inside customInspector.Node or Inspector.Text render functions to
reuse the default section UIs in your own layout.