import React from 'react'; import { useCarousel } from './hooks/useCarousel'; import { CarouselContainer, CarouselWrapper, CarouselContent, CardsRow, PageControl } from './styles'; import { DefaultNavigationArrow } from './DefaultNavigationArrow'; import { DefaultPageDot } from './DefaultPageDot'; import { CarouselComponentProps } from './types'; export const CarouselComponent: React.FC = ({ items, options, showArrows = true, showDots = true, arrowComponent: CustomArrow, dotComponent: CustomDot, className }) => { const { currentPage, totalPages, carouselRef, handlePrevious, handleNext, scrollToPage, handleMouseDown, handleMouseUp, handleMouseLeave, handleTouchStart, handleTouchMove, handleTouchEnd } = useCarousel(items.length, options); const ArrowComponent = CustomArrow || DefaultNavigationArrow; const DotComponent = CustomDot || DefaultPageDot; return ( {showArrows && ( )} {items} {showArrows && ( = totalPages - 1} /> )} {showDots && totalPages > 1 && ( {Array.from({ length: totalPages }).map((_, pageIndex) => ( scrollToPage(pageIndex)} index={pageIndex} /> ))} )} ); }; export { CarouselItem } from './CarouselItem';