import { type Placement } from '@floating-ui/dom'; import type { Snippet } from 'svelte'; type Props = { /** Floating UI placement. @default 'bottom-start' */ position?: Placement; disabled?: boolean; /** Use `position: fixed` strategy (helpful inside overflow-clipped containers). */ fixedPosition?: boolean; /** Distance in px between the trigger and the popover content. @default 4 */ offset?: number; /** Padding in px from the viewport boundary before content shifts/flips. @default 8 */ boundaryMargin?: number; /** Render a semi-transparent backdrop behind the content. */ backdrop?: boolean; /** Make the content match the trigger element width, overriding `--sc-kit--popover--content--min-width` (never growing past the available space). */ matchWidth?: boolean; /** Apply built-in panel styling (background, shadow, border-radius). @default true */ panel?: boolean; /** Keep the popover open on any click inside the content (useful when the content is interactive). Per-item `keepOpen` and `use:popoverIgnore` still work for fine-grained control. */ keepOpen?: boolean; /** Make the trigger fill its parent's box: `width:100%; height:100%`, centered, `border-radius: inherit`. Use when Popover sits inside a wrapper that owns the visible click surface (icon squares, list rows, etc.). */ fillContainer?: boolean; /** Keep the trigger in the tab order. Turn off only when the same state is reachable by keyboard elsewhere — the popover becomes mouse-only. @default true */ tabbable?: boolean; on?: { opened?: () => void; closed?: () => void; }; children: Snippet; /** * Custom trigger content; defaults to a chevron-down icon. Renders inside the trigger `