Island disposal, reactive lists, input binding, and Phase 2 plan

- Effect and computed auto-register disposers with island scope via
  register-in-scope; dispose-islands-in called before every swap point
  (orchestration.sx) to clean up intervals/subscriptions on navigation.
- Map + deref inside islands auto-upgrades to reactive-list for signal-
  bound list rendering. Demo island with add/remove items.
- New :bind attribute for two-way signal-input binding (text, checkbox,
  radio, textarea, select). bind-input in adapter-dom.sx handles both
  signal→element (effect) and element→signal (event listener).
- Phase 2 plan page at /reactive-islands/phase2 covering input binding,
  keyed reconciliation, reactive class/style, refs, portals, error
  boundaries, suspense, and transitions.
- Updated status tables in overview and plan pages.
- Fixed stopwatch reset (fn body needs do wrapper for multiple exprs).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 16:10:52 +00:00
parent efc7e340da
commit 8683cf24c3
10 changed files with 543 additions and 59 deletions

View File

@@ -180,7 +180,9 @@
(dict :label "Named Stores" :href "/reactive-islands/named-stores"
:summary "Page-level signal containers via def-store/use-store — persist across island destruction/recreation.")
(dict :label "Plan" :href "/reactive-islands/plan"
:summary "The full design document — rendering boundary, state flow, signal primitives, island lifecycle.")))
:summary "The full design document — rendering boundary, state flow, signal primitives, island lifecycle.")
(dict :label "Phase 2" :href "/reactive-islands/phase2"
:summary "Input binding, keyed lists, reactive class/style, refs, portals, error boundaries, suspense, transitions.")))
(define bootstrappers-nav-items (list
(dict :label "Overview" :href "/bootstrappers/")