UNPKG

@mantine/carousel

Version:
1 lines 5.43 kB
{"version":3,"file":"CarouselVariables.cjs","names":["InlineStyles"],"sources":["../../src/CarouselVariables/CarouselVariables.tsx"],"sourcesContent":["import {\n filterProps,\n getBaseValue,\n getSortedBreakpoints,\n getSpacing,\n InlineStyles,\n keys,\n MantineBreakpoint,\n px,\n rem,\n useMantineTheme,\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': rem(getBaseValue(slideSize)),\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.breakpoints).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\nfunction getBreakpoints(values: unknown) {\n if (typeof values === 'object' && values !== null) {\n return keys(values);\n }\n\n return [];\n}\n\nfunction sortBreakpoints(breakpoints: string[]) {\n return breakpoints.sort((a, b) => (px(a) as number) - (px(b) as number));\n}\n\nfunction getUniqueBreakpoints({ slideGap, slideSize }: Omit<CarouselVariablesProps, 'selector'>) {\n const breakpoints = Array.from(\n new Set([...getBreakpoints(slideGap), ...getBreakpoints(slideSize)])\n );\n\n return sortBreakpoints(breakpoints);\n}\n\nexport function CarouselContainerVariables({\n slideGap,\n slideSize,\n selector,\n}: CarouselVariablesProps) {\n const baseStyles: Record<string, string | undefined> = filterProps({\n '--carousel-slide-gap': getSpacing(getBaseValue(slideGap)),\n '--carousel-slide-size': rem(getBaseValue(slideSize)),\n });\n\n const queries = getUniqueBreakpoints({ slideGap, slideSize }).reduce<\n 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 const media = Object.keys(queries).map((breakpoint) => ({\n query: `carousel (min-width: ${breakpoint})`,\n styles: queries[breakpoint],\n }));\n\n return <InlineStyles styles={baseStyles} container={media} selector={selector} />;\n}\n"],"mappings":";;;;;AAkBA,SAAgB,kBAAkB,EAAE,UAAU,WAAW,YAAoC;CAC3F,MAAM,SAAA,GAAA,cAAA,iBAAwB;CAE9B,MAAM,cAAA,GAAA,cAAA,aAA6D;EACjE,yBAAA,GAAA,cAAA,aAAA,GAAA,cAAA,cAAgD,QAAQ,CAAC;EACzD,0BAAA,GAAA,cAAA,MAAA,GAAA,cAAA,cAA0C,SAAS,CAAC;CACtD,CAAC;CAED,MAAM,WAAA,GAAA,cAAA,MAAe,MAAM,WAAW,EAAE,QACrC,KAAK,eAAe;EACnB,IAAI,CAAC,IAAI,aACP,IAAI,cAAc,CAAC;EAGrB,IAAI,OAAO,aAAa,YAAY,SAAS,gBAAgB,KAAA,GAC3D,IAAI,YAAY,2BAAA,GAAA,cAAA,YAAqC,SAAS,WAAW;EAG3E,IAAI,OAAO,cAAc,YAAY,UAAU,gBAAgB,KAAA,GAC7D,IAAI,YAAY,4BAAA,GAAA,cAAA,YAAsC,UAAU,WAAW;EAG7E,OAAO;CACT,GACA,CAAC,CACH;CAWA,OAAO,iBAAA,GAAA,kBAAA,KAACA,cAAAA,cAAD;EAAc,QAAQ;EAAY,QAAA,GAAA,cAAA,uBAAA,GAAA,cAAA,MATW,OAAO,GAAG,MAAM,WAAW,EAAE,QAC9E,gBAAA,GAAA,cAAA,MAAoB,QAAQ,WAAW,MAAM,EAAE,SAAS,CAG7B,EAAE,KAAK,gBAAgB;GACnD,OAAO,eAAe,MAAM,YAAY,WAAW,OAA4B;GAC/E,QAAQ,QAAQ,WAAW;EAC7B,EAEoD;EAAa;CAAW,CAAA;AAC9E;AAEA,SAAS,eAAe,QAAiB;CACvC,IAAI,OAAO,WAAW,YAAY,WAAW,MAC3C,QAAA,GAAA,cAAA,MAAY,MAAM;CAGpB,OAAO,CAAC;AACV;AAEA,SAAS,gBAAgB,aAAuB;CAC9C,OAAO,YAAY,MAAM,GAAG,OAAA,GAAA,cAAA,IAAU,CAAC,KAAA,GAAA,cAAA,IAAmB,CAAC,CAAY;AACzE;AAEA,SAAS,qBAAqB,EAAE,UAAU,aAAuD;CAK/F,OAAO,gBAJa,MAAM,KACxB,IAAI,IAAI,CAAC,GAAG,eAAe,QAAQ,GAAG,GAAG,eAAe,SAAS,CAAC,CAAC,CAGpC,CAAC;AACpC;AAEA,SAAgB,2BAA2B,EACzC,UACA,WACA,YACyB;CACzB,MAAM,cAAA,GAAA,cAAA,aAA6D;EACjE,yBAAA,GAAA,cAAA,aAAA,GAAA,cAAA,cAAgD,QAAQ,CAAC;EACzD,0BAAA,GAAA,cAAA,MAAA,GAAA,cAAA,cAA0C,SAAS,CAAC;CACtD,CAAC;CAED,MAAM,UAAU,qBAAqB;EAAE;EAAU;CAAU,CAAC,EAAE,QAE3D,KAAK,eAAe;EACrB,IAAI,CAAC,IAAI,aACP,IAAI,cAAc,CAAC;EAGrB,IAAI,OAAO,aAAa,YAAY,SAAS,gBAAgB,KAAA,GAC3D,IAAI,YAAY,2BAAA,GAAA,cAAA,YAAqC,SAAS,WAAW;EAG3E,IAAI,OAAO,cAAc,YAAY,UAAU,gBAAgB,KAAA,GAC7D,IAAI,YAAY,4BAAA,GAAA,cAAA,YAAsC,UAAU,WAAW;EAG7E,OAAO;CACT,GAAG,CAAC,CAAC;CAOL,OAAO,iBAAA,GAAA,kBAAA,KAACA,cAAAA,cAAD;EAAc,QAAQ;EAAY,WAL3B,OAAO,KAAK,OAAO,EAAE,KAAK,gBAAgB;GACtD,OAAO,wBAAwB,WAAW;GAC1C,QAAQ,QAAQ;EAClB,EAEwD;EAAa;CAAW,CAAA;AAClF"}