/**
 * Toggle and ToggleGroup type definitions
 * @countermeasure/web-components/primitives/toggle
 */

export type ToggleVariant = 'default' | 'outline'

export interface ToggleConfig {
  container?: HTMLElement | string
  pressed?: boolean
  disabled?: boolean
  variant?: ToggleVariant
  label?: string
  icon?: string
  ariaLabel?: string
  className?: string
  onChange?: (pressed: boolean) => void
}

export type ToggleGroupType = 'single' | 'multiple'

export interface ToggleGroupConfig {
  container?: HTMLElement | string
  type?: ToggleGroupType
  value?: string | string[]
  disabled?: boolean
  orientation?: 'horizontal' | 'vertical'
  ariaLabel?: string
  className?: string
  onChange?: (value: string | string[]) => void
}

export interface ToggleGroupItem {
  value: string
  label?: string
  icon?: string
  disabled?: boolean
  ariaLabel?: string
}
