Documentation / @ripl/dom / DOMContext
Abstract Class: DOMContext<TElement, TMeta> ​
Defined in: dom/src/context.ts:45
DOM-aware rendering context that extends the base Context with element mounting, resize observation, and interaction handling.
Extends ​
Context<TElement,TMeta>
Extended by ​
Type Parameters ​
| Type Parameter | Default type |
|---|---|
TElement extends Element | Element |
TMeta extends Record<string, unknown> | Record<string, unknown> |
Constructors ​
Constructor ​
new DOMContext<
TElement,TMeta>(type,target,element,options?):DOMContext<TElement,TMeta>
Defined in: dom/src/context.ts:57
Parameters ​
| Parameter | Type |
|---|---|
type | string |
target | string | HTMLElement |
element | TElement |
options? | ContextOptions<TMeta> |
Returns ​
DOMContext<TElement, TMeta>
Overrides ​
Properties ​
| Property | Modifier | Type | Default value | Description | Inherited from | Defined in |
|---|---|---|---|---|---|---|
currentState | protected | BaseState | undefined | - | Context.currentState | core/src/context/context.ts:104 |
element | readonly | TElement | undefined | The underlying DOM element the context renders into. | Context.element | core/src/context/context.ts:111 |
height | public | number | undefined | Current height of the rendering surface, in logical pixels — CSS pixels, unaffected by the device pixel ratio. | Context.height | core/src/context/context.ts:124 |
hitTestHonorsTransform | public | boolean | false | Whether this context's hit testing natively accounts for element and ancestor group transforms (as SVG does, via the DOM). When false (e.g. canvas), callers map the hit point into the element's local space before testing. See Element.getWorldTransform. | Context.hitTestHonorsTransform | core/src/context/context.ts:120 |
meta | readonly | TMeta | undefined | Arbitrary metadata attached to the context. | Context.meta | core/src/context/context.ts:113 |
parent? | public | EventBus<ContextEventMap> | undefined | The parent event bus that emitted events bubble up to, if any. | Context.parent | core/src/core/event-bus.ts:107 |
renderDepth | protected | number | 0 | - | Context.renderDepth | core/src/context/context.ts:105 |
renderedElements | public | RenderElement[] | undefined | Elements rendered during the current pass, used for hit testing. | Context.renderedElements | core/src/context/context.ts:132 |
renderElement? | public | RenderElement | undefined | The element currently being rendered, if any. | Context.renderElement | core/src/context/context.ts:130 |
root | readonly | HTMLElement | undefined | The host DOM element that the context's rendering surface is mounted into. | - | dom/src/context.ts:48 |
saveDepth | protected | number | 0 | - | Context.saveDepth | core/src/context/context.ts:106 |
scaleX | public | Scale<number, number> | undefined | Scale mapping logical x coordinates onto this backend's surface x coordinates. Drives drawing, not a conversion seam for callers — use Context.toSurfacePoint. | Context.scaleX | core/src/context/context.ts:126 |
scaleY | public | Scale<number, number> | undefined | Scale mapping logical y coordinates onto this backend's surface y coordinates. Drives drawing, not a conversion seam for callers — use Context.toSurfacePoint. | Context.scaleY | core/src/context/context.ts:128 |
states | protected | BaseState[] | undefined | - | Context.states | core/src/context/context.ts:103 |
type | readonly | string | undefined | The context type identifier (e.g. canvas, svg). | Context.type | core/src/context/context.ts:109 |
width | public | number | undefined | Current width of the rendering surface, in logical pixels — CSS pixels, unaffected by the device pixel ratio. | Context.width | core/src/context/context.ts:122 |
defaultKey | readonly | typeof defaultKey | undefined | The key under which resources are retained when no explicit key is provided. | Context.defaultKey | core/src/core/disposer.ts:11 |
Accessors ​
$events ​
Get Signature ​
get $events(): keyof
ContextEventMap[]
Defined in: core/src/context/context.ts:135
The event types a context can emit. See EventBus.$events.
Returns ​
keyof ContextEventMap[]
Inherited from ​
currentRenderElement ​
Get Signature ​
get currentRenderElement():
RenderElement|undefined
Defined in: core/src/context/context.ts:153
The element currently being rendered; setting a non-abstract element also records it in Context.renderedElements.
Returns ​
RenderElement | undefined
Set Signature ​
set currentRenderElement(
element):void
Defined in: core/src/context/context.ts:157
Parameters ​
| Parameter | Type |
|---|---|
element | RenderElement | undefined |
Returns ​
void
Inherited from ​
direction ​
Get Signature ​
get direction():
Direction
Defined in: core/src/context/context.ts:184
Directionality used when rendering text.
Returns ​
Set Signature ​
set direction(
value):void
Defined in: core/src/context/context.ts:188
Directionality used when rendering text.
Parameters ​
| Parameter | Type |
|---|---|
value | Direction |
Returns ​
void
Directionality used when rendering text.
Inherited from ​
fill ​
Get Signature ​
get fill():
string
Defined in: core/src/context/context.ts:166
Fill style (CSS color, gradient, or pattern) used to paint filled regions.
Returns ​
string
Set Signature ​
set fill(
value):void
Defined in: core/src/context/context.ts:170
Fill style (CSS color, gradient, or pattern) used to paint filled regions.
Parameters ​
| Parameter | Type |
|---|---|
value | string |
Returns ​
void
Fill style (CSS color, gradient, or pattern) used to paint filled regions.
Inherited from ​
filter ​
Get Signature ​
get filter():
string
Defined in: core/src/context/context.ts:175
CSS filter string applied to subsequent drawing operations (e.g. blur(4px)).
Returns ​
string
Set Signature ​
set filter(
value):void
Defined in: core/src/context/context.ts:179
CSS filter string applied to subsequent drawing operations (e.g. blur(4px)).
Parameters ​
| Parameter | Type |
|---|---|
value | string |
Returns ​
void
CSS filter string applied to subsequent drawing operations (e.g. blur(4px)).
Inherited from ​
font ​
Get Signature ​
get font():
string
Defined in: core/src/context/context.ts:193
CSS font shorthand used when rendering text.
Returns ​
string
Set Signature ​
set font(
value):void
Defined in: core/src/context/context.ts:197
CSS font shorthand used when rendering text.
Parameters ​
| Parameter | Type |
|---|---|
value | string |
Returns ​
void
CSS font shorthand used when rendering text.
Inherited from ​
fontKerning ​
Get Signature ​
get fontKerning():
FontKerning
Defined in: core/src/context/context.ts:202
Whether font kerning is applied when rendering text.
Returns ​
Set Signature ​
set fontKerning(
value):void
Defined in: core/src/context/context.ts:206
Whether font kerning is applied when rendering text.
Parameters ​
| Parameter | Type |
|---|---|
value | FontKerning |
Returns ​
void
Whether font kerning is applied when rendering text.
Inherited from ​
globalCompositeOperation ​
Get Signature ​
get globalCompositeOperation():
unknown
Defined in: core/src/context/context.ts:220
Compositing operation controlling how new drawing is blended with existing content.
Returns ​
unknown
Set Signature ​
set globalCompositeOperation(
value):void
Defined in: core/src/context/context.ts:224
Compositing operation controlling how new drawing is blended with existing content.
Parameters ​
| Parameter | Type |
|---|---|
value | unknown |
Returns ​
void
Compositing operation controlling how new drawing is blended with existing content.
Inherited from ​
Context.globalCompositeOperation
lineCap ​
Get Signature ​
get lineCap():
LineCap
Defined in: core/src/context/context.ts:229
Cap style drawn at the endpoints of stroked lines.
Returns ​
Set Signature ​
set lineCap(
value):void
Defined in: core/src/context/context.ts:233
Cap style drawn at the endpoints of stroked lines.
Parameters ​
| Parameter | Type |
|---|---|
value | LineCap |
Returns ​
void
Cap style drawn at the endpoints of stroked lines.
Inherited from ​
lineDash ​
Get Signature ​
get lineDash():
number[]
Defined in: core/src/context/context.ts:238
Dash pattern as alternating stroke and gap lengths; empty for a solid line.
Returns ​
number[]
Set Signature ​
set lineDash(
value):void
Defined in: core/src/context/context.ts:242
Dash pattern as alternating stroke and gap lengths; empty for a solid line.
Parameters ​
| Parameter | Type |
|---|---|
value | number[] |
Returns ​
void
Dash pattern as alternating stroke and gap lengths; empty for a solid line.
Inherited from ​
lineDashOffset ​
Get Signature ​
get lineDashOffset():
number
Defined in: core/src/context/context.ts:247
Distance into the line dash pattern at which dashing begins.
Returns ​
number
Set Signature ​
set lineDashOffset(
value):void
Defined in: core/src/context/context.ts:251
Distance into the line dash pattern at which dashing begins.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Distance into the line dash pattern at which dashing begins.
Inherited from ​
lineJoin ​
Get Signature ​
get lineJoin():
LineJoin
Defined in: core/src/context/context.ts:256
Join style drawn where two stroked segments meet.
Returns ​
Set Signature ​
set lineJoin(
value):void
Defined in: core/src/context/context.ts:260
Join style drawn where two stroked segments meet.
Parameters ​
| Parameter | Type |
|---|---|
value | LineJoin |
Returns ​
void
Join style drawn where two stroked segments meet.
Inherited from ​
lineWidth ​
Get Signature ​
get lineWidth():
number
Defined in: core/src/context/context.ts:265
Width, in pixels, of stroked lines.
Returns ​
number
Set Signature ​
set lineWidth(
value):void
Defined in: core/src/context/context.ts:269
Width, in pixels, of stroked lines.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Width, in pixels, of stroked lines.
Inherited from ​
miterLimit ​
Get Signature ​
get miterLimit():
number
Defined in: core/src/context/context.ts:274
Miter length limit ratio applied to miter line joins.
Returns ​
number
Set Signature ​
set miterLimit(
value):void
Defined in: core/src/context/context.ts:278
Miter length limit ratio applied to miter line joins.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Miter length limit ratio applied to miter line joins.
Inherited from ​
opacity ​
Get Signature ​
get opacity():
number
Defined in: core/src/context/context.ts:211
Global alpha applied to everything drawn, from 0 to 1. Assignment replaces the current alpha; element and group opacity instead composite multiplicatively through CONTEXT_OPERATIONS.
Returns ​
number
Set Signature ​
set opacity(
value):void
Defined in: core/src/context/context.ts:215
Global alpha applied to everything drawn, from 0 to 1.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Global alpha applied to everything drawn, from 0 to 1.
Inherited from ​
rotation ​
Get Signature ​
get rotation():
Rotation
Defined in: core/src/context/context.ts:391
Rotation applied to the element's transform, as radians or a deg/rad string.
Returns ​
Set Signature ​
set rotation(
value):void
Defined in: core/src/context/context.ts:395
Rotation applied to the element's transform, as radians or a deg/rad string.
Parameters ​
| Parameter | Type |
|---|---|
value | Rotation |
Returns ​
void
Rotation applied to the element's transform, as radians or a deg/rad string.
Inherited from ​
shadowBlur ​
Get Signature ​
get shadowBlur():
number
Defined in: core/src/context/context.ts:283
Gaussian blur radius applied to drawn shadows.
Returns ​
number
Set Signature ​
set shadowBlur(
value):void
Defined in: core/src/context/context.ts:287
Gaussian blur radius applied to drawn shadows.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Gaussian blur radius applied to drawn shadows.
Inherited from ​
shadowColor ​
Get Signature ​
get shadowColor():
string
Defined in: core/src/context/context.ts:292
Color of drawn shadows.
Returns ​
string
Set Signature ​
set shadowColor(
value):void
Defined in: core/src/context/context.ts:296
Color of drawn shadows.
Parameters ​
| Parameter | Type |
|---|---|
value | string |
Returns ​
void
Color of drawn shadows.
Inherited from ​
shadowOffsetX ​
Get Signature ​
get shadowOffsetX():
number
Defined in: core/src/context/context.ts:301
Horizontal offset, in pixels, of drawn shadows.
Returns ​
number
Set Signature ​
set shadowOffsetX(
value):void
Defined in: core/src/context/context.ts:305
Horizontal offset, in pixels, of drawn shadows.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Horizontal offset, in pixels, of drawn shadows.
Inherited from ​
shadowOffsetY ​
Get Signature ​
get shadowOffsetY():
number
Defined in: core/src/context/context.ts:310
Vertical offset, in pixels, of drawn shadows.
Returns ​
number
Set Signature ​
set shadowOffsetY(
value):void
Defined in: core/src/context/context.ts:314
Vertical offset, in pixels, of drawn shadows.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Vertical offset, in pixels, of drawn shadows.
Inherited from ​
stroke ​
Get Signature ​
get stroke():
string
Defined in: core/src/context/context.ts:319
Stroke style (CSS color, gradient, or pattern) used to paint outlines.
Returns ​
string
Set Signature ​
set stroke(
value):void
Defined in: core/src/context/context.ts:323
Stroke style (CSS color, gradient, or pattern) used to paint outlines.
Parameters ​
| Parameter | Type |
|---|---|
value | string |
Returns ​
void
Stroke style (CSS color, gradient, or pattern) used to paint outlines.
Inherited from ​
supportsPathCaching ​
Get Signature ​
get supportsPathCaching():
boolean
Defined in: core/src/context/context.ts:733
Whether cached ContextPaths may be safely reused across render cycles. false by default; backends whose Context.createPath is free of per-frame side effects (e.g. canvas) override this to true. SVG, for example, returns false because createPath registers the path into a per-frame virtual DOM tree.
Returns ​
boolean
Inherited from ​
textAlign ​
Get Signature ​
get textAlign():
TextAlignment
Defined in: core/src/context/context.ts:328
Horizontal alignment of text relative to the drawing position.
Returns ​
Set Signature ​
set textAlign(
value):void
Defined in: core/src/context/context.ts:332
Horizontal alignment of text relative to the drawing position.
Parameters ​
| Parameter | Type |
|---|---|
value | TextAlignment |
Returns ​
void
Horizontal alignment of text relative to the drawing position.
Inherited from ​
textBaseline ​
Get Signature ​
get textBaseline():
TextBaseline
Defined in: core/src/context/context.ts:337
Vertical baseline used when positioning text.
Returns ​
Set Signature ​
set textBaseline(
value):void
Defined in: core/src/context/context.ts:341
Vertical baseline used when positioning text.
Parameters ​
| Parameter | Type |
|---|---|
value | TextBaseline |
Returns ​
void
Vertical baseline used when positioning text.
Inherited from ​
transformOriginX ​
Get Signature ​
get transformOriginX():
TransformOrigin
Defined in: core/src/context/context.ts:400
Horizontal origin about which rotation and scaling are applied.
Returns ​
Set Signature ​
set transformOriginX(
value):void
Defined in: core/src/context/context.ts:404
Horizontal origin about which rotation and scaling are applied.
Parameters ​
| Parameter | Type |
|---|---|
value | TransformOrigin |
Returns ​
void
Horizontal origin about which rotation and scaling are applied.
Inherited from ​
transformOriginY ​
Get Signature ​
get transformOriginY():
TransformOrigin
Defined in: core/src/context/context.ts:409
Vertical origin about which rotation and scaling are applied.
Returns ​
Set Signature ​
set transformOriginY(
value):void
Defined in: core/src/context/context.ts:413
Vertical origin about which rotation and scaling are applied.
Parameters ​
| Parameter | Type |
|---|---|
value | TransformOrigin |
Returns ​
void
Vertical origin about which rotation and scaling are applied.
Inherited from ​
transformScaleX ​
Get Signature ​
get transformScaleX():
number
Defined in: core/src/context/context.ts:373
Horizontal scale factor applied to the element's transform.
Returns ​
number
Set Signature ​
set transformScaleX(
value):void
Defined in: core/src/context/context.ts:377
Horizontal scale factor applied to the element's transform.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Horizontal scale factor applied to the element's transform.
Inherited from ​
transformScaleY ​
Get Signature ​
get transformScaleY():
number
Defined in: core/src/context/context.ts:382
Vertical scale factor applied to the element's transform.
Returns ​
number
Set Signature ​
set transformScaleY(
value):void
Defined in: core/src/context/context.ts:386
Vertical scale factor applied to the element's transform.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Vertical scale factor applied to the element's transform.
Inherited from ​
translateX ​
Get Signature ​
get translateX():
number
Defined in: core/src/context/context.ts:355
Horizontal translation, in pixels, applied to the element's transform.
Returns ​
number
Set Signature ​
set translateX(
value):void
Defined in: core/src/context/context.ts:359
Horizontal translation, in pixels, applied to the element's transform.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Horizontal translation, in pixels, applied to the element's transform.
Inherited from ​
translateY ​
Get Signature ​
get translateY():
number
Defined in: core/src/context/context.ts:364
Vertical translation, in pixels, applied to the element's transform.
Returns ​
number
Set Signature ​
set translateY(
value):void
Defined in: core/src/context/context.ts:368
Vertical translation, in pixels, applied to the element's transform.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Vertical translation, in pixels, applied to the element's transform.
Inherited from ​
zIndex ​
Get Signature ​
get zIndex():
number
Defined in: core/src/context/context.ts:346
Stacking order used to sort elements during rendering; higher values draw on top.
Returns ​
number
Set Signature ​
set zIndex(
value):void
Defined in: core/src/context/context.ts:350
Stacking order used to sort elements during rendering; higher values draw on top.
Parameters ​
| Parameter | Type |
|---|---|
value | number |
Returns ​
void
Stacking order used to sort elements during rendering; higher values draw on top.
Inherited from ​
Methods ​
applyClip() ​
applyClip(
path,fillRule?):void
Defined in: core/src/context/context.ts:753
Clips subsequent drawing operations to the given path.
Parameters ​
| Parameter | Type |
|---|---|
path | ContextPath |
fillRule? | FillRule |
Returns ​
void
Inherited from ​
applyFill() ​
applyFill(
path,fillRule?):void
Defined in: core/src/context/context.ts:758
Fills the given path or text element using the current fill style.
Parameters ​
| Parameter | Type |
|---|---|
path | ContextElement |
fillRule? | FillRule |
Returns ​
void
Inherited from ​
applyGroupPaint() ​
protectedapplyGroupPaint(group):void
Defined in: core/src/context/context.ts:603
Applies a group's own inherited paint (fill, stroke, opacity, font, line, shadow, text) to the context so descendants pick it up from the copied state. Transforms are applied separately, so they are skipped here.
Two boundary semantics are fixed here and every backend must honour them:
- Opacity composites multiplicatively. CONTEXT_OPERATIONS multiplies rather than assigns, so nested groups compound and a leaf's own alpha stacks under its ancestors' instead of replacing it.
- A group's gradient or pattern resolves against the group's own box. The group is the Context.currentRenderElement for the duration of the boundary, so a paint that bakes geometry at set time (canvas) and one that resolves it per leaf (SVG) agree on the same reference box:
group.getBoundingBox(true), never a sibling's and never the surface.
Parameters ​
| Parameter | Type |
|---|---|
group | Element |
Returns ​
void
Inherited from ​
applyStroke() ​
applyStroke(
path):void
Defined in: core/src/context/context.ts:763
Strokes the given path or text element using the current stroke style.
Parameters ​
| Parameter | Type |
|---|---|
path | ContextElement |
Returns ​
void
Inherited from ​
batch() ​
batch<
TResult>(body):TResult
Defined in: core/src/context/context.ts:534
Clears the rendering surface and brackets the callback in markRenderStart/markRenderEnd, returning the callback's result. On exit the state stack is unwound to the depth captured on entry, giving the scene root the same guarantee Context.popGroup gives a group: a root-level clip: true shape deliberately skips its own restore() so the clip persists to later siblings, and with no enclosing group to absorb it that save would otherwise leak one state per frame, unbounded.
The surface is only cleared at render depth 0: a pass entered while an outer one is open continues it (matching Context.markRenderStart) rather than wiping what it drew.
Type Parameters ​
| Type Parameter | Default type |
|---|---|
TResult | void |
Parameters ​
| Parameter | Type |
|---|---|
body | () => TResult |
Returns ​
TResult
Inherited from ​
clear() ​
clear():
void
Defined in: core/src/context/context.ts:483
Clears the entire rendering surface.
Returns ​
void
Inherited from ​
createPath() ​
createPath(
id?):ContextPath
Defined in: core/src/context/context.ts:738
Creates a new path element, optionally reusing an id for SVG diffing efficiency.
Parameters ​
| Parameter | Type |
|---|---|
id? | string |
Returns ​
Inherited from ​
createText() ​
createText(
options):ContextText
Defined in: core/src/context/context.ts:743
Creates a new text element from the given options.
Parameters ​
| Parameter | Type |
|---|---|
options | TextOptions |
Returns ​
Inherited from ​
destroy() ​
destroy():
void
Defined in: dom/src/context.ts:403
Destroys the context, removing the DOM element and disposing all resources.
Returns ​
void
Overrides ​
disableInteraction() ​
disableInteraction():
void
Defined in: dom/src/context.ts:388
Disables DOM interaction events, unwinding any hover with a final mouseleave per element.
Returns ​
void
dispose() ​
protecteddispose(key?):void
Defined in: core/src/core/disposer.ts:25
Disposes all resources under the given key, or all resources if no key is provided.
Parameters ​
| Parameter | Type |
|---|---|
key? | PropertyKey |
Returns ​
void
Inherited from ​
drawImage() ​
drawImage(
image,x,y,width?,height?):void
Defined in: core/src/context/context.ts:748
Draws an image onto the rendering surface at the given position and optional size.
Parameters ​
| Parameter | Type |
|---|---|
image | CanvasImageSource |
x | number |
y | number |
width? | number |
height? | number |
Returns ​
void
Inherited from ​
emit() ​
Call Signature ​
emit<
TEvent>(event):TEvent
Defined in: core/src/core/event-bus.ts:185
Emits an event, invoking all matching handlers and bubbling to the parent if applicable. Handlers for the event's own type run first, then EVENT_WILDCARD subscriptions.
Type Parameters ​
| Type Parameter | Default type |
|---|---|
TEvent extends Event<undefined> | Event<undefined> |
Parameters ​
| Parameter | Type |
|---|---|
event | TEvent |
Returns ​
TEvent
Inherited from ​
Call Signature ​
emit<
TEvent>(type,data):Event<ContextEventMap[TEvent]>
Defined in: core/src/core/event-bus.ts:186
Emits an event, invoking all matching handlers and bubbling to the parent if applicable. Handlers for the event's own type run first, then EVENT_WILDCARD subscriptions.
Type Parameters ​
| Type Parameter |
|---|
TEvent extends keyof ContextEventMap |
Parameters ​
| Parameter | Type |
|---|---|
type | TEvent |
data | ContextEventMap[TEvent] |
Returns ​
Event<ContextEventMap[TEvent]>
Inherited from ​
enableInteraction() ​
enableInteraction():
void
Defined in: dom/src/context.ts:344
Enables DOM interaction events (mouse enter, leave, move, down, up, click, drag) with element hit testing.
Returns ​
void
export() ​
export():
ContextExport
Defined in: core/src/context/context.ts:832
Captures a snapshot of the current context surface and returns format-specific exporters (see ContextExport). The base implementation is unsupported; each context overrides this with the formats relevant to it (image, url, string).
Returns ​
Inherited from ​
getDefaultState() ​
protectedgetDefaultState():BaseState
Defined in: core/src/context/context.ts:446
Returns ​
Inherited from ​
has() ​
has(
type):boolean
Defined in: core/src/core/event-bus.ts:123
Returns whether there are any listeners registered for the given event type. Wildcard subscriptions (EVENT_WILDCARD) are not listeners for any concrete type, so a bus observed only through the wildcard still reports false here.
Parameters ​
| Parameter | Type |
|---|---|
type | keyof ContextEventMap |
Returns ​
boolean
Inherited from ​
hitTest() ​
protectedhitTest(events,x,y):RenderElement[]
Defined in: core/src/context/context.ts:808
Tests which rendered elements intersect the given point for the given event types, returning them topmost-first — the exact reverse of the order they were painted in.
The point is in logical space — the space pointer event payloads report — so a handler passes the coordinates it was given straight through.
Paint order is the sole key. Context.renderedElements already records the resolved stacking order (groups paint as contiguous stacking contexts), whereas RenderElement.zIndex is additive across the parent chain and so says nothing about two descendants of different groups; sorting by it discarded correct information.
Parameters ​
| Parameter | Type |
|---|---|
events | string[] |
x | number |
y | number |
Returns ​
Inherited from ​
init() ​
protectedinit():void
Defined in: dom/src/context.ts:85
Returns ​
void
invalidateTrackedElements() ​
invalidateTrackedElements(
event?):void
Defined in: core/src/context/context.ts:496
Clears the cached list of tracked elements for interaction, forcing a rebuild on the next hit test.
Parameters ​
| Parameter | Type |
|---|---|
event? | string |
Returns ​
void
Inherited from ​
Context.invalidateTrackedElements
isPointInPath() ​
isPointInPath(
path,x,y,fillRule?):boolean
Defined in: core/src/context/context.ts:776
Tests whether a point is inside the filled region of a path.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
path | ContextPath | The path to test against. |
x | number | X coordinate in logical space (CSS pixels relative to the context's top-left); a backend whose native test wants its own drawing coordinates converts internally. |
y | number | Y coordinate in logical space (CSS pixels relative to the context's top-left). |
fillRule? | FillRule | The fill rule determining what counts as inside. Defaults to the backend's own default. |
Returns ​
boolean
Whether the point lies inside the path's fill.
Inherited from ​
isPointInStroke() ​
isPointInStroke(
path,x,y):boolean
Defined in: core/src/context/context.ts:788
Tests whether a point is on the stroked outline of a path.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
path | ContextPath | The path to test against. |
x | number | X coordinate in logical space (CSS pixels relative to the context's top-left); a backend whose native test wants its own drawing coordinates converts internally. |
y | number | Y coordinate in logical space (CSS pixels relative to the context's top-left). |
Returns ​
boolean
Whether the point lies on the path's stroke.
Inherited from ​
layer() ​
layer<
TResult>(body):TResult
Defined in: core/src/context/context.ts:472
Executes a callback within a save/restore pair, returning the callback's result.
Type Parameters ​
| Type Parameter | Default type |
|---|---|
TResult | void |
Parameters ​
| Parameter | Type |
|---|---|
body | () => TResult |
Returns ​
TResult
Inherited from ​
markRenderEnd() ​
markRenderEnd():
void
Defined in: core/src/context/context.ts:519
Signals the end of a render pass. Clamped at zero, so an unbalanced call cannot drive the depth negative and make backends that gate their flush on depth 0 fire mid-frame.
Returns ​
void
Inherited from ​
markRenderStart() ​
markRenderStart():
void
Defined in: core/src/context/context.ts:510
Signals the start of a render pass; resets the rendered-elements list at depth 0.
Returns ​
void
Inherited from ​
measureText() ​
measureText(
text,font?):TextMetrics
Defined in: core/src/context/context.ts:719
Measures text dimensions using the context's current font, text alignment, and baseline, or an optional font override. actualBoundingBox* is anchor-relative, so the alignment and baseline have to be forwarded or the reported box is anchored at the wrong corner.
Parameters ​
| Parameter | Type |
|---|---|
text | string |
font? | string |
Returns ​
TextMetrics
Inherited from ​
off() ​
off<
TEvent>(type,handler):void
Defined in: core/src/core/event-bus.ts:144
Removes a previously registered handler for the given event type.
Type Parameters ​
| Type Parameter |
|---|
TEvent extends keyof ContextEventMap |
Parameters ​
| Parameter | Type |
|---|---|
type | TEvent |
handler | EventHandler<ContextEventMap[TEvent]> |
Returns ​
void
Inherited from ​
on() ​
on<
TEvent>(type,handler,options?):Disposable
Defined in: core/src/core/event-bus.ts:131
Subscribes a handler to the given event type and returns a disposable for cleanup. Pass EVENT_WILDCARD to receive every event emitted on the bus regardless of type.
Type Parameters ​
| Type Parameter |
|---|
TEvent extends keyof ContextEventMap |
Parameters ​
| Parameter | Type |
|---|---|
type | TEvent |
handler | EventHandler<ContextEventMap[TEvent]> |
options? | EventSubscriptionOptions |
Returns ​
Inherited from ​
once() ​
once<
TEvent>(type,handler,options?):Disposable
Defined in: core/src/core/event-bus.ts:159
Subscribes a handler that is automatically removed after it fires once.
Type Parameters ​
| Type Parameter |
|---|
TEvent extends keyof ContextEventMap |
Parameters ​
| Parameter | Type |
|---|---|
type | TEvent |
handler | EventHandler<ContextEventMap[TEvent]> |
options? | EventSubscriptionOptions |
Returns ​
Inherited from ​
popGroup() ​
popGroup():
void
Defined in: core/src/context/context.ts:620
Closes the most recently opened group boundary, unwinding the state stack back to the depth captured at Context.pushGroup and restoring the render element that was current before it. This absorbs any dangling save() left by a group-scoped clip (which deliberately skips its own restore so the clip persists to later siblings), confining the clip to the group rather than leaking it to the scene.
Returns ​
void
Inherited from ​
pushGroup() ​
pushGroup(
group):void
Defined in: core/src/context/context.ts:573
Opens a group boundary: saves the current drawing state and applies the group's own transform and inherited paint (see applyGroupPaint for the opacity and gradient-bounds semantics every backend must honour), so that descendant elements render within the group's coordinate system, inherit its paint through the copied state (the render-tree cascade), and composite under its opacity. Any group-scoped clip is confined to the group. Every Context.pushGroup must be balanced by a matching Context.popGroup. Backends that render hierarchy structurally (such as SVG) override this to nest descendants under a group node.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
group | Element | The group element whose boundary is being entered. |
Returns ​
void
Inherited from ​
requestRender() ​
requestRender():
void
Defined in: core/src/context/context.ts:505
Requests that the bound scene repaint on the next frame, for context-level changes (e.g. a 3D camera move) that mutate no element and so would otherwise be skipped by the renderer's dirty check.
Returns ​
void
Inherited from ​
rescale() ​
protectedrescale(width,height):void
Defined in: core/src/context/context.ts:436
Parameters ​
| Parameter | Type |
|---|---|
width | number |
height | number |
Returns ​
void
Inherited from ​
reset() ​
reset():
void
Defined in: core/src/context/context.ts:488
Resets the context to its initial state: drops the saved-state stack, restores the default drawing state, and closes any open group boundary.
Returns ​
void
Inherited from ​
restore() ​
restore():
void
Defined in: core/src/context/context.ts:462
Restores the most recently saved state from the stack.
Returns ​
void
Inherited from ​
retain() ​
protectedretain(value,key?):void
Defined in: core/src/core/disposer.ts:14
Registers a disposable resource under an optional key for later cleanup.
Parameters ​
| Parameter | Type | Default value |
|---|---|---|
value | Disposable | undefined |
key | PropertyKey | Disposer.defaultKey |
Returns ​
void
Inherited from ​
rotate() ​
rotate(
angle):void
Defined in: core/src/context/context.ts:634
Applies a rotation transformation.
Parameters ​
| Parameter | Type |
|---|---|
angle | number |
Returns ​
void
Inherited from ​
save() ​
save():
void
Defined in: core/src/context/context.ts:455
Pushes the current state onto the stack and continues with a copy of it, so nested scopes inherit the enclosing drawing state (matching native canvas). This is what lets a group's paint, applied once at its boundary via Context.pushGroup, cascade to descendants.
Returns ​
void
Inherited from ​
scale() ​
scale(
x,y):void
Defined in: core/src/context/context.ts:639
Applies a scale transformation.
Parameters ​
| Parameter | Type |
|---|---|
x | number |
y | number |
Returns ​
void
Inherited from ​
setTransform() ​
setTransform(
a,b,c,d,e,f):void
Defined in: core/src/context/context.ts:663
Replaces the current transformation matrix with [a, b, c, d, e, f].
The matrix is in logical space, so the identity (1, 0, 0, 1, 0, 0) restores the context's own baseline rather than the backend's — on canvas that baseline is the device pixel ratio, which the backend composes back underneath. Translations are therefore in CSS pixels.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
a | number | Horizontal scaling. |
b | number | Vertical skewing. |
c | number | Horizontal skewing. |
d | number | Vertical scaling. |
e | number | Horizontal translation, in logical pixels. |
f | number | Vertical translation, in logical pixels. |
Returns ​
void
Inherited from ​
toLogicalPoint() ​
toLogicalPoint(
x,y): [number,number]
Defined in: core/src/context/context.ts:697
Maps a point from surface space — this backend's own drawing coordinates, as produced by Context.scaleX and Context.scaleY — into the logical space elements are authored in and every public coordinate is expressed in.
Backends disagree on what surface space is: canvas maps logical coordinates onto device pixels while SVG leaves them identity, so a backend has to invert what this context actually does rather than assume the device pixel ratio.
This is a seam for backend implementors, not for consumers — nothing crossing the public API is in surface space, so a caller holding a pointer coordinate already has a logical one.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
x | number | X coordinate in surface space. |
y | number | Y coordinate in surface space. |
Returns ​
[number, number]
The [x, y] pair in logical space.
Inherited from ​
toSurfacePoint() ​
toSurfacePoint(
x,y): [number,number]
Defined in: core/src/context/context.ts:710
Maps a point from the logical space elements are authored in into this backend's own drawing coordinates. The inverse of Context.toLogicalPoint, and likewise a seam for backend implementors rather than consumers.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
x | number | X coordinate in logical space. |
y | number | Y coordinate in logical space. |
Returns ​
[number, number]
The [x, y] pair in surface space.
Inherited from ​
transform() ​
transform(
a,b,c,d,e,f):void
Defined in: core/src/context/context.ts:677
Multiplies the current transformation matrix by [a, b, c, d, e, f].
Parameters ​
| Parameter | Type | Description |
|---|---|---|
a | number | Horizontal scaling. |
b | number | Vertical skewing. |
c | number | Horizontal skewing. |
d | number | Vertical scaling. |
e | number | Horizontal translation. |
f | number | Vertical translation. |
Returns ​
void
Inherited from ​
translate() ​
translate(
x,y):void
Defined in: core/src/context/context.ts:644
Applies a translation transformation.
Parameters ​
| Parameter | Type |
|---|---|
x | number |
y | number |
Returns ​
void