// @arolariu/components — Base UI + CSS Modules component library
// Version 1.0.0 — Built on @base-ui/react primitives

// ============================================================
// Base UI Utilities (re-exported for consumer convenience)
// ============================================================
export {CSPProvider} from "@base-ui/react/csp-provider";
export {DirectionProvider} from "@base-ui/react/direction-provider";
export {mergeProps} from "@base-ui/react/merge-props";
export {useRender} from "@base-ui/react/use-render";

// ============================================================
// Components
// ============================================================

export {Accordion, AccordionContent, AccordionItem, AccordionTrigger} from "./components/ui/accordion";

export {
  AlertDialog,
  AlertDialogAction,
  AlertDialogCancel,
  AlertDialogContent,
  AlertDialogDescription,
  AlertDialogFooter,
  AlertDialogHeader,
  AlertDialogOverlay,
  AlertDialogPortal,
  AlertDialogTitle,
  AlertDialogTrigger,
} from "./components/ui/alert-dialog";

export {Alert, AlertDescription, AlertTitle} from "./components/ui/alert";
export type {AlertProps, AlertVariant} from "./components/ui/alert";

export {AspectRatio} from "./components/ui/aspect-ratio";

export {Avatar, AvatarFallback, AvatarImage} from "./components/ui/avatar";

export {Badge, badgeVariants} from "./components/ui/badge";
export type {BadgeProps, BadgeVariant} from "./components/ui/badge";

export {
  Breadcrumb,
  BreadcrumbEllipsis,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "./components/ui/breadcrumb";

export {Button, buttonVariants} from "./components/ui/button";
export type {ButtonProps, ButtonSize, ButtonState, ButtonVariant} from "./components/ui/button";

export {ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants} from "./components/ui/button-group";

export {Calendar} from "./components/ui/calendar";
export type {CalendarProps, DateRange, DayPickerProps, Matcher} from "./components/ui/calendar";

export {Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "./components/ui/card";

export {Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CarouselApi} from "./components/ui/carousel";
export type {CarouselOptions, CarouselPlugin, CarouselProps} from "./components/ui/carousel";

export {CheckboxGroup} from "./components/ui/checkbox-group";

export {
  // Recharts series elements
  Area,
  // Recharts chart containers
  AreaChart,
  Bar,
  BarChart,
  BarStack,
  // Recharts annotations & overlays
  Brush,
  // Recharts axis & grid
  CartesianGrid,
  // Recharts shapes
  Cell,
  ChartContainer,
  ChartLegend,
  ChartLegendContent,
  ChartStyle,
  ChartTooltip,
  ChartTooltipContent,
  ComposedChart,
  Cross,
  Curve,
  Customized,
  DefaultZIndexes,
  Dot,
  ErrorBar,
  Funnel,
  FunnelChart,
  LabelList,
  Line,
  LineChart,
  Pie,
  PieChart,
  PolarAngleAxis,
  PolarGrid,
  PolarRadiusAxis,
  Polygon,
  Radar,
  RadarChart,
  RadialBar,
  RadialBarChart,
  RechartsLabel,
  Rectangle,
  ReferenceArea,
  ReferenceDot,
  ReferenceLine,
  // Recharts layout
  ResponsiveContainer,
  Sankey,
  Scatter,
  ScatterChart,
  Sector,
  SunburstChart,
  Symbols,
  Trapezoid,
  Treemap,
  XAxis,
  YAxis,
  ZAxis,
  // Recharts z-index (v3.4+)
  ZIndexLayer,
  useActiveTooltipCoordinate,
  useActiveTooltipDataPoints,
  useActiveTooltipLabel,
  useChartHeight,
  // Recharts hooks (v3+)
  useChartWidth,
  useIsTooltipActive,
  useMargin,
  useOffset,
  usePlotArea,
  useXAxisDomain,
  useYAxisDomain,
  type ChartConfig,
  type DefaultLegendContentProps,
  // Recharts types
  type DefaultTooltipContentProps,
  type TooltipValueType,
} from "./components/ui/chart";

export {Checkbox} from "./components/ui/checkbox";

export {Collapsible, CollapsibleContent, CollapsibleTrigger} from "./components/ui/collapsible";

export {
  Combobox,
  ComboboxContent,
  ComboboxEmpty,
  ComboboxGroup,
  ComboboxItem,
  ComboboxSeparator,
  ComboboxTrigger,
} from "./components/ui/combobox";

export {
  Command,
  CommandDialog,
  CommandEmpty,
  CommandGroup,
  CommandInput,
  CommandItem,
  CommandList,
  CommandSeparator,
  CommandShortcut,
} from "./components/ui/command";

export {
  ContextMenu,
  ContextMenuCheckboxItem,
  ContextMenuContent,
  ContextMenuGroup,
  ContextMenuItem,
  ContextMenuLabel,
  ContextMenuPortal,
  ContextMenuRadioGroup,
  ContextMenuRadioItem,
  ContextMenuSeparator,
  ContextMenuShortcut,
  ContextMenuSub,
  ContextMenuSubContent,
  ContextMenuSubTrigger,
  ContextMenuTrigger,
} from "./components/ui/context-menu";

export {
  Dialog,
  DialogClose,
  DialogContent,
  DialogDescription,
  DialogFooter,
  DialogHeader,
  DialogOverlay,
  DialogPortal,
  DialogTitle,
  DialogTrigger,
} from "./components/ui/dialog";

export {
  Drawer,
  DrawerClose,
  DrawerContent,
  DrawerDescription,
  DrawerFooter,
  DrawerHeader,
  DrawerOverlay,
  DrawerPortal,
  DrawerTitle,
  DrawerTrigger,
} from "./components/ui/drawer";

export {
  DropdownMenu,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuPortal,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuSeparator,
  DropdownMenuShortcut,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from "./components/ui/dropdown-menu";

export {Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle} from "./components/ui/empty";

export {
  Field,
  FieldContent,
  FieldDescription,
  FieldError,
  FieldGroup,
  FieldLabel,
  FieldLegend,
  FieldSeparator,
  FieldSet,
  FieldTitle,
} from "./components/ui/field";

export {
  Controller,
  Form,
  FormControl,
  FormDescription,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
  useController,
  useFieldArray,
  useForm,
  useFormContext,
  useFormField,
  useFormState,
  useWatch,
  type FormControlProps,
} from "./components/ui/form";
export type {
  Control,
  ControllerFieldState,
  ControllerProps,
  ControllerRenderProps,
  DefaultValues,
  FieldErrors,
  FieldPath,
  FieldValues,
  Path,
  FieldError as RHFFieldError,
  RegisterOptions,
  Resolver,
  SubmitHandler,
  UseControllerReturn,
  UseFieldArrayReturn,
  UseFormReturn,
} from "./components/ui/form";

export {HoverCard, HoverCardContent, HoverCardTrigger} from "./components/ui/hover-card";

export {
  InputOTP,
  InputOTPGroup,
  InputOTPSeparator,
  InputOTPSlot,
  REGEXP_ONLY_CHARS,
  REGEXP_ONLY_DIGITS,
  REGEXP_ONLY_DIGITS_AND_CHARS,
} from "./components/ui/input-otp";
export type {
  InputOTPGroupProps,
  InputOTPProps,
  InputOTPSeparatorProps,
  InputOTPSlotProps,
  OTPInputProps,
  SlotProps,
} from "./components/ui/input-otp";

export {Input} from "./components/ui/input";

export {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
  InputGroupText,
  InputGroupTextarea,
} from "./components/ui/input-group";

export {
  Item,
  ItemActions,
  ItemContent,
  ItemDescription,
  ItemFooter,
  ItemGroup,
  ItemHeader,
  ItemMedia,
  ItemSeparator,
  ItemTitle,
} from "./components/ui/item";

export {Kbd, KbdGroup} from "./components/ui/kbd";

export {Label} from "./components/ui/label";

export {Meter, MeterIndicator, MeterLabel, MeterTrack} from "./components/ui/meter";

export {
  Menubar,
  MenubarCheckboxItem,
  MenubarContent,
  MenubarGroup,
  MenubarItem,
  MenubarLabel,
  MenubarMenu,
  MenubarPortal,
  MenubarRadioGroup,
  MenubarRadioItem,
  MenubarSeparator,
  MenubarShortcut,
  MenubarSub,
  MenubarSubContent,
  MenubarSubTrigger,
  MenubarTrigger,
} from "./components/ui/menubar";

export {
  NavigationMenu,
  NavigationMenuContent,
  NavigationMenuIndicator,
  NavigationMenuItem,
  NavigationMenuLink,
  NavigationMenuList,
  NavigationMenuTrigger,
  NavigationMenuViewport,
  navigationMenuTriggerStyle,
} from "./components/ui/navigation-menu";

export {
  NumberField,
  NumberFieldDecrement,
  NumberFieldGroup,
  NumberFieldIncrement,
  NumberFieldInput,
  NumberFieldScrubArea,
} from "./components/ui/number-field";

export {
  Pagination,
  PaginationContent,
  PaginationEllipsis,
  PaginationItem,
  PaginationLink,
  PaginationNext,
  PaginationPrevious,
} from "./components/ui/pagination";

export {Popover, PopoverAnchor, PopoverContent, PopoverTrigger} from "./components/ui/popover";

export {Progress} from "./components/ui/progress";

export {RadioGroup, RadioGroupItem} from "./components/ui/radio-group";

export {ResizableHandle, ResizablePanel, ResizablePanelGroup} from "./components/ui/resizable";
export type {
  GroupImperativeHandle,
  PanelImperativeHandle,
  ResizableHandleProps,
  ResizablePanelGroupProps,
  ResizablePanelProps,
} from "./components/ui/resizable";

export {ScrollArea, ScrollBar} from "./components/ui/scroll-area";

export {
  Select,
  SelectContent,
  SelectGroup,
  SelectItem,
  SelectLabel,
  SelectScrollDownButton,
  SelectScrollUpButton,
  SelectSeparator,
  SelectTrigger,
  SelectValue,
} from "./components/ui/select";

export {Separator} from "./components/ui/separator";

export {
  Sheet,
  SheetClose,
  SheetContent,
  SheetDescription,
  SheetFooter,
  SheetHeader,
  SheetOverlay,
  SheetPortal,
  SheetTitle,
  SheetTrigger,
} from "./components/ui/sheet";

export {
  Sidebar,
  SidebarContent,
  SidebarFooter,
  SidebarGroup,
  SidebarGroupAction,
  SidebarGroupContent,
  SidebarGroupLabel,
  SidebarHeader,
  SidebarInput,
  SidebarInset,
  SidebarMenu,
  SidebarMenuAction,
  SidebarMenuBadge,
  SidebarMenuButton,
  SidebarMenuItem,
  SidebarMenuSkeleton,
  SidebarMenuSub,
  SidebarMenuSubButton,
  SidebarMenuSubItem,
  SidebarProvider,
  SidebarRail,
  SidebarSeparator,
  SidebarTrigger,
  useSidebar,
} from "./components/ui/sidebar";

export {Skeleton} from "./components/ui/skeleton";

export {Spinner} from "./components/ui/spinner";

export {Slider} from "./components/ui/slider";

export {Toaster, toast} from "./components/ui/toast";
export type {Toast} from "./components/ui/toast";

export {Switch} from "./components/ui/switch";

export {Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow} from "./components/ui/table";

export {Tabs, TabsContent, TabsList, TabsTrigger} from "./components/ui/tabs";

export {Textarea} from "./components/ui/textarea";

export {Toolbar, ToolbarButton, ToolbarGroup, ToolbarLink, ToolbarSeparator} from "./components/ui/toolbar";

export {ToggleGroup, ToggleGroupItem} from "./components/ui/toggle-group";
export type {ToggleGroupItemProps, ToggleGroupProps} from "./components/ui/toggle-group";

export {Toggle, toggleVariants} from "./components/ui/toggle";
export type {ToggleProps, ToggleSize, ToggleVariant} from "./components/ui/toggle";

export {Tooltip, TooltipContent, TooltipProvider, TooltipTrigger} from "./components/ui/tooltip";

export {CopyButton, type CopyButtonProps} from "./components/ui/copy-button";
export {Stepper, type StepperProps} from "./components/ui/stepper";
export {
  Timeline,
  TimelineContent,
  TimelineDot,
  TimelineItem,
  type TimelineContentProps,
  type TimelineDotProps,
  type TimelineItemProps,
  type TimelineProps,
} from "./components/ui/timeline";
export {VisuallyHidden, type VisuallyHiddenProps} from "./components/ui/visually-hidden";

export {useBreakpoint, type Breakpoint} from "./hooks/useBreakpoint";
export {useClipboard, type UseClipboardOptions, type UseClipboardReturn} from "./hooks/useClipboard";
export {useColorScheme, type ColorScheme} from "./hooks/useColorScheme";
export {useControllableState, type UseControllableStateOptions} from "./hooks/useControllableState";
export {useDebounce} from "./hooks/useDebounce";
export {useEventCallback} from "./hooks/useEventCallback";
export {useFocusVisible} from "./hooks/useFocusVisible";
export {useId} from "./hooks/useId";
export {useIntersectionObserver} from "./hooks/useIntersectionObserver";
export {useInterval} from "./hooks/useInterval";
export {useIsMobile} from "./hooks/useIsMobile";
export {useLocalStorage} from "./hooks/useLocalStorage";
export {useMediaQuery} from "./hooks/useMediaQuery";
export {useMergedRefs} from "./hooks/useMergedRefs";
export {useOnClickOutside} from "./hooks/useOnClickOutside";
export {usePrefersContrast} from "./hooks/usePrefersContrast";
export {usePrevious} from "./hooks/usePrevious";
export {useReducedMotion} from "./hooks/useReducedMotion";
export {useThrottle} from "./hooks/useThrottle";
export {useTimeout} from "./hooks/useTimeout";
export {useWindowSize} from "./hooks/useWindowSize";

export {
  adjustHexColorLightness,
  adjustLightness,
  calculateComplementaryHexColor,
  convertHexToHslString,
  convertHslToHexString,
  getComplementaryColor,
  hexToHsl,
  hslToHex,
  isValidHexColor,
  parseHslString,
  parseHslStringToComponents,
  validateHexColorFormat,
} from "./lib/color-conversion-utilities";
export {cn} from "./lib/utilities";
export type {ClassValue} from "./lib/utilities";

// Animate-UI exports:
export {BubbleBackground, type BubbleBackgroundProps} from "./components/ui/bubble-background";
export {CountingNumber, type CountingNumberProps} from "./components/ui/counting-number";
export {FireworksBackground, type FireworksBackgroundProps} from "./components/ui/fireworks-background";
export {FlipButton, type FlipButtonProps, type FlipDirection} from "./components/ui/flip-button";
export {GradientBackground, type GradientBackgroundProps} from "./components/ui/gradient-background";
export {GradientText, type GradientTextProps} from "./components/ui/gradient-text";
export {HighlightText, type HighlightTextProps} from "./components/ui/highlight-text";
export {HoleBackground, type HoleBackgroundProps} from "./components/ui/hole-background";
export {RippleButton, type RippleButtonProps} from "./components/ui/ripple-button";

// Magic UI exports:
export {DotBackground} from "./components/ui/dot-background";
export {Scratcher} from "./components/ui/scratcher";

// Aceternity UI exports:
export {BackgroundBeams} from "./components/ui/background-beams";
export {TypewriterText, TypewriterTextSmooth} from "./components/ui/typewriter";

// DropDrawer export:
export {
  DropDrawer,
  DropDrawerContent,
  DropDrawerFooter,
  DropDrawerGroup,
  DropDrawerItem,
  DropDrawerLabel,
  DropDrawerSeparator,
  DropDrawerSub,
  DropDrawerSubContent,
  DropDrawerSubTrigger,
  DropDrawerTrigger,
} from "./components/ui/dropdrawer";
