import type { KbxDensity } from './preference'

export type KbxCatalogState =
  | 'default'
  | 'idle'
  | 'ready'
  | 'refreshing'
  | 'readonly'
  | 'disabled'
  | 'required'
  | 'error'
  | 'loading'
  | 'keyboard'
  | 'changed'
  | 'warning'
  | 'ai-suggested'
  | 'empty'

export interface KbxCatalogScenario {
  id: string
  label: string
  state: KbxCatalogState
  density?: KbxDensity
  description?: string
}

export interface KbxComponentCatalogEntry {
  component: string
  group: 'input' | 'command' | 'grid' | 'feedback' | 'overlay' | 'template' | 'wms' | 'shell'
  scenarios: KbxCatalogScenario[]
  accessibility: {
    keyboard: boolean
    focusVisible: boolean
    labelRequired?: boolean
    colorIndependentStatus?: boolean
  }
}
