tosijs peer range ^1.6.9 → ^1.7.8. Consumers must be on tosijs≥ 1.7.8; a project on 1.6.x will hit ERESOLVE. (1.7.6/1.7.7 are
deprecated on npm — a parts-resolution regression; 1.7.8 fixes it, and
tosijs-ui 1.7.4 requires it.) As with 0.5.1, this ships under a patch
deliberately — 0.x narrative versioning, with 0.5.0 reserved for the
playable-game cut — so it's flagged here rather than forced to a minor.
Dev/build only, no consumer action:tosijs-ui1.6.23 → 1.7.4, and
chokidar added to devDependencies (tosijs-ui 1.7.x's shipped doc-site
pipeline imports it at runtime but declares it dev-only — filed upstream).
Added
svgIcons (svg-icons.ts) — an SVG icon proxy (svgIcons.<name>() →
an SVG ElementCreator) over a focused, generated icon set
(icons/{color,stroked,filled}/*.svg → icon-data.ts via tosijs-ui's
tosijs-make-icons; bun run icons). A composition-suffix subset
(rotate/flip/scale/translate/opacity/stroke-width/colour) + the generator's
directional redirects + hand-authored aliases (iconAliases, e.g.
moreHorizontal). ~30 icons incl. tosijs3d, xrColor, tosiXr, keyboard,
checkbox/stats/status marks.
iconGlyph — a texture-safe icon primitive (explicit-colour SVG <g>)
for embedding icons in in-scene widgets3d / SvgTexture UI, where
currentColor and CSS vars don't resolve in the raster.
flowLayout (flow-layout.ts) — a pure CSS block/inline-block flow
layout core: the substrate for a first-class SVG UI surface that lives in the
DOM and on a 3D texture. Babylon/DOM-free, unit-tested.
b3d.snapshot() — capture the current view as a PNG data URL
(resolution-independent, via Babylon's render-target screenshot; works flat,
including in-scene panels).
icon-name.ts — the pure composition-suffix parser behind svgIcons.
Changed
Scene chrome → icon lozenge. The top-left toolbar is now one rounded pill
with two svgIcons buttons (settings + xrColor Enter-VR); the scene-panel ×
close is a close icon. The doc-browser header logo = tosiXr and the
favicon = the teal cube, both via tosijs-ui 1.7.4's new logo option.
README gained a 280px logo and its stale xinjs-3d links were fixed.
Fixed
keyboard icon rendering — the generator strips fill-rule from non-color
icons, so its evenodd key-holes broke; moved to color/ with currentColor
(filed upstream). iconGlyph bakes currentColor to an explicit colour so it
renders in the texture raster too.
Lozenge visible without :has() — it defaulted to display:none and
revealed via :has(), so a browser lacking :has() (older Firefox) never
showed the toolbar. Now default-visible; :has() only suppresses the empty-pill
flash.
The svg-icons "composition suffixes" snippet is a static code block (was an
erroring live example).