UNPKG

@transkripid/flowbite-react

Version:

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

1 lines 6.31 kB
{"version":3,"file":"Select.mjs","sources":["../../../src/components/Select/Select.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 FlowbiteSelectTheme {\n base: string;\n addon: string;\n field: {\n base: string;\n icon: {\n base: string;\n svg: string;\n };\n select: {\n base: string;\n withIcon: FlowbiteBoolean;\n withAddon: FlowbiteBoolean;\n withShadow: FlowbiteBoolean;\n sizes: SelectSizes;\n colors: SelectColors;\n };\n };\n}\n\nexport interface SelectColors extends Pick<FlowbiteColors, 'gray' | 'info' | 'failure' | 'warning' | 'success'> {\n [key: string]: string;\n}\n\nexport interface SelectSizes extends Pick<FlowbiteSizes, 'sm' | 'md' | 'lg'> {\n [key: string]: string;\n}\n\nexport interface SelectProps extends Omit<ComponentProps<'select'>, 'color' | 'ref'> {\n addon?: ReactNode;\n color?: keyof SelectColors;\n helperText?: ReactNode;\n icon?: FC<ComponentProps<'svg'>>;\n shadow?: boolean;\n sizing?: keyof SelectSizes;\n theme?: DeepPartial<FlowbiteSelectTheme>;\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n addon,\n children,\n className,\n color = 'gray',\n helperText,\n icon: Icon,\n shadow,\n sizing = 'md',\n theme: customTheme = {},\n ...props\n },\n ref,\n ) => {\n const theme = mergeDeep(getTheme().select, customTheme);\n\n return (\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 <select\n className={twMerge(\n theme.field.select.base,\n theme.field.select.colors[color],\n theme.field.select.sizes[sizing],\n theme.field.select.withIcon[Icon ? 'on' : 'off'],\n theme.field.select.withAddon[addon ? 'on' : 'off'],\n theme.field.select.withShadow[shadow ? 'on' : 'off'],\n )}\n {...props}\n ref={ref}\n >\n {children}\n </select>\n {helperText && <HelperText color={color}>{helperText}</HelperText>}\n </div>\n </div>\n );\n },\n);\n\nSelect.displayName = 'Select';\n"],"names":["Select","forwardRef","t0","ref","$","_c","Icon","addon","children","className","helperText","props","shadow","t1","t2","t3","color","icon","sizing","theme","undefined","t4","customTheme","t5","t6","t7","t8","t9","mergeDeep","getTheme","select","twMerge","base","jsx","field","svg","colors","sizes","withIcon","withAddon","withShadow","t10","t11","HelperText","t12","t13","jsxs","displayName"],"mappings":"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"}