(defcomp
  ()
  (~examples/page-content
    :title "Progress Bar"
    :description "Start a server-side job, then poll for progress using sx-trigger=\"load delay:500ms\" on each response. The bar fills up and stops when complete."
    :demo-description "Click start to begin a simulated job."
    :demo (~examples/progress-bar-demo)
    :sx-code ";; Start the job\n(button\n  :sx-post \"/sx/(geography.(hypermedia.(example.(api.progress-start))))\"\n  :sx-target \"#progress-target\"\n  :sx-swap \"innerHTML\")\n\n;; Each response re-polls via sx-trigger=\"load\"\n(div :sx-get \"/sx/(geography.(hypermedia.(example.(api.progress-status))))?job=ID\"\n  :sx-trigger \"load delay:500ms\"\n  :sx-target \"#progress-target\"\n  :sx-swap \"innerHTML\")"
    :handler-names (list "ex-progress-start" "ex-progress-status")
    :comp-placeholder-id "progress-comp"
    :wire-placeholder-id "progress-wire"))
