All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m20s
Replace all 676 inline sexp() string calls across 7 services with render(component_name, **kwargs) calls backed by 46 external .sexpr component definition files (587 defcomps total). - Add render() function to shared/sexp/jinja_bridge.py - Add load_service_components() helper and update load_sexp_dir() for *.sexpr - Update parser keyword regex to support HTMX hx-on::event syntax - Convert remaining inline HTML in route files to render() calls - Add shared/sexp/templates/misc.sexp for cross-service utility components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
23 lines
1.0 KiB
Plaintext
23 lines
1.0 KiB
Plaintext
;; Market grid and layout components
|
|
|
|
(defcomp ~market-markets-grid (&key cards-html)
|
|
(div :class "max-w-full px-3 py-3 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4" (raw! cards-html)))
|
|
|
|
(defcomp ~market-no-markets (&key message)
|
|
(div :class "px-3 py-12 text-center text-stone-400"
|
|
(i :class "fa fa-store text-4xl mb-3" :aria-hidden "true")
|
|
(p :class "text-lg" message)))
|
|
|
|
(defcomp ~market-product-grid (&key cards-html)
|
|
(<> (div :class "grid grid-cols-1 sm:grid-cols-3 md:grid-cols-6 gap-3" (raw! cards-html)) (div :class "pb-8")))
|
|
|
|
(defcomp ~market-bottom-spacer ()
|
|
(div :class "pb-8"))
|
|
|
|
(defcomp ~market-like-toggle-button (&key colour action hx-headers label icon-cls)
|
|
(button :class (str "flex items-center gap-1 " colour " hover:text-red-600 transition-colors w-[1em] h-[1em]")
|
|
:hx-post action :hx-target "this" :hx-swap "outerHTML" :hx-push-url "false"
|
|
:hx-headers hx-headers
|
|
:hx-swap-settle "0ms" :aria-label label
|
|
(i :aria-hidden "true" :class icon-cls)))
|