Published-release documentation · release compatibility

Mark Actions

Each declared action has an exact signature and its own stable link. Option tables are generated from types; behavior prose names the owning workflow and its constraints. API layers and H0–H4 catalog role tags are independent classifications. Relative action hierarchy is determined by composition, not by a tag or fixed trace depth.

createPointMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createPointMark(options?: StrokeStyleDetails & { clip?: boolean; id?: string; data?: string; missing?: "error" | "skip"; shape?: PointShape; fill?: string; opacity?: number; stroke?: FilledMarkStroke; strokeWidth?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails · PointShape · FilledMarkStroke.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
shape Optional / branch-dependent PointShape \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent FilledMarkStroke \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createPointMark({ clip?, id?, data?, missing?, shape?, fill?, opacity?, stroke?, strokeWidth? } = {})

Create a point mark using fourteen named shapes or polygons with area/radius normalization. stroke: false disables the outline and its width at creation. Marks

createTickMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createTickMark(options?: StrokeStyleDetails & { clip?: boolean; id?: string; data?: string; missing?: "error" | "skip"; length?: number; stroke?: string; strokeWidth?: number; opacity?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
length Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
opacity Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createTickMark({ clip?, id?, data?, length?, stroke?, strokeWidth?, opacity? } = {})

Create a centered line glyph that materializes after both x and y are complete. Length defaults to 14; stroke width defaults to 2. Marks

createStatisticalReference

API layer: user-facing. Authoring roles: H1, H2.

Availability: Available by v0.0.24. See release compatibility.

createStatisticalReference(options: CreateStatisticalReferenceOptions): ChartProgram;

Named option contracts: CreateStatisticalReferenceOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
id Optional / branch-dependent string \| undefined
source Required string
axis Required "x" \| "y"
population Optional / branch-dependent "boundData" \| "visibleItems" \| undefined
field Optional / branch-dependent string \| undefined
groupBy Optional / branch-dependent string \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined
statistics Optional / branch-dependent readonly [ReferenceStatistic, ReferenceStatistic] \| undefined
statistic Optional / branch-dependent ReferenceStatistic \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
fill Optional / branch-dependent string \| undefined
strokeDash Optional / branch-dependent DashPattern \| DashStyle \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createStatisticalReference({ id?, source, axis, population?, field?, groupBy?, statistic?, statistics?, ...style })

Create a statistical line or interval through one public action. source is the source mark ID and axis is "x" or "y". Omit the statistic keys for a mean line, supply statistic: { op: "median" } for another single statistic, or an exact statistics pair for a band. The keys are mutually exclusive and use the existing ReferenceStatistic vocabulary. Quantiles 0.25–0.75 show the central 50%; 0.025–0.975 show the central 95% of data, rather than a confidence interval. Set groupBy to one source field name for a separate result per observed group on either axis, even if that field is not encoded. Groups retain source order. Visible marks must have a single value of that grouping field; otherwise use boundData. For a distribution’s measurement axis, boundData uses original observations from density, ECDF, computed box-summary, and gradient provenance. It preserves repeated observations and source groups instead of averaging rendering samples. Precomputed summaries keep their supplied data. Grouped aggregate line statistics can use singleton partitions without changing the source line. Summarized Dot, Lollipop, and Dumbbell endpoints also follow their original measurement roles. Horizon accepts quantitative X statistics from source observations; folded Y and temporal X are not numeric statistic axes. The owned output records the key in group beside value or lower/upper. Omitting groupBy preserves one overall result. The default ID is statisticalReference; use explicit IDs for additional references. Lines default to #222222, width 2.5, solid stroke; bands to #6b7280, opacity 0.18, no stroke. Use native Rule styles for lines and Rect styles for bands. When groupBy matches the source Color field without a color aggregate, omitted stroke shares that Color scale: each group’s line matches its source marks, and palette edits update both. An explicit stroke overrides this default. Reference groups contribute to the shared appearance domain even when a mark filter hides that group. Statistical values do not expand positional domains, and distribution-role edits refresh existing references. This full-only action wraps createReferenceLine or createReferenceBand and retains their statistical binding, replay, editing, facet and removal behavior. Literal reference coordinates are not accepted. Statistical references

createReferenceLine

API layer: user-facing. Authoring roles: H1, H2.

Availability: Available by v0.0.13. See release compatibility.

createReferenceLine(options: CreateReferenceLineOptions): ChartProgram;

Named option contracts: CreateReferenceLineOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
id Optional / branch-dependent string \| undefined
source Optional / branch-dependent string \| undefined
x Optional / branch-dependent unknown
y Optional / branch-dependent unknown
space Optional / branch-dependent "data" \| "plot" \| undefined
data Optional / branch-dependent string \| undefined
coordinate Optional / branch-dependent string \| undefined
temporalUnit Optional / branch-dependent TemporalInputUnit \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
strokeDash Optional / branch-dependent DashPattern \| DashStyle \| undefined
opacity Optional / branch-dependent number \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
axis Optional / branch-dependent "x" \| "y"
population Optional / branch-dependent "boundData" \| "visibleItems" \| undefined
field Optional / branch-dependent string \| undefined
groupBy Optional / branch-dependent string \| undefined
statistic Optional / branch-dependent ReferenceStatistic

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createReferenceLine({ id?, x?, y?, space?, source?, data?, coordinate?, temporalUnit?, stroke?, strokeWidth?, strokeDash?, opacity? })

Create one constant Rule spanning the other plot axis. Exactly one x or y is required. Data space is the default: source resolves explicit, current eligible, then unique eligible Cartesian layer. It supplies data, coordinate, scale, field type, and temporal input unit. Source-owned Text aliases are excluded from source inference. Strings are literal values. Reference constants participate in automatic domains; explicit domains preserve the requested extent. temporalUnit may override the source unit. data and coordinate are plot-space options only.

With space: "plot", the value must be a finite fraction in [0,1]: x runs left to right and y bottom to top. Existing data is explicit or inferred; empty data is supported. coordinate follows Cartesian encoding inference. Plot space rejects source and temporalUnit. A named <id>-<axis> linear scale has domain [0,1] and automatic range. An equivalent scale is reused; a conflicting definition fails. Named scales remain after mark removal.

The default ID is referenceLine; a second line needs an explicit ID. Defaults: stroke #64748b, width 1, dash "dashed", opacity 1. Lower encodeX/Y, editRuleMark, editScale, and removeMark own later changes. Source binding is selected at creation, so rebinding or removing the source does not rebind or remove the reference. The shared scale still drives both marks. Add text with createMarkLabels({ source: id, value: "Target" }). Reference marks

createReferenceBand

API layer: user-facing. Authoring roles: H1, H2.

Availability: Available by v0.0.13. See release compatibility.

createReferenceBand(options: CreateReferenceBandOptions): ChartProgram;

Named option contracts: CreateReferenceBandOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
id Optional / branch-dependent string \| undefined
source Optional / branch-dependent string \| undefined
x Optional / branch-dependent readonly [unknown, unknown] \| readonly [number, number] \| undefined
y Optional / branch-dependent readonly [unknown, unknown] \| readonly [number, number] \| undefined
space Optional / branch-dependent "data" \| "plot" \| undefined
data Optional / branch-dependent string \| undefined
coordinate Optional / branch-dependent string \| undefined
temporalUnit Optional / branch-dependent TemporalInputUnit \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined
axis Optional / branch-dependent "x" \| "y"
population Optional / branch-dependent "boundData" \| "visibleItems" \| undefined
field Optional / branch-dependent string \| undefined
groupBy Optional / branch-dependent string \| undefined
statistics Optional / branch-dependent readonly [ReferenceStatistic, ReferenceStatistic]

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createReferenceBand({ id?, x?, y?, space?, source?, data?, coordinate?, temporalUnit?, fill?, opacity?, stroke?, strokeWidth? })

Create a constant reference band. Exactly one x: [lower, upper] or y: [lower, upper] is required. Reversed endpoints produce positive bounds; equal endpoints produce no rectangle. It uses the same data/plot binding rules as createReferenceLine, but data-space bands require quantitative or temporal source positions. Plot endpoints must both be finite fractions in [0,1]. The default ID is referenceBand, fill #94a3b8, opacity 0.15, and stroke false. To set strokeWidth, also provide a stroke color. Positions, appearance, scale, and removal remain editable through encodeX/Y/X2/Y2, editRectMark, editScale, and removeMark. No extra dataset is created, and no editReferenceBand is needed. Both reference facades are available in the full entry point. Reference marks

createMarkLabels

API layer: user-facing. Authoring roles: H1, H2.

Availability: Available by v0.0.13. See release compatibility.

createMarkLabels(options?: CreateMarkLabelsOptions): ChartProgram;

Named option contracts: CreateMarkLabelsOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
lineHeight Optional / branch-dependent number \| undefined
blockAlign Optional / branch-dependent "first" \| "middle" \| undefined
inheritColor Optional / branch-dependent "fill" \| "stroke" \| false \| undefined
id Optional / branch-dependent string \| undefined
source Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
fontSize Optional / branch-dependent number \| undefined
fontFamily Optional / branch-dependent string \| undefined
fontWeight Optional / branch-dependent string \| number \| undefined
align Optional / branch-dependent "center" \| "end" \| "left" \| "right" \| "start" \| undefined
baseline Optional / branch-dependent "alphabetic" \| "bottom" \| "hanging" \| "ideographic" \| "middle" \| "top" \| undefined
rotation Optional / branch-dependent RotationInput \| undefined
dx Optional / branch-dependent number \| undefined
dy Optional / branch-dependent number \| undefined
layout Optional / branch-dependent false \| Omit<LabelLayoutOptions, "target"> \| undefined
placement Optional / branch-dependent MarkLabelPlacement \| undefined
format Optional / branch-dependent ValueFormat \| undefined
field Optional / branch-dependent string \| undefined
value Optional / branch-dependent unknown
content Optional / branch-dependent "category" \| "share" \| "value" \| undefined
normalizeBy Optional / branch-dependent "category" \| "source" \| undefined
select Optional / branch-dependent MarkSelector \| undefined
selection Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createMarkLabels({ clip?, id?, source?, field?, value?, content?, normalizeBy?, format?, inheritColor?, lineHeight?, blockAlign?, fill?, opacity?, fontSize?, fontFamily?, fontWeight?, align?, baseline?, rotation?, dx?, dy?, layout?, placement?, select?, selection? } = {})

Label source mark items. The default content is the source’s semantic value; Point/Line/Rule/Rect require a field or constant. A Line creates one label per series at its final path coordinate. The default ID is <source>-labels. Omit select and selection to label every final item. Pass select: MarkSelector for an inline predicate or selection: id for a live stored selection on the same source. Empty matches are valid, and selected labels keep source item order. Semantic content is computed before membership filtering, so a selected share label keeps its percentage of the complete source. placement applies the semantic boundary policy described below during creation. Text marks

editMarkLabelSelection

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.24. See release compatibility.

editMarkLabelSelection(options: EditMarkLabelSelectionOptions): ChartProgram;

Named option contracts: EditMarkLabelSelectionOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Required string
select Optional / branch-dependent MarkSelector \| undefined
selection Optional / branch-dependent string \| undefined
all Optional / branch-dependent true \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editMarkLabelSelection({ target, select })
editMarkLabelSelection({ target, selection })
editMarkLabelSelection({ target, all: true })

Replace one attached label layer’s final-item membership. Exactly one replacement branch is required and target is never inferred. Inline selectors reuse MarkSelector; named selections must target the same source mark. Selection edits replay named labels, while selection removal is rejected until dependent labels are rebound with this action or removed. Text marks

editMarkLabelPlacement

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.24. See release compatibility.

editMarkLabelPlacement(options: EditMarkLabelPlacementOptions): ChartProgram;

Named option contracts: EditMarkLabelPlacementOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Required string
placement Required "auto" \| MarkLabelPlacement

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editMarkLabelPlacement({ target, placement: { anchor, gap?, overflow?, leader? } })
editMarkLabelPlacement({ target, placement: "auto" })

Replace semantic placement for one attached label layer. anchor is center, insideStart, insideEnd, outsideStart, or outsideEnd; gap defaults to 4 pixels. For inside anchors, overflow defaults to hide, can retry once outside with outside, or can retain an overlong label with allow. Optional owned leaders connect the source boundary to the final text box and replay after collision layout. Bar, directed Rect, Arc, Cartesian Point, and Polar Point sources are supported. Line keeps endpoint layout, Rule is rejected, and conflicting placement/collision leaders fail atomically. Arc outside-start labels hide instead of crossing the Polar center unless overflow: "allow" is explicit. Pass "auto" to restore the legacy source anchor and remove the owned placement leader. Text marks

removeMarkLabels

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.24. See release compatibility.

removeMarkLabels(options: RemoveMarkLabelsOptions): ChartProgram;

Named option contracts: RemoveMarkLabelsOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
source Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

removeMarkLabels({ target })
removeMarkLabels({ source })

Remove one attached label layer by ID, or every attached label owned by a source mark. Exactly one selector is required. The source mark, its selections, and unrelated labels remain. Label layout policies, generated leaders, and interaction state attached to removed labels are cleaned up, so later source, scale, Canvas, and theme edits do not recreate them. Independent Text and annotations continue to use removeMark. Text marks

createAnnotation

API layer: user-facing. Authoring roles: H1, H2.

Availability: Available by v0.0.13. See release compatibility.

createAnnotation(options: CreateAnnotationOptions): ChartProgram;

Named option contracts: CreateAnnotationOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
lineHeight Optional / branch-dependent number \| undefined
blockAlign Optional / branch-dependent "first" \| "middle" \| undefined
inheritColor Optional / branch-dependent "fill" \| "stroke" \| false \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
fontSize Optional / branch-dependent number \| undefined
fontFamily Optional / branch-dependent string \| undefined
fontWeight Optional / branch-dependent string \| number \| undefined
align Optional / branch-dependent "center" \| "end" \| "left" \| "right" \| "start" \| undefined
baseline Optional / branch-dependent "alphabetic" \| "bottom" \| "hanging" \| "ideographic" \| "middle" \| "top" \| undefined
rotation Optional / branch-dependent RotationInput \| undefined
dx Optional / branch-dependent number \| undefined
dy Optional / branch-dependent number \| undefined
id Optional / branch-dependent string \| undefined
text Required unknown
format Optional / branch-dependent ValueFormat \| undefined
layout Optional / branch-dependent false \| Omit<LabelLayoutOptions, "target"> \| undefined
anchor Optional / branch-dependent "plot-center" \| undefined
x Optional / branch-dependent unknown
y Optional / branch-dependent unknown
space Optional / branch-dependent "data" \| "plot" \| undefined
source Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
coordinate Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createAnnotation({ clip?, id?, text, anchor?, format?, source?, x?, y?, space?, data?, coordinate?, fill?, opacity?, fontSize?, fontFamily?, fontWeight?, align?, baseline?, rotation?, dx?, dy?, layout? })

Create anchored text. Omit x/y/space for a final-item mark anchor; source selects the mark, otherwise current/unique mark inference applies. Provide both x and y for a data anchor; source selects one complete Cartesian layer whose data, coordinate, scales, field types, and temporal units are reused. The annotation participates in automatic domains without becoming a source-owned label.

With space: "plot", x and y are finite fractions in [0,1], where x=0 is left and y=0 is bottom. Existing data is explicit or inferred, and coordinate is optional. Plot anchors reject source and use ordinary <id>-x/<id>-y linear scales with domain [0,1]. The default ID is annotation.

anchor: "plot-center" supplies plot x/y=0.5, horizontal center alignment, and middle baseline together. It rejects x, y, space, source, align, and baseline; optional data, coordinate, styles, and offsets follow the plot branch. The anchor follows plot bounds on Canvas and margin changes.

Omit layout or pass false to retain the exact anchor. A layout object accepts layoutLabels options except target. Later changes use encodeText, encodeX/Y, editTextMark, layoutLabels, removeLabelLayout, editScale, and removeMark. Text marks

createTextMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createTextMark(options?: TextMarkOptions): ChartProgram;

Named option contracts: TextMarkOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
lineHeight Optional / branch-dependent number \| undefined
blockAlign Optional / branch-dependent "first" \| "middle" \| undefined
inheritColor Optional / branch-dependent "fill" \| "stroke" \| false \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
source Optional / branch-dependent string \| undefined
text Optional / branch-dependent unknown
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
fontSize Optional / branch-dependent number \| undefined
fontFamily Optional / branch-dependent string \| undefined
fontWeight Optional / branch-dependent string \| number \| undefined
align Optional / branch-dependent "center" \| "end" \| "left" \| "right" \| "start" \| undefined
baseline Optional / branch-dependent "alphabetic" \| "bottom" \| "hanging" \| "ideographic" \| "middle" \| "top" \| undefined
rotation Optional / branch-dependent RotationInput \| undefined
dx Optional / branch-dependent number \| undefined
dy Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createTextMark({ clip?, id?, data?, source?, text?, inheritColor?, lineHeight?, blockAlign?, fill?, opacity?, fontSize?, fontFamily?, fontWeight?, align?, baseline?, rotation?, dx?, dy? } = {})

Create a semantic text layer. Omitted data and position attach to the current or unique compatible point, bar, line, rect, rule, or arc layer. Line text anchors at each series’ final path coordinate; Arc text anchors at sector centers. text is constant-content shorthand. Source-owned text follows final source positions and never contributes independent scale-domain values. Source field or scale changes also drive its labels and guides. Direct encodeX/Y on attached Text is rejected: edit the source, use editTextMark({ dx, dy }), or create independent Text with explicit data to author its positions. Independent Text accepts field or datum positions; all-constant x/y/text produces one item, while any field-bound encoding uses row grain. Row-backed text supports encodeColor; explicit fill conflicts with that encoding. Attached labels accept inheritColor: "fill" | "stroke" | false to follow source appearance. Explicit fill overrides inheritance. Inheritance adds no color scale or duplicate legend. rotation accepts a finite legacy number in radians or an explicit { value, unit: "degrees" | "radians" } object; both normalize to concrete radians. createMarkLabels, createAnnotation, and editTextMark share this input contract. Newlines split text into resolved lines; lineHeight sets pixel spacing (default 1.2 * fontSize). blockAlign: "first" anchors the first line; "middle" centers the entire block vertically. Empty internal lines are retained. Text marks

editTextMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editTextMark(options: EditTextMarkOptions): ChartProgram;

Named option contracts: EditTextMarkOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
clip Optional / branch-dependent boolean \| undefined
lineHeight Optional / branch-dependent number \| undefined
blockAlign Optional / branch-dependent "first" \| "middle" \| undefined
inheritColor Optional / branch-dependent "fill" \| "stroke" \| false \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
fontSize Optional / branch-dependent number \| undefined
fontFamily Optional / branch-dependent string \| undefined
fontWeight Optional / branch-dependent string \| number \| undefined
align Optional / branch-dependent "center" \| "end" \| "left" \| "right" \| "start" \| undefined
baseline Optional / branch-dependent "alphabetic" \| "bottom" \| "hanging" \| "ideographic" \| "middle" \| "top" \| undefined
rotation Optional / branch-dependent RotationInput \| undefined
dx Optional / branch-dependent number \| undefined
dy Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editTextMark({ clip?, target?, inheritColor?, lineHeight?, blockAlign?, fill?, opacity?, fontSize?, fontFamily?, fontWeight?, align?, baseline?, rotation?, dx?, dy? })

Edit text typography and graphical offsets without changing its semantic source or position. Text marks

layoutLabels

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

layoutLabels(options?: LabelLayoutOptions): ChartProgram;

Named option contracts: LabelLayoutOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
axis Optional / branch-dependent LabelLayoutAxis \| undefined
padding Optional / branch-dependent number \| undefined
maxDisplacement Optional / branch-dependent number \| undefined
bounds Optional / branch-dependent LabelLayoutBounds \| undefined
leader Optional / branch-dependent false \| LabelLeaderOptions \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

layoutLabels({ target?, axis?, padding?, maxDisplacement?, bounds?, leader? } = {})

Assign deterministic collision-aware placement to one complete text mark. Displacement may use x, y, or both axes and remains inside plot or Canvas bounds when possible. Optional leaders connect displaced labels to their stored source anchors. Impossible layouts retain a stable best effort and a warning summary. Text marks

removeLabelLayout

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

removeLabelLayout(options?: RemoveLabelLayoutOptions): ChartProgram;

Named option contracts: RemoveLabelLayoutOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

removeLabelLayout({ target? } = {})

Remove one text mark’s layout policy and leader collection, then restore its semantic base positions. Text marks

Position capability matrix

Action Supported marks Field types Important modes
encodeX point, line, area, bar, rect, rule, tick, text point/line/area/bar/rect/rule/tick/text: quantitative, temporal, ordinal, nominal field; rule, area, rect, and independent text also accept datum; bar accepts aggregate or bin
encodeY point, line, area, bar, rect, rule, tick, text point/line/area/bar/rect/rule/tick/text: quantitative, temporal, ordinal, nominal field; rule, area, rect, and independent text also accept datum; bar accepts aggregate or count
encodeX2 / encodeY2 area, ranged bar, rect, rule area/ranged bar/rect/rule: matching primary secondary field; rule, area, and rect also accept datum
encodeTheta point, line, arc point/line: quantitative, temporal, ordinal, nominal; arc: quantitative, ordinal, nominal arc maps direct quantitative values, category counts, or category-weighted sums to proportional sectors
encodeR point, line, arc point/line/arc: quantitative radial position; arc combines it with a categorical theta band
encodeParallelCoordinates line line: quantitative, ordinal atomic ordered dimensions; one namespaced scale and axis per dimension
encodeDx / encodeDy text text: quantitative independent Text only; finite field or constant logical-pixel offsets, no scale or guide; field offsets establish row grain

Temporal input branches accept temporalUnit: "auto" | "year" | "timestamp". Timestamp means Unix milliseconds; year means UTC January 1. Omission preserves the existing parser. Same-binding reassignment retains an explicit unit; a new binding clears it. Domains and tick values are already normalized timestamps. Temporal input

editPointMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editPointMark(options: StrokeStyleDetails & { clip?: boolean; target?: string; missing?: "error" | "skip"; shape?: PointShape; fill?: string; opacity?: number; stroke?: FilledMarkStroke; strokeWidth?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails · PointShape · FilledMarkStroke.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
target Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
shape Optional / branch-dependent PointShape \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent FilledMarkStroke \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editPointMark({ clip?, target?, missing?, shape?, fill?, opacity?, stroke?, strokeWidth? })

Change constant point shape, fill, opacity, or outline appearance and rematerialize its concrete items. stroke: false disables the outline and its width. Marks

editTickMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editTickMark(options: StrokeStyleDetails & { clip?: boolean; target?: string; missing?: "error" | "skip"; length?: number; stroke?: string; strokeWidth?: number; opacity?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
target Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
length Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
opacity Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editTickMark({ clip?, target?, length?, stroke?, strokeWidth?, opacity? })

Partially edit Tick length or constant line appearance while preserving data, position, and other assignments. Marks

jitterPoints

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

jitterPoints(options: JitterPointsOptions): ChartProgram;

Named option contracts: JitterPointsOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
channel Required "both" \| "x" \| "y"
maxOffset Required JitterMaxOffset
seed Optional / branch-dependent string \| number \| undefined
key Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

jitterPoints({ target?, channel, maxOffset, seed?, key? })

Assign deterministic bounded graphical jitter to one Cartesian point mark with channel: "x", "y", or "both". Both axes use independent offsets. Use exactly one of maxOffset.pixels or maxOffset.band; calling the action again replaces the previous policy from the semantic base positions. Point marks

removeJitter

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

removeJitter(options?: RemoveJitterOptions): ChartProgram;

Named option contracts: RemoveJitterOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

removeJitter({ target? } = {})

Remove the target point mark’s jitter assignment and restore positions derived directly from its semantic encodings. Point marks

packPoints

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

packPoints(options: PackPointsOptions): ChartProgram;

Named option contracts: PackPointsOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
channel Required "x" \| "y"
maxOffset Optional / branch-dependent PointPackingMaxOffset \| undefined
padding Optional / branch-dependent number \| undefined
key Optional / branch-dependent string \| undefined
overflow Optional / branch-dependent "error" \| "overlap" \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

packPoints({ target?, channel, maxOffset?, padding?, key?, overflow? })

Deterministically displace Point glyphs only on a categorical x or y axis to avoid overlap while preserving measure coordinates. The default overflow policy fails atomically; "overlap" records unresolved best-effort placements. Point marks

removePointPacking

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

removePointPacking(options?: RemovePointPackingOptions): ChartProgram;

Named option contracts: RemovePointPackingOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

removePointPacking({ target? } = {})

Remove stored point packing and rematerialize the current semantic scale positions. Point marks

removeMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

removeMark(options?: RemoveMarkOptions): ChartProgram;

Named option contracts: RemoveMarkOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

removeMark({ target? })

Remove one stable mark owner and its owned state while preserving source data and independently shared resources. Marks

createLineMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createLineMark(options?: StrokeStyleDetails & { clip?: boolean; missing?: "error" | "break"; id?: string; data?: string; strokeWidth?: number; curve?: CurveInterpolation; tension?: number; stroke?: string; opacity?: number; closed?: boolean; }): ChartProgram;

Named option contracts: StrokeStyleDetails · CurveInterpolation.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
missing Optional / branch-dependent "break" \| "error" \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
curve Optional / branch-dependent CurveInterpolation \| undefined
tension Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
closed Optional / branch-dependent boolean \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createLineMark({ clip?, missing?, id?, data?, stroke?, strokeWidth?, opacity?, curve?, tension?, closed? } = {})

Create a semantic line mark and empty path collection. Curve defaults to "linear"; explicit curve and strokeWidth values are retained during rematerialization. A compatible layered source can provide data, positions, shared scales, and a grain-preserving aggregate such as mean; bar-only bin, stack, and offset policies are not inherited. closed: true closes each Polar series as a radar path. For direct Cartesian quantitative/temporal positions, opt-in missing: "break" preserves null/absent observations as independent valid runs. The default remains strict. Each run is a path and selection item; curves restart at each gap. Marks

editLineMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editLineMark(options: StrokeStyleDetails & { clip?: boolean; missing?: "error" | "break"; target?: string; strokeWidth?: number; curve?: CurveInterpolation; tension?: number; stroke?: string; opacity?: number; closed?: boolean; }): ChartProgram;

Named option contracts: StrokeStyleDetails · CurveInterpolation.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
missing Optional / branch-dependent "break" \| "error" \| undefined
target Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
curve Optional / branch-dependent CurveInterpolation \| undefined
tension Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
closed Optional / branch-dependent boolean \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editLineMark({ clip?, missing?, target?, stroke?, strokeWidth?, opacity?, curve?, tension?, closed? })

Edit line appearance or its explicit missing-coordinate policy and rematerialize concrete path commands without changing field encodings. Marks

createBarMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createBarMark(options?: RectStyleDetails & { clip?: boolean; id?: string; data?: string; orientation?: "vertical" | "horizontal"; missing?: "error" | "skip"; fill?: FillPaint; opacity?: number; stroke?: FilledMarkStroke; strokeWidth?: number; }): ChartProgram;

Named option contracts: RectStyleDetails · FillPaint · FilledMarkStroke.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
orientation Optional / branch-dependent "horizontal" \| "vertical" \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent FillPaint \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent FilledMarkStroke \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createBarMark({ clip?, id?, data?, orientation?, fill?, opacity?, stroke?, strokeWidth? } = {})

Create a semantic bar mark and empty rect collection. stroke: false disables the outline and its width at creation. Marks

Global cornerRadius and per-corner cornerRadiusTopLeft, cornerRadiusTopRight, cornerRadiusBottomRight, and cornerRadiusBottomLeft use non-negative logical pixels. Each corner override wins over the global fallback and clamps to half the smaller item side. Omitted corners fall back to the global radius or zero; edits retain unspecified overrides.

editBarMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editBarMark(options: RectStyleDetails & { clip?: boolean; target?: string; blend?: "normal" | "difference"; missing?: "error" | "skip"; fill?: FillPaint; opacity?: number; stroke?: FilledMarkStroke; strokeWidth?: number; }): ChartProgram;

Named option contracts: RectStyleDetails · FillPaint · FilledMarkStroke.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
target Optional / branch-dependent string \| undefined
blend Optional / branch-dependent "difference" \| "normal" \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent FillPaint \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent FilledMarkStroke \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editBarMark({ clip?, target?, blend?, fill?, opacity?, stroke?, strokeWidth? })

Edit whole-bar appearance and rematerialize every concrete rectangle. Use blend: "difference" to composite each bar fill and outline once over earlier content; blend: "normal" restores ordinary painting. Omission preserves the current mode. stroke: false removes the visible outline; constant fill conflicts with a field-driven color encoding. Marks

Cardinal line tension is a finite number from 0 to 1 (default 0); it scales tangents by 1-tension. The line facade forwards line.tension; changing to another curve clears the previous setting. Global cornerRadius and per-corner cornerRadiusTopLeft, cornerRadiusTopRight, cornerRadiusBottomRight, and cornerRadiusBottomLeft use non-negative logical pixels. Each corner override wins over the global fallback and clamps to half the smaller item side. Omitted corners fall back to the global radius or zero; edits retain unspecified overrides.

createAreaMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createAreaMark(options?: StrokeStyleDetails & { clip?: boolean; id?: string; data?: string; fill?: FillPaint; opacity?: number; stroke?: string; strokeWidth?: number; curve?: CurveInterpolation; missing?: "error" | "break"; }): ChartProgram;

Named option contracts: StrokeStyleDetails · FillPaint · CurveInterpolation.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
fill Optional / branch-dependent FillPaint \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
curve Optional / branch-dependent CurveInterpolation \| undefined
missing Optional / branch-dependent "break" \| "error" \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createAreaMark({ clip?, id?, data?, fill?, opacity?, stroke?, strokeWidth?, curve?, missing? } = {})

Create a semantic area mark and empty path collection. Fixed fill defaults to "#4c78a8"; opacity defaults to 0.2. Optional outlines default to width 1. Curve defaults to "linear" and accepts the shared eight-value vocabulary. Marks

Area missing defaults to "error". "break" splits null/undefined measured endpoints into closed segments with at least two samples; independent positions and nonfinite values remain strict. Density/Horizon missing policies are not reinterpreted.

createRuleMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createRuleMark(options?: { clip?: boolean; id?: string; data?: string; missing?: "error" | "skip" } & RuleStyleOptions): ChartProgram;

Named option contracts: RuleStyleOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
strokeDash Optional / branch-dependent DashPattern \| DashStyle \| undefined
opacity Optional / branch-dependent number \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createRuleMark({ clip?, id?, data?, stroke?, strokeWidth?, strokeDash?, opacity? } = {})

Create a semantic rule mark and empty line collection. The first omitted ID is "rule"; data defaults to current data. Marks

editRuleMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editRuleMark(options: { clip?: boolean; target?: string; missing?: "error" | "skip" } & RuleStyleOptions): ChartProgram;

Named option contracts: RuleStyleOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
target Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined
strokeDash Optional / branch-dependent DashPattern \| DashStyle \| undefined
opacity Optional / branch-dependent number \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editRuleMark({ clip?, target?, stroke?, strokeWidth?, strokeDash?, opacity? })

Edit constant Rule appearance through the four existing encoding owners. At least one style is required; field appearance conflicts with scalar editing. Creation accepts the same styles. Rule marks

editAreaMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editAreaMark(options: StrokeStyleDetails & { clip?: boolean; target?: string; fill?: FillPaint; opacity?: number; stroke?: string | false; strokeWidth?: number; curve?: CurveInterpolation; missing?: "error" | "break"; }): ChartProgram;

Named option contracts: StrokeStyleDetails · FillPaint · CurveInterpolation.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
target Optional / branch-dependent string \| undefined
fill Optional / branch-dependent FillPaint \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined
curve Optional / branch-dependent CurveInterpolation \| undefined
missing Optional / branch-dependent "break" \| "error" \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editAreaMark({ clip?, target?, fill?, opacity?, stroke?, strokeWidth?, curve?, missing? })

Edit constant area appearance. stroke: false removes an existing outline. Marks

createArcMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createArcMark(options?: StrokeStyleDetails & { id?: string; data?: string; innerRadius?: ArcInnerRadius; padAngle?: number; fill?: string; opacity?: number; stroke?: string; strokeWidth?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails · ArcInnerRadius.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
innerRadius Optional / branch-dependent ArcInnerRadius \| undefined
padAngle Optional / branch-dependent number \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createArcMark({ id?, data?, innerRadius?, padAngle?, fill?, opacity?, stroke?, strokeWidth? } = {})

Create a semantic arc mark and empty closed-path collection. Direct quantitative theta, category counts, or category-weighted sums materialize proportional pie or donut sectors; categorical theta plus radius materializes radial sectors. Marks

editArcMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editArcMark(options: StrokeStyleDetails & { target?: string; innerRadius?: ArcInnerRadius; padAngle?: number; fill?: string; opacity?: number; stroke?: string | false; strokeWidth?: number; }): ChartProgram;

Named option contracts: StrokeStyleDetails · ArcInnerRadius.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
target Optional / branch-dependent string \| undefined
innerRadius Optional / branch-dependent ArcInnerRadius \| undefined
padAngle Optional / branch-dependent number \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editArcMark({ target?, innerRadius?, padAngle?, fill?, opacity?, stroke?, strokeWidth? })

Edit arc geometry or appearance and rematerialize complete sector paths. stroke: false disables the outline and its width. Marks

createRectMark

API layer: user-facing. Authoring roles: H2.

Availability: Available by v0.0.13. See release compatibility.

createRectMark(options?: RectMarkOptions): ChartProgram;

Named option contracts: RectMarkOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
clip Optional / branch-dependent boolean \| undefined
id Optional / branch-dependent string \| undefined
data Optional / branch-dependent string \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

createRectMark({ clip?, id?, data?, fill?, opacity?, stroke?, strokeWidth? } = {})

Create a semantic rect mark and empty rect collection. Two discrete x/y bands or complete x/x2 and y/y2 endpoint pairs materialize observed cells. Rects do not infer bar aggregation, baseline, stack, or width semantics. Rect marks

Global cornerRadius and per-corner cornerRadiusTopLeft, cornerRadiusTopRight, cornerRadiusBottomRight, and cornerRadiusBottomLeft use non-negative logical pixels. Each corner override wins over the global fallback and clamps to half the smaller item side. Omitted corners fall back to the global radius or zero; edits retain unspecified overrides.

editRectMark

API layer: user-facing. Authoring roles: H3.

Availability: Available by v0.0.13. See release compatibility.

editRectMark(options: EditRectMarkOptions): ChartProgram;

Named option contracts: EditRectMarkOptions.

Declared options

Generated from the current TypeScript declaration. Union branches can require different combinations; optional does not mean every combination is valid.

Option Presence Type
target Optional / branch-dependent string \| undefined
lineCap Optional / branch-dependent "butt" \| "round" \| "square" \| undefined
lineJoin Optional / branch-dependent "bevel" \| "miter" \| "round" \| undefined
miterLimit Optional / branch-dependent number \| undefined
cornerRadius Optional / branch-dependent number \| undefined
cornerRadiusTopLeft Optional / branch-dependent number \| undefined
cornerRadiusTopRight Optional / branch-dependent number \| undefined
cornerRadiusBottomRight Optional / branch-dependent number \| undefined
cornerRadiusBottomLeft Optional / branch-dependent number \| undefined
clip Optional / branch-dependent boolean \| undefined
missing Optional / branch-dependent "error" \| "skip" \| undefined
fill Optional / branch-dependent string \| undefined
opacity Optional / branch-dependent number \| undefined
stroke Optional / branch-dependent string \| false \| undefined
strokeWidth Optional / branch-dependent number \| undefined

The following call patterns are abbreviated examples; the declaration above owns the complete option set.

editRectMark({ clip?, target?, fill?, opacity?, stroke?, strokeWidth? })

Edit rect appearance and rematerialize complete cells. Constant fill conflicts with field-driven color. stroke: false disables the outline. Rect marks

Global cornerRadius and per-corner cornerRadiusTopLeft, cornerRadiusTopRight, cornerRadiusBottomRight, and cornerRadiusBottomLeft use non-negative logical pixels. Each corner override wins over the global fallback and clamps to half the smaller item side. Omitted corners fall back to the global radius or zero; edits retain unspecified overrides.

Action Reference · Chart API · Supported Features

Documentation provenance

293 actions · sha256:e755591a2e5f5e2b494867583876e28020a478c5220b77bdc6ad469a6224891d