(defcomp ~relation-attach (&key create-url label icon)
  (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 ~relation-detach (&key detach-url name)
  (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")))
