/**
 * @i-learned/ui — design tokens and accessible primitives.
 *
 * This package depends on React and Radix only. It contains no business logic
 * and never imports from @i-learned/core or @i-learned/db, so a component can
 * be reused in any context without dragging the domain along.
 */

export { cn } from './lib/cn';

export { Button, buttonVariants, type ButtonProps } from './components/button';
export {
  Label,
  Input,
  Textarea,
  NativeSelect,
  Field,
  FormError,
  type FieldProps,
  type FormErrorProps,
} from './components/form';
export {
  Card,
  CardHeader,
  CardTitle,
  CardDescription,
  CardContent,
  CardFooter,
  KpiCard,
  type KpiCardProps,
} from './components/card';
export {
  StatusBadge,
  WorkflowStatus,
  toneForStatus,
  humanizeStatus,
  EmptyState,
  ErrorState,
  ForbiddenState,
  Skeleton,
  LoadingState,
  type StatusTone,
  type StatusBadgeProps,
  type EmptyStateProps,
} from './components/status';
export {
  TableWrapper,
  Table,
  THead,
  TBody,
  TR,
  TH,
  TD,
  Pagination,
  type PaginationProps,
} from './components/table';
export {
  Breadcrumbs,
  Stepper,
  Timeline,
  PageHeader,
  type Crumb,
  type Step,
  type TimelineEntry,
} from './components/navigation';
export {
  Dialog,
  DialogTrigger,
  DialogClose,
  DialogContent,
  DialogHeader,
  DialogTitle,
  DialogDescription,
  DialogBody,
  DialogFooter,
  ConfirmDialog,
  type ConfirmDialogProps,
} from './components/dialog';

export {
  DropdownMenu,
  DropdownMenuTrigger,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuSeparator,
  DropdownMenuLabel,
} from './components/dropdown-menu';
