import { HTMLProps, InputHTMLAttributes, MouseEventHandler, ReactNode } from 'react';
import { IconProps } from '../icon/types.js';
import { InputGroupProps } from '../input-group/types.js';
export interface BaseTextInputProps extends Omit, "children" | "maxLength"> {
/**
* Brukes til inputfelter hvor det brukes maskering, for formatering av store tall. Brukes typisk bare til valuta.
* @default "left"
*/
align?: "left" | "right";
/**
* @deprecated Bruk heller actionButton
*
*/
action?: Action;
/**
* Benevnelse for feltet. Unngå å bruke både benevnelse og handling samtidig
* @example "kr"
* */
unit?: ReactNode;
width?: string;
/**
* Element som vises til høyre for inputfeltet. Brukes typisk til å trigge en handling som f.eks. å vise/skjule passord.
*/
actionButton?: React.ReactElement;
/**
* Setter maxlength attributtet og justerer bredden på feltet til å passe det tallet som settes
*
* Merk: I noen Android-browsere vil dette ikke fungere som forventet. Det er gjort sånn
* pga begrensninger med hvordan software-tastaturet fungerer og er ikke en bug. Dersom
* man er veldig avhengig av at maxLength håndteres på alle plattformer anbefales det
* å bruke input-feltet som en controlled input og selv begrense lengden på verdien.
*/
maxLength?: number | undefined;
}
export interface TextInputProps extends Omit, BaseTextInputProps {
"data-testautoid"?: string;
inline?: boolean;
inputClassName?: string;
}
interface ActionBaseProps extends Exclude, "disabled"> {
icon: React.ReactElement;
label: string;
buttonRef?: React.Ref;
}
export interface ActionButton extends ActionBaseProps {
type?: "button" | "reset";
onClick: MouseEventHandler;
}
export interface ActionSubmit extends ActionBaseProps {
type: "submit";
onClick?: MouseEventHandler;
}
export type Action = ActionButton | ActionSubmit;
export {};