(defcomp ~shared:relations/attach (&key (create-url :as string) (label :as string?) (icon :as string?)) (a :href create-url :sx-get create-url :sx-target "#main-panel" :sx-swap "outerHTML" :sx-push-url "true" :class "flex items-center gap-2 text-sm p-2 rounded hover:bg-stone-100 text-stone-500 hover:text-stone-700 transition-colors" (when icon (i :class icon)) (span (or label "Add")))) (defcomp ~shared:relations/detach (&key (detach-url :as string) (name :as string?)) (button :sx-delete detach-url :sx-confirm (str "Remove " (or name "this item") "?") :class "text-red-500 hover:text-red-700 text-sm p-1 rounded hover:bg-red-50 transition-colors" (i :class "fa fa-times" :aria-hidden "true")))