@daformat/react-headless-carousel 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Carousel.d.ts +89 -0
- package/dist/index.d.ts +1 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/utils/maybe.d.ts +3 -0
- package/package.json +11 -12
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type CSSProperties, type RefObject } from "react";
|
|
2
|
+
import type { MaybeNull, MaybeUndefined } from "./utils/maybe.js";
|
|
3
|
+
type ScrollState = {
|
|
4
|
+
isDragging: boolean;
|
|
5
|
+
isDispatchingClick: boolean;
|
|
6
|
+
startX: number;
|
|
7
|
+
scrollLeft: number;
|
|
8
|
+
lastX: number;
|
|
9
|
+
lastTime: number;
|
|
10
|
+
velocityX: number;
|
|
11
|
+
animationId: number | null;
|
|
12
|
+
initialTarget: MaybeNull<EventTarget>;
|
|
13
|
+
initialPointerPosition: MaybeNull<{
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}>;
|
|
17
|
+
mouseDirection: number;
|
|
18
|
+
scrollSnapType: string;
|
|
19
|
+
};
|
|
20
|
+
type ScrollIntoView = (target: HTMLElement, container: HTMLElement, direction: "forwards" | "backwards" | "nearest") => void;
|
|
21
|
+
type CarouselContext = {
|
|
22
|
+
ref?: RefObject<MaybeNull<HTMLElement>>;
|
|
23
|
+
setRef: (ref: RefObject<MaybeNull<HTMLElement>>) => void;
|
|
24
|
+
scrollsBackwards: boolean;
|
|
25
|
+
scrollsForwards: boolean;
|
|
26
|
+
setScrollsBackwards: (scrollsBackwards: boolean) => void;
|
|
27
|
+
setScrollsForwards: (scrollsForwards: boolean) => void;
|
|
28
|
+
handleScrollToNext: () => void;
|
|
29
|
+
handleScrollToPrev: () => void;
|
|
30
|
+
scrollIntoView: ScrollIntoView;
|
|
31
|
+
remainingForwards?: number;
|
|
32
|
+
remainingBackwards?: number;
|
|
33
|
+
setRemainingForwards: (remainingForwards: number) => void;
|
|
34
|
+
setRemainingBackwards: (remainingBackwards: number) => void;
|
|
35
|
+
scrollStateRef?: MaybeUndefined<RefObject<ScrollState>>;
|
|
36
|
+
setScrollStateRef: (state: RefObject<ScrollState>) => void;
|
|
37
|
+
boundaryOffset?: {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
} | ((root: HTMLElement) => {
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
});
|
|
44
|
+
rootRef: RefObject<MaybeNull<HTMLElement>>;
|
|
45
|
+
clearAnimation: () => void;
|
|
46
|
+
};
|
|
47
|
+
declare const CarouselContext: import("react").Context<CarouselContext>;
|
|
48
|
+
type CarouselViewportBaseProps = ComponentPropsWithoutRef<"div"> & {
|
|
49
|
+
scrollSnapType?: CSSProperties["scrollSnapType"];
|
|
50
|
+
};
|
|
51
|
+
type CarouselViewportProps = CarouselViewportBaseProps & ({
|
|
52
|
+
contentFade?: true;
|
|
53
|
+
contentFadeSize?: string | number;
|
|
54
|
+
} | {
|
|
55
|
+
contentFade: false;
|
|
56
|
+
contentFadeSize?: never;
|
|
57
|
+
});
|
|
58
|
+
export declare const Carousel: {
|
|
59
|
+
Root: import("react").ForwardRefExoticComponent<{
|
|
60
|
+
boundaryOffset?: {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
} | ((root: HTMLElement) => {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
});
|
|
67
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
68
|
+
Viewport: import("react").ForwardRefExoticComponent<CarouselViewportProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
69
|
+
Content: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
70
|
+
Item: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
71
|
+
asChild?: boolean;
|
|
72
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
73
|
+
PrevPage: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
74
|
+
NextPage: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
75
|
+
useCarouselContext: () => CarouselContext;
|
|
76
|
+
defaultBoundaryOffset: (container: HTMLElement) => {
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
};
|
|
80
|
+
CSS_VARS: Readonly<{
|
|
81
|
+
fadeSize: "--carousel-fade-size";
|
|
82
|
+
fadeOffsetBackwards: "--carousel-fade-offset-backwards";
|
|
83
|
+
fadeOffsetForwards: "--carousel-fade-offset-forwards";
|
|
84
|
+
overscrollTranslateX: "--carousel-overscroll-translate-x";
|
|
85
|
+
remainingBackwards: "--carousel-remaining-backwards";
|
|
86
|
+
remainingForwards: "--carousel-remaining-forwards";
|
|
87
|
+
}>;
|
|
88
|
+
};
|
|
89
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Carousel } from "./Carousel.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "@testing-library/jest-dom";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daformat/react-headless-carousel",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more",
|
|
6
6
|
"keywords": [
|
|
@@ -19,21 +19,12 @@
|
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "git+https://github.com/daformat/react-headless-carousel.git"
|
|
21
21
|
},
|
|
22
|
-
"scripts": {
|
|
23
|
-
"build": "tsc",
|
|
24
|
-
"ci": "pnpm build && pnpm format:check && pnpm test",
|
|
25
|
-
"format": "prettier --write .",
|
|
26
|
-
"format:check": "prettier --check .",
|
|
27
|
-
"local-release": "changeset version && changeset publish",
|
|
28
|
-
"prepublishOnly": "npm run ci",
|
|
29
|
-
"test": "vitest run"
|
|
30
|
-
},
|
|
31
22
|
"files": [
|
|
32
23
|
"dist"
|
|
33
24
|
],
|
|
34
25
|
"type": "module",
|
|
35
26
|
"main": "dist/index.js",
|
|
36
|
-
"
|
|
27
|
+
"types": "dist/index.d.ts",
|
|
37
28
|
"peerDependencies": {
|
|
38
29
|
"react": ">=18"
|
|
39
30
|
},
|
|
@@ -49,5 +40,13 @@
|
|
|
49
40
|
"react-dom": "^18.3.1",
|
|
50
41
|
"typescript": "^6.0.2",
|
|
51
42
|
"vitest": "^4.1.1"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc",
|
|
46
|
+
"ci": "pnpm build && pnpm format:check && pnpm test",
|
|
47
|
+
"format": "prettier --write .",
|
|
48
|
+
"format:check": "prettier --check .",
|
|
49
|
+
"local-release": "changeset version && changeset publish",
|
|
50
|
+
"test": "vitest run"
|
|
52
51
|
}
|
|
53
|
-
}
|
|
52
|
+
}
|