import { ComponentPropsWithRef } from 'react'; import { Button } from '../button'; /** * The controlled-input contract. Every input in the library takes it, so a form field * binds to any of them the same way. */ export interface Control { value: I; onChange: (value: O) => void; } /** A {@link Control} whose value and handler may both be absent. */ export interface OptionalControl extends Partial> { } /** Native input props an input forwards to its element. */ export type HTMLInputProps = Omit, "size" | "onChange" | "value" | "children" | "placeholder" | "color">; export type Variant = Extract | "shadow"; /** Base props shared by every input in the library. */ export interface InputProps extends HTMLInputProps, Control, Pick { variant?: Variant; } //# sourceMappingURL=types.d.ts.map