import { Renderable, TNode, Value } from '@tempots/dom'; import { ControlSize } from '../theme'; import { ThemeColorName } from '../../tokens'; import { RadiusName } from '../../tokens/radius'; /** Configuration options for the {@link CloseButton} component. */ export type CloseButtonOptions = { /** Size of the close button icon and hit target. @default 'sm' */ size?: Value; /** Icon name from Iconify. @default 'line-md:close' */ icon?: Value; /** Whether the button is disabled. */ disabled?: Value; /** Border radius of the button. @default 'full' */ roundedness?: Value; /** Theme color for the icon. @default 'base' */ color?: Value; /** Callback invoked when the button is clicked. */ onClick?: () => void; /** Localized label for screen readers. Defaults to the i18n `closeModal` translation. */ label?: Value; }; /** * A small icon-only button for dismissing modals, drawers, notifications, and tags. * Renders as a text-variant button with a close icon (X) and proper ARIA labeling * for screen reader accessibility. * * @param options - Configuration for size, icon, and behavior * @param children - Additional child nodes appended to the button * @returns A Renderable button element * * @example * ```typescript * CloseButton({ onClick: () => modal.close() }) * ``` * * @example * ```typescript * // Custom icon and label * CloseButton({ * icon: 'mdi:close-circle', * label: 'Dismiss notification', * onClick: handleDismiss * }) * ``` */ export declare function CloseButton({ size, icon, disabled, roundedness, color, onClick, label, }: CloseButtonOptions, ...children: TNode[]): Renderable;