ComponentScope
The receiver a JoyDomComponent renders against. Exposes the current node and its parent (for layout/positioning calculations), a Children composable so a component can act as a container, a per-entry Child composable so a component can place children itself, and emit to dispatch events into the same onEvent callback the built-in renderer uses.
Properties
Functions
Render a single entry of node's children, so a component can own placement instead of delegating it to Children — e.g. Row { node.children.forEach { Child(it) } } or a custom Layout with its own measure/place pass. An element child renders through the full node pipeline (styles, nested components, its own children); a text run renders as a joy-dom text node with its inherited text context.
Render node's children using the standard flow/flex dispatch, so a component that replaces a container type (e.g. div) lays its children out like the built-in would.
Fire one of the node's inbuilt typed bindings — EventType.Click/Focus/ Blur/Change map to onClick/onFocus/onBlur/onChange. No-op when the node didn't bind that event. (Pass a EventType.Custom here and it is routed to the emit string overload.)
Fire an event by name. The event name is always the node's exact binding prop name — never rewritten. The four reserved prop names — "onclick"/"onfocus"/"onblur"/ "onchange" — fire the node's typed bindings, exactly like the EventType overload (serialization stores those props in typed fields). Any other name is a custom event, resolved from the node's props by that same name — emit("rate") looks up node.props["rate"]. No-op when no matching binding is present. payload reaches the handler as EventPayload.payload, alongside — never merged into — the binding's static EventPayload.params.