{"version":3,"file":"static/chunks/5872.ec08bcf23dec3a0b.js","mappings":"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","sources":["webpack://_N_E/./core--client--components/src/components/atoms/AnimateItem/AnimateItem.tsx","webpack://_N_E/./core--client--components/src/components/atoms/ButtonLink/ButtonLink.tsx","webpack://_N_E/./core--client--components/src/lib/loaders/contentfulImageLoader.ts","webpack://_N_E/./src/components/atoms/Divider/Divider.tsx","webpack://_N_E/./src/components/molecules/SocialLinks/SocialLinks.tsx","webpack://_N_E/./src/components/molecules/CardArticle/CardArticle.tsx","webpack://_N_E/./src/components/organisms/ArticlesDisplay/ArticlesDisplay.tsx","webpack://_N_E/./src/components/organisms/PageWrapper/PageWrapper.tsx","webpack://_N_E/./src/components/templates/AuthorBioTemplate/AuthorBioTemplate.tsx","webpack://_N_E/<anon>"],"sourcesContent":["import {\n  Variant,\n  cubicBezier,\n  motion,\n  useAnimation,\n  useInView,\n} from 'framer-motion';\nimport { useEffect, useRef } from 'react';\n\n/**\n * AnimateItem Props\n *\n * @interface IAnimateItem\n */\nexport interface IAnimateItem {\n  /**\n   * Children to animate\n   *\n   * @memberof IAnimateItem\n   * @member {React.ReactNode} children\n   */\n  children: React.ReactNode;\n  /**\n   * From variant\n   *\n   * @memberof IAnimateItem\n   * @member {Variant} [from]\n   */\n  from?: Variant;\n  /**\n   * To variant\n   *\n   * @memberof IAnimateItem\n   * @member {Variant} [to]\n   */\n  to?: Variant;\n  /**\n   * Delay\n   *\n   * @memberof IAnimateItem\n   * @default 0.2\n   * @member {number} [delay]\n   */\n  delay?: number;\n  /**\n   * Duration\n   *\n   * @memberof IAnimateItem\n   * @default 0.9\n   * @member {number} [duration]\n   */\n  duration?: number;\n  /**\n   * Classes\n   *\n   * @memberof IAnimateItem\n   * @default ''\n   * @member {string} [className]\n   */\n  className?: string;\n}\n\n/**\n * AnimateItem\n *\n * @param {IAnimateItem} props - Props\n * @returns {React.ReactNode} - AnimateItem\n */\nconst AnimateItem = ({\n  children,\n  from,\n  to,\n  delay = 0.2,\n  duration = 0.9,\n  className = '',\n}: IAnimateItem) => {\n  const ref = useRef(null);\n  const controls = useAnimation();\n  const inView = useInView(ref);\n\n  useEffect(() => {\n    if (inView) {\n      controls.start('visible');\n    }\n  }, [controls, inView]);\n\n  return (\n    <motion.div\n      className={className}\n      ref={ref}\n      initial={'hidden'}\n      animate={controls}\n      variants={{\n        hidden: {\n          opacity: 0,\n          ...from,\n        },\n        visible: {\n          opacity: 1,\n          scale: 1,\n          translateX: 0,\n          translateY: 0,\n          transition: {\n            delay: delay,\n            duration: duration,\n            ease: cubicBezier(0.17, 0.55, 0.55, 1),\n          },\n          ...to,\n        },\n      }}\n      data-testid=\"animate-item\"\n    >\n      {children}\n    </motion.div>\n  );\n};\n\nexport default AnimateItem;\n","import Link, { LinkProps } from 'next/link';\nimport React, { HTMLProps, Ref } from 'react';\n\n/**\n * IButtonLink Interface for the ButtonLink component\n *\n * @interface\n */\nexport interface IButtonLink {\n  /**\n   * The version of the button to display either light or dark\n   *\n   * @memberof IButtonLink\n   * @member {'light' | 'dark'} variant\n   */\n  variant: 'light' | 'dark' | 'lightBlue' | 'pink';\n  /**\n   * Whether the button is disabled\n   *\n   * @memberof IButtonLink\n   * @default false\n   * @member {boolean} [disabled]\n   */\n  disabled?: boolean;\n  /**\n   * The target of the link\n   *\n   * @memberof IButtonLink\n   * @member {string} [target]\n   */\n  target?: string;\n  /**\n   * The children of the button\n   *\n   * @memberof IButtonLink\n   * @member {string} children\n   */\n  children: string;\n  /**\n   * The color scheme used for the button link\n   *\n   * @memberof IButtonLink\n   * @member {'primary' | 'secondary' | 'tertiary'} [color]\n   */\n  color?: 'primary' | 'secondary' | 'tertiary';\n  /**\n   * The ref of the button link\n   *\n   * @memberof IButtonLink\n   * @member {Ref<HTMLAnchorElement>} [ref]\n   */\n  ref?: Ref<HTMLAnchorElement>;\n}\n\n/**\n * Button Link Props\n *\n * @type {ButtonLinkProps} Type That combines the IButtonLink interface with the\n *   HTMLProps<HTMLAnchorElement> & LinkProps from NextJS\n */\nexport type ButtonLinkProps = IButtonLink &\n  LinkProps &\n  HTMLProps<HTMLAnchorElement>;\n\n/**\n * Button Base Font Properties This is the base font properties for the button.\n *\n * @constant\n */\nconst baseFont =\n  'font-petco text-base font-bold border-b-[3px] pb-1.5 border-b-solid focus:ring-invisible transition-colors duration-200 ease-in-out';\n\n/**\n * Variant Classes Map This map is used to map the variant prop to the\n * appropriate tailwind classes.\n *\n * @constant\n */\nconst variantClasses = {\n  primary: {\n    light:\n      'text-secondaryBase-400 border-base-300 hover:text-base-300 hover:border-base-300',\n    dark: 'text-neutral-100 border-neutral-100 hover:text-base-300 hover:border-base-300',\n    lightBlue:\n      'text-mkNavy-400 border-mkLightBlue-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n    pink: 'text-mkNavy-400 border-mkPink-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n  },\n  secondary: {\n    light:\n      'text-secondaryBase-400 border-mkPink-400 hover:text-secondaryBase-400 hover:border-secondaryBase-400',\n    dark: 'text-mkPink-400 border-mkPink-400 hover:text-neutral-100 hover:border-neutral-100',\n    lightBlue:\n      'text-mkNavy-400 border-mkLightBlue-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n    pink: 'text-mkNavy-400 border-mkPink-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n  },\n  tertiary: {\n    light:\n      'text-secondaryBase-400 border-mkLightBlue-400 hover:text-secondaryBase-400 hover:border-secondaryBase-400',\n    dark: 'text-mkLightBlue-400 border-mkLightBlue-400 hover:text-neutral-100 hover:border-neutral-100',\n    lightBlue:\n      'text-mkNavy-400 border-mkLightBlue-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n    pink: 'text-mkNavy-400 border-mkPink-400 hover:text-mkNavy-400 hover:border-mkNavy-400',\n  },\n};\n\n/**\n * Wrapper Focus Styles This is the focus styles for the button.\n *\n * @constant\n */\nconst wrapperFocusStyles =\n  'focus-visible:ring-1 focus-visible:ring-focus-400 focus-visible:rounded focus-visible:ring-offset-4 focus-visible:outline-0 focus-visible:outline-transparent';\n\n/**\n * Link Disabled Styles This is the disabled styles for the button.\n *\n * @constant\n */\nconst disabledStyles = {\n  light: 'text-neutral-500 border-neutral-500 cursor-not-allowed',\n  dark: 'text-neutral-300 border-neutral-300 cursor-not-allowed',\n  lightBlue:\n    'text-neutral-400 border-neutral-400 hover:text-neutral-400 hover:border-neutral-400 cursor-not-allowed',\n  pink: 'text-neutral-400 border-neutral-400 hover:text-neutral-400 hover:border-neutral-400 cursor-not-allowed',\n};\n\nconst removeFocusStyles =\n  'focus:outline-none focus:ring-0 focus-visible:ring-0 focus-visible:outline-none';\n\n/**\n * ButtonLink - A button used to navigate to a different page.\n *\n * @param {IButtonLink} props - The props for the ButtonLink component\n * @returns {React.FC<ButtonLinkProps>} Button Link Component\n */\nconst ButtonLink: React.FC<ButtonLinkProps> = ({\n  variant,\n  href,\n  as,\n  disabled = false,\n  children,\n  replace,\n  scroll,\n  shallow,\n  passHref,\n  className = '',\n  color = 'primary',\n  ...rest\n}: ButtonLinkProps) => {\n  const variantStyles = disabled\n    ? disabledStyles[variant]\n    : variantClasses[color][variant];\n  const cls = `${baseFont} ${variantStyles} ${wrapperFocusStyles}`;\n  const dataTestId = `button-link-${variant}-${disabled}`;\n\n  return (\n    <div\n      className={`${className} ${removeFocusStyles}`}\n      data-testid={dataTestId}\n    >\n      <Link\n        href={href}\n        as={as}\n        passHref={passHref}\n        replace={replace}\n        scroll={scroll}\n        shallow={shallow}\n        className={`${cls} ${removeFocusStyles}`}\n        {...rest}\n      >\n        {children}\n      </Link>\n    </div>\n  );\n};\n\nexport default ButtonLink;\n","import { ImageLoaderProps } from \"next/legacy/image\";\n\n/**\n * Loads images from the CDN\n *\n * @param {ImageLoaderProps} params- Image loader props\n * @returns {string} - Image URL\n */\nfunction contentFulImageLoader({\n  src,\n  width,\n  quality,\n}: ImageLoaderProps): string {\n  if (quality) {\n    return `${src}?q=${quality}&w=${width}&fm=webp`;\n  } else {\n    return `${src}?w=${width}&fm=webp`;\n  }\n}\n\nexport default contentFulImageLoader;\n","/** The colors that can be used for the divider */\nexport type DividerColor = 'darkGrey' | 'lightGrey' | 'white';\n\n/**\n * IDivider Interface for the Divider component\n *\n * @interface IDivider\n */\nexport interface IDivider {\n  /**\n   * The color of divider to display.\n   *\n   * @memberof IDivider\n   * @member {DividerColor} type\n   */\n  type: DividerColor;\n  /**\n   * The optional classes to be applied to the component.\n   *\n   * @memberof IDivider\n   * @default ''\n   * @member {string} [classes]\n   */\n  classes?: string;\n}\n\n/**\n * Divider Class Map The class map for the divider component.\n *\n * @constant\n */\nconst dividerClassMap = {\n  darkGrey: 'border-neutral-600 bg-neutral-600',\n  lightGrey: 'border-neutral-300 bg-neutral-300',\n  white: 'border-neutral-100 bg-neutral-100',\n};\n\n/**\n * Divider - Divider Element for separating content.\n *\n * @param {IDivider} props - The props for the Divider component\n * @returns {React.FC<IDivider>} Divider Component\n */\nconst Divider: React.FC<IDivider> = ({ type, classes = '' }: IDivider) => {\n  const dividerClasses = `border-top-[.5px] w-full ${dividerClassMap[type]} ${classes}`;\n  return <hr data-testid=\"divider\" className={dividerClasses} />;\n};\n\nexport default Divider;\n","import { chooseIcon, IconType } from '@/components/atoms/Icon/Icon';\n\n/**\n * ISocialLinks Interface for a SocialLink Item\n *\n * @interface ISocialLinkItem\n */\nexport interface ISocialLinkItem {\n  /**\n   * The name of the social link\n   *\n   * @memberof ISocialLinkItem\n   * @member {string} name\n   */\n  name: string;\n  /**\n   * The url of the social link\n   *\n   * @memberof ISocialLinkItem\n   * @member {string} url\n   */\n  url: string;\n  /**\n   * The icon of the social link\n   *\n   * @memberof ISocialLinkItem\n   * @member {IconType} icon\n   */\n  icon: IconType;\n}\n\n/** Social Links */\nexport const defaultSocialLinks: ISocialLinkItem[] = [\n  {\n    name: 'Facebook',\n    icon: 'facebook',\n    url: 'https://www.facebook.com/petcolovelost',\n  },\n  {\n    name: 'Twitter',\n    icon: 'twitter',\n    url: 'https://twitter.com/petcolovelost',\n  },\n  {\n    name: 'Instagram',\n    icon: 'instagram',\n    url: 'https://www.instagram.com/petcolovelost',\n  },\n  {\n    name: 'Youtube',\n    icon: 'youtube',\n    url: 'https://www.youtube.com/petcolove',\n  },\n  {\n    name: 'Nextdoor',\n    icon: 'nextdoor',\n    url: 'https://nextdoor.com/pages/petco-love-lost',\n  },\n];\n\n/**\n * ISocialLinks Interface for SocialLinks component\n *\n * @interface ISocialLinks\n */\nexport interface ISocialLinks {\n  /**\n   * The size of the Icons to display.\n   *\n   * @memberof ISocialLinks\n   * @member {number} size\n   */\n  size: number;\n  /**\n   * The optional social links to display\n   *\n   * @memberof ISocialLinks\n   * @default defaultSocialLinks\n   * @member {ISocialLinkItem[]} [socialLinks]\n   */\n  socialLinks?: ISocialLinkItem[];\n  /**\n   * The optional classes\n   *\n   * @memberof ISocialLinks\n   * @default ''\n   * @member {string} [classes]\n   */\n  classes?: string;\n}\n\n/**\n * Social Links A list of our social links to display out in the application.\n *\n * @param {ISocialLinks} props - The props for the SocialLinks component\n * @returns {React.FC<ISocialLinks>} Social Links Component\n */\nconst SocialLinks: React.FC<ISocialLinks> = ({\n  size,\n  classes = '',\n  socialLinks = defaultSocialLinks,\n}: ISocialLinks) => {\n  return (\n    <div data-testid=\"social-links\" className={`flex space-x-6 ${classes}`}>\n      {socialLinks.map((socialLink) => {\n        const Icon = chooseIcon(socialLink.icon);\n\n        return (\n          <div key={socialLink.name}>\n            <a\n              href={socialLink.url}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              className=\"focus-visible:outline-focus-400 text-base-400 hover:text-base-300\"\n            >\n              <Icon size={size} color=\"currentColor\" />\n              <span className=\"sr-only\">{socialLink.name}</span>\n            </a>\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n\nexport default SocialLinks;\n","import Paragraph from '@/components/atoms/Paragraph/Paragraph';\n\nimport Image, { ImageLoader } from 'next/legacy/image';\nimport Link from 'next/link';\n\n/**\n * ICardArticle Interface for the Card Article Component\n *\n * @interface ICardArticle\n */\nexport interface ICardArticle {\n  /**\n   * Title of the Article for the Card\n   *\n   * @memberof ICardArticle\n   * @member {string} title\n   */\n  title: string;\n  /**\n   * The Excerpt of the Article to Display\n   *\n   * @memberof ICardArticle\n   * @member {string} excerpt\n   */\n  excerpt: string;\n  /**\n   * The Image of the Article to display\n   *\n   * @memberof ICardArticle\n   * @member {string} image\n   */\n  image: string;\n  /**\n   * The optional classes for the component\n   *\n   * @memberof ICardArticle\n   * @default ''\n   * @member {string} [classes]\n   */\n  classes?: string;\n  /**\n   * The optional imageClasses for the component\n   *\n   * @memberof ICardArticle\n   * @default ''\n   * @member {string} [imageClasses]\n   */\n  imageClasses?: string;\n  /**\n   * Url of the article to link to\n   *\n   * @memberof ICardArticle\n   * @member {string} url\n   */\n  url: string;\n  /**\n   * The optional target for the url\n   *\n   * @memberof ICardArticle\n   * @default '_self'\n   * @member {'_blank' | '_self' | '_parent' | '_top'} [target]\n   */\n  target?: '_blank' | '_self' | '_parent' | '_top';\n  /**\n   * The loader function for the image\n   *\n   * @memberof ICardArticle\n   * @member {ImageLoader} [loader]\n   */\n  loader?: ImageLoader;\n}\n\n/**\n * Card Article The Card Article Component that links to an url and displays an\n * image, title and excerpt\n *\n * @param {ICardArticle} props - The props for the Card Article Component\n * @returns {React.FC<ICardArticle>} Card Article Component\n */\nconst CardArticle: React.FC<ICardArticle> = ({\n  title,\n  excerpt,\n  image,\n  classes = '',\n  url,\n  imageClasses = '',\n  target = '_self',\n  loader,\n}: ICardArticle) => {\n  return (\n    <div\n      data-testid=\"card-article\"\n      className={`w-full cursor-pointer [&:has(:focus-visible)]:ring-1 [&:has(:focus-visible)]:ring-focus-400 sm:rounded-[20px] md:rounded-3xl ${classes}`}\n    >\n      <Link\n        href={url}\n        className=\"w-full focus:ring-0 focus:ring-offset-0 focus-visible:ring-offset-0 focus-visible:ring-0 focus-visible:border-none focus-visible:outline-none\"\n        target={target}\n      >\n        <div\n          className={`h-[218px] sm:h-[140px] md:h-72 relative rounded-2xl sm:rounded-[20px] md:rounded-3xl flex overflow-hidden ${imageClasses}`}\n        >\n          <Image\n            data-testid=\"card-article-image\"\n            src={image}\n            layout=\"fill\"\n            alt={`Image of ${title}`}\n            objectFit=\"cover\"\n            className=\"scale-100 hover:scale-[102%] transition-transform duration-100\"\n            loader={loader}\n            sizes=\"(max-width: 739px) 100vw, (max-width: 1199px) 33vw, 450px\"\n          />\n        </div>\n        <div className=\"w-full mt-4 md:mt-6\">\n          <span className=\"font-bold font-petco text-h5 text-mkNavy-400 line-clamp-2\">\n            {title}\n          </span>\n          <Paragraph size=\"body4\" className=\"mt-3 font-petco line-clamp-2\">\n            {excerpt}\n          </Paragraph>\n        </div>\n      </Link>\n    </div>\n  );\n};\n\nexport default CardArticle;\n","import contentFulImageLoader from '@/component-library-lib/loaders/contentfulImageLoader';\nimport AnimateItem from '@/component-library/atoms/AnimateItem/AnimateItem';\nimport ButtonLink, {\n  IButtonLink,\n} from '@/component-library/atoms/ButtonLink/ButtonLink';\nimport Heading from '@/components/atoms/Heading/Heading';\nimport CardArticle, {\n  ICardArticle,\n} from '@/components/molecules/CardArticle/CardArticle';\n\n/**\n * IButtonLinkWithHref Interface for a Button link with a href\n *\n * @augments IButtonLink\n * @interface IButtonLinkWithHref\n */\nexport interface IButtonLinkWithHref extends IButtonLink {\n  /**\n   * The button link url\n   *\n   * @memberof IButtonLinkWithHref\n   * @member {string} href\n   */\n  href: string;\n}\n\n/**\n * IArticlesDisplay Interface for ArticlesDisplay component\n *\n * @interface IArticlesDisplay\n */\nexport interface IArticlesDisplay {\n  /**\n   * The title of the articles display.\n   *\n   * @memberof IArticlesDisplay\n   * @member {string} title\n   */\n  title: string;\n  /**\n   * An array of card articles to display.\n   *\n   * @memberof IArticlesDisplay\n   * @member {ICardArticle[]} articles\n   */\n  articles: ICardArticle[];\n  /**\n   * The optional button link.\n   *\n   * @memberof IArticlesDisplay\n   * @member {IButtonLinkWithHref} [buttonLink]\n   */\n  buttonLink?: IButtonLinkWithHref;\n  /**\n   * The optional classes to be applied to the component.\n   *\n   * @memberof IArticlesDisplay\n   * @default ''\n   * @member {string} [classes]\n   */\n  classes?: string;\n  /**\n   * The optional imageClasses to be applied to the image inside a card.\n   *\n   * @memberof IArticlesDisplay\n   * @default ''\n   * @member {string} [imageClasses]\n   */\n  imageClasses?: string;\n}\n\n/**\n * ArticlesDisplay Organism for displaying articles\n *\n * @param {IArticlesDisplay} props - The props for the ArticlesDisplay component\n * @returns {React.FC<IArticlesDisplay>} ArticlesDisplay Component\n */\nconst ArticlesDisplay: React.FC<IArticlesDisplay> = ({\n  title,\n  articles,\n  buttonLink,\n  classes = '',\n  imageClasses = '',\n}: IArticlesDisplay) => {\n  return (\n    <div\n      data-testid=\"articles-display\"\n      className={`max-w-[1360px] mx-auto ${classes}`}\n    >\n      <AnimateItem from={{ translateY: 20 }}>\n        <div className=\"flex flex-col justify-between mb-8 space-y-4 sm:flex-row sm:space-y-0 sm:items-center md:mb-12\">\n          <Heading size=\"h3\" font=\"petco\" className=\"text-secondaryBase-400 \">\n            {title}\n          </Heading>\n          {buttonLink && <ButtonLink {...buttonLink} />}\n        </div>\n      </AnimateItem>\n      {articles && (\n        <div className=\"grid sm:grid-cols-3 grid-cols-1 md:gap-x-8 gap-6\">\n          {articles.map((article, index) => (\n            <div className=\"flex items-center justify-stretch\" key={index}>\n              <CardArticle\n                {...article}\n                imageClasses={imageClasses}\n                loader={contentFulImageLoader}\n              />\n            </div>\n          ))}\n        </div>\n      )}\n    </div>\n  );\n};\n\nexport default ArticlesDisplay;\n","import { ReactNode } from 'react';\n\n/**\n * IPageWrapper\n *\n * @interface IPageWrapper\n */\nexport interface IPageWrapper {\n  /**\n   * The content of the page.\n   *\n   * @memberof IPageWrapper\n   * @member {ReactNode} children\n   */\n  children: ReactNode;\n  /**\n   * The classes to apply to the component.\n   *\n   * @memberof IPageWrapper\n   * @default ''\n   * @member {string} [classes]\n   */\n  classes?: string;\n}\n\n/**\n * Page Wrapper Used to wrap the entire page in a fixed size container.\n *\n * @param {IPageWrapper} props - The props for the PageWrapper component\n * @returns {React.FC<IPageWrapper>} PageWrapper Component\n */\nconst PageWrapper: React.FC<IPageWrapper> = ({\n  children,\n  classes = '',\n}: IPageWrapper) => {\n  return <div className={`max-w-[1440px] mx-auto ${classes}`}>{children}</div>;\n};\n\nexport default PageWrapper;\n","import useWindowSize, {\n  breakpoint,\n} from '@/component-library-lib/hooks/windowSize/WindowSize';\nimport Divider from '@/components/atoms/Divider/Divider';\nimport Heading from '@/components/atoms/Heading/Heading';\nimport Paragraph from '@/components/atoms/Paragraph/Paragraph';\nimport { ICardArticle } from '@/components/molecules/CardArticle/CardArticle';\nimport SocialLinks, {\n  ISocialLinkItem,\n} from '@/components/molecules/SocialLinks/SocialLinks';\nimport ArticlesDisplay from '@/components/organisms/ArticlesDisplay/ArticlesDisplay';\nimport PageWrapper from '@/components/organisms/PageWrapper/PageWrapper';\nimport Image from 'next/legacy/image';\nimport { useEffect, useState } from 'react';\n\n/**\n * IAuthor\n *\n * Used to define the Author interface\n *\n * @interface\n */\nexport interface IAuthor {\n  /** The name of the author */\n  name: string;\n  /** The position of the author */\n  position: string;\n  /** The image of the author */\n  imageUrl: string;\n  /** The social links of the author */\n  socialLinks: ISocialLinkItem[];\n  /** The bio of the author */\n  biography: string;\n}\n\n/**\n * IAuthorBioTemplateContent\n *\n * Used to define the text content for the Author Bio Template\n *\n * @interface\n */\nexport interface IAuthorBioTemplateContent {\n  /** The content of the Articles Display component */\n  articlesDisplay: {\n    /** Title for the Articles Display */\n    title: string;\n  };\n}\n\n/**\n * IAuthorBioTemplate\n *\n * @interface\n */\nexport interface IAuthorBioTemplate {\n  /** Author */\n  author: IAuthor;\n  /** The articles to display */\n  articles?: ICardArticle[];\n  /** Text Content */\n  content: IAuthorBioTemplateContent;\n}\n\n/**\n * AuthorBioTemplate - A template for the Author Bio\n *\n * @param {IAuthorBioTemplate} props - The props for the AuthorBioTemplate\n *   component\n * @returns {React.FC<IAuthorBioTemplate>} Component\n */\nconst AuthorBioTemplate: React.FC<IAuthorBioTemplate> = ({\n  author,\n  articles,\n  content,\n}) => {\n  const { breakpoint } = useWindowSize();\n  const [avatarSize, setAvatarSize] = useState(155);\n\n  /** Update the size of the avatar according to the window size */\n  useEffect(() => {\n    /**\n     * Map the breakpoint size to the avatar size\n     *\n     * @constant {object} breakpointToAvatarSizeMap\n     */\n    const breakpointToAvatarSizeMap: {\n      [key in breakpoint]: number;\n    } = {\n      xs: 155,\n      sm: 210,\n      md: 200,\n    };\n\n    if (breakpoint) {\n      setAvatarSize(breakpointToAvatarSizeMap[breakpoint]);\n    }\n  }, [breakpoint]);\n\n  return (\n    <div\n      data-testid=\"author-bio-template\"\n      className=\"flex flex-col items-center\"\n    >\n      <div className=\"absolute bg-base-100 h-[123px] sm:h-[135px] md:h-[150px] w-full\"></div>\n      <div\n        data-testid=\"author-bio-template-avatar\"\n        className={`aspect-square col-start-2 col-span-2 mb-8 mt-[46px] rounded-full h-[155px] z-10 sm:col-start-3 sm:col-span-2 sm:mb-8 md:col-start-6 sm:mt-[30px]  sm:h-[210px] md:col-span-2 md:mb-12 md:mt-[50px] md:h-[200px] border-2 border-neutral-100 `}\n      >\n        <Image\n          src={author.imageUrl}\n          alt={author.name}\n          height={avatarSize}\n          width={avatarSize}\n          data-testid=\"avatar\"\n          className=\"rounded-full\"\n        />\n      </div>\n      <PageWrapper classes=\"relative grid grid-cols-4 px-6 mb-7 sm:grid-cols-6 sm:px-8 md:px-10 sm:gap-x-6 md:grid-cols-12 md:gap-x-8 md:mb-[60px]\">\n        <div className=\"flex flex-col items-center col-start-1 col-span-4 mb-12 text-center sm:col-start-2 sm:col-span-4 sm:mb-12 md:col-start-4 md:col-span-6 md:mb-14\">\n          <Heading size=\"h1\" font=\"petco\">\n            {author.name}\n          </Heading>\n          <span className=\"text-[1.125rem] font-amasis\">\n            {author?.position}\n          </span>\n          {author.socialLinks.length > 0 && (\n            <SocialLinks\n              size={24}\n              socialLinks={author.socialLinks}\n              classes=\"space-x-4 mt-6\"\n            />\n          )}\n        </div>\n        <Paragraph\n          size=\"body4\"\n          className=\"col-start-1 col-span-4 whitespace-pre-line sm:col-span-6 md:col-start-4 md:col-span-6\"\n        >\n          {author.biography}\n        </Paragraph>\n        {articles && articles.length > 0 && (\n          <>\n            <Divider\n              type=\"lightGrey\"\n              classes=\"col-start-1 col-span-4 my-12 sm:col-span-6 md:col-span-12 md:my-20\"\n            />\n            <ArticlesDisplay\n              articles={articles}\n              title={content.articlesDisplay.title}\n              classes=\"col-start-1 col-span-4 sm:col-span-6 md:col-span-12 \"\n            />\n          </>\n        )}\n      </PageWrapper>\n    </div>\n  );\n};\n\nexport default AuthorBioTemplate;\n"],"names":["__webpack_exports__","Z","children","from","to","delay","duration","className","param","ref","useRef","controls","useAnimation","inView","useInView","useEffect","start","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","motion","div","initial","animate","variants","hidden","opacity","visible","scale","translateX","translateY","transition","ease","cubicBezier","variantClasses","primary","light","dark","lightBlue","pink","secondary","tertiary","disabledStyles","removeFocusStyles","variant","href","as","disabled","replace","scroll","shallow","passHref","color","rest","variantStyles","cls","wrapperFocusStyles","concat","Link","src","width","quality","dividerClassMap","darkGrey","lightGrey","white","type","classes","dividerClasses","hr","defaultSocialLinks","name","icon","url","size","socialLinks","map","Icon","chooseIcon","socialLink","jsxs","a","target","rel","span","CardArticle_CardArticle","title","excerpt","image","imageClasses","loader","jsx_runtime","Image","layout","alt","objectFit","sizes","Paragraph","ArticlesDisplay_ArticlesDisplay","articles","buttonLink","AnimateItem","Heading","font","ButtonLink","article","index","CardArticle","contentFulImageLoader","author","content","breakpoint","useWindowSize","avatarSize","setAvatarSize","useState","breakpointToAvatarSizeMap","xs","sm","md","imageUrl","height","PageWrapper","position","length","SocialLinks","biography","Fragment","Divider","ArticlesDisplay","articlesDisplay"],"sourceRoot":""}