@mantine/carousel 7.0.2 → 7.1.1-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 +1 -0
- package/cjs/Carousel.context.js.map +1 -1
- package/cjs/Carousel.js +1 -0
- package/cjs/Carousel.js.map +1 -1
- package/cjs/Carousel.module.css.js +1 -0
- package/cjs/Carousel.module.css.js.map +1 -1
- package/cjs/CarouselSlide/CarouselSlide.js +1 -0
- package/cjs/CarouselSlide/CarouselSlide.js.map +1 -1
- package/cjs/CarouselVariables/CarouselVariables.js +1 -0
- package/cjs/CarouselVariables/CarouselVariables.js.map +1 -1
- package/cjs/get-chevron-rotation.js +1 -0
- package/cjs/get-chevron-rotation.js.map +1 -1
- package/cjs/index.css +1 -205
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +1 -1
- package/cjs/use-animation-offset-effect.js +1 -0
- package/cjs/use-animation-offset-effect.js.map +1 -1
- package/esm/Carousel.context.mjs +1 -0
- package/esm/Carousel.context.mjs.map +1 -1
- package/esm/Carousel.mjs +1 -0
- package/esm/Carousel.mjs.map +1 -1
- package/esm/Carousel.module.mjs +1 -0
- package/esm/Carousel.module.mjs.map +1 -1
- package/esm/CarouselSlide/CarouselSlide.mjs +1 -0
- package/esm/CarouselSlide/CarouselSlide.mjs.map +1 -1
- package/esm/CarouselVariables/CarouselVariables.mjs +1 -0
- package/esm/CarouselVariables/CarouselVariables.mjs.map +1 -1
- package/esm/get-chevron-rotation.mjs +1 -0
- package/esm/get-chevron-rotation.mjs.map +1 -1
- package/esm/index.css +1 -205
- package/esm/index.layer.css +1 -0
- package/esm/index.mjs +0 -1
- package/esm/index.mjs.map +1 -1
- package/esm/use-animation-offset-effect.mjs +1 -0
- package/esm/use-animation-offset-effect.mjs.map +1 -1
- package/package.json +4 -3
package/cjs/Carousel.context.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { CarouselFactory } from './Carousel';\n\ninterface CarouselContextValue {\n getStyles: GetStylesApi<CarouselFactory>;\n orientation: 'horizontal' | 'vertical' | undefined;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContextValue>(\n 'Carousel component was not found in tree'\n);\n"],"names":["createSafeContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Carousel.context.js","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { CarouselFactory } from './Carousel';\n\ninterface CarouselContextValue {\n getStyles: GetStylesApi<CarouselFactory>;\n orientation: 'horizontal' | 'vertical' | undefined;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContextValue>(\n 'Carousel component was not found in tree'\n);\n"],"names":["createSafeContext"],"mappings":";;;;;;;AACY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAGA,sBAAiB;AACvE,EAAE,0CAA0C;AAC5C;;;"}
|
package/cjs/Carousel.js
CHANGED
package/cjs/Carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["import React, { Children, useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSpacing,\n StyleProp,\n useDirection,\n UnstyledButton,\n AccordionChevron,\n useRandomClassName,\n rem,\n getSpacing,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType, EmblaCarouselType } from 'embla-carousel-react';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselSlide } from './CarouselSlide/CarouselSlide';\nimport { CarouselVariables } from './CarouselVariables/CarouselVariables';\nimport classes from './Carousel.module.css';\n\nexport type CarouselStylesNames =\n | 'slide'\n | 'root'\n | 'viewport'\n | 'container'\n | 'controls'\n | 'control'\n | 'indicators'\n | 'indicator';\n\nexport type CarouselCssVariables = {\n root: '--carousel-height' | '--carousel-control-size' | '--carousel-controls-offset';\n};\n\nexport interface CarouselProps\n extends BoxProps,\n StylesApiProps<CarouselFactory>,\n ElementProps<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when next slide is shown */\n onNextSlide?(): void;\n\n /** Called when previous slider is shown */\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: EmblaCarouselType): void;\n\n /** Props passed down to next control */\n nextControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Props passed down to previous control */\n previousControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Controls size of the next and previous controls, `26` by default */\n controlSize?: React.CSSProperties['width'];\n\n /** Controls position of the next and previous controls, key of `theme.spacing` or any valid CSS value, `'sm'` by default */\n controlsOffset?: MantineSpacing;\n\n /** Controls slide width based on viewport width, `'100%'` by default */\n slideSize?: StyleProp<string | number>;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: StyleProp<MantineSpacing>;\n\n /** Carousel orientation, `'horizontal'` by default */\n orientation?: 'horizontal' | 'vertical';\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 is 50%, `'center'` by default */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that will be scrolled with next/previous buttons, `1` by default */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap between slides should be treated as part of the slide size, `true` by default */\n includeGapInSize?: boolean;\n\n /** Determines whether the 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. `true` by default, 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 the next control */\n nextControlIcon?: React.ReactNode;\n\n /** Icon of the previous control */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it is 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\nexport type CarouselFactory = Factory<{\n props: CarouselProps;\n ref: HTMLDivElement;\n stylesNames: CarouselStylesNames;\n vars: CarouselCssVariables;\n staticComponents: {\n Slide: typeof CarouselSlide;\n };\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\nconst varsResolver = createVarsResolver<CarouselFactory>(\n (_, { height, controlSize, controlsOffset }) => ({\n root: {\n '--carousel-height': rem(height),\n '--carousel-control-size': rem(controlSize),\n '--carousel-controls-offset': getSpacing(controlsOffset),\n },\n })\n);\n\nexport const Carousel = factory<CarouselFactory>((_props, ref) => {\n const props = useProps('Carousel', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlProps,\n previousControlProps,\n controlSize,\n controlsOffset,\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 skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = props;\n\n const getStyles = useStyles<CarouselFactory>({\n name: 'Carousel',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const responsiveClassName = useRandomClassName();\n const { dir } = useDirection();\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: orientation === 'horizontal' ? dir : undefined,\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 {...getStyles('indicator')}\n key={index}\n data-active={index === selected || undefined}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider value={{ getStyles, orientation }}>\n <CarouselVariables {...props} selector={`.${responsiveClassName}`} />\n <Box\n ref={ref}\n {...getStyles('root', { className: responsiveClassName })}\n {...others}\n mod={{ orientation, 'include-gap-in-size': includeGapInSize }}\n onKeyDownCapture={handleKeydown}\n >\n <div {...getStyles('viewport')} ref={emblaRefElement}>\n <div {...getStyles('container')} data-orientation={orientation}>\n {children}\n </div>\n </div>\n\n {withIndicators && <div {...getStyles('indicators')}>{indicators}</div>}\n\n {withControls && (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...previousControlProps}\n {...getStyles('control')}\n onClick={handlePrevious}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n {...getStyles('control')}\n {...nextControlProps}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n});\n\nCarousel.classes = classes;\nCarousel.displayName = '@mantine/core/Carousel';\nCarousel.Slide = CarouselSlide;\n"],"names":["createVarsResolver","rem","getSpacing","factory","useProps","useStyles","classes","useRandomClassName","useDirection","useEmblaCarousel","useState","useCallback","useEffect","clamp","Children","React","UnstyledButton","CarouselProvider","CarouselVariables","Box","AccordionChevron","getChevronRotation","CarouselSlide"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../src/Carousel.tsx"],"sourcesContent":["import React, { Children, useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSpacing,\n StyleProp,\n useDirection,\n UnstyledButton,\n AccordionChevron,\n useRandomClassName,\n rem,\n getSpacing,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType, EmblaCarouselType } from 'embla-carousel-react';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselSlide } from './CarouselSlide/CarouselSlide';\nimport { CarouselVariables } from './CarouselVariables/CarouselVariables';\nimport classes from './Carousel.module.css';\n\nexport type CarouselStylesNames =\n | 'slide'\n | 'root'\n | 'viewport'\n | 'container'\n | 'controls'\n | 'control'\n | 'indicators'\n | 'indicator';\n\nexport type CarouselCssVariables = {\n root: '--carousel-height' | '--carousel-control-size' | '--carousel-controls-offset';\n};\n\nexport interface CarouselProps\n extends BoxProps,\n StylesApiProps<CarouselFactory>,\n ElementProps<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when next slide is shown */\n onNextSlide?(): void;\n\n /** Called when previous slider is shown */\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: EmblaCarouselType): void;\n\n /** Props passed down to next control */\n nextControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Props passed down to previous control */\n previousControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Controls size of the next and previous controls, `26` by default */\n controlSize?: React.CSSProperties['width'];\n\n /** Controls position of the next and previous controls, key of `theme.spacing` or any valid CSS value, `'sm'` by default */\n controlsOffset?: MantineSpacing;\n\n /** Controls slide width based on viewport width, `'100%'` by default */\n slideSize?: StyleProp<string | number>;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: StyleProp<MantineSpacing>;\n\n /** Carousel orientation, `'horizontal'` by default */\n orientation?: 'horizontal' | 'vertical';\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 is 50%, `'center'` by default */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that will be scrolled with next/previous buttons, `1` by default */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap between slides should be treated as part of the slide size, `true` by default */\n includeGapInSize?: boolean;\n\n /** Determines whether the 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. `true` by default, 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 the next control */\n nextControlIcon?: React.ReactNode;\n\n /** Icon of the previous control */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it is 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\nexport type CarouselFactory = Factory<{\n props: CarouselProps;\n ref: HTMLDivElement;\n stylesNames: CarouselStylesNames;\n vars: CarouselCssVariables;\n staticComponents: {\n Slide: typeof CarouselSlide;\n };\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\nconst varsResolver = createVarsResolver<CarouselFactory>(\n (_, { height, controlSize, controlsOffset }) => ({\n root: {\n '--carousel-height': rem(height),\n '--carousel-control-size': rem(controlSize),\n '--carousel-controls-offset': getSpacing(controlsOffset),\n },\n })\n);\n\nexport const Carousel = factory<CarouselFactory>((_props, ref) => {\n const props = useProps('Carousel', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlProps,\n previousControlProps,\n controlSize,\n controlsOffset,\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 skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = props;\n\n const getStyles = useStyles<CarouselFactory>({\n name: 'Carousel',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const responsiveClassName = useRandomClassName();\n const { dir } = useDirection();\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: orientation === 'horizontal' ? dir : undefined,\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 {...getStyles('indicator')}\n key={index}\n data-active={index === selected || undefined}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider value={{ getStyles, orientation }}>\n <CarouselVariables {...props} selector={`.${responsiveClassName}`} />\n <Box\n ref={ref}\n {...getStyles('root', { className: responsiveClassName })}\n {...others}\n mod={{ orientation, 'include-gap-in-size': includeGapInSize }}\n onKeyDownCapture={handleKeydown}\n >\n <div {...getStyles('viewport')} ref={emblaRefElement}>\n <div {...getStyles('container')} data-orientation={orientation}>\n {children}\n </div>\n </div>\n\n {withIndicators && <div {...getStyles('indicators')}>{indicators}</div>}\n\n {withControls && (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...previousControlProps}\n {...getStyles('control')}\n onClick={handlePrevious}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n {...getStyles('control')}\n {...nextControlProps}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n});\n\nCarousel.classes = classes;\nCarousel.displayName = '@mantine/core/Carousel';\nCarousel.Slide = CarouselSlide;\n"],"names":["createVarsResolver","rem","getSpacing","factory","useProps","useStyles","classes","useRandomClassName","useDirection","useEmblaCarousel","useState","useCallback","useEffect","clamp","Children","React","UnstyledButton","CarouselProvider","CarouselVariables","Box","AccordionChevron","getChevronRotation","CarouselSlide"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Carousel.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport classes from '../Carousel.module.css';\n\nexport type CarouselSlideStylesNames = 'slide';\n\nexport interface CarouselSlideProps\n extends BoxProps,\n CompoundStylesApiProps<CarouselSlideFactory>,\n ElementProps<'div'> {}\n\nexport type CarouselSlideFactory = Factory<{\n props: CarouselSlideProps;\n ref: HTMLDivElement;\n stylesNames: CarouselSlideStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CarouselSlideProps> = {};\n\nexport const CarouselSlide = factory<CarouselSlideFactory>((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'CarouselSlide',\n defaultProps,\n props\n );\n\n const ctx = useCarouselContext();\n\n return (\n <Box\n ref={ref}\n mod={{ orientation: ctx.orientation }}\n {...ctx.getStyles('slide', { className, style, classNames, styles })}\n {...others}\n />\n );\n});\n\nCarouselSlide.classes = classes;\nCarouselSlide.displayName = '@mantine/core/CarouselSlide';\n"],"names":["factory","useProps","useCarouselContext","React","Box","classes"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselSlide.js","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport classes from '../Carousel.module.css';\n\nexport type CarouselSlideStylesNames = 'slide';\n\nexport interface CarouselSlideProps\n extends BoxProps,\n CompoundStylesApiProps<CarouselSlideFactory>,\n ElementProps<'div'> {}\n\nexport type CarouselSlideFactory = Factory<{\n props: CarouselSlideProps;\n ref: HTMLDivElement;\n stylesNames: CarouselSlideStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CarouselSlideProps> = {};\n\nexport const CarouselSlide = factory<CarouselSlideFactory>((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'CarouselSlide',\n defaultProps,\n props\n );\n\n const ctx = useCarouselContext();\n\n return (\n <Box\n ref={ref}\n mod={{ orientation: ctx.orientation }}\n {...ctx.getStyles('slide', { className, style, classNames, styles })}\n {...others}\n />\n );\n});\n\nCarouselSlide.classes = classes;\nCarouselSlide.displayName = '@mantine/core/CarouselSlide';\n"],"names":["factory","useProps","useCarouselContext","React","Box","classes"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselVariables.js","sources":["../../src/CarouselVariables/CarouselVariables.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getSortedBreakpoints,\n useMantineTheme,\n keys,\n getSpacing,\n MantineBreakpoint,\n filterProps,\n InlineStyles,\n getBaseValue,\n} from '@mantine/core';\nimport type { CarouselProps } from '../Carousel';\n\ninterface CarouselVariablesProps extends CarouselProps {\n selector: string;\n}\n\nexport function CarouselVariables({ slideGap, slideSize, selector }: CarouselVariablesProps) {\n const theme = useMantineTheme();\n\n const baseStyles: Record<string, string | undefined> = filterProps({\n '--carousel-slide-gap': getSpacing(getBaseValue(slideGap)),\n '--carousel-slide-size': getBaseValue(slideSize)?.toString(),\n });\n\n const queries = keys(theme.breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n if (!acc[breakpoint]) {\n acc[breakpoint] = {};\n }\n\n if (typeof slideGap === 'object' && slideGap[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-gap'] = getSpacing(slideGap[breakpoint]);\n }\n\n if (typeof slideSize === 'object' && slideSize[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-size'] = getSpacing(slideSize[breakpoint]);\n }\n\n return acc;\n },\n {}\n );\n\n const sortedBreakpoints = getSortedBreakpoints(keys(queries), theme).filter(\n (breakpoint) => keys(queries[breakpoint.value]).length > 0\n );\n\n const media = sortedBreakpoints.map((breakpoint) => ({\n query: `(min-width: ${theme.breakpoints[breakpoint.value as MantineBreakpoint]})`,\n styles: queries[breakpoint.value],\n }));\n\n return <InlineStyles styles={baseStyles} media={media} selector={selector} />;\n}\n"],"names":["useMantineTheme","filterProps","getSpacing","getBaseValue","keys","getSortedBreakpoints","React","InlineStyles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselVariables.js","sources":["../../src/CarouselVariables/CarouselVariables.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getSortedBreakpoints,\n useMantineTheme,\n keys,\n getSpacing,\n MantineBreakpoint,\n filterProps,\n InlineStyles,\n getBaseValue,\n} from '@mantine/core';\nimport type { CarouselProps } from '../Carousel';\n\ninterface CarouselVariablesProps extends CarouselProps {\n selector: string;\n}\n\nexport function CarouselVariables({ slideGap, slideSize, selector }: CarouselVariablesProps) {\n const theme = useMantineTheme();\n\n const baseStyles: Record<string, string | undefined> = filterProps({\n '--carousel-slide-gap': getSpacing(getBaseValue(slideGap)),\n '--carousel-slide-size': getBaseValue(slideSize)?.toString(),\n });\n\n const queries = keys(theme.breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n if (!acc[breakpoint]) {\n acc[breakpoint] = {};\n }\n\n if (typeof slideGap === 'object' && slideGap[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-gap'] = getSpacing(slideGap[breakpoint]);\n }\n\n if (typeof slideSize === 'object' && slideSize[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-size'] = getSpacing(slideSize[breakpoint]);\n }\n\n return acc;\n },\n {}\n );\n\n const sortedBreakpoints = getSortedBreakpoints(keys(queries), theme).filter(\n (breakpoint) => keys(queries[breakpoint.value]).length > 0\n );\n\n const media = sortedBreakpoints.map((breakpoint) => ({\n query: `(min-width: ${theme.breakpoints[breakpoint.value as MantineBreakpoint]})`,\n styles: queries[breakpoint.value],\n }));\n\n return <InlineStyles styles={baseStyles} media={media} selector={selector} />;\n}\n"],"names":["useMantineTheme","filterProps","getSpacing","getBaseValue","keys","getSortedBreakpoints","React","InlineStyles"],"mappings":";;;;;;;;;;;;AAUO,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AACrE,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,MAAM,KAAK,GAAGA,oBAAe,EAAE,CAAC;AAClC,EAAE,MAAM,UAAU,GAAGC,gBAAW,CAAC;AACjC,IAAI,sBAAsB,EAAEC,eAAU,CAACC,iBAAY,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAI,uBAAuB,EAAE,CAAC,EAAE,GAAGA,iBAAY,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AAC5F,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,OAAO,GAAGC,SAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM;AAChD,IAAI,CAAC,GAAG,EAAE,UAAU,KAAK;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC5B,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,OAAO;AACP,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE;AAC3E,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,GAAGF,eAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACnF,OAAO;AACP,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE;AAC7E,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,GAAGA,eAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,EAAE;AACN,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAGG,yBAAoB,CAACD,SAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM;AAC7E,IAAI,CAAC,UAAU,KAAKA,SAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAC9D,GAAG,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM;AACvD,IAAI,KAAK,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,IAAI,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,uBAAuBE,cAAK,CAAC,aAAa,CAACC,iBAAY,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-chevron-rotation.js","sources":["../src/get-chevron-rotation.ts"],"sourcesContent":["interface Options {\n dir: 'rtl' | 'ltr';\n orientation: 'horizontal' | 'vertical' | undefined;\n direction: 'next' | 'previous';\n}\n\nexport function getChevronRotation({ dir, orientation, direction }: Options) {\n if (direction === 'previous') {\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? 1 : -1) : -180;\n }\n\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? -1 : 1) : 0;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-chevron-rotation.js","sources":["../src/get-chevron-rotation.ts"],"sourcesContent":["interface Options {\n dir: 'rtl' | 'ltr';\n orientation: 'horizontal' | 'vertical' | undefined;\n direction: 'next' | 'previous';\n}\n\nexport function getChevronRotation({ dir, orientation, direction }: Options) {\n if (direction === 'previous') {\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? 1 : -1) : -180;\n }\n\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? -1 : 1) : 0;\n}\n"],"names":[],"mappings":";;;;;AAAO,SAAS,kBAAkB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;AACpE,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AAChC,IAAI,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/E,GAAG;AACH,EAAE,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E;;"}
|
package/cjs/index.css
CHANGED
|
@@ -1,205 +1 @@
|
|
|
1
|
-
.m-17884d0f {
|
|
2
|
-
position: relative;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.m-a2dae653 {
|
|
6
|
-
height: var(--carousel-height, auto);
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.m-fcd81474 {
|
|
11
|
-
display: flex;
|
|
12
|
-
flex-direction: var(--_container-direction, row);
|
|
13
|
-
height: var(--carousel-height, auto);
|
|
14
|
-
margin-right: var(--_container-mr);
|
|
15
|
-
margin-left: var(--_container-ml);
|
|
16
|
-
margin-bottom: var(--_container-mb);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
[data-include-gap-in-size] .m-fcd81474[data-orientation='vertical'] {
|
|
20
|
-
--_container-mb: calc(var(--carousel-slide-gap) * -1);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
[data-include-gap-in-size] .m-fcd81474[data-orientation='horizontal'] {
|
|
24
|
-
--_container-mr: calc(var(--carousel-slide-gap) * -1);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
[dir="rtl"] [data-include-gap-in-size] .m-fcd81474[data-orientation='horizontal'] {
|
|
28
|
-
--_container-ml: calc(var(--carousel-slide-gap) * -1);
|
|
29
|
-
--_container-mr: 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.m-fcd81474[data-orientation='vertical'] {
|
|
33
|
-
--_container-direction: column;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.m-39bc3463 {
|
|
37
|
-
position: absolute;
|
|
38
|
-
display: flex;
|
|
39
|
-
align-items: center;
|
|
40
|
-
justify-content: space-between;
|
|
41
|
-
z-index: 1;
|
|
42
|
-
pointer-events: none;
|
|
43
|
-
flex-direction: var(--_controls-direction);
|
|
44
|
-
left: var(--_controls-left);
|
|
45
|
-
right: var(--_controls-right);
|
|
46
|
-
top: var(--_controls-top);
|
|
47
|
-
bottom: var(--_controls-bottom);
|
|
48
|
-
padding: var(--_controls-padding);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.m-17884d0f[data-orientation='vertical'] .m-39bc3463 {
|
|
52
|
-
--_controls-left: calc(50% - var(--carousel-control-size) / 2);
|
|
53
|
-
--_controls-top: 0;
|
|
54
|
-
--_controls-bottom: 0;
|
|
55
|
-
--_controls-direction: column;
|
|
56
|
-
--_controls-padding: var(--carousel-controls-offset) 0;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.m-17884d0f[data-orientation='horizontal'] .m-39bc3463 {
|
|
60
|
-
--_controls-left: 0;
|
|
61
|
-
--_controls-right: 0;
|
|
62
|
-
--_controls-top: calc(50% - var(--carousel-control-size) / 2);
|
|
63
|
-
--_controls-direction: row;
|
|
64
|
-
--_controls-padding: 0 var(--carousel-controls-offset);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.m-64f58e10 {
|
|
68
|
-
display: flex;
|
|
69
|
-
justify-content: center;
|
|
70
|
-
align-items: center;
|
|
71
|
-
min-width: var(--carousel-control-size);
|
|
72
|
-
min-height: var(--carousel-control-size);
|
|
73
|
-
border-radius: var(--carousel-control-size);
|
|
74
|
-
pointer-events: all;
|
|
75
|
-
background-color: var(--mantine-color-white);
|
|
76
|
-
color: var(--mantine-color-black);
|
|
77
|
-
box-shadow: var(--mantine-shadow-md);
|
|
78
|
-
opacity: var(--_control-opacity);
|
|
79
|
-
border: calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-gray-3);
|
|
80
|
-
transition: opacity 100ms ease;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
[data-mantine-color-scheme='light'] .m-64f58e10 {
|
|
84
|
-
--_control-opacity: 0.85;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
[data-mantine-color-scheme='dark'] .m-64f58e10 {
|
|
88
|
-
--_control-opacity: 0.65;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
@media (hover: hover) {
|
|
92
|
-
|
|
93
|
-
.m-64f58e10:hover {
|
|
94
|
-
--_control-opacity: 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@media (hover: none) {
|
|
99
|
-
|
|
100
|
-
.m-64f58e10:active {
|
|
101
|
-
--_control-opacity: 1;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.m-71ea3ab1 {
|
|
106
|
-
position: absolute;
|
|
107
|
-
display: flex;
|
|
108
|
-
justify-content: center;
|
|
109
|
-
gap: calc(0.5rem * var(--mantine-scale));
|
|
110
|
-
pointer-events: none;
|
|
111
|
-
flex-direction: var(--_indicators-direction);
|
|
112
|
-
bottom: var(--_indicators-bottom);
|
|
113
|
-
left: var(--_indicators-left);
|
|
114
|
-
right: var(--_indicators-right);
|
|
115
|
-
top: var(--_indicators-top);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.m-17884d0f[data-orientation='vertical'] .m-71ea3ab1 {
|
|
119
|
-
--_indicators-bottom: 0;
|
|
120
|
-
--_indicators-top: 0;
|
|
121
|
-
--_indicators-right: var(--mantine-spacing-md);
|
|
122
|
-
--_indicators-direction: column;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.m-17884d0f[data-orientation='horizontal'] .m-71ea3ab1 {
|
|
126
|
-
--_indicators-bottom: var(--mantine-spacing-md);
|
|
127
|
-
--_indicators-left: 0;
|
|
128
|
-
--_indicators-right: 0;
|
|
129
|
-
--_indicators-direction: row;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.m-eae68602 {
|
|
133
|
-
pointer-events: all;
|
|
134
|
-
width: var(--_indicator-width);
|
|
135
|
-
height: var(--_indicator-height);
|
|
136
|
-
border-radius: var(--mantine-radius-xl);
|
|
137
|
-
box-shadow: var(--mantine-shadow-sm);
|
|
138
|
-
opacity: var(--_indicator-opacity, 0.6);
|
|
139
|
-
background-color: var(--mantine-color-white);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
@media (hover: hover) {
|
|
143
|
-
|
|
144
|
-
.m-eae68602:hover {
|
|
145
|
-
--_indicator-opacity: 1;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
@media (hover: none) {
|
|
150
|
-
|
|
151
|
-
.m-eae68602:active {
|
|
152
|
-
--_indicator-opacity: 1;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.m-eae68602[data-active] {
|
|
157
|
-
--_indicator-opacity: 1;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.m-17884d0f[data-orientation='vertical'] .m-eae68602 {
|
|
161
|
-
--_indicator-width: calc(0.3125rem * var(--mantine-scale));
|
|
162
|
-
--_indicator-height: calc(1.5625rem * var(--mantine-scale));
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.m-17884d0f[data-orientation='horizontal'] .m-eae68602 {
|
|
166
|
-
--_indicator-width: calc(1.5625rem * var(--mantine-scale));
|
|
167
|
-
--_indicator-height: calc(0.3125rem * var(--mantine-scale));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.m-d98df724 {
|
|
171
|
-
position: relative;
|
|
172
|
-
flex: 0 0 var(--carousel-slide-size);
|
|
173
|
-
padding-right: var(--_slide-pr, 0);
|
|
174
|
-
padding-left: var(--_slide-pl, 0);
|
|
175
|
-
padding-bottom: var(--_slide-pb, 0);
|
|
176
|
-
margin-right: var(--_slide-mr, 0);
|
|
177
|
-
margin-left: var(--_slide-ml, 0);
|
|
178
|
-
margin-bottom: var(--_slide-mb, 0);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='vertical'] {
|
|
182
|
-
--_slide-pb: var(--carousel-slide-gap);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='horizontal'] {
|
|
186
|
-
--_slide-pr: var(--carousel-slide-gap);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
[dir="rtl"] .m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='horizontal'] {
|
|
190
|
-
--_slide-pl: var(--carousel-slide-gap);
|
|
191
|
-
--_slide-pr: 0;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='vertical'] {
|
|
195
|
-
--_slide-mb: var(--carousel-slide-gap);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='horizontal'] {
|
|
199
|
-
--_slide-mr: var(--carousel-slide-gap);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
[dir="rtl"] .m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='horizontal'] {
|
|
203
|
-
--_slide-ml: var(--carousel-slide-gap);
|
|
204
|
-
--_slide-mr: 0;
|
|
205
|
-
}
|
|
1
|
+
.m-17884d0f{position:relative}.m-a2dae653{overflow:hidden}.m-a2dae653,.m-fcd81474{height:var(--carousel-height,auto)}.m-fcd81474{display:flex;flex-direction:var(--_container-direction,row);margin-bottom:var(--_container-mb);margin-left:var(--_container-ml);margin-right:var(--_container-mr)}[data-include-gap-in-size] .m-fcd81474[data-orientation=vertical]{--_container-mb:calc(var(--carousel-slide-gap)*-1)}[data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-mr:calc(var(--carousel-slide-gap)*-1)}[dir=rtl] [data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-ml:calc(var(--carousel-slide-gap)*-1);--_container-mr:0}.m-fcd81474[data-orientation=vertical]{--_container-direction:column}.m-39bc3463{align-items:center;bottom:var(--_controls-bottom);display:flex;flex-direction:var(--_controls-direction);justify-content:space-between;left:var(--_controls-left);padding:var(--_controls-padding);pointer-events:none;position:absolute;right:var(--_controls-right);top:var(--_controls-top);z-index:1}.m-17884d0f[data-orientation=vertical] .m-39bc3463{--_controls-left:calc(50% - var(--carousel-control-size)/2);--_controls-top:0;--_controls-bottom:0;--_controls-direction:column;--_controls-padding:var(--carousel-controls-offset) 0}.m-17884d0f[data-orientation=horizontal] .m-39bc3463{--_controls-left:0;--_controls-right:0;--_controls-top:calc(50% - var(--carousel-control-size)/2);--_controls-direction:row;--_controls-padding:0 var(--carousel-controls-offset)}.m-64f58e10{align-items:center;background-color:var(--mantine-color-white);border:calc(.0625rem*var(--mantine-scale)) solid var(--mantine-color-gray-3);border-radius:var(--carousel-control-size);box-shadow:var(--mantine-shadow-md);color:var(--mantine-color-black);display:flex;justify-content:center;min-height:var(--carousel-control-size);min-width:var(--carousel-control-size);opacity:var(--_control-opacity);pointer-events:all;transition:opacity .1s ease}[data-mantine-color-scheme=light] .m-64f58e10{--_control-opacity:0.85}[data-mantine-color-scheme=dark] .m-64f58e10{--_control-opacity:0.65}@media (hover:hover){.m-64f58e10:hover{--_control-opacity:1}}@media (hover:none){.m-64f58e10:active{--_control-opacity:1}}.m-71ea3ab1{bottom:var(--_indicators-bottom);display:flex;flex-direction:var(--_indicators-direction);gap:calc(.5rem*var(--mantine-scale));justify-content:center;left:var(--_indicators-left);pointer-events:none;position:absolute;right:var(--_indicators-right);top:var(--_indicators-top)}.m-17884d0f[data-orientation=vertical] .m-71ea3ab1{--_indicators-bottom:0;--_indicators-top:0;--_indicators-right:var(--mantine-spacing-md);--_indicators-direction:column}.m-17884d0f[data-orientation=horizontal] .m-71ea3ab1{--_indicators-bottom:var(--mantine-spacing-md);--_indicators-left:0;--_indicators-right:0;--_indicators-direction:row}.m-eae68602{background-color:var(--mantine-color-white);border-radius:var(--mantine-radius-xl);box-shadow:var(--mantine-shadow-sm);height:var(--_indicator-height);opacity:var(--_indicator-opacity,.6);pointer-events:all;width:var(--_indicator-width)}@media (hover:hover){.m-eae68602:hover{--_indicator-opacity:1}}@media (hover:none){.m-eae68602:active{--_indicator-opacity:1}}.m-eae68602[data-active]{--_indicator-opacity:1}.m-17884d0f[data-orientation=vertical] .m-eae68602{--_indicator-width:calc(0.3125rem*var(--mantine-scale));--_indicator-height:calc(1.5625rem*var(--mantine-scale))}.m-17884d0f[data-orientation=horizontal] .m-eae68602{--_indicator-width:calc(1.5625rem*var(--mantine-scale));--_indicator-height:calc(0.3125rem*var(--mantine-scale))}.m-d98df724{flex:0 0 var(--carousel-slide-size);margin-bottom:var(--_slide-mb,0);margin-left:var(--_slide-ml,0);margin-right:var(--_slide-mr,0);padding-bottom:var(--_slide-pb,0);padding-left:var(--_slide-pl,0);padding-right:var(--_slide-pr,0);position:relative}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=vertical]{--_slide-pb:var(--carousel-slide-gap)}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pl:var(--carousel-slide-gap);--_slide-pr:0}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=vertical]{--_slide-mb:var(--carousel-slide-gap)}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-mr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-ml:var(--carousel-slide-gap);--_slide-mr:0}
|
package/cjs/index.js
CHANGED
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-animation-offset-effect.js","sources":["../src/use-animation-offset-effect.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel-react';\n\nexport function useAnimationOffsetEffect(\n embla: EmblaCarouselType | null | undefined,\n transitionDuration: number\n) {\n useEffect(() => {\n if (embla) {\n window.setTimeout(() => {\n embla.reInit();\n }, transitionDuration);\n }\n }, [embla, transitionDuration]);\n}\n"],"names":["useEffect"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-animation-offset-effect.js","sources":["../src/use-animation-offset-effect.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel-react';\n\nexport function useAnimationOffsetEffect(\n embla: EmblaCarouselType | null | undefined,\n transitionDuration: number\n) {\n useEffect(() => {\n if (embla) {\n window.setTimeout(() => {\n embla.reInit();\n }, transitionDuration);\n }\n }, [embla, transitionDuration]);\n}\n"],"names":["useEffect"],"mappings":";;;;;;;AACO,SAAS,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE;AACpE,EAAEA,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM;AAC9B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;AACvB,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAClC;;"}
|
package/esm/Carousel.context.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.context.mjs","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { CarouselFactory } from './Carousel';\n\ninterface CarouselContextValue {\n getStyles: GetStylesApi<CarouselFactory>;\n orientation: 'horizontal' | 'vertical' | undefined;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContextValue>(\n 'Carousel component was not found in tree'\n);\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Carousel.context.mjs","sources":["../src/Carousel.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { CarouselFactory } from './Carousel';\n\ninterface CarouselContextValue {\n getStyles: GetStylesApi<CarouselFactory>;\n orientation: 'horizontal' | 'vertical' | undefined;\n}\n\nexport const [CarouselProvider, useCarouselContext] = createSafeContext<CarouselContextValue>(\n 'Carousel component was not found in tree'\n);\n"],"names":[],"mappings":";;;AACY,MAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,iBAAiB;AACvE,EAAE,0CAA0C;AAC5C;;"}
|
package/esm/Carousel.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import React, { useState, useCallback, useEffect, Children } from 'react';
|
|
2
3
|
import { createVarsResolver, rem, getSpacing, factory, useProps, useStyles, useRandomClassName, useDirection, UnstyledButton, Box, AccordionChevron } from '@mantine/core';
|
|
3
4
|
import { clamp } from '@mantine/hooks';
|
package/esm/Carousel.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.mjs","sources":["../src/Carousel.tsx"],"sourcesContent":["import React, { Children, useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSpacing,\n StyleProp,\n useDirection,\n UnstyledButton,\n AccordionChevron,\n useRandomClassName,\n rem,\n getSpacing,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType, EmblaCarouselType } from 'embla-carousel-react';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselSlide } from './CarouselSlide/CarouselSlide';\nimport { CarouselVariables } from './CarouselVariables/CarouselVariables';\nimport classes from './Carousel.module.css';\n\nexport type CarouselStylesNames =\n | 'slide'\n | 'root'\n | 'viewport'\n | 'container'\n | 'controls'\n | 'control'\n | 'indicators'\n | 'indicator';\n\nexport type CarouselCssVariables = {\n root: '--carousel-height' | '--carousel-control-size' | '--carousel-controls-offset';\n};\n\nexport interface CarouselProps\n extends BoxProps,\n StylesApiProps<CarouselFactory>,\n ElementProps<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when next slide is shown */\n onNextSlide?(): void;\n\n /** Called when previous slider is shown */\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: EmblaCarouselType): void;\n\n /** Props passed down to next control */\n nextControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Props passed down to previous control */\n previousControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Controls size of the next and previous controls, `26` by default */\n controlSize?: React.CSSProperties['width'];\n\n /** Controls position of the next and previous controls, key of `theme.spacing` or any valid CSS value, `'sm'` by default */\n controlsOffset?: MantineSpacing;\n\n /** Controls slide width based on viewport width, `'100%'` by default */\n slideSize?: StyleProp<string | number>;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: StyleProp<MantineSpacing>;\n\n /** Carousel orientation, `'horizontal'` by default */\n orientation?: 'horizontal' | 'vertical';\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 is 50%, `'center'` by default */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that will be scrolled with next/previous buttons, `1` by default */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap between slides should be treated as part of the slide size, `true` by default */\n includeGapInSize?: boolean;\n\n /** Determines whether the 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. `true` by default, 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 the next control */\n nextControlIcon?: React.ReactNode;\n\n /** Icon of the previous control */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it is 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\nexport type CarouselFactory = Factory<{\n props: CarouselProps;\n ref: HTMLDivElement;\n stylesNames: CarouselStylesNames;\n vars: CarouselCssVariables;\n staticComponents: {\n Slide: typeof CarouselSlide;\n };\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\nconst varsResolver = createVarsResolver<CarouselFactory>(\n (_, { height, controlSize, controlsOffset }) => ({\n root: {\n '--carousel-height': rem(height),\n '--carousel-control-size': rem(controlSize),\n '--carousel-controls-offset': getSpacing(controlsOffset),\n },\n })\n);\n\nexport const Carousel = factory<CarouselFactory>((_props, ref) => {\n const props = useProps('Carousel', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlProps,\n previousControlProps,\n controlSize,\n controlsOffset,\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 skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = props;\n\n const getStyles = useStyles<CarouselFactory>({\n name: 'Carousel',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const responsiveClassName = useRandomClassName();\n const { dir } = useDirection();\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: orientation === 'horizontal' ? dir : undefined,\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 {...getStyles('indicator')}\n key={index}\n data-active={index === selected || undefined}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider value={{ getStyles, orientation }}>\n <CarouselVariables {...props} selector={`.${responsiveClassName}`} />\n <Box\n ref={ref}\n {...getStyles('root', { className: responsiveClassName })}\n {...others}\n mod={{ orientation, 'include-gap-in-size': includeGapInSize }}\n onKeyDownCapture={handleKeydown}\n >\n <div {...getStyles('viewport')} ref={emblaRefElement}>\n <div {...getStyles('container')} data-orientation={orientation}>\n {children}\n </div>\n </div>\n\n {withIndicators && <div {...getStyles('indicators')}>{indicators}</div>}\n\n {withControls && (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...previousControlProps}\n {...getStyles('control')}\n onClick={handlePrevious}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n {...getStyles('control')}\n {...nextControlProps}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n});\n\nCarousel.classes = classes;\nCarousel.displayName = '@mantine/core/Carousel';\nCarousel.Slide = CarouselSlide;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Carousel.mjs","sources":["../src/Carousel.tsx"],"sourcesContent":["import React, { Children, useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineSpacing,\n StyleProp,\n useDirection,\n UnstyledButton,\n AccordionChevron,\n useRandomClassName,\n rem,\n getSpacing,\n} from '@mantine/core';\nimport { clamp } from '@mantine/hooks';\nimport useEmblaCarousel, { EmblaPluginType, EmblaCarouselType } from 'embla-carousel-react';\nimport { getChevronRotation } from './get-chevron-rotation';\nimport { CarouselProvider } from './Carousel.context';\nimport { CarouselSlide } from './CarouselSlide/CarouselSlide';\nimport { CarouselVariables } from './CarouselVariables/CarouselVariables';\nimport classes from './Carousel.module.css';\n\nexport type CarouselStylesNames =\n | 'slide'\n | 'root'\n | 'viewport'\n | 'container'\n | 'controls'\n | 'control'\n | 'indicators'\n | 'indicator';\n\nexport type CarouselCssVariables = {\n root: '--carousel-height' | '--carousel-control-size' | '--carousel-controls-offset';\n};\n\nexport interface CarouselProps\n extends BoxProps,\n StylesApiProps<CarouselFactory>,\n ElementProps<'div'> {\n /** <Carousel.Slide /> components */\n children?: React.ReactNode;\n\n /** Called when next slide is shown */\n onNextSlide?(): void;\n\n /** Called when previous slider is shown */\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: EmblaCarouselType): void;\n\n /** Props passed down to next control */\n nextControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Props passed down to previous control */\n previousControlProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Controls size of the next and previous controls, `26` by default */\n controlSize?: React.CSSProperties['width'];\n\n /** Controls position of the next and previous controls, key of `theme.spacing` or any valid CSS value, `'sm'` by default */\n controlsOffset?: MantineSpacing;\n\n /** Controls slide width based on viewport width, `'100%'` by default */\n slideSize?: StyleProp<string | number>;\n\n /** Key of theme.spacing or number to set gap between slides */\n slideGap?: StyleProp<MantineSpacing>;\n\n /** Carousel orientation, `'horizontal'` by default */\n orientation?: 'horizontal' | 'vertical';\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 is 50%, `'center'` by default */\n align?: 'start' | 'center' | 'end' | number;\n\n /** Number of slides that will be scrolled with next/previous buttons, `1` by default */\n slidesToScroll?: number | 'auto';\n\n /** Determines whether gap between slides should be treated as part of the slide size, `true` by default */\n includeGapInSize?: boolean;\n\n /** Determines whether the 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. `true` by default, 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 the next control */\n nextControlIcon?: React.ReactNode;\n\n /** Icon of the previous control */\n previousControlIcon?: React.ReactNode;\n\n /** Allow the carousel to skip scroll snaps if it is 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\nexport type CarouselFactory = Factory<{\n props: CarouselProps;\n ref: HTMLDivElement;\n stylesNames: CarouselStylesNames;\n vars: CarouselCssVariables;\n staticComponents: {\n Slide: typeof CarouselSlide;\n };\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\nconst varsResolver = createVarsResolver<CarouselFactory>(\n (_, { height, controlSize, controlsOffset }) => ({\n root: {\n '--carousel-height': rem(height),\n '--carousel-control-size': rem(controlSize),\n '--carousel-controls-offset': getSpacing(controlsOffset),\n },\n })\n);\n\nexport const Carousel = factory<CarouselFactory>((_props, ref) => {\n const props = useProps('Carousel', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n getEmblaApi,\n onNextSlide,\n onPreviousSlide,\n onSlideChange,\n nextControlProps,\n previousControlProps,\n controlSize,\n controlsOffset,\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 skipSnaps,\n containScroll,\n withKeyboardEvents,\n ...others\n } = props;\n\n const getStyles = useStyles<CarouselFactory>({\n name: 'Carousel',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const responsiveClassName = useRandomClassName();\n const { dir } = useDirection();\n\n const [emblaRefElement, embla] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n direction: orientation === 'horizontal' ? dir : undefined,\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 {...getStyles('indicator')}\n key={index}\n data-active={index === selected || undefined}\n aria-hidden\n tabIndex={-1}\n onClick={() => handleScroll(index)}\n />\n ));\n\n return (\n <CarouselProvider value={{ getStyles, orientation }}>\n <CarouselVariables {...props} selector={`.${responsiveClassName}`} />\n <Box\n ref={ref}\n {...getStyles('root', { className: responsiveClassName })}\n {...others}\n mod={{ orientation, 'include-gap-in-size': includeGapInSize }}\n onKeyDownCapture={handleKeydown}\n >\n <div {...getStyles('viewport')} ref={emblaRefElement}>\n <div {...getStyles('container')} data-orientation={orientation}>\n {children}\n </div>\n </div>\n\n {withIndicators && <div {...getStyles('indicators')}>{indicators}</div>}\n\n {withControls && (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...previousControlProps}\n {...getStyles('control')}\n onClick={handlePrevious}\n data-inactive={!canScrollPrev || undefined}\n tabIndex={canScrollPrev ? 0 : -1}\n >\n {typeof previousControlIcon !== 'undefined' ? (\n previousControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'previous',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n\n <UnstyledButton\n onClick={handleNext}\n {...getStyles('control')}\n {...nextControlProps}\n data-inactive={!canScrollNext || undefined}\n tabIndex={canScrollNext ? 0 : -1}\n >\n {typeof nextControlIcon !== 'undefined' ? (\n nextControlIcon\n ) : (\n <AccordionChevron\n style={{\n transform: `rotate(${getChevronRotation({\n dir,\n orientation,\n direction: 'next',\n })}deg)`,\n }}\n />\n )}\n </UnstyledButton>\n </div>\n )}\n </Box>\n </CarouselProvider>\n );\n});\n\nCarousel.classes = classes;\nCarousel.displayName = '@mantine/core/Carousel';\nCarousel.Slide = CarouselSlide;\n"],"names":[],"mappings":"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"}
|
package/esm/Carousel.module.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.module.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Carousel.module.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselSlide.mjs","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport classes from '../Carousel.module.css';\n\nexport type CarouselSlideStylesNames = 'slide';\n\nexport interface CarouselSlideProps\n extends BoxProps,\n CompoundStylesApiProps<CarouselSlideFactory>,\n ElementProps<'div'> {}\n\nexport type CarouselSlideFactory = Factory<{\n props: CarouselSlideProps;\n ref: HTMLDivElement;\n stylesNames: CarouselSlideStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CarouselSlideProps> = {};\n\nexport const CarouselSlide = factory<CarouselSlideFactory>((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'CarouselSlide',\n defaultProps,\n props\n );\n\n const ctx = useCarouselContext();\n\n return (\n <Box\n ref={ref}\n mod={{ orientation: ctx.orientation }}\n {...ctx.getStyles('slide', { className, style, classNames, styles })}\n {...others}\n />\n );\n});\n\nCarouselSlide.classes = classes;\nCarouselSlide.displayName = '@mantine/core/CarouselSlide';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselSlide.mjs","sources":["../../src/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '@mantine/core';\nimport { useCarouselContext } from '../Carousel.context';\nimport classes from '../Carousel.module.css';\n\nexport type CarouselSlideStylesNames = 'slide';\n\nexport interface CarouselSlideProps\n extends BoxProps,\n CompoundStylesApiProps<CarouselSlideFactory>,\n ElementProps<'div'> {}\n\nexport type CarouselSlideFactory = Factory<{\n props: CarouselSlideProps;\n ref: HTMLDivElement;\n stylesNames: CarouselSlideStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CarouselSlideProps> = {};\n\nexport const CarouselSlide = factory<CarouselSlideFactory>((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'CarouselSlide',\n defaultProps,\n props\n );\n\n const ctx = useCarouselContext();\n\n return (\n <Box\n ref={ref}\n mod={{ orientation: ctx.orientation }}\n {...ctx.getStyles('slide', { className, style, classNames, styles })}\n {...others}\n />\n );\n});\n\nCarouselSlide.classes = classes;\nCarouselSlide.displayName = '@mantine/core/CarouselSlide';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselVariables.mjs","sources":["../../src/CarouselVariables/CarouselVariables.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getSortedBreakpoints,\n useMantineTheme,\n keys,\n getSpacing,\n MantineBreakpoint,\n filterProps,\n InlineStyles,\n getBaseValue,\n} from '@mantine/core';\nimport type { CarouselProps } from '../Carousel';\n\ninterface CarouselVariablesProps extends CarouselProps {\n selector: string;\n}\n\nexport function CarouselVariables({ slideGap, slideSize, selector }: CarouselVariablesProps) {\n const theme = useMantineTheme();\n\n const baseStyles: Record<string, string | undefined> = filterProps({\n '--carousel-slide-gap': getSpacing(getBaseValue(slideGap)),\n '--carousel-slide-size': getBaseValue(slideSize)?.toString(),\n });\n\n const queries = keys(theme.breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n if (!acc[breakpoint]) {\n acc[breakpoint] = {};\n }\n\n if (typeof slideGap === 'object' && slideGap[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-gap'] = getSpacing(slideGap[breakpoint]);\n }\n\n if (typeof slideSize === 'object' && slideSize[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-size'] = getSpacing(slideSize[breakpoint]);\n }\n\n return acc;\n },\n {}\n );\n\n const sortedBreakpoints = getSortedBreakpoints(keys(queries), theme).filter(\n (breakpoint) => keys(queries[breakpoint.value]).length > 0\n );\n\n const media = sortedBreakpoints.map((breakpoint) => ({\n query: `(min-width: ${theme.breakpoints[breakpoint.value as MantineBreakpoint]})`,\n styles: queries[breakpoint.value],\n }));\n\n return <InlineStyles styles={baseStyles} media={media} selector={selector} />;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselVariables.mjs","sources":["../../src/CarouselVariables/CarouselVariables.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getSortedBreakpoints,\n useMantineTheme,\n keys,\n getSpacing,\n MantineBreakpoint,\n filterProps,\n InlineStyles,\n getBaseValue,\n} from '@mantine/core';\nimport type { CarouselProps } from '../Carousel';\n\ninterface CarouselVariablesProps extends CarouselProps {\n selector: string;\n}\n\nexport function CarouselVariables({ slideGap, slideSize, selector }: CarouselVariablesProps) {\n const theme = useMantineTheme();\n\n const baseStyles: Record<string, string | undefined> = filterProps({\n '--carousel-slide-gap': getSpacing(getBaseValue(slideGap)),\n '--carousel-slide-size': getBaseValue(slideSize)?.toString(),\n });\n\n const queries = keys(theme.breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n if (!acc[breakpoint]) {\n acc[breakpoint] = {};\n }\n\n if (typeof slideGap === 'object' && slideGap[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-gap'] = getSpacing(slideGap[breakpoint]);\n }\n\n if (typeof slideSize === 'object' && slideSize[breakpoint] !== undefined) {\n acc[breakpoint]['--carousel-slide-size'] = getSpacing(slideSize[breakpoint]);\n }\n\n return acc;\n },\n {}\n );\n\n const sortedBreakpoints = getSortedBreakpoints(keys(queries), theme).filter(\n (breakpoint) => keys(queries[breakpoint.value]).length > 0\n );\n\n const media = sortedBreakpoints.map((breakpoint) => ({\n query: `(min-width: ${theme.breakpoints[breakpoint.value as MantineBreakpoint]})`,\n styles: queries[breakpoint.value],\n }));\n\n return <InlineStyles styles={baseStyles} media={media} selector={selector} />;\n}\n"],"names":[],"mappings":";;;;AAUO,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AACrE,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAClC,EAAE,MAAM,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,sBAAsB,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAI,uBAAuB,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AAC5F,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM;AAChD,IAAI,CAAC,GAAG,EAAE,UAAU,KAAK;AACzB,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC5B,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,OAAO;AACP,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE;AAC3E,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACnF,OAAO;AACP,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE;AAC7E,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,EAAE;AACN,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM;AAC7E,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAC9D,GAAG,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM;AACvD,IAAI,KAAK,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,IAAI,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-chevron-rotation.mjs","sources":["../src/get-chevron-rotation.ts"],"sourcesContent":["interface Options {\n dir: 'rtl' | 'ltr';\n orientation: 'horizontal' | 'vertical' | undefined;\n direction: 'next' | 'previous';\n}\n\nexport function getChevronRotation({ dir, orientation, direction }: Options) {\n if (direction === 'previous') {\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? 1 : -1) : -180;\n }\n\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? -1 : 1) : 0;\n}\n"],"names":[],"mappings":"AAAO,SAAS,kBAAkB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;AACpE,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AAChC,IAAI,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/E,GAAG;AACH,EAAE,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E
|
|
1
|
+
{"version":3,"file":"get-chevron-rotation.mjs","sources":["../src/get-chevron-rotation.ts"],"sourcesContent":["interface Options {\n dir: 'rtl' | 'ltr';\n orientation: 'horizontal' | 'vertical' | undefined;\n direction: 'next' | 'previous';\n}\n\nexport function getChevronRotation({ dir, orientation, direction }: Options) {\n if (direction === 'previous') {\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? 1 : -1) : -180;\n }\n\n return orientation === 'horizontal' ? 90 * (dir === 'ltr' ? -1 : 1) : 0;\n}\n"],"names":[],"mappings":";AAAO,SAAS,kBAAkB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;AACpE,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE;AAChC,IAAI,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/E,GAAG;AACH,EAAE,OAAO,WAAW,KAAK,YAAY,GAAG,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E;;"}
|
package/esm/index.css
CHANGED
|
@@ -1,205 +1 @@
|
|
|
1
|
-
.m-17884d0f {
|
|
2
|
-
position: relative;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.m-a2dae653 {
|
|
6
|
-
height: var(--carousel-height, auto);
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.m-fcd81474 {
|
|
11
|
-
display: flex;
|
|
12
|
-
flex-direction: var(--_container-direction, row);
|
|
13
|
-
height: var(--carousel-height, auto);
|
|
14
|
-
margin-right: var(--_container-mr);
|
|
15
|
-
margin-left: var(--_container-ml);
|
|
16
|
-
margin-bottom: var(--_container-mb);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
[data-include-gap-in-size] .m-fcd81474[data-orientation='vertical'] {
|
|
20
|
-
--_container-mb: calc(var(--carousel-slide-gap) * -1);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
[data-include-gap-in-size] .m-fcd81474[data-orientation='horizontal'] {
|
|
24
|
-
--_container-mr: calc(var(--carousel-slide-gap) * -1);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
[dir="rtl"] [data-include-gap-in-size] .m-fcd81474[data-orientation='horizontal'] {
|
|
28
|
-
--_container-ml: calc(var(--carousel-slide-gap) * -1);
|
|
29
|
-
--_container-mr: 0;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.m-fcd81474[data-orientation='vertical'] {
|
|
33
|
-
--_container-direction: column;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.m-39bc3463 {
|
|
37
|
-
position: absolute;
|
|
38
|
-
display: flex;
|
|
39
|
-
align-items: center;
|
|
40
|
-
justify-content: space-between;
|
|
41
|
-
z-index: 1;
|
|
42
|
-
pointer-events: none;
|
|
43
|
-
flex-direction: var(--_controls-direction);
|
|
44
|
-
left: var(--_controls-left);
|
|
45
|
-
right: var(--_controls-right);
|
|
46
|
-
top: var(--_controls-top);
|
|
47
|
-
bottom: var(--_controls-bottom);
|
|
48
|
-
padding: var(--_controls-padding);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.m-17884d0f[data-orientation='vertical'] .m-39bc3463 {
|
|
52
|
-
--_controls-left: calc(50% - var(--carousel-control-size) / 2);
|
|
53
|
-
--_controls-top: 0;
|
|
54
|
-
--_controls-bottom: 0;
|
|
55
|
-
--_controls-direction: column;
|
|
56
|
-
--_controls-padding: var(--carousel-controls-offset) 0;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.m-17884d0f[data-orientation='horizontal'] .m-39bc3463 {
|
|
60
|
-
--_controls-left: 0;
|
|
61
|
-
--_controls-right: 0;
|
|
62
|
-
--_controls-top: calc(50% - var(--carousel-control-size) / 2);
|
|
63
|
-
--_controls-direction: row;
|
|
64
|
-
--_controls-padding: 0 var(--carousel-controls-offset);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.m-64f58e10 {
|
|
68
|
-
display: flex;
|
|
69
|
-
justify-content: center;
|
|
70
|
-
align-items: center;
|
|
71
|
-
min-width: var(--carousel-control-size);
|
|
72
|
-
min-height: var(--carousel-control-size);
|
|
73
|
-
border-radius: var(--carousel-control-size);
|
|
74
|
-
pointer-events: all;
|
|
75
|
-
background-color: var(--mantine-color-white);
|
|
76
|
-
color: var(--mantine-color-black);
|
|
77
|
-
box-shadow: var(--mantine-shadow-md);
|
|
78
|
-
opacity: var(--_control-opacity);
|
|
79
|
-
border: calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-gray-3);
|
|
80
|
-
transition: opacity 100ms ease;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
[data-mantine-color-scheme='light'] .m-64f58e10 {
|
|
84
|
-
--_control-opacity: 0.85;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
[data-mantine-color-scheme='dark'] .m-64f58e10 {
|
|
88
|
-
--_control-opacity: 0.65;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
@media (hover: hover) {
|
|
92
|
-
|
|
93
|
-
.m-64f58e10:hover {
|
|
94
|
-
--_control-opacity: 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@media (hover: none) {
|
|
99
|
-
|
|
100
|
-
.m-64f58e10:active {
|
|
101
|
-
--_control-opacity: 1;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.m-71ea3ab1 {
|
|
106
|
-
position: absolute;
|
|
107
|
-
display: flex;
|
|
108
|
-
justify-content: center;
|
|
109
|
-
gap: calc(0.5rem * var(--mantine-scale));
|
|
110
|
-
pointer-events: none;
|
|
111
|
-
flex-direction: var(--_indicators-direction);
|
|
112
|
-
bottom: var(--_indicators-bottom);
|
|
113
|
-
left: var(--_indicators-left);
|
|
114
|
-
right: var(--_indicators-right);
|
|
115
|
-
top: var(--_indicators-top);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.m-17884d0f[data-orientation='vertical'] .m-71ea3ab1 {
|
|
119
|
-
--_indicators-bottom: 0;
|
|
120
|
-
--_indicators-top: 0;
|
|
121
|
-
--_indicators-right: var(--mantine-spacing-md);
|
|
122
|
-
--_indicators-direction: column;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.m-17884d0f[data-orientation='horizontal'] .m-71ea3ab1 {
|
|
126
|
-
--_indicators-bottom: var(--mantine-spacing-md);
|
|
127
|
-
--_indicators-left: 0;
|
|
128
|
-
--_indicators-right: 0;
|
|
129
|
-
--_indicators-direction: row;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.m-eae68602 {
|
|
133
|
-
pointer-events: all;
|
|
134
|
-
width: var(--_indicator-width);
|
|
135
|
-
height: var(--_indicator-height);
|
|
136
|
-
border-radius: var(--mantine-radius-xl);
|
|
137
|
-
box-shadow: var(--mantine-shadow-sm);
|
|
138
|
-
opacity: var(--_indicator-opacity, 0.6);
|
|
139
|
-
background-color: var(--mantine-color-white);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
@media (hover: hover) {
|
|
143
|
-
|
|
144
|
-
.m-eae68602:hover {
|
|
145
|
-
--_indicator-opacity: 1;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
@media (hover: none) {
|
|
150
|
-
|
|
151
|
-
.m-eae68602:active {
|
|
152
|
-
--_indicator-opacity: 1;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.m-eae68602[data-active] {
|
|
157
|
-
--_indicator-opacity: 1;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.m-17884d0f[data-orientation='vertical'] .m-eae68602 {
|
|
161
|
-
--_indicator-width: calc(0.3125rem * var(--mantine-scale));
|
|
162
|
-
--_indicator-height: calc(1.5625rem * var(--mantine-scale));
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.m-17884d0f[data-orientation='horizontal'] .m-eae68602 {
|
|
166
|
-
--_indicator-width: calc(1.5625rem * var(--mantine-scale));
|
|
167
|
-
--_indicator-height: calc(0.3125rem * var(--mantine-scale));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.m-d98df724 {
|
|
171
|
-
position: relative;
|
|
172
|
-
flex: 0 0 var(--carousel-slide-size);
|
|
173
|
-
padding-right: var(--_slide-pr, 0);
|
|
174
|
-
padding-left: var(--_slide-pl, 0);
|
|
175
|
-
padding-bottom: var(--_slide-pb, 0);
|
|
176
|
-
margin-right: var(--_slide-mr, 0);
|
|
177
|
-
margin-left: var(--_slide-ml, 0);
|
|
178
|
-
margin-bottom: var(--_slide-mb, 0);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='vertical'] {
|
|
182
|
-
--_slide-pb: var(--carousel-slide-gap);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='horizontal'] {
|
|
186
|
-
--_slide-pr: var(--carousel-slide-gap);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
[dir="rtl"] .m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation='horizontal'] {
|
|
190
|
-
--_slide-pl: var(--carousel-slide-gap);
|
|
191
|
-
--_slide-pr: 0;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='vertical'] {
|
|
195
|
-
--_slide-mb: var(--carousel-slide-gap);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='horizontal'] {
|
|
199
|
-
--_slide-mr: var(--carousel-slide-gap);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
[dir="rtl"] .m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation='horizontal'] {
|
|
203
|
-
--_slide-ml: var(--carousel-slide-gap);
|
|
204
|
-
--_slide-mr: 0;
|
|
205
|
-
}
|
|
1
|
+
.m-17884d0f{position:relative}.m-a2dae653{overflow:hidden}.m-a2dae653,.m-fcd81474{height:var(--carousel-height,auto)}.m-fcd81474{display:flex;flex-direction:var(--_container-direction,row);margin-bottom:var(--_container-mb);margin-left:var(--_container-ml);margin-right:var(--_container-mr)}[data-include-gap-in-size] .m-fcd81474[data-orientation=vertical]{--_container-mb:calc(var(--carousel-slide-gap)*-1)}[data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-mr:calc(var(--carousel-slide-gap)*-1)}[dir=rtl] [data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-ml:calc(var(--carousel-slide-gap)*-1);--_container-mr:0}.m-fcd81474[data-orientation=vertical]{--_container-direction:column}.m-39bc3463{align-items:center;bottom:var(--_controls-bottom);display:flex;flex-direction:var(--_controls-direction);justify-content:space-between;left:var(--_controls-left);padding:var(--_controls-padding);pointer-events:none;position:absolute;right:var(--_controls-right);top:var(--_controls-top);z-index:1}.m-17884d0f[data-orientation=vertical] .m-39bc3463{--_controls-left:calc(50% - var(--carousel-control-size)/2);--_controls-top:0;--_controls-bottom:0;--_controls-direction:column;--_controls-padding:var(--carousel-controls-offset) 0}.m-17884d0f[data-orientation=horizontal] .m-39bc3463{--_controls-left:0;--_controls-right:0;--_controls-top:calc(50% - var(--carousel-control-size)/2);--_controls-direction:row;--_controls-padding:0 var(--carousel-controls-offset)}.m-64f58e10{align-items:center;background-color:var(--mantine-color-white);border:calc(.0625rem*var(--mantine-scale)) solid var(--mantine-color-gray-3);border-radius:var(--carousel-control-size);box-shadow:var(--mantine-shadow-md);color:var(--mantine-color-black);display:flex;justify-content:center;min-height:var(--carousel-control-size);min-width:var(--carousel-control-size);opacity:var(--_control-opacity);pointer-events:all;transition:opacity .1s ease}[data-mantine-color-scheme=light] .m-64f58e10{--_control-opacity:0.85}[data-mantine-color-scheme=dark] .m-64f58e10{--_control-opacity:0.65}@media (hover:hover){.m-64f58e10:hover{--_control-opacity:1}}@media (hover:none){.m-64f58e10:active{--_control-opacity:1}}.m-71ea3ab1{bottom:var(--_indicators-bottom);display:flex;flex-direction:var(--_indicators-direction);gap:calc(.5rem*var(--mantine-scale));justify-content:center;left:var(--_indicators-left);pointer-events:none;position:absolute;right:var(--_indicators-right);top:var(--_indicators-top)}.m-17884d0f[data-orientation=vertical] .m-71ea3ab1{--_indicators-bottom:0;--_indicators-top:0;--_indicators-right:var(--mantine-spacing-md);--_indicators-direction:column}.m-17884d0f[data-orientation=horizontal] .m-71ea3ab1{--_indicators-bottom:var(--mantine-spacing-md);--_indicators-left:0;--_indicators-right:0;--_indicators-direction:row}.m-eae68602{background-color:var(--mantine-color-white);border-radius:var(--mantine-radius-xl);box-shadow:var(--mantine-shadow-sm);height:var(--_indicator-height);opacity:var(--_indicator-opacity,.6);pointer-events:all;width:var(--_indicator-width)}@media (hover:hover){.m-eae68602:hover{--_indicator-opacity:1}}@media (hover:none){.m-eae68602:active{--_indicator-opacity:1}}.m-eae68602[data-active]{--_indicator-opacity:1}.m-17884d0f[data-orientation=vertical] .m-eae68602{--_indicator-width:calc(0.3125rem*var(--mantine-scale));--_indicator-height:calc(1.5625rem*var(--mantine-scale))}.m-17884d0f[data-orientation=horizontal] .m-eae68602{--_indicator-width:calc(1.5625rem*var(--mantine-scale));--_indicator-height:calc(0.3125rem*var(--mantine-scale))}.m-d98df724{flex:0 0 var(--carousel-slide-size);margin-bottom:var(--_slide-mb,0);margin-left:var(--_slide-ml,0);margin-right:var(--_slide-mr,0);padding-bottom:var(--_slide-pb,0);padding-left:var(--_slide-pl,0);padding-right:var(--_slide-pr,0);position:relative}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=vertical]{--_slide-pb:var(--carousel-slide-gap)}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pl:var(--carousel-slide-gap);--_slide-pr:0}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=vertical]{--_slide-mb:var(--carousel-slide-gap)}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-mr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-ml:var(--carousel-slide-gap);--_slide-mr:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer mantine {.m-17884d0f{position:relative}.m-a2dae653{overflow:hidden}.m-a2dae653,.m-fcd81474{height:var(--carousel-height,auto)}.m-fcd81474{display:flex;flex-direction:var(--_container-direction,row);margin-bottom:var(--_container-mb);margin-left:var(--_container-ml);margin-right:var(--_container-mr)}[data-include-gap-in-size] .m-fcd81474[data-orientation=vertical]{--_container-mb:calc(var(--carousel-slide-gap)*-1)}[data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-mr:calc(var(--carousel-slide-gap)*-1)}[dir=rtl] [data-include-gap-in-size] .m-fcd81474[data-orientation=horizontal]{--_container-ml:calc(var(--carousel-slide-gap)*-1);--_container-mr:0}.m-fcd81474[data-orientation=vertical]{--_container-direction:column}.m-39bc3463{align-items:center;bottom:var(--_controls-bottom);display:flex;flex-direction:var(--_controls-direction);justify-content:space-between;left:var(--_controls-left);padding:var(--_controls-padding);pointer-events:none;position:absolute;right:var(--_controls-right);top:var(--_controls-top);z-index:1}.m-17884d0f[data-orientation=vertical] .m-39bc3463{--_controls-left:calc(50% - var(--carousel-control-size)/2);--_controls-top:0;--_controls-bottom:0;--_controls-direction:column;--_controls-padding:var(--carousel-controls-offset) 0}.m-17884d0f[data-orientation=horizontal] .m-39bc3463{--_controls-left:0;--_controls-right:0;--_controls-top:calc(50% - var(--carousel-control-size)/2);--_controls-direction:row;--_controls-padding:0 var(--carousel-controls-offset)}.m-64f58e10{align-items:center;background-color:var(--mantine-color-white);border:calc(.0625rem*var(--mantine-scale)) solid var(--mantine-color-gray-3);border-radius:var(--carousel-control-size);box-shadow:var(--mantine-shadow-md);color:var(--mantine-color-black);display:flex;justify-content:center;min-height:var(--carousel-control-size);min-width:var(--carousel-control-size);opacity:var(--_control-opacity);pointer-events:all;transition:opacity .1s ease}[data-mantine-color-scheme=light] .m-64f58e10{--_control-opacity:0.85}[data-mantine-color-scheme=dark] .m-64f58e10{--_control-opacity:0.65}@media (hover:hover){.m-64f58e10:hover{--_control-opacity:1}}@media (hover:none){.m-64f58e10:active{--_control-opacity:1}}.m-71ea3ab1{bottom:var(--_indicators-bottom);display:flex;flex-direction:var(--_indicators-direction);gap:calc(.5rem*var(--mantine-scale));justify-content:center;left:var(--_indicators-left);pointer-events:none;position:absolute;right:var(--_indicators-right);top:var(--_indicators-top)}.m-17884d0f[data-orientation=vertical] .m-71ea3ab1{--_indicators-bottom:0;--_indicators-top:0;--_indicators-right:var(--mantine-spacing-md);--_indicators-direction:column}.m-17884d0f[data-orientation=horizontal] .m-71ea3ab1{--_indicators-bottom:var(--mantine-spacing-md);--_indicators-left:0;--_indicators-right:0;--_indicators-direction:row}.m-eae68602{background-color:var(--mantine-color-white);border-radius:var(--mantine-radius-xl);box-shadow:var(--mantine-shadow-sm);height:var(--_indicator-height);opacity:var(--_indicator-opacity,.6);pointer-events:all;width:var(--_indicator-width)}@media (hover:hover){.m-eae68602:hover{--_indicator-opacity:1}}@media (hover:none){.m-eae68602:active{--_indicator-opacity:1}}.m-eae68602[data-active]{--_indicator-opacity:1}.m-17884d0f[data-orientation=vertical] .m-eae68602{--_indicator-width:calc(0.3125rem*var(--mantine-scale));--_indicator-height:calc(1.5625rem*var(--mantine-scale))}.m-17884d0f[data-orientation=horizontal] .m-eae68602{--_indicator-width:calc(1.5625rem*var(--mantine-scale));--_indicator-height:calc(0.3125rem*var(--mantine-scale))}.m-d98df724{flex:0 0 var(--carousel-slide-size);margin-bottom:var(--_slide-mb,0);margin-left:var(--_slide-ml,0);margin-right:var(--_slide-mr,0);padding-bottom:var(--_slide-pb,0);padding-left:var(--_slide-pl,0);padding-right:var(--_slide-pr,0);position:relative}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=vertical]{--_slide-pb:var(--carousel-slide-gap)}.m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f[data-include-gap-in-size] .m-d98df724[data-orientation=horizontal]{--_slide-pl:var(--carousel-slide-gap);--_slide-pr:0}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=vertical]{--_slide-mb:var(--carousel-slide-gap)}.m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-mr:var(--carousel-slide-gap)}[dir=rtl] .m-17884d0f:not([data-include-gap-in-size]) .m-d98df724[data-orientation=horizontal]{--_slide-ml:var(--carousel-slide-gap);--_slide-mr:0}}
|
package/esm/index.mjs
CHANGED
package/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-animation-offset-effect.mjs","sources":["../src/use-animation-offset-effect.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel-react';\n\nexport function useAnimationOffsetEffect(\n embla: EmblaCarouselType | null | undefined,\n transitionDuration: number\n) {\n useEffect(() => {\n if (embla) {\n window.setTimeout(() => {\n embla.reInit();\n }, transitionDuration);\n }\n }, [embla, transitionDuration]);\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-animation-offset-effect.mjs","sources":["../src/use-animation-offset-effect.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel-react';\n\nexport function useAnimationOffsetEffect(\n embla: EmblaCarouselType | null | undefined,\n transitionDuration: number\n) {\n useEffect(() => {\n if (embla) {\n window.setTimeout(() => {\n embla.reInit();\n }, transitionDuration);\n }\n }, [embla, transitionDuration]);\n}\n"],"names":[],"mappings":";;;AACO,SAAS,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE;AACpE,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM;AAC9B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;AACvB,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAClC;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/carousel",
|
|
3
3
|
"description": "Embla based carousel",
|
|
4
|
-
"version": "7.0
|
|
4
|
+
"version": "7.1.1-alpha.0",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
7
7
|
"module": "./esm/index.mjs",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"./styles.css": "./esm/index.css",
|
|
20
|
+
"./styles.layer.css": "./esm/index.layer.css",
|
|
20
21
|
"./styles/*": "./esm/styles/*"
|
|
21
22
|
},
|
|
22
23
|
"license": "MIT",
|
|
@@ -44,8 +45,8 @@
|
|
|
44
45
|
"slick"
|
|
45
46
|
],
|
|
46
47
|
"peerDependencies": {
|
|
47
|
-
"@mantine/core": "7.0
|
|
48
|
-
"@mantine/hooks": "7.0
|
|
48
|
+
"@mantine/core": "7.1.1-alpha.0",
|
|
49
|
+
"@mantine/hooks": "7.1.1-alpha.0",
|
|
49
50
|
"embla-carousel-react": "^7.0.0",
|
|
50
51
|
"react": "^18.2.0"
|
|
51
52
|
},
|