pub struct ChartNode {Show 63 fields
pub id: String,
pub name: Option<String>,
pub role: Option<String>,
pub x: Option<PropertyValue>,
pub y: Option<PropertyValue>,
pub w: Option<PropertyValue>,
pub h: Option<PropertyValue>,
pub radius: Option<PropertyValue>,
pub radius_tl: Option<PropertyValue>,
pub radius_tr: Option<PropertyValue>,
pub radius_br: Option<PropertyValue>,
pub radius_bl: Option<PropertyValue>,
pub style: Option<String>,
pub fill: Option<PropertyValue>,
pub stroke: Option<PropertyValue>,
pub stroke_width: Option<PropertyValue>,
pub stroke_alignment: Option<String>,
pub stroke_dash: Option<PropertyValue>,
pub stroke_gap: Option<PropertyValue>,
pub stroke_linecap: Option<String>,
pub border_top: Option<PropertyValue>,
pub border_bottom: Option<PropertyValue>,
pub border_left: Option<PropertyValue>,
pub border_right: Option<PropertyValue>,
pub border_width: Option<PropertyValue>,
pub stroke_outer: Option<PropertyValue>,
pub stroke_outer_width: Option<PropertyValue>,
pub shadow: Option<PropertyValue>,
pub filter: Option<PropertyValue>,
pub mask: Option<PropertyValue>,
pub blend_mode: Option<String>,
pub blur: Option<Dimension>,
pub opacity: Option<f64>,
pub visible: Option<bool>,
pub locked: Option<bool>,
pub rotate: Option<Dimension>,
pub anchor: Option<String>,
pub anchor_zone: Option<String>,
pub anchor_sibling: Option<String>,
pub anchor_edge: Option<String>,
pub anchor_gap: Option<Dimension>,
pub anchor_parent: Option<bool>,
pub kind: String,
pub title: Option<String>,
pub caption: Option<String>,
pub legend: Option<bool>,
pub legend_position: Option<String>,
pub legend_layout: Option<String>,
pub legend_align: Option<String>,
pub axis_min: Option<f64>,
pub axis_max: Option<f64>,
pub axis_style: Option<String>,
pub bar_mode: Option<String>,
pub orientation: Option<String>,
pub point_placement: Option<String>,
pub value_labels: Option<String>,
pub value_color: Option<PropertyValue>,
pub label_colors: Vec<PropertyValue>,
pub slice_colors: Vec<PropertyValue>,
pub categories: Vec<String>,
pub series: Vec<ChartSeries>,
pub source_span: Option<Span>,
pub unknown_props: BTreeMap<String, UnknownProperty>,
}Expand description
A chart node — a compact data-visualization primitive.
A chart declares its data inline via series children
(one child KDL node per series, each with positional f64 arguments) and
paints into its [x, y, w, h] bounding box. The node currently renders
nothing; chart rendering is deferred. The series children are pure DATA,
not renderable nodes: id-collection, validation, anchor, and tx passes
treat the chart as a LEAF and never descend into them.
The common visual/geometry fields mirror PatternNode; the chart-specific
fields (kind, title, caption, legend, axis_*, bar_mode,
orientation, point_placement, value_labels, value_color, label_colors,
slice_colors, categories, series, legend_position, legend_layout,
legend_align) describe the chart content.
Fields§
§id: String§name: Option<String>§role: Option<String>§x: Option<PropertyValue>§y: Option<PropertyValue>§w: Option<PropertyValue>§h: Option<PropertyValue>§radius: Option<PropertyValue>§radius_tl: Option<PropertyValue>Per-corner radius overrides (top-left, top-right, bottom-right, bottom-left).
radius_tr: Option<PropertyValue>§radius_br: Option<PropertyValue>§radius_bl: Option<PropertyValue>§style: Option<String>§fill: Option<PropertyValue>§stroke: Option<PropertyValue>§stroke_width: Option<PropertyValue>§stroke_alignment: Option<String>§stroke_dash: Option<PropertyValue>Dash segment length in pixels; None = solid stroke.
stroke_gap: Option<PropertyValue>Gap length in pixels between dashes; defaults to stroke_dash when absent.
stroke_linecap: Option<String>Dash end-cap style: "butt" (default), "round", or "square".
border_top: Option<PropertyValue>Per-side border color for the top edge. Token-required (color token).
border_bottom: Option<PropertyValue>Per-side border color for the bottom edge. Token-required (color token).
border_left: Option<PropertyValue>Per-side border color for the left edge. Token-required (color token).
border_right: Option<PropertyValue>Per-side border color for the right edge. Token-required (color token).
border_width: Option<PropertyValue>Shared border width for per-side borders. Token-required (dimension).
stroke_outer: Option<PropertyValue>Outer stroke color: a SECOND stroke painted OUTSIDE the geometry.
stroke_outer_width: Option<PropertyValue>Outer stroke width for stroke_outer. Token-required (dimension).
shadow: Option<PropertyValue>Drop shadow / outer glow, as a (token) ref to a shadow token.
filter: Option<PropertyValue>Color/image filter ops, as a (token) ref to a filter token.
mask: Option<PropertyValue>Spatial coverage mask, as a (token) ref to a mask token.
blend_mode: Option<String>Compositing blend mode: "normal" (default) or one of the separable blends.
blur: Option<Dimension>Gaussian blur radius applied to the node’s own rendered ink.
opacity: Option<f64>§visible: Option<bool>§locked: Option<bool>§rotate: Option<Dimension>§anchor: Option<String>Page-relative placement anchor. See RectNode::anchor.
anchor_zone: Option<String>Optional safe-zone reference for the anchor. See RectNode::anchor_zone.
anchor_sibling: Option<String>Optional sibling node id for sibling-relative anchor positioning.
anchor_edge: Option<String>Adjacent-placement edge relative to anchor-sibling: above/below/before/after.
See RectNode::anchor_edge.
anchor_gap: Option<Dimension>Gap (px) between this node and its anchor-sibling edge when anchor-edge is set.
See RectNode::anchor_gap.
anchor_parent: Option<bool>Parent-relative anchor toggle. See RectNode::anchor_parent.
kind: StringRequired: the chart kind ("bar" | "line" | "sparkline" | "pie" | "donut";
freeform, validated later).
title: Option<String>Optional chart title rendered above the plot area.
caption: Option<String>Optional caption rendered below the chart.
legend: Option<bool>Whether to render a legend. None defers to the renderer default.
legend_position: Option<String>Legend placement: "right" (default) | "left" | "top" | "bottom".
freeform, validated later.
legend_layout: Option<String>Legend layout for top/bottom placement: "wrapped" (default; horizontal
flow) | "list" (vertical stack). Ignored for left/right (always a
vertical list). freeform, validated later.
legend_align: Option<String>Legend alignment for top/bottom placement: "center" (default) | "left"
| "right". freeform, validated later.
axis_min: Option<f64>Minimum value for the value axis. None = auto-fit to data.
axis_max: Option<f64>Maximum value for the value axis. None = auto-fit to data.
axis_style: Option<String>Style string for the axis (e.g. "hidden", "minimal"); freeform for now.
bar_mode: Option<String>Bar layout mode: "grouped" (default) | "stacked"; freeform,
validated later. Mirrors how kind is typed/documented.
orientation: Option<String>Bar orientation: "vertical" (default; bars grow up from the X axis) |
"horizontal" (bars grow right from the Y axis, categories on the Y
axis). Applies to bar charts; freeform, validated later.
point_placement: Option<String>X placement for line/area points: "edge" (default; first point on the
value axis, last at the right edge) | "center" (category-band centers).
freeform, validated later.
value_labels: Option<String>Value-label display/placement: "auto" (default) | "none" | "top" |
"center". freeform, validated later.
value_color: Option<PropertyValue>Explicit color (token) for value labels; when absent the renderer auto-picks a contrasting color.
label_colors: Vec<PropertyValue>Per-slice value-label colors for pie/donut (one per category, in order);
empty = use the chart value_color or the white on-fill default.
Populated from a label-colors child node whose positional arguments
are each a PropertyValue (e.g. (token)"color.x").
slice_colors: Vec<PropertyValue>Per-slice FILL colors for pie/donut (one per category, in order);
empty = fall back to the palette (slice_color(idx)).
Populated from a slice-colors child node whose positional arguments
are each a PropertyValue (e.g. (token)"color.x").
categories: Vec<String>X-axis category labels (one per category slot); empty = derive index
labels at render. Populated from a categories child node whose
positional arguments are the label strings.
series: Vec<ChartSeries>Ordered data series. Each series carries labels, an optional color, and a list of f64 data points.
source_span: Option<Span>Source declaration span, when available.
unknown_props: BTreeMap<String, UnknownProperty>Unknown properties preserved for forward-compat.