{"version":3,"file":"static/components/5419-d30b74213bedb956e74a.mjs?cv=7","mappings":"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","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/DownloadApp.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/TopBar/AdminLink.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/TopBar/NavBar.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/TopBar/TopBar.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/Navigation/TopBar/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/hooks/useDownloadBanner.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/AppStore.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Card.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Spacer.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/grid.js"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled, { useTheme } from \"styled-components\";\n\nimport Button from \"@agir/front/genericComponents/Button\";\nimport FeatherIcon from \"@agir/front/genericComponents/FeatherIcon\";\nimport { ResponsiveLayout } from \"@agir/front/genericComponents/grid\";\n\nimport logo from \"@agir/front/genericComponents/logos/action-populaire_primary_mini.svg\";\n\nimport { useDownloadBanner } from \"@agir/front/app/hooks/useDownloadBanner\";\nimport { CONFIG } from \"@agir/front/genericComponents/AppStore.js\";\nimport { getMobileOS } from \"@agir/front/authentication/common.js\";\n\nconst StyledContainer = styled.div`\n  display: flex;\n  align-items: center;\n  background-color: ${(props) => props.theme.primary500};\n  color: ${(props) => props.theme.background0};\n  justify-content: space-evenly;\n  height: 80px;\n`;\n\nconst Title = styled.div``;\nconst Description = styled.div``;\n\nconst Content = styled.div`\n  display: flex;\n  flex-direction: column;\n  padding: 12px;\n\n  ${Title} {\n    color: ${(props) => props.theme.secondary500};\n    font-weight: 700;\n    font-size: 15px;\n  }\n\n  ${Description} {\n    color: ${(props) => props.theme.background0};\n    font-size: 12px;\n    flex-wrap: wrap;\n  }\n`;\n\nconst Download = styled(Button)`\n  background-color: ${(props) => props.theme.background0};\n  color: ${(props) => props.theme.primary500};\n  font-size: 13px;\n  font-weight: 700;\n\n  @media (max-width: 421px) {\n    border-radius: 50px;\n    width: 52px;\n    height: 52px;\n  }\n`;\n\nconst InlineBlock = styled.span`\n  display: inline-block;\n`;\n\nconst StyledFeatherIcon = styled(FeatherIcon)`\n  &:hover {\n    cursor: pointer;\n  }\n`;\n\nconst AppLogo = styled.svg`\n  width: 52px;\n  height: 52px;\n\n  @media (max-width: 350px) {\n    display: none;\n  }\n`;\n\nconst OS = getMobileOS();\n\nexport const DownloadApp = ({ onClick }) => {\n  const theme = useTheme();\n\n  return (\n    <StyledContainer>\n      <div style={{ padding: \"0.5rem\", cursor: \"pointer\" }} onClick={onClick}>\n        <StyledFeatherIcon\n          name=\"x\"\n          color=\"${props => props.theme.background0}\"\n          width=\"0.5rem\"\n          height=\"0.5rem\"\n          small\n        />\n      </div>\n      <AppLogo width=\"52\" height=\"52\" fill=\"none\">\n        <rect width=\"52\" height=\"52\" rx=\"11.056\" fill={theme.secondary500} />\n        <g clipPath=\"url(#a)\">\n          <path\n            d=\"m29.419 42.449-8.052-8.024c-4.447-4.432-4.482-11.582-.078-15.971 4.404-4.39 11.58-4.354 16.026.077 4.447 4.432 4.482 11.582.078 15.971L29.42 42.45Z\"\n            fill={theme.background0}\n          />\n          <path\n            fillRule=\"evenodd\"\n            clipRule=\"evenodd\"\n            d=\"m17.36 28.663 6.354 6.333 6.355-6.333a8.934 8.934 0 0 0 0-12.666c-3.51-3.497-9.2-3.497-12.71 0a8.934 8.934 0 0 0 0 12.666Zm6.354 10.16 8.276-8.246a11.634 11.634 0 0 0 0-16.494c-4.57-4.554-11.98-4.554-16.551 0a11.634 11.634 0 0 0 0 16.494l8.275 8.247Z\"\n            fill={theme.text1000}\n          />\n        </g>\n        <defs>\n          <clipPath id=\"a\">\n            <path\n              fill={theme.background0}\n              transform=\"translate(11.939 10.612)\"\n              d=\"M0 0h28.918v31.837H0z\"\n            />\n          </clipPath>\n        </defs>\n      </AppLogo>\n      <Content>\n        <Title>ACTION POPULAIRE</Title>\n        <Description>\n          Téléchargez l’appli des actions près{\" \"}\n          <InlineBlock>de chez vous</InlineBlock>\n        </Description>\n      </Content>\n      <div style={{ paddingRight: \"18px\" }}>\n        <Download\n          link\n          href={\"iOS\" === OS ? CONFIG.apple.href : CONFIG.google.href}\n          aria-label=\"Télécharger\"\n        >\n          <ResponsiveLayout\n            breakpoint={421}\n            MobileLayout={() => (\n              <FeatherIcon name=\"download\" color=\"primary500\" />\n            )}\n            DesktopLayout={() => \"Télécharger\"}\n          />\n        </Download>\n      </div>\n    </StyledContainer>\n  );\n};\n\nDownloadApp.propTypes = {\n  onClick: PropTypes.func,\n};\n\nconst ConnectedDownloadApp = () => {\n  const [isBannerDownload, closeDownload] = useDownloadBanner();\n\n  if (!isBannerDownload) return null;\n\n  return <DownloadApp onClick={closeDownload} />;\n};\n\nexport default ConnectedDownloadApp;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport FeatherIcon from \"@agir/front/genericComponents/FeatherIcon\";\n\nimport Link from \"@agir/front/app/Link\";\n\nconst SettingsMenuLink = styled(Link)`\n  position: absolute;\n  padding: 6px 5px;\n  bottom: 0;\n  right: 0;\n  background-color: ${(props) => props.theme.text1000};\n  color: ${(props) => props.theme.text25};\n  width: 42px;\n  height: 42px;\n  display: flex;\n  align-items: flex-start;\n  justify-content: flex-end;\n  transform: translateY(100%);\n  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 0);\n  transition: all 100ms ease-in-out;\n  cursor: pointer;\n  opacity: 0.75;\n\n  &:hover,\n  &:focus {\n    background-color: ${(props) => props.theme.text1000};\n    color: ${(props) => props.theme.background0};\n    opacity: 1;\n  }\n`;\n\nconst AdminLink = ({ link }) =>\n  link ? (\n    <SettingsMenuLink\n      to={link.to}\n      href={link.href}\n      route={link.route}\n      title={link.label}\n      aria-label={link.label}\n      className=\"small-only\"\n    >\n      <FeatherIcon name=\"settings\" />\n    </SettingsMenuLink>\n  ) : null;\n\nAdminLink.propTypes = {\n  link: PropTypes.shape({\n    to: PropTypes.string,\n    href: PropTypes.string,\n    route: PropTypes.string,\n    label: PropTypes.string,\n  }),\n};\nexport default AdminLink;\n","import React, { Suspense } from \"react\";\nimport styled from \"styled-components\";\n\nimport { lazy } from \"@agir/front/app/utils\";\nimport { useResponsiveMemo } from \"@agir/front/genericComponents/grid\";\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getAdminLink } from \"@agir/front/globalContext/reducers\";\n\nimport AdminLink from \"./AdminLink\";\n\nconst MobileNavBar = lazy(() => import(\"./MobileNavBar/MobileNavBar\"));\nconst DesktopNavBar = lazy(() => import(\"./DesktopNavBar/DesktopNavBar\"));\n\nconst StyledNav = styled.div`\n  position: relative;\n  width: 100%;\n  height: var(--top-bar-height);\n  box-shadow: ${(props) => props.theme.elaborateShadow};\n\n  & > * {\n    margin: 0 auto;\n  }\n`;\n\nconst NavBar = (props) => {\n  const adminLink = useSelector(getAdminLink);\n  const NavBar = useResponsiveMemo(MobileNavBar, DesktopNavBar);\n  return (\n    <StyledNav>\n      <Suspense fallback={null}>\n        <AdminLink link={adminLink} />\n        <NavBar {...props} />\n      </Suspense>\n    </StyledNav>\n  );\n};\n\nexport default NavBar;\n","import PropTypes from \"prop-types\";\nimport React, { useMemo } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport routes from \"@agir/front/app/routes.config\";\nimport { useDownloadBanner } from \"@agir/front/app/hooks/useDownloadBanner\";\nimport { useMobileApp } from \"@agir/front/app/hooks/useMobileApp\";\n\nimport DownloadApp from \"@agir/front/genericComponents/DownloadApp\";\nimport Spacer from \"@agir/front/genericComponents/Spacer\";\nimport NavBar from \"./NavBar\";\n\nconst StyledPageHead = styled.div`\n  position: fixed;\n  top: var(--safe-area-inset-top, env(safe-area-inset-top));\n  left: 0;\n  z-index: ${(props) => props.theme.zindexTopBar};\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    z-index: 50 !important;\n  }\n  width: 100%;\n  background-color: ${(props) => props.theme.background0};\n  isolation: isolate;\n`;\n\nexport const TopBar = ({ path, hideBannerDownload, ...rest }) => {\n  return (\n    <StyledPageHead>\n      {!hideBannerDownload && <DownloadApp />}\n      <NavBar {...rest} path={path} />\n    </StyledPageHead>\n  );\n};\n\nTopBar.propTypes = {\n  path: PropTypes.string,\n  hideBannerDownload: PropTypes.bool,\n};\n\nconst RouterTopBar = (props) => {\n  const [isBannerDownload] = useDownloadBanner();\n  const { pathname } = useLocation();\n  const { isMobileApp } = useMobileApp();\n\n  const route = useMemo(\n    () => routes.find((route) => route.match(pathname)),\n    [pathname],\n  );\n\n  const hasTopBar =\n    props.hasTopBar ||\n    (route && !route.hideTopBar && (!route.appOnlyTopBar || isMobileApp));\n\n  if (!hasTopBar) {\n    return null;\n  }\n\n  return (\n    <>\n      <TopBar path={pathname} hasLayout={!!route?.hasLayout} />\n      {isBannerDownload && <Spacer size=\"80px\" />}\n    </>\n  );\n};\n\nRouterTopBar.propTypes = {\n  hasTopBar: PropTypes.bool,\n};\n\nexport default RouterTopBar;\n","import RouterTopBar from \"./TopBar\";\n\nexport { TopBar as TopBar } from \"./TopBar\";\nexport default RouterTopBar;\n","import { useIsDesktop } from \"@agir/front/genericComponents/grid\";\nimport { useLocalStorage } from \"@agir/lib/utils/hooks\";\nimport { useEffect, useCallback } from \"react\";\nimport { useMobileApp } from \"./useMobileApp\";\nimport { createGlobalState } from \"react-use\";\n\nexport const useHasDownloadBanner = createGlobalState(undefined);\n\nexport const useDownloadBanner = () => {\n  const [bannerCount, setBannerCount] = useLocalStorage(\"BANNER_count\", 0);\n  const [visitCount] = useLocalStorage(\"AP_vcount\", 0);\n\n  const isDesktop = useIsDesktop();\n  const { isMobileApp } = useMobileApp();\n\n  const [hasBanner, setHasBanner] = useHasDownloadBanner();\n\n  useEffect(() => {\n    if (hasBanner !== false &&\n      !isMobileApp &&\n      !isDesktop &&\n      bannerCount <= visitCount) {\n      setHasBanner(true);\n    }\n  }, [\n    hasBanner,\n    isMobileApp,\n    isDesktop,\n    bannerCount,\n    visitCount,\n    setHasBanner,\n  ]);\n\n  const hide = useCallback(() => {\n    setHasBanner(false);\n    setBannerCount(visitCount + 25);\n  }, [setBannerCount, visitCount, setHasBanner]);\n\n  return [!!hasBanner, hide];\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\n\nimport APP_STORE_APPLE from \"@agir/front/genericComponents/logos/appstore_apple.svg\";\nimport APP_STORE_GOOGLE from \"@agir/front/genericComponents/logos/appstore_google.svg\";\n\nexport const CONFIG = {\n  apple: {\n    href: \"https://apps.apple.com/fr/app/action-populaire/id1559737444#?platform=iphone\",\n    title: \"Télécharger dans l'App Store\",\n    $image: APP_STORE_APPLE,\n  },\n  google: {\n    href: \"https://play.google.com/store/apps/details?id=fr.actionpopulaire.twa\",\n    title: \"Disponible sur Google Play\",\n    $image: APP_STORE_GOOGLE,\n  },\n};\n\nconst AppStoreLink = styled.a`\n  display: block;\n  width: 170px;\n  height: 50px;\n  background-image: url(${({ $image }) => $image});\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: center center;\n  border-radius: 0.5px;\n  cursor: pointer;\n`;\n\nconst AppStore = (props) => {\n  const { type, ...rest } = props;\n  const config = CONFIG[type];\n\n  if (!config) {\n    return null;\n  }\n\n  return <AppStoreLink {...config} {...rest} />;\n};\n\nAppStore.propTypes = {\n  type: PropTypes.oneOf(Object.keys(CONFIG)).isRequired,\n  params: PropTypes.object,\n};\n\nexport default AppStore;\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\n\nconst cardTypes = {\n  default: {\n    backgroundColor: \"background0\",\n    borderRadius: 0,\n  },\n  primary: {\n    backgroundColor: \"primary100\",\n  },\n  alert: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 3px, ${(props) => props.theme.background0} 3px)`,\n    backgroundColor: \"background0\",\n  },\n  alert_dismissed: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 3px, ${(props) => props.theme.background0} 3px)`,\n    backgroundColor: \"background0\",\n  },\n  error: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 8px, ${(props) => props.theme.background0} 8px)`,\n    backgroundColor: \"error500\",\n  },\n};\n\nconst Card = styled.div\n  .withConfig({\n    shouldForwardProp: isPropValid,\n  })\n  .attrs(({ type, ...props }) => ({\n    ...props,\n    config: type && cardTypes[type] ? cardTypes[type] : cardTypes.default,\n  }))`\n  background-image: ${({ config }) => config.backgroundImage || \"none\"};\n  background-color: ${({ config, theme }) =>\n    theme[config.backgroundColor] || config.backgroundColor};\n  padding: 1.5rem;\n  font-weight: 500;\n  cursor: ${({ onClick }) => (onClick ? \"pointer\" : \"default\")};\n  border: 1px solid;\n  border-color: ${(props) => props.theme.text100};\n  transition:\n    border-color,\n    background-color 300ms;\n  border-radius: ${(props) => props.theme.borderRadius};\n\n  &:hover {\n    ${({ onClick }) =>\n      onClick\n        ? `\n      border-color: ${(props) => props.theme.text100};\n    `\n        : \"\"}\n  }\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    padding: 1rem;\n    ${(props) =>\n      !props.bordered\n        ? `\n      border: none;\n      box-shadow: ${(props) => props.theme.elaborateShadow};\n      border-radius: 0;\n    `\n        : \"\"}\n  }\n\n  & p {\n    font-weight: 400;\n\n    & > strong,\n    & > a {\n      font-weight: bolder;\n    }\n    & > a {\n      color: inherit;\n      text-decoration: underline;\n    }\n  }\n`;\nCard.propTypes = {\n  type: PropTypes.oneOf(Object.keys(cardTypes)),\n};\nCard.defaultProps = {\n  type: \"default\",\n};\nexport default Card;\n","import PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\n\nconst getHeight = ({ axis, size }) => {\n  const space = typeof size === \"number\" ? size + \"px\" : size;\n  return axis === \"x\" ? \"1px\" : space;\n};\nconst getWidth = ({ axis, size }) => {\n  const space = typeof size === \"number\" ? size + \"px\" : size;\n  return axis === \"y\" ? \"1px\" : space;\n};\n\nconst Spacer = styled.span.attrs((props) => ({\n  $width: getWidth(props),\n  $height: getHeight(props),\n  \"aria-hidden\": \"true\",\n}))`\n  display: block;\n  margin: 0;\n  padding: 0;\n  line-height: 0;\n  width: ${({ $width }) => $width};\n  min-width: ${({ $width }) => $width};\n  height: ${({ $height }) => $height};\n  min-height: ${({ $height }) => $height};\n`;\n\nexport const InlineSpacer = styled(Spacer)`\n  display: inline-block;\n`;\n\nSpacer.propTypes = InlineSpacer.propTypes = {\n  axis: PropTypes.oneOf([\"x\", \"y\"]),\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nexport default Spacer;\n","import PropTypes from \"prop-types\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled, { useTheme } from \"styled-components\";\n\nimport { useDownloadBanner } from \"../app/hooks/useDownloadBanner\";\nimport Card from \"./Card\";\n\n/**\n * Accessibility\n */\n\nexport const SROnly = styled.span`\n  border: 0 !important;\n  clip: rect(1px, 1px, 1px, 1px) !important;\n  -webkit-clip-path: inset(50%) !important;\n  clip-path: inset(50%) !important;\n  height: 1px !important;\n  overflow: hidden !important;\n  padding: 0 !important;\n  position: absolute !important;\n  width: 1px !important;\n  white-space: nowrap !important;\n`;\n\n/**\n * Text\n */\nexport const Center = styled.div`\n  text-align: center;\n`;\n\nexport const Right = styled.div`\n  text-align: right;\n`;\n\nexport const PullRight = styled.div`\n  float: right;\n`;\n\n/**\n * Media queries\n */\nexport const Hide = styled.div.attrs(({ $under, $over, theme }) => ({\n  $under: $under\n    ? `max-width: ${typeof $under === \"number\" ? $under : theme.collapse}px`\n    : \"width <= 0\",\n  $over: $over\n    ? `min-width: ${typeof $over === \"number\" ? $over : theme.collapse}px`\n    : \"width <= 0\",\n}))`\n  min-width: 0;\n\n  @media (${(props) => props.$under}) {\n    display: none !important;\n  }\n\n  @media (${(props) => props.$over}) {\n    display: none !important;\n  }\n`;\n\n/**\n * Grid\n */\n\nconst gutter = 16;\n\nexport const GrayBackground = styled.div`\n  background-color: ${(props) => props.theme.text25};\n`;\n\nexport const Column = styled.div.withConfig({\n  shouldForwardProp: (prop) =>\n    [\"collapse\", \"grow\", \"stack\"].includes(prop) === false,\n})`\n  flex-basis: ${({ width, grow }) =>\n    width || grow\n      ? (Array.isArray(width) && width[1] ? width[1] : width) || \"1px\"\n      : \"auto\"};\n  flex-grow: ${({ grow }) => (grow ? 1 : 0)};\n  & > ${Card} {\n    margin-bottom: 16px;\n  }\n\n  @media (max-width: ${(props) => props.collapse || props.theme.collapse}px) {\n    flex-basis: ${(props) =>\n      Array.isArray(props.width) && props.width[0] ? props.width[0] : \"100%\"};\n    padding-left: 0;\n    padding-right: 0;\n\n    & > & > ${Card} {\n      ${(props) => (props.stack ? \"margin-bottom: 0px;\" : \"\")}\n    }\n  }\n`;\n\nColumn.propTypes = {\n  width: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.arrayOf(PropTypes.string),\n  ]), // can be anything like \"50%\" \"400px\"\n  // if array first is mobile size, second is desktop\n  grow: PropTypes.bool, // does the column fill the remaining space\n  collapse: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n\nexport const Row = styled.div.withConfig({\n  shouldForwardProp: (prop) =>\n    [\"gutter\", \"align\", \"justify\"].includes(prop) === false,\n})`\n  margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n  margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: ${({ align }) => align || \"stretch\"};\n  justify-content: ${({ justify }) => justify || \"start\"};\n  gap: ${(props) => props.gap}px;\n\n  & > ${Column} {\n    padding-left: ${(props) =>\n      typeof props.gutter === \"undefined\" ? gutter : props.gutter}px;\n    padding-right: ${(props) =>\n      typeof props.gutter === \"undefined\" ? gutter : props.gutter}px;\n  }\n\n  & > ${Column} > section {\n    margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n    margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n    border-radius: 0px;\n  }\n\n  @media (max-width: ${(props) => props.collapse || props.theme.collapse}px) {\n    & > ${Column} > ${Card} {\n      margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n      margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n      border-radius: 0px;\n    }\n  }\n`;\n\nRow.propTypes = {\n  children: PropTypes.node,\n  align: PropTypes.oneOf([\n    \"stretch\",\n    \"baseline\",\n    \"center\",\n    \"flex-start\",\n    \"flex-end\",\n  ]), // align-items CSS property\n  justify: PropTypes.oneOf([\n    \"flex-start\",\n    \"flex-end\",\n    \"center\",\n    \"space-between\",\n    \"space-around\",\n    \"space-evenly\",\n  ]), // justify-content CSS property\n};\n\nexport const Container = styled.section`\n  width: ${1400 + gutter * 2}px;\n  max-width: 100%;\n  margin: 0 auto;\n  padding-left: ${gutter}px;\n  padding-right: ${gutter}px;\n\n  & > ${Row} {\n    margin-left: -${gutter}px;\n    margin-right: -${gutter}px;\n  }\n`;\n\nexport const useIsDesktop = (breakpoint) => {\n  const theme = useTheme();\n  breakpoint = breakpoint || theme.collapse;\n  const [isDesktop, setDesktop] = useState(window.innerWidth > breakpoint);\n\n  let refresh = useCallback(\n    () => setDesktop(window.innerWidth > breakpoint),\n    [breakpoint],\n  );\n\n  useEffect(() => {\n    window.addEventListener(\"resize\", refresh);\n\n    return function cleanup() {\n      window.removeEventListener(\"resize\", refresh);\n    };\n  }, [refresh]);\n\n  return isDesktop;\n};\n\nexport const ResponsiveLayout = ({\n  MobileLayout,\n  DesktopLayout,\n  breakpoint,\n  ...props\n}) => {\n  const isDesktop = useIsDesktop(breakpoint);\n\n  return isDesktop ? <DesktopLayout {...props} /> : <MobileLayout {...props} />;\n};\nResponsiveLayout.propTypes = {\n  MobileLayout: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n    .isRequired,\n  DesktopLayout: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n    .isRequired,\n  breakpoint: PropTypes.number,\n};\n\nexport const useResponsiveMemo = (mobileValue, desktopValue, breakpoint) => {\n  const isDesktop = useIsDesktop(breakpoint);\n\n  const value = useMemo(\n    () => (isDesktop ? desktopValue : mobileValue),\n    [isDesktop, mobileValue, desktopValue],\n  );\n\n  return value;\n};\n\nexport const ResponsiveSpan = styled(\n  ({ small, large, breakpoint, ...props }) => {\n    const value = useResponsiveMemo(small, large, breakpoint);\n    return <span {...props}>{value}</span>;\n  },\n)``;\n\nResponsiveSpan.propTypes = {\n  small: PropTypes.string,\n  large: PropTypes.string,\n  breakpoint: PropTypes.number,\n};\n\nexport const useStickyOffset = (extraOffset = 0) => {\n  const hasDownloadBanner = useDownloadBanner();\n  const stickyOffset = useResponsiveMemo(hasDownloadBanner ? 134 : 54, 72);\n\n  return stickyOffset + extraOffset;\n};\n\nconst StickyDiv = styled.div.attrs((props) => ({\n  $offset:\n    typeof props.offset === \"number\" ? `${props.offset}px` : props.offset || 0,\n  $extra:\n    typeof props.extra === \"number\" ? `${props.extra}px` : props.extra || 0,\n}))`\n  position: sticky;\n  top: calc(${(props) => props.$offset} + ${(props) => props.$extra});\n`;\n\nexport const Sticky = ({ extraOffset, ...rest }) => {\n  const stickyOffset = useStickyOffset();\n  return <StickyDiv offset={stickyOffset} extra={extraOffset} {...rest} />;\n};\n\nSticky.propTypes = {\n  extraOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n"],"names":["StyledContainer","styled","div","props","theme","primary500","background0","Title","Description","Content","secondary500","Download","Button","InlineBlock","span","StyledFeatherIcon","FeatherIcon","AppLogo","svg","OS","getMobileOS","DownloadApp","_ref","onClick","useTheme","React","style","padding","cursor","name","color","width","height","small","fill","rx","clipPath","d","fillRule","clipRule","text1000","id","transform","paddingRight","link","href","CONFIG","apple","google","ResponsiveLayout","breakpoint","MobileLayout","DesktopLayout","genericComponents_DownloadApp","_useDownloadBanner","useDownloadBanner","_useDownloadBanner2","_slicedToArray","isBannerDownload","closeDownload","SettingsMenuLink","Link","text25","TopBar_AdminLink","to","route","title","label","className","MobileNavBar","lazy","Promise","all","__webpack_require__","e","then","bind","DesktopNavBar","StyledNav","elaborateShadow","TopBar_NavBar","adminLink","useSelector","getAdminLink","NavBar","useResponsiveMemo","Suspense","fallback","AdminLink","StyledPageHead","zindexTopBar","collapse","TopBar","path","hideBannerDownload","rest","_objectWithoutProperties","_excluded","_extends","Navigation_TopBar","pathname","useLocation","isMobileApp","useMobileApp","useMemo","routes","find","match","hasTopBar","hideTopBar","appOnlyTopBar","hasLayout","Spacer","size","useHasDownloadBanner","createGlobalState","undefined","_useLocalStorage","useLocalStorage","_useLocalStorage2","bannerCount","setBannerCount","_useLocalStorage3","visitCount","isDesktop","useIsDesktop","_useHasDownloadBanner","_useHasDownloadBanner2","hasBanner","setHasBanner","useEffect","hide","useCallback","$image","APP_STORE_APPLE","APP_STORE_GOOGLE","AppStoreLink","a","genericComponents_AppStore","type","config","cardTypes","default","backgroundColor","borderRadius","primary","alert","backgroundImage","concat","alert_dismissed","error","Card","withConfig","shouldForwardProp","isPropValid","attrs","_objectSpread","_ref2","_ref3","_ref4","text100","_ref5","bordered","propTypes","PropTypes","Object","keys","defaultProps","__WEBPACK_DEFAULT_EXPORT__","getHeight","axis","$width","$height","_ref6","InlineSpacer","Hide","$under","$over","gutter","Column","prop","includes","grow","Array","isArray","stack","Row","align","justify","gap","children","Container","section","_useState","useState","window","innerWidth","_useState2","setDesktop","refresh","addEventListener","removeEventListener","mobileValue","desktopValue","ResponsiveSpan","_ref7","large","_excluded2","value"],"sourceRoot":""}