/** * TypeScript definitions for native HTML Popover API * These types extend the standard DOM interfaces to include popover-related properties */ declare global { interface HTMLElement { /** * Shows the popover element * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/showPopover */ showPopover(): void; /** * Hides the popover element * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/hidePopover */ hidePopover(): void; /** * Toggles the popover element between shown and hidden * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/togglePopover */ togglePopover(force?: boolean): void; } interface ToggleEvent extends Event { /** * The new state of the element ('open' | 'closed') */ newState: 'open' | 'closed'; /** * The old state of the element ('open' | 'closed') */ oldState: 'open' | 'closed'; } interface HTMLElementEventMap { toggle: ToggleEvent; } namespace React { interface HTMLAttributes { /** * The popover attribute indicates that an element should be hidden until opened * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/popover */ popover?: 'auto' | 'manual' | ''; /** * The ID of the popover element to invoke */ popovertarget?: string; /** * The action to perform on the popover element */ popovertargetaction?: 'hide' | 'show' | 'toggle'; } } } export {};