/**
 * Atom Components
 * Basic building blocks that cannot be broken down further
 */

// Core Form Components
export { Button, buttonVariants } from "./button";
export type { ButtonProps } from "./button";

export { Input } from "./input";
export type { InputProps } from "./input";

export { Checkbox } from "./checkbox";
export type { CheckboxProps } from "./checkbox";

export { Label } from "./label";
export type { LabelProps } from "./label";

export { ErrorMessage, errorMessageVariants } from "./error-message";
export type { ErrorMessageProps } from "./error-message";

// Status and Feedback Components
export { StatusPill } from "./status-pill";
export type { StatusPillProps } from "./status-pill";

export { Badge, badgeVariants } from "./badge";
export type { BadgeProps } from "./badge";

// Loading components
export { Spinner } from "./spinner";
export { LoadingOverlay } from "./loading-overlay";

export { ErrorState } from "./error-state";

export { EmptyState, SearchEmptyState } from "./empty-state";

// Additional UI Components
export { InlineToast } from "./inline-toast";
// Base skeleton primitive
export { Skeleton } from "./skeleton";

// Generic loading skeletons (re-exported from molecules for backward compatibility)
// New code should import directly from "@/components/molecules" or "@/components/molecules/LoadingSkeletons"
export { LoadingCard, LoadingTable, LoadingStats } from "../molecules/LoadingSkeletons";

// Feature-specific skeletons (re-exported for backward compatibility)
// New code should import from features/[feature]/components/skeletons/
export {
  SubscriptionStatsCardsSkeleton,
  SubscriptionTableSkeleton,
  SubscriptionDetailStatsSkeleton,
} from "../../features/subscriptions/components/skeletons";

export { InvoiceListSkeleton } from "../../features/billing/components/skeletons";
export { Logo } from "./logo";

// Navigation and Steps
export { StepHeader } from "./step-header";

// Animation
export { AnimatedContainer } from "./animated-container";
