aero-slider
Version:
A lightweight, CSS-first slider library for the modern web
33 lines (32 loc) • 1.23 kB
TypeScript
import type { GoToOptions, SliderConfig, SliderEvent, SliderEventData, SliderInstance } from "./types.js";
export declare const SLIDE_INDEX_ATTR = "data-aero-slider-index";
export declare const CLONE_ATTR = "data-aero-slider-clone";
/** What the UI features (nav, dots, keyboard, autoplay) need from the core. */
export interface SliderCore {
container: HTMLElement;
track: HTMLElement;
config: Required<SliderConfig>;
signal: AbortSignal;
reducedMotion: MediaQueryList;
/** A scrollDuration animation is in flight. */
easing(): boolean;
current(): number;
maxIndex(): number;
pageCount(): number;
loop(): boolean;
next(): void;
prev(): void;
goTo(index: number, options?: GoToOptions): void;
emit<E extends SliderEvent>(event: E, data: SliderEventData<E>): void;
isVertical(): boolean;
isRtl(): boolean;
position(): number;
maxScroll(): number;
jumpTo(position: number): void;
/** One full lap of real slides: where its teleport-safe band starts, and its length. */
cycle(): {
start: number;
width: number;
} | null;
}
export declare function createSlider(container: HTMLElement, userConfig?: SliderConfig): SliderInstance;