import { IconName } from "@raiadrogasil/pulso-icons"; interface TextFieldComumProps { /** * Conteúdo de texto do label do componente. */ label: string; /** * Atributo padrão do elemento \ do HTML. */ id: string; /** * Atributo padrão do elemento \ do HTML. */ name: string; /** * Atributo padrão do elemento \ do HTML. */ value?: string; /** * Habilita e configura um ícone que é carregado como leading icon do input. */ leadingIcon?: string; /** * Inclui um texto helper ao componente e configura um ícone que é carregado como leading icon do helper text. */ helperText?: string | { text: string; iconName?: IconName; }; /** * Atributo padrão do elemento \ do HTML. */ disabled?: boolean; /** * Habilita o estilo de erro do componente. */ error?: boolean; /** * Quando showHidePasswordButton for true, adiciona uma função de callback ao clique do botão de mostrar/esconder senha do componente. */ onShowHidePassword?: Function; /** * Adiciona uma função de callback ao clique do botão de reset do componente. */ onReset?: Function; /** * Habilita o estilo inverse do componente. * * Propriedade em deprecação. Caso você utilize, remova essa propriedade de sua implementação, para que seu código não seja prejudicado, quando a propriedade for removida. */ inverse?: boolean; /** * Configura o token da cor de fundo, sobre a qual o componente será colocado. */ backgroundColorName: string; /** * Adiciona uma função de callback à mudança do componente. */ onChange?: Function; /** * Atributo padrão do elemento \ do HTML. */ onBlur?: Function; /** * Atributo padrão do elemento \ do HTML. */ accesskey?: string; /** * Atributo padrão do elemento \ do HTML. */ autocomplete?: "on" | "off"; /** * Atributo padrão do elemento \ do HTML. */ autofocus?: boolean; /** * Atributo padrão do elemento \ do HTML. */ autosave?: string; /** * Atributo padrão do elemento \ do HTML. */ form?: string; /** * Atributo padrão do elemento \ do HTML. */ formaction?: string; /** * Atributo padrão do elemento \ do HTML. */ inputmode?: "email" | "search" | "tel" | "text" | "url" | "none" | "numeric" | "decimal" | undefined; /** * Atributo padrão do elemento \ do HTML. */ type?: "color" | "date" | "datetime-local" | "email" | "file" | "image" | "month" | "number" | "password" | "radio" | "range" | "reset" | "search" | "submit" | "tel" | "text" | "time" | "url" | "week"; /** * Atributo padrão do elemento \ do HTML. */ list?: string; /** * Atributo padrão do elemento \ do HTML. */ max?: string; /** * Atributo padrão do elemento \ do HTML. */ maxlength?: number; /** * Atributo padrão do elemento \ do HTML. */ min?: string; /** * Atributo padrão do elemento \ do HTML. */ minlength?: number; /** * Atributo padrão do elemento \ do HTML. */ multiple?: boolean; /** * Atributo padrão do elemento \ do HTML. */ pattern?: string; /** * Atributo padrão do elemento \ do HTML. */ readonly?: boolean; /** * Atributo padrão do elemento \ do HTML. */ required?: boolean; /** * Quando type estiver configurado como "password" adiciona um botão que força o type para "text" em um primeiro clique/toque e volta o type para "password" em um segundo clique/toque. */ showHidePasswordButton?: boolean; /** * Atributo padrão do elemento \ do HTML. */ size?: number; /** * Atributo padrão do elemento \ do HTML. */ spellcheck?: boolean; /** * Atributo padrão do elemento \ do HTML. */ src?: string; /** * Atributo padrão do elemento \ do HTML. */ step?: string; /** * Atributo padrão do elemento \ do HTML. */ tabindex?: number; /** * Atributo padrão do elemento \ do HTML. */ width?: string; /** * Essa Prop inclui um atributo data-qa com o valor configurado no input. */ dataQA?: string | null; /** * Essa Prop inclui um atributo data-qa com o valor configurado no botão de reset. */ dataQAReset?: string | null; /** * Essa Prop inclui um atributo data-qa com o valor configurado no botão de mostrar/esconder senha. */ dataQAShowHidePassword?: string | null; /** * Essa Prop inclui um atributo data-collect com o valor configurado no input. */ dataCollect?: string | null; /** *Essa Prop inclui um atributo data-collect com o valor configurado no botão de reset. */ dataCollectReset?: string | null; /** * Essa Prop inclui um atributo data-collect com o valor configurado no botão de mostrar/esconder senha. */ dataCollectShowHidePassword?: string | null; /** * Essa Prop inclui um atributo data-collect-info com o valor configurado no input. */ dataCollectInfo?: string | null; /** * Essa Prop inclui um atributo data-collect-info com o valor configurado no botão de reset. */ dataCollectInfoReset?: string | null; /** * Essa Prop inclui um atributo data-collect-info com o valor configurado no botão de mostrar/esconder senha. */ dataCollectInfoShowHidePassword?: string | null; /** * Essa Prop inclui um atributo data-testid com o valor configurado no input. */ dataTestId?: string | null; /** * Essa Prop inclui um atributo data-testid com o valor configurado no botão de reset. */ dataTestIdReset?: string | null; /** * Essa Prop inclui um atributo data-testid com o valor configurado no botão de mostrar/esconder senha. */ dataTestIdShowHidePassword?: string | null; /** * Quando o type igual a "password" exibe informação dentro do campo, sobre a força da senha. */ passwordStrength?: "low" | "medium" | "high"; /** * Essa prop permite que o componente tenha um tamanho mínimo. */ minWidth?: string; /** * Atributo para definir o tamanho do componente como 100%. */ fullWidth?: boolean; /** * Adiciona função de callback ao pressionar uma tecla. */ onKeyDown?: Function; } interface TextFieldWithFixedLabel { /** * Essa Prop permite mensagem de placeholder para o input, atualmente só deve ser usado com o theme `TR`. */ placeholder?: string; /** * Essa Prop permite que o label fique fixo acima do input, atualmente só deve ser usado com o theme `TR`. */ fixedLabel?: true; } interface TextFieldWithoutFixedLabel { /** * Essa Prop permite mensagem de placeholder para o input, atualmente só deve ser usado com o theme `TR`. */ placeholder?: never; /** * Essa Prop permite que o label fique fixo acima do input, atualmente só deve ser usado com o theme `TR`. */ fixedLabel?: false; } export type TextFieldProps = TextFieldComumProps & (TextFieldWithFixedLabel | TextFieldWithoutFixedLabel); export {};