Thin upgrade over the native Popover API. The popover lives in the top layer
with light-dismiss and Escape handled by the browser, and a button with
popovertarget (or command="toggle-popover") opens it with no JavaScript.
CSS anchor positioning places it against the invoker. This enhancer only
mirrors aria-expanded onto the invokers, runs a JS positioning fallback
(kept in sync on scroll and resize) on engines without anchor positioning,
adds optional hover triggering, and exposes an imperative open/close API.
Markup can set data-hl-trigger-event, data-hl-placement,
data-hl-hover-close-delay, and data-hl-default-open on the popover.
Thin upgrade over the native Popover API. The popover lives in the top layer with light-dismiss and Escape handled by the browser, and a button with
popovertarget(orcommand="toggle-popover") opens it with no JavaScript. CSS anchor positioning places it against the invoker. This enhancer only mirrorsaria-expandedonto the invokers, runs a JS positioning fallback (kept in sync on scroll and resize) on engines without anchor positioning, adds optional hover triggering, and exposes an imperative open/close API. Markup can setdata-hl-trigger-event,data-hl-placement,data-hl-hover-close-delay, anddata-hl-default-openon the popover.