import * as React from 'react'; export type InputState = 'completed' | 'error' | 'success' | 'warning'; declare const inputStyles: (props?: ({ variant?: "default" | "unstyled" | null | undefined; state?: "error" | "success" | "warning" | "completed" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface InputProps extends Omit, 'size'> { /** Visual state. `error` also sets `aria-invalid`. */ state?: InputState; /** Slot rendered before the input — a currency symbol, an icon, a fixed prefix. */ startAddon?: React.ReactNode; /** Slot rendered after the input — units, a clear button, a fixed suffix. */ endAddon?: React.ReactNode; /** Applied to the outer container, which only exists when an addon is present. */ containerClassName?: string; } /** * Single-line text field. * * Form-library agnostic: it is a native `` underneath, so `value` / * `defaultValue` / `onChange` and a `ref` are all it needs to work with React * Hook Form, Formik, or nothing at all. * * `state="error"` also sets `aria-invalid`, so the visual and the assistive-tech * signal cannot drift apart. * * PORTED FROM FIGMA `.input-text` (22:3936), and three values that were previously refused on * accessibility grounds now ship as logged rule-1 conflicts — see `docs/FIGMA-EXCEPTIONS.md`: * the unstroked resting field (1.39:1 fill edge), the `gray-700` boundary (1.40:1 on its own * fill) and the `gray-400` placeholder (3.84:1 as text). None of the three was ever fixing a * failure introduced by the substitution; each was a judgement rule 1 reverses. * * FIGMA'S THREE STATES ARE NOT THREE PROPS. Dev Mode shows `Active` swapping a grey * `[FieldLabel]` placeholder layer for a white value layer, which makes it the FILLED state, not * the focused one — so it maps onto `:not(:placeholder-shown)` and onto `state="completed"`, * not onto focus. `Error` is the only genuine prop. Hover, focus, `success` and `warning` are * rule-2 gaps; hover and focus are derived from `.input-dropdown` and denoted at their * declarations, and the other two keep their existing roles. * * @example * @example kg} /> */ export declare const Input: React.ForwardRefExoticComponent>; export { inputStyles }; //# sourceMappingURL=input.d.ts.map