UNPKG

@mantine/carousel

Version:
62 lines (61 loc) 2.74 kB
"use client"; import { InlineStyles, filterProps, getBaseValue, getSortedBreakpoints, getSpacing, keys, px, rem, useMantineTheme } from "@mantine/core"; import { jsx } from "react/jsx-runtime"; //#region packages/@mantine/carousel/src/CarouselVariables/CarouselVariables.tsx function CarouselVariables({ slideGap, slideSize, selector }) { const theme = useMantineTheme(); const baseStyles = filterProps({ "--carousel-slide-gap": getSpacing(getBaseValue(slideGap)), "--carousel-slide-size": rem(getBaseValue(slideSize)) }); const queries = keys(theme.breakpoints).reduce((acc, breakpoint) => { if (!acc[breakpoint]) acc[breakpoint] = {}; if (typeof slideGap === "object" && slideGap[breakpoint] !== void 0) acc[breakpoint]["--carousel-slide-gap"] = getSpacing(slideGap[breakpoint]); if (typeof slideSize === "object" && slideSize[breakpoint] !== void 0) acc[breakpoint]["--carousel-slide-size"] = getSpacing(slideSize[breakpoint]); return acc; }, {}); return /* @__PURE__ */ jsx(InlineStyles, { styles: baseStyles, media: getSortedBreakpoints(keys(queries), theme.breakpoints).filter((breakpoint) => keys(queries[breakpoint.value]).length > 0).map((breakpoint) => ({ query: `(min-width: ${theme.breakpoints[breakpoint.value]})`, styles: queries[breakpoint.value] })), selector }); } function getBreakpoints(values) { if (typeof values === "object" && values !== null) return keys(values); return []; } function sortBreakpoints(breakpoints) { return breakpoints.sort((a, b) => px(a) - px(b)); } function getUniqueBreakpoints({ slideGap, slideSize }) { return sortBreakpoints(Array.from(new Set([...getBreakpoints(slideGap), ...getBreakpoints(slideSize)]))); } function CarouselContainerVariables({ slideGap, slideSize, selector }) { const baseStyles = filterProps({ "--carousel-slide-gap": getSpacing(getBaseValue(slideGap)), "--carousel-slide-size": rem(getBaseValue(slideSize)) }); const queries = getUniqueBreakpoints({ slideGap, slideSize }).reduce((acc, breakpoint) => { if (!acc[breakpoint]) acc[breakpoint] = {}; if (typeof slideGap === "object" && slideGap[breakpoint] !== void 0) acc[breakpoint]["--carousel-slide-gap"] = getSpacing(slideGap[breakpoint]); if (typeof slideSize === "object" && slideSize[breakpoint] !== void 0) acc[breakpoint]["--carousel-slide-size"] = getSpacing(slideSize[breakpoint]); return acc; }, {}); return /* @__PURE__ */ jsx(InlineStyles, { styles: baseStyles, container: Object.keys(queries).map((breakpoint) => ({ query: `carousel (min-width: ${breakpoint})`, styles: queries[breakpoint] })), selector }); } //#endregion export { CarouselContainerVariables, CarouselVariables }; //# sourceMappingURL=CarouselVariables.mjs.map