UNPKG

@transkripid/flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork

1 lines 7.59 kB
{"version":3,"file":"TextInput.mjs","sources":["../../../src/components/TextInput/TextInput.tsx"],"sourcesContent":["import type { ComponentProps, FC, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport { getTheme } from '../../theme-store';\nimport type { DeepPartial } from '../../types';\nimport type { FlowbiteBoolean, FlowbiteColors, FlowbiteSizes } from '../Flowbite';\nimport { HelperText } from '../HelperText';\n\nexport interface FlowbiteTextInputTheme {\n base: string;\n addon: string;\n field: {\n base: string;\n icon: {\n base: string;\n svg: string;\n };\n rightIcon: {\n base: string;\n svg: string;\n };\n input: {\n base: string;\n sizes: FlowbiteTextInputSizes;\n colors: FlowbiteTextInputColors;\n withIcon: FlowbiteBoolean;\n withRightIcon: FlowbiteBoolean;\n withAddon: FlowbiteBoolean;\n withShadow: FlowbiteBoolean;\n };\n };\n}\n\nexport interface FlowbiteTextInputColors\n extends Pick<FlowbiteColors, 'gray' | 'info' | 'failure' | 'warning' | 'success'> {\n [key: string]: string;\n}\n\nexport interface FlowbiteTextInputSizes extends Pick<FlowbiteSizes, 'sm' | 'md' | 'lg'> {\n [key: string]: string;\n}\n\nexport interface TextInputProps extends Omit<ComponentProps<'input'>, 'ref' | 'color'> {\n addon?: ReactNode;\n color?: keyof FlowbiteTextInputColors;\n helperText?: ReactNode;\n icon?: FC<ComponentProps<'svg'>>;\n rightIcon?: FC<ComponentProps<'svg'>>;\n shadow?: boolean;\n sizing?: keyof FlowbiteTextInputSizes;\n theme?: DeepPartial<FlowbiteTextInputTheme>;\n}\n\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n addon,\n className,\n color = 'gray',\n helperText,\n icon: Icon,\n rightIcon: RightIcon,\n shadow,\n sizing = 'md',\n theme: customTheme = {},\n type = 'text',\n ...props\n },\n ref,\n ) => {\n const theme = mergeDeep(getTheme().textInput, customTheme);\n\n return (\n <>\n <div className={twMerge(theme.base, className)}>\n {addon && <span className={theme.addon}>{addon}</span>}\n <div className={theme.field.base}>\n {Icon && (\n <div className={theme.field.icon.base}>\n <Icon className={theme.field.icon.svg} />\n </div>\n )}\n {RightIcon && (\n <div data-testid=\"right-icon\" className={theme.field.rightIcon.base}>\n <RightIcon className={theme.field.rightIcon.svg} />\n </div>\n )}\n <input\n className={twMerge(\n theme.field.input.base,\n theme.field.input.colors[color],\n theme.field.input.sizes[sizing],\n theme.field.input.withIcon[Icon ? 'on' : 'off'],\n theme.field.input.withRightIcon[RightIcon ? 'on' : 'off'],\n theme.field.input.withAddon[addon ? 'on' : 'off'],\n theme.field.input.withShadow[shadow ? 'on' : 'off'],\n )}\n type={type}\n {...props}\n ref={ref}\n />\n </div>\n </div>\n {helperText && <HelperText color={color}>{helperText}</HelperText>}\n </>\n );\n },\n);\n\nTextInput.displayName = 'TextInput';\n"],"names":["TextInput","forwardRef","t0","ref","$","_c","Icon","RightIcon","addon","className","helperText","props","shadow","t1","t2","t3","t4","color","icon","rightIcon","sizing","theme","type","undefined","t5","customTheme","t10","t11","t6","t7","t8","t9","mergeDeep","getTheme","textInput","twMerge","base","jsx","field","svg","input","colors","sizes","withIcon","withRightIcon","withAddon","withShadow","t12","t13","t14","jsxs","t15","HelperText","t16","displayName"],"mappings":"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"}