Loading States
Three layers of feedback during a slow action. All three forms call the same slowSave action (sleeps 2s server-side) so you can see the different presentations side by side.
Tier 1 — Automatic
The framework adds aria-busy="true" to the form and disabled to its <fieldset> while the action is in flight. No directives needed.
Tier 2 — lvt-form:disable-with
Custom button text during pending. Restored when the action completes.
Tier 2 — lvt-el:setAttr reactive attribute
Toggle aria-busy via :on:pending / :on:done. Multi-action pages can scope this to a specific action (e.g. :on:slowSave:pending); leaving the action name out matches every action's lifecycle, which is fine here.