(defcomp
  ()
  (~docs/page
    :title "Reactive List"
    (p
      "When "
      (code "map")
      " is used with "
      (code "(deref signal)")
      " inside an island, it auto-upgrades to a reactive list. With "
      (code ":key")
      " attributes, existing DOM nodes are reused across updates — only additions, removals, and reorderings touch the DOM.")
    (~reactive-islands/index/demo-reactive-list)
    (~docs/code
      :src (highlight
        (component-source "~reactive-islands/index/demo-reactive-list")
        "lisp"))
    (p
      (code ":key")
      " identifies each list item. When items change, the reconciler matches old and new keys — reusing existing DOM nodes, inserting new ones, and removing stale ones. Without keys, the list falls back to clear-and-rerender. "
      (code "batch")
      " groups the two signal writes into one update pass.")))
