{"version":3,"file":"ArticleStamp-Chunk-637cb5216f4668e44162.js","mappings":"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","sources":["webpack://react-app/./components/Shared/src/components/atoms/Button/Button.tsx","webpack://react-app/./components/Shared/src/components/atoms/Modal/Modal.tsx","webpack://react-app/./components/Shared/src/components/atoms/Modal/Portal.tsx","webpack://react-app/./components/Shared/src/components/atoms/Text/Text.tsx","webpack://react-app/./components/Shared/src/components/molecules/SocialLinks/SocialLinks.tsx","webpack://react-app/./components/Shared/src/models/enums/SiteEnum.ts","webpack://react-app/./components/Shared/src/utility/config/animations.ts","webpack://react-app/./components/Shared/src/utility/hooks/useModal.ts","webpack://react-app/./components/Shared/src/components/molecules/ShareButton/ShareButton.tsx","webpack://react-app/./components/Shared/src/components/organisms/ArticleStamp/ArticleStamp.tsx","webpack://react-app/./components/organisms/ArticleStamp/ArticleStampWrapper.tsx","webpack://react-app/./node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","webpack://react-app/./node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs"],"sourcesContent":["import Icon from '@atoms/Icon/Icon';\nimport { ButtonOrLinkProps } from '@models/IButton';\nimport SiteEnum from '@models/enums/SiteEnum';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport classNames from 'classnames';\nimport { forwardRef, type ForwardedRef } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nconst baseClasses = `tw-text-sm tw-flex tw-items-center tw-rounded tw-relative after:tw-content-[''] after:tw-box-content focus-visible:after:tw-rounded focus-visible:tw-outline-none tw-transition-colors focus-visible:after:tw-absolute focus-visible:after:tw-inset-[2px] focus-visible:after:tw-border-2 focus-visible:after:tw-block tw-px-4`;\n\nexport type ButtonVariant = VariantProps;\n\nexport const variants = cva(baseClasses, {\n variants: {\n variant: {\n yellow:\n 'tw-text-black hover:tw-bg-yellow-hover focus-visible:tw-bg-yellow focus-visible:tw-ring-yellow focus-visible:tw-ring-offset-grey-100 active:tw-bg-yellow-active disabled:tw-pointer-events-none disabled:tw-border-yellow-disabled disabled:tw-text-grey-60 disabled:tw-bg-yellow-disabled focus-visible:after:tw-border-black',\n grey30:\n 'focus-visible:tw-bg-grey-30 focus-visible:tw-ring-grey-30 focus-visible:tw-ring-offset-grey-100 disabled:tw-pointer-events-none disabled:tw-border-grey-30 disabled:tw-text-grey-30 focus-visible:after:tw-border-black',\n grey80:\n 'focus-visible:tw-bg-grey-80 focus-visible:tw-text-white focus-visible:tw-ring-grey-80 focus-visible:tw-ring-offset-white disabled:tw-pointer-events-none disabled:tw-border-grey-30 disabled:tw-text-grey-30 disabled:tw-text-grey-60 disabled:tw-bg-grey-30 dark:focus-visible:tw-bg-white dark:focus-visible:tw-text-grey-100 dark:focus-visible:tw-ring-white dark:focus-visible:tw-ring-offset-grey-100 dark:disabled:tw-border-grey-80 dark:disabled:tw-bg-grey-80 dark:disabled:tw-text-white focus-visible:after:tw-border-white dark:focus-visible:after:tw-border-black',\n white:\n 'focus-visible:tw-bg-white focus-visible:tw-text-grey-100 focus-visible:tw-ring-white focus-visible:tw-ring-offset-grey-100 disabled:tw-pointer-events-none disabled:tw-border-grey-80 disabled:tw-bg-grey-80 disabled:tw-text-white focus-visible:after:tw-border-black dark:tw-border dark:tw-border-grey-30',\n destructive:\n 'tw-bg-red tw-text-white hover:tw-bg-red-hover focus-visible:tw-ring-red focus-visible:tw-ring-offset-white active:tw-bg-red-active disabled:tw-pointer-events-none disabled:tw-bg-red-disabled disabled:tw-text-grey-60 focus-visible:after:tw-border-white',\n link: 'tw-text-black hover:tw-text-grey-70 tw-underline hover:tw-no-underline tw-underline-offset-2 active:tw-text-grey-80',\n },\n modifier: {\n fill: '',\n outline: 'tw-bg-transparent tw-border tw-border-current',\n },\n icon: {\n true: 'tw-rounded-full focus-visible:after:tw-rounded-full tw-py-4',\n false: 'tw-py-3.5',\n },\n },\n compoundVariants: [\n // Yellow Variants\n {\n variant: 'yellow',\n modifier: 'fill',\n className: 'tw-bg-yellow',\n },\n {\n variant: 'yellow',\n modifier: 'outline',\n className: 'tw-border-yellow',\n },\n // Grey30 Variants\n {\n variant: 'grey30',\n modifier: 'fill',\n className:\n 'tw-border-grey-30 tw-bg-grey-30 tw-text-black hover:tw-bg-grey-40 active:tw-bg-grey-50',\n },\n {\n variant: 'grey30',\n modifier: 'outline',\n className:\n 'tw-text-black tw-border-grey-30 hover:tw-bg-grey-40 active:tw-bg-grey-50',\n },\n // Grey80 Variants - becomes white variant by wrapping in an element with class 'dark'\n {\n variant: 'grey80',\n modifier: 'fill',\n className:\n 'tw-bg-grey-80 tw-text-white hover:tw-bg-grey-90 active:tw-bg-grey-100 dark:tw-bg-white dark:tw-text-grey-100 dark:hover:tw-bg-grey-10 dark:active:tw-bg-grey-20',\n },\n {\n variant: 'grey80',\n modifier: 'outline',\n className:\n 'tw-border-grey-80 tw-text-black hover:tw-bg-grey-90 hover:tw-text-white active:tw-bg-grey-100 dark:tw-text-white dark:hover:tw-bg-grey-10 dark:hover:tw-text-grey-100 dark:active:tw-bg-grey-20',\n },\n // White Variants\n {\n variant: 'white',\n modifier: 'fill',\n className:\n 'tw-bg-white tw-text-grey-100 hover:tw-bg-grey-10 active:tw-bg-grey-20',\n },\n {\n variant: 'white',\n modifier: 'outline',\n className:\n 'tw-bg-transparent tw-text-white hover:tw-bg-grey-10 hover:tw-text-grey-100 active:tw-bg-grey-20',\n },\n ],\n defaultVariants: {\n variant: 'yellow',\n icon: false,\n },\n});\n\nconst Button = forwardRef<\n HTMLAnchorElement | HTMLButtonElement,\n ButtonOrLinkProps\n>(\n (\n {\n as = 'button',\n buttonClasses,\n dataTestId,\n disabled,\n iconClasses,\n iconName,\n iconSize,\n label,\n modifier = 'fill',\n site,\n variant,\n ...props\n },\n ref\n ) => {\n const siteStyles = {\n [SiteEnum.B2B]: 'yellow',\n [SiteEnum.Deco]: 'grey80',\n };\n\n const style =\n variant ??\n (site && (siteStyles[site] as keyof ButtonVariant['variant'])) ??\n undefined;\n\n const iconOnly = !!iconName && !label;\n\n const classes = twMerge(\n variants({ variant: style, modifier, icon: iconOnly }),\n buttonClasses\n );\n\n const Content = (\n \n {label && {label}}\n {iconName && (\n \n )}\n \n );\n\n if (as === 'link') {\n const anchorProps =\n props as React.AnchorHTMLAttributes;\n const { href } = anchorProps;\n\n return (\n }\n {...anchorProps}\n data-testid={dataTestId}\n >\n {Content}\n \n );\n } else {\n return (\n }\n {...(props as React.ButtonHTMLAttributes)}\n >\n {Content}\n \n );\n }\n }\n);\n\nButton.displayName = 'Button';\nexport default Button;\n","import { fadeTransition } from '@utility/config/animations';\nimport useModal from '@utility/hooks/useModal';\nimport { motion } from 'motion/react';\nimport { PropsWithChildren, useRef } from 'react';\nimport Portal from './Portal';\n\nexport interface IModal {\n readonly isOpen: boolean;\n readonly setIsOpen: (state: boolean) => void;\n}\n\nconst Modal = ({ children, isOpen, setIsOpen }: PropsWithChildren) => {\n const targetRef = useRef(null);\n const contentRef = useRef(null);\n\n useModal(isOpen, setIsOpen, targetRef);\n\n const stopPropagation = (event: React.MouseEvent) =>\n event.target === contentRef.current\n ? setIsOpen(false)\n : event.stopPropagation();\n\n return isOpen ? (\n \n setIsOpen(false)}\n ref={targetRef}\n tabIndex={0}\n className=\"tw-fixed tw-inset-0 tw-z-max tw-overflow-auto tw-bg-black/80 tw-outline-none\"\n >\n \n {children}\n \n \n \n ) : null;\n};\n\nexport default Modal;\n","import { PropsWithChildren, useEffect, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\n\ninterface Props {\n readonly mountId: string;\n}\n\nconst Portal = ({ mountId, children }: PropsWithChildren) => {\n const containerElement = useMemo(() => document.createElement('div'), []);\n\n useEffect(() => {\n document.getElementById(mountId)?.appendChild(containerElement);\n\n return () => {\n document.getElementById(mountId)?.removeChild(containerElement);\n };\n }, [mountId, containerElement]);\n\n return createPortal(children, containerElement);\n};\n\nexport default Portal;\n","import classNames from 'classnames';\n\nexport type TextVariant = keyof typeof variantClasses;\n\ninterface ExplicitProps {\n variant: TextVariant;\n className?: string;\n children?: string | string[] | TrustedHTML;\n}\n\n// This allows Text Component props to match the props of the element defined by 'as'\ntype PropsWithAs =\n Partial<\n ExplicitProps & {\n as: TElementType;\n }\n >;\n\ntype TextProps =\n PropsWithAs &\n Omit, keyof PropsWithAs>;\n\nconst __DEFAULT_ELEMENT__ = 'p';\n\nconst variantClasses = {\n 'hero-headline': 'tw-font-serif tw-text-4xl md:tw-text-7xl xl:tw-text-8xl',\n headline: 'tw-font-serif tw-text-3xl xl:tw-text-5xl',\n 'sub-headline': 'tw-font-sans tw-text-2xl', // alt name - heading-24\n // New Design System Variants\n 'ds-sub-headline': 'tw-font-serif tw-text-4xl md:tw-text-5xl xl:tw-text-7xl',\n 'ds-headline-2': 'tw-text-3xl md:tw-text-4xl xl:tw-text-5xl tw-font-serif',\n 'ds-headline-3': 'tw-text-xl lg:tw-text-2xl tw-font-sans tw-font-light',\n 'ds-headline-4': 'tw-font-sans tw-text-lg lg:tw-text-xl',\n 'ds-quote': 'tw-font-serif tw-text-2xl lg:tw-text-3xl',\n 'ds-paragraph': 'tw-font-sans tw-text-sm lg:tw-text-base',\n body: 'tw-font-sans tw-text-base', // alt name - body-16\n 'body-small': 'tw-font-sans tw-text-sm', // alt name - body-14\n // secondary / non-responsive variants\n 'heading-56': 'tw-font-serif tw-text-8xl',\n 'heading-48': 'tw-font-serif tw-text-7xl',\n 'heading-40': 'tw-font-serif tw-text-6xl',\n 'heading-36': 'tw-font-serif tw-text-5xl',\n 'heading-32': 'tw-font-serif tw-text-4xl',\n 'heading-28': 'tw-font-serif tw-text-3xl',\n 'heading-24-light': 'tw-font-sans tw-text-2xl tw-font-light',\n 'heading-21': 'tw-font-sans tw-text-xl',\n 'heading-21-light': 'tw-font-sans tw-text-xl tw-font-light',\n 'body-18': 'tw-font-sans tw-text-lg',\n 'body-18-semibold': 'tw-font-sans tw-text-lg tw-font-semibold',\n 'body-16-semibold': 'tw-font-sans tw-font-semibold',\n 'body-14-semibold': 'tw-font-sans tw-text-sm tw-font-semibold',\n 'mono-14': 'tw-font-mono tw-text-sm',\n 'mono-12': 'tw-font-mono tw-text-xs',\n 'mono-14-semibold': 'tw-font-mono tw-text-sm tw-font-semibold',\n 'mono-12-semibold': 'tw-font-mono tw-text-xs tw-font-semibold',\n 'label-12': 'tw-font-sans tw-text-xs',\n 'label-12-semibold': 'tw-font-sans tw-text-xs tw-font-semibold',\n};\n\nconst defaultTags: Record<\n string,\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'code' | 'label'\n> = {\n 'hero-headline': 'h1',\n headline: 'h2',\n 'sub-headline': 'h3',\n body: 'p',\n 'heading-56': 'h1',\n 'heading-48': 'h2',\n 'heading-40': 'h3',\n 'heading-36': 'h4',\n 'heading-32': 'h5',\n 'heading-28': 'h6',\n 'heading-24-light': 'h6',\n 'heading-21': 'h4',\n 'body-small': 'p',\n 'body-18': 'p',\n 'body-18-semibold': 'p',\n 'body-16-semibold': 'p',\n 'body-14-semibold': 'p',\n 'mono-14': 'code',\n 'mono-12': 'code',\n 'mono-14-semibold': 'code',\n 'mono-12-semibold': 'code',\n 'label-12': 'label',\n 'label-12-semibold': 'label',\n};\n\nfunction Text<\n TElementType extends React.ElementType = typeof __DEFAULT_ELEMENT__\n>({\n as,\n className,\n variant = 'body',\n children,\n ...props\n}: TextProps) {\n const combinedClassName = classNames(variantClasses[variant], className);\n const Tag = as ?? defaultTags[variant] ?? 'span';\n\n return (\n \n {children}\n \n );\n}\n\nexport default Text;\n","import Button from '@atoms/Button/Button';\nimport { ISocialLinks } from '@models/ISocialLinks';\n\nconst SocialLinks = ({\n links,\n copyToClipboardLabel,\n onCopyToClipboard,\n}: ISocialLinks) => (\n
\n {links.map(({ target, linkIcon, url, text }) => (\n \n ))}\n {copyToClipboardLabel && onCopyToClipboard && (\n {\n window.navigator.clipboard.writeText(window.location.href);\n onCopyToClipboard();\n }}\n aria-label={copyToClipboardLabel}\n modifier=\"outline\"\n variant=\"grey30\"\n iconName=\"link\"\n iconSize=\"1.5rem\"\n buttonClasses=\"!tw-p-0 tw-h-xl tw-w-xl\"\n iconClasses=\"tw-text-2xl\"\n />\n )}\n
\n);\n\nexport default SocialLinks;\n","const enum SiteEnum {\n B2B = 'b2b',\n Deco = 'deco',\n}\n\nexport default SiteEnum;\n","export const slideTransition = {\n duration: 0.8,\n ease: [0.74, 0, 0.19, 1.02],\n};\n\nexport const fadeTransition = {\n delay: 0.15,\n duration: 0.3,\n ease: 'easeIn',\n};\n\nexport const fadeInUp = {\n hidden: {\n opacity: 0,\n y: 50,\n transition: {\n duration: 1,\n ease: [0.22, 1, 0.36, 1],\n },\n },\n visible: {\n opacity: 1,\n y: 0,\n transition: {\n duration: 1,\n ease: [0.22, 1, 0.36, 1],\n type: 'spring',\n stiffness: 50,\n damping: 14,\n },\n },\n};\n\nexport const fadeInUpSlow = {\n hidden: {\n opacity: 0,\n y: 50,\n transition: {\n duration: 1,\n ease: [0.4, 0, 0.2, 1],\n },\n },\n visible: {\n opacity: 1,\n y: 0,\n transition: {\n duration: 1,\n ease: [0.4, 0, 0.2, 1],\n type: 'spring',\n stiffness: 50,\n damping: 14,\n },\n },\n};\n\nexport const fadeIn = {\n hidden: {\n opacity: 0,\n transition: {\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n visible: {\n opacity: 1,\n transition: {\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n};\n","import { RefObject, useEffect } from 'react';\nimport { usePreventScroll } from 'react-aria';\n\n// A useful hook to lock the scroll position of the rest of a page when a modal is open and provide a focus trap\nconst useModal = (\n isOpen: boolean,\n setIsOpen: (isOpen: boolean) => void,\n targetRef: RefObject\n) => {\n usePreventScroll({ isDisabled: !isOpen });\n\n useEffect(() => {\n if (typeof window === 'undefined' || !targetRef.current) {\n return;\n }\n\n // Retain which element activated the modal\n const activeElement = (document.activeElement ||\n document.body) as HTMLElement;\n const modalElement = targetRef.current;\n\n if (isOpen && modalElement) {\n const focusableElements = modalElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[\n focusableElements.length - 1\n ] as HTMLElement;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement?.focus();\n } else if (\n !event.shiftKey &&\n document.activeElement === lastElement\n ) {\n event.preventDefault();\n firstElement?.focus();\n }\n }\n };\n\n const handleEscapeKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n // Set focus back to the element which activated the modal\n activeElement?.focus();\n }\n };\n\n modalElement.addEventListener('keydown', handleTabKeyPress);\n modalElement.addEventListener('keydown', handleEscapeKeyPress);\n\n modalElement.focus();\n\n return () => {\n modalElement.removeEventListener('keydown', handleTabKeyPress);\n modalElement.removeEventListener('keydown', handleEscapeKeyPress);\n };\n }\n }, [isOpen, setIsOpen, targetRef]);\n};\n\nexport default useModal;\n","import Button from '@atoms/Button/Button';\nimport Icon from '@atoms/Icon/Icon';\nimport Modal from '@atoms/Modal/Modal';\nimport Text from '@atoms/Text/Text';\nimport { IShareButton } from '@models/IShareButton';\nimport SocialLinks from '@molecules/SocialLinks/SocialLinks';\nimport { useState } from 'react';\n\nconst ShareButton = ({\n shareTitle,\n links,\n closeLabel,\n copyToClipboardLabel,\n copiedToClipboardLabel,\n allowCopyUrl,\n ariaShareLabel,\n}: IShareButton) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isCopiedToClipboard, setIsCopiedToClipboard] = useState(false);\n return (\n
\n setIsOpen(true)}\n aria-label={ariaShareLabel}\n modifier=\"outline\"\n variant=\"grey30\"\n iconName=\"share\"\n iconSize=\"1rem\"\n buttonClasses=\"!tw-p-0 tw-h-md tw-w-md\"\n iconClasses=\"tw-text-2xl\"\n />\n \n
\n {isCopiedToClipboard ? (\n
\n \n {copiedToClipboardLabel}\n
\n ) : (\n
\n {shareTitle}\n setIsOpen(false)}\n className=\"tw-flex\"\n >\n \n \n
\n )}\n {!isCopiedToClipboard && (\n {\n setIsCopiedToClipboard(true);\n setTimeout(() => {\n setIsOpen(false);\n setIsCopiedToClipboard(false);\n }, 3000);\n }}\n />\n )}\n
\n
\n
\n );\n};\n\nexport default ShareButton;\n","import Text from '@atoms/Text/Text';\nimport { IShareButton } from '@models/IShareButton';\nimport ShareButton from '@molecules/ShareButton/ShareButton';\n\nexport interface IArticleStamp {\n readonly date: string;\n readonly timeStamp: string;\n readonly showPublishedDate: boolean;\n readonly shareButton: IShareButton;\n}\n\nconst ArticleStamp = ({\n date,\n timeStamp,\n shareButton,\n showPublishedDate,\n}: IArticleStamp) => (\n
\n
\n {showPublishedDate && date && (\n \n {date}\n \n )}\n {timeStamp && showPublishedDate && date && (\n \n )}\n {timeStamp}\n
\n
\n \n
\n
\n);\n\nexport default ArticleStamp;\n","import SharedArticleStamp, {\n IArticleStamp,\n} from '@organisms/ArticleStamp/ArticleStamp';\n\nconst ArticleStamp = (props: IArticleStamp) => (\n \n);\n\nexport default ArticleStamp;\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map"],"names":["variants","cva","variant","yellow","grey30","grey80","white","destructive","link","modifier","fill","outline","icon","true","false","compoundVariants","className","defaultVariants","Button","forwardRef","_ref","ref","as","buttonClasses","dataTestId","disabled","iconClasses","iconName","iconSize","label","site","props","siteStyles","SiteEnum","B2B","Deco","style","undefined","iconOnly","classes","twMerge","Content","React","createElement","classNames","Icon","name","size","anchorProps","href","_extends","displayName","children","isOpen","setIsOpen","targetRef","useRef","contentRef","useModal","Portal","key","mountId","motion","div","id","role","initial","opacity","animate","transition","fadeTransition","exit","height","onClick","tabIndex","event","target","current","stopPropagation","containerElement","useMemo","document","useEffect","getElementById","appendChild","removeChild","createPortal","variantClasses","headline","body","defaultTags","combinedClassName","Tag","links","copyToClipboardLabel","onCopyToClipboard","map","_ref2","linkIcon","url","text","window","navigator","clipboard","writeText","location","slideTransition","duration","ease","delay","fadeInUp","hidden","y","visible","type","stiffness","damping","usePreventScroll","isDisabled","activeElement","modalElement","focusableElements","querySelectorAll","firstElement","lastElement","length","handleTabKeyPress","shiftKey","preventDefault","focus","handleEscapeKeyPress","addEventListener","removeEventListener","shareTitle","closeLabel","copiedToClipboardLabel","allowCopyUrl","ariaShareLabel","useState","isCopiedToClipboard","setIsCopiedToClipboard","Modal","Text","SocialLinks","setTimeout","date","timeStamp","shareButton","showPublishedDate","ShareButton","SharedArticleStamp","r","e","t","f","n","Array","isArray","clsx","arguments","falsyToString","value","concat","cx","base","config","class","getVariantClassNames","Object","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","entries","reduce","acc","param","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","every","includes"],"sourceRoot":""}