import {
  Select,
  SelectTrigger,
  SelectValue,
  SelectContent,
  SelectItem,
} from './Select'

export interface FontPickerProps {
  value?: string
  onChange(v: string): void
  fonts: Array<{ id: string; label: string; stack: string }>
  'aria-label'?: string
}

export function FontPicker({ value, onChange, fonts, 'aria-label': ariaLabel }: FontPickerProps) {
  return (
    <Select value={value} onValueChange={onChange}>
      <SelectTrigger aria-label={ariaLabel ?? 'Font'}>
        <SelectValue placeholder="Select font" />
      </SelectTrigger>
      <SelectContent>
        {fonts.map((font) => (
          <SelectItem
            key={font.id}
            value={font.stack}
            style={{ fontFamily: font.stack }}
          >
            {font.label}
          </SelectItem>
        ))}
      </SelectContent>
    </Select>
  )
}
