/**
 * @/ui — single source of truth для UI primitives.
 *
 * <p>Stage 3.9: @nstart/ui удалён. Все экспорты резолвят к локальным
 * shadcn primitives в `./components/`. Имена сохранены в nstart-compat форме
 * чтобы существующий код работал без массового рефактора imports.
 *
 * <p>Группы:
 * <ol>
 *   <li><b>Handoff typography utility</b> — Cap, ScopeDot/Badge/Strip.</li>
 *   <li><b>Atomic</b> — Button, Badge, Alert, IconButton, Input, Label,
 *       Separator, Skeleton, Switch.</li>
 *   <li><b>Form fields</b> — TextInput, TextArea, Checkbox, FieldLabel/Hint/
 *       Error, FormActions, DatePicker, MultiSelect, SearchInput.</li>
 *   <li><b>Layout</b> — Card*, Panel, PageHeader, EmptyState, LoadingBlock,
 *       Tabs (legacy items-API + Radix root primitives).</li>
 *   <li><b>Overlays</b> — Modal (Dialog adapter), Drawer (Sheet adapter), Sheet*,
 *       Dialog*, Popover*, DropdownMenu*, Tooltip*.</li>
 *   <li><b>Switches</b> — LanguageSwitch.</li>
 *   <li><b>Toast</b> — Toaster, toast (sonner).</li>
 * </ol>
 */

// === Atomic ===
export { Button, buttonVariants, type ButtonProps } from './components/button'
export { Badge, type BadgeProps } from './components/badge'
export { Alert, type AlertProps } from './components/alert'
export {
  QueryErrorState,
  type QueryErrorStateProps,
} from './components/query-error'
export { IconButton, type IconButtonProps } from './components/icon-button'
export { Input, type InputProps } from './components/input'
export { Label } from './components/label'
export { Separator } from './components/separator'
export { Skeleton } from './components/skeleton'
export { Switch } from './components/switch'

// === Handoff design primitives ===
export { Cap, type CapProps } from './components/cap'
export {
  ScopeDot,
  ScopeBadge,
  ScopeStrip,
  type DataScope as ScopeKind,
} from './components/scope'

// === Form fields ===
export { TextInput, type TextInputProps } from './components/text-input'
export { TextArea, type TextAreaProps } from './components/textarea'
export { Checkbox } from './components/checkbox'
export {
  FieldLabel,
  FieldHint,
  FieldError,
  type FieldLabelProps,
} from './components/field'
export { FormActions, type FormActionsProps } from './components/form-actions'
export { DatePicker, type DatePickerProps } from './components/date-picker'
export {
  DateRangePicker,
  type DateRangePickerProps,
  type DateRangePickerValue,
} from './components/date-range-picker'
export {
  MultiSelect,
  type MultiSelectOption,
  type MultiSelectProps,
} from './components/multi-select'
export {
  SingleSelect,
  type SelectOption,
  type SingleSelectProps,
} from './components/single-select'
export { SearchInput, type SearchInputProps } from './components/search-input'

// === Layout ===
export {
  Card,
  CardHeader,
  CardTitle,
  CardDescription,
  CardContent,
  CardFooter,
} from './components/card'
export { Panel, type PanelProps } from './components/panel'
export { PageHeader, type PageHeaderProps } from './components/page-header'
export { EmptyState, type EmptyStateProps } from './components/empty-state'
export { LoadingBlock, type LoadingBlockProps } from './components/loading-block'
export { GlobeLoader, type GlobeLoaderProps } from './components/globe-loader'

// === Tables ===
export {
  Table,
  TableHeader,
  TableBody,
  TableFooter,
  TableRow,
  TableHead,
  TableHeaderCell,
  TableCell,
  TableCaption,
  TableEmpty,
  type TableHeaderCellProps,
  type TableCellProps,
  type TableEmptyProps,
} from './components/table'

// === Tabs (legacy items[] API + Radix primitives для нового кода) ===
export { TabsSimple as Tabs, type TabItem, type TabsSimpleProps } from './components/tabs-simple'
export {
  Tabs as TabsRoot,
  TabsList,
  TabsTrigger,
  TabsContent,
} from './components/tabs'

// === Overlays ===
export { Modal, type ModalProps } from './components/modal'
export { Drawer, type DrawerProps } from './components/drawer'
export {
  Dialog,
  DialogTrigger,
  DialogPortal,
  DialogClose,
  DialogOverlay,
  DialogContent,
  DialogHeader,
  DialogFooter,
  DialogTitle,
  DialogDescription,
  type DialogContentProps,
} from './components/dialog'
export {
  Sheet,
  SheetTrigger,
  SheetClose,
  SheetPortal,
  SheetContent,
  SheetHeader,
  SheetFooter,
  SheetTitle,
  SheetDescription,
  type SheetContentProps,
} from './components/sheet'
export {
  Popover,
  PopoverTrigger,
  PopoverAnchor,
  PopoverContent,
} from './components/popover'
export {
  Tooltip,
  TooltipProvider,
  TooltipTrigger,
  TooltipContent,
} from './components/tooltip'
export {
  DropdownMenu,
  DropdownMenuTrigger,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuCheckboxItem,
  DropdownMenuRadioItem,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuGroup,
  DropdownMenuPortal,
  DropdownMenuSub,
  DropdownMenuSubTrigger,
  DropdownMenuSubContent,
  DropdownMenuRadioGroup,
} from './components/dropdown-menu'

// === Switches ===
export {
  LanguageSwitch,
  type LanguageOption,
  type LanguageSwitchProps,
} from './components/language-switch'

// === Toast (sonner) ===
export { Toaster, toast } from './components/toaster'
