import {
FC,
ReactElement,
SelectHTMLAttributes,
} from 'react';
import { cn } from '@imphnen-frontend-service/utils';
type TSelectSize = 'sm' | 'md' | 'lg';
type Width = 'standard' | 'custom';
type TSelectProps = Omit<
SelectHTMLAttributes,
'size'
> & {
size?: TSelectSize;
widthform?: Width;
disabled?: boolean;
};
const sizeClasses: Record = {
sm: 'text-[10px] max-h-[34px]',
md: 'text-[12px] max-h-[36px]',
lg: 'text-[15px] max-h-[38px]',
};
const disabledClass =
'opacity-50 hover:border-neutral-200 cursor-not-allowed';
export const Select: FC = ({
size = 'md',
widthform = 'standard',
disabled,
className,
children,
...rest
}): ReactElement => {
const mergedClassName = cn(
`appearance-none px-[12px] py-[8px] text-neutral-800 bg-white placeholder:text-neutral-300 border border-neutral-200 hover:border-blue-300 focus:outline-1 focus:outline-blue-500 rounded-md`,
sizeClasses[size],
widthform === 'standard' && 'min-w-70',
disabled && disabledClass,
className
);
return (
);
};