- Detail pages for all 18 HTTP headers with descriptions, example usage, direction badges (request/response/both), and live demos for SX-Prompt, SX-Trigger, SX-Retarget - Detail pages for all 10 DOM events with descriptions, example usage, and live demos for beforeRequest, afterSettle, responseError, validationFailed - Header and event table rows now link to their detail pages - Fix copyright symbol on home page (was literal \u00a9, now actual ©) - Rename "Godel, Escher, Bach" essay to "Strange Loops" with updated summary - Remove duplicate script injection from bootstrapper page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
87 lines
3.3 KiB
Plaintext
87 lines
3.3 KiB
Plaintext
;; Reference page layouts — receive data from Python primitives
|
|
;; @css bg-blue-100 text-blue-700 bg-emerald-100 text-emerald-700 bg-amber-100 text-amber-700
|
|
|
|
(defcomp ~reference-attrs-content (&key req-table beh-table uniq-table)
|
|
(~doc-page :title "Attribute Reference"
|
|
(p :class "text-stone-600 mb-6"
|
|
"sx attributes mirror htmx where possible. This table shows all available attributes and their status.")
|
|
(div :class "space-y-8"
|
|
req-table
|
|
beh-table
|
|
uniq-table)))
|
|
|
|
(defcomp ~reference-headers-content (&key req-table resp-table)
|
|
(~doc-page :title "Headers"
|
|
(p :class "text-stone-600 mb-6"
|
|
"sx uses custom HTTP headers to coordinate between client and server.")
|
|
(div :class "space-y-8"
|
|
req-table
|
|
resp-table)))
|
|
|
|
(defcomp ~reference-events-content (&key table)
|
|
(~doc-page :title "Events"
|
|
table))
|
|
|
|
(defcomp ~reference-js-api-content (&key table)
|
|
(~doc-page :title "JavaScript API"
|
|
table))
|
|
|
|
(defcomp ~reference-attr-detail-content (&key title description demo
|
|
example-code handler-code wire-placeholder-id)
|
|
(~doc-page :title title
|
|
(p :class "text-stone-600 mb-6" description)
|
|
(when demo
|
|
(~example-card :title "Demo"
|
|
(~example-demo demo)))
|
|
(h3 :class "text-lg font-semibold text-stone-700 mt-6" "S-expression")
|
|
(~example-source :code (highlight example-code "lisp"))
|
|
(when handler-code
|
|
(<>
|
|
(h3 :class "text-lg font-semibold text-stone-700 mt-6" "Server handler")
|
|
(~example-source :code (highlight handler-code "lisp"))))
|
|
(when wire-placeholder-id
|
|
(<>
|
|
(h3 :class "text-lg font-semibold text-stone-700 mt-6" "Wire response")
|
|
(p :class "text-stone-500 text-sm mb-2"
|
|
"Trigger the demo to see the raw response the server sends.")
|
|
(~doc-placeholder :id wire-placeholder-id)))))
|
|
|
|
(defcomp ~reference-header-detail-content (&key title direction description
|
|
example-code demo)
|
|
(~doc-page :title title
|
|
(let ((badge-class (if (= direction "request")
|
|
"bg-blue-100 text-blue-700"
|
|
(if (= direction "response")
|
|
"bg-emerald-100 text-emerald-700"
|
|
"bg-amber-100 text-amber-700")))
|
|
(badge-label (if (= direction "request") "Request Header"
|
|
(if (= direction "response") "Response Header"
|
|
"Request & Response"))))
|
|
(div :class "flex items-center gap-3 mb-4"
|
|
(span :class (str "text-xs font-medium px-2 py-1 rounded " badge-class)
|
|
badge-label)))
|
|
(p :class "text-stone-600 mb-6" description)
|
|
(when demo
|
|
(~example-card :title "Demo"
|
|
(~example-demo demo)))
|
|
(when example-code
|
|
(<>
|
|
(h3 :class "text-lg font-semibold text-stone-700 mt-6" "Example usage")
|
|
(~example-source :code (highlight example-code "lisp"))))))
|
|
|
|
(defcomp ~reference-event-detail-content (&key title description example-code demo)
|
|
(~doc-page :title title
|
|
(p :class "text-stone-600 mb-6" description)
|
|
(when demo
|
|
(~example-card :title "Demo"
|
|
(~example-demo demo)))
|
|
(when example-code
|
|
(<>
|
|
(h3 :class "text-lg font-semibold text-stone-700 mt-6" "Example usage")
|
|
(~example-source :code (highlight example-code "lisp"))))))
|
|
|
|
(defcomp ~reference-attr-not-found (&key slug)
|
|
(~doc-page :title "Not Found"
|
|
(p :class "text-stone-600"
|
|
(str "No documentation found for \"" slug "\"."))))
|