(defcomp ()
  (~docs/page :title "Reactive Expressions"
    (p "Any expression containing " (code "(deref sig)") " inside an island scope is automatically reactive. The DOM adapter wraps it in a " (code "computed") " signal for dependency tracking.")
    (~reactive-islands/index/demo-reactive-expressions)
    (~docs/code :src (highlight ";; All of these update live when celsius changes:

;; Bare deref
(span (deref celsius))

;; String interpolation
(span (str (deref celsius) \"°C\"))

;; Arithmetic
(span (+ (* (deref celsius) 1.8) 32))

;; Complex expression
(span (str (deref celsius) \"°C = \"
       (+ (* (deref celsius) 1.8) 32) \"°F\"))

;; Conditional
(span (if (> (deref celsius) 30) \"Hot!\" \"Moderate\"))" "lisp"))
    (p "Before this feature, only bare " (code "(deref sig)") " was reactive. Compound expressions like " (code "(str (deref celsius) \"°C\")") " were evaluated once and never updated. Now the " (code "contains-deref?") " predicate in " (code "adapter-dom.sx") " detects " (code "deref") " calls at any depth and wraps the expression in " (code "(reactive-text (computed (fn () (eval-expr expr env))))") ".")
    (p "This is a language-level feature — every island on the site benefits automatically. No opt-in needed.")))
