@toptal/picasso 31.5.1 → 31.6.0
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/Carousel/Carousel.d.ts +70 -0
- package/Carousel/Carousel.js +41 -0
- package/Carousel/Carousel.js.map +1 -0
- package/Carousel/hooks/useAutoplay/index.d.ts +1 -0
- package/Carousel/hooks/useAutoplay/index.js +2 -0
- package/Carousel/hooks/useAutoplay/index.js.map +1 -0
- package/Carousel/hooks/useAutoplay/useAutoplay.d.ts +10 -0
- package/Carousel/hooks/useAutoplay/useAutoplay.js +14 -0
- package/Carousel/hooks/useAutoplay/useAutoplay.js.map +1 -0
- package/Carousel/hooks/useCarousel/index.d.ts +1 -0
- package/Carousel/hooks/useCarousel/index.js +2 -0
- package/Carousel/hooks/useCarousel/index.js.map +1 -0
- package/Carousel/hooks/useCarousel/useCarousel.d.ts +44 -0
- package/Carousel/hooks/useCarousel/useCarousel.js +89 -0
- package/Carousel/hooks/useCarousel/useCarousel.js.map +1 -0
- package/Carousel/index.d.ts +4 -0
- package/Carousel/index.js +2 -0
- package/Carousel/index.js.map +1 -0
- package/Carousel/styles.d.ts +2 -0
- package/Carousel/styles.js +11 -0
- package/Carousel/styles.js.map +1 -0
- package/Carousel/utils/isOnLastPage/index.d.ts +1 -0
- package/Carousel/utils/isOnLastPage/index.js +2 -0
- package/Carousel/utils/isOnLastPage/index.js.map +1 -0
- package/Carousel/utils/isOnLastPage/isOnLastPage.d.ts +7 -0
- package/Carousel/utils/isOnLastPage/isOnLastPage.js +10 -0
- package/Carousel/utils/isOnLastPage/isOnLastPage.js.map +1 -0
- package/CarouselGradient/CarouselGradient.d.ts +7 -0
- package/CarouselGradient/CarouselGradient.js +23 -0
- package/CarouselGradient/CarouselGradient.js.map +1 -0
- package/CarouselGradient/index.d.ts +1 -0
- package/CarouselGradient/index.js +2 -0
- package/CarouselGradient/index.js.map +1 -0
- package/CarouselGradient/styles.d.ts +2 -0
- package/CarouselGradient/styles.js +17 -0
- package/CarouselGradient/styles.js.map +1 -0
- package/CarouselGradient/utils/gradientWidth/gradientWidth.d.ts +7 -0
- package/CarouselGradient/utils/gradientWidth/gradientWidth.js +12 -0
- package/CarouselGradient/utils/gradientWidth/gradientWidth.js.map +1 -0
- package/CarouselGradient/utils/gradientWidth/index.d.ts +1 -0
- package/CarouselGradient/utils/gradientWidth/index.js +2 -0
- package/CarouselGradient/utils/gradientWidth/index.js.map +1 -0
- package/CarouselNavigation/CarouselNavigation.d.ts +17 -0
- package/CarouselNavigation/CarouselNavigation.js +28 -0
- package/CarouselNavigation/CarouselNavigation.js.map +1 -0
- package/CarouselNavigation/index.d.ts +1 -0
- package/CarouselNavigation/index.js +2 -0
- package/CarouselNavigation/index.js.map +1 -0
- package/CarouselNavigation/styles.d.ts +3 -0
- package/CarouselNavigation/styles.js +28 -0
- package/CarouselNavigation/styles.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +3 -1
- package/utils/useInterval/index.d.ts +1 -0
- package/utils/useInterval/index.js +2 -0
- package/utils/useInterval/index.js.map +1 -0
- package/utils/useInterval/use-interval.d.ts +7 -0
- package/utils/useInterval/use-interval.js +29 -0
- package/utils/useInterval/use-interval.js.map +1 -0
- package/utils/useMouseEnter/index.d.ts +1 -0
- package/utils/useMouseEnter/index.js +2 -0
- package/utils/useMouseEnter/index.js.map +1 -0
- package/utils/useMouseEnter/use-mouse-enter.d.ts +3 -0
- package/utils/useMouseEnter/use-mouse-enter.js +23 -0
- package/utils/useMouseEnter/use-mouse-enter.js.map +1 -0
- package/utils/useOnScreen/index.d.ts +1 -0
- package/utils/useOnScreen/index.js +2 -0
- package/utils/useOnScreen/index.js.map +1 -0
- package/utils/useOnScreen/use-on-screen.d.ts +8 -0
- package/utils/useOnScreen/use-on-screen.js +24 -0
- package/utils/useOnScreen/use-on-screen.js.map +1 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import 'glider-js/glider.css';
|
|
3
|
+
import { BaseProps } from '@toptal/picasso-shared';
|
|
4
|
+
export interface Props extends BaseProps {
|
|
5
|
+
/**
|
|
6
|
+
* Slide automatically to next slides
|
|
7
|
+
*/
|
|
8
|
+
autoplay?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Time in ms before sliding to next slide
|
|
11
|
+
*/
|
|
12
|
+
autoplayDelay?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Carousel items
|
|
15
|
+
*/
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* If true, Carousel will scroll to the beginning/end when its respective endpoint is reached
|
|
19
|
+
*/
|
|
20
|
+
rewind: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Hide dots from the navigation bar
|
|
23
|
+
*/
|
|
24
|
+
hasDots?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Hide arrows from the navigation bar
|
|
27
|
+
*/
|
|
28
|
+
hasArrows?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The number of slides to show in container
|
|
31
|
+
*/
|
|
32
|
+
slidesToShow?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The number of slides to scroll when arrow navigation
|
|
35
|
+
* is used.
|
|
36
|
+
*/
|
|
37
|
+
slidesToScroll?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Callback triggered when Carousel finished scrolling to a slide
|
|
40
|
+
*/
|
|
41
|
+
onSlide?: (currentSlide: number) => void;
|
|
42
|
+
/**
|
|
43
|
+
* data-testid passed to parts of the Carousel
|
|
44
|
+
*/
|
|
45
|
+
testIds?: {
|
|
46
|
+
arrows?: string;
|
|
47
|
+
carousel?: string;
|
|
48
|
+
dots?: string;
|
|
49
|
+
footer?: string;
|
|
50
|
+
header?: string;
|
|
51
|
+
navigation?: string;
|
|
52
|
+
next?: string;
|
|
53
|
+
prev?: string;
|
|
54
|
+
root?: string;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare const Carousel: {
|
|
58
|
+
({ autoplay, autoplayDelay, className, children, hasArrows, hasDots, onSlide, rewind, slidesToScroll, slidesToShow, testIds, }: Props): JSX.Element;
|
|
59
|
+
defaultProps: {
|
|
60
|
+
hasArrows: boolean;
|
|
61
|
+
hasDots: boolean;
|
|
62
|
+
rewind: boolean;
|
|
63
|
+
autoplay: boolean;
|
|
64
|
+
autoplayDelay: number;
|
|
65
|
+
slidesToScroll: number;
|
|
66
|
+
slidesToShow: number;
|
|
67
|
+
};
|
|
68
|
+
displayName: string;
|
|
69
|
+
};
|
|
70
|
+
export default Carousel;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import 'glider-js/glider.css';
|
|
5
|
+
import styles from './styles';
|
|
6
|
+
import Container from '../Container';
|
|
7
|
+
import CarouselGradient from '../CarouselGradient';
|
|
8
|
+
import useCarousel from './hooks/useCarousel';
|
|
9
|
+
import CarouselNavigation from '../CarouselNavigation';
|
|
10
|
+
const useStyles = makeStyles(styles, { name: 'Carousel' });
|
|
11
|
+
const testIdsDefault = {};
|
|
12
|
+
export const Carousel = ({ autoplay = false, autoplayDelay = 3000, className, children, hasArrows = false, hasDots = false, onSlide, rewind = false, slidesToScroll = 1, slidesToShow = 1, testIds = testIdsDefault, }) => {
|
|
13
|
+
const { isLastPage, getContainerProps, getCarouselProps, getDotsProps, getNextProps, getPrevProps, } = useCarousel({
|
|
14
|
+
autoplay,
|
|
15
|
+
autoplayDelay,
|
|
16
|
+
onSlide,
|
|
17
|
+
rewind,
|
|
18
|
+
slidesToScroll,
|
|
19
|
+
slidesToShow,
|
|
20
|
+
slidesCount: React.Children.count(children),
|
|
21
|
+
hasDots,
|
|
22
|
+
});
|
|
23
|
+
const classes = useStyles();
|
|
24
|
+
return (React.createElement(Container, Object.assign({ className: cx(classes.root, className), "data-testid": testIds.root }, getContainerProps()),
|
|
25
|
+
React.createElement(Container, { className: classes.container },
|
|
26
|
+
React.createElement(Container, Object.assign({}, getCarouselProps(), { "data-testid": testIds.carousel }), children),
|
|
27
|
+
!Number.isInteger(slidesToShow) && (React.createElement(CarouselGradient, { slidesToShow: slidesToShow, isLastPage: isLastPage }))),
|
|
28
|
+
React.createElement(CarouselNavigation, { hasArrows: hasArrows, hasDots: hasDots, getDotsProps: getDotsProps, getPrevProps: getPrevProps, getNextProps: getNextProps, testIds: testIds })));
|
|
29
|
+
};
|
|
30
|
+
Carousel.defaultProps = {
|
|
31
|
+
hasArrows: false,
|
|
32
|
+
hasDots: false,
|
|
33
|
+
rewind: false,
|
|
34
|
+
autoplay: false,
|
|
35
|
+
autoplayDelay: 3000,
|
|
36
|
+
slidesToScroll: 1,
|
|
37
|
+
slidesToShow: 1,
|
|
38
|
+
};
|
|
39
|
+
Carousel.displayName = 'Carousel';
|
|
40
|
+
export default Carousel;
|
|
41
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../../src/Carousel/Carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,sBAAsB,CAAA;AAG7B,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,WAAW,MAAM,qBAAqB,CAAA;AAC7C,OAAO,kBAAkB,MAAM,uBAAuB,CAAA;AAEtD,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AAwDjE,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,IAAI,EACpB,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,OAAO,EACP,MAAM,GAAG,KAAK,EACd,cAAc,GAAG,CAAC,EAClB,YAAY,GAAG,CAAC,EAChB,OAAO,GAAG,cAAc,GAClB,EAAE,EAAE;IACV,MAAM,EACJ,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,GAAG,WAAW,CAAC;QACd,QAAQ;QACR,aAAa;QACb,OAAO;QACP,MAAM;QACN,cAAc;QACd,YAAY;QACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3C,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,OAAO,CACL,oBAAC,SAAS,kBACR,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,iBACzB,OAAO,CAAC,IAAI,IACrB,iBAAiB,EAAE;QAEvB,oBAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS;YACrC,oBAAC,SAAS,oBAAK,gBAAgB,EAAE,mBAAe,OAAO,CAAC,QAAQ,KAC7D,QAAQ,CACC;YACX,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAClC,oBAAC,gBAAgB,IACf,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACtB,CACH,CACS;QAEZ,oBAAC,kBAAkB,IACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GAChB,CACQ,CACb,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,YAAY,GAAG;IACtB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;CAChB,CAAA;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './useAutoplay';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Carousel/hooks/useAutoplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare type Props = {
|
|
2
|
+
wrapperRef: React.RefObject<HTMLDivElement>;
|
|
3
|
+
slideNext: () => void;
|
|
4
|
+
autoplay: boolean;
|
|
5
|
+
autoplayDelay: number;
|
|
6
|
+
rewind: boolean;
|
|
7
|
+
isLastPage: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const useAutoplay: ({ wrapperRef, slideNext, autoplay, autoplayDelay, rewind, isLastPage, }: Props) => void;
|
|
10
|
+
export default useAutoplay;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import useInterval from '../../../utils/useInterval';
|
|
2
|
+
import useOnScreen from '../../../utils/useOnScreen';
|
|
3
|
+
import useMouseEnter from '../../../utils/useMouseEnter';
|
|
4
|
+
const useAutoplay = ({ wrapperRef, slideNext, autoplay, autoplayDelay, rewind, isLastPage, }) => {
|
|
5
|
+
const isOnScreen = useOnScreen({ ref: wrapperRef });
|
|
6
|
+
const isMouseOver = useMouseEnter(wrapperRef);
|
|
7
|
+
useInterval({
|
|
8
|
+
callback: slideNext,
|
|
9
|
+
delay: autoplayDelay,
|
|
10
|
+
isPaused: !autoplay || (!rewind && isLastPage) || !isOnScreen || isMouseOver,
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
export default useAutoplay;
|
|
14
|
+
//# sourceMappingURL=useAutoplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoplay.js","sourceRoot":"","sources":["../../../../src/Carousel/hooks/useAutoplay/useAutoplay.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,aAAa,MAAM,8BAA8B,CAAA;AAWxD,MAAM,WAAW,GAAG,CAAC,EACnB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,UAAU,GACJ,EAAE,EAAE;IACV,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAE7C,WAAW,CAAC;QACV,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,aAAa;QACpB,QAAQ,EACN,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW;KACrE,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './useCarousel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Carousel/hooks/useCarousel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
declare type Props = {
|
|
2
|
+
autoplay: boolean;
|
|
3
|
+
autoplayDelay: number;
|
|
4
|
+
/**
|
|
5
|
+
* Callback triggered when Carousel finished scrolling to a slide
|
|
6
|
+
*/
|
|
7
|
+
onSlide?: (currentSlide: number) => void;
|
|
8
|
+
/**
|
|
9
|
+
* If true, Carousel will scroll to the beginning/end when its respective endpoint is reached
|
|
10
|
+
*/
|
|
11
|
+
rewind: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The number of slides to scroll when arrow navigation
|
|
14
|
+
* is used.
|
|
15
|
+
*/
|
|
16
|
+
slidesToScroll: number;
|
|
17
|
+
/**
|
|
18
|
+
* The number of slides to show in container
|
|
19
|
+
*/
|
|
20
|
+
slidesToShow: number;
|
|
21
|
+
slidesCount: number;
|
|
22
|
+
hasDots: boolean;
|
|
23
|
+
};
|
|
24
|
+
declare const useCarousel: ({ autoplay, autoplayDelay, onSlide, rewind, slidesToScroll, slidesToShow, slidesCount, hasDots, }: Props) => {
|
|
25
|
+
isLastPage: boolean;
|
|
26
|
+
getPrevProps: () => {
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
onClick: () => void;
|
|
29
|
+
};
|
|
30
|
+
getNextProps: () => {
|
|
31
|
+
disabled: boolean;
|
|
32
|
+
onClick: () => void;
|
|
33
|
+
};
|
|
34
|
+
getDotsProps: () => {
|
|
35
|
+
ref: import("react").RefObject<HTMLDivElement>;
|
|
36
|
+
};
|
|
37
|
+
getContainerProps: () => {
|
|
38
|
+
ref: import("react").RefObject<HTMLDivElement>;
|
|
39
|
+
};
|
|
40
|
+
getCarouselProps: () => {
|
|
41
|
+
ref: import("react").RefObject<HTMLDivElement>;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export default useCarousel;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { useRef, useCallback, useState, useEffect } from 'react';
|
|
2
|
+
import Glider from 'glider-js';
|
|
3
|
+
import isOnLastPage from '../../utils/isOnLastPage';
|
|
4
|
+
import useAutoplay from '../useAutoplay';
|
|
5
|
+
const useCarousel = ({ autoplay, autoplayDelay, onSlide, rewind, slidesToScroll, slidesToShow, slidesCount, hasDots, }) => {
|
|
6
|
+
const dotsRef = useRef(null);
|
|
7
|
+
const elementRef = useRef(null);
|
|
8
|
+
const wrapperRef = useRef(null);
|
|
9
|
+
const [isLastPage, setLastPage] = useState(false);
|
|
10
|
+
const [isFirstPage, setFirstPage] = useState(!rewind);
|
|
11
|
+
const gliderRef = useRef();
|
|
12
|
+
const handleOnAnimated = useCallback(() => {
|
|
13
|
+
var _a;
|
|
14
|
+
const currentSlide = ((_a = gliderRef.current) === null || _a === void 0 ? void 0 : _a.slide) || 0;
|
|
15
|
+
setLastPage(isOnLastPage({
|
|
16
|
+
currentSlide,
|
|
17
|
+
slidesCount,
|
|
18
|
+
slidesToShow,
|
|
19
|
+
}));
|
|
20
|
+
setFirstPage(currentSlide === 0);
|
|
21
|
+
onSlide === null || onSlide === void 0 ? void 0 : onSlide(currentSlide);
|
|
22
|
+
}, [slidesCount, slidesToShow, onSlide]);
|
|
23
|
+
const initializeGlider = useCallback(() => {
|
|
24
|
+
const element = elementRef.current;
|
|
25
|
+
if (element &&
|
|
26
|
+
!gliderRef.current &&
|
|
27
|
+
(!hasDots || (hasDots && dotsRef.current))) {
|
|
28
|
+
gliderRef.current = new Glider(element, {
|
|
29
|
+
slidesToShow,
|
|
30
|
+
rewind,
|
|
31
|
+
slidesToScroll,
|
|
32
|
+
dots: dotsRef.current,
|
|
33
|
+
});
|
|
34
|
+
element.addEventListener('glider-animated', handleOnAnimated);
|
|
35
|
+
}
|
|
36
|
+
}, [slidesToShow, rewind, slidesToScroll, handleOnAnimated, hasDots]);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
initializeGlider();
|
|
39
|
+
}, [initializeGlider]);
|
|
40
|
+
const slideNext = useCallback(() => {
|
|
41
|
+
const glider = gliderRef.current;
|
|
42
|
+
const currentSlide = (glider === null || glider === void 0 ? void 0 : glider.slide) || 0;
|
|
43
|
+
const item = isLastPage ? 0 : currentSlide + slidesToScroll;
|
|
44
|
+
glider === null || glider === void 0 ? void 0 : glider.scrollItem(item, false);
|
|
45
|
+
}, [isLastPage, slidesToScroll]);
|
|
46
|
+
const slidePrev = useCallback(() => {
|
|
47
|
+
const glider = gliderRef.current;
|
|
48
|
+
const currentSlide = (glider === null || glider === void 0 ? void 0 : glider.slide) || 0;
|
|
49
|
+
const lastPage = slidesCount - slidesToShow;
|
|
50
|
+
const prevSlide = currentSlide - slidesToScroll;
|
|
51
|
+
const item = currentSlide === 0 ? lastPage : prevSlide;
|
|
52
|
+
glider === null || glider === void 0 ? void 0 : glider.scrollItem(item, false);
|
|
53
|
+
}, [slidesCount, slidesToShow, slidesToScroll]);
|
|
54
|
+
useAutoplay({
|
|
55
|
+
slideNext,
|
|
56
|
+
rewind,
|
|
57
|
+
isLastPage,
|
|
58
|
+
autoplay,
|
|
59
|
+
autoplayDelay,
|
|
60
|
+
wrapperRef,
|
|
61
|
+
});
|
|
62
|
+
const getPrevProps = useCallback(() => ({
|
|
63
|
+
disabled: rewind ? false : isFirstPage,
|
|
64
|
+
onClick: slidePrev,
|
|
65
|
+
}), [rewind, slidePrev, isFirstPage]);
|
|
66
|
+
const getNextProps = useCallback(() => ({
|
|
67
|
+
disabled: rewind ? false : isLastPage,
|
|
68
|
+
onClick: slideNext,
|
|
69
|
+
}), [isLastPage, rewind, slideNext]);
|
|
70
|
+
const getDotsProps = useCallback(() => ({
|
|
71
|
+
ref: dotsRef,
|
|
72
|
+
}), []);
|
|
73
|
+
const getCarouselProps = useCallback(() => ({
|
|
74
|
+
ref: elementRef,
|
|
75
|
+
}), []);
|
|
76
|
+
const getContainerProps = useCallback(() => ({
|
|
77
|
+
ref: wrapperRef,
|
|
78
|
+
}), []);
|
|
79
|
+
return {
|
|
80
|
+
isLastPage,
|
|
81
|
+
getPrevProps,
|
|
82
|
+
getNextProps,
|
|
83
|
+
getDotsProps,
|
|
84
|
+
getContainerProps,
|
|
85
|
+
getCarouselProps,
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export default useCarousel;
|
|
89
|
+
//# sourceMappingURL=useCarousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCarousel.js","sourceRoot":"","sources":["../../../../src/Carousel/hooks/useCarousel/useCarousel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,WAAW,MAAM,gBAAgB,CAAA;AA0BxC,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,EACN,cAAc,EACd,YAAY,EACZ,WAAW,EACX,OAAO,GACD,EAAE,EAAE;IACV,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC/C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,SAAS,GAAG,MAAM,EAA0B,CAAA;IAElD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;;QACxC,MAAM,YAAY,GAAG,CAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,KAAK,KAAI,CAAC,CAAA;QAElD,WAAW,CACT,YAAY,CAAC;YACX,YAAY;YACZ,WAAW;YACX,YAAY;SACb,CAAC,CACH,CAAA;QAED,YAAY,CAAC,YAAY,KAAK,CAAC,CAAC,CAAA;QAChC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,YAAY,CAAC,CAAA;IACzB,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IAExC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAElC,IACE,OAAO;YACP,CAAC,SAAS,CAAC,OAAO;YAClB,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAC1C;YACA,SAAS,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE;gBACtC,YAAY;gBACZ,MAAM;gBACN,cAAc;gBACd,IAAI,EAAE,OAAO,CAAC,OAAO;aACtB,CAAC,CAAA;YAEF,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;SAC9D;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,EAAE,CAAA;IACpB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;QAChC,MAAM,YAAY,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,KAAI,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,cAAc,CAAA;QAE3D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;QAChC,MAAM,YAAY,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,KAAI,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAA;QAC3C,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;QAC/C,MAAM,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;QAEtD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;IAE/C,WAAW,CAAC;QACV,SAAS;QACT,MAAM;QACN,UAAU;QACV,QAAQ;QACR,aAAa;QACb,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;QACtC,OAAO,EAAE,SAAS;KACnB,CAAC,EACF,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CACjC,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;QACrC,OAAO,EAAE,SAAS;KACnB,CAAC,EACF,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAChC,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,OAAO;KACb,CAAC,EACF,EAAE,CACH,CAAA;IAED,MAAM,gBAAgB,GAAG,WAAW,CAClC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,UAAU;KAChB,CAAC,EACF,EAAE,CACH,CAAA;IAED,MAAM,iBAAiB,GAAG,WAAW,CACnC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,UAAU;KAChB,CAAC,EACF,EAAE,CACH,CAAA;IAED,OAAO;QACL,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,iBAAiB;QACjB,gBAAgB;KACjB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Carousel/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
+
export default () => createStyles({
|
|
3
|
+
root: {
|
|
4
|
+
'& .glider-slide': {
|
|
5
|
+
minWidth: '100px',
|
|
6
|
+
},
|
|
7
|
+
},
|
|
8
|
+
// important for gradient component to be on top of carousel
|
|
9
|
+
container: { position: 'relative' },
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Carousel/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,4DAA4D;IAC5D,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;CACpC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './isOnLastPage';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Carousel/utils/isOnLastPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const isOnLastPage = ({ currentSlide, slidesCount, slidesToShow }) => {
|
|
2
|
+
if (Number.isInteger(slidesToShow) || slidesToShow % 1 <= 0.5) {
|
|
3
|
+
return currentSlide >= slidesCount - slidesToShow;
|
|
4
|
+
}
|
|
5
|
+
// when slidesToShow is not a whole number and is bigger than x.5
|
|
6
|
+
// glider.js will not show the whole last slide, only partial
|
|
7
|
+
return currentSlide >= slidesCount - slidesToShow - 1;
|
|
8
|
+
};
|
|
9
|
+
export default isOnLastPage;
|
|
10
|
+
//# sourceMappingURL=isOnLastPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isOnLastPage.js","sourceRoot":"","sources":["../../../../src/Carousel/utils/isOnLastPage/isOnLastPage.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAS,EAAE,EAAE;IAC1E,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE;QAC7D,OAAO,YAAY,IAAI,WAAW,GAAG,YAAY,CAAA;KAClD;IAED,iEAAiE;IACjE,6DAA6D;IAC7D,OAAO,YAAY,IAAI,WAAW,GAAG,YAAY,GAAG,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
4
|
+
import gradientWidth from './utils/gradientWidth';
|
|
5
|
+
import styles from './styles';
|
|
6
|
+
const useStyles = makeStyles(styles, { name: 'CarouselGradient' });
|
|
7
|
+
const CarouselGradient = ({ isLastPage, slidesToShow }) => {
|
|
8
|
+
const classes = useStyles();
|
|
9
|
+
const showNextGradient = !isLastPage;
|
|
10
|
+
const showPrevGradient = isLastPage;
|
|
11
|
+
const gradientStyle = useMemo(() => {
|
|
12
|
+
return {
|
|
13
|
+
width: gradientWidth(slidesToShow),
|
|
14
|
+
};
|
|
15
|
+
}, [slidesToShow]);
|
|
16
|
+
return (React.createElement("div", { style: gradientStyle, className: cx({
|
|
17
|
+
[classes.gradient]: showNextGradient || showPrevGradient,
|
|
18
|
+
[classes.nextGradient]: showNextGradient,
|
|
19
|
+
[classes.prevGradient]: showPrevGradient,
|
|
20
|
+
}) }));
|
|
21
|
+
};
|
|
22
|
+
export default React.memo(CarouselGradient);
|
|
23
|
+
//# sourceMappingURL=CarouselGradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CarouselGradient.js","sourceRoot":"","sources":["../../src/CarouselGradient/CarouselGradient.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAE5D,OAAO,aAAa,MAAM,uBAAuB,CAAA;AACjD,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAA;AAOzE,MAAM,gBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAS,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAA;IACpC,MAAM,gBAAgB,GAAG,UAAU,CAAA;IAEnC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO;YACL,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC;SACnC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,CACL,6BACE,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,EAAE,CAAC;YACZ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,gBAAgB,IAAI,gBAAgB;YACxD,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB;YACxC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB;SACzC,CAAC,GACF,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './CarouselGradient';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/CarouselGradient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
+
export default () => createStyles({
|
|
3
|
+
gradient: {
|
|
4
|
+
position: 'absolute',
|
|
5
|
+
height: '100%',
|
|
6
|
+
top: 0,
|
|
7
|
+
},
|
|
8
|
+
nextGradient: {
|
|
9
|
+
right: 0,
|
|
10
|
+
background: 'linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, white 95%)',
|
|
11
|
+
},
|
|
12
|
+
prevGradient: {
|
|
13
|
+
left: 0,
|
|
14
|
+
background: 'linear-gradient(90deg, white 5%, rgba(255, 255, 255, 0.2) 100%)',
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/CarouselGradient/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,CAAC;KACP;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,CAAC;QACR,UAAU,EACR,gEAAgE;KACnE;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC;QACP,UAAU,EACR,iEAAiE;KACpE;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the width of the gradient that fades out the edges of the slider.
|
|
3
|
+
* @param slidesToShow The number of slides to show in the slider.
|
|
4
|
+
* @returns The width of the gradient in %
|
|
5
|
+
*/
|
|
6
|
+
declare const gradientWidth: (slidesToShow: number) => string;
|
|
7
|
+
export default gradientWidth;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the width of the gradient that fades out the edges of the slider.
|
|
3
|
+
* @param slidesToShow The number of slides to show in the slider.
|
|
4
|
+
* @returns The width of the gradient in %
|
|
5
|
+
*/
|
|
6
|
+
const gradientWidth = (slidesToShow) => {
|
|
7
|
+
const slideWidth = 100 / slidesToShow;
|
|
8
|
+
const partialSlideWidth = slideWidth * (slidesToShow % 1);
|
|
9
|
+
return `${Math.round(partialSlideWidth)}%`;
|
|
10
|
+
};
|
|
11
|
+
export default gradientWidth;
|
|
12
|
+
//# sourceMappingURL=gradientWidth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradientWidth.js","sourceRoot":"","sources":["../../../../src/CarouselGradient/utils/gradientWidth/gradientWidth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,GAAG,GAAG,YAAY,CAAA;IACrC,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;IAEzD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAA;AAC5C,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './gradientWidth';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/CarouselGradient/utils/gradientWidth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type Props = {
|
|
3
|
+
hasArrows: boolean;
|
|
4
|
+
hasDots: boolean;
|
|
5
|
+
getDotsProps: () => {};
|
|
6
|
+
getNextProps: () => {};
|
|
7
|
+
getPrevProps: () => {};
|
|
8
|
+
testIds: {
|
|
9
|
+
navigation?: string;
|
|
10
|
+
arrows?: string;
|
|
11
|
+
prev?: string;
|
|
12
|
+
next?: string;
|
|
13
|
+
dots?: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
declare const _default: React.MemoExoticComponent<({ getDotsProps, getNextProps, getPrevProps, hasArrows, hasDots, testIds, }: Props) => JSX.Element>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
|
+
import styles from './styles';
|
|
4
|
+
import ButtonCircular from '../ButtonCircular';
|
|
5
|
+
import Container from '../Container';
|
|
6
|
+
import ChevronRight24 from '../Icon/ChevronRight24';
|
|
7
|
+
const getJustifyContent = (hasArrows, hasDots) => {
|
|
8
|
+
if (hasArrows && hasDots) {
|
|
9
|
+
return 'space-between';
|
|
10
|
+
}
|
|
11
|
+
if (hasArrows) {
|
|
12
|
+
return 'flex-end';
|
|
13
|
+
}
|
|
14
|
+
if (hasDots) {
|
|
15
|
+
return 'center';
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const useStyles = makeStyles(styles, { name: 'CarouselNavigation' });
|
|
19
|
+
const CarouselNavigation = ({ getDotsProps, getNextProps, getPrevProps, hasArrows, hasDots, testIds, }) => {
|
|
20
|
+
const classes = useStyles();
|
|
21
|
+
return (React.createElement(Container, { className: classes.navigation, flex: true, justifyContent: getJustifyContent(hasArrows, hasDots), "data-testid": testIds.navigation },
|
|
22
|
+
hasDots && (React.createElement("div", Object.assign({}, getDotsProps(), { "data-testid": testIds.dots, className: classes.dots }))),
|
|
23
|
+
hasArrows && (React.createElement(Container, { "data-testid": testIds.arrows },
|
|
24
|
+
React.createElement(ButtonCircular, Object.assign({ className: classes.arrowPrev, "data-testid": testIds.prev, icon: React.createElement(ChevronRight24, null), variant: 'flat' }, getPrevProps())),
|
|
25
|
+
React.createElement(ButtonCircular, Object.assign({ "data-testid": testIds.next, icon: React.createElement(ChevronRight24, null), variant: 'flat' }, getNextProps()))))));
|
|
26
|
+
};
|
|
27
|
+
export default memo(CarouselNavigation);
|
|
28
|
+
//# sourceMappingURL=CarouselNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CarouselNavigation.js","sourceRoot":"","sources":["../../src/CarouselNavigation/CarouselNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAE5D,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,cAAc,MAAM,wBAAwB,CAAA;AAEnD,MAAM,iBAAiB,GAAG,CAAC,SAAkB,EAAE,OAAgB,EAAE,EAAE;IACjE,IAAI,SAAS,IAAI,OAAO,EAAE;QACxB,OAAO,eAAe,CAAA;KACvB;IAED,IAAI,SAAS,EAAE;QACb,OAAO,UAAU,CAAA;KAClB;IAED,IAAI,OAAO,EAAE;QACX,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAA;AAiB3E,MAAM,kBAAkB,GAAG,CAAC,EAC1B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,GACD,EAAE,EAAE;IACV,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,OAAO,CACL,oBAAC,SAAS,IACR,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,IAAI,QACJ,cAAc,EAAE,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,iBACxC,OAAO,CAAC,UAAU;QAE9B,OAAO,IAAI,CACV,6CACM,YAAY,EAAE,mBACL,OAAO,CAAC,IAAI,EACzB,SAAS,EAAE,OAAO,CAAC,IAAI,IACvB,CACH;QACA,SAAS,IAAI,CACZ,oBAAC,SAAS,mBAAc,OAAO,CAAC,MAAM;YACpC,oBAAC,cAAc,kBACb,SAAS,EAAE,OAAO,CAAC,SAAS,iBACf,OAAO,CAAC,IAAI,EACzB,IAAI,EAAE,oBAAC,cAAc,OAAG,EACxB,OAAO,EAAC,MAAM,IACV,YAAY,EAAE,EAClB;YACF,oBAAC,cAAc,iCACA,OAAO,CAAC,IAAI,EACzB,IAAI,EAAE,oBAAC,cAAc,OAAG,EACxB,OAAO,EAAC,MAAM,IACV,YAAY,EAAE,EAClB,CACQ,CACb,CACS,CACb,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './CarouselNavigation';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/CarouselNavigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { rem } from '@toptal/picasso-shared';
|
|
2
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
3
|
+
export default ({ palette, transitions }) => createStyles({
|
|
4
|
+
arrowPrev: {
|
|
5
|
+
transform: 'rotate(180deg)',
|
|
6
|
+
},
|
|
7
|
+
dots: {
|
|
8
|
+
margin: 0,
|
|
9
|
+
'& .glider-dot': {
|
|
10
|
+
width: 10,
|
|
11
|
+
height: 10,
|
|
12
|
+
backgroundColor: palette.blue.main,
|
|
13
|
+
opacity: 0.2,
|
|
14
|
+
'&.active': {
|
|
15
|
+
opacity: 1,
|
|
16
|
+
},
|
|
17
|
+
'&:hover:not(.active)': {
|
|
18
|
+
transition: `box-shadow, opacity ${transitions.duration.standard}ms ${transitions.easing.easeOut}`,
|
|
19
|
+
opacity: 1,
|
|
20
|
+
boxShadow: '0 0 0 2px rgba(32, 78, 207, 0.2)',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
navigation: {
|
|
25
|
+
padding: `${rem('14px')} 1.5rem 0`,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/CarouselNavigation/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAS,EAAE,EAAE,CACjD,YAAY,CAAC;IACX,SAAS,EAAE;QACT,SAAS,EAAE,gBAAgB;KAC5B;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC;QACT,eAAe,EAAE;YACf,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAClC,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE;gBACV,OAAO,EAAE,CAAC;aACX;YACD,sBAAsB,EAAE;gBACtB,UAAU,EAAE,uBAAuB,WAAW,CAAC,QAAQ,CAAC,QAAQ,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;gBAClG,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,kCAAkC;aAC9C;SACF;KACF;IACD,UAAU,EAAE;QACV,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW;KACnC;CACF,CAAC,CAAA"}
|
package/index.d.ts
CHANGED
|
@@ -169,4 +169,6 @@ export type { FieldRequirementsProps, FieldRequirement, } from './FieldRequireme
|
|
|
169
169
|
export type { Status as OutlinedInputStatus } from './OutlinedInput';
|
|
170
170
|
export { default as AvatarUpload } from './AvatarUpload';
|
|
171
171
|
export type { AvatarUploadProps, FileUpload as AvatarUploadFileUpload, FileError as AvatarUploadFileError, FileRejection as AvatarUploadFileRejection, DropEvent as AvatarUploadDropEvent, } from './AvatarUpload';
|
|
172
|
+
export { default as Carousel } from './Carousel';
|
|
173
|
+
export type { CarouselProps } from './Carousel';
|
|
172
174
|
export * from './Icon';
|
package/index.js
CHANGED
|
@@ -79,6 +79,7 @@ export { default as RichText } from './RichText';
|
|
|
79
79
|
export { default as PasswordInput } from './PasswordInput';
|
|
80
80
|
export { default as FieldRequirements } from './FieldRequirements';
|
|
81
81
|
export { default as AvatarUpload } from './AvatarUpload';
|
|
82
|
+
export { default as Carousel } from './Carousel';
|
|
82
83
|
// hygen code generator inserts export statements above this comment.
|
|
83
84
|
export * from './Icon';
|
|
84
85
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toptal/picasso",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.6.0",
|
|
4
4
|
"description": "Toptal UI components library",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"date-fns-tz": "^1.3.6",
|
|
42
42
|
"debounce": "^1.2.1",
|
|
43
43
|
"detect-browser": "^5.3.0",
|
|
44
|
+
"glider-js": "^1.7.8",
|
|
44
45
|
"hast-to-hyperscript": "^9.0.1",
|
|
45
46
|
"hast-util-from-dom": "^3.0.0",
|
|
46
47
|
"hast-util-sanitize": "^3.0.2",
|
|
@@ -62,6 +63,7 @@
|
|
|
62
63
|
"@toptal/picasso-provider": "2.1.0",
|
|
63
64
|
"@types/classnames": "^2.3.1",
|
|
64
65
|
"@types/d3": "^7.4.0",
|
|
66
|
+
"@types/glider-js": "^1.7.8",
|
|
65
67
|
"@types/quill": "^1.3.10",
|
|
66
68
|
"@types/react-input-mask": "^3.0.0",
|
|
67
69
|
"@types/react-router-dom": "^5.1.3",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './use-interval';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/useInterval/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
+
const useInterval = ({ callback, delay, isPaused = false, }) => {
|
|
4
|
+
const intervalId = useRef();
|
|
5
|
+
const pauseInterval = useCallback(() => {
|
|
6
|
+
if (intervalId.current) {
|
|
7
|
+
clearInterval(intervalId.current);
|
|
8
|
+
intervalId.current = undefined;
|
|
9
|
+
}
|
|
10
|
+
}, []);
|
|
11
|
+
const resumeInterval = useCallback(() => {
|
|
12
|
+
if (!intervalId.current) {
|
|
13
|
+
intervalId.current = setInterval(callback, delay);
|
|
14
|
+
}
|
|
15
|
+
}, [callback, delay]);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (isPaused) {
|
|
18
|
+
pauseInterval();
|
|
19
|
+
}
|
|
20
|
+
if (!isPaused) {
|
|
21
|
+
resumeInterval();
|
|
22
|
+
}
|
|
23
|
+
return () => {
|
|
24
|
+
pauseInterval();
|
|
25
|
+
};
|
|
26
|
+
}, [isPaused, pauseInterval, resumeInterval]);
|
|
27
|
+
};
|
|
28
|
+
export default useInterval;
|
|
29
|
+
//# sourceMappingURL=use-interval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interval.js","sourceRoot":"","sources":["../../../src/utils/useInterval/use-interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAQtD,6DAA6D;AAE7D,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,QAAQ,GAAG,KAAK,GACG,EAAE,EAAE;IACvB,MAAM,UAAU,GAAG,MAAM,EAAkB,CAAA;IAE3C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,aAAa,CAAC,UAAU,CAAC,OAAQ,CAAC,CAAA;YAClC,UAAU,CAAC,OAAO,GAAG,SAAS,CAAA;SAC/B;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACvB,UAAU,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;SAClD;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE;YACZ,aAAa,EAAE,CAAA;SAChB;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,cAAc,EAAE,CAAA;SACjB;QAED,OAAO,GAAG,EAAE;YACV,aAAa,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './use-mouse-enter';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/useMouseEnter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
const useMouseEnter = (ref) => {
|
|
3
|
+
const [isMouseOver, setIsMouseOver] = useState(false);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const handleMouseHover = (event) => {
|
|
6
|
+
setIsMouseOver(event.type === 'mouseenter');
|
|
7
|
+
};
|
|
8
|
+
const node = ref.current;
|
|
9
|
+
if (node) {
|
|
10
|
+
node.addEventListener('mouseenter', handleMouseHover);
|
|
11
|
+
node.addEventListener('mouseleave', handleMouseHover);
|
|
12
|
+
}
|
|
13
|
+
return () => {
|
|
14
|
+
if (node) {
|
|
15
|
+
node.removeEventListener('mouseenter', handleMouseHover);
|
|
16
|
+
node.removeEventListener('mouseleave', handleMouseHover);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}, [ref]);
|
|
20
|
+
return isMouseOver;
|
|
21
|
+
};
|
|
22
|
+
export default useMouseEnter;
|
|
23
|
+
//# sourceMappingURL=use-mouse-enter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mouse-enter.js","sourceRoot":"","sources":["../../../src/utils/useMouseEnter/use-mouse-enter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAA;AAEtD,MAAM,aAAa,GAAG,CAAwB,GAAiB,EAAW,EAAE;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC7C,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;QAC7C,CAAC,CAAA;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAA;QAExB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;YACrD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;SACtD;QAED,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;gBACxD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;aACzD;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './use-on-screen';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/useOnScreen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface UseOnScreenProps {
|
|
2
|
+
ref: React.RefObject<HTMLElement>;
|
|
3
|
+
root?: React.RefObject<HTMLElement>;
|
|
4
|
+
rootMargin?: string;
|
|
5
|
+
threshold?: number | number[];
|
|
6
|
+
}
|
|
7
|
+
declare const useOnScreen: ({ ref, root, rootMargin, threshold, }: UseOnScreenProps) => boolean;
|
|
8
|
+
export default useOnScreen;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useEffect, useState, useMemo } from 'react';
|
|
2
|
+
const useOnScreen = ({ ref, root, rootMargin, threshold, }) => {
|
|
3
|
+
const [isIntersecting, setIntersecting] = useState(false);
|
|
4
|
+
const observer = useMemo(() => new IntersectionObserver(([entry]) => {
|
|
5
|
+
setIntersecting(entry.isIntersecting);
|
|
6
|
+
}, {
|
|
7
|
+
root: root === null || root === void 0 ? void 0 : root.current,
|
|
8
|
+
rootMargin,
|
|
9
|
+
threshold,
|
|
10
|
+
}), [root, rootMargin, threshold]);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const element = ref.current;
|
|
13
|
+
if (!element) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
observer.observe(element);
|
|
17
|
+
return () => {
|
|
18
|
+
observer.unobserve(element);
|
|
19
|
+
};
|
|
20
|
+
}, [observer, ref]);
|
|
21
|
+
return isIntersecting;
|
|
22
|
+
};
|
|
23
|
+
export default useOnScreen;
|
|
24
|
+
//# sourceMappingURL=use-on-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-on-screen.js","sourceRoot":"","sources":["../../../src/utils/useOnScreen/use-on-screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AASpD,MAAM,WAAW,GAAG,CAAC,EACnB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,SAAS,GACQ,EAAE,EAAE;IACrB,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CACH,IAAI,oBAAoB,CACtB,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;QACV,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC,EACD;QACE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO;QACnB,UAAU;QACV,SAAS;KACV,CACF,EACH,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAC9B,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAE3B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAM;SACP;QAED,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEzB,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAEnB,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|