import { ReactNode } from 'react'; import { FieldProps } from './FieldShell'; export interface TextFieldProps extends FieldProps { /** Hint shown in an empty control. Replaced by the mixed placeholder when `mixed`. */ placeholder?: string; /** Input type, for the browser's own affordances. Defaults to `"text"`. */ inputType?: 'text' | 'url' | 'email' | 'tel' | 'password'; } /** A single-line text property. */ export declare const TextField: ({ label, value, onChange, description, mixed, disabled, error, placeholder, inputType, className, }: TextFieldProps) => import("react/jsx-runtime").JSX.Element; export interface TextAreaFieldProps extends FieldProps { /** Hint shown in an empty control. Replaced by the mixed placeholder when `mixed`. */ placeholder?: string; /** Visible rows. Defaults to `4`. */ rows?: number; } /** A multi-line text property — notes, descriptions, evidence. */ export declare const TextAreaField: ({ label, value, onChange, description, mixed, disabled, error, placeholder, rows, className, }: TextAreaFieldProps) => import("react/jsx-runtime").JSX.Element; export interface ISelectOption { value: string; label: string; /** Render unselectable — an unavailable choice you still want visible. */ disabled?: boolean; } export interface SelectFieldProps extends FieldProps { /** The choices, in the order they should appear. */ options: ISelectOption[]; /** Shown as the first, unselected entry. */ placeholder?: string; } /** A choice from a fixed set. */ export declare const SelectField: ({ label, value, onChange, description, mixed, disabled, error, options, placeholder, className, }: SelectFieldProps) => import("react/jsx-runtime").JSX.Element; export type CheckboxFieldProps = FieldProps; /** * A boolean property. * * When `mixed`, the box renders indeterminate — neither on nor off — which is * the only honest state for a selection that disagrees. */ export declare const CheckboxField: ({ label, value, onChange, description, mixed, disabled, error, className, }: CheckboxFieldProps) => import("react/jsx-runtime").JSX.Element; export interface NumberFieldProps extends FieldProps { /** Lowest accepted value. Enforced by the browser, not by this component. */ min?: number; /** Highest accepted value. Enforced by the browser, not by this component. */ max?: number; /** Increment for the spinner and arrow keys. */ step?: number; /** Unit shown inside the control's trailing edge, e.g. `"px"`. */ unit?: string; /** Hint shown in an empty control. Replaced by the mixed placeholder when `mixed`. */ placeholder?: string; } /** A numeric property. */ export declare const NumberField: ({ label, value, onChange, description, mixed, disabled, error, min, max, step, unit, placeholder, className, }: NumberFieldProps) => import("react/jsx-runtime").JSX.Element; export interface ColorFieldProps extends FieldProps { /** Show the hex value in an editable text box beside the swatch. Default `true`. */ showValue?: boolean; } /** A colour property, as a swatch plus an editable hex value. */ export declare const ColorField: ({ label, value, onChange, description, mixed, disabled, error, showValue, className, }: ColorFieldProps) => import("react/jsx-runtime").JSX.Element; export interface DateFieldProps extends FieldProps { /** Include a time component. Defaults to `false`. */ withTime?: boolean; /** Earliest selectable date, in the same ISO form as `value`. */ min?: string; /** Latest selectable date, in the same ISO form as `value`. */ max?: string; } /** * A date property, as an ISO `yyyy-mm-dd` string (or `yyyy-mm-ddThh:mm` with * `withTime`). A string rather than a `Date` so it round-trips through JSON * unchanged. */ export declare const DateField: ({ label, value, onChange, description, mixed, disabled, error, withTime, min, max, className, }: DateFieldProps) => import("react/jsx-runtime").JSX.Element; export interface TagFieldProps extends FieldProps { /** Hint shown in the draft box. Defaults to `"Add and press Enter"`. */ placeholder?: string; /** Offer these as a datalist while typing. */ suggestions?: string[]; } /** * A list-of-strings property. * * Enter or the add button commits the draft; duplicates and blanks are * rejected silently rather than with an error, since neither is a mistake worth * interrupting for. */ export declare const TagField: ({ label, value, onChange, description, mixed, disabled, error, placeholder, suggestions, className, }: TagFieldProps) => import("react/jsx-runtime").JSX.Element; export interface StaticFieldProps extends Omit, 'onChange'> { /** Render in a monospaced face — ids, hashes, coordinates. */ mono?: boolean; } /** * A read-only property: an id, a timestamp, a computed total. * * Present because inspectors are full of values worth showing and not worth * editing, and a disabled text input reads as "you may not edit this yet" * rather than "this is derived". */ export declare const StaticField: ({ label, value, description, mixed, mono, className, }: StaticFieldProps) => import("react/jsx-runtime").JSX.Element;