Fix aser server-affinity expansion: keyword values, OOB wrapper, page helpers
Three bugs in aser-expand-component (adapter-sx.sx):
- Keyword values were eval'd (eval-expr can't handle <>, HTML tags);
now asered, matching the aser's rendering capabilities
- Missing default nil binding for unset &key params (caused
"Undefined symbol" errors for optional params like header-rows)
- aserCall string-quoted keyword values that were already serialized
SX — now inlines values starting with "(" directly
Server-affinity annotations for layout/nav shells:
- ~shared:layout/app-body, ~shared:layout/oob-sx — page structure
- ~layouts/nav-sibling-row, ~layouts/nav-children — server-side data
- ~layouts/doc already had :affinity :server
- ~cssx/flush marked :affinity :client (browser-only state)
Navigation fix: restore oob_page_sx wrapper for HTMX responses
so #main-panel section exists for sx-select/sx-swap targeting.
OCaml bridge: lazy page helper injection into kernel via IO proxy
(define name (fn (...) (helper "name" ...))) — enables aser_slot
to evaluate highlight/component-source etc. via coroutine bridge.
Playwright tests: added pageerror listener to test_no_console_errors,
new test_navigate_from_home_to_geography for HTMX nav regression.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
;; Current section with prev/next siblings.
|
||||
;; 3-column grid: prev is right-aligned, current centered, next left-aligned.
|
||||
;; Current page is larger in the leaf (bottom) row.
|
||||
(defcomp ~layouts/nav-sibling-row (&key node siblings is-leaf level depth)
|
||||
(defcomp ~layouts/nav-sibling-row (&key node siblings is-leaf level depth) :affinity :server
|
||||
(let* ((sibs (or siblings (list)))
|
||||
(count (len sibs))
|
||||
;; opacity = (n/x * 3/4) + 1/4
|
||||
@@ -97,7 +97,7 @@
|
||||
(str (get next-node "label") " \u2192")))))))
|
||||
|
||||
;; Children links — shown as clearly clickable buttons.
|
||||
(defcomp ~layouts/nav-children (&key items)
|
||||
(defcomp ~layouts/nav-children (&key items) :affinity :server
|
||||
(div :class "max-w-3xl mx-auto px-4 py-3"
|
||||
(div :class "flex flex-wrap justify-center gap-2"
|
||||
(map (fn (item)
|
||||
|
||||
Reference in New Issue
Block a user