/** * Button - Versatile button component * * Supports both button and link rendering. When href is provided, * renders as an anchor tag. Otherwise renders as a button. */ import type { Snippet } from 'svelte'; import type { HTMLAnchorAttributes, HTMLButtonAttributes } from 'svelte/elements'; import type { ButtonSize, ButtonVariant } from '../../types-generic'; /** Props for Button component */ export interface Props extends Omit { /** Visual variant */ variant?: ButtonVariant; /** Size variant */ size?: ButtonSize; /** URL for link mode (renders as tag) */ href?: string; /** Snippet for button content */ children?: Snippet; /** Full width button */ fullWidth?: boolean; /** Loading state */ loading?: boolean; /** * Extra class(es) appended after the base `button {variant} {size}` styling. * Lets callers adopt Button for custom-styled buttons without losing their * own CSS (issue #1589) — the base button styling still applies. */ class?: string; /** * Anchor-mode attributes (link mode only, i.e. when `href` is set). The * component already spreads these onto the rendered ``; they are declared * here so callers migrating an external `` to * Button (issue #1589) keep them type-checked. Ignored in button mode. */ target?: HTMLAnchorAttributes['target']; rel?: HTMLAnchorAttributes['rel']; download?: HTMLAnchorAttributes['download']; } declare const Button: import("svelte").Component; type Button = ReturnType; export default Button; //# sourceMappingURL=Button.svelte.d.ts.map