import * as i0 from '@angular/core'; import { InputSignal, Signal } from '@angular/core'; /** Spinner size variants. */ type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** Spinner color variants. */ type SpinnerColor = 'current' | 'primary' | 'accent' | 'warn' | 'success' | 'muted'; /** Label position relative to spinner. */ type SpinnerLabelPosition = 'right' | 'bottom'; /** * CVA variants for the spinning circle element. * * Creates a circular track with a faded ring and a colored arc that rotates. * Uses `border` for the track and `border-t-*` for the spinning arc. * * @tokens `--color-primary`, `--color-accent`, `--color-warn`, `--color-success`, `--color-muted-foreground` */ declare const spinnerVariants: (props?: { size?: SpinnerSize; color?: SpinnerColor; }) => string; /** * CVA variants for the spinner container layout. * * Controls flex direction and gap based on label position. * Only applies when a visible label is present. * * @tokens none (layout only) */ declare const spinnerContainerVariants: (props?: { labelPosition?: SpinnerLabelPosition; }) => string; /** Label font size classes mapped to spinner size. */ declare const SPINNER_LABEL_SIZES: Record; /** * A minimal, CSS-only loading indicator. * * Drop-in anywhere: inside buttons, next to inline text, centered in cards, * or as a page-level overlay. The animation is fast (0.6s) for a snappy feel. * * @tokens `--color-primary`, `--color-accent`, `--color-warn`, `--color-success`, `--color-muted-foreground` * * @example Simplest usage (inherits parent text color) * ```html * * ``` * * @example Inside a button (inline, inherits button text color) * ```html * * ``` * * @example With visible label * ```html * * ``` * * @example Centered in a card * ```html *
* *
* ``` * * @example Inline with text * ```html *

* Checking availability... *

* ``` * * @example Color variants * ```html * * * * ``` * * @example Large page-level * ```html * * ``` */ declare class ComSpinner { /** * Optional loading text (e.g., "Loading...", "Saving..."). * When omitted, "Loading" is rendered for screen readers only (sr-only). * When provided, the label is visible next to or below the spinner. */ readonly label: InputSignal; /** * Position of the label relative to the spinner. * Only relevant when a visible `label` is provided. */ readonly labelPosition: InputSignal; /** Size of the spinner. */ readonly size: InputSignal; /** * Color of the spinner. * `current` inherits from `currentColor` to match surrounding text. */ readonly color: InputSignal; /** @internal Computed classes for the spinning circle. */ protected readonly spinnerClasses: Signal; /** @internal Computed classes for the container/host. */ protected readonly containerClasses: Signal; /** @internal Computed label font size class. */ protected readonly labelSizeClass: Signal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export { ComSpinner, SPINNER_LABEL_SIZES, spinnerContainerVariants, spinnerVariants }; export type { SpinnerColor, SpinnerLabelPosition, SpinnerSize };