Resolves #119.
stx 0.2.72 fixes the long-standing bug where rendered as literal text inside client-reactive :for/:if subtrees (stacksjs/stx#1748 + multi-root setup hydration). This repo already uses in 220+ places; this brings the remaining x-text/:text bindings onto the same convention.
Changes
- ~152
x-text/:textbindings →across 29resourcesviews/components. Every site sits on/under a clientx-for/:ifand reads a signal, derived, or loop var. - Bumps
@stacksjs/{stx,components},bun-plugin-stxto^0.2.72(the migration depends on it).
Not touched
- Pre-existing
in<option>/<title>left exactly as-is (text-only elements). StatsRow's<div x-text="statValue(stat.id)">—</div>keepsx-text— it has a meaningful em-dash SSR fallback and the expression carries no inline default.- No
:html/x-htmlin this repo; no server@foreach/@ifbindings touched.
Verification
Rendered the touched pages (FiltersBar, StatsRow, base layout, plus SettingsTab/ErrorDetail) through processDirectives — the framework's render path: all process cleanly, with zero invalid <option><span> / <title><span> and no net change to any text-only element. Framework-level reactive hydration of under :for/:if was independently confirmed in a real browser (headless Chrome via CDP) on stx 0.2.72.
🤖 Generated with Claude Code