import { default as React } from 'react'; import { FactoryOpts } from 'imask'; import { default as IInputProps } from '../input/IInputProps'; /** * Input props that are passed through to InputGroupInput * Excludes 'size' and 'isError' as they are handled by InputGroup's own props */ type InputGroupInputProps = Omit; /** * Props for the InputGroup component * The root container that manages visual state and layout for input groups * Extends base input props to allow handling InputGroup like a regular input */ export default interface IInputGroupProps extends React.PropsWithChildren, InputGroupInputProps { /** * Size of the input group * @default 'default' */ size?: 'default' | 'sm'; /** * Whether the input group should display a read-only state. * When true, the group becomes non-interactive. * If `disabled` is also true, `disabled` takes precedence. */ readOnly?: boolean; /** * Whether the input group is in an error state. Renders an error ring. */ isError?: boolean; /** * IMask mask definition passed to InputGroupInput. * * When a mask is provided, InputGroupInput switches to IMask-managed behavior: * - `maxLength` is ignored (mask controls input length) * - controlled `value` is not forwarded as a native input prop * - value updates are emitted via IMask accept events * * Prefer uncontrolled usage for masked inputs. * @example "(+49) 000-000-000" */ mask?: FactoryOpts['mask']; } export {};