{"version":3,"file":"static/chunks/6366.92290bbe5e14ff92.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/./src/components/molecules/Loading/Loading.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/LandingPageHero/LandingPageHero.tsx","webpack://_N_E/./src/components/organisms/LoadMore/LoadMore.tsx","webpack://_N_E/./src/components/templates/ArticlesTemplate/ArticlesTemplate.tsx","webpack://_N_E/./node_modules/react-intersection-observer/dist/index.mjs","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 Heading from '@/components/atoms/Heading/Heading';\nimport LoadingSpinner, {\n ILoadingSpinner,\n} from '@/components/atoms/LoadingSpinner/LoadingSpinner';\nimport React from 'react';\n\n/**\n * ILoading - The props for the Loading component\n *\n * @augments ILoadingSpinner\n * @interface ILoading\n */\nexport interface ILoading extends ILoadingSpinner {\n /**\n * The title to be displayed below the spinner.\n *\n * @memberof ILoading\n * @member {string} title\n */\n title: string;\n}\n\n/**\n * Loading Molecule Loading spinner with title text below\n *\n * There is an 8 px bottom margin associated with the LoadingSpinner itself\n * which is why the Heading only has an 8px padding top and not 16px. I believe\n * this is due to the spinning .svg taking space on the bottom as it spins.\n *\n * @param {ILoading} props - The props for the Loading component\n * @returns {React.FC<ILoading>} Loading Component\n */\nconst Loading: React.FC<ILoading> = ({\n classes = '',\n title,\n size,\n}: ILoading) => {\n return (\n <div data-testid=\"loading\" className={`text-center ${classes}`}>\n <LoadingSpinner size={size} />\n <Heading size=\"h5\" font=\"amasis\" className=\"text-neutral-800 pt-2\">\n {title}\n </Heading>\n </div>\n );\n};\n\nexport default Loading;\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 CdnImage from '@/component-library/atoms/CdnImage/CdnImage';\nimport Button, { IButton } from '@/components/atoms/Button/Button';\nimport Heading from '@/components/atoms/Heading/Heading';\n\n/**\n * ILandingPageHero Interface for Landing Page Hero component\n *\n * @interface ILandingPageHero\n */\nexport interface ILandingPageHero {\n /**\n * The text to display.\n *\n * @memberof ILandingPageHero\n * @member {string} title\n */\n title: string;\n /**\n * The image to display.\n *\n * @memberof ILandingPageHero\n * @member {string} imageUrl\n */\n imageUrl: string;\n /**\n * The alt text for the image.\n *\n * @memberof ILandingPageHero\n * @member {string} alt\n */\n alt: string;\n /**\n * The optional prop to display an array of buttons.\n *\n * @memberof ILandingPageHero\n * @member {IButton[]} [buttons]\n */\n buttons?: IButton[];\n}\n\n/**\n * Landing Page Hero The Hero component displayed on landing pages.\n *\n * @param {ILandingPageHero} props - Landing Page Hero props\n * @returns {React.FC<ILandingPageHero>} Landing Page Hero Component\n */\nconst LandingPageHero: React.FC<ILandingPageHero> = ({\n title,\n imageUrl,\n buttons,\n alt,\n}: ILandingPageHero) => {\n return (\n <div\n data-testid=\"landing-page-hero\"\n className=\"w-full h-[400px] md:h-[500px] overflow-hidden relative text-center items-center flex content-center\"\n >\n <span className=\"w-full\">\n <Heading\n size=\"h1\"\n className=\"text-neutral-100 pb-6 md:pb-8 z-10 relative\"\n >\n {title}\n </Heading>\n {buttons && (\n <div className=\"grid grid-cols-1 md:flex items-center justify-center md:space-x-4 space-y-4 md:space-y-0\">\n {buttons.map((button, index) => (\n <div\n key={index}\n data-testid={`landing-page-hero-button-${index}`}\n >\n <Button {...button} />\n </div>\n ))}\n </div>\n )}\n </span>\n <CdnImage\n src={imageUrl}\n alt={alt}\n layout=\"fill\"\n priority={true}\n className=\"object-cover -z-[1]\"\n />\n\n <div className=\"bg-black/30 absolute top-0 left-0 h-full w-full\" />\n </div>\n );\n};\n\nexport default LandingPageHero;\n","import Loading from '@/components/molecules/Loading/Loading';\nimport React, { useEffect } from 'react';\nimport { useInView } from 'react-intersection-observer';\n\n/**\n * ILoadMore\n *\n * @interface ILoadMore\n */\nexport interface ILoadMore {\n /**\n * If the function is loading\n *\n * @memberof ILoadMore\n * @member {boolean} loading\n */\n loading: boolean;\n /**\n * Update offset\n *\n * @memberof ILoadMore\n * @member {() => void} updateOffset\n */\n updateOffset: () => void;\n /**\n * Title\n *\n * @memberof ILoadMore\n * @member {string} [title]\n */\n title?: string;\n}\n\n/**\n * LoadMore A div that will trigger a function to be called when in view while\n * displaying the loading component\n *\n * @param {ILoadMore} props - The props for the LoadMore component\n * @returns {React.FC<ILoadMore>} Component\n */\nconst LoadMore: React.FC<ILoadMore> = ({\n updateOffset,\n loading,\n title = 'Fetching Matches',\n}: ILoadMore) => {\n const { ref, inView } = useInView({\n threshold: 1,\n });\n\n useEffect(() => {\n if (inView && !loading) {\n updateOffset();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inView]);\n\n return (\n <div\n data-testid=\"load-more\"\n ref={ref}\n className=\"flex flex-row justify-center\"\n >\n <Loading title={title} />\n </div>\n );\n};\n\nexport default LoadMore;\n","import FullWidthCalloutBody from '@/components/atoms/FullWidthCalloutBody';\nimport { ICardArticle } from '@/components/molecules/CardArticle/CardArticle';\nimport Loading from '@/components/molecules/Loading/Loading';\nimport ArticlesDisplay from '@/components/organisms/ArticlesDisplay/ArticlesDisplay';\nimport FullWidthCalloutImage from '@/components/organisms/FullWidthCalloutImage/FullWidthCalloutImage';\nimport LandingPageHero from '@/components/organisms/LandingPageHero/LandingPageHero';\nimport LoadMore from '@/components/organisms/LoadMore/LoadMore';\nimport PageWrapper from '@/components/organisms/PageWrapper/PageWrapper';\nimport { useEventContext } from '@/lib/hooks/analytics/useEventContext';\n\n/**\n * IArticlesTemplateContent\n *\n * Used to define the text content for the Articles Template\n *\n * @interface\n */\nexport interface IArticlesTemplateContent {\n /** The landing page hero content */\n landingPageHero: {\n /** The landing page hero title */\n title: string;\n /** The landing page hero alt text */\n altText: string;\n };\n /** The full width callout content */\n fullWidthCalloutImage: {\n /** The full width callout overline text */\n overline: string;\n /** The full width callout title */\n title: string;\n /** The full width callout body */\n body: string;\n /** The full width callout sign up button text */\n signUpButtonText: string;\n };\n}\n\n/**\n * IArticlesTemplate\n *\n * @interface\n */\nexport interface IArticlesTemplate {\n /** Articles to display */\n articles: ICardArticle[];\n /** Text Content */\n content: IArticlesTemplateContent;\n /** - Function to request the next page of articles */\n requestNextPage: () => void;\n /**\n * Whether or not the articles are being fetched\n *\n * @default false\n */\n isFetching?: boolean;\n /**\n * Whether or not there are more articles to fetch\n *\n * @default false\n */\n hasMore?: boolean;\n}\n\n/**\n * ArticlesTemplate - A template for the articles\n *\n * @param {IArticlesTemplate} props - The props for the ArticlesTemplate\n * component\n * @returns {React.FC<IArticlesTemplate>} Component\n */\nconst ArticlesTemplate: React.FC<IArticlesTemplate> = ({\n articles,\n content,\n requestNextPage,\n isFetching = false,\n hasMore = false,\n}) => {\n const { setInitiatingComponent } = useEventContext();\n\n return (\n <div data-testid=\"articles-template\">\n <LandingPageHero\n imageUrl={\n process.env.NEXT_PUBLIC_CDN_BASE_URL + '/assets/lost/all-articles.jpg'\n }\n title={content.landingPageHero.title}\n alt={content.landingPageHero.altText}\n />\n <PageWrapper classes=\"px-6 py-12 sm:px-8 md:px-10 md:py-20\">\n <ArticlesDisplay articles={articles} title=\"\" />\n {isFetching && articles.length > 0 && (\n <div className=\"sm:col-start-1 sm:col-span-6 md:col-start-4 md:col-span-9 pt-[200px]\">\n <Loading title=\"Loading\" />\n </div>\n )}\n {!isFetching && hasMore && articles.length > 0 && (\n <LoadMore\n updateOffset={requestNextPage}\n loading={isFetching}\n title=\"Loading\"\n />\n )}\n </PageWrapper>\n <FullWidthCalloutImage\n overline={content.fullWidthCalloutImage.overline}\n title={content.fullWidthCalloutImage.title}\n body={<FullWidthCalloutBody />}\n imageUrl={\n process.env.NEXT_PUBLIC_CDN_BASE_URL +\n '/assets/lost/brandywine-valley-spca-dogs-chasing.jpg'\n }\n button1={{\n size: 'md',\n variant: 'dark',\n color: 'secondary',\n type: 'button',\n children: content.fullWidthCalloutImage.signUpButtonText,\n /** Sets the component name for tracking */\n onClick: () => {\n setInitiatingComponent('Sign Up Button / All Pages');\n },\n href: '/create-account/start/',\n rel: 'nofollow',\n }}\n classes=\"mb-7 md:mb-[60px]\"\n />\n </div>\n );\n};\n\nexport default ArticlesTemplate;\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref) return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current) callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map"],"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","classes","title","size","jsxs","LoadingSpinner","Heading","font","CardArticle_CardArticle","excerpt","image","url","imageClasses","target","loader","jsx_runtime","Image","src","layout","alt","objectFit","sizes","span","Paragraph","ArticlesDisplay_ArticlesDisplay","articles","buttonLink","AnimateItem","ButtonLink","map","article","index","CardArticle","contentFulImageLoader","imageUrl","buttons","button","Button","CdnImage","priority","updateOffset","loading","threshold","Loading","content","requestNextPage","isFetching","hasMore","setInitiatingComponent","useEventContext","LandingPageHero","process","landingPageHero","altText","PageWrapper","ArticlesDisplay","length","LoadMore","FullWidthCalloutImage","overline","fullWidthCalloutImage","body","FullWidthCalloutBody","button1","type","signUpButtonText","onClick","rel","__defProp","Object","defineProperty","observerMap","Map","RootIds","WeakMap","rootId","unsupportedValue","trackVisibility","rootMargin","root","triggerOnce","skip","initialInView","fallbackInView","onChange","_a","setRef","react__WEBPACK_IMPORTED_MODULE_0__","useState","callback","state","setState","entry","current","unobserve","observe","element","options","window","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","intersectionRatio","time","boundingClientRect","intersectionRect","rootBounds","id","observer","elements","createObserver","keys","sort","filter","key","has","set","toString","get","instance","thresholds","entries","forEach","some","isVisible","Array","isArray","callbacks","push","splice","indexOf","delete","disconnect","entryTarget","previousEntryTarget","result","Component"],"sourceRoot":""}