{"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":""}