react-carousel-latest
Version:
A headless, accessible, tree-shakeable React carousel with a compound-component API (and a backwards-compatible CardSlider preset).
1 lines • 99.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/context/CarouselContext.tsx","../src/utils/clamp.ts","../src/core/carouselReducer.ts","../src/core/useAutoplay.ts","../src/core/useBreakpoints.ts","../src/core/useKeyboard.ts","../src/core/useSwipe.ts","../src/core/useCarousel.ts","../src/utils/cx.ts","../src/components/Carousel.tsx","../src/components/Track.tsx","../src/components/Slide.tsx","../src/components/Button.tsx","../src/components/Dots.tsx","../src/components/PlayPause.tsx","../src/components/index.ts","../src/presets/icons.tsx","../src/presets/Blobs.tsx","../src/presets/Card.tsx","../src/utils/shuffle.ts","../src/presets/gradient.ts","../src/presets/CardSlider.tsx","../src/presets/ImageSlider.tsx","../src/presets/SlicerSlider.tsx","../src/presets/CubeSlider.tsx"],"names":["createContext","useContext","useRef","useEffect","useState","onPrev","onNext","onFirst","onLast","useReducer","useCallback","useMemo","forwardRef","Carousel","useImperativeHandle","jsx","Icon","jsxs","Fragment","motion","palettes"],"mappings":"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","file":"index.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { CarouselApi } from \"../core/types\";\n\n/**\n * Holds the live {@link CarouselApi} for the compound components. `null` is the\n * default so we can detect (and loudly reject) usage outside `<Carousel>`.\n */\nexport const CarouselContext = createContext<CarouselApi | null>(null);\n\n/**\n * Read the carousel API from context. Throws a descriptive error when a part\n * (`Carousel.Track`, `Carousel.Slide`, …) is rendered outside a `<Carousel>`.\n */\nexport function useCarouselContext(): CarouselApi {\n const api = useContext(CarouselContext);\n if (api === null) {\n throw new Error(\n \"Carousel compound components must be rendered inside <Carousel>. \" +\n \"Did you forget to wrap them, or import the part from a different package version?\",\n );\n }\n return api;\n}\n","/** Constrain `value` to the inclusive `[min, max]` range. */\nexport function clamp(value: number, min: number, max: number): number {\n if (max < min) return min;\n return Math.min(Math.max(value, min), max);\n}\n\n/**\n * Wrap `index` into `[0, count)` using modulo arithmetic that also handles\n * negative inputs (e.g. wrapping past the first slide to the last).\n */\nexport function wrapIndex(index: number, count: number): number {\n if (count <= 0) return 0;\n return ((index % count) + count) % count;\n}\n","import type { CarouselAction, CarouselState } from \"./types\";\nimport { clamp, wrapIndex } from \"../utils/clamp\";\n\n/**\n * Pure reducer for carousel navigation. All index math (clamping, looping,\n * step size) lives here so the behaviour is deterministic and unit-testable\n * in isolation from React.\n */\nexport function carouselReducer(\n state: CarouselState,\n action: CarouselAction,\n): CarouselState {\n // Furthest index that still keeps a full view on screen. With\n // slidesPerView > 1 this stops the last slide being scrolled past alone.\n const maxIndex = Math.max(0, state.slidesCount - state.slidesPerView);\n\n switch (action.type) {\n case \"NEXT\": {\n const target = state.activeIndex + action.step;\n const next = action.loop\n ? wrapIndex(target, state.slidesCount)\n : clamp(target, 0, maxIndex);\n return next === state.activeIndex ? state : { ...state, activeIndex: next };\n }\n case \"PREV\": {\n const target = state.activeIndex - action.step;\n const next = action.loop\n ? wrapIndex(target, state.slidesCount)\n : clamp(target, 0, maxIndex);\n return next === state.activeIndex ? state : { ...state, activeIndex: next };\n }\n case \"GO_TO\": {\n const next = clamp(action.index, 0, maxIndex);\n return next === state.activeIndex ? state : { ...state, activeIndex: next };\n }\n case \"SET_COUNT\": {\n if (action.slidesCount === state.slidesCount) return state;\n // Keep the active slide valid if the collection shrank.\n const activeIndex = clamp(state.activeIndex, 0, Math.max(0, action.slidesCount - state.slidesPerView));\n return { ...state, slidesCount: action.slidesCount, activeIndex };\n }\n case \"SET_SLIDES_PER_VIEW\": {\n if (action.slidesPerView === state.slidesPerView) return state;\n const activeIndex = clamp(state.activeIndex, 0, Math.max(0, state.slidesCount - action.slidesPerView));\n return { ...state, slidesPerView: action.slidesPerView, activeIndex };\n }\n case \"SET_PLAYING\": {\n return action.isPlaying === state.isPlaying\n ? state\n : { ...state, isPlaying: action.isPlaying };\n }\n default:\n return state;\n }\n}\n","import { useEffect, useRef } from \"react\";\n\ninterface AutoplayParams {\n /** Whether the timer should be active. */\n enabled: boolean;\n /** Tick interval in milliseconds. */\n interval: number;\n /** Called on each tick (typically advances to the next slide). */\n onTick: () => void;\n /** Region element; autoplay pauses while it is hovered or focused. */\n rootRef: React.RefObject<HTMLElement | null>;\n}\n\n/**\n * Drives autoplay. Pauses on pointer hover, keyboard focus, and tab\n * backgrounding, and never starts when the user prefers reduced motion.\n */\nexport function useAutoplay({ enabled, interval, onTick, rootRef }: AutoplayParams): void {\n // Keep the latest callback without re-arming the interval every render.\n const onTickRef = useRef(onTick);\n onTickRef.current = onTick;\n\n useEffect(() => {\n if (!enabled || typeof window === \"undefined\") return;\n\n const prefersReducedMotion = window.matchMedia?.(\n \"(prefers-reduced-motion: reduce)\",\n ).matches;\n if (prefersReducedMotion) return;\n\n const root = rootRef.current;\n let paused = false;\n const pause = () => (paused = true);\n const resume = () => (paused = false);\n\n const timer = window.setInterval(() => {\n if (!paused && !document.hidden) onTickRef.current();\n }, interval);\n\n root?.addEventListener(\"pointerenter\", pause);\n root?.addEventListener(\"pointerleave\", resume);\n root?.addEventListener(\"focusin\", pause);\n root?.addEventListener(\"focusout\", resume);\n\n return () => {\n window.clearInterval(timer);\n root?.removeEventListener(\"pointerenter\", pause);\n root?.removeEventListener(\"pointerleave\", resume);\n root?.removeEventListener(\"focusin\", pause);\n root?.removeEventListener(\"focusout\", resume);\n };\n }, [enabled, interval, rootRef]);\n}\n","import { useEffect, useState } from \"react\";\nimport type { ResponsiveOptions } from \"./types\";\n\ntype Resolved = Required<ResponsiveOptions>;\n\n/**\n * Resolves the active responsive config from a `breakpoints` map keyed by\n * min-width (px) — the largest matching breakpoint wins, merged over `base`.\n *\n * SSR-safe: returns `base` on the server and until mounted, then reconciles on\n * the client and updates on viewport resize. When no breakpoints are given it\n * returns `base` unchanged (no listeners attached).\n */\nexport function useBreakpoints(\n base: Resolved,\n breakpoints?: Record<number, ResponsiveOptions>,\n): Resolved {\n const [resolved, setResolved] = useState<Resolved>(base);\n\n // Stable dependency for an object that's often passed inline.\n const bpKey = breakpoints ? JSON.stringify(breakpoints) : \"\";\n\n useEffect(() => {\n if (!breakpoints || typeof window === \"undefined\") return;\n\n const resolve = (): Resolved => {\n const next = { ...base };\n for (const width of Object.keys(breakpoints).map(Number).sort((a, b) => a - b)) {\n if (window.matchMedia(`(min-width: ${width}px)`).matches) {\n const over = breakpoints[width];\n if (over.slidesPerView != null) next.slidesPerView = over.slidesPerView;\n if (over.slidesToScroll != null) next.slidesToScroll = over.slidesToScroll;\n }\n }\n return next;\n };\n\n const update = () => setResolved(resolve());\n update();\n window.addEventListener(\"resize\", update);\n return () => window.removeEventListener(\"resize\", update);\n // base is read via its primitive fields; bpKey captures breakpoints.\n }, [bpKey, base.slidesPerView, base.slidesToScroll]);\n\n return breakpoints ? resolved : base;\n}\n","import { useEffect, useRef } from \"react\";\nimport type { Orientation } from \"./types\";\n\ninterface KeyboardParams {\n rootRef: React.RefObject<HTMLElement | null>;\n orientation: Orientation;\n onPrev: () => void;\n onNext: () => void;\n onFirst: () => void;\n onLast: () => void;\n}\n\n/**\n * Wires arrow-key navigation (plus Home/End) onto the region element. The axis\n * of the relevant arrow keys follows {@link Orientation}.\n */\nexport function useKeyboard({\n rootRef,\n orientation,\n onPrev,\n onNext,\n onFirst,\n onLast,\n}: KeyboardParams): void {\n // Stash handlers in a ref so the listener is attached only once per element.\n const handlers = useRef({ onPrev, onNext, onFirst, onLast });\n handlers.current = { onPrev, onNext, onFirst, onLast };\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n const prevKey = orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n const onKeyDown = (event: KeyboardEvent) => {\n const { onPrev, onNext, onFirst, onLast } = handlers.current;\n switch (event.key) {\n case prevKey:\n event.preventDefault();\n onPrev();\n break;\n case nextKey:\n event.preventDefault();\n onNext();\n break;\n case \"Home\":\n event.preventDefault();\n onFirst();\n break;\n case \"End\":\n event.preventDefault();\n onLast();\n break;\n }\n };\n\n root.addEventListener(\"keydown\", onKeyDown);\n return () => root.removeEventListener(\"keydown\", onKeyDown);\n }, [rootRef, orientation]);\n}\n","import { useEffect, useRef } from \"react\";\nimport type { DragInfo, Orientation } from \"./types\";\n\ninterface SwipeParams {\n trackRef: React.RefObject<HTMLElement | null>;\n orientation: Orientation;\n onPrev: () => void;\n onNext: () => void;\n /** Minimum drag distance (px) to commit a slide change. Default `50`. */\n threshold?: number;\n /** Called when a pointer swipe begins. */\n onSwipeStart?: () => void;\n /** Called when a pointer swipe ends, with the resolved drag info. */\n onSwipeEnd?: (info: DragInfo) => void;\n}\n\n/**\n * Pointer-based swipe/drag navigation.\n *\n * While dragging we write the live offset to the `--rc-drag` custom property\n * and flag `data-dragging` on the track, so the content follows the finger\n * without React re-renders (the stylesheet disables the transition during a\n * drag). On release we reset the offset and, if the threshold was crossed,\n * commit a navigation — React then animates to the new index.\n */\nexport function useSwipe({\n trackRef,\n orientation,\n onPrev,\n onNext,\n threshold = 50,\n onSwipeStart,\n onSwipeEnd,\n}: SwipeParams): void {\n const handlers = useRef({ onPrev, onNext, onSwipeStart, onSwipeEnd });\n handlers.current = { onPrev, onNext, onSwipeStart, onSwipeEnd };\n\n useEffect(() => {\n const track = trackRef.current;\n if (!track) return;\n\n const isHorizontal = orientation === \"horizontal\";\n let startPos = 0;\n let delta = 0;\n let dragging = false;\n let frame = 0;\n\n const axis = (event: PointerEvent) => (isHorizontal ? event.clientX : event.clientY);\n\n const paint = () => {\n frame = 0;\n track.style.setProperty(\"--rc-drag\", `${delta}px`);\n };\n\n const onPointerDown = (event: PointerEvent) => {\n // Ignore secondary buttons; only start on primary pointer.\n if (event.button !== 0) return;\n dragging = true;\n startPos = axis(event);\n delta = 0;\n track.setAttribute(\"data-dragging\", \"true\");\n track.setPointerCapture(event.pointerId);\n handlers.current.onSwipeStart?.();\n };\n\n const onPointerMove = (event: PointerEvent) => {\n if (!dragging) return;\n delta = axis(event) - startPos;\n if (!frame) frame = window.requestAnimationFrame(paint);\n };\n\n const onPointerUp = (event: PointerEvent) => {\n if (!dragging) return;\n dragging = false;\n if (frame) window.cancelAnimationFrame(frame), (frame = 0);\n track.removeAttribute(\"data-dragging\");\n track.style.setProperty(\"--rc-drag\", \"0px\");\n if (track.hasPointerCapture(event.pointerId)) {\n track.releasePointerCapture(event.pointerId);\n }\n const committed = Math.abs(delta) > threshold;\n // Dragging the content toward the start reveals the next slide.\n handlers.current.onSwipeEnd?.({\n delta,\n direction: committed ? (delta < 0 ? \"next\" : \"prev\") : \"none\",\n });\n if (committed) {\n delta < 0 ? handlers.current.onNext() : handlers.current.onPrev();\n }\n };\n\n track.addEventListener(\"pointerdown\", onPointerDown);\n track.addEventListener(\"pointermove\", onPointerMove);\n track.addEventListener(\"pointerup\", onPointerUp);\n track.addEventListener(\"pointercancel\", onPointerUp);\n\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n track.removeEventListener(\"pointerdown\", onPointerDown);\n track.removeEventListener(\"pointermove\", onPointerMove);\n track.removeEventListener(\"pointerup\", onPointerUp);\n track.removeEventListener(\"pointercancel\", onPointerUp);\n };\n }, [trackRef, orientation, threshold]);\n}\n","import { useCallback, useEffect, useMemo, useReducer, useRef } from \"react\";\nimport { carouselReducer } from \"./carouselReducer\";\nimport { useAutoplay } from \"./useAutoplay\";\nimport { useBreakpoints } from \"./useBreakpoints\";\nimport { useKeyboard } from \"./useKeyboard\";\nimport { useSwipe } from \"./useSwipe\";\nimport { clamp } from \"../utils/clamp\";\nimport type { CarouselApi, CarouselOptions, CarouselState } from \"./types\";\n\n/**\n * The headless heart of the library: owns navigation state and composes the\n * keyboard, swipe, and autoplay behaviours into a single {@link CarouselApi}.\n *\n * Use it directly to build a fully custom UI, or let `<Carousel>` call it and\n * expose the result through context to the compound components.\n */\nexport function useCarousel(options: CarouselOptions): CarouselApi {\n const {\n slidesCount,\n initialIndex = 0,\n loop = false,\n autoplay = false,\n autoplayInterval = 4000,\n slidesToScroll = 1,\n slidesPerView = 1,\n breakpoints,\n orientation = \"horizontal\",\n onIndexChange,\n onSettle,\n onSwipeStart,\n onSwipeEnd,\n } = options;\n\n // Resolve responsive slidesPerView / slidesToScroll for the current viewport.\n const effective = useBreakpoints({ slidesPerView, slidesToScroll }, breakpoints);\n\n const trackRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [state, dispatch] = useReducer(\n carouselReducer,\n undefined,\n (): CarouselState => ({\n activeIndex: clamp(initialIndex, 0, Math.max(0, slidesCount - slidesPerView)),\n slidesCount,\n slidesPerView,\n isPlaying: autoplay,\n }),\n );\n\n // Keep the active index valid when the slide collection changes size.\n useEffect(() => {\n dispatch({ type: \"SET_COUNT\", slidesCount });\n }, [slidesCount]);\n\n // Sync the resolved slides-per-view (breakpoint changes) into the reducer.\n useEffect(() => {\n dispatch({ type: \"SET_SLIDES_PER_VIEW\", slidesPerView: effective.slidesPerView });\n }, [effective.slidesPerView]);\n\n // Notify consumers of index changes without re-arming on every render.\n const onIndexChangeRef = useRef(onIndexChange);\n onIndexChangeRef.current = onIndexChange;\n useEffect(() => {\n onIndexChangeRef.current?.(state.activeIndex);\n }, [state.activeIndex]);\n\n // Fire onSettle when the track's transform transition finishes.\n const onSettleRef = useRef(onSettle);\n onSettleRef.current = onSettle;\n const indexRef = useRef(state.activeIndex);\n indexRef.current = state.activeIndex;\n useEffect(() => {\n const track = trackRef.current;\n if (!track) return;\n const handle = (event: TransitionEvent) => {\n if (event.target === track && event.propertyName === \"transform\") {\n onSettleRef.current?.(indexRef.current);\n }\n };\n track.addEventListener(\"transitionend\", handle);\n return () => track.removeEventListener(\"transitionend\", handle);\n }, []);\n\n const step = effective.slidesToScroll;\n const next = useCallback(\n () => dispatch({ type: \"NEXT\", step, loop }),\n [step, loop],\n );\n const prev = useCallback(\n () => dispatch({ type: \"PREV\", step, loop }),\n [step, loop],\n );\n const goTo = useCallback((index: number) => dispatch({ type: \"GO_TO\", index }), []);\n const play = useCallback(() => dispatch({ type: \"SET_PLAYING\", isPlaying: true }), []);\n const pause = useCallback(() => dispatch({ type: \"SET_PLAYING\", isPlaying: false }), []);\n const first = useCallback(() => dispatch({ type: \"GO_TO\", index: 0 }), []);\n const last = useCallback(\n () => dispatch({ type: \"GO_TO\", index: slidesCount - 1 }),\n [slidesCount],\n );\n\n useKeyboard({ rootR