/*! Strand UI | MIT License | dillingerstaffing.com */ import type { ComponentChildren, JSX } from "preact"; import { forwardRef } from "preact/compat"; import { cx } from "../../internal/index.js"; export interface InputProps extends Omit, "size"> { type?: "text" | "email" | "password" | "search" | "number"; /** Error styling and `aria-invalid`. */ error?: boolean; /** Rendered before the field. */ leadingAddon?: ComponentChildren; /** Rendered after the field. */ trailingAddon?: ComponentChildren; disabled?: boolean; } /** * Text input with optional addons. * * @example * */ export const Input = forwardRef( ({ type = "text", error = false, leadingAddon, trailingAddon, className = "", disabled, ...rest }, ref) => (
{leadingAddon && ( )} {trailingAddon && ( )}
), ); Input.displayName = "Input";