Spaces:
Build error
Build error
File size: 1,146 Bytes
4002561 78dd858 4002561 78dd858 4002561 78dd858 4002561 78dd858 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { useId, type SelectHTMLAttributes } from 'react'
interface Props extends SelectHTMLAttributes<HTMLSelectElement> {
/** Optional label rendered above the select */
label?: string
/** Options: array of {value, label} */
options: { value: string; label: string }[]
}
export default function RetroSelect({ label, options, className = '', ...rest }: Props) {
const generatedId = useId()
const selectId = rest.id ?? generatedId
return (
<div className="flex flex-col gap-[2px]">
{label && (
<label htmlFor={selectId} className="text-retro-xs font-retro font-medium text-retro-black">
{label}
</label>
)}
<select
id={selectId}
className={`
px-2 py-[3px]
text-retro-sm font-retro
bg-retro-white text-retro-black
border border-retro-black
shadow-retro-well
cursor-pointer
${className}
`}
{...rest}
>
{options.map((opt) => (
<option key={opt.value} value={opt.value}>
{opt.label}
</option>
))}
</select>
</div>
)
}
|