import Tailwind from '../base/tailwind-base';
declare enum PopoverTrigger {
Hover = "hover",
Click = "click"
}
declare enum PopoverPosition {
Top = "top",
TopStart = "top-start",
TopEnd = "top-end",
Bottom = "bottom",
BottomStart = "bottom-start",
BottomEnd = "bottom-end",
Left = "left",
LeftStart = "left-start",
LeftEnd = "left-end",
Right = "right",
RightStart = "right-start",
RightEnd = "right-end"
}
/**
* @tag plus-popover
* @summary Popover component that displays content in a floating panel.
*
* @slot - The target element that triggers the popover
* @slot icon - Custom icon for the popover
* @slot title - The popover title
* @slot actions - Actions like close button
* @slot content - The main content inside the popover
*
* @csspart popover - The popover container element
* @csspart arrow - The popover arrow indicator
* @csspart title - The popover title
* @csspart close - The close button area
* @csspart content - The main content inside the popover
*
* @event plus-popover-open - Emitted when the popover is opened
* @event plus-popover-close - Emitted when the popover is closed
* @event plus-popover-dismiss - Emitted when the popover is dismissed via close button
*
* @example
* ```html
*
* Click me
*
Popover Title
*
Popover content goes here
*
* ```
*/
export default class PlusPopover extends Tailwind {
slots: Array;
/**
* The size of the popover.
*
* Available options:
* - `sm` (small)
* - `md` (medium - default)
* - `lg` (large)
*
* @type {'sm' | 'md' | 'lg'}
* @default 'md'
*/
size: 'sm' | 'md' | 'lg';
/**
* The position of the popover relative to the target element.
*
* Available options:
* - `top` (default)
* - `top-start`
* - `top-end`
* - `bottom`
* - `bottom-start`
* - `bottom-end`
* - `left`
* - `left-start`
* - `left-end`
* - `right`
* - `right-start`
* - `right-end`
*
* @type {PopoverPosition}
* @default PopoverPosition.Top
*/
orientation: PopoverPosition;
/**
* Determines how the popover is triggered.
*
* Available options:
* - `click` (default) - Popover toggles on click.
* - `hover` - Popover appears on hover.
*
* @type {'click' | 'hover'}
* @default 'click'
*/
trigger: PopoverTrigger;
/**
* The main text content of the popover.
*
* If a slot with `name="content"` is provided, this text will be ignored.
*
* @type {string}
*/
text?: string;
/**
* The header title of the popover.
*
* If a slot with `name="title"` is provided, this text will be ignored.
*
* @type {string}
* @default 'Title'
*/
headerText?: string;
/**
* The status of the popover, which affects its styling.
*
* Available options:
* - `success` (green)
* - `warning` (yellow)
* - `danger` (red)
* - `info` (blue)
* - `primary` (default theme color)
* - `default` (gray - default)
*
* @type {'success' | 'warning' | 'danger' | 'info' | 'primary' | 'default'}
* @default 'default'
*/
status: 'success' | 'warning' | 'danger' | 'info' | 'primary' | 'default';
/**
* Determines whether the popover can be dismissed by clicking the close button.
*
* - `true` (default) - Popover can be closed.
* - `false` - The close button is hidden.
*
* @type {boolean}
* @default true
*/
dismissable: boolean;
/**
* Determines whether a status icon should be displayed in the popover.
*
* - `true` (default) - An icon representing the status will be displayed.
* - `false` - No icon will be displayed.
*
* @type {boolean}
* @default true
*/
statusIcon: boolean;
/**
* Determines whether the arrow should be displayed.
*
* - `true` (default) - Arrow will be displayed.
* - `false` - Arrow will be hidden.
*
* @type {boolean}
* @default true
*/
showArrow: boolean;
/**
* Controls the visibility of the popover.
*
* @private
* @type {boolean}
* @default false
*/
private isVisible;
private targetElement?;
private arrowElement?;
private cleanup?;
private getPopover;
private updatePosition;
private handleMouseEnter;
private handleMouseLeave;
private handleClick;
private closePopover;
private cleanupAutoUpdate;
private _cleanupTarget;
private handleOutsideClick;
private handleSlotChange;
private _setupPopover;
firstUpdated(): void;
disconnectedCallback(): void;
render(): import("lit-html").TemplateResult<1>;
}
export { PlusPopover };
//# sourceMappingURL=popover.d.ts.map