Expand description
Round 3 (VAPP-102, docs/round-3-contract.md §2): the tree connector rule
the CORE computes for nested rows, mirroring
packages/exponential-ui/src/tree-guides.ts line by line. tree_guides
is the ×4 rule of the app (packages/ui/src/tree-guides.ts, desktop
domain::tree_guides, iOS TreeGuides.swift, Android TreeGuides.kt),
copied verbatim so a Section of Rows connects like a session tree or a PR
stack. apply_tree_guides is the ONE post-expansion pass (the end of
crate::macros::expand_macros): over every node’s children in order,
each Row root contributes its numeric recipe.props.depth (anything else
counts as 0 and ends every subtree), and the rule fills the Row’s guides
part (a TreeGuides native) with elbowAt / tee / passThrough. Locked
by fixtures/tree-guides.json and the Row cases of catalog-macros.json.
Structs§
- Tree
Guide - Guide geometry for ONE row, in gutter LEVELS (not pixels).
Functions§
- apply_
tree_ guides - Fill every Row’s guides from the rows around it. Mutates
rootin place (the expander hands it a fresh tree). TSapplyTreeGuides: the root itself and every slot value are one-element lists; every node’s children are one list; recurse slots then children. - is_
row_ root - The expanded root of a
Rowmacro. - tree_
guides - The guides for a flat list of VISIBLE rows, given their depths.