{"version":3,"file":"QuoteImageBlock-Chunk-79dfe5372142ab20e106.js","mappings":"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","sources":["webpack://react-app/./node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","webpack://react-app/./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","webpack://react-app/./components/Shared/src/utility/hooks/useDevicePixelRatio.ts","webpack://react-app/./components/Shared/src/components/atoms/Image/Image.tsx","webpack://react-app/./components/Shared/src/components/atoms/Text/Text.tsx","webpack://react-app/./components/Shared/src/models/enums/SiteEnum.ts","webpack://react-app/./components/Shared/tailwind.config.js","webpack://react-app/./components/Shared/src/utility/hooks/useBreakpoint.ts","webpack://react-app/./components/Shared/src/components/atoms/Cta/Cta.tsx","webpack://react-app/./components/Shared/src/components/organisms/QuoteImageBlock/QuoteImageBlock.tsx","webpack://react-app/./components/organisms/QuoteImageBlock/QuoteImageBlockWrapper.tsx","webpack://react-app/./components/Shared/src/utility/format/parseNumberInString.ts","webpack://react-app/./components/Shared/src/utility/config/breakpoints.ts","webpack://react-app/./components/Shared/src/models/enums/BreakpointEnum.ts"],"sourcesContent":["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)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n        var _config_compoundVariants;\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 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n            let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\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","import { useEffect, useState } from 'react';\n\nconst useDevicePixelRatio = (): number | undefined => {\n  const [devicePixelRatio, setDevicePixelRatio] = useState<number | undefined>(\n    undefined\n  );\n\n  useEffect(() => {\n    const updateDevicePixelRatio = () => {\n      setDevicePixelRatio(Math.ceil(window.devicePixelRatio));\n    };\n\n    const mediaQuery = window.matchMedia(\n      `(resolution: ${window.devicePixelRatio}dppx)`\n    );\n    mediaQuery.addEventListener('change', updateDevicePixelRatio);\n\n    return () => {\n      mediaQuery.removeEventListener('change', updateDevicePixelRatio);\n    };\n  }, []);\n\n  return devicePixelRatio;\n};\n\nexport default useDevicePixelRatio;\n","import { IImage } from '@models/IImage';\nimport BreakpointEnum from '@models/enums/BreakpointEnum';\nimport breakpoints from '@utility/config/breakpoints';\nimport useBreakpoint from '@utility/hooks/useBreakpoint';\nimport useDevicePixelRatio from '@utility/hooks/useDevicePixelRatio';\nimport classNames from 'classnames';\nimport {\n  PropsWithChildren,\n  RefObject,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n} from 'react';\n\ninterface Props {\n  readonly aspectRatio?: number;\n  readonly classes?: string;\n  readonly containerRef?: RefObject<HTMLElement | null>;\n  readonly image: IImage;\n  readonly imageClasses?: string;\n  readonly lazyLoad?: boolean;\n  readonly quality?: number;\n  readonly sizes?: string;\n  readonly height?: number;\n  readonly width?: number;\n  readonly onLoad?: () => void;\n}\n\nconst Image = ({\n  aspectRatio, // width / height e.g. 0.5, 2 etc.\n  children,\n  classes,\n  containerRef,\n  image,\n  imageClasses,\n  lazyLoad = true,\n  quality = 70,\n  sizes = '',\n  height,\n  width,\n  onLoad,\n}: PropsWithChildren<Props>) => {\n  const devicePixelRatio = useDevicePixelRatio() ?? 1;\n  const breakpoint = useBreakpoint() ?? BreakpointEnum.XLarge;\n  const imgRef = useRef<HTMLImageElement>(null);\n\n  const {\n    url,\n    altText,\n    originalHeight,\n    originalWidth,\n    imageFocalPoint,\n    srcSet: source,\n  } = image ?? {};\n  const fileExtension = url?.substring(url?.lastIndexOf('.') + 1);\n  const hasParams = url?.includes('&'); // For images not coming from Opti\n  const containerWidth = containerRef?.current?.clientWidth;\n\n  const breakpointWidths = [\n    375 * devicePixelRatio,\n    752 * devicePixelRatio,\n    1024 * devicePixelRatio,\n    1408 * devicePixelRatio,\n    1600 * devicePixelRatio,\n  ];\n\n  const calculatedAspectRatio = useMemo(() => {\n    if (aspectRatio) return aspectRatio;\n\n    if (originalWidth && originalHeight) return originalWidth / originalHeight;\n  }, [aspectRatio, originalWidth, originalHeight]);\n\n  const generateUrlWithExtensions = useCallback(\n    (width?: number) => {\n      const qParam = quality ? `&quality=${quality}` : '';\n      const fpParam = imageFocalPoint\n        ? `&rxy=${imageFocalPoint.replace('|', ',')}`\n        : '';\n\n      if (!width) {\n        return `${url}?format=webp$${fpParam}${qParam}`;\n      }\n\n      const wParam = `&width=${width}`;\n      const h = aspectRatio ? width / aspectRatio : height;\n      const hParam = h ? `&height=${h}` : '';\n\n      return `${url}?format=webp${wParam}${hParam}${fpParam}${qParam}`;\n    },\n    [url, quality, calculatedAspectRatio, imageFocalPoint]\n  );\n\n  const srcSet = useMemo(() => {\n    return source\n      ? `${url} ${breakpointWidths[1]}w, ${source} ${breakpointWidths[2]}w`\n      : breakpointWidths\n          .map(\n            (bpWidth, i) =>\n              `${generateUrlWithExtensions(\n                i < breakpointWidths.length - 1 ? bpWidth : 1920\n              )} ${bpWidth}w`\n          )\n          .join(', ');\n  }, [source, breakpointWidths, generateUrlWithExtensions]);\n\n  useEffect(() => {\n    // Fallback - sometimes onLoad does not trigger if the image is cached\n    if (imgRef?.current?.complete && onLoad) onLoad();\n  }, [imgRef]);\n\n  if (!url || devicePixelRatio == null) return null;\n\n  if (fileExtension === 'svg' || isValidBase64ImageSource(url)) {\n    return (\n      <img\n        src={url}\n        alt={altText || 'image'}\n        className={imageClasses}\n        draggable=\"false\"\n      />\n    );\n  }\n\n  return (\n    <>\n      <picture className={classNames(classes, 'tw-block tw-overflow-hidden')}>\n        {!width && !containerWidth && !hasParams && (\n          <source type=\"image/webp\" sizes={sizes} srcSet={srcSet} />\n        )}\n        <img\n          ref={imgRef}\n          alt={altText || 'image'}\n          sizes={sizes}\n          className={imageClasses}\n          draggable=\"false\"\n          style={{\n            aspectRatio: calculatedAspectRatio,\n          }}\n          loading={lazyLoad ? 'lazy' : 'eager'}\n          fetchPriority={lazyLoad ? 'auto' : 'high'}\n          onLoad={onLoad}\n          src={\n            hasParams || source\n              ? url\n              : generateUrlWithExtensions(\n                  width ?? containerWidth ?? breakpoints[breakpoint]\n                )\n          }\n        />\n        {children}\n      </picture>\n    </>\n  );\n};\n\nconst isValidBase64ImageSource = (imageSrc: string) => {\n  const regex = /^data:image\\/(png|jpg|jpeg|gif);base64,[A-Za-z0-9+/]+={0,2}$/;\n  return regex.test(imageSrc);\n};\n\nexport default Image;\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<TElementType extends React.ElementType = React.ElementType> =\n  Partial<\n    ExplicitProps & {\n      as: TElementType;\n    }\n  >;\n\ntype TextProps<TElementType extends React.ElementType> =\n  PropsWithAs<TElementType> &\n    Omit<React.ComponentProps<TElementType>, keyof PropsWithAs>;\n\nconst __DEFAULT_ELEMENT__ = 'p';\n\nconst variantClasses = {\n  'hero-headline-large':\n    'tw-font-serif tw-text-4xl md:tw-text-7xl xl:tw-text-9xl',\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-large': 'h1',\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<TElementType>) {\n  const combinedClassName = classNames(variantClasses[variant], className);\n  const Tag = as ?? defaultTags[variant] ?? 'span';\n\n  return (\n    <Tag className={combinedClassName} {...props}>\n      {children}\n    </Tag>\n  );\n}\n\nexport default Text;\n","const enum SiteEnum {\n  B2B = 'b2b',\n  Deco = 'deco',\n}\n\nexport default SiteEnum;\n","/* eslint-env node */\n/* eslint-disable @typescript-eslint/no-var-requires */\n\n/** @type {import('tailwindcss').Config} */\n\nconst screens = {\n  sm: '375px',\n  md: '752px',\n  lg: '1024px',\n  xl: '1408px',\n  xxl: '1600px',\n};\n\nmodule.exports = {\n  darkMode: 'selector',\n  prefix: 'tw-',\n  content: [\n    './.storybook/**/*.{js,jsx,mdx,ts,tsx}',\n    './src/components/**/*.{js,jsx,mdx,ts,tsx}',\n  ],\n  theme: {\n    screens,\n    listStyleType: {\n      none: 'none',\n      disc: 'disc',\n      decimal: 'decimal',\n      square: 'square',\n    },\n    container: {\n      screens,\n      center: true,\n      padding: {\n        DEFAULT: '16px',\n        sm: '16px',\n        md: '32px',\n        lg: '48px',\n        xl: '48px',\n        '2xl': '48px',\n      },\n    },\n    fontFamily: {\n      sans: '\"Noto Sans\", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,  sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n      serif:\n        '\"Playfair Display\",ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif',\n      mono: '\"Noto Sans Mono\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n      icon: 'icomoon',\n    },\n    fontSize: {\n      xs: ['0.75rem', '1rem'],\n      sm: ['0.875rem', '1.25rem'],\n      base: ['1rem', '1.5rem'],\n      lg: ['1.125rem', '1.625rem'],\n      xl: ['1.3125rem', '1.75rem'],\n      '2xl': ['1.5rem', '2rem'],\n      '3xl': ['1.75rem', '2.25rem'],\n      '4xl': ['2rem', '2.5rem'],\n      '5xl': ['2.25rem', '2.75rem'],\n      '6xl': ['2.5rem', '3rem'],\n      '7xl': ['3rem', '3.5rem'],\n      '8xl': ['3.5rem', '4rem'],\n    },\n    lineHeight: {\n      xs: '1rem',\n      sm: '1.25rem',\n      base: '1.5rem',\n      lg: '1.625rem',\n      xl: '1.75rem',\n      '2xl': '2rem',\n      '3xl': '2.25rem',\n      '4xl': '2.5rem',\n      '5xl': '2.75rem',\n      '6xl': '3rem',\n      '7xl': '3.5rem',\n      '8xl': '4rem',\n    },\n    fontWeight: {\n      light: '300',\n      normal: '400',\n      semibold: '600',\n    },\n    colors: {\n      blue: {\n        DEFAULT: '#031E45',\n      },\n      yellow: {\n        DEFAULT: '#F0AB00',\n        hover: '#F1B32D',\n        active: '#EDBE46',\n        disabled: '#FBE6B3',\n      },\n      red: {\n        DEFAULT: '#D52B1E',\n        hover: '#E11E0F',\n        active: '#EC0E00',\n        disabled: '#F2BFBC',\n      },\n      green: {\n        DEFAULT: '#329E36',\n      },\n      grey: {\n        100: '#202020',\n        90: '#333333',\n        80: '#4D4D4D',\n        70: '#666666',\n        60: '#808080',\n        50: '#999999',\n        40: '#B3B3B3',\n        30: '#CCCCCC',\n        20: '#E6E6E6',\n        10: '#F7F7F7',\n      },\n      white: {\n        DEFAULT: '#FFFFFF',\n      },\n      black: {\n        DEFAULT: '#202020',\n      },\n      transparent: 'transparent',\n      background: {\n        amber: '#AF8A76', // light\n        amberDark: '#806A62', // dark\n        beige: '#E9D8B8', // light\n        beigeDark: '#A98259', // light\n        brownGray: '#79736D', // dark\n        brownGrey: '#79736D', // dark\n        coral: '#DBC4B7', // light\n        coralDark: '#985F56', // dark\n        darkGrey: '#E6E6E6', // light\n        gBSGreen: '#276D00', // dark\n        gBSHarpGreen: '#E5EFEA', // light\n        gBSLightGreen: '#478326', // dark\n        gBSPalmGreen: '#012317', // dark\n        gBSSummerGreen: '#C4D0B0', // light\n        graphite: '#70666C', //dark\n        jotunBlue: '#031E45', // dark\n        jotunYellow: '#F0AB00', // light\n        lightBlue: '#E6E9F0', // light\n        lightGreen: '#E6F0EB', // light\n        lightgrey: '#F7F7F7', // light\n        lightGrey: '#F7F7F7', // light\n        oceanDark: '#19262C', // dark\n        olive: '#C9D0C5', // light\n        oliveDark: '#646556', // dark\n        pearl: '#F3F4ED', // light\n        sand: '#E7DFCD', // light\n        sandDark: '#CEC1B1', // light\n        slate: '#A5BCC3', // light\n        slateDark: '#4E616C', // dark\n        white: '#FFFFFF', // light\n      },\n    },\n    extend: {\n      fill: {\n        current: 'currentColor',\n      },\n      stroke: {\n        current: 'currentColor',\n      },\n      transitionTimingFunction: {\n        'in-out-quart': 'cubic-bezier(0.76, 0, 0.24, 1)',\n      },\n      borderRadius: {\n        DEFAULT: '4px',\n        md: '10px',\n      },\n      borderWidth: {\n        1: '1px',\n      },\n      spacing: {\n        '4xs': '0.125rem', // 2px\n        '3xs': '0.25rem', // 4px\n        xxs: '0.5rem', // 8px\n        xs: '1rem', // 16px\n        sm: '1.5rem', // 24px\n        md: '2rem', // 32px\n        lg: '2.5rem', // 40px\n        xl: '3rem', // 48px\n        '2xl': '4rem', // 64px\n        '3xl': '5rem', // 80px\n        '4xl': '6rem', // 96px\n        '5xl': '7.5rem', // 120px\n        buttonY: '0.875rem', // 14px\n      },\n      zIndex: {\n        max: '999',\n        100: '100',\n        90: '90',\n        80: '80',\n        70: '70',\n        60: '60',\n      },\n    },\n  },\n  future: { hoverOnlyWhenSupported: true },\n  plugins: [require('@tailwindcss/container-queries')],\n};\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport Breakpoint from '@models/helpers/Breakpoint';\nimport breakpoints from '@utility/config/breakpoints';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst getCurrentBreakpoint = (): Breakpoint => {\n  const width = window.innerWidth;\n  let device;\n\n  if (width < breakpoints.md) {\n    device = BreakpointEnum.Small;\n  } else if (width < breakpoints.lg) {\n    device = BreakpointEnum.Medium;\n  } else if (width < breakpoints.xl) {\n    device = BreakpointEnum.Large;\n  } else if (width < breakpoints.xxl) {\n    device = BreakpointEnum.XLarge;\n  } else device = BreakpointEnum.Max;\n\n  return device;\n};\n\nconst useBreakpoint = (): Breakpoint | undefined => {\n  const [screen, setScreen] = useState<Breakpoint>();\n\n  const resizeHandler = useCallback(() => {\n    setScreen(getCurrentBreakpoint());\n  }, []);\n\n  useEffect(() => {\n    window.addEventListener('resize', resizeHandler);\n    setScreen(getCurrentBreakpoint());\n\n    return () => {\n      window.removeEventListener('resize', resizeHandler);\n    };\n  }, [resizeHandler]);\n\n  return screen;\n};\n\nexport default useBreakpoint;\n","import Icon from '@atoms/Icon/Icon';\nimport { ILink } from '@models/ILink';\nimport SiteEnum from '@models/enums/SiteEnum';\nimport { cva } from 'class-variance-authority';\nimport { ComponentPropsWithoutRef } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\ntype styles = 'yellow' | 'grey';\n\ntype Props = ComponentPropsWithoutRef<'a'> &\n  ILink & {\n    readonly variant?: styles;\n    readonly site?: SiteEnum;\n    readonly enableDarkMode?: boolean;\n  };\n\nconst baseClasses =\n  'tw-inline-block tw-rounded tw-px-3xs tw-py-3xs tw-text-center tw-text-xs rtl:tw-rotate-180';\n\nexport const variants = cva(baseClasses, {\n  variants: {\n    style: {\n      yellow:\n        'tw-bg-yellow group-hover:tw-bg-yellow-hover group-active:tw-bg-yellow-active tw-text-black',\n      grey: 'tw-bg-grey-80 dark:tw-bg-white dark:group-hover:tw-bg-grey-10 group-hover:tw-bg-grey-90 group-active:tw-bg-grey-100 dark:group-active:tw-bg-grey-20 tw-fill-white dark:tw-fill-black',\n    },\n  },\n  defaultVariants: {\n    style: 'yellow',\n  },\n});\n\nconst Cta = ({\n  site,\n  className,\n  linkIcon,\n  target,\n  text,\n  url,\n  variant, // variant prop can be passed in to override the site specific styles\n  enableDarkMode = true,\n  ...props\n}: Props) => {\n  const siteStyles = {\n    [SiteEnum.B2B]: 'yellow',\n    [SiteEnum.Deco]: 'grey',\n  };\n\n  // style is overriden if a variant is passed in, but otherwise takes on the site style\n  const style = variant ?? (site && (siteStyles[site] as styles)) ?? undefined;\n\n  const classes = twMerge(variants({ style: style }), className);\n\n  if (!text || !url) return;\n\n  const iconName =\n    linkIcon ?? (target === '_blank' ? 'external-link' : 'arrow-right');\n  return (\n    <a\n      href={url}\n      target={target}\n      className={twMerge(\n        'tw-group tw-inline-flex tw-items-center tw-gap-xxs tw-text-sm tw-text-black tw-outline-black hover:tw-text-grey-70 active:tw-text-grey-80 rtl:tw-flex-row-reverse',\n        enableDarkMode &&\n          'dark:active:tw-text-grey-30\" dark:tw-text-white dark:hover:tw-text-grey-20'\n      )}\n      {...props}\n    >\n      <Icon name={iconName} className={classes} size=\"1.25rem\" />\n\n      {text}\n    </a>\n  );\n};\n\nexport default Cta;\n","import Cta from '@atoms/Cta/Cta';\nimport Image from '@atoms/Image/Image';\nimport Text from '@atoms/Text/Text';\nimport { IQuoteImageBlock } from '@models/IQuoteImageBlock';\nimport classNames from 'classnames';\n\nconst QuoteBlockContent = ({\n  site,\n  image,\n  text,\n  author,\n  authorPosition,\n  link,\n  useWidescreenStyles,\n}: IQuoteImageBlock & {\n  readonly useWidescreenStyles: boolean;\n}) => (\n  <div\n    className={classNames(\n      {\n        'lg:tw-w-[calc(100%+32px)] xl:tw-flex-row': useWidescreenStyles,\n      },\n      {\n        'lg:tw-col-span-10 xl:tw-gap-x-28': image && useWidescreenStyles,\n      },\n      {\n        'lg:tw-col-span-8': !image && useWidescreenStyles,\n      },\n      {\n        'tw-pt-6 lg:tw-col-span-12 xl:tw-flex-row': !useWidescreenStyles,\n      },\n      'tw-col-span-4 tw-flex tw-gap-md'\n    )}\n  >\n    {useWidescreenStyles && image && (\n      <Image\n        classes=\"max-xl:tw-hidden tw-object-cover tw-shrink-0 author-block tw-w-[192px] tw-space-y-md\"\n        imageClasses=\"tw-object-cover\"\n        width={192}\n        aspectRatio={1}\n        image={image}\n      />\n    )}\n    <div className=\"tw-space-y-md\">\n      <p className={'tw-font-serif tw-text-3xl'}>{replaceQuotes(text)}</p>\n      <div className=\"tw-flex tw-gap-4\">\n        {image && (\n          <Image\n            classes={classNames(\n              'tw-object-cover author-block tw-h-[80px] tw-w-[80px]',\n              {\n                'xl:tw-hidden ': useWidescreenStyles,\n              }\n            )}\n            imageClasses=\"tw-object-cover\"\n            image={image}\n            aspectRatio={1}\n            width={80}\n          />\n        )}\n        <div className=\"tw-flex tw-flex-col tw-justify-center\">\n          {useWidescreenStyles ? (\n            <>\n              <Text variant=\"body-18\" className=\"tw-text-grey-100\">\n                {author}\n              </Text>\n              <Text variant=\"body-small\" className=\"tw-text-grey-70\">\n                {authorPosition}\n              </Text>\n            </>\n          ) : (\n            <>\n              <Text variant=\"body-14-semibold\" className=\"tw-text-grey-80\">\n                {author}\n              </Text>\n              <Text variant=\"body-small\" className=\"tw-text-grey-80\">\n                {authorPosition}\n              </Text>\n            </>\n          )}\n        </div>\n      </div>\n      {link?.url && link?.text && (\n        <Cta\n          site={site}\n          linkIcon=\"arrow-right\"\n          url={link.url}\n          text={link.text}\n          target={link.target}\n        />\n      )}\n    </div>\n  </div>\n);\n\nconst QuoteImageBlock = ({ greyBackground, ...props }: IQuoteImageBlock) => {\n  const sharedClasses =\n    'tw-grid-cols-4 tw-gap-xs md:tw-gap-md lg:tw-grid-cols-12';\n  return (\n    <>\n      {/* Quote Block layout on a regular page */}\n      <section className={greyBackground ? 'tw-bg-grey-10' : 'tw-bg-white'}>\n        <div\n          className={classNames(\n            'tw-container tw-grid tw-px-4 tw-py-12 group-[.rich-text--article]/article:tw-hidden',\n            sharedClasses\n          )}\n        >\n          <QuoteBlockContent {...props} useWidescreenStyles={true} />\n        </div>\n      </section>\n      {/* Quote Block layout on article page */}\n      <section\n        className={classNames(\n          'tw--mb-12 tw-hidden group-[.rich-text--article]/article:tw-grid xl:tw--mb-[80px]',\n          sharedClasses\n        )}\n      >\n        <QuoteBlockContent {...props} useWidescreenStyles={false} />\n      </section>\n    </>\n  );\n};\n\n// This function will replace quotes with an alternative quote style if they are the first or last character\nconst replaceQuotes = (string: string): string => {\n  const firstChar = string.charAt(0);\n  const lastChar = string.charAt(string.length - 1);\n\n  if (firstChar === '\"') {\n    string = '鈥�' + string.slice(1);\n  }\n\n  if (lastChar === '\"') {\n    string = string.slice(0, -1) + '鈥�';\n  }\n\n  return string;\n};\n\nexport default QuoteImageBlock;\n","import { IQuoteImageBlock } from '@models/IQuoteImageBlock';\nimport SiteEnum from '@models/enums/SiteEnum';\nimport SharedQuoteImageBlock from '@organisms/QuoteImageBlock/QuoteImageBlock';\n\nconst QuoteImageBlock = (props: IQuoteImageBlock) => (\n  <div className=\"tw-component-margin\">\n    <SharedQuoteImageBlock {...props} site={SiteEnum.B2B} />\n  </div>\n);\n\nexport default QuoteImageBlock;\n","// Will parse a pixel string to a number e.g. '762px' => 762\n\nconst parseNumberInString = (pixelValue: string) => {\n  const match = pixelValue.match(/\\d+/);\n\n  if (match) {\n    return parseInt(match[0], 10);\n  }\n\n  return 0;\n};\n\nexport default parseNumberInString;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport Breakpoint from '@models/helpers/Breakpoint';\nimport parseNumberInString from '@utility/format/parseNumberInString';\nimport resolveConfig from 'tailwindcss/resolveConfig';\nimport tailwindConfig from '../../../tailwind.config';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst fullConfig = resolveConfig(tailwindConfig as any);\n\nconst { sm, md, lg, xl, xxl } = fullConfig.theme.screens;\n\nconst breakpoints = {\n  sm: parseNumberInString(sm),\n  md: parseNumberInString(md),\n  lg: parseNumberInString(lg),\n  xl: parseNumberInString(xl),\n  xxl: parseNumberInString(xxl),\n};\n\nexport default breakpoints;\n\nconst breakpointArray: Breakpoint[] = Object.values(BreakpointEnum);\n\nexport const breakpointsBelow = (breakpoint: Breakpoint) => {\n  const upperIndex = breakpointArray.indexOf(breakpoint);\n  return breakpointArray.slice(0, upperIndex);\n};\n\nexport const breakpointsAbove = (breakpoint: Breakpoint) => {\n  const lowerIndex = breakpointArray.indexOf(breakpoint) + 1;\n  return breakpointArray.slice(lowerIndex);\n};\n","enum BreakpointEnum {\n  Small = 'sm',\n  Medium = 'md',\n  Large = 'lg',\n  XLarge = 'xl',\n  Max = 'xxl',\n}\n\nexport default BreakpointEnum;\n"],"names":["r","e","t","f","n","Array","isArray","o","length","clsx","arguments","falsyToString","value","cx","cva","base","config","props","_config_compoundVariants","variants","class","className","defaultVariants","getVariantClassNames","Object","keys","map","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","entries","reduce","acc","param","key","undefined","getCompoundVariantClassNames","compoundVariants","cvClass","cvClassName","compoundVariantOptions","every","includes","useDevicePixelRatio","devicePixelRatio","setDevicePixelRatio","useState","useEffect","updateDevicePixelRatio","Math","ceil","window","mediaQuery","matchMedia","addEventListener","removeEventListener","isValidBase64ImageSource","imageSrc","test","_ref","aspectRatio","children","classes","containerRef","image","imageClasses","lazyLoad","quality","sizes","height","width","onLoad","breakpoint","useBreakpoint","BreakpointEnum","XLarge","imgRef","useRef","url","altText","originalHeight","originalWidth","imageFocalPoint","srcSet","source","fileExtension","substring","lastIndexOf","hasParams","containerWidth","current","clientWidth","breakpointWidths","calculatedAspectRatio","useMemo","generateUrlWithExtensions","useCallback","qParam","fpParam","replace","h","bpWidth","i","join","complete","React","createElement","src","alt","draggable","Fragment","classNames","type","ref","style","loading","fetchPriority","breakpoints","variantClasses","headline","body","defaultTags","as","combinedClassName","Tag","_extends","SiteEnum","screens","sm","md","lg","xl","xxl","module","exports","darkMode","prefix","content","theme","listStyleType","none","disc","decimal","square","container","center","padding","DEFAULT","fontFamily","sans","serif","mono","icon","fontSize","xs","lineHeight","fontWeight","light","normal","semibold","colors","blue","yellow","hover","active","disabled","red","green","grey","white","black","transparent","background","amber","amberDark","beige","beigeDark","brownGray","brownGrey","coral","coralDark","darkGrey","gBSGreen","gBSHarpGreen","gBSLightGreen","gBSPalmGreen","gBSSummerGreen","graphite","jotunBlue","jotunYellow","lightBlue","lightGreen","lightgrey","lightGrey","oceanDark","olive","oliveDark","pearl","sand","sandDark","slate","slateDark","extend","fill","stroke","transitionTimingFunction","borderRadius","borderWidth","spacing","xxs","buttonY","zIndex","max","future","hoverOnlyWhenSupported","plugins","getCurrentBreakpoint","innerWidth","device","Small","Medium","Large","Max","screen","setScreen","resizeHandler","site","linkIcon","target","text","enableDarkMode","siteStyles","B2B","Deco","twMerge","iconName","href","Icon","name","size","QuoteBlockContent","author","authorPosition","link","useWidescreenStyles","Image","replaceQuotes","Text","Cta","string","firstChar","charAt","lastChar","slice","_ref2","greyBackground","sharedClasses","SharedQuoteImageBlock","pixelValue","match","parseInt","fullConfig","resolveConfig","tailwindConfig","parseNumberInString","breakpointArray","values","breakpointsBelow","upperIndex","indexOf","breakpointsAbove","lowerIndex"],"sourceRoot":""}