(ns auto-ap.ssr.components.link-dropdown (:require [auto-ap.ssr.components :as com] [auto-ap.ssr.hx :as hx] [auto-ap.ssr.svg :as svg])) (defn link-dropdown [links] (if (> (count links) 0) [:div {:x-data (hx/json {:popper nil :show false}) "@click.outside" "show=false" :x-init "popper = Popper.createPopper($refs.link, $refs.tooltip, {placement: 'bottom', strategy: 'fixed'})"} (com/a-icon-button {:x-ref "link" "@click.prevent" "show=!show; $nextTick(() => popper.update());" :class "relative"} svg/paperclip (com/badge {} (count links))) [:div.divide-y.divide-gray-200.bg-white.rounded-lg.shadow.z-50 (hx/alpine-appear {:x-ref "tooltip" :x-show "show" :data-key "show"}) [:div {:class "p-3 overflow-y-auto text-sm text-gray-700 dark:text-gray-200"} [:div.flex.flex-col.gap-y-2 (for [l links] [:div.flex-initial [:a {:href (:link l)} (com/pill {:color (or (:color l) :primary) :class "truncate block shrink grow-0"} (:content l))]])]]]]))