(defcomp
  ()
  (~docs/page
    :title "Transition Pattern"
    (p
      "React's "
      (code "startTransition")
      " defers non-urgent updates so typing stays responsive. In SX: "
      (code "schedule-idle")
      " + "
      (code "batch")
      ". The filter runs during idle time, not blocking the input event.")
    (~reactive-islands/index/demo-transition)
    (~docs/code
      :src (highlight
        (component-source "~reactive-islands/index/demo-transition")
        "lisp"))
    (p
      "React equivalent: "
      (code "startTransition(() => setFiltered(...))")
      ". SX uses "
      (code "schedule-idle")
      " ("
      (code "requestIdleCallback")
      " under the hood) to defer the expensive "
      (code "filter")
      " operation, and "
      (code "batch")
      " to group the result into one update. Fine-grained signals already avoid the jank that makes transitions critical in React — this pattern is for truly expensive computations.")))
