;; Events header components (defcomp ~events-oob-header (&key parent-id child-id row-html) (div :id parent-id :hx-swap-oob "outerHTML" :class "w-full" (div :class "w-full" (raw! row-html) (div :id child-id)))) (defcomp ~events-post-label (&key feature-image title) (<> (when feature-image (img :src feature-image :class "h-8 w-8 rounded-full object-cover border border-stone-300 flex-shrink-0")) (span title))) (defcomp ~events-post-cart-link (&key href count) (a :href href :class "relative inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-full border border-emerald-300 bg-emerald-50 text-emerald-800 hover:bg-emerald-100 transition" (i :class "fa fa-shopping-cart" :aria-hidden "true") (span count))) (defcomp ~events-calendars-label () (<> (i :class "fa fa-calendar" :aria-hidden "true") (div "Calendars"))) (defcomp ~events-markets-label () (<> (i :class "fa fa-shopping-bag" :aria-hidden "true") (div "Markets"))) (defcomp ~events-payments-label () (<> (i :class "fa fa-credit-card" :aria-hidden "true") (div "Payments"))) (defcomp ~events-calendar-label (&key name description) (div :class "flex flex-col md:flex-row md:gap-2 items-center min-w-0" (div :class "flex flex-row items-center gap-2" (i :class "fa fa-calendar") (div :class "shrink-0" name)) (div :id "calendar-description-title" :class "text-base font-normal break-words whitespace-normal min-w-0 break-all w-full text-center block" description))) (defcomp ~events-day-label (&key date-str) (div :class "flex gap-1 items-center" (i :class "fa fa-calendar-day") (span date-str))) (defcomp ~events-entry-label (&key entry-id title-html times-html) (div :id (str "entry-title-" entry-id) :class "flex gap-1 items-center" (raw! title-html) (raw! times-html))) (defcomp ~events-header-child (&key inner-html) (div :id "root-header-child" :class "w-full" (raw! inner-html)))