import type { FlowValidationConfig } from "./validation.js"; import type { CalculationFormat } from "./calculation.js"; export type ComponentWidth = "full" | "half" | "third" | "two-thirds" | "quarter" | "three-quarters"; export type DateFormat = "MM/DD/YYYY" | "DD/MM/YYYY" | "YYYY-MM-DD"; export type ComponentDisplayProperties = { value: string; width?: ComponentWidth; }; export type ComponentDividerProperties = { value?: string; textAlign?: "left" | "right" | "center"; width?: ComponentWidth; }; export type ComponentInputProperties = { label: string; placeholder?: string; detail?: string; showLabel?: boolean; helperText?: string; maxlength?: number; startAdornment?: string; decimalPlaces?: number; min?: number; max?: number; inputType?: ComponentInputType; readOnly?: boolean; tooltip?: string; autocomplete?: string; showPasswordToggle?: boolean; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type OptionItem = { label: string; value: string | number; metadata?: Record; }; export type ComponentOptionProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; options: OptionItem[]; readOnly?: boolean; tooltip?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentSliderProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; min?: number; max?: number; marks?: boolean; steps?: number; initValue?: number; readOnly?: boolean; tooltip?: string; width?: ComponentWidth; }; export type ComponentSwitchProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; width?: ComponentWidth; }; export type ComponentRatingProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; max: number; precision: number; icon?: string; tooltip?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentFileUploadProperties = { label: string; detail?: string; showLabel?: boolean; accept: string; helperText?: string; maxSize?: number; tooltip?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentGroupProperties = { label?: string; showLabel?: boolean; collapsible?: boolean; width?: ComponentWidth; /** Force the group border on (`true`) or off (`false`). When undefined, * the active `data-style` variant decides — most variants draw a border, * the default/unset variant does not. */ showBorder?: boolean; }; export type ComponentRepeaterProperties = { label?: string; showLabel?: boolean; collapsible?: boolean; minIterations?: number; initialData?: Array>; width?: ComponentWidth; /** Force the repeater border on (`true`) or off (`false`). When undefined, * the active `data-style` variant decides. */ showBorder?: boolean; }; export type ComponentInputType = "text" | "email" | "tel" | "url" | "password"; export type ComponentDateProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholder?: string; min?: string; max?: string; dateFormat?: DateFormat; readOnly?: boolean; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentTimeProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholder?: string; min?: string; max?: string; readOnly?: boolean; step?: number; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentDateTimeProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholder?: string; min?: string; max?: string; dateFormat?: DateFormat; minTime?: string; maxTime?: string; readOnly?: boolean; step?: number; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentDateRangeProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholderStart?: string; placeholderEnd?: string; min?: string; max?: string; dateFormat?: DateFormat; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentTimeRangeProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholderStart?: string; placeholderEnd?: string; min?: string; max?: string; step?: number; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentDateTimeRangeProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; placeholderStart?: string; placeholderEnd?: string; min?: string; max?: string; dateFormat?: DateFormat; minTime?: string; maxTime?: string; step?: number; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentYesNoProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; labelYes?: string; labelNo?: string; layout?: "horizontal" | "vertical"; validation?: FlowValidationConfig; width?: ComponentWidth; }; /** Single-checkbox confirmation / opt-in. Typical use cases: "I agree to * the terms", marketing opt-in. The component's value is `true` when * checked and cleared (`undefined`) when unchecked, so a `required` * validation naturally fails until the user ticks the box. */ export type ComponentConfirmProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentColorPickerProperties = { label: string; detail?: string; showLabel?: boolean; helperText?: string; tooltip?: string; swatches?: string[]; defaultValue?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type CardSelectOption = { label: string; value: string; description?: string; title?: string; features?: string[]; badge?: string; metadata?: Record; }; export type ComponentCardSelectProperties = { label: string; showLabel?: boolean; options: CardSelectOption[]; columns?: number; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentCalloutVariant = "info" | "success" | "warning" | "neutral"; export type ComponentCalloutProperties = { value: string; title?: string; variant?: ComponentCalloutVariant; icon?: string; width?: ComponentWidth; }; export type TableColumn = { label: string; }; export type TableRow = { label: string; values: string[]; }; export type ComponentTableProperties = { label?: string; columns: TableColumn[]; rows: TableRow[]; highlightColumn?: number; width?: ComponentWidth; }; export type SignatureMode = "draw" | "type" | "both"; export type ComponentSignatureProperties = { label?: string; showLabel?: boolean; detail?: string; helperText?: string; mode?: SignatureMode; tooltip?: string; validation?: FlowValidationConfig; width?: ComponentWidth; }; export type ComponentComputedProperties = { label: string; formula: string; format?: CalculationFormat; decimalPlaces?: number; currencySymbol?: string; showLabel?: boolean; detail?: string; width?: ComponentWidth; }; //# sourceMappingURL=properties.d.ts.map