Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 04:19
f4ebe19

0.2.0 (2026-08-24)

⚠ BREAKING CHANGES

  • @react-x11/components/richtext no longer exports tint. It was only ever a forwarding of a core helper that had nowhere else to live; import it from react-x11/style instead.
  • flow: react-x11 peer floor moves to the first release cut from core master 5f055db (paintDamage, selfDamagedProps, defaultWheel, scrollContents, a11yScene).
  • deps: components no longer resolve against a palette that spells muted ink 'dim'; apps must be on a core at or past 49fb2b30.
  • tree: rowHeight is the minimum height of a row rather than its exact height, and the default label wraps instead of being clipped. A tree that wants the old look passes styles={{ label: { textWrap: 'nowrap' } }}.
  • Sparkline, SparklineProps and SPARKLINE_ELEMENT are gone from the barrel, and the ./sparkline subpath no longer resolves.

Features

  • add <CodeEditor> — multiline code editing with pluggable languages (2f99840)
  • add <CodeEditor> — multiline code editing with pluggable languages (7bd4b6f)
  • add <Formula> — selectable TeX mathematics, and a markdown fence seam (1b4a850)
  • add <Formula> — selectable TeX mathematics, and a markdown fence seam (65c3119)
  • Calendar and DatePicker, plus the desktop's own calendar events (a57669b)
  • calendar: the month nav takes its chevrons from core's icon set (f227e06)
  • calendar: the month nav takes its chevrons from core's icon set (63ce6d1)
  • charts: ChartData maxAge time window, plotRef pan/zoom seam (49bc860)
  • charts: shadcn-shaped chart set with cost-bounded rendering (4c0a9b4)
  • charts: shadcn-shaped chart set with cost-bounded rendering (8be75f5)
  • charts: the bubble hides on press and re-mounts on release (1df5d3f)
  • code-editor: behave through the default-action seam (react-x11#266) (e9fceb8)
  • code-language: highlight.js as a Language, and the seam it arrives through (bc5e5d6)
  • code-language: highlight.js as a Language, and the seam it arrives through (6b27b73)
  • code: static <Code> block; share richtext + code-language modules (9df6155)
  • color-picker: <ColorPicker> and <ColorField>, on core's screen sampler (e90955a)
  • color-picker: <ColorPicker> and <ColorField>, on core's screen sampler (c01b94e)
  • deps: pin core at master a1abc6d and migrate the theme break (104990e)
  • example: split the file explorer with a draggable divider (41531e5)
  • examples: three-effects — the composer stack live, each pass on a switch (78d1503)
  • flow: a react-flow-shaped directed graph editor (a6f2b60)
  • flow: a react-flow-shaped directed graph editor (3533823)
  • flow: adopt the seven upstream seams — pans blit, grids tile, the graph is audible (d8f7f50)
  • flow: mount real widgets in a node, and let nodes be resized (bdfc4f5)
  • html: a static HTML + CSS document, selectable, with seams (8993859)
  • html: a static HTML + CSS document, selectable, with seams (7440cb5)
  • import core's tint instead of vendoring it three times (2aff958)
  • markdown: streaming-friendly GFM renderer with cross-block selection (79164b3)
  • markdown: streaming-friendly GFM with cross-block selection, plus a static <Code> block (efb713d)
  • remove <Sparkline> (1092744)
  • richtext: background fill modes, underline styles, and the link hook (392f667)
  • table: align speaks logical start/end — bidi decides, not the prop (bb4c282)
  • table: the data table, succeeding core's <Table> (53afa85)
  • table: the data table, succeeding core's <Table> (01f7677)
  • terminal-output: render a captured terminal session (f4991b0)
  • terminal-output: render a captured terminal session (4f3b48f)
  • terminal: backend="vt" — a pty, @xterm/headless and a cell-grid renderer (e5448b2)
  • terminal: backend="vt" — a pty, @xterm/headless and a cell-grid renderer (d60f522)
  • terminal: make the pty seam usable from off this machine (941913e)
  • three: a react-three-fiber-shaped scene graph over <glarea> (3060327)
  • three: a react-three-fiber-shaped scene graph over <glarea> (11663a0)
  • timeline: a run of events — Chakra's API over box and text (0e8bb42)
  • timeline: a run of events — Chakra's API over box and text (d6058ee)
  • tray-host: <TrayHost>, the system tray on <foreign> (a68552b)
  • tray-host: <TrayHost>, the system tray on <foreign> (047dd7f), closes #17
  • tree: a disclosure tree that succeeds core's, with seams and virtualization (1042cd8)
  • tree: a disclosure tree that succeeds core's, with seams and virtualization (5d2e91c)
  • tree: rows are as tall as their content, and virtualization measures them (0184837)
  • XEmbed wrappers — <Terminal> and <MediaPlayer> (b40c4a7)
  • XEmbed wrappers — <Terminal> and <MediaPlayer> (9dd4db4)

Bug Fixes

  • charts: collapse same-x bursts before stroking — ntk#259 workaround (fe16d9f)
  • charts: plot-local scatter buckets, container containment, ChartData.clear() (da89ba5)
  • charts: the hover is a live query — and time-axis tooltip headers (1868abc)
  • code-editor: edit the line array in place, so highlighting is not one edit stale (a4fca21)
  • code-editor: edit the line array in place, so highlighting is not one edit stale (08067c7)
  • deps: name the core commit in the spec, not the branch (6161610)
  • deps: name the sha #master floats to — the pin rule (556989d)
  • deps: pin core at 7026456 — the scroll-blit claim-race fix (cc61c27)
  • desktop-calendar: watch reports changes, not the range's contents (66b8682)
  • desktop-calendar: watch reports changes, not the range's contents (f18b8eb)
  • examples: the theme has no $surface token (d807e70)
  • flow: migrate past the theme break, and guard the ntk#259 hairpin (8bdafe4)
  • flow: mounted bodies commit inside the gesture — no trailing, ever (c4e0568)
  • html: controls get their authored spaces back, and default margins (69be4d1)
  • html: list markers on the item's first line, and auto tables shrink to fit (ddc932c)
  • html: reach the layout engine through react-x11/yoga (dcd4ed9)
  • html: reach the layout engine through react-x11/yoga (7e23c43)
  • html: what a self-review against extreme documents found (5cb96f8)
  • pin react-x11 to a master that has <foreign> (fe240bc)
  • terminal: the clipboard chords a terminal actually uses, and say why a pty is missing (78a78b1)
  • three: draw wireframe as a unique-edge LINES index on the direct backend (4778783)
  • three: follow the created context's backend for supportsShaders (75e1d70)
  • tree: keep a row one line tall, and say what bounds the scroll container (8dd1cbe)
  • tree: migrate past the theme break — dim is textMuted (c56f807)
  • tree: the keyboard scrolls only when the selection would leave the viewport (c01b483)

Performance Improvements

  • flow: a drag step repaints the box it moved through, not the graph (7e4b7fd)
  • flow: batch edge strokes, land geometry on whole pixels (d61a62d)
  • flow: blit hud-on pans — the furniture rides beside the copy (5962a80)
  • flow: bodies composite with the card; a keystroke costs its node (f6e7dd2)
  • flow: stroke borders on the fast path, and cite the filed upstream issues (35dd649)
  • html: a paint costs the viewport, not the document (b920db3)