{# ============================================================ #} {# — daisyUI dropdown (trigger + panel) #} {# #} {# Trigger: #} {# By default, any extra attributes on are #} {# forwarded to an inner that becomes the #} {# trigger — e.g. text, icon, variant, size. #} {# #} {# #} {# #} {# #} {# #} {# For full control, supply the trigger in the `button` #} {# slot. In that case extra attributes fall through to the #} {# dropdown wrapper instead (handy for x-data, id, …), and #} {# you own the trigger's tabindex/role. #} {# #} {# Props: #} {# halign – start|center|end (default: start) #} {# valign – top|bottom|left|right (default: bottom) #} {# full – stretch the panel to the trigger's width #} {# (w-full); otherwise it sizes to its #} {# content with a sensible min-width #} {# hover – open on hover instead of click #} {# class – extra classes on the .dropdown wrapper #} {# content_class – extra classes on the .dropdown-content #} {# #} {# data-mvp-dropdown / data-mvp-placement: #} {# assets/js/dropdown.js upgrades each marked wrapper at run #} {# time, moving the panel into the top layer and positioning #} {# it against the space actually available. The daisyUI #} {# classes above stay because they are what places the panel #} {# when that script never runs — which is why the `popover` #} {# attribute is added by the script and not written here. #} {# data-mvp-placement is halign/valign already resolved into #} {# the placement string Floating UI takes; `center` has no #} {# suffix because a centred alignment is spelled as the bare #} {# side. #} {# ============================================================ #} {% load mvp %}