import type { TemplateResult, CSSResultArray, PropertyValues } from 'lit'; import { AnchorElement } from '../base/anchor-element'; import { PharosIcon } from '../icon/pharos-icon'; import type { LinkTarget } from '../base/anchor-element'; import type { IconName } from '../icon/pharos-icon'; export type { LinkTarget, IconName }; export type ButtonType = 'button' | 'submit' | 'reset'; export type ButtonVariant = 'primary' | 'secondary' | 'subtle' | 'overlay'; declare const PharosButton_base: typeof AnchorElement; /** * Pharos button component. * * @tag pharos-button * * @slot - Contains the content of the button (the default slot). * */ export declare class PharosButton extends PharosButton_base { static elementDefinitions: { 'pharos-icon': typeof PharosIcon; }; /** * Indicates that the button should have input focus when the page loads. * @attr autofocus */ autofocus: boolean; /** * Indicates that the button cannot be pressed or focused by the user. * @attr disabled */ disabled: boolean; /** * Indicates the default behavior of the button via the HTML5 attribute. * @attr type * @type {ButtonType | undefined} */ type?: ButtonType; /** * Indicates the variant of button. * @attr variant */ variant: ButtonVariant; /** * The icon to be shown as the content of the button. * @attr icon * @type {IconName | undefined} */ icon?: IconName; /** * Applies only to icon-only buttons. If true, the button will have minimal padding. * @attr icon-condensed */ iconCondensed: boolean; /** * The icon to be shown on the right side. * @attr icon-right * @type {IconName | undefined} */ iconRight?: IconName; /** * The icon to be shown on the left side. * @attr icon-left * @type {IconName | undefined} */ iconLeft?: IconName; /** * Indicates the button is on a AA compliant background. * @attr is-on-background */ isOnBackground: boolean; /** * Indicates the button has more padding. * @attr large */ large: boolean; /** * Indicates the aria label to apply to the button. * @attr a11y-label */ a11yLabel?: string; /** * Indicates this button is a toggle button and whether it is pressed or not. * @attr value */ a11yPressed: AriaPressedState; /** * Indicates the aria expanded state to apply to the button. * @attr a11y-expanded */ a11yExpanded: AriaExpandedState; /** * Indicates the aria expanded state to apply to the button. * @attr a11y-disabled */ a11yDisabled: AriaDisabledState; /** * Indicates the aria expanded state to apply to the button. * @attr a11y-haspopup */ a11yHaspopup: AriaPopupState; /** * Indicates the button's width should match its container. * @attr full-width */ fullWidth: boolean; /** * Indicates the name when submitted with form data. * @attr name */ name?: string; /** * Indicates the value associated with the name when submitted with form data. * @attr value */ value?: string; private _button; private _formButton; private _form; constructor(); static get styles(): CSSResultArray; protected firstUpdated(): void; protected update(changedProperties: PropertyValues): void; connectedCallback(): void; disconnectedCallback(): void; private _handleKeyup; private _handleClick; private _stopClickLeak; private _renderIcon; protected get buttonContent(): TemplateResult; protected render(): TemplateResult; } //# sourceMappingURL=pharos-button.d.ts.map