import type { ButtonPureSize, ButtonPureAlignLabel, ButtonPureType, ButtonPureColor } from "./types"; import type { Theme } from "../../utils/styles"; /** * @component diwa-button-pure * * A transparent, text+icon action button — no background or border. * Mirrors the PDS `p-button-pure` component. * * Default layout: [icon] [label] (alignLabel="end") * Reversed layout: [label] [icon] (alignLabel="start") * Stretched layout: [icon] ····· [label] (stretch + alignLabel="end") * * Usage: * Read more * Back * * * @slot default — Button label text */ export declare class DiwaButtonPure { host: HTMLDiwaButtonPureElement; /** Per-component theme override (light / dark). */ theme: Theme; /** Text size tier. Controls both font-size and icon size. */ size: ButtonPureSize; /** * Lucide icon name in kebab-case (e.g. `"arrow-right"`, `"star"`), or `"none"` * to render with no icon. Defaults to `"arrow-right"` — matching PDS. */ icon: string; /** Disabled state. Blocks all pointer and keyboard interaction. */ disabled: boolean; /** * Loading state. Replaces the icon with a spinner, blocks interaction, * and announces aria-busy to screen readers. */ loading: boolean; /** * When `true`, the label slot is visually hidden (icon-only mode). * Always pair with the `label` prop for screen-reader accessible name. */ hideLabel: boolean; /** Foreground colour alias for text and icon. Reflected as `[color]` for CSS selectors. */ color: ButtonPureColor; /** Forces the button into its active/pressed visual state. */ active: boolean; /** Adds an underline decoration to the label text. */ underline: boolean; /** * Controls which side the label appears on relative to the icon. * - `"end"` (default): [icon] [label] * - `"start"`: [label] [icon] */ alignLabel: ButtonPureAlignLabel; /** * When `true`, the button stretches to fill its container and the space * between icon and label expands to fill remaining width. */ stretch: boolean; /** Native button type. Only applies when rendered as `