Native recycling list (docs/list.md). The host owns scrolling + cell reuse; Day supplies
row content on demand through the injected ListSource (see Toolkit::attach_list).
A trailing action button on the navigation bar (docs/navigation.md) — the phones’ and
HarmonyOS’s stand-in for a desktop toolbar button, since those toolkits have no window
toolbar (Cap::Toolbar is Unsupported). Rendered upper-right on the nav bar by the
mobile backends (iOS rightBarButtonItem, Android/HarmonyOS a menu action); ignored by
desktop split presentations, which carry their commands in a real toolbar instead.
Native navigation item list. items are display titles in route order;
selected highlights the active route (split presentation; None on mobile roots).
icons (parallel to items, None = no icon) are BUNDLED IMAGE NAMES resolved by each
backend via resource::resolve_image_file — a backend that can’t decorate its rows just
ignores them.
Progress indicator. value is the completed fraction in 0.0..=1.0; None means
indeterminate (an animated spinner / busy bar — no known extent). Backends map this to
their native determinate/indeterminate widgets (docs/progress.md).
Realize props for a scroll container: which axis it scrolls. Backends create the matching
native scroll view (vertical UIScrollView/ScrollView, horizontal
HorizontalScrollView, etc.).
One tab’s content container. title is its tab label (read by the host on insert);
icon is its optional bundled-image name, set on the tab item where the backend shows
tab icons (iOS UITabBarItem), ignored otherwise.
Native tabbed container (docs/tabs.md). titles are the tab labels in page order;
selected is the active tab index. Toolkits present a native tab widget and show the
selected page.
Full text-area props (realize, kinds::TEXT_AREA — docs/textarea.md). text seeds the
editor; min_lines/max_lines bound the auto-growing height in text lines
(max_lines == 0 = unbounded). editable/selectable/spellcheck control the native
editor attributes (all default true); a backend that can’t honor one answers
Cap::Text{Editable,Selectable,SpellCheck} = Unsupported. text and the three attributes
change after build (via TextAreaPatch); the rest are build-only.
A button’s NATIVE styling tier. Automatic is the toolkit’s stock look; Bordered
asks for a visually contained button where the stock look is borderless (iOS’s plain
system button reads as a link); Prominent asks for the platform’s accent-filled /
default-action affordance. Toolkits whose stock buttons are already contained treat
Bordered as Automatic.
Reactive surface update for a background(..) decorator whose color is a signal/closure:
the backend re-applies the fill on the container’s native backing view. Corner radius and
clipping are fixed at realize (the corner_radius(r) decorator takes a plain f64).