@fox-dls/carousels 0.0.1 → 1.0.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.
Files changed (37) hide show
  1. package/.babelrc +12 -0
  2. package/.eslintrc.json +74 -0
  3. package/CHANGELOG.md +18 -0
  4. package/{index.d.ts → dist/index.d.ts} +1 -3
  5. package/dist/index.esm.js +516 -0
  6. package/dist/index.esm.js.map +1 -0
  7. package/dist/index.js +526 -0
  8. package/dist/index.js.map +1 -0
  9. package/{lib → dist/lib}/card/index.d.ts +0 -0
  10. package/dist/lib/card/styles/index.d.ts +1 -0
  11. package/{lib → dist/lib}/free/index.d.ts +0 -0
  12. package/dist/lib/free/styles/index.d.ts +1 -0
  13. package/{lib → dist/lib}/pagination/index.d.ts +0 -0
  14. package/dist/lib/pagination/styles/index.d.ts +6 -0
  15. package/dist/lib/pills/index.d.ts +2 -0
  16. package/dist/lib/pills/styles/index.d.ts +6 -0
  17. package/{lib → dist/lib}/styles/index.d.ts +1 -2
  18. package/package.json +110 -8
  19. package/src/index.ts +6 -0
  20. package/src/lib/card/index.tsx +122 -0
  21. package/src/lib/card/styles/index.tsx +4 -0
  22. package/src/lib/free/index.tsx +140 -0
  23. package/src/lib/free/styles/index.tsx +79 -0
  24. package/src/lib/pagination/index.tsx +133 -0
  25. package/src/lib/pagination/styles/index.tsx +79 -0
  26. package/src/lib/pills/index.tsx +207 -0
  27. package/src/lib/pills/styles/index.tsx +57 -0
  28. package/src/lib/styles/index.tsx +168 -0
  29. package/tsconfig.build.json +11 -0
  30. package/tsconfig.json +15 -0
  31. package/carousels.esm.js +0 -2135
  32. package/carousels.umd.js +0 -591
  33. package/lib/buttons/index.d.ts +0 -2
  34. package/lib/buttons/styles/index.d.ts +0 -8
  35. package/lib/card/styles/index.d.ts +0 -3
  36. package/lib/free/styles/index.d.ts +0 -3
  37. package/lib/pagination/styles/index.d.ts +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/lib/pills/styles/index.tsx","../src/lib/pills/index.tsx","../src/lib/styles/index.tsx","../src/lib/card/styles/index.tsx","../src/lib/card/index.tsx","../src/lib/free/styles/index.tsx","../src/lib/free/index.tsx","../src/lib/pagination/styles/index.tsx","../src/lib/pagination/index.tsx"],"sourcesContent":["import ButtonUnstyled from '@mui/core/ButtonUnstyled';\nimport styled from 'styled-components';\nimport { Swiper } from 'swiper/react';\n\nexport const CarouselContainer = styled.div``;\n\nexport const CarouselSwiper = styled(Swiper)`\n margin: 0px !important;\n .swiper-wrapper {\n .swiper-slide {\n scroll-snap-align: start !important;\n width: auto !important;\n }\n }\n`;\n\nexport const CarouselPillContainer = styled.div`\n display: inline-block !important;\n padding-right: 8px !important;\n padding-top: 4px !important;\n padding-bottom: 4px !important;\n`;\n\nexport const CarouselPill = styled(ButtonUnstyled)<any>`\n -webkit-box-pack: center !important;\n -webkit-box-align: center !important;\n appearance: none !important;\n display: inline-flex !important;\n border-radius: 50% !important;\n border: 1px solid rgb(221, 221, 221) !important;\n outline: none !important;\n margin: 0px !important;\n padding: 0px !important;\n color: rgb(34, 34, 34) !important;\n cursor: pointer !important;\n touch-action: manipulation !important;\n position: relative !important;\n background: transparent !important;\n transition: -ms-transform 0.25s ease 0s, -webkit-transform 0.25s ease 0s,\n transform 0.25s ease 0s !important;\n align-items: center !important;\n justify-content: center !important;\n width: 36px !important;\n height: 36px !important;\n ::before {\n content: '' !important;\n display: block !important;\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n width: 36px !important;\n height: 36px !important;\n border-radius: 50% !important;\n border: 1px solid rgb(221, 221, 221) !important;\n }\n`;\n","/* eslint-disable @typescript-eslint/no-shadow */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useRef, useState } from 'react';\n\nimport { css } from 'styled-components';\nimport SwiperCore, { Navigation } from 'swiper';\nimport { SwiperSlide } from 'swiper/react';\n\nimport { CarouselSwiper, CarouselPillContainer, CarouselPill } from './styles';\n\nSwiperCore.use([Navigation]);\n\nexport const PillsCarousel: React.FC<any> = ({\n children,\n navigation,\n title,\n controls,\n arrows,\n ...props\n}) => {\n const prevRef = useRef<any>(null);\n const nextRef = useRef<any>(null);\n const [swiperSlides, setSwiperSlides] = useState<any>({\n progress: 0,\n isBeginning: true,\n isEnd: false\n });\n const [swiper, setSwiper] = useState<any>(null);\n return (\n <div\n css={`\n display: flex !important;\n position: relative !important;\n min-width: 0px !important;\n `}\n >\n <div\n css={`\n position: absolute !important;\n left: 0px !important;\n z-index: 3 !important;\n width: 65px !important;\n background: linear-gradient(\n to right,\n rgb(255, 255, 255) 56.77%,\n rgba(255, 255, 255, 0) 94.47%\n ) !important;\n ${swiperSlides.isBeginning &&\n css`\n display: none !important;\n visibility: hidden !important;\n `}\n `}\n >\n {arrows && (\n <CarouselPillContainer>\n <CarouselPill\n left={+true}\n ref={prevRef}\n aria-label=\"Previous\"\n type=\"button\"\n onClick={() => swiper.slidePrev()}\n >\n <span\n css={`\n position: relative !important;\n `}\n >\n <svg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n css={`\n display: block;\n fill: none;\n height: 12px;\n width: 12px;\n stroke: currentcolor;\n stroke-width: 5.33333;\n overflow: visible;\n `}\n >\n <g fill=\"none\">\n <path d=\"m20 28-11.29289322-11.2928932c-.39052429-.3905243-.39052429-1.0236893 0-1.4142136l11.29289322-11.2928932\" />\n </g>\n </svg>\n </span>\n </CarouselPill>\n </CarouselPillContainer>\n )}\n </div>\n\n <CarouselSwiper\n {...props}\n cssMode={false}\n slidesPerView=\"auto\"\n onInit={(swiper: any) => {\n setSwiper(swiper);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.prevEl = prevRef.current;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.nextEl = nextRef.current;\n swiper.navigation.init();\n swiper.navigation.update();\n setSwiperSlides({\n progress: swiper.progress,\n isBeginning: swiper.isBeginning,\n isEnd: swiper.isEnd\n });\n // console.log(\"Swiper\", swiper);\n }}\n onSlideChange={swiper => {\n // console.log(\"Swiper Change\", swiper);\n\n setSwiperSlides({\n progress: swiper.progress,\n isBeginning: swiper.isBeginning,\n isEnd: swiper.isEnd\n });\n }}\n >\n {React.Children.map(children, child => (\n <SwiperSlide>\n <div\n css={`\n display: inline-block !important;\n white-space: nowrap !important;\n padding-right: 8px !important;\n padding-top: 4px !important;\n padding-bottom: 4px !important;\n `}\n >\n {child}\n </div>\n </SwiperSlide>\n ))}\n </CarouselSwiper>\n\n <div\n css={`\n -webkit-box-pack: end !important;\n position: absolute !important;\n right: 0px !important;\n z-index: 3 !important;\n width: 75px !important;\n display: flex !important;\n justify-content: flex-end !important;\n background: linear-gradient(\n to left,\n rgb(255, 255, 255) 56.77%,\n rgba(255, 255, 255, 0) 94.47%\n ) !important;\n ${swiperSlides.isEnd &&\n css`\n display: none !important;\n visibility: hidden !important;\n `}\n `}\n >\n {arrows && (\n <CarouselPillContainer>\n <CarouselPill\n right={+true}\n aria-label=\"Next\"\n type=\"button\"\n ref={nextRef}\n onClick={() => swiper.slideNext()}\n >\n <span\n css={`\n position: relative !important;\n `}\n >\n <svg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n css={`\n display: block;\n fill: none;\n height: 12px;\n width: 12px;\n stroke: currentcolor;\n stroke-width: 5.33333;\n overflow: visible;\n `}\n >\n <g fill=\"none\">\n <path d=\"m12 4 11.2928932 11.2928932c.3905243.3905243.3905243 1.0236893 0 1.4142136l-11.2928932 11.2928932\" />\n </g>\n </svg>\n </span>\n </CarouselPill>\n </CarouselPillContainer>\n )}\n </div>\n </div>\n );\n};\n","import ButtonUnstyled from '@mui/core/ButtonUnstyled';\nimport styled from 'styled-components';\n\nexport const CarouselContainer = styled.div`\n position: relative !important;\n z-index: 0 !important;\n`;\n\nexport const CarouselNavbar = styled.div`\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n color: #222222 !important;\n display: -webkit-box !important;\n display: -moz-box !important;\n display: -ms-flexbox !important;\n display: -webkit-flex !important;\n display: flex !important;\n -webkit-align-items: center !important;\n align-items: center !important;\n -webkit-justify-content: space-between !important;\n justify-content: space-between !important;\n margin-bottom: 16px !important;\n`;\n\nexport const NavbarTitleContainer = styled.div`\n margin-right: 24px !important;\n width: auto !important;\n`;\n\nexport const NavbarTitle = styled.div`\n @media (min-width: 744px) {\n font-size: 32px !important;\n line-height: 36px !important;\n font-weight: 800 !important;\n text-align: left !important;\n color: #222222 !important;\n margin-bottom: 15px !important;\n }\n font-size: 22px !important;\n line-height: 26px !important;\n font-weight: 600 !important;\n margin-bottom: 10px !important;\n`;\n\nexport const NavbarControlsContainer = styled.div`\n display: flex !important;\n align-items: center !important;\n margin-left: auto !important;\n`;\n\nexport const NavbarControlsQuick = styled.a`\n @media (max-width: 744px) {\n display: none !important;\n }\n font-size: inherit !important;\n font-family: inherit !important;\n font-style: inherit !important;\n font-variant: inherit !important;\n line-height: inherit !important;\n color: #222222 !important;\n text-decoration: underline !important;\n border-radius: 4px !important;\n font-weight: 600 !important;\n outline: none !important;\n`;\n\nexport const NavbarControlsSpace = styled.span`\n display: inline-block !important;\n height: 32px !important;\n width: 1px !important;\n margin-right: 16px !important;\n padding: 0px !important;\n border: none !important;\n`;\n\nexport const ArrowsContainer = styled.div`\n -webkit-box-align: center !important;\n color: rgb(34, 34, 34) !important;\n display: flex !important;\n align-items: center !important;\n margin-left: auto !important;\n`;\n\nexport const ArrowsFlex = styled.div`\n display: -webkit-box !important;\n display: -moz-box !important;\n display: -ms-flexbox !important;\n display: -webkit-flex !important;\n display: flex !important;\n`;\n\nexport const ArrowsButton = styled(ButtonUnstyled)<any>`\n -webkit-box-pack: center !important;\n -webkit-box-align: center !important;\n appearance: none !important;\n display: inline-flex !important;\n border-radius: 50% !important;\n border: none !important;\n outline: none !important;\n margin: 0px !important;\n padding: 0px !important;\n color: rgb(34, 34, 34) !important;\n cursor: pointer !important;\n touch-action: manipulation !important;\n position: relative !important;\n background: transparent !important;\n transition: -ms-transform 0.25s ease 0s, -webkit-transform 0.25s ease 0s,\n transform 0.25s ease 0s !important;\n align-items: center !important;\n justify-content: center !important;\n width: 32px !important;\n height: 32px !important;\n :focus {\n box-shadow: none !important;\n }\n ::before {\n content: '' !important;\n display: block !important;\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n width: 32px !important;\n height: 32px !important;\n border-radius: 50% !important;\n background: rgb(255, 255, 255) !important;\n border: 1px solid rgb(221, 221, 221) !important;\n }\n :disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n color: rgb(221, 221, 221) !important;\n transform: scale(1) !important;\n }\n :hover:not([disabled]) {\n color: rgb(0, 0, 0) !important;\n transform: scale(1.04) !important;\n }\n`;\n\nexport const ArrowsDivider = styled.span`\n margin-left: 8px !important;\n`;\n\nexport const ArrowsIconClip = styled.span`\n border: 0px !important;\n clip: rect(0 0 0 0) !important;\n -webkit-clip-path: inset(100%) !important;\n clip-path: inset(100%) !important;\n height: 1px !important;\n overflow: hidden !important;\n padding: 0px !important;\n position: absolute !important;\n white-space: nowrap !important;\n width: 1px !important;\n`;\n\nexport const ArrowsSvg = styled.svg`\n display: block;\n fill: none;\n height: 12px;\n width: 12px;\n stroke: currentcolor;\n stroke-width: 4;\n overflow: visible;\n`;\n","import styled from 'styled-components';\nimport { Swiper } from 'swiper/react';\n\nexport const CarouselSwiper = styled(Swiper)``;\n","import React, { useRef } from 'react';\n\nimport SwiperCore, { Navigation } from 'swiper';\nimport { SwiperSlide } from 'swiper/react';\n\nimport {\n CarouselContainer,\n CarouselNavbar,\n NavbarTitleContainer,\n NavbarControlsContainer,\n NavbarControlsQuick,\n NavbarControlsSpace,\n ArrowsContainer,\n ArrowsFlex,\n ArrowsDivider,\n ArrowsButton,\n ArrowsIconClip,\n ArrowsSvg\n} from '../styles';\nimport { CarouselSwiper } from './styles';\n\nSwiperCore.use([Navigation]);\n\nexport const CardCarousel: React.FC<any> = ({\n children,\n navigation,\n title,\n controls,\n onShowMore,\n ...props\n}) => {\n const prevRef = useRef<HTMLDivElement>(null);\n const nextRef = useRef<HTMLDivElement>(null);\n return (\n <CarouselContainer>\n {navigation && (\n <CarouselNavbar>\n {title && <NavbarTitleContainer>{title}</NavbarTitleContainer>}\n {controls && (\n <NavbarControlsContainer>\n {onShowMore && (\n <NavbarControlsQuick onClick={onShowMore}>\n Show More\n </NavbarControlsQuick>\n )}\n <NavbarControlsSpace />\n <ArrowsContainer aria-hidden=\"false\">\n <ArrowsFlex>\n <ArrowsButton\n ref={prevRef}\n aria-label=\"Previous\"\n type=\"button\"\n >\n <span\n css={`\n position: relative;\n `}\n >\n <ArrowsIconClip />\n <ArrowsSvg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n >\n <g fill=\"none\">\n <path d=\"m20 28-11.29289322-11.2928932c-.39052429-.3905243-.39052429-1.0236893 0-1.4142136l11.29289322-11.2928932\" />\n </g>\n </ArrowsSvg>\n </span>\n </ArrowsButton>\n <ArrowsDivider />\n <ArrowsButton aria-label=\"Next\" type=\"button\" ref={nextRef}>\n <span\n css={`\n position: relative;\n `}\n >\n <ArrowsIconClip />\n <ArrowsSvg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n >\n <g fill=\"none\">\n <path d=\"m12 4 11.2928932 11.2928932c.3905243.3905243.3905243 1.0236893 0 1.4142136l-11.2928932 11.2928932\" />\n </g>\n </ArrowsSvg>\n </span>\n </ArrowsButton>\n </ArrowsFlex>\n </ArrowsContainer>\n </NavbarControlsContainer>\n )}\n </CarouselNavbar>\n )}\n <CarouselSwiper\n {...props}\n onInit={swiper => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.prevEl = prevRef.current;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.nextEl = nextRef.current;\n swiper.navigation.init();\n swiper.navigation.update();\n // console.log(\"Swiper\", swiper);\n }}\n >\n {React.Children.map(children, child => (\n <SwiperSlide>{child}</SwiperSlide>\n ))}\n </CarouselSwiper>\n </CarouselContainer>\n );\n};\n","import styled from 'styled-components';\nimport { Swiper } from 'swiper/react';\n\nexport const CarouselSwiper = styled(Swiper)`\n .swiper-wrapper {\n box-sizing: inherit !important;\n @media (min-width: 744px) {\n scroll-padding: 40px !important;\n }\n @media (min-width: 1128px) {\n --scroll-padding: max(80px, calc((100vw - 1600px) / 2)) !important;\n scroll-padding: var(--scroll-padding) !important;\n }\n scroll-snap-type: x mandatory !important;\n overflow-x: auto !important;\n display: flex !important;\n scroll-padding: 24px !important;\n .swiper-slide {\n @media (min-width: 744px) {\n min-width: 476px !important;\n max-width: 588px !important;\n flex: 1 0 calc((100% - 80px) * 0.75) !important;\n }\n @media (min-width: 1128px) {\n flex: 1 0 calc(50% - 88px) !important;\n }\n margin-left: 16px !important;\n flex: 1 0 calc(100% - 84px) !important;\n scroll-snap-align: start !important;\n scroll-snap-stop: always !important;\n }\n .swiper-slide:first-of-type {\n @media (min-width: 744px) {\n padding-left: 40px !important;\n min-width: calc(516px) !important;\n max-width: calc(628px) !important;\n flex: 1 0 calc((100% - 80px) * 0.75 + 40px) !important;\n }\n @media (min-width: 1128px) {\n max-width: calc(588px + max(80px, (100vw - 1600px) / 2)) !important;\n flex: 1 0 calc(50% - 8px) !important;\n padding-left: max(80px, (100vw - 1600px) / 2) !important;\n }\n @media (min-width: 2080px) {\n max-width: calc(588px + max(80px, (100vw - 1930px) / 2)) !important;\n flex: 1 0 calc(50% - 8px) !important;\n padding-left: max(80px, (100vw - 1930px) / 2) !important;\n }\n flex: 1 0 calc(100% - 84px) !important;\n scroll-snap-align: start !important;\n scroll-snap-stop: always !important;\n margin-left: 0px !important;\n padding-left: 24px !important;\n }\n .swiper-slide:last-of-type {\n @media (min-width: 744px) {\n padding-right: 40px !important;\n min-width: calc(516px) !important;\n max-width: calc(628px) !important;\n flex: 1 0 calc((100% - 80px) * 0.75 + 40px) !important;\n }\n @media (min-width: 1128px) {\n max-width: calc(588px + max(80px, (100vw - 1600px) / 2)) !important;\n flex: 1 0 calc(50% - 8px) !important;\n padding-right: max(80px, (100vw - 1600px) / 2) !important;\n }\n @media (min-width: 2080px) {\n max-width: calc(588px + max(80px, (100vw - 1930px) / 2)) !important;\n flex: 1 0 calc(50% - 8px) !important;\n padding-right: max(80px, (100vw - 1930px) / 2) !important;\n }\n margin-left: 16px !important;\n flex: 1 0 calc(100% - 84px) !important;\n scroll-snap-align: start !important;\n scroll-snap-stop: always !important;\n padding-right: 24px !important;\n }\n }\n`;\n","/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useRef } from 'react';\n\nimport { Container } from '@fox-dls/layout';\nimport SwiperCore, { Navigation } from 'swiper';\nimport { SwiperSlide } from 'swiper/react';\n\nimport {\n CarouselContainer,\n CarouselNavbar,\n NavbarTitleContainer,\n NavbarControlsContainer,\n NavbarControlsQuick,\n NavbarControlsSpace,\n ArrowsContainer,\n ArrowsFlex,\n ArrowsDivider,\n ArrowsButton,\n ArrowsIconClip,\n ArrowsSvg\n} from '../styles';\nimport { CarouselSwiper } from './styles';\n\nSwiperCore.use([Navigation]);\n\nexport const FreeCarousel: React.FC<any> = ({\n children,\n navigation,\n title,\n controls,\n quickLink,\n onShowMore,\n ...props\n}) => {\n const prevRef = useRef<HTMLDivElement>(null);\n const nextRef = useRef<HTMLDivElement>(null);\n return (\n <CarouselContainer>\n <div\n css={`\n @media (max-width: 744px) {\n display: none !important;\n }\n `}\n >\n <Container>\n {navigation && (\n <CarouselNavbar>\n {title && <NavbarTitleContainer>{title}</NavbarTitleContainer>}\n {controls && (\n <NavbarControlsContainer>\n {onShowMore && (\n <NavbarControlsQuick onClick={onShowMore}>\n Show More\n </NavbarControlsQuick>\n )}\n <NavbarControlsSpace />\n <ArrowsContainer aria-hidden=\"false\">\n <ArrowsFlex>\n <ArrowsButton\n ref={prevRef}\n aria-label=\"Previous\"\n type=\"button\"\n >\n <span\n css={`\n position: relative;\n `}\n >\n <ArrowsIconClip />\n <ArrowsSvg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n >\n <g fill=\"none\">\n <path d=\"m20 28-11.29289322-11.2928932c-.39052429-.3905243-.39052429-1.0236893 0-1.4142136l11.29289322-11.2928932\" />\n </g>\n </ArrowsSvg>\n </span>\n </ArrowsButton>\n <ArrowsDivider />\n <ArrowsButton\n aria-label=\"Next\"\n type=\"button\"\n ref={nextRef}\n >\n <span\n css={`\n position: relative;\n `}\n >\n <ArrowsIconClip />\n <ArrowsSvg\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n focusable=\"false\"\n >\n <g fill=\"none\">\n <path d=\"m12 4 11.2928932 11.2928932c.3905243.3905243.3905243 1.0236893 0 1.4142136l-11.2928932 11.2928932\" />\n </g>\n </ArrowsSvg>\n </span>\n </ArrowsButton>\n </ArrowsFlex>\n </ArrowsContainer>\n </NavbarControlsContainer>\n )}\n </CarouselNavbar>\n )}\n </Container>\n </div>\n <CarouselSwiper\n {...props}\n cssMode\n onInit={swiper => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.prevEl = prevRef.current;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.nextEl = nextRef.current;\n swiper.navigation.init();\n swiper.navigation.update();\n // console.log(\"Swiper\", swiper);\n }}\n >\n {React.Children.map(children, child => (\n <SwiperSlide>{child}</SwiperSlide>\n ))}\n </CarouselSwiper>\n </CarouselContainer>\n );\n};\n","import ButtonUnstyled from '@mui/core/ButtonUnstyled';\nimport styled from 'styled-components';\nimport { Swiper } from 'swiper/react';\n\nexport const CarouselContainer = styled.div``;\n\nexport const CarouselSwiper = styled(Swiper)`\n height: 100%;\n .swiper-pagination {\n .swiper-pagination-bullet-active {\n background-color: #fff;\n }\n .swiper-pagination-bullet-active-next {\n background-color: #ffffff;\n }\n .swiper-pagination-bullet {\n background-color: #ffffff;\n }\n }\n`;\n\nexport const CarouselPill = styled(ButtonUnstyled)`\n :hover {\n border-color: rgba(0, 0, 0, 0.08) !important;\n background-color: #ffffff !important;\n color: #000000 !important;\n box-shadow: 0px 0px 0px 1px transparent, 0px 0px 0px 4px transparent,\n 0px 6px 16px rgb(0 0 0 / 12%) !important;\n -webkit-transform: scale(1.04) !important;\n -ms-transform: scale(1.04) !important;\n transform: scale(1.04) !important;\n }\n\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n display: -webkit-inline-box !important;\n display: -moz-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: -webkit-inline-flex !important;\n display: inline-flex !important;\n border-radius: 50% !important;\n border: 0px !important;\n outline: none !important;\n margin: 0px !important;\n padding: 0px !important;\n color: #222222 !important;\n background-color: rgba(255, 255, 255, 0.9) !important;\n cursor: pointer !important;\n -ms-touch-action: manipulation !important;\n touch-action: manipulation !important;\n -webkit-align-items: center !important;\n align-items: center !important;\n -webkit-justify-content: center !important;\n justify-content: center !important;\n border-style: solid !important;\n border-width: 1px !important;\n background-clip: padding-box !important;\n border-color: rgba(0, 0, 0, 0.08) !important;\n box-shadow: 0px 0px 0px 1px transparent, 0px 0px 0px 4px transparent,\n 0px 2px 4px rgb(0 0 0 / 18%) !important;\n -webkit-transition: -webkit-transform 0.25s ease, transform 0.25s ease !important;\n -moz-transition: transform 0.25s ease !important;\n transition: -ms-transform 0.25s ease, -webkit-transform 0.25s ease,\n transform 0.25s ease !important;\n width: 32px !important;\n height: 32px !important;\n`;\n\nexport const CarouselPillSvg = styled.svg`\n height: 10px;\n width: 10px;\n display: block;\n fill: currentcolor;\n`;\n","/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useRef } from 'react';\n\nimport SwiperCore, { Navigation, Pagination } from 'swiper';\nimport { SwiperSlide } from 'swiper/react';\n\nimport { CarouselSwiper, CarouselPillSvg, CarouselPill } from './styles';\n\nSwiperCore.use([Navigation, Pagination]);\n\nexport const PaginationCarousel: React.FC<any> = ({\n children,\n navigation,\n title,\n controls,\n ...props\n}) => {\n const prevRef = useRef<HTMLDivElement>(null);\n const nextRef = useRef<HTMLDivElement>(null);\n return (\n <>\n <div\n css={`\n @keyframes fadein {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n position: absolute !important;\n top: 50% !important;\n pointer-events: auto !important;\n transform: translateY(-50%) !important;\n left: 8px !important;\n animation-duration: 0.3s !important;\n animation-name: fadein !important;\n z-index: 180 !important;\n opacity: 0 !important;\n :hover {\n opacity: 1 !important;\n }\n `}\n >\n <CarouselPill ref={prevRef}>\n <span\n css={`\n position: relative !important;\n `}\n >\n <CarouselPillSvg\n viewBox=\"0 0 16 16\"\n role=\"presentation\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"m10.8 16c-.4 0-.7-.1-.9-.4l-6.8-6.7c-.5-.5-.5-1.3 0-1.8l6.8-6.7c.5-.5 1.2-.5 1.7 0s .5 1.2 0 1.7l-5.8 5.9 5.8 5.9c.5.5.5 1.2 0 1.7-.2.3-.5.4-.8.4\" />\n </CarouselPillSvg>\n </span>\n </CarouselPill>\n </div>\n <div\n css={`\n @keyframes fadein {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n position: absolute !important;\n top: 50% !important;\n pointer-events: auto !important;\n transform: translateY(-50%) !important;\n right: 8px !important;\n animation-duration: 0.3s !important;\n animation-name: fadein !important;\n z-index: 180 !important;\n opacity: 0 !important;\n :hover {\n opacity: 1 !important;\n }\n `}\n >\n <CarouselPill ref={nextRef}>\n <span\n css={`\n position: relative !important;\n `}\n >\n <CarouselPillSvg\n viewBox=\"0 0 16 16\"\n role=\"presentation\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"m5.3 16c .3 0 .6-.1.8-.4l6.8-6.7c.5-.5.5-1.3 0-1.8l-6.8-6.7c-.5-.5-1.2-.5-1.7 0s-.5 1.2 0 1.7l5.8 5.9-5.8 5.9c-.5.5-.5 1.2 0 1.7.2.3.5.4.9.4\" />\n </CarouselPillSvg>\n </span>\n </CarouselPill>\n </div>\n <CarouselSwiper\n {...props}\n pagination={{\n dynamicBullets: true\n }}\n onInit={swiper => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.prevEl = prevRef.current;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n swiper.params.navigation.nextEl = nextRef.current;\n swiper.navigation.init();\n swiper.navigation.update();\n // console.log(\"Swiper\", swiper);\n }}\n >\n {React.Children.map(children, child =>\n React.cloneElement(<SwiperSlide>{child}</SwiperSlide>, {\n ...props\n })\n )}\n </CarouselSwiper>\n </>\n );\n};\n"],"names":["CarouselSwiper","styled","Swiper","CarouselPillContainer","div","CarouselPill","ButtonUnstyled","SwiperCore","use","Navigation","PillsCarousel","children","arrows","props","prevRef","useRef","nextRef","useState","progress","isBeginning","isEnd","swiperSlides","setSwiperSlides","swiper","setSwiper","_jsxs","css","_jsx","left","ref","type","onClick","slidePrev","viewBox","xmlns","role","focusable","fill","d","cssMode","slidesPerView","onInit","params","navigation","prevEl","current","nextEl","init","update","onSlideChange","React","Children","map","child","SwiperSlide","right","slideNext","CarouselContainer","CarouselNavbar","NavbarTitleContainer","NavbarControlsContainer","NavbarControlsQuick","a","NavbarControlsSpace","span","ArrowsContainer","ArrowsFlex","ArrowsButton","ArrowsDivider","ArrowsIconClip","ArrowsSvg","svg","CardCarousel","title","controls","onShowMore","FreeCarousel","Container","CarouselPillSvg","Pagination","PaginationCarousel","pagination","dynamicBullets","cloneElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAc,gBAAGC,0BAAM,CAACC,YAAD,CAAT;AAAA;AAAA;AAAA,uHAApB;AAUA,IAAMC,qBAAqB,gBAAGF,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,8HAA3B;AAOA,IAAMC,cAAY,gBAAGJ,0BAAM,CAACK,kCAAD,CAAT;AAAA;AAAA;AAAA,06BAAlB;;;;;ACbPC,8BAAU,CAACC,GAAX,CAAe,CAACC,qBAAD,CAAf;IAEaC,aAAa,GAAkB,SAA/BA,aAA+B;MAC1CC,gBAAAA;MAIAC,cAAAA;MACGC;;AAEH,MAAMC,OAAO,GAAGC,YAAM,CAAM,IAAN,CAAtB;AACA,MAAMC,OAAO,GAAGD,YAAM,CAAM,IAAN,CAAtB;;AACA,kBAAwCE,cAAQ,CAAM;AACpDC,IAAAA,QAAQ,EAAE,CAD0C;AAEpDC,IAAAA,WAAW,EAAE,IAFuC;AAGpDC,IAAAA,KAAK,EAAE;AAH6C,GAAN,CAAhD;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAKA,mBAA4BL,cAAQ,CAAM,IAAN,CAApC;AAAA,MAAOM,MAAP;AAAA,MAAeC,SAAf;;AACA,SACEC;AACEC,IAAAA,GAAG;eAMHC;AACED,MAAAA,GAAG,+UAUCL,YAAY,CAACF,WAAb,IACFO,UADE,yKAVD;gBAiBFd,MAAM,IACLe,eAACxB;kBACCwB,eAACtB;AACCuB,UAAAA,IAAI,EAAE,CAAC;AACPC,UAAAA,GAAG,EAAEf;wBACM;AACXgB,UAAAA,IAAI,EAAC;AACLC,UAAAA,OAAO,EAAE;AAAA,mBAAMR,MAAM,CAACS,SAAP,EAAN;AAAA;oBAETL;AACED,YAAAA,GAAG;sBAIHC;AACEM,cAAAA,OAAO,EAAC;AACRC,cAAAA,KAAK,EAAC;6BACM;AACZC,cAAAA,IAAI,EAAC;AACLC,cAAAA,SAAS,EAAC;AACVV,cAAAA,GAAG;wBAUHC;AAAGU,gBAAAA,IAAI,EAAC;0BACNV;AAAMW,kBAAAA,CAAC,EAAC;;;;;;;gBAStBX,eAAC3B,+BACKa;AACJ0B,MAAAA,OAAO,EAAE;AACTC,MAAAA,aAAa,EAAC;AACdC,MAAAA,MAAM,EAAE,gBAAClB,MAAD;AACNC,QAAAA,SAAS,CAACD,MAAD,CAAT;AAEA;AACA;;AACAA,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBC,MAAzB,GAAkC9B,OAAO,CAAC+B,OAA1C;AAEA;AACA;;AACAtB,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBG,MAAzB,GAAkC9B,OAAO,CAAC6B,OAA1C;AACAtB,QAAAA,MAAM,CAACoB,UAAP,CAAkBI,IAAlB;AACAxB,QAAAA,MAAM,CAACoB,UAAP,CAAkBK,MAAlB;AACA1B,QAAAA,eAAe,CAAC;AACdJ,UAAAA,QAAQ,EAAEK,MAAM,CAACL,QADH;AAEdC,UAAAA,WAAW,EAAEI,MAAM,CAACJ,WAFN;AAGdC,UAAAA,KAAK,EAAEG,MAAM,CAACH;AAHA,SAAD,CAAf;AAMD;AACD6B,MAAAA,aAAa,EAAE,uBAAA1B,MAAM;AACnB;AAEAD,QAAAA,eAAe,CAAC;AACdJ,UAAAA,QAAQ,EAAEK,MAAM,CAACL,QADH;AAEdC,UAAAA,WAAW,EAAEI,MAAM,CAACJ,WAFN;AAGdC,UAAAA,KAAK,EAAEG,MAAM,CAACH;AAHA,SAAD,CAAf;AAKD;gBAEA8B,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBzC,QAAnB,EAA6B,UAAA0C,KAAK;AAAA,eACjC1B,eAAC2B;oBACC3B;AACED,YAAAA,GAAG;sBAQF2B;;kBAX4B;AAAA,OAAlC;iBAiBH1B;AACED,MAAAA,GAAG,kdAaCL,YAAY,CAACD,KAAb,IACFM,UADE,2KAbD;gBAoBFd,MAAM,IACLe,eAACxB;kBACCwB,eAACtB;AACCkD,UAAAA,KAAK,EAAE,CAAC;wBACG;AACXzB,UAAAA,IAAI,EAAC;AACLD,UAAAA,GAAG,EAAEb;AACLe,UAAAA,OAAO,EAAE;AAAA,mBAAMR,MAAM,CAACiC,SAAP,EAAN;AAAA;oBAET7B;AACED,YAAAA,GAAG;sBAIHC;AACEM,cAAAA,OAAO,EAAC;AACRC,cAAAA,KAAK,EAAC;6BACM;AACZC,cAAAA,IAAI,EAAC;AACLC,cAAAA,SAAS,EAAC;AACVV,cAAAA,GAAG;wBAUHC;AAAGU,gBAAAA,IAAI,EAAC;0BACNV;AAAMW,kBAAAA,CAAC,EAAC;;;;;;;;YAxK1B;AAkLD;;AC3MM,IAAMmB,iBAAiB,gBAAGxD,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,0DAAvB;AAKA,IAAMsD,cAAc,gBAAGzD,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,yfAApB;AAkBA,IAAMuD,oBAAoB,gBAAG1D,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,2DAA1B;AAoBA,IAAMwD,uBAAuB,gBAAG3D,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,0FAA7B;AAMA,IAAMyD,mBAAmB,gBAAG5D,0BAAM,CAAC6D,CAAV;AAAA;AAAA;AAAA,iWAAzB;AAgBA,IAAMC,mBAAmB,gBAAG9D,0BAAM,CAAC+D,IAAV;AAAA;AAAA;AAAA,+JAAzB;AASA,IAAMC,eAAe,gBAAGhE,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,6JAArB;AAQA,IAAM8D,UAAU,gBAAGjE,0BAAM,CAACG,GAAV;AAAA;AAAA;AAAA,0JAAhB;AAQA,IAAM+D,YAAY,gBAAGlE,0BAAM,CAACK,kCAAD,CAAT;AAAA;AAAA;AAAA,mrCAAlB;AAiDA,IAAM8D,aAAa,gBAAGnE,0BAAM,CAAC+D,IAAV;AAAA;AAAA;AAAA,mCAAnB;AAIA,IAAMK,cAAc,gBAAGpE,0BAAM,CAAC+D,IAAV;AAAA;AAAA;AAAA,8RAApB;AAaA,IAAMM,SAAS,gBAAGrE,0BAAM,CAACsE,GAAV;AAAA;AAAA;AAAA,2GAAf;;AC5JA,IAAMvE,gBAAc,gBAAGC,0BAAM,CAACC,YAAD,CAAT;AAAA;AAAA;AAAA,QAApB;;;ACkBPK,8BAAU,CAACC,GAAX,CAAe,CAACC,qBAAD,CAAf;IAEa+D,YAAY,GAAkB,SAA9BA,YAA8B;MACzC7D,gBAAAA;MACAgC,kBAAAA;MACA8B,aAAAA;MACAC,gBAAAA;MACAC,kBAAAA;MACG9D;;AAEH,MAAMC,OAAO,GAAGC,YAAM,CAAiB,IAAjB,CAAtB;AACA,MAAMC,OAAO,GAAGD,YAAM,CAAiB,IAAjB,CAAtB;AACA,SACEU,gBAACgC;eACEd,UAAU,IACTlB,gBAACiC;iBACEe,KAAK,IAAI9C,eAACgC;kBAAsBc;kBAChCC,QAAQ,IACPjD,gBAACmC;mBACEe,UAAU,IACThD,eAACkC;AAAoB9B,UAAAA,OAAO,EAAE4C;;oBAIhChD,eAACoC,kCACDpC,eAACsC;yBAA4B;oBAC3BxC,gBAACyC;uBACCvC,eAACwC;AACCtC,cAAAA,GAAG,EAAEf;4BACM;AACXgB,cAAAA,IAAI,EAAC;wBAELL;AACEC,gBAAAA,GAAG;2BAIHC,eAAC0C,6BACD1C,eAAC2C;AACCrC,kBAAAA,OAAO,EAAC;AACRC,kBAAAA,KAAK,EAAC;iCACM;AACZC,kBAAAA,IAAI,EAAC;AACLC,kBAAAA,SAAS,EAAC;4BAEVT;AAAGU,oBAAAA,IAAI,EAAC;8BACNV;AAAMW,sBAAAA,CAAC,EAAC;;;;;wBAKhBX,eAACyC,4BACDzC,eAACwC;4BAAwB;AAAOrC,cAAAA,IAAI,EAAC;AAASD,cAAAA,GAAG,EAAEb;wBACjDS;AACEC,gBAAAA,GAAG;2BAIHC,eAAC0C,6BACD1C,eAAC2C;AACCrC,kBAAAA,OAAO,EAAC;AACRC,kBAAAA,KAAK,EAAC;iCACM;AACZC,kBAAAA,IAAI,EAAC;AACLC,kBAAAA,SAAS,EAAC;4BAEVT;AAAGU,oBAAAA,IAAI,EAAC;8BACNV;AAAMW,sBAAAA,CAAC,EAAC;;;;;;;;;gBAW5BX,eAAC3B,+BACKa;AACJ4B,MAAAA,MAAM,EAAE,gBAAAlB,MAAM;AACZ;AACA;AACA;AACAA,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBC,MAAzB,GAAkC9B,OAAO,CAAC+B,OAA1C;AAEA;AACA;;AACAtB,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBG,MAAzB,GAAkC9B,OAAO,CAAC6B,OAA1C;AACAtB,QAAAA,MAAM,CAACoB,UAAP,CAAkBI,IAAlB;AACAxB,QAAAA,MAAM,CAACoB,UAAP,CAAkBK,MAAlB;AAED;gBAEAE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBzC,QAAnB,EAA6B,UAAA0C,KAAK;AAAA,eACjC1B,eAAC2B;oBAAaD;kBADmB;AAAA,OAAlC;;YAlFP;AAwFD;;ACtHM,IAAMrD,gBAAc,gBAAGC,0BAAM,CAACC,YAAD,CAAT;AAAA;AAAA;AAAA,gpEAApB;;;ACoBPK,8BAAU,CAACC,GAAX,CAAe,CAACC,qBAAD,CAAf;IAEamE,YAAY,GAAkB,SAA9BA,YAA8B;MACzCjE,gBAAAA;MACAgC,kBAAAA;MACA8B,aAAAA;MACAC,gBAAAA;MAEAC,kBAAAA;MACG9D;;AAEH,MAAMC,OAAO,GAAGC,YAAM,CAAiB,IAAjB,CAAtB;AACA,MAAMC,OAAO,GAAGD,YAAM,CAAiB,IAAjB,CAAtB;AACA,SACEU,gBAACgC;eACC9B;AACED,MAAAA,GAAG;gBAMHC,eAACkD;kBACElC,UAAU,IACTlB,gBAACiC;qBACEe,KAAK,IAAI9C,eAACgC;sBAAsBc;sBAChCC,QAAQ,IACPjD,gBAACmC;uBACEe,UAAU,IACThD,eAACkC;AAAoB9B,cAAAA,OAAO,EAAE4C;;wBAIhChD,eAACoC,kCACDpC,eAACsC;6BAA4B;wBAC3BxC,gBAACyC;2BACCvC,eAACwC;AACCtC,kBAAAA,GAAG,EAAEf;gCACM;AACXgB,kBAAAA,IAAI,EAAC;4BAELL;AACEC,oBAAAA,GAAG;+BAIHC,eAAC0C,6BACD1C,eAAC2C;AACCrC,sBAAAA,OAAO,EAAC;AACRC,sBAAAA,KAAK,EAAC;qCACM;AACZC,sBAAAA,IAAI,EAAC;AACLC,sBAAAA,SAAS,EAAC;gCAEVT;AAAGU,wBAAAA,IAAI,EAAC;kCACNV;AAAMW,0BAAAA,CAAC,EAAC;;;;;4BAKhBX,eAACyC,4BACDzC,eAACwC;gCACY;AACXrC,kBAAAA,IAAI,EAAC;AACLD,kBAAAA,GAAG,EAAEb;4BAELS;AACEC,oBAAAA,GAAG;+BAIHC,eAAC0C,6BACD1C,eAAC2C;AACCrC,sBAAAA,OAAO,EAAC;AACRC,sBAAAA,KAAK,EAAC;qCACM;AACZC,sBAAAA,IAAI,EAAC;AACLC,sBAAAA,SAAS,EAAC;gCAEVT;AAAGU,wBAAAA,IAAI,EAAC;kCACNV;AAAMW,0BAAAA,CAAC,EAAC;;;;;;;;;;;gBAahCX,eAAC3B,+BACKa;AACJ0B,MAAAA,OAAO;AACPE,MAAAA,MAAM,EAAE,gBAAAlB,MAAM;AACZ;AACA;AACA;AACAA,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBC,MAAzB,GAAkC9B,OAAO,CAAC+B,OAA1C;AAEA;AACA;;AACAtB,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBG,MAAzB,GAAkC9B,OAAO,CAAC6B,OAA1C;AACAtB,QAAAA,MAAM,CAACoB,UAAP,CAAkBI,IAAlB;AACAxB,QAAAA,MAAM,CAACoB,UAAP,CAAkBK,MAAlB;AAED;gBAEAE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBzC,QAAnB,EAA6B,UAAA0C,KAAK;AAAA,eACjC1B,eAAC2B;oBAAaD;kBADmB;AAAA,OAAlC;;YAjGP;AAuGD;;ACrIM,IAAMrD,cAAc,gBAAGC,0BAAM,CAACC,YAAD,CAAT;AAAA;AAAA;AAAA,oNAApB;AAeA,IAAMG,YAAY,gBAAGJ,0BAAM,CAACK,kCAAD,CAAT;AAAA;AAAA;AAAA,0qDAAlB;AAoDA,IAAMwE,eAAe,gBAAG7E,0BAAM,CAACsE,GAAV;AAAA;AAAA;AAAA,+DAArB;;;ACjEPhE,8BAAU,CAACC,GAAX,CAAe,CAACC,qBAAD,EAAasE,qBAAb,CAAf;IAEaC,kBAAkB,GAAkB,SAApCA,kBAAoC;MAC/CrE,gBAAAA;MAIGE;;AAEH,MAAMC,OAAO,GAAGC,YAAM,CAAiB,IAAjB,CAAtB;AACA,MAAMC,OAAO,GAAGD,YAAM,CAAiB,IAAjB,CAAtB;AACA,SACEU;eACEE;AACED,MAAAA,GAAG;gBAwBHC,eAACtB;AAAawB,QAAAA,GAAG,EAAEf;kBACjBa;AACED,UAAAA,GAAG;oBAIHC,eAACmD;AACC7C,YAAAA,OAAO,EAAC;AACRE,YAAAA,IAAI,EAAC;2BACO;AACZC,YAAAA,SAAS,EAAC;sBAEVT;AAAMW,cAAAA,CAAC,EAAC;;;;;gBAKhBX;AACED,MAAAA,GAAG;gBAwBHC,eAACtB;AAAawB,QAAAA,GAAG,EAAEb;kBACjBW;AACED,UAAAA,GAAG;oBAIHC,eAACmD;AACC7C,YAAAA,OAAO,EAAC;AACRE,YAAAA,IAAI,EAAC;2BACO;AACZC,YAAAA,SAAS,EAAC;sBAEVT;AAAMW,cAAAA,CAAC,EAAC;;;;;gBAKhBX,eAAC3B,6BACKa;AACJoE,MAAAA,UAAU,EAAE;AACVC,QAAAA,cAAc,EAAE;AADN;AAGZzC,MAAAA,MAAM,EAAE,gBAAAlB,MAAM;AACZ;AACA;AACA;AACAA,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBC,MAAzB,GAAkC9B,OAAO,CAAC+B,OAA1C;AAEA;AACA;;AACAtB,QAAAA,MAAM,CAACmB,MAAP,CAAcC,UAAd,CAAyBG,MAAzB,GAAkC9B,OAAO,CAAC6B,OAA1C;AACAtB,QAAAA,MAAM,CAACoB,UAAP,CAAkBI,IAAlB;AACAxB,QAAAA,MAAM,CAACoB,UAAP,CAAkBK,MAAlB;AAED;gBAEAE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBzC,QAAnB,EAA6B,UAAA0C,KAAK;AAAA,eACjCH,yBAAK,CAACiC,YAAN,CAAmBxD,eAAC2B;oBAAaD;kBAAjC,eACKxC,KADL,EADiC;AAAA,OAAlC;;YAzGP;AAiHD;;;;;;;"}
File without changes
@@ -0,0 +1 @@
1
+ export declare const CarouselSwiper: import("styled-components").StyledComponent<import("react").FunctionComponent<import("swiper/react").SwiperProps>, any, {}, never>;
File without changes
@@ -0,0 +1 @@
1
+ export declare const CarouselSwiper: import("styled-components").StyledComponent<import("react").FunctionComponent<import("swiper/react").SwiperProps>, any, {}, never>;
File without changes
@@ -0,0 +1,6 @@
1
+ export declare const CarouselContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const CarouselSwiper: import("styled-components").StyledComponent<import("react").FunctionComponent<import("swiper/react").SwiperProps>, any, {}, never>;
3
+ export declare const CarouselPill: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps & Omit<any, keyof import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps> & {
4
+ component?: import("react").ElementType<any>;
5
+ }, string | number | symbol> & import("react").RefAttributes<any>>, any, {}, never>;
6
+ export declare const CarouselPillSvg: import("styled-components").StyledComponent<"svg", any, {}, never>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const PillsCarousel: React.FC<any>;
@@ -0,0 +1,6 @@
1
+ export declare const CarouselContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const CarouselSwiper: import("styled-components").StyledComponent<import("react").FunctionComponent<import("swiper/react").SwiperProps>, any, {}, never>;
3
+ export declare const CarouselPillContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const CarouselPill: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps & Omit<any, keyof import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps> & {
5
+ component?: import("react").ElementType<any>;
6
+ }, string | number | symbol> & import("react").RefAttributes<any>>, any, any, never>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const CarouselContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
3
2
  export declare const CarouselNavbar: import("styled-components").StyledComponent<"div", any, {}, never>;
4
3
  export declare const NavbarTitleContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -9,7 +8,7 @@ export declare const NavbarControlsSpace: import("styled-components").StyledComp
9
8
  export declare const ArrowsContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
10
9
  export declare const ArrowsFlex: import("styled-components").StyledComponent<"div", any, {}, never>;
11
10
  export declare const ArrowsButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps & Omit<any, keyof import("@mui/core/ButtonUnstyled").ButtonUnstyledOwnProps> & {
12
- component?: import("react").ElementType<any> | undefined;
11
+ component?: import("react").ElementType<any>;
13
12
  }, string | number | symbol> & import("react").RefAttributes<any>>, any, any, never>;
14
13
  export declare const ArrowsDivider: import("styled-components").StyledComponent<"span", any, {}, never>;
15
14
  export declare const ArrowsIconClip: import("styled-components").StyledComponent<"span", any, {}, never>;
package/package.json CHANGED
@@ -1,15 +1,117 @@
1
1
  {
2
2
  "name": "@fox-dls/carousels",
3
- "version": "0.0.1",
4
- "main": "./carousels.umd.js",
5
- "module": "./carousels.esm.js",
6
- "typings": "./index.d.ts",
7
- "dependencies": {},
3
+ "version": "1.0.0",
4
+ "license": "MIT",
5
+ "source": "src/index.ts",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.esm.js",
8
+ "types": "dist/index.d.ts",
9
+ "scripts": {
10
+ "build": "rimraf --no-glob ./dist && cross-env NODE_ENV=production microbundle --tsconfig ./tsconfig.build.json --jsx React.createElement --jsxFragment React.Fragment -f cjs,es --no-compress",
11
+ "build:react17jsx": "microbundle --tsconfig ./tsconfig.build.json --jsx jsx --jsxImportSource react --globals react/jsx-runtime=jsx --compress",
12
+ "dev": "microbundle watch",
13
+ "clean": "rimraf --no-glob ./dist ./coverage ./tsconfig.tsbuildinfo ./.eslintcache && jest --clear-cache",
14
+ "lint": "eslint . --ext .ts,.tsx,.js,.jsx",
15
+ "typecheck": "tsc --project ./tsconfig.json --noEmit",
16
+ "test": "run-s 'test:*'",
17
+ "test:unit": "jest --config jest.config.js --maxWorkers=50% --color $@",
18
+ "ci-test:unit": "jest --config jest.config.js --runInBand --color $@",
19
+ "fix:staged-files": "lint-staged --allow-empty",
20
+ "fix:all-files": "eslint . --ext .ts,.tsx,.js,.jsx --fix"
21
+ },
22
+ "devDependencies": {
23
+ "@babel/core": "^7.16.0",
24
+ "@changesets/changelog-github": "0.4.2",
25
+ "@changesets/cli": "2.18.1",
26
+ "@next/bundle-analyzer": "12.0.5-canary.13",
27
+ "@size-limit/file": "7.0.3",
28
+ "@storybook/react": "^6.4.4",
29
+ "@svgr/webpack": "6.1.0",
30
+ "@testing-library/jest-dom": "5.15.1",
31
+ "@testing-library/react": "12.1.2",
32
+ "@testing-library/react-hooks": "7.0.2",
33
+ "@types/cors": "2.8.12",
34
+ "@types/eslint": "8.2.0",
35
+ "@types/google-map-react": "^2.1.3",
36
+ "@types/jest": "27.0.3",
37
+ "@types/node": "16.11.11",
38
+ "@types/react": "17.0.37",
39
+ "@types/react-dom": "17.0.11",
40
+ "@types/react-is": "17.0.3",
41
+ "@types/react-redux": "^7.1.20",
42
+ "@types/shell-quote": "1.7.1",
43
+ "@types/styled-components": "^5.1.16",
44
+ "@types/swiper": "^5.4.3",
45
+ "@types/uuid": "^8.3.3",
46
+ "@typescript-eslint/eslint-plugin": "5.5.0",
47
+ "@typescript-eslint/parser": "5.5.0",
48
+ "autoprefixer": "10.4.0",
49
+ "babel-jest": "27.4.2",
50
+ "babel-loader": "^8.2.3",
51
+ "babel-plugin-module-resolver": "^4.1.0",
52
+ "babel-plugin-styled-components": "^2.0.2",
53
+ "cross-env": "7.0.3",
54
+ "cypress": "^9.1.0",
55
+ "dotenv": "^10.0.0",
56
+ "dotenv-flow": "3.2.0",
57
+ "dotenv-flow-cli": "1.0.0",
58
+ "duplicate-package-checker-webpack-plugin": "^3.0.0",
59
+ "eslint": "8.3.0",
60
+ "eslint-config-airbnb": "^19.0.2",
61
+ "eslint-config-airbnb-base": "^15.0.0",
62
+ "eslint-config-airbnb-typescript": "^16.1.0",
63
+ "eslint-config-next": "12.0.5-canary.13",
64
+ "eslint-config-prettier": "8.3.0",
65
+ "eslint-import-resolver-babel-module": "^5.3.1",
66
+ "eslint-import-resolver-typescript": "2.5.0",
67
+ "eslint-plugin-cypress": "^2.12.1",
68
+ "eslint-plugin-import": "2.25.3",
69
+ "eslint-plugin-jest": "25.3.0",
70
+ "eslint-plugin-jest-formatting": "3.1.0",
71
+ "eslint-plugin-jsx-a11y": "6.5.1",
72
+ "eslint-plugin-prettier": "4.0.0",
73
+ "eslint-plugin-react": "7.27.1",
74
+ "eslint-plugin-react-hooks": "4.3.0",
75
+ "eslint-plugin-regexp": "1.5.1",
76
+ "eslint-plugin-sonarjs": "0.11.0",
77
+ "eslint-plugin-testing-library": "5.0.1",
78
+ "eslint-plugin-unused-imports": "^2.0.0",
79
+ "husky": "^7.0.4",
80
+ "is-ci": "3.0.1",
81
+ "jest": "27.4.3",
82
+ "lint-staged": "^12.1.2",
83
+ "microbundle": "0.14.2",
84
+ "ngx-deploy-npm": "^3.0.6",
85
+ "nock": "^13.2.1",
86
+ "npm-run-all": "4.1.5",
87
+ "prettier": "2.5.0",
88
+ "react": "17.0.2",
89
+ "react-dom": "17.0.2",
90
+ "react-test-renderer": "17.0.2",
91
+ "rimraf": "3.0.2",
92
+ "sass": "1.44.0",
93
+ "shell-quote": "1.7.3",
94
+ "size-limit": "7.0.3",
95
+ "symlink-dir": "5.0.1",
96
+ "sync-directory": "4.0.7",
97
+ "ts-jest": "27.0.7",
98
+ "ts-node": "10.4.0",
99
+ "typescript": "4.5.2",
100
+ "typescript-plugin-styled-components": "^2.0.0"
101
+ },
8
102
  "peerDependencies": {
9
- "swiper": "^7.2.0",
103
+ "@fox-dls/layout": "1.0.0",
104
+ "@mui/core": "^5.0.0-alpha.54",
10
105
  "react": "^17.0.2",
11
106
  "styled-components": "^5.3.3",
12
- "@mui/core": "^5.0.0-alpha.53",
13
- "@fox-dls/layout": "0.0.1"
107
+ "swiper": "^7.3.1"
108
+ },
109
+ "peerDependenciesMeta": {
110
+ "react": {
111
+ "optional": true
112
+ },
113
+ "react-dom": {
114
+ "optional": true
115
+ }
14
116
  }
15
117
  }
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ import type {} from 'styled-components/cssprop';
2
+
3
+ export * from './lib/pills/index';
4
+ export * from './lib/card/index';
5
+ export * from './lib/free/index';
6
+ export * from './lib/pagination/index';
@@ -0,0 +1,122 @@
1
+ import React, { useRef } from 'react';
2
+
3
+ import SwiperCore, { Navigation } from 'swiper';
4
+ import { SwiperSlide } from 'swiper/react';
5
+
6
+ import {
7
+ CarouselContainer,
8
+ CarouselNavbar,
9
+ NavbarTitleContainer,
10
+ NavbarControlsContainer,
11
+ NavbarControlsQuick,
12
+ NavbarControlsSpace,
13
+ ArrowsContainer,
14
+ ArrowsFlex,
15
+ ArrowsDivider,
16
+ ArrowsButton,
17
+ ArrowsIconClip,
18
+ ArrowsSvg
19
+ } from '../styles';
20
+ import { CarouselSwiper } from './styles';
21
+
22
+ SwiperCore.use([Navigation]);
23
+
24
+ export const CardCarousel: React.FC<any> = ({
25
+ children,
26
+ navigation,
27
+ title,
28
+ controls,
29
+ onShowMore,
30
+ ...props
31
+ }) => {
32
+ const prevRef = useRef<HTMLDivElement>(null);
33
+ const nextRef = useRef<HTMLDivElement>(null);
34
+ return (
35
+ <CarouselContainer>
36
+ {navigation && (
37
+ <CarouselNavbar>
38
+ {title && <NavbarTitleContainer>{title}</NavbarTitleContainer>}
39
+ {controls && (
40
+ <NavbarControlsContainer>
41
+ {onShowMore && (
42
+ <NavbarControlsQuick onClick={onShowMore}>
43
+ Show More
44
+ </NavbarControlsQuick>
45
+ )}
46
+ <NavbarControlsSpace />
47
+ <ArrowsContainer aria-hidden="false">
48
+ <ArrowsFlex>
49
+ <ArrowsButton
50
+ ref={prevRef}
51
+ aria-label="Previous"
52
+ type="button"
53
+ >
54
+ <span
55
+ css={`
56
+ position: relative;
57
+ `}
58
+ >
59
+ <ArrowsIconClip />
60
+ <ArrowsSvg
61
+ viewBox="0 0 32 32"
62
+ xmlns="http://www.w3.org/2000/svg"
63
+ aria-hidden="true"
64
+ role="presentation"
65
+ focusable="false"
66
+ >
67
+ <g fill="none">
68
+ <path d="m20 28-11.29289322-11.2928932c-.39052429-.3905243-.39052429-1.0236893 0-1.4142136l11.29289322-11.2928932" />
69
+ </g>
70
+ </ArrowsSvg>
71
+ </span>
72
+ </ArrowsButton>
73
+ <ArrowsDivider />
74
+ <ArrowsButton aria-label="Next" type="button" ref={nextRef}>
75
+ <span
76
+ css={`
77
+ position: relative;
78
+ `}
79
+ >
80
+ <ArrowsIconClip />
81
+ <ArrowsSvg
82
+ viewBox="0 0 32 32"
83
+ xmlns="http://www.w3.org/2000/svg"
84
+ aria-hidden="true"
85
+ role="presentation"
86
+ focusable="false"
87
+ >
88
+ <g fill="none">
89
+ <path d="m12 4 11.2928932 11.2928932c.3905243.3905243.3905243 1.0236893 0 1.4142136l-11.2928932 11.2928932" />
90
+ </g>
91
+ </ArrowsSvg>
92
+ </span>
93
+ </ArrowsButton>
94
+ </ArrowsFlex>
95
+ </ArrowsContainer>
96
+ </NavbarControlsContainer>
97
+ )}
98
+ </CarouselNavbar>
99
+ )}
100
+ <CarouselSwiper
101
+ {...props}
102
+ onInit={swiper => {
103
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
104
+ // @ts-ignore
105
+ // eslint-disable-next-line no-param-reassign
106
+ swiper.params.navigation.prevEl = prevRef.current;
107
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
108
+ // @ts-ignore
109
+ // eslint-disable-next-line no-param-reassign
110
+ swiper.params.navigation.nextEl = nextRef.current;
111
+ swiper.navigation.init();
112
+ swiper.navigation.update();
113
+ // console.log("Swiper", swiper);
114
+ }}
115
+ >
116
+ {React.Children.map(children, child => (
117
+ <SwiperSlide>{child}</SwiperSlide>
118
+ ))}
119
+ </CarouselSwiper>
120
+ </CarouselContainer>
121
+ );
122
+ };
@@ -0,0 +1,4 @@
1
+ import styled from 'styled-components';
2
+ import { Swiper } from 'swiper/react';
3
+
4
+ export const CarouselSwiper = styled(Swiper)``;
@@ -0,0 +1,140 @@
1
+ /* eslint-disable unused-imports/no-unused-vars */
2
+ import React, { useRef } from 'react';
3
+
4
+ import { Container } from '@fox-dls/layout';
5
+ import SwiperCore, { Navigation } from 'swiper';
6
+ import { SwiperSlide } from 'swiper/react';
7
+
8
+ import {
9
+ CarouselContainer,
10
+ CarouselNavbar,
11
+ NavbarTitleContainer,
12
+ NavbarControlsContainer,
13
+ NavbarControlsQuick,
14
+ NavbarControlsSpace,
15
+ ArrowsContainer,
16
+ ArrowsFlex,
17
+ ArrowsDivider,
18
+ ArrowsButton,
19
+ ArrowsIconClip,
20
+ ArrowsSvg
21
+ } from '../styles';
22
+ import { CarouselSwiper } from './styles';
23
+
24
+ SwiperCore.use([Navigation]);
25
+
26
+ export const FreeCarousel: React.FC<any> = ({
27
+ children,
28
+ navigation,
29
+ title,
30
+ controls,
31
+ quickLink,
32
+ onShowMore,
33
+ ...props
34
+ }) => {
35
+ const prevRef = useRef<HTMLDivElement>(null);
36
+ const nextRef = useRef<HTMLDivElement>(null);
37
+ return (
38
+ <CarouselContainer>
39
+ <div
40
+ css={`
41
+ @media (max-width: 744px) {
42
+ display: none !important;
43
+ }
44
+ `}
45
+ >
46
+ <Container>
47
+ {navigation && (
48
+ <CarouselNavbar>
49
+ {title && <NavbarTitleContainer>{title}</NavbarTitleContainer>}
50
+ {controls && (
51
+ <NavbarControlsContainer>
52
+ {onShowMore && (
53
+ <NavbarControlsQuick onClick={onShowMore}>
54
+ Show More
55
+ </NavbarControlsQuick>
56
+ )}
57
+ <NavbarControlsSpace />
58
+ <ArrowsContainer aria-hidden="false">
59
+ <ArrowsFlex>
60
+ <ArrowsButton
61
+ ref={prevRef}
62
+ aria-label="Previous"
63
+ type="button"
64
+ >
65
+ <span
66
+ css={`
67
+ position: relative;
68
+ `}
69
+ >
70
+ <ArrowsIconClip />
71
+ <ArrowsSvg
72
+ viewBox="0 0 32 32"
73
+ xmlns="http://www.w3.org/2000/svg"
74
+ aria-hidden="true"
75
+ role="presentation"
76
+ focusable="false"
77
+ >
78
+ <g fill="none">
79
+ <path d="m20 28-11.29289322-11.2928932c-.39052429-.3905243-.39052429-1.0236893 0-1.4142136l11.29289322-11.2928932" />
80
+ </g>
81
+ </ArrowsSvg>
82
+ </span>
83
+ </ArrowsButton>
84
+ <ArrowsDivider />
85
+ <ArrowsButton
86
+ aria-label="Next"
87
+ type="button"
88
+ ref={nextRef}
89
+ >
90
+ <span
91
+ css={`
92
+ position: relative;
93
+ `}
94
+ >
95
+ <ArrowsIconClip />
96
+ <ArrowsSvg
97
+ viewBox="0 0 32 32"
98
+ xmlns="http://www.w3.org/2000/svg"
99
+ aria-hidden="true"
100
+ role="presentation"
101
+ focusable="false"
102
+ >
103
+ <g fill="none">
104
+ <path d="m12 4 11.2928932 11.2928932c.3905243.3905243.3905243 1.0236893 0 1.4142136l-11.2928932 11.2928932" />
105
+ </g>
106
+ </ArrowsSvg>
107
+ </span>
108
+ </ArrowsButton>
109
+ </ArrowsFlex>
110
+ </ArrowsContainer>
111
+ </NavbarControlsContainer>
112
+ )}
113
+ </CarouselNavbar>
114
+ )}
115
+ </Container>
116
+ </div>
117
+ <CarouselSwiper
118
+ {...props}
119
+ cssMode
120
+ onInit={swiper => {
121
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
122
+ // @ts-ignore
123
+ // eslint-disable-next-line no-param-reassign
124
+ swiper.params.navigation.prevEl = prevRef.current;
125
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
126
+ // @ts-ignore
127
+ // eslint-disable-next-line no-param-reassign
128
+ swiper.params.navigation.nextEl = nextRef.current;
129
+ swiper.navigation.init();
130
+ swiper.navigation.update();
131
+ // console.log("Swiper", swiper);
132
+ }}
133
+ >
134
+ {React.Children.map(children, child => (
135
+ <SwiperSlide>{child}</SwiperSlide>
136
+ ))}
137
+ </CarouselSwiper>
138
+ </CarouselContainer>
139
+ );
140
+ };
@@ -0,0 +1,79 @@
1
+ import styled from 'styled-components';
2
+ import { Swiper } from 'swiper/react';
3
+
4
+ export const CarouselSwiper = styled(Swiper)`
5
+ .swiper-wrapper {
6
+ box-sizing: inherit !important;
7
+ @media (min-width: 744px) {
8
+ scroll-padding: 40px !important;
9
+ }
10
+ @media (min-width: 1128px) {
11
+ --scroll-padding: max(80px, calc((100vw - 1600px) / 2)) !important;
12
+ scroll-padding: var(--scroll-padding) !important;
13
+ }
14
+ scroll-snap-type: x mandatory !important;
15
+ overflow-x: auto !important;
16
+ display: flex !important;
17
+ scroll-padding: 24px !important;
18
+ .swiper-slide {
19
+ @media (min-width: 744px) {
20
+ min-width: 476px !important;
21
+ max-width: 588px !important;
22
+ flex: 1 0 calc((100% - 80px) * 0.75) !important;
23
+ }
24
+ @media (min-width: 1128px) {
25
+ flex: 1 0 calc(50% - 88px) !important;
26
+ }
27
+ margin-left: 16px !important;
28
+ flex: 1 0 calc(100% - 84px) !important;
29
+ scroll-snap-align: start !important;
30
+ scroll-snap-stop: always !important;
31
+ }
32
+ .swiper-slide:first-of-type {
33
+ @media (min-width: 744px) {
34
+ padding-left: 40px !important;
35
+ min-width: calc(516px) !important;
36
+ max-width: calc(628px) !important;
37
+ flex: 1 0 calc((100% - 80px) * 0.75 + 40px) !important;
38
+ }
39
+ @media (min-width: 1128px) {
40
+ max-width: calc(588px + max(80px, (100vw - 1600px) / 2)) !important;
41
+ flex: 1 0 calc(50% - 8px) !important;
42
+ padding-left: max(80px, (100vw - 1600px) / 2) !important;
43
+ }
44
+ @media (min-width: 2080px) {
45
+ max-width: calc(588px + max(80px, (100vw - 1930px) / 2)) !important;
46
+ flex: 1 0 calc(50% - 8px) !important;
47
+ padding-left: max(80px, (100vw - 1930px) / 2) !important;
48
+ }
49
+ flex: 1 0 calc(100% - 84px) !important;
50
+ scroll-snap-align: start !important;
51
+ scroll-snap-stop: always !important;
52
+ margin-left: 0px !important;
53
+ padding-left: 24px !important;
54
+ }
55
+ .swiper-slide:last-of-type {
56
+ @media (min-width: 744px) {
57
+ padding-right: 40px !important;
58
+ min-width: calc(516px) !important;
59
+ max-width: calc(628px) !important;
60
+ flex: 1 0 calc((100% - 80px) * 0.75 + 40px) !important;
61
+ }
62
+ @media (min-width: 1128px) {
63
+ max-width: calc(588px + max(80px, (100vw - 1600px) / 2)) !important;
64
+ flex: 1 0 calc(50% - 8px) !important;
65
+ padding-right: max(80px, (100vw - 1600px) / 2) !important;
66
+ }
67
+ @media (min-width: 2080px) {
68
+ max-width: calc(588px + max(80px, (100vw - 1930px) / 2)) !important;
69
+ flex: 1 0 calc(50% - 8px) !important;
70
+ padding-right: max(80px, (100vw - 1930px) / 2) !important;
71
+ }
72
+ margin-left: 16px !important;
73
+ flex: 1 0 calc(100% - 84px) !important;
74
+ scroll-snap-align: start !important;
75
+ scroll-snap-stop: always !important;
76
+ padding-right: 24px !important;
77
+ }
78
+ }
79
+ `;