@mantine/carousel 5.10.1 → 6.0.0-alpha.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/cjs/Carousel.context.js.map +1 -1
- package/cjs/Carousel.js +7 -4
- package/cjs/Carousel.js.map +1 -1
- package/cjs/Carousel.styles.js +22 -25
- package/cjs/Carousel.styles.js.map +1 -1
- package/cjs/CarouselSlide/CarouselSlide.js +8 -2
- package/cjs/CarouselSlide/CarouselSlide.js.map +1 -1
- package/cjs/CarouselSlide/CarouselSlide.styles.js +6 -5
- package/cjs/CarouselSlide/CarouselSlide.styles.js.map +1 -1
- package/esm/Carousel.context.js.map +1 -1
- package/esm/Carousel.js +7 -4
- package/esm/Carousel.js.map +1 -1
- package/esm/Carousel.styles.js +23 -26
- package/esm/Carousel.styles.js.map +1 -1
- package/esm/CarouselSlide/CarouselSlide.js +8 -2
- package/esm/CarouselSlide/CarouselSlide.js.map +1 -1
- package/esm/CarouselSlide/CarouselSlide.styles.js +7 -6
- package/esm/CarouselSlide/CarouselSlide.styles.js.map +1 -1
- package/lib/Carousel.context.d.ts +1 -0
- package/lib/Carousel.context.d.ts.map +1 -1
- package/lib/Carousel.d.ts +4 -3
- package/lib/Carousel.d.ts.map +1 -1
- package/lib/Carousel.styles.d.ts +1 -1
- package/lib/Carousel.styles.d.ts.map +1 -1
- package/lib/CarouselSlide/CarouselSlide.d.ts +2 -2
- package/lib/CarouselSlide/CarouselSlide.d.ts.map +1 -1
- package/lib/CarouselSlide/CarouselSlide.styles.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { MantineNumberSize, Styles, ClassNames } from '@mantine/core';\nimport { createSafeContext } from '@mantine/utils';\nimport { CAROUSEL_ERRORS } from './Carousel.errors';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport type { CarouselStylesNames } from './Carousel';\n\ninterface CarouselContext {\n embla: Embla;\n slideSize: string | number;\n slideGap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n classNames: ClassNames<CarouselStylesNames>;\n styles: Styles<CarouselStylesNames>;\n unstyled: boolean;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContext>(\n CAROUSEL_ERRORS.context\n);\n"],"names":["createSafeContext","CAROUSEL_ERRORS"],"mappings":";;;;;;;AAEY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAGA,uBAAiB,CAACC,+BAAe,CAAC,OAAO;;;;;"}
|
|
1
|
+
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { MantineNumberSize, Styles, ClassNames } from '@mantine/core';\nimport { createSafeContext } from '@mantine/utils';\nimport { CAROUSEL_ERRORS } from './Carousel.errors';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport type { CarouselStylesNames } from './Carousel';\n\ninterface CarouselContext {\n embla: Embla;\n slideSize: string | number;\n slideGap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n classNames: ClassNames<CarouselStylesNames>;\n styles: Styles<CarouselStylesNames>;\n unstyled: boolean;\n variant: string;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContext>(\n CAROUSEL_ERRORS.context\n);\n"],"names":["createSafeContext","CAROUSEL_ERRORS"],"mappings":";;;;;;;AAEY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAGA,uBAAiB,CAACC,+BAAe,CAAC,OAAO;;;;;"}
|
package/cjs/Carousel.js
CHANGED
|
@@ -101,7 +101,8 @@ const _Carousel = React.forwardRef((props, ref) => {
|
|
|
101
101
|
breakpoints,
|
|
102
102
|
skipSnaps,
|
|
103
103
|
containScroll,
|
|
104
|
-
withKeyboardEvents
|
|
104
|
+
withKeyboardEvents,
|
|
105
|
+
variant
|
|
105
106
|
} = _a, others = __objRest(_a, [
|
|
106
107
|
"children",
|
|
107
108
|
"className",
|
|
@@ -137,9 +138,10 @@ const _Carousel = React.forwardRef((props, ref) => {
|
|
|
137
138
|
"breakpoints",
|
|
138
139
|
"skipSnaps",
|
|
139
140
|
"containScroll",
|
|
140
|
-
"withKeyboardEvents"
|
|
141
|
+
"withKeyboardEvents",
|
|
142
|
+
"variant"
|
|
141
143
|
]);
|
|
142
|
-
const { classes, cx, theme } = Carousel_styles['default']({ controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap }, { name: "Carousel", classNames, styles, unstyled });
|
|
144
|
+
const { classes, cx, theme } = Carousel_styles['default']({ controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap }, { name: "Carousel", classNames, styles, unstyled, variant });
|
|
143
145
|
const [emblaRefElement, embla] = useEmblaCarousel__default({
|
|
144
146
|
axis: orientation === "horizontal" ? "x" : "y",
|
|
145
147
|
direction: theme.dir,
|
|
@@ -223,7 +225,8 @@ const _Carousel = React.forwardRef((props, ref) => {
|
|
|
223
225
|
breakpoints,
|
|
224
226
|
classNames,
|
|
225
227
|
styles,
|
|
226
|
-
unstyled
|
|
228
|
+
unstyled,
|
|
229
|
+
variant
|
|
227
230
|
}
|
|
228
231
|
}, /* @__PURE__ */ React__default.createElement(core.Box, __spreadValues({
|
|
229
232
|
className: cx(classes.root, className),
|
package/cjs/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { forwardRef, useEffect, useCallback, useState, Children } from 'react';\nimport {\n useComponentDefaultProps,\n Box,\n DefaultProps,\n UnstyledButton,\n ChevronIcon,\n MantineNumberSize,\n Selectors,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType } from 'embla-carousel-react';\nimport { ForwardRefWithStaticComponents } from '@mantine/utils';\nimport { CarouselSlide, CarouselSlideStylesNames } from './CarouselSlide/CarouselSlide';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport useStyles, { CarouselStylesParams } from './Carousel.styles';\n\nexport type CarouselStylesNames = CarouselSlideStylesNames | Selectors<typeof useStyles>;\n\nexport interface CarouselProps\n extends DefaultProps<CarouselStylesNames, CarouselStylesParams>,\n React.ComponentPropsWithRef<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when user clicks next button */\n onNextSlide?(): void;\n\n /** Called when user clicks previous button */\n onPreviousSlide?(): void;\n\n /** Called with slide index when slide changes */\n onSlideChange?(index: number): void;\n\n /** Get embla API as ref */\n getEmblaApi?(embla: Embla): void;\n\n /** Next control aria-label */\n nextControlLabel?: string;\n\n /** Previous control aria-label */\n previousControlLabel?: string;\n\n /** Previous/next controls size in px */\n controlSize?: number;\n\n /** Key of theme.spacing or number to set space between next/previous control and carousel boundary */\n controlsOffset?: MantineNumberSize;\n\n /** Slide width, defaults to 100%, examples: 200px, 50% */\n slideSize?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides in px */\n slideGap?: MantineNumberSize;\n\n /** Control slideSize and slideGap at different viewport sizes */\n breakpoints?: CarouselBreakpoint[];\n\n /** Carousel orientation, horizontal by default */\n orientation?: CarouselOrientation;\n\n /** Slides container height, required for vertical orientation */\n height?: React.CSSProperties['height'];\n\n /** Determines how slides will be aligned relative to the container. Use number between 0-1 to align slides based on percentage, where 0.5 equals 50% */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that should be scrolled with next/previous buttons */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap should be treated as part of the slide size, true by default */\n includeGapInSize?: boolean;\n\n /** Determines whether carousel can be scrolled with mouse and touch interactions, true by default */\n draggable?: boolean;\n\n /** Determines whether momentum scrolling should be enabled, false by default */\n dragFree?: boolean;\n\n /** Enables infinite looping. Automatically falls back to false if slide content isn't enough to loop. */\n loop?: boolean;\n\n /** Adjusts scroll speed when triggered by any of the methods. Higher numbers enables faster scrolling. */\n speed?: number;\n\n /** Index of initial slide */\n initialSlide?: number;\n\n /** Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view. For example, 0.5 equals 50%. */\n inViewThreshold?: number;\n\n /** Determines whether next/previous controls should be displayed, true by default */\n withControls?: boolean;\n\n /** Determines whether indicators should be displayed, false by default */\n withIndicators?: boolean;\n\n /** An array of embla plugins */\n plugins?: EmblaPluginType[];\n\n /** Icon of next control */\n nextControlIcon?: React.ReactNode;\n\n /** Previous control icon */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it's dragged vigorously. Note that this option will be ignored if the dragFree option is set to true, false by default */\n skipSnaps?: boolean;\n\n /** Clear leading and trailing empty space that causes excessive scrolling. Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them. */\n containScroll?: 'trimSnaps' | 'keepSnaps' | '';\n\n /** Determines whether arrow key should switch slides, true by default */\n withKeyboardEvents?: boolean;\n}\n\nconst defaultProps: Partial<CarouselProps> = {\n controlSize: 26,\n controlsOffset: 'sm',\n slideSize: '100%',\n slideGap: 0,\n orientation: 'horizontal',\n align: 'center',\n slidesToScroll: 1,\n includeGapInSize: true,\n draggable: true,\n dragFree: false,\n loop: false,\n speed: 10,\n initialSlide: 0,\n inViewThreshold: 0,\n withControls: true,\n withIndicators: false,\n skipSnaps: false,\n containScroll: '',\n withKeyboardEvents: true,\n};\n\nexport const _Carousel = forwardRef<HTMLDivElement, CarouselProps>((props, ref) => {\n const {\n children,\n className,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlLabel,\n previousControlLabel,\n controlSize,\n controlsOffset,\n classNames,\n styles,\n unstyled,\n slideSize,\n slideGap,\n orientation,\n height,\n align,\n slidesToScroll,\n includeGapInSize,\n draggable,\n dragFree,\n loop,\n speed,\n initialSlide,\n inViewThreshold,\n withControls,\n withIndicators,\n plugins,\n nextControlIcon,\n previousControlIcon,\n breakpoints,\n skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = useComponentDefaultProps('Carousel', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap },\n { name: 'Carousel', classNames, styles, unstyled }\n );\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: theme.dir,\n startIndex: initialSlide,\n loop,\n align,\n slidesToScroll,\n draggable,\n dragFree,\n speed,\n inViewThreshold,\n skipSnaps,\n containScroll,\n },\n plugins\n );\n\n const [selected, setSelected] = useState(0);\n const [slidesCount, setSlidesCount] = useState(0);\n\n const handleScroll = useCallback((index: number) => embla && embla.scrollTo(index), [embla]);\n\n const handleSelect = useCallback(() => {\n if (!embla) return;\n const slide = embla.selectedScrollSnap();\n setSelected(slide);\n onSlideChange?.(slide);\n }, [embla, setSelected]);\n\n const handlePrevious = useCallback(() => {\n embla?.scrollPrev();\n onPreviousSlide?.();\n }, [embla]);\n\n const handleNext = useCallback(() => {\n embla?.scrollNext();\n onNextSlide?.();\n }, [embla]);\n\n const handleKeydown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (withKeyboardEvents) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleNext();\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n handlePrevious();\n }\n }\n },\n [embla]\n );\n\n useEffect(() => {\n if (embla) {\n getEmblaApi?.(embla);\n handleSelect();\n setSlidesCount(embla.scrollSnapList().length);\n embla.on('select', handleSelect);\n\n return () => {\n embla.off('select', handleSelect);\n };\n }\n\n return undefined;\n }, [embla, slidesToScroll]);\n\n useEffect(() => {\n if (embla) {\n embla.reInit();\n setSlidesCount(embla.scrollSnapList().length);\n setSelected((currentSelected) =>\n clamp(currentSelected, 0, Children.toArray(children).length - 1)\n );\n }\n }, [Children.toArray(children).length, slidesToScroll]);\n\n const canScrollPrev = embla?.canScrollPrev() || false;\n const canScrollNext = embla?.canScrollNext() || false;\n\n const indicators = Array(slidesCount)\n .fill(0)\n .map((_, index) => (\n <UnstyledButton\n key={index}\n data-active={index === selected || undefined}\n className={classes.indicator}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider\n value={{\n slideGap,\n slideSize,\n embla,\n orientation,\n includeGapInSize,\n breakpoints,\n classNames,\n styles,\n unstyled,\n }}\n >\n <Box\n className={cx(classes.root, className)}\n ref={ref}\n onKeyDownCapture={handleKeydown}\n {...others}\n >\n <div className={classes.viewport} ref={emblaRefElement}>\n <div className={classes.container}>{children}</div>\n </div>\n\n {withIndicators && <div className={classes.indicators}>{indicators}</div>}\n\n {withControls && (\n <div className={classes.controls}>\n <UnstyledButton\n onClick={handlePrevious}\n className={classes.control}\n aria-label={previousControlLabel}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n className={classes.control}\n aria-label={nextControlLabel}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n}) as any;\n\n_Carousel.Slide = CarouselSlide;\n_Carousel.displayName = '@mantine/carousel/Carousel';\n\nexport const Carousel: ForwardRefWithStaticComponents<\n CarouselProps,\n { Slide: typeof CarouselSlide }\n> = _Carousel;\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useEmblaCarousel","useState","useCallback","useEffect","clamp","Children","React","UnstyledButton","CarouselProvider","Box","ChevronIcon","getChevronRotation","CarouselSlide"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { forwardRef, useEffect, useCallback, useState, Children } from 'react';\nimport {\n useComponentDefaultProps,\n Box,\n DefaultProps,\n UnstyledButton,\n ChevronIcon,\n MantineNumberSize,\n Selectors,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType } from 'embla-carousel-react';\nimport { ForwardRefWithStaticComponents } from '@mantine/utils';\nimport { CarouselSlide, CarouselSlideStylesNames } from './CarouselSlide/CarouselSlide';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport useStyles, { CarouselStylesParams } from './Carousel.styles';\n\nexport type CarouselStylesNames = CarouselSlideStylesNames | Selectors<typeof useStyles>;\n\nexport interface CarouselProps\n extends DefaultProps<CarouselStylesNames, CarouselStylesParams>,\n React.ComponentPropsWithRef<'div'> {\n variant?: string;\n\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when user clicks next button */\n onNextSlide?(): void;\n\n /** Called when user clicks previous button */\n onPreviousSlide?(): void;\n\n /** Called with slide index when slide changes */\n onSlideChange?(index: number): void;\n\n /** Get embla API as ref */\n getEmblaApi?(embla: Embla): void;\n\n /** Next control aria-label */\n nextControlLabel?: string;\n\n /** Previous control aria-label */\n previousControlLabel?: string;\n\n /** Previous/next controls size */\n controlSize?: number;\n\n /** Key of theme.spacing or number to set space between next/previous control and carousel boundary */\n controlsOffset?: MantineNumberSize;\n\n /** Slide width, defaults to 100%, examples: 40rem 50% */\n slideSize?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: MantineNumberSize;\n\n /** Control slideSize and slideGap at different viewport sizes */\n breakpoints?: CarouselBreakpoint[];\n\n /** Carousel orientation, horizontal by default */\n orientation?: CarouselOrientation;\n\n /** Slides container height, required for vertical orientation */\n height?: React.CSSProperties['height'];\n\n /** Determines how slides will be aligned relative to the container. Use number between 0-1 to align slides based on percentage, where 0.5 equals 50% */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that should be scrolled with next/previous buttons */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap should be treated as part of the slide size, true by default */\n includeGapInSize?: boolean;\n\n /** Determines whether carousel can be scrolled with mouse and touch interactions, true by default */\n draggable?: boolean;\n\n /** Determines whether momentum scrolling should be enabled, false by default */\n dragFree?: boolean;\n\n /** Enables infinite looping. Automatically falls back to false if slide content isn't enough to loop. */\n loop?: boolean;\n\n /** Adjusts scroll speed when triggered by any of the methods. Higher numbers enables faster scrolling. */\n speed?: number;\n\n /** Index of initial slide */\n initialSlide?: number;\n\n /** Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view. For example, 0.5 equals 50%. */\n inViewThreshold?: number;\n\n /** Determines whether next/previous controls should be displayed, true by default */\n withControls?: boolean;\n\n /** Determines whether indicators should be displayed, false by default */\n withIndicators?: boolean;\n\n /** An array of embla plugins */\n plugins?: EmblaPluginType[];\n\n /** Icon of next control */\n nextControlIcon?: React.ReactNode;\n\n /** Previous control icon */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it's dragged vigorously. Note that this option will be ignored if the dragFree option is set to true, false by default */\n skipSnaps?: boolean;\n\n /** Clear leading and trailing empty space that causes excessive scrolling. Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them. */\n containScroll?: 'trimSnaps' | 'keepSnaps' | '';\n\n /** Determines whether arrow key should switch slides, true by default */\n withKeyboardEvents?: boolean;\n}\n\nconst defaultProps: Partial<CarouselProps> = {\n controlSize: 26,\n controlsOffset: 'sm',\n slideSize: '100%',\n slideGap: 0,\n orientation: 'horizontal',\n align: 'center',\n slidesToScroll: 1,\n includeGapInSize: true,\n draggable: true,\n dragFree: false,\n loop: false,\n speed: 10,\n initialSlide: 0,\n inViewThreshold: 0,\n withControls: true,\n withIndicators: false,\n skipSnaps: false,\n containScroll: '',\n withKeyboardEvents: true,\n};\n\nexport const _Carousel = forwardRef<HTMLDivElement, CarouselProps>((props, ref) => {\n const {\n children,\n className,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlLabel,\n previousControlLabel,\n controlSize,\n controlsOffset,\n classNames,\n styles,\n unstyled,\n slideSize,\n slideGap,\n orientation,\n height,\n align,\n slidesToScroll,\n includeGapInSize,\n draggable,\n dragFree,\n loop,\n speed,\n initialSlide,\n inViewThreshold,\n withControls,\n withIndicators,\n plugins,\n nextControlIcon,\n previousControlIcon,\n breakpoints,\n skipSnaps,\n containScroll,\n withKeyboardEvents,\n variant,\n ...others\n } = useComponentDefaultProps('Carousel', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap },\n { name: 'Carousel', classNames, styles, unstyled, variant }\n );\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: theme.dir,\n startIndex: initialSlide,\n loop,\n align,\n slidesToScroll,\n draggable,\n dragFree,\n speed,\n inViewThreshold,\n skipSnaps,\n containScroll,\n },\n plugins\n );\n\n const [selected, setSelected] = useState(0);\n const [slidesCount, setSlidesCount] = useState(0);\n\n const handleScroll = useCallback((index: number) => embla && embla.scrollTo(index), [embla]);\n\n const handleSelect = useCallback(() => {\n if (!embla) return;\n const slide = embla.selectedScrollSnap();\n setSelected(slide);\n onSlideChange?.(slide);\n }, [embla, setSelected]);\n\n const handlePrevious = useCallback(() => {\n embla?.scrollPrev();\n onPreviousSlide?.();\n }, [embla]);\n\n const handleNext = useCallback(() => {\n embla?.scrollNext();\n onNextSlide?.();\n }, [embla]);\n\n const handleKeydown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (withKeyboardEvents) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleNext();\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n handlePrevious();\n }\n }\n },\n [embla]\n );\n\n useEffect(() => {\n if (embla) {\n getEmblaApi?.(embla);\n handleSelect();\n setSlidesCount(embla.scrollSnapList().length);\n embla.on('select', handleSelect);\n\n return () => {\n embla.off('select', handleSelect);\n };\n }\n\n return undefined;\n }, [embla, slidesToScroll]);\n\n useEffect(() => {\n if (embla) {\n embla.reInit();\n setSlidesCount(embla.scrollSnapList().length);\n setSelected((currentSelected) =>\n clamp(currentSelected, 0, Children.toArray(children).length - 1)\n );\n }\n }, [Children.toArray(children).length, slidesToScroll]);\n\n const canScrollPrev = embla?.canScrollPrev() || false;\n const canScrollNext = embla?.canScrollNext() || false;\n\n const indicators = Array(slidesCount)\n .fill(0)\n .map((_, index) => (\n <UnstyledButton\n key={index}\n data-active={index === selected || undefined}\n className={classes.indicator}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider\n value={{\n slideGap,\n slideSize,\n embla,\n orientation,\n includeGapInSize,\n breakpoints,\n classNames,\n styles,\n unstyled,\n variant,\n }}\n >\n <Box\n className={cx(classes.root, className)}\n ref={ref}\n onKeyDownCapture={handleKeydown}\n {...others}\n >\n <div className={classes.viewport} ref={emblaRefElement}>\n <div className={classes.container}>{children}</div>\n </div>\n\n {withIndicators && <div className={classes.indicators}>{indicators}</div>}\n\n {withControls && (\n <div className={classes.controls}>\n <UnstyledButton\n onClick={handlePrevious}\n className={classes.control}\n aria-label={previousControlLabel}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n className={classes.control}\n aria-label={nextControlLabel}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n}) as any;\n\n_Carousel.Slide = CarouselSlide;\n_Carousel.displayName = '@mantine/carousel/Carousel';\n\nexport const Carousel: ForwardRefWithStaticComponents<\n CarouselProps,\n { Slide: typeof CarouselSlide }\n> = _Carousel;\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useEmblaCarousel","useState","useCallback","useEffect","clamp","Children","React","UnstyledButton","CarouselProvider","Box","ChevronIcon","getChevronRotation","CarouselSlide"],"mappings":"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"}
|
package/cjs/Carousel.styles.js
CHANGED
|
@@ -36,24 +36,21 @@ var useStyles = core.createStyles((theme, {
|
|
|
36
36
|
const getContainerStyles = (gap) => {
|
|
37
37
|
if (!includeGapInSize)
|
|
38
38
|
return {};
|
|
39
|
-
const slideGapValue =
|
|
40
|
-
size: gap,
|
|
41
|
-
sizes: theme.spacing
|
|
42
|
-
});
|
|
39
|
+
const slideGapValue = core.getSize({ size: gap, sizes: theme.spacing });
|
|
43
40
|
return {
|
|
44
|
-
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: slideGapValue * -1
|
|
41
|
+
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: `calc(${slideGapValue} * -1)`
|
|
45
42
|
};
|
|
46
43
|
};
|
|
47
44
|
const hasDiff = breakpoints.some((v) => typeof v.slideGap !== "undefined" || typeof v.slideSize !== "undefined");
|
|
48
45
|
const containerBreakpoints = !hasDiff ? null : core.getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {
|
|
49
|
-
var _a;
|
|
50
46
|
const property = "maxWidth" in breakpoint ? "max-width" : "min-width";
|
|
51
|
-
const breakpointSize =
|
|
47
|
+
const breakpointSize = core.getSize({
|
|
52
48
|
size: property === "max-width" ? breakpoint.maxWidth : breakpoint.minWidth,
|
|
53
49
|
sizes: theme.breakpoints
|
|
54
50
|
});
|
|
55
|
-
const breakpointSlideGap =
|
|
56
|
-
|
|
51
|
+
const breakpointSlideGap = typeof breakpoint.slideGap === "undefined" ? void 0 : core.rem(breakpoint.slideGap);
|
|
52
|
+
const breakpointValue = core.getBreakpointValue(breakpointSize) - (property === "max-width" ? 1 : 0);
|
|
53
|
+
acc[`@media (${property}: ${core.rem(breakpointValue)})`] = getContainerStyles(breakpointSlideGap);
|
|
57
54
|
return acc;
|
|
58
55
|
}, {});
|
|
59
56
|
return {
|
|
@@ -61,44 +58,44 @@ var useStyles = core.createStyles((theme, {
|
|
|
61
58
|
position: "relative"
|
|
62
59
|
},
|
|
63
60
|
viewport: {
|
|
64
|
-
height,
|
|
61
|
+
height: core.rem(height),
|
|
65
62
|
overflow: "hidden"
|
|
66
63
|
},
|
|
67
64
|
container: __spreadValues(__spreadValues({
|
|
68
65
|
display: "flex",
|
|
69
66
|
flexDirection: horizontal ? "row" : "column",
|
|
70
|
-
height
|
|
67
|
+
height: core.rem(height)
|
|
71
68
|
}, getContainerStyles(slideGap)), containerBreakpoints),
|
|
72
69
|
controls: {
|
|
73
70
|
position: "absolute",
|
|
74
71
|
zIndex: 1,
|
|
75
|
-
left: horizontal ? 0 : `calc(50% - ${controlSize / 2
|
|
72
|
+
left: horizontal ? 0 : `calc(50% - ${core.rem(controlSize)} / 2)`,
|
|
76
73
|
right: horizontal ? 0 : void 0,
|
|
77
|
-
top: horizontal ? `calc(50% - ${controlSize / 2
|
|
74
|
+
top: horizontal ? `calc(50% - ${core.rem(controlSize)} / 2)` : 0,
|
|
78
75
|
bottom: horizontal ? void 0 : 0,
|
|
79
76
|
display: "flex",
|
|
80
77
|
flexDirection: horizontal ? "row" : "column",
|
|
81
78
|
alignItems: "center",
|
|
82
79
|
justifyContent: "space-between",
|
|
83
|
-
paddingLeft: horizontal ?
|
|
84
|
-
paddingRight: horizontal ?
|
|
85
|
-
paddingTop: !horizontal ?
|
|
86
|
-
paddingBottom: !horizontal ?
|
|
80
|
+
paddingLeft: horizontal ? core.getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
81
|
+
paddingRight: horizontal ? core.getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
82
|
+
paddingTop: !horizontal ? core.getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
83
|
+
paddingBottom: !horizontal ? core.getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
87
84
|
pointerEvents: "none"
|
|
88
85
|
},
|
|
89
86
|
control: __spreadProps(__spreadValues({
|
|
90
87
|
display: "flex",
|
|
91
88
|
justifyContent: "center",
|
|
92
89
|
alignItems: "center",
|
|
93
|
-
minWidth: controlSize,
|
|
94
|
-
minHeight: controlSize,
|
|
95
|
-
borderRadius: controlSize,
|
|
90
|
+
minWidth: core.rem(controlSize),
|
|
91
|
+
minHeight: core.rem(controlSize),
|
|
92
|
+
borderRadius: core.rem(controlSize),
|
|
96
93
|
pointerEvents: "all",
|
|
97
94
|
backgroundColor: theme.white,
|
|
98
95
|
color: theme.black,
|
|
99
96
|
boxShadow: theme.shadows.md,
|
|
100
97
|
opacity: theme.colorScheme === "dark" ? 0.65 : 0.85,
|
|
101
|
-
border:
|
|
98
|
+
border: `${core.rem(1)} solid ${theme.colors.gray[3]}`,
|
|
102
99
|
transition: `opacity 150ms ${theme.transitionTimingFunction}`
|
|
103
100
|
}, theme.fn.hover({ opacity: 1 })), {
|
|
104
101
|
"&:active": theme.activeStyles
|
|
@@ -112,14 +109,14 @@ var useStyles = core.createStyles((theme, {
|
|
|
112
109
|
display: "flex",
|
|
113
110
|
flexDirection: horizontal ? "row" : "column",
|
|
114
111
|
justifyContent: "center",
|
|
115
|
-
gap: 8,
|
|
112
|
+
gap: core.rem(8),
|
|
116
113
|
pointerEvents: "none"
|
|
117
114
|
},
|
|
118
115
|
indicator: {
|
|
119
116
|
pointerEvents: "all",
|
|
120
|
-
width: horizontal ? 25 : 5,
|
|
121
|
-
height: horizontal ? 5 : 25,
|
|
122
|
-
borderRadius:
|
|
117
|
+
width: horizontal ? core.rem(25) : core.rem(5),
|
|
118
|
+
height: horizontal ? core.rem(5) : core.rem(25),
|
|
119
|
+
borderRadius: theme.radius.xl,
|
|
123
120
|
backgroundColor: theme.white,
|
|
124
121
|
boxShadow: theme.shadows.sm,
|
|
125
122
|
opacity: 0.6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.styles.js","sources":["../src/Carousel.styles.ts"],"sourcesContent":["import { createStyles, getSortedBreakpoints, MantineNumberSize } from '@mantine/core';\nimport { CarouselBreakpoint } from './types';\n\nexport interface CarouselStylesParams {\n controlSize: number;\n controlsOffset: MantineNumberSize;\n orientation: 'vertical' | 'horizontal';\n height: React.CSSProperties['height'];\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n slideGap: MantineNumberSize;\n}\n\nexport default createStyles(\n (\n theme,\n {\n controlSize,\n controlsOffset,\n orientation,\n height,\n includeGapInSize,\n breakpoints = [],\n slideGap,\n }: CarouselStylesParams\n ) => {\n const horizontal = orientation === 'horizontal';\n\n // Container styles by slideGap (for includeGapInSize case)\n const getContainerStyles = (gap: MantineNumberSize) => {\n if (!includeGapInSize) return {};\n\n const slideGapValue = theme.fn.size({\n size: gap,\n sizes: theme.spacing,\n });\n\n return {\n [orientation === 'horizontal' ? 'marginRight' : 'marginBottom']: slideGapValue * -1,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const containerBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = theme.fn.size({\n size: (property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth)!,\n sizes: theme.breakpoints,\n });\n\n const breakpointSlideGap =\n (typeof breakpoint.slideGap === 'undefined' ? slideGap : breakpoint.slideGap) ?? 0;\n\n acc[`@media (${property}: ${breakpointSize - (property === 'max-width' ? 1 : 0)}px)`] =\n getContainerStyles(breakpointSlideGap);\n\n return acc;\n }, {} as any);\n\n return {\n root: {\n position: 'relative',\n },\n viewport: {\n height,\n overflow: 'hidden',\n },\n\n container: {\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n height,\n ...getContainerStyles(slideGap),\n ...containerBreakpoints,\n },\n\n controls: {\n position: 'absolute',\n zIndex: 1,\n left: horizontal ? 0 : `calc(50% - ${controlSize / 2}px)`,\n right: horizontal ? 0 : undefined,\n top: horizontal ? `calc(50% - ${controlSize / 2}px)` : 0,\n bottom: horizontal ? undefined : 0,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingLeft: horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingRight: horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingTop: !horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingBottom: !horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n pointerEvents: 'none',\n },\n\n control: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: controlSize,\n minHeight: controlSize,\n borderRadius: controlSize,\n pointerEvents: 'all',\n backgroundColor: theme.white,\n color: theme.black,\n boxShadow: theme.shadows.md,\n opacity: theme.colorScheme === 'dark' ? 0.65 : 0.85,\n border: `1px solid ${theme.colors.gray[3]}`,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n ...theme.fn.hover({ opacity: 1 }),\n '&:active': theme.activeStyles,\n },\n\n indicators: {\n position: 'absolute',\n bottom: horizontal ? theme.spacing.md : 0,\n top: horizontal ? undefined : 0,\n left: horizontal ? 0 : undefined,\n right: horizontal ? 0 : theme.spacing.md,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n justifyContent: 'center',\n gap: 8,\n pointerEvents: 'none',\n },\n\n indicator: {\n pointerEvents: 'all',\n width: horizontal ? 25 : 5,\n height: horizontal ? 5 : 25,\n borderRadius: 10000,\n backgroundColor: theme.white,\n boxShadow: theme.shadows.sm,\n opacity: 0.6,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n\n '&[data-active]': {\n opacity: 1,\n },\n },\n };\n }\n);\n"],"names":["createStyles","getSortedBreakpoints"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.styles.js","sources":["../src/Carousel.styles.ts"],"sourcesContent":["import {\n createStyles,\n getSortedBreakpoints,\n MantineNumberSize,\n rem,\n getBreakpointValue,\n getSize,\n} from '@mantine/core';\nimport { CarouselBreakpoint } from './types';\n\nexport interface CarouselStylesParams {\n controlSize: number | string;\n controlsOffset: MantineNumberSize;\n orientation: 'vertical' | 'horizontal';\n height: React.CSSProperties['height'];\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n slideGap: MantineNumberSize;\n}\n\nexport default createStyles(\n (\n theme,\n {\n controlSize,\n controlsOffset,\n orientation,\n height,\n includeGapInSize,\n breakpoints = [],\n slideGap,\n }: CarouselStylesParams\n ) => {\n const horizontal = orientation === 'horizontal';\n\n // Container styles by slideGap (for includeGapInSize case)\n const getContainerStyles = (gap: MantineNumberSize) => {\n if (!includeGapInSize) return {};\n\n const slideGapValue = getSize({ size: gap, sizes: theme.spacing });\n\n return {\n [orientation === 'horizontal'\n ? 'marginRight'\n : 'marginBottom']: `calc(${slideGapValue} * -1)`,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const containerBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = getSize({\n size: (property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth)!,\n sizes: theme.breakpoints,\n });\n\n const breakpointSlideGap =\n typeof breakpoint.slideGap === 'undefined' ? undefined : rem(breakpoint.slideGap);\n\n const breakpointValue =\n getBreakpointValue(breakpointSize) - (property === 'max-width' ? 1 : 0);\n\n acc[`@media (${property}: ${rem(breakpointValue)})`] =\n getContainerStyles(breakpointSlideGap);\n\n return acc;\n }, {} as any);\n\n return {\n root: {\n position: 'relative',\n },\n\n viewport: {\n height: rem(height),\n overflow: 'hidden',\n },\n\n container: {\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n height: rem(height),\n ...getContainerStyles(slideGap),\n ...containerBreakpoints,\n },\n\n controls: {\n position: 'absolute',\n zIndex: 1,\n left: horizontal ? 0 : `calc(50% - ${rem(controlSize)} / 2)`,\n right: horizontal ? 0 : undefined,\n top: horizontal ? `calc(50% - ${rem(controlSize)} / 2)` : 0,\n bottom: horizontal ? undefined : 0,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingLeft: horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingRight: horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingTop: !horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingBottom: !horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n pointerEvents: 'none',\n },\n\n control: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: rem(controlSize),\n minHeight: rem(controlSize),\n borderRadius: rem(controlSize),\n pointerEvents: 'all',\n backgroundColor: theme.white,\n color: theme.black,\n boxShadow: theme.shadows.md,\n opacity: theme.colorScheme === 'dark' ? 0.65 : 0.85,\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n ...theme.fn.hover({ opacity: 1 }),\n '&:active': theme.activeStyles,\n },\n\n indicators: {\n position: 'absolute',\n bottom: horizontal ? theme.spacing.md : 0,\n top: horizontal ? undefined : 0,\n left: horizontal ? 0 : undefined,\n right: horizontal ? 0 : theme.spacing.md,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n justifyContent: 'center',\n gap: rem(8),\n pointerEvents: 'none',\n },\n\n indicator: {\n pointerEvents: 'all',\n width: horizontal ? rem(25) : rem(5),\n height: horizontal ? rem(5) : rem(25),\n borderRadius: theme.radius.xl,\n backgroundColor: theme.white,\n boxShadow: theme.shadows.sm,\n opacity: 0.6,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n\n '&[data-active]': {\n opacity: 1,\n },\n },\n };\n }\n);\n"],"names":["createStyles","getSize","getSortedBreakpoints","rem","getBreakpointValue"],"mappings":"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"}
|
|
@@ -48,13 +48,19 @@ const CarouselSlide = React.forwardRef((_a, ref) => {
|
|
|
48
48
|
orientation: ctx.orientation,
|
|
49
49
|
includeGapInSize: ctx.includeGapInSize,
|
|
50
50
|
breakpoints: ctx.breakpoints
|
|
51
|
-
}, {
|
|
51
|
+
}, {
|
|
52
|
+
name: "Carousel",
|
|
53
|
+
classNames: ctx.classNames,
|
|
54
|
+
styles: ctx.styles,
|
|
55
|
+
unstyled: ctx.unstyled,
|
|
56
|
+
variant: ctx.variant
|
|
57
|
+
});
|
|
52
58
|
const handleClick = React.useCallback((event) => {
|
|
53
59
|
var _a2;
|
|
54
60
|
if ((_a2 = ctx.embla) == null ? void 0 : _a2.clickAllowed()) {
|
|
55
61
|
onClick == null ? void 0 : onClick(event);
|
|
56
62
|
}
|
|
57
|
-
}, [ctx.embla]);
|
|
63
|
+
}, [ctx.embla, onClick]);
|
|
58
64
|
return /* @__PURE__ */ React__default.createElement(core.Box, __spreadValues({
|
|
59
65
|
className: cx(classes.slide, className),
|
|
60
66
|
ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\nimport { Box, DefaultProps, Selectors, MantineNumberSize } from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport useStyles from './CarouselSlide.styles';\n\nexport type CarouselSlideStylesNames = Selectors<typeof useStyles>;\n\nexport interface CarouselSlideProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Slide content */\n children?: React.ReactNode;\n\n /** Slide width, defaults to 100%, examples:
|
|
1
|
+
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\nimport { Box, DefaultProps, Selectors, MantineNumberSize } from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport useStyles from './CarouselSlide.styles';\n\nexport type CarouselSlideStylesNames = Selectors<typeof useStyles>;\n\nexport interface CarouselSlideProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Slide content */\n children?: React.ReactNode;\n\n /** Slide width, defaults to 100%, examples: 40rem, 50% */\n size?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides */\n gap?: MantineNumberSize;\n}\n\nexport const CarouselSlide = forwardRef<HTMLDivElement, CarouselSlideProps>(\n ({ children, className, size, gap, onClick, ...others }, ref) => {\n const ctx = useCarouselContext();\n const { classes, cx } = useStyles(\n {\n gap: typeof gap === 'undefined' ? ctx.slideGap : gap,\n size: typeof size === 'undefined' ? ctx.slideSize : size,\n orientation: ctx.orientation,\n includeGapInSize: ctx.includeGapInSize,\n breakpoints: ctx.breakpoints,\n },\n {\n name: 'Carousel',\n classNames: ctx.classNames,\n styles: ctx.styles,\n unstyled: ctx.unstyled,\n variant: ctx.variant,\n }\n );\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (ctx.embla?.clickAllowed()) {\n onClick?.(event);\n }\n },\n [ctx.embla, onClick]\n );\n\n return (\n <Box className={cx(classes.slide, className)} ref={ref} onClick={handleClick} {...others}>\n {children}\n </Box>\n );\n }\n);\n\nCarouselSlide.displayName = '@mantine/carousel/CarouselSlide';\n"],"names":["forwardRef","useCarouselContext","useStyles","useCallback","React","Box"],"mappings":"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"}
|
|
@@ -22,13 +22,13 @@ var __spreadValues = (a, b) => {
|
|
|
22
22
|
};
|
|
23
23
|
var useStyles = core.createStyles((theme, { size, gap, orientation, includeGapInSize, breakpoints = [] }) => {
|
|
24
24
|
const getSlideStyles = (slideGap, slideSize) => {
|
|
25
|
-
const slideGapValue =
|
|
25
|
+
const slideGapValue = core.getSize({
|
|
26
26
|
size: slideGap,
|
|
27
27
|
sizes: theme.spacing
|
|
28
28
|
});
|
|
29
|
-
const flexBasisValue =
|
|
29
|
+
const flexBasisValue = core.rem(slideSize);
|
|
30
30
|
const marginStyles = includeGapInSize ? {
|
|
31
|
-
[orientation === "horizontal" ? "paddingRight" : "
|
|
31
|
+
[orientation === "horizontal" ? "paddingRight" : "paddingBottom"]: slideGapValue
|
|
32
32
|
} : {
|
|
33
33
|
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: slideGapValue
|
|
34
34
|
};
|
|
@@ -39,12 +39,13 @@ var useStyles = core.createStyles((theme, { size, gap, orientation, includeGapIn
|
|
|
39
39
|
const hasDiff = breakpoints.some((v) => typeof v.slideGap !== "undefined" || typeof v.slideSize !== "undefined");
|
|
40
40
|
const slideBreakpoints = !hasDiff ? null : core.getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {
|
|
41
41
|
const property = "maxWidth" in breakpoint ? "max-width" : "min-width";
|
|
42
|
-
const breakpointSize =
|
|
42
|
+
const breakpointSize = core.getSize({
|
|
43
43
|
size: property === "max-width" ? breakpoint.maxWidth : breakpoint.minWidth,
|
|
44
44
|
sizes: theme.breakpoints
|
|
45
45
|
});
|
|
46
46
|
const breakpointGap = typeof breakpoint.slideGap === "undefined" ? gap : breakpoint.slideGap;
|
|
47
|
-
|
|
47
|
+
const breakpointValue = core.getBreakpointValue(breakpointSize) - (property === "max-width" ? 1 : 0);
|
|
48
|
+
acc[`@media (${property}: ${core.rem(breakpointValue)})`] = getSlideStyles(breakpointGap, breakpoint.slideSize);
|
|
48
49
|
return acc;
|
|
49
50
|
}, {});
|
|
50
51
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.styles.js","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"CarouselSlide.styles.js","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"sourcesContent":["import {\n createStyles,\n MantineNumberSize,\n getSortedBreakpoints,\n rem,\n getBreakpointValue,\n getSize,\n} from '@mantine/core';\nimport { CarouselOrientation, CarouselBreakpoint } from '../types';\n\nexport interface CarouselSlideStylesParams {\n size: string | number;\n gap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n}\n\nexport default createStyles(\n (\n theme,\n { size, gap, orientation, includeGapInSize, breakpoints = [] }: CarouselSlideStylesParams\n ) => {\n // Slide styles by slideGap and slideSize\n const getSlideStyles = (slideGap: MantineNumberSize, slideSize: string | number) => {\n const slideGapValue = getSize({\n size: slideGap,\n sizes: theme.spacing,\n });\n\n const flexBasisValue = rem(slideSize);\n\n const marginStyles = includeGapInSize\n ? {\n [orientation === 'horizontal' ? 'paddingRight' : 'paddingBottom']: slideGapValue,\n }\n : {\n [orientation === 'horizontal' ? 'marginRight' : 'marginBottom']: slideGapValue,\n };\n\n return {\n flex: `0 0 ${flexBasisValue}`,\n ...marginStyles,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const slideBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = getSize({\n size: property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n const breakpointGap =\n typeof breakpoint.slideGap === 'undefined' ? gap : breakpoint.slideGap;\n\n const breakpointValue =\n getBreakpointValue(breakpointSize) - (property === 'max-width' ? 1 : 0);\n\n acc[`@media (${property}: ${rem(breakpointValue)})`] = getSlideStyles(\n breakpointGap,\n breakpoint.slideSize\n );\n\n return acc;\n }, {});\n\n return {\n slide: {\n position: 'relative',\n ...getSlideStyles(gap, size),\n ...slideBreakpoints,\n },\n };\n }\n);\n"],"names":["createStyles","getSize","rem","getSortedBreakpoints","getBreakpointValue"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { MantineNumberSize, Styles, ClassNames } from '@mantine/core';\nimport { createSafeContext } from '@mantine/utils';\nimport { CAROUSEL_ERRORS } from './Carousel.errors';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport type { CarouselStylesNames } from './Carousel';\n\ninterface CarouselContext {\n embla: Embla;\n slideSize: string | number;\n slideGap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n classNames: ClassNames<CarouselStylesNames>;\n styles: Styles<CarouselStylesNames>;\n unstyled: boolean;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContext>(\n CAROUSEL_ERRORS.context\n);\n"],"names":[],"mappings":";;;AAEY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO;;;;"}
|
|
1
|
+
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { MantineNumberSize, Styles, ClassNames } from '@mantine/core';\nimport { createSafeContext } from '@mantine/utils';\nimport { CAROUSEL_ERRORS } from './Carousel.errors';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport type { CarouselStylesNames } from './Carousel';\n\ninterface CarouselContext {\n embla: Embla;\n slideSize: string | number;\n slideGap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n classNames: ClassNames<CarouselStylesNames>;\n styles: Styles<CarouselStylesNames>;\n unstyled: boolean;\n variant: string;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContext>(\n CAROUSEL_ERRORS.context\n);\n"],"names":[],"mappings":";;;AAEY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO;;;;"}
|
package/esm/Carousel.js
CHANGED
|
@@ -92,7 +92,8 @@ const _Carousel = forwardRef((props, ref) => {
|
|
|
92
92
|
breakpoints,
|
|
93
93
|
skipSnaps,
|
|
94
94
|
containScroll,
|
|
95
|
-
withKeyboardEvents
|
|
95
|
+
withKeyboardEvents,
|
|
96
|
+
variant
|
|
96
97
|
} = _a, others = __objRest(_a, [
|
|
97
98
|
"children",
|
|
98
99
|
"className",
|
|
@@ -128,9 +129,10 @@ const _Carousel = forwardRef((props, ref) => {
|
|
|
128
129
|
"breakpoints",
|
|
129
130
|
"skipSnaps",
|
|
130
131
|
"containScroll",
|
|
131
|
-
"withKeyboardEvents"
|
|
132
|
+
"withKeyboardEvents",
|
|
133
|
+
"variant"
|
|
132
134
|
]);
|
|
133
|
-
const { classes, cx, theme } = useStyles({ controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap }, { name: "Carousel", classNames, styles, unstyled });
|
|
135
|
+
const { classes, cx, theme } = useStyles({ controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap }, { name: "Carousel", classNames, styles, unstyled, variant });
|
|
134
136
|
const [emblaRefElement, embla] = useEmblaCarousel({
|
|
135
137
|
axis: orientation === "horizontal" ? "x" : "y",
|
|
136
138
|
direction: theme.dir,
|
|
@@ -214,7 +216,8 @@ const _Carousel = forwardRef((props, ref) => {
|
|
|
214
216
|
breakpoints,
|
|
215
217
|
classNames,
|
|
216
218
|
styles,
|
|
217
|
-
unstyled
|
|
219
|
+
unstyled,
|
|
220
|
+
variant
|
|
218
221
|
}
|
|
219
222
|
}, /* @__PURE__ */ React.createElement(Box, __spreadValues({
|
|
220
223
|
className: cx(classes.root, className),
|
package/esm/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { forwardRef, useEffect, useCallback, useState, Children } from 'react';\nimport {\n useComponentDefaultProps,\n Box,\n DefaultProps,\n UnstyledButton,\n ChevronIcon,\n MantineNumberSize,\n Selectors,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType } from 'embla-carousel-react';\nimport { ForwardRefWithStaticComponents } from '@mantine/utils';\nimport { CarouselSlide, CarouselSlideStylesNames } from './CarouselSlide/CarouselSlide';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport useStyles, { CarouselStylesParams } from './Carousel.styles';\n\nexport type CarouselStylesNames = CarouselSlideStylesNames | Selectors<typeof useStyles>;\n\nexport interface CarouselProps\n extends DefaultProps<CarouselStylesNames, CarouselStylesParams>,\n React.ComponentPropsWithRef<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when user clicks next button */\n onNextSlide?(): void;\n\n /** Called when user clicks previous button */\n onPreviousSlide?(): void;\n\n /** Called with slide index when slide changes */\n onSlideChange?(index: number): void;\n\n /** Get embla API as ref */\n getEmblaApi?(embla: Embla): void;\n\n /** Next control aria-label */\n nextControlLabel?: string;\n\n /** Previous control aria-label */\n previousControlLabel?: string;\n\n /** Previous/next controls size in px */\n controlSize?: number;\n\n /** Key of theme.spacing or number to set space between next/previous control and carousel boundary */\n controlsOffset?: MantineNumberSize;\n\n /** Slide width, defaults to 100%, examples: 200px, 50% */\n slideSize?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides in px */\n slideGap?: MantineNumberSize;\n\n /** Control slideSize and slideGap at different viewport sizes */\n breakpoints?: CarouselBreakpoint[];\n\n /** Carousel orientation, horizontal by default */\n orientation?: CarouselOrientation;\n\n /** Slides container height, required for vertical orientation */\n height?: React.CSSProperties['height'];\n\n /** Determines how slides will be aligned relative to the container. Use number between 0-1 to align slides based on percentage, where 0.5 equals 50% */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that should be scrolled with next/previous buttons */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap should be treated as part of the slide size, true by default */\n includeGapInSize?: boolean;\n\n /** Determines whether carousel can be scrolled with mouse and touch interactions, true by default */\n draggable?: boolean;\n\n /** Determines whether momentum scrolling should be enabled, false by default */\n dragFree?: boolean;\n\n /** Enables infinite looping. Automatically falls back to false if slide content isn't enough to loop. */\n loop?: boolean;\n\n /** Adjusts scroll speed when triggered by any of the methods. Higher numbers enables faster scrolling. */\n speed?: number;\n\n /** Index of initial slide */\n initialSlide?: number;\n\n /** Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view. For example, 0.5 equals 50%. */\n inViewThreshold?: number;\n\n /** Determines whether next/previous controls should be displayed, true by default */\n withControls?: boolean;\n\n /** Determines whether indicators should be displayed, false by default */\n withIndicators?: boolean;\n\n /** An array of embla plugins */\n plugins?: EmblaPluginType[];\n\n /** Icon of next control */\n nextControlIcon?: React.ReactNode;\n\n /** Previous control icon */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it's dragged vigorously. Note that this option will be ignored if the dragFree option is set to true, false by default */\n skipSnaps?: boolean;\n\n /** Clear leading and trailing empty space that causes excessive scrolling. Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them. */\n containScroll?: 'trimSnaps' | 'keepSnaps' | '';\n\n /** Determines whether arrow key should switch slides, true by default */\n withKeyboardEvents?: boolean;\n}\n\nconst defaultProps: Partial<CarouselProps> = {\n controlSize: 26,\n controlsOffset: 'sm',\n slideSize: '100%',\n slideGap: 0,\n orientation: 'horizontal',\n align: 'center',\n slidesToScroll: 1,\n includeGapInSize: true,\n draggable: true,\n dragFree: false,\n loop: false,\n speed: 10,\n initialSlide: 0,\n inViewThreshold: 0,\n withControls: true,\n withIndicators: false,\n skipSnaps: false,\n containScroll: '',\n withKeyboardEvents: true,\n};\n\nexport const _Carousel = forwardRef<HTMLDivElement, CarouselProps>((props, ref) => {\n const {\n children,\n className,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlLabel,\n previousControlLabel,\n controlSize,\n controlsOffset,\n classNames,\n styles,\n unstyled,\n slideSize,\n slideGap,\n orientation,\n height,\n align,\n slidesToScroll,\n includeGapInSize,\n draggable,\n dragFree,\n loop,\n speed,\n initialSlide,\n inViewThreshold,\n withControls,\n withIndicators,\n plugins,\n nextControlIcon,\n previousControlIcon,\n breakpoints,\n skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = useComponentDefaultProps('Carousel', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap },\n { name: 'Carousel', classNames, styles, unstyled }\n );\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: theme.dir,\n startIndex: initialSlide,\n loop,\n align,\n slidesToScroll,\n draggable,\n dragFree,\n speed,\n inViewThreshold,\n skipSnaps,\n containScroll,\n },\n plugins\n );\n\n const [selected, setSelected] = useState(0);\n const [slidesCount, setSlidesCount] = useState(0);\n\n const handleScroll = useCallback((index: number) => embla && embla.scrollTo(index), [embla]);\n\n const handleSelect = useCallback(() => {\n if (!embla) return;\n const slide = embla.selectedScrollSnap();\n setSelected(slide);\n onSlideChange?.(slide);\n }, [embla, setSelected]);\n\n const handlePrevious = useCallback(() => {\n embla?.scrollPrev();\n onPreviousSlide?.();\n }, [embla]);\n\n const handleNext = useCallback(() => {\n embla?.scrollNext();\n onNextSlide?.();\n }, [embla]);\n\n const handleKeydown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (withKeyboardEvents) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleNext();\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n handlePrevious();\n }\n }\n },\n [embla]\n );\n\n useEffect(() => {\n if (embla) {\n getEmblaApi?.(embla);\n handleSelect();\n setSlidesCount(embla.scrollSnapList().length);\n embla.on('select', handleSelect);\n\n return () => {\n embla.off('select', handleSelect);\n };\n }\n\n return undefined;\n }, [embla, slidesToScroll]);\n\n useEffect(() => {\n if (embla) {\n embla.reInit();\n setSlidesCount(embla.scrollSnapList().length);\n setSelected((currentSelected) =>\n clamp(currentSelected, 0, Children.toArray(children).length - 1)\n );\n }\n }, [Children.toArray(children).length, slidesToScroll]);\n\n const canScrollPrev = embla?.canScrollPrev() || false;\n const canScrollNext = embla?.canScrollNext() || false;\n\n const indicators = Array(slidesCount)\n .fill(0)\n .map((_, index) => (\n <UnstyledButton\n key={index}\n data-active={index === selected || undefined}\n className={classes.indicator}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider\n value={{\n slideGap,\n slideSize,\n embla,\n orientation,\n includeGapInSize,\n breakpoints,\n classNames,\n styles,\n unstyled,\n }}\n >\n <Box\n className={cx(classes.root, className)}\n ref={ref}\n onKeyDownCapture={handleKeydown}\n {...others}\n >\n <div className={classes.viewport} ref={emblaRefElement}>\n <div className={classes.container}>{children}</div>\n </div>\n\n {withIndicators && <div className={classes.indicators}>{indicators}</div>}\n\n {withControls && (\n <div className={classes.controls}>\n <UnstyledButton\n onClick={handlePrevious}\n className={classes.control}\n aria-label={previousControlLabel}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n className={classes.control}\n aria-label={nextControlLabel}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n}) as any;\n\n_Carousel.Slide = CarouselSlide;\n_Carousel.displayName = '@mantine/carousel/Carousel';\n\nexport const Carousel: ForwardRefWithStaticComponents<\n CarouselProps,\n { Slide: typeof CarouselSlide }\n> = _Carousel;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { forwardRef, useEffect, useCallback, useState, Children } from 'react';\nimport {\n useComponentDefaultProps,\n Box,\n DefaultProps,\n UnstyledButton,\n ChevronIcon,\n MantineNumberSize,\n Selectors,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType } from 'embla-carousel-react';\nimport { ForwardRefWithStaticComponents } from '@mantine/utils';\nimport { CarouselSlide, CarouselSlideStylesNames } from './CarouselSlide/CarouselSlide';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselOrientation, Embla, CarouselBreakpoint } from './types';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport useStyles, { CarouselStylesParams } from './Carousel.styles';\n\nexport type CarouselStylesNames = CarouselSlideStylesNames | Selectors<typeof useStyles>;\n\nexport interface CarouselProps\n extends DefaultProps<CarouselStylesNames, CarouselStylesParams>,\n React.ComponentPropsWithRef<'div'> {\n variant?: string;\n\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when user clicks next button */\n onNextSlide?(): void;\n\n /** Called when user clicks previous button */\n onPreviousSlide?(): void;\n\n /** Called with slide index when slide changes */\n onSlideChange?(index: number): void;\n\n /** Get embla API as ref */\n getEmblaApi?(embla: Embla): void;\n\n /** Next control aria-label */\n nextControlLabel?: string;\n\n /** Previous control aria-label */\n previousControlLabel?: string;\n\n /** Previous/next controls size */\n controlSize?: number;\n\n /** Key of theme.spacing or number to set space between next/previous control and carousel boundary */\n controlsOffset?: MantineNumberSize;\n\n /** Slide width, defaults to 100%, examples: 40rem 50% */\n slideSize?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: MantineNumberSize;\n\n /** Control slideSize and slideGap at different viewport sizes */\n breakpoints?: CarouselBreakpoint[];\n\n /** Carousel orientation, horizontal by default */\n orientation?: CarouselOrientation;\n\n /** Slides container height, required for vertical orientation */\n height?: React.CSSProperties['height'];\n\n /** Determines how slides will be aligned relative to the container. Use number between 0-1 to align slides based on percentage, where 0.5 equals 50% */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that should be scrolled with next/previous buttons */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap should be treated as part of the slide size, true by default */\n includeGapInSize?: boolean;\n\n /** Determines whether carousel can be scrolled with mouse and touch interactions, true by default */\n draggable?: boolean;\n\n /** Determines whether momentum scrolling should be enabled, false by default */\n dragFree?: boolean;\n\n /** Enables infinite looping. Automatically falls back to false if slide content isn't enough to loop. */\n loop?: boolean;\n\n /** Adjusts scroll speed when triggered by any of the methods. Higher numbers enables faster scrolling. */\n speed?: number;\n\n /** Index of initial slide */\n initialSlide?: number;\n\n /** Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view. For example, 0.5 equals 50%. */\n inViewThreshold?: number;\n\n /** Determines whether next/previous controls should be displayed, true by default */\n withControls?: boolean;\n\n /** Determines whether indicators should be displayed, false by default */\n withIndicators?: boolean;\n\n /** An array of embla plugins */\n plugins?: EmblaPluginType[];\n\n /** Icon of next control */\n nextControlIcon?: React.ReactNode;\n\n /** Previous control icon */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it's dragged vigorously. Note that this option will be ignored if the dragFree option is set to true, false by default */\n skipSnaps?: boolean;\n\n /** Clear leading and trailing empty space that causes excessive scrolling. Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them. */\n containScroll?: 'trimSnaps' | 'keepSnaps' | '';\n\n /** Determines whether arrow key should switch slides, true by default */\n withKeyboardEvents?: boolean;\n}\n\nconst defaultProps: Partial<CarouselProps> = {\n controlSize: 26,\n controlsOffset: 'sm',\n slideSize: '100%',\n slideGap: 0,\n orientation: 'horizontal',\n align: 'center',\n slidesToScroll: 1,\n includeGapInSize: true,\n draggable: true,\n dragFree: false,\n loop: false,\n speed: 10,\n initialSlide: 0,\n inViewThreshold: 0,\n withControls: true,\n withIndicators: false,\n skipSnaps: false,\n containScroll: '',\n withKeyboardEvents: true,\n};\n\nexport const _Carousel = forwardRef<HTMLDivElement, CarouselProps>((props, ref) => {\n const {\n children,\n className,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlLabel,\n previousControlLabel,\n controlSize,\n controlsOffset,\n classNames,\n styles,\n unstyled,\n slideSize,\n slideGap,\n orientation,\n height,\n align,\n slidesToScroll,\n includeGapInSize,\n draggable,\n dragFree,\n loop,\n speed,\n initialSlide,\n inViewThreshold,\n withControls,\n withIndicators,\n plugins,\n nextControlIcon,\n previousControlIcon,\n breakpoints,\n skipSnaps,\n containScroll,\n withKeyboardEvents,\n variant,\n ...others\n } = useComponentDefaultProps('Carousel', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { controlSize, controlsOffset, orientation, height, includeGapInSize, breakpoints, slideGap },\n { name: 'Carousel', classNames, styles, unstyled, variant }\n );\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: theme.dir,\n startIndex: initialSlide,\n loop,\n align,\n slidesToScroll,\n draggable,\n dragFree,\n speed,\n inViewThreshold,\n skipSnaps,\n containScroll,\n },\n plugins\n );\n\n const [selected, setSelected] = useState(0);\n const [slidesCount, setSlidesCount] = useState(0);\n\n const handleScroll = useCallback((index: number) => embla && embla.scrollTo(index), [embla]);\n\n const handleSelect = useCallback(() => {\n if (!embla) return;\n const slide = embla.selectedScrollSnap();\n setSelected(slide);\n onSlideChange?.(slide);\n }, [embla, setSelected]);\n\n const handlePrevious = useCallback(() => {\n embla?.scrollPrev();\n onPreviousSlide?.();\n }, [embla]);\n\n const handleNext = useCallback(() => {\n embla?.scrollNext();\n onNextSlide?.();\n }, [embla]);\n\n const handleKeydown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (withKeyboardEvents) {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleNext();\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n handlePrevious();\n }\n }\n },\n [embla]\n );\n\n useEffect(() => {\n if (embla) {\n getEmblaApi?.(embla);\n handleSelect();\n setSlidesCount(embla.scrollSnapList().length);\n embla.on('select', handleSelect);\n\n return () => {\n embla.off('select', handleSelect);\n };\n }\n\n return undefined;\n }, [embla, slidesToScroll]);\n\n useEffect(() => {\n if (embla) {\n embla.reInit();\n setSlidesCount(embla.scrollSnapList().length);\n setSelected((currentSelected) =>\n clamp(currentSelected, 0, Children.toArray(children).length - 1)\n );\n }\n }, [Children.toArray(children).length, slidesToScroll]);\n\n const canScrollPrev = embla?.canScrollPrev() || false;\n const canScrollNext = embla?.canScrollNext() || false;\n\n const indicators = Array(slidesCount)\n .fill(0)\n .map((_, index) => (\n <UnstyledButton\n key={index}\n data-active={index === selected || undefined}\n className={classes.indicator}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider\n value={{\n slideGap,\n slideSize,\n embla,\n orientation,\n includeGapInSize,\n breakpoints,\n classNames,\n styles,\n unstyled,\n variant,\n }}\n >\n <Box\n className={cx(classes.root, className)}\n ref={ref}\n onKeyDownCapture={handleKeydown}\n {...others}\n >\n <div className={classes.viewport} ref={emblaRefElement}>\n <div className={classes.container}>{children}</div>\n </div>\n\n {withIndicators && <div className={classes.indicators}>{indicators}</div>}\n\n {withControls && (\n <div className={classes.controls}>\n <UnstyledButton\n onClick={handlePrevious}\n className={classes.control}\n aria-label={previousControlLabel}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n className={classes.control}\n aria-label={nextControlLabel}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <ChevronIcon\n style={{\n transform: `rotate(${getChevronRotation({\n dir: theme.dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n}) as any;\n\n_Carousel.Slide = CarouselSlide;\n_Carousel.displayName = '@mantine/carousel/Carousel';\n\nexport const Carousel: ForwardRefWithStaticComponents<\n CarouselProps,\n { Slide: typeof CarouselSlide }\n> = _Carousel;\n"],"names":[],"mappings":"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"}
|
package/esm/Carousel.styles.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createStyles, getSortedBreakpoints } from '@mantine/core';
|
|
1
|
+
import { createStyles, getSortedBreakpoints, getSize, rem, getBreakpointValue } from '@mantine/core';
|
|
2
2
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __defProps = Object.defineProperties;
|
|
@@ -32,24 +32,21 @@ var useStyles = createStyles((theme, {
|
|
|
32
32
|
const getContainerStyles = (gap) => {
|
|
33
33
|
if (!includeGapInSize)
|
|
34
34
|
return {};
|
|
35
|
-
const slideGapValue = theme.
|
|
36
|
-
size: gap,
|
|
37
|
-
sizes: theme.spacing
|
|
38
|
-
});
|
|
35
|
+
const slideGapValue = getSize({ size: gap, sizes: theme.spacing });
|
|
39
36
|
return {
|
|
40
|
-
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: slideGapValue * -1
|
|
37
|
+
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: `calc(${slideGapValue} * -1)`
|
|
41
38
|
};
|
|
42
39
|
};
|
|
43
40
|
const hasDiff = breakpoints.some((v) => typeof v.slideGap !== "undefined" || typeof v.slideSize !== "undefined");
|
|
44
41
|
const containerBreakpoints = !hasDiff ? null : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {
|
|
45
|
-
var _a;
|
|
46
42
|
const property = "maxWidth" in breakpoint ? "max-width" : "min-width";
|
|
47
|
-
const breakpointSize =
|
|
43
|
+
const breakpointSize = getSize({
|
|
48
44
|
size: property === "max-width" ? breakpoint.maxWidth : breakpoint.minWidth,
|
|
49
45
|
sizes: theme.breakpoints
|
|
50
46
|
});
|
|
51
|
-
const breakpointSlideGap =
|
|
52
|
-
|
|
47
|
+
const breakpointSlideGap = typeof breakpoint.slideGap === "undefined" ? void 0 : rem(breakpoint.slideGap);
|
|
48
|
+
const breakpointValue = getBreakpointValue(breakpointSize) - (property === "max-width" ? 1 : 0);
|
|
49
|
+
acc[`@media (${property}: ${rem(breakpointValue)})`] = getContainerStyles(breakpointSlideGap);
|
|
53
50
|
return acc;
|
|
54
51
|
}, {});
|
|
55
52
|
return {
|
|
@@ -57,44 +54,44 @@ var useStyles = createStyles((theme, {
|
|
|
57
54
|
position: "relative"
|
|
58
55
|
},
|
|
59
56
|
viewport: {
|
|
60
|
-
height,
|
|
57
|
+
height: rem(height),
|
|
61
58
|
overflow: "hidden"
|
|
62
59
|
},
|
|
63
60
|
container: __spreadValues(__spreadValues({
|
|
64
61
|
display: "flex",
|
|
65
62
|
flexDirection: horizontal ? "row" : "column",
|
|
66
|
-
height
|
|
63
|
+
height: rem(height)
|
|
67
64
|
}, getContainerStyles(slideGap)), containerBreakpoints),
|
|
68
65
|
controls: {
|
|
69
66
|
position: "absolute",
|
|
70
67
|
zIndex: 1,
|
|
71
|
-
left: horizontal ? 0 : `calc(50% - ${controlSize / 2
|
|
68
|
+
left: horizontal ? 0 : `calc(50% - ${rem(controlSize)} / 2)`,
|
|
72
69
|
right: horizontal ? 0 : void 0,
|
|
73
|
-
top: horizontal ? `calc(50% - ${controlSize / 2
|
|
70
|
+
top: horizontal ? `calc(50% - ${rem(controlSize)} / 2)` : 0,
|
|
74
71
|
bottom: horizontal ? void 0 : 0,
|
|
75
72
|
display: "flex",
|
|
76
73
|
flexDirection: horizontal ? "row" : "column",
|
|
77
74
|
alignItems: "center",
|
|
78
75
|
justifyContent: "space-between",
|
|
79
|
-
paddingLeft: horizontal ?
|
|
80
|
-
paddingRight: horizontal ?
|
|
81
|
-
paddingTop: !horizontal ?
|
|
82
|
-
paddingBottom: !horizontal ?
|
|
76
|
+
paddingLeft: horizontal ? getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
77
|
+
paddingRight: horizontal ? getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
78
|
+
paddingTop: !horizontal ? getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
79
|
+
paddingBottom: !horizontal ? getSize({ size: controlsOffset, sizes: theme.spacing }) : void 0,
|
|
83
80
|
pointerEvents: "none"
|
|
84
81
|
},
|
|
85
82
|
control: __spreadProps(__spreadValues({
|
|
86
83
|
display: "flex",
|
|
87
84
|
justifyContent: "center",
|
|
88
85
|
alignItems: "center",
|
|
89
|
-
minWidth: controlSize,
|
|
90
|
-
minHeight: controlSize,
|
|
91
|
-
borderRadius: controlSize,
|
|
86
|
+
minWidth: rem(controlSize),
|
|
87
|
+
minHeight: rem(controlSize),
|
|
88
|
+
borderRadius: rem(controlSize),
|
|
92
89
|
pointerEvents: "all",
|
|
93
90
|
backgroundColor: theme.white,
|
|
94
91
|
color: theme.black,
|
|
95
92
|
boxShadow: theme.shadows.md,
|
|
96
93
|
opacity: theme.colorScheme === "dark" ? 0.65 : 0.85,
|
|
97
|
-
border:
|
|
94
|
+
border: `${rem(1)} solid ${theme.colors.gray[3]}`,
|
|
98
95
|
transition: `opacity 150ms ${theme.transitionTimingFunction}`
|
|
99
96
|
}, theme.fn.hover({ opacity: 1 })), {
|
|
100
97
|
"&:active": theme.activeStyles
|
|
@@ -108,14 +105,14 @@ var useStyles = createStyles((theme, {
|
|
|
108
105
|
display: "flex",
|
|
109
106
|
flexDirection: horizontal ? "row" : "column",
|
|
110
107
|
justifyContent: "center",
|
|
111
|
-
gap: 8,
|
|
108
|
+
gap: rem(8),
|
|
112
109
|
pointerEvents: "none"
|
|
113
110
|
},
|
|
114
111
|
indicator: {
|
|
115
112
|
pointerEvents: "all",
|
|
116
|
-
width: horizontal ? 25 : 5,
|
|
117
|
-
height: horizontal ? 5 : 25,
|
|
118
|
-
borderRadius:
|
|
113
|
+
width: horizontal ? rem(25) : rem(5),
|
|
114
|
+
height: horizontal ? rem(5) : rem(25),
|
|
115
|
+
borderRadius: theme.radius.xl,
|
|
119
116
|
backgroundColor: theme.white,
|
|
120
117
|
boxShadow: theme.shadows.sm,
|
|
121
118
|
opacity: 0.6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.styles.js","sources":["../src/Carousel.styles.ts"],"sourcesContent":["import { createStyles, getSortedBreakpoints, MantineNumberSize } from '@mantine/core';\nimport { CarouselBreakpoint } from './types';\n\nexport interface CarouselStylesParams {\n controlSize: number;\n controlsOffset: MantineNumberSize;\n orientation: 'vertical' | 'horizontal';\n height: React.CSSProperties['height'];\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n slideGap: MantineNumberSize;\n}\n\nexport default createStyles(\n (\n theme,\n {\n controlSize,\n controlsOffset,\n orientation,\n height,\n includeGapInSize,\n breakpoints = [],\n slideGap,\n }: CarouselStylesParams\n ) => {\n const horizontal = orientation === 'horizontal';\n\n // Container styles by slideGap (for includeGapInSize case)\n const getContainerStyles = (gap: MantineNumberSize) => {\n if (!includeGapInSize) return {};\n\n const slideGapValue = theme.fn.size({\n size: gap,\n sizes: theme.spacing,\n });\n\n return {\n [orientation === 'horizontal' ? 'marginRight' : 'marginBottom']: slideGapValue * -1,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const containerBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = theme.fn.size({\n size: (property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth)!,\n sizes: theme.breakpoints,\n });\n\n const breakpointSlideGap =\n (typeof breakpoint.slideGap === 'undefined' ? slideGap : breakpoint.slideGap) ?? 0;\n\n acc[`@media (${property}: ${breakpointSize - (property === 'max-width' ? 1 : 0)}px)`] =\n getContainerStyles(breakpointSlideGap);\n\n return acc;\n }, {} as any);\n\n return {\n root: {\n position: 'relative',\n },\n viewport: {\n height,\n overflow: 'hidden',\n },\n\n container: {\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n height,\n ...getContainerStyles(slideGap),\n ...containerBreakpoints,\n },\n\n controls: {\n position: 'absolute',\n zIndex: 1,\n left: horizontal ? 0 : `calc(50% - ${controlSize / 2}px)`,\n right: horizontal ? 0 : undefined,\n top: horizontal ? `calc(50% - ${controlSize / 2}px)` : 0,\n bottom: horizontal ? undefined : 0,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingLeft: horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingRight: horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingTop: !horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingBottom: !horizontal\n ? theme.fn.size({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n pointerEvents: 'none',\n },\n\n control: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: controlSize,\n minHeight: controlSize,\n borderRadius: controlSize,\n pointerEvents: 'all',\n backgroundColor: theme.white,\n color: theme.black,\n boxShadow: theme.shadows.md,\n opacity: theme.colorScheme === 'dark' ? 0.65 : 0.85,\n border: `1px solid ${theme.colors.gray[3]}`,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n ...theme.fn.hover({ opacity: 1 }),\n '&:active': theme.activeStyles,\n },\n\n indicators: {\n position: 'absolute',\n bottom: horizontal ? theme.spacing.md : 0,\n top: horizontal ? undefined : 0,\n left: horizontal ? 0 : undefined,\n right: horizontal ? 0 : theme.spacing.md,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n justifyContent: 'center',\n gap: 8,\n pointerEvents: 'none',\n },\n\n indicator: {\n pointerEvents: 'all',\n width: horizontal ? 25 : 5,\n height: horizontal ? 5 : 25,\n borderRadius: 10000,\n backgroundColor: theme.white,\n boxShadow: theme.shadows.sm,\n opacity: 0.6,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n\n '&[data-active]': {\n opacity: 1,\n },\n },\n };\n }\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.styles.js","sources":["../src/Carousel.styles.ts"],"sourcesContent":["import {\n createStyles,\n getSortedBreakpoints,\n MantineNumberSize,\n rem,\n getBreakpointValue,\n getSize,\n} from '@mantine/core';\nimport { CarouselBreakpoint } from './types';\n\nexport interface CarouselStylesParams {\n controlSize: number | string;\n controlsOffset: MantineNumberSize;\n orientation: 'vertical' | 'horizontal';\n height: React.CSSProperties['height'];\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n slideGap: MantineNumberSize;\n}\n\nexport default createStyles(\n (\n theme,\n {\n controlSize,\n controlsOffset,\n orientation,\n height,\n includeGapInSize,\n breakpoints = [],\n slideGap,\n }: CarouselStylesParams\n ) => {\n const horizontal = orientation === 'horizontal';\n\n // Container styles by slideGap (for includeGapInSize case)\n const getContainerStyles = (gap: MantineNumberSize) => {\n if (!includeGapInSize) return {};\n\n const slideGapValue = getSize({ size: gap, sizes: theme.spacing });\n\n return {\n [orientation === 'horizontal'\n ? 'marginRight'\n : 'marginBottom']: `calc(${slideGapValue} * -1)`,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const containerBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = getSize({\n size: (property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth)!,\n sizes: theme.breakpoints,\n });\n\n const breakpointSlideGap =\n typeof breakpoint.slideGap === 'undefined' ? undefined : rem(breakpoint.slideGap);\n\n const breakpointValue =\n getBreakpointValue(breakpointSize) - (property === 'max-width' ? 1 : 0);\n\n acc[`@media (${property}: ${rem(breakpointValue)})`] =\n getContainerStyles(breakpointSlideGap);\n\n return acc;\n }, {} as any);\n\n return {\n root: {\n position: 'relative',\n },\n\n viewport: {\n height: rem(height),\n overflow: 'hidden',\n },\n\n container: {\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n height: rem(height),\n ...getContainerStyles(slideGap),\n ...containerBreakpoints,\n },\n\n controls: {\n position: 'absolute',\n zIndex: 1,\n left: horizontal ? 0 : `calc(50% - ${rem(controlSize)} / 2)`,\n right: horizontal ? 0 : undefined,\n top: horizontal ? `calc(50% - ${rem(controlSize)} / 2)` : 0,\n bottom: horizontal ? undefined : 0,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingLeft: horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingRight: horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingTop: !horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n paddingBottom: !horizontal\n ? getSize({ size: controlsOffset, sizes: theme.spacing })\n : undefined,\n pointerEvents: 'none',\n },\n\n control: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: rem(controlSize),\n minHeight: rem(controlSize),\n borderRadius: rem(controlSize),\n pointerEvents: 'all',\n backgroundColor: theme.white,\n color: theme.black,\n boxShadow: theme.shadows.md,\n opacity: theme.colorScheme === 'dark' ? 0.65 : 0.85,\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n ...theme.fn.hover({ opacity: 1 }),\n '&:active': theme.activeStyles,\n },\n\n indicators: {\n position: 'absolute',\n bottom: horizontal ? theme.spacing.md : 0,\n top: horizontal ? undefined : 0,\n left: horizontal ? 0 : undefined,\n right: horizontal ? 0 : theme.spacing.md,\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n justifyContent: 'center',\n gap: rem(8),\n pointerEvents: 'none',\n },\n\n indicator: {\n pointerEvents: 'all',\n width: horizontal ? rem(25) : rem(5),\n height: horizontal ? rem(5) : rem(25),\n borderRadius: theme.radius.xl,\n backgroundColor: theme.white,\n boxShadow: theme.shadows.sm,\n opacity: 0.6,\n transition: `opacity 150ms ${theme.transitionTimingFunction}`,\n\n '&[data-active]': {\n opacity: 1,\n },\n },\n };\n }\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -40,13 +40,19 @@ const CarouselSlide = forwardRef((_a, ref) => {
|
|
|
40
40
|
orientation: ctx.orientation,
|
|
41
41
|
includeGapInSize: ctx.includeGapInSize,
|
|
42
42
|
breakpoints: ctx.breakpoints
|
|
43
|
-
}, {
|
|
43
|
+
}, {
|
|
44
|
+
name: "Carousel",
|
|
45
|
+
classNames: ctx.classNames,
|
|
46
|
+
styles: ctx.styles,
|
|
47
|
+
unstyled: ctx.unstyled,
|
|
48
|
+
variant: ctx.variant
|
|
49
|
+
});
|
|
44
50
|
const handleClick = useCallback((event) => {
|
|
45
51
|
var _a2;
|
|
46
52
|
if ((_a2 = ctx.embla) == null ? void 0 : _a2.clickAllowed()) {
|
|
47
53
|
onClick == null ? void 0 : onClick(event);
|
|
48
54
|
}
|
|
49
|
-
}, [ctx.embla]);
|
|
55
|
+
}, [ctx.embla, onClick]);
|
|
50
56
|
return /* @__PURE__ */ React.createElement(Box, __spreadValues({
|
|
51
57
|
className: cx(classes.slide, className),
|
|
52
58
|
ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\nimport { Box, DefaultProps, Selectors, MantineNumberSize } from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport useStyles from './CarouselSlide.styles';\n\nexport type CarouselSlideStylesNames = Selectors<typeof useStyles>;\n\nexport interface CarouselSlideProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Slide content */\n children?: React.ReactNode;\n\n /** Slide width, defaults to 100%, examples:
|
|
1
|
+
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\nimport { Box, DefaultProps, Selectors, MantineNumberSize } from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport useStyles from './CarouselSlide.styles';\n\nexport type CarouselSlideStylesNames = Selectors<typeof useStyles>;\n\nexport interface CarouselSlideProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Slide content */\n children?: React.ReactNode;\n\n /** Slide width, defaults to 100%, examples: 40rem, 50% */\n size?: string | number;\n\n /** Key of theme.spacing or number to set gap between slides */\n gap?: MantineNumberSize;\n}\n\nexport const CarouselSlide = forwardRef<HTMLDivElement, CarouselSlideProps>(\n ({ children, className, size, gap, onClick, ...others }, ref) => {\n const ctx = useCarouselContext();\n const { classes, cx } = useStyles(\n {\n gap: typeof gap === 'undefined' ? ctx.slideGap : gap,\n size: typeof size === 'undefined' ? ctx.slideSize : size,\n orientation: ctx.orientation,\n includeGapInSize: ctx.includeGapInSize,\n breakpoints: ctx.breakpoints,\n },\n {\n name: 'Carousel',\n classNames: ctx.classNames,\n styles: ctx.styles,\n unstyled: ctx.unstyled,\n variant: ctx.variant,\n }\n );\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (ctx.embla?.clickAllowed()) {\n onClick?.(event);\n }\n },\n [ctx.embla, onClick]\n );\n\n return (\n <Box className={cx(classes.slide, className)} ref={ref} onClick={handleClick} {...others}>\n {children}\n </Box>\n );\n }\n);\n\nCarouselSlide.displayName = '@mantine/carousel/CarouselSlide';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createStyles, getSortedBreakpoints } from '@mantine/core';
|
|
1
|
+
import { createStyles, getSortedBreakpoints, getSize, getBreakpointValue, rem } from '@mantine/core';
|
|
2
2
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -18,13 +18,13 @@ var __spreadValues = (a, b) => {
|
|
|
18
18
|
};
|
|
19
19
|
var useStyles = createStyles((theme, { size, gap, orientation, includeGapInSize, breakpoints = [] }) => {
|
|
20
20
|
const getSlideStyles = (slideGap, slideSize) => {
|
|
21
|
-
const slideGapValue =
|
|
21
|
+
const slideGapValue = getSize({
|
|
22
22
|
size: slideGap,
|
|
23
23
|
sizes: theme.spacing
|
|
24
24
|
});
|
|
25
|
-
const flexBasisValue =
|
|
25
|
+
const flexBasisValue = rem(slideSize);
|
|
26
26
|
const marginStyles = includeGapInSize ? {
|
|
27
|
-
[orientation === "horizontal" ? "paddingRight" : "
|
|
27
|
+
[orientation === "horizontal" ? "paddingRight" : "paddingBottom"]: slideGapValue
|
|
28
28
|
} : {
|
|
29
29
|
[orientation === "horizontal" ? "marginRight" : "marginBottom"]: slideGapValue
|
|
30
30
|
};
|
|
@@ -35,12 +35,13 @@ var useStyles = createStyles((theme, { size, gap, orientation, includeGapInSize,
|
|
|
35
35
|
const hasDiff = breakpoints.some((v) => typeof v.slideGap !== "undefined" || typeof v.slideSize !== "undefined");
|
|
36
36
|
const slideBreakpoints = !hasDiff ? null : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {
|
|
37
37
|
const property = "maxWidth" in breakpoint ? "max-width" : "min-width";
|
|
38
|
-
const breakpointSize =
|
|
38
|
+
const breakpointSize = getSize({
|
|
39
39
|
size: property === "max-width" ? breakpoint.maxWidth : breakpoint.minWidth,
|
|
40
40
|
sizes: theme.breakpoints
|
|
41
41
|
});
|
|
42
42
|
const breakpointGap = typeof breakpoint.slideGap === "undefined" ? gap : breakpoint.slideGap;
|
|
43
|
-
|
|
43
|
+
const breakpointValue = getBreakpointValue(breakpointSize) - (property === "max-width" ? 1 : 0);
|
|
44
|
+
acc[`@media (${property}: ${rem(breakpointValue)})`] = getSlideStyles(breakpointGap, breakpoint.slideSize);
|
|
44
45
|
return acc;
|
|
45
46
|
}, {});
|
|
46
47
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.styles.js","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"CarouselSlide.styles.js","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"sourcesContent":["import {\n createStyles,\n MantineNumberSize,\n getSortedBreakpoints,\n rem,\n getBreakpointValue,\n getSize,\n} from '@mantine/core';\nimport { CarouselOrientation, CarouselBreakpoint } from '../types';\n\nexport interface CarouselSlideStylesParams {\n size: string | number;\n gap: MantineNumberSize;\n orientation: CarouselOrientation;\n includeGapInSize: boolean;\n breakpoints: CarouselBreakpoint[];\n}\n\nexport default createStyles(\n (\n theme,\n { size, gap, orientation, includeGapInSize, breakpoints = [] }: CarouselSlideStylesParams\n ) => {\n // Slide styles by slideGap and slideSize\n const getSlideStyles = (slideGap: MantineNumberSize, slideSize: string | number) => {\n const slideGapValue = getSize({\n size: slideGap,\n sizes: theme.spacing,\n });\n\n const flexBasisValue = rem(slideSize);\n\n const marginStyles = includeGapInSize\n ? {\n [orientation === 'horizontal' ? 'paddingRight' : 'paddingBottom']: slideGapValue,\n }\n : {\n [orientation === 'horizontal' ? 'marginRight' : 'marginBottom']: slideGapValue,\n };\n\n return {\n flex: `0 0 ${flexBasisValue}`,\n ...marginStyles,\n };\n };\n\n const hasDiff = breakpoints.some(\n (v) => typeof v.slideGap !== 'undefined' || typeof v.slideSize !== 'undefined'\n );\n\n // Apply styles for breakpoints only if has different gap or size\n const slideBreakpoints = !hasDiff\n ? null\n : getSortedBreakpoints(theme, breakpoints).reduce((acc, breakpoint) => {\n const property = 'maxWidth' in breakpoint ? 'max-width' : 'min-width';\n const breakpointSize = getSize({\n size: property === 'max-width' ? breakpoint.maxWidth : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n const breakpointGap =\n typeof breakpoint.slideGap === 'undefined' ? gap : breakpoint.slideGap;\n\n const breakpointValue =\n getBreakpointValue(breakpointSize) - (property === 'max-width' ? 1 : 0);\n\n acc[`@media (${property}: ${rem(breakpointValue)})`] = getSlideStyles(\n breakpointGap,\n breakpoint.slideSize\n );\n\n return acc;\n }, {});\n\n return {\n slide: {\n position: 'relative',\n ...getSlideStyles(gap, size),\n ...slideBreakpoints,\n },\n };\n }\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.context.d.ts","sourceRoot":"","sources":["../src/Carousel.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,eAAe;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Carousel.context.d.ts","sourceRoot":"","sources":["../src/Carousel.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,eAAe;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAO,gBAAgB;;;mBAAE,kBAAkB,uBAEjD,CAAC"}
|
package/lib/Carousel.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { CarouselOrientation, Embla, CarouselBreakpoint } from './types';
|
|
|
7
7
|
import useStyles, { CarouselStylesParams } from './Carousel.styles';
|
|
8
8
|
export type CarouselStylesNames = CarouselSlideStylesNames | Selectors<typeof useStyles>;
|
|
9
9
|
export interface CarouselProps extends DefaultProps<CarouselStylesNames, CarouselStylesParams>, React.ComponentPropsWithRef<'div'> {
|
|
10
|
+
variant?: string;
|
|
10
11
|
/** <Carousel.Slide /> components */
|
|
11
12
|
children?: React.ReactNode;
|
|
12
13
|
/** Called when user clicks next button */
|
|
@@ -21,13 +22,13 @@ export interface CarouselProps extends DefaultProps<CarouselStylesNames, Carouse
|
|
|
21
22
|
nextControlLabel?: string;
|
|
22
23
|
/** Previous control aria-label */
|
|
23
24
|
previousControlLabel?: string;
|
|
24
|
-
/** Previous/next controls size
|
|
25
|
+
/** Previous/next controls size */
|
|
25
26
|
controlSize?: number;
|
|
26
27
|
/** Key of theme.spacing or number to set space between next/previous control and carousel boundary */
|
|
27
28
|
controlsOffset?: MantineNumberSize;
|
|
28
|
-
/** Slide width, defaults to 100%, examples:
|
|
29
|
+
/** Slide width, defaults to 100%, examples: 40rem 50% */
|
|
29
30
|
slideSize?: string | number;
|
|
30
|
-
/** Key of theme.spacing or number to set gap between slides
|
|
31
|
+
/** Key of theme.spacing or number to set gap between slides */
|
|
31
32
|
slideGap?: MantineNumberSize;
|
|
32
33
|
/** Control slideSize and slideGap at different viewport sizes */
|
|
33
34
|
breakpoints?: CarouselBreakpoint[];
|
package/lib/Carousel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../src/Carousel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,EAGL,YAAY,EAGZ,iBAAiB,EACjB,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,OAAyB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAExF,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,SAAS,EAAE,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,GAAG,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;AAEzF,MAAM,WAAW,aACf,SAAQ,YAAY,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAC7D,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC;IACpC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,0CAA0C;IAC1C,WAAW,CAAC,IAAI,IAAI,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,IAAI,IAAI,CAAC;IAEzB,iDAAiD;IACjD,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,2BAA2B;IAC3B,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEjC,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,
|
|
1
|
+
{"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../src/Carousel.tsx"],"names":[],"mappings":"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"}
|
package/lib/Carousel.styles.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { MantineNumberSize } from '@mantine/core';
|
|
3
3
|
import { CarouselBreakpoint } from './types';
|
|
4
4
|
export interface CarouselStylesParams {
|
|
5
|
-
controlSize: number;
|
|
5
|
+
controlSize: number | string;
|
|
6
6
|
controlsOffset: MantineNumberSize;
|
|
7
7
|
orientation: 'vertical' | 'horizontal';
|
|
8
8
|
height: React.CSSProperties['height'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.styles.d.ts","sourceRoot":"","sources":["../src/Carousel.styles.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Carousel.styles.d.ts","sourceRoot":"","sources":["../src/Carousel.styles.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,iBAAiB,EAIlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,EAAE,iBAAiB,CAAC;IAClC,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;;;;;;;;;;;;;;AAED,wBAiJE"}
|
|
@@ -5,9 +5,9 @@ export type CarouselSlideStylesNames = Selectors<typeof useStyles>;
|
|
|
5
5
|
export interface CarouselSlideProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {
|
|
6
6
|
/** Slide content */
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
-
/** Slide width, defaults to 100%, examples:
|
|
8
|
+
/** Slide width, defaults to 100%, examples: 40rem, 50% */
|
|
9
9
|
size?: string | number;
|
|
10
|
-
/** Key of theme.spacing or number to set gap between slides
|
|
10
|
+
/** Key of theme.spacing or number to set gap between slides */
|
|
11
11
|
gap?: MantineNumberSize;
|
|
12
12
|
}
|
|
13
13
|
export declare const CarouselSlide: React.ForwardRefExoticComponent<CarouselSlideProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.d.ts","sourceRoot":"","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAO,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAmB,SAAQ,YAAY,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC7F,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB
|
|
1
|
+
{"version":3,"file":"CarouselSlide.d.ts","sourceRoot":"","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAO,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAmB,SAAQ,YAAY,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC7F,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,2FAmCzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.styles.d.ts","sourceRoot":"","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CarouselSlide.styles.d.ts","sourceRoot":"","sources":["../../src/CarouselSlide/CarouselSlide.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,iBAAiB,CAAC;IACvB,WAAW,EAAE,mBAAmB,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;;;;;;;;AAED,wBAgEE"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/carousel",
|
|
3
3
|
"description": "Embla based carousel",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "6.0.0-alpha.0",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"slick"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@mantine/core": "
|
|
27
|
-
"@mantine/hooks": "
|
|
26
|
+
"@mantine/core": "6.0.0-alpha.0",
|
|
27
|
+
"@mantine/hooks": "6.0.0-alpha.0",
|
|
28
28
|
"embla-carousel-react": "^7.0.0",
|
|
29
29
|
"react": ">=16.8.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@mantine/utils": "
|
|
32
|
+
"@mantine/utils": "6.0.0-alpha.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {}
|
|
35
35
|
}
|