import * as SelectPrimitive from '@radix-ui/react-select' import { ChevronDownIcon, ChevronsUpDownIcon, ChevronUpIcon } from 'lucide-react' import * as React from 'react' import type { SelectContentProps, SelectGroupProps, SelectItemProps, SelectLabelProps, SelectProps, SelectSeparatorProps, SelectTriggerProps, SelectValueProps } from '../types' import { cn } from '../utils' import { Container } from './container' import { Label } from './label' import { RequiredIndicator } from './required-indicator' import { Text } from './text' const Select: React.FC = ({ id, value, defaultValue = '', label, description, required = false, disabled = false, children, onValueChange = () => {}, className }) => ( {(label || description) && ( {label && } {description && ( {description} )} )} {/* TODO: remove className */} {children} {required && } ) const SelectValue: React.FC = ({ placeholder }) => ( ) const SelectTrigger = React.forwardRef< React.ElementRef, SelectTriggerProps >(({ children, id }, ref) => ( {children} )) SelectTrigger.displayName = SelectPrimitive.Trigger.displayName const SelectContent = React.forwardRef< React.ElementRef, SelectContentProps >(({ children }, ref) => ( {children} )) SelectContent.displayName = SelectPrimitive.Content.displayName const SelectItem = React.forwardRef, SelectItemProps>( ({ children, value, disabled = false }, ref) => ( {children} ) ) SelectItem.displayName = SelectPrimitive.Item.displayName const SelectLabel = React.forwardRef< React.ElementRef, SelectLabelProps >(({ children }, ref) => ( {children} )) SelectLabel.displayName = SelectPrimitive.Label.displayName const SelectGroup: React.FC = ({ children }) => ( {children} ) const SelectSeparator: React.FC = () => ( ) const SelectScrollUpButton = () => ( ) const SelectScrollDownButton = () => ( ) export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue }