Design a flexible carousel component.
Component tree:
Carousel
├── CarouselTrack
│ └── CarouselSlide (multiple)
├── PrevButton
├── NextButton
├── Pagination (dots)
└── Thumbnails (optional)
Props interface:
<Carousel
images={images}
autoPlay={false}
interval={3000}
infinite={true}
showThumbnails={false}
onChange={handleSlideChange}
/>
State: Current index, animation direction, autoplay status.