/**
 * Primitives - Foundation UI components
 * @countermeasure/web-components/primitives
 */

// Button
export { Button, ButtonGroup } from './button/index'
export type { ButtonConfig, ButtonVariant, ButtonSize, ButtonGroupConfig } from './button/index'

// Input
export { Input, InputGroup, Textarea, InputOTP, IPInput } from './input/index'
export type {
  InputConfig,
  InputType,
  InputSize,
  InputGroupConfig,
  TextareaConfig,
  InputOTPConfig,
  IPInputConfig,
} from './input/index'

// Select
export { Select } from './select/index'
export { NativeSelect } from './select/native'
export { Combobox } from './select/combobox'
export type { SelectConfig, SelectOption, NativeSelectConfig, ComboboxConfig } from './select/types'

// Checkbox
export { Checkbox } from './checkbox/index'
export { CheckboxGroup } from './checkbox/group'
export type { CheckboxConfig, CheckboxGroupConfig, CheckboxGroupOption } from './checkbox/types'

// Radio
export { RadioGroup } from './radio/index'
export type { RadioGroupConfig, RadioOption } from './radio/types'

// Switch
export { Switch } from './switch/index'
export type { SwitchConfig, SwitchSize } from './switch/index'

// Slider
export { Slider } from './slider/index'
export type { SliderConfig } from './slider/index'

// Toggle
export { Toggle, ToggleGroup } from './toggle/index'
export type {
  ToggleConfig,
  ToggleVariant,
  ToggleGroupType,
  ToggleGroupConfig,
  ToggleGroupItem,
} from './toggle/index'

// Label
export { Label } from './label/index'
export type { LabelConfig } from './label/index'

// Field
export { Field } from './field/index'
export type { FieldConfig } from './field/index'

// Separator
export { Separator } from './separator/index'
export type { SeparatorConfig } from './separator/index'

// Kbd
export { Kbd } from './kbd/index'
export type { KbdConfig } from './kbd/index'

// Spinner
export { Spinner } from './spinner/index'
export type { SpinnerConfig, SpinnerSize } from './spinner/index'

// Skeleton
export { Skeleton } from './skeleton/index'
export type { SkeletonConfig, SkeletonVariant } from './skeleton/index'

// ScrollArea
export { ScrollArea } from './scroll-area/index'
export type { ScrollAreaConfig, ScrollOrientation } from './scroll-area/index'
