import React from "react"; import { Tokens } from "@raiadrogasil/pulso-tokens"; interface ChipCommonProps { /** * Texto que irá aparecer no componente. */ label: string; /** * Atributo padrão do elemento \ do HTML. */ onClick?: (event: React.MouseEvent) => void; /** * Essa Prop inclui um atributo data-qa com o valor configurado no botão. */ dataQA?: string; /** * Essa Prop inclui um atributo data-collect com o valor configurado no botão. */ dataCollect?: string; /** * Essa Prop inclui um atributo data-collect-info com o valor configurado no botão. */ dataCollectInfo?: string; /** * Essa Prop inclui um atributo data-testid com o valor configurado no botão. */ dataTestId?: string; /** * Propriedade opcional tipo number. Usado para determinar tamanho da label do componente. */ widthLabel?: number; } interface ChipFilterProps { /** * Variação de estilo do componente. */ type: "filter"; /** * Indica se o Chip está selecionado. Requerido para um componente controlado. */ selected?: boolean; /** * Indica se o botão de fechar está true ou não. */ hasCloseButton?: never; /** * Botão para fechar o Chip. Eventos somente funcionam com a variação "field". */ closeButton?: never; /** * Se *true*, o componente está desabilitado. */ disabled?: boolean; } interface ChipFieldProps { /** * Variação de estilo do componente. */ type: "field"; /** * Indica mudança com relação ao closebutton. */ hasCloseButton?: boolean; /** * Se *true*, o componente está desabilitado. */ disabled?: boolean; /** * Indica se o Chip está selecionado. Requerido para um componente controlado. */ selected?: never; /** * Botão para fechar o Chip. Eventos somente funcionam com a variação "field". */ closeButton?: { onClick: (event: React.MouseEvent) => void; } & { dataQA?: string | null; dataCollect?: string | null; dataCollectInfo?: string | null; }; } interface ChipSuggestionProps { /** Variação de estilo do componente. */ type: "suggestion"; /** * Indica se o Chip está selecionado. Requerido para um componente controlado. */ selected?: never; /** * Indica se o botão de fechar está true ou não. */ hasCloseButton?: never; /** * Botão para fechar o Chip. Eventos somente funcionam com a variação "field". */ closeButton?: never; /** * Se *true*, o componente está desabilitado. */ disabled?: never; } export type ChipProps = ChipCommonProps & (ChipFilterProps | ChipFieldProps | ChipSuggestionProps); export interface IColorProps { theme: Tokens; } export interface ChipButtonProps { buttonType: "filter" | "field" | "suggestion"; selected: boolean | undefined; hasCloseButton?: boolean; disabled?: boolean; widthLabel?: number; } export interface ContainerProps { buttonType: "filter" | "field" | "suggestion"; selected: boolean | undefined; hasCloseButton?: boolean; disabled?: boolean; } export {};