{"version":3,"file":"static/chunks/4124-5908d14012952dc0.js","mappings":"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","sources":["webpack://_N_E/../../libs/osc/animate-reveal-item/src/lib/animate-reveal-item.tsx","webpack://_N_E/../../libs/osc/animate-reveal-item/src/lib/index.ts","webpack://_N_E/../../libs/osc/animate-reveal-item/src/index.ts","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/dynamic-grid-image.tsx","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/utils/dynamic-grid-analytics.ts","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/dynamic-grid-item.tsx","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/utils/dynamic-grid-column-count.ts","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/dynamic-grid.tsx","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/dynamic-grid-item-wom.tsx","webpack://_N_E/../../libs/utilities/use-has-overflow/src/lib/use-has-overflow.ts","webpack://_N_E/../../libs/utilities/use-has-overflow/src/lib/index.ts","webpack://_N_E/../../libs/utilities/use-has-overflow/src/index.ts","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/dynamic-grid-wom.tsx","webpack://_N_E/../../libs/osc/dynamic-grids/src/lib/index.ts","webpack://_N_E/../../libs/osc/dynamic-grids/src/index.ts","webpack://_N_E/../../libs/osc/textual-block/src/lib/textual-block.tsx","webpack://_N_E/../../libs/osc/textual-block/src/lib/index.ts","webpack://_N_E/../../libs/osc/textual-block/src/index.ts"],"sourcesContent":["import type * as React from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\nimport cx from 'classnames';\nimport { getIsReducedMotion } from '@dx-ui/utilities-accessibility';\n\nexport type AnimateRevealItemType = {\n  delay: number;\n  isAnimated?: boolean;\n  animationType?: 'fade-in-up' | 'wipe' | 'fade-in';\n  className?: string;\n};\n\nexport const AnimateRevealItem: React.FC<React.PropsWithChildren<AnimateRevealItemType>> = ({\n  children,\n  delay,\n  animationType = 'fade-in',\n  isAnimated: isAnimatedProp = false,\n  className,\n}) => {\n  const isReducedMotion = getIsReducedMotion();\n  const { ref: intersectionRef, isIntersecting: inView } = useIntersectionObserver({\n    threshold: [0.3],\n    freezeOnceVisible: true,\n  });\n  const isAnimated = isReducedMotion ? false : isAnimatedProp;\n  const ref = !isReducedMotion && isAnimated ? intersectionRef : null;\n\n  if (animationType === 'wipe') {\n    const clipPathValue = inView ? 'inset(0% 0% 0%)' : 'inset(0% 0% 100%)';\n\n    return (\n      <div className={className} ref={ref}>\n        <div\n          className={cx({\n            'opacity-100': inView && isAnimated,\n            'duration-1000 ease-in-out opacity-0 motion-reduce:opacity-100 motion-reduce:transition-none':\n              isAnimated,\n          })}\n          data-testid=\"wipe-item-wrapper\"\n          style={\n            isAnimated\n              ? {\n                  transitionDelay: `${delay}ms`,\n                  clipPath: isReducedMotion ? 'inset(0% 0% 0%)' : clipPathValue,\n                }\n              : {}\n          }\n        >\n          {children}\n        </div>\n      </div>\n    );\n  }\n\n  const isFadeInUp = animationType === 'fade-in-up';\n\n  return (\n    <div\n      ref={ref}\n      data-testid=\"fade-item-wrapper\"\n      style={\n        isAnimated\n          ? {\n              transitionDelay: `${delay}ms`,\n              transitionTimingFunction: 'cubic-bezier(.25, .46, .45, .99);',\n            }\n          : {}\n      }\n      className={cx(\n        {\n          'opacity-100': inView && isAnimated,\n          'opacity-100 translate-y-0': inView && isAnimated && isFadeInUp,\n          'translate-y-6': !inView && isAnimated && isFadeInUp,\n          'duration-1000 opacity-0 motion-reduce:transition-none motion-reduce:opacity-100 transition-all':\n            isAnimated,\n        },\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n};\n\nexport default AnimateRevealItem;\n","export * from './animate-reveal-item';\n","export * from './lib';\n","import { ResponsiveImage, ResponsivePicture } from '@dx-ui/osc-responsive-image';\nimport type { TResponsiveImage, TResponsivePicture } from '@dx-ui/osc-responsive-image';\n\nexport type DynamicImageProps = Pick<\n  TResponsiveImage,\n  'id' | 'imageUrl' | 'altText' | 'aspectRatio' | 'width' | 'captionData' | 'className'\n> &\n  Pick<\n    TResponsivePicture,\n    'tabletAspectRatio' | 'mobileAspectRatio' | 'tabletImageUrl' | 'mobileImageUrl'\n  >;\n\nexport const DynamicImage: React.FC<DynamicImageProps> = ({\n  id,\n  imageUrl,\n  altText,\n  aspectRatio,\n  tabletAspectRatio,\n  mobileAspectRatio,\n  tabletImageUrl,\n  mobileImageUrl,\n  width,\n  captionData,\n  className,\n}) => {\n  const sharedProps = {\n    id: `dynamic-grid-wom-item-img-${id}`,\n    aspectRatio,\n    imageUrl,\n    altText,\n    width,\n    captionData,\n    className,\n  };\n\n  return tabletImageUrl || mobileImageUrl ? (\n    <ResponsivePicture\n      {...sharedProps}\n      tabletAspectRatio={tabletAspectRatio}\n      mobileAspectRatio={mobileAspectRatio}\n      tabletImageUrl={tabletImageUrl}\n      mobileImageUrl={mobileImageUrl}\n    />\n  ) : (\n    <ResponsiveImage {...sharedProps} />\n  );\n};\n","import {\n  type ImageFunctionType,\n  ANALYTICS_NO_VALUE,\n  type BaseImageMetrics,\n  ImageClickID,\n  ImageFunction,\n  ImageType,\n} from '@dx-ui/config-metrics';\nimport type { DynamicGridMetrics } from '../types/dynamic-grid-analytics';\n\ntype GenerateDynamicGridMetricsParams = {\n  metrics?: Partial<BaseImageMetrics>;\n  position: number;\n  count?: number;\n  itemTitle?: string;\n  headline?: string;\n  imageType?: (typeof ImageType)['Dynamic'];\n  imageFunction?: ImageFunctionType;\n};\n\n/**\n * Utility function to generate dynamic Grid metrics\n */\nexport function generateDynamicGridMetrics({\n  metrics,\n  position,\n  count = 0,\n  itemTitle = ANALYTICS_NO_VALUE,\n  headline = ANALYTICS_NO_VALUE,\n  imageFunction = ImageFunction.Modal, // 'Modal' for Dynamic Grid, 'Link' for Dynamic Grid WOM\n}: GenerateDynamicGridMetricsParams): DynamicGridMetrics {\n  const DynamicGridMetrics = {\n    click: {\n      clickID: ImageClickID.Img,\n    },\n    osc: {\n      ...metrics?.osc,\n      image: {\n        ...metrics?.osc?.image,\n        count,\n        itemTitle,\n        type: ImageType.Dynamic,\n        headline: metrics?.osc?.image?.headline || headline,\n        position,\n        function: imageFunction,\n      },\n    },\n  };\n\n  return DynamicGridMetrics;\n}\n\n/**\n * Utility function to generate Dynamic Grid metrics\n * The returned object will serve as a partial image metric object to be extended within the Dynamic Grid component\n */\nexport function generatePartialDynamicGridMetrics(\n  headline: string | null | undefined\n): Partial<BaseImageMetrics> {\n  return {\n    click: {\n      clickID: ImageClickID.Img,\n    },\n    osc: {\n      image: {\n        // All the other DynamicGridMetrics attributes will be set in DynamicGridItem\n        headline: headline || ANALYTICS_NO_VALUE,\n        type: ImageType.Dynamic,\n      },\n    },\n  };\n}\n","import { useRef } from 'react';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useRect } from '@dx-ui/utilities-use-rect';\nimport { DynamicImage } from './dynamic-grid-image';\nimport type { AspectRatio } from '@dx-ui/osc-responsive-image';\nimport type { CaptionProps } from '@dx-ui/osc-caption';\nimport type { Link } from '@dx-ui/osc-link';\nimport type { VariantTypes } from './dynamic-grid';\nimport {\n  trackEvent,\n  ANALYTICS_GLOBAL_CLICK_EVENT,\n  type BaseImageMetrics,\n} from '@dx-ui/config-metrics';\nimport { generateDynamicGridMetrics } from './utils/dynamic-grid-analytics';\n\nexport type TDynamicGridItem = {\n  /** Dynamic Grid item id */\n  id: string;\n  /** Image for Dynamic Grid Item */\n  imageUrl: string;\n  tabletImageUrl?: string;\n  mobileImageUrl?: string;\n  /** Alt Text for Dynamic Grid Item Image */\n  imageAltTxt: string;\n  /** Image for Displaying in Modal */\n  modalImageUrl?: string;\n  /** Alt text for Modal Image */\n  modalImageAltText?: string;\n  /** Text overlaid on Dynamic Grid Item */\n  itemTitle?: string;\n  /** Headline for Dynamic Grid Item Modal/dialog */\n  headline?: string;\n  /** Content such as Markdown, or text in Modal/dialog */\n  shortDescription?: JSX.Element | string;\n  /** Link following the item headline & content in Modal/dialog */\n  link?: React.ComponentProps<typeof Link> & {\n    experimentationConfiguration?: CmsExperimentationConfiguration;\n  };\n  /** Callback handler for grid item click event  */\n  onItemClick?: (id: string, el: HTMLButtonElement | null) => void;\n  /** Callback handler for link click event  */\n  onClickLink?: (id?: string) => void;\n  /** Add Tailwind classes to root element */\n  className?: string;\n  /** Caption link and text */\n  captionData?: CaptionProps;\n  /** List of Audience Ids */\n  segmentIds: string[];\n  /** CMS document editor button **/\n  cmsDocumentControl?: React.ReactNode;\n  /* Translation CSS classes to add to each item */\n  cmsTranslationClasses?: string;\n  /* CPM controlled brand color themes */\n  brandComponentTheme?: CmsBrandComponentTheme;\n  /** New card variant added for Enterprise refresh */\n  variant?: VariantTypes;\n  /** Headline for Dynamic Grid */\n  listHeadline?: string;\n  /** Position of the Dynamic Grid Item */\n  position?: number;\n  /** Number of Dynamic Grid Items */\n  count?: number;\n  /** Metrics object for analytics */\n  metrics?: Partial<BaseImageMetrics>;\n};\n\nexport type TDynamicGridItemAndAspectRatios = TDynamicGridItem & {\n  /** The aspect ratio for the grid item images */\n  imageAspectRatio: AspectRatio;\n  tabletImageAspectRatio?: AspectRatio;\n  mobileImageAspectRatio?: AspectRatio;\n};\n\nexport const DocsTDynamicGridItem: React.FC<\n  React.PropsWithChildren<TDynamicGridItemAndAspectRatios>\n> = () => null;\n\nconst DynamicGridItem: React.FC<TDynamicGridItemAndAspectRatios> = (item) => {\n  const ref = useRef<React.ElementRef<'div'>>(null);\n  const buttonRef = useRef<HTMLButtonElement>(null);\n  const rect = useRect({ ref });\n  const [t] = useTranslation('osc-dynamic-grids');\n\n  const {\n    id,\n    captionData,\n    itemTitle,\n    imageUrl,\n    tabletImageUrl,\n    mobileImageUrl,\n    onItemClick,\n    className,\n    variant,\n    brandComponentTheme,\n    position,\n    count,\n    listHeadline,\n    headline,\n    metrics,\n  } = item;\n  const aspectRatio = item?.imageAspectRatio;\n  const tabletAspectRatio = item?.tabletImageAspectRatio;\n  const mobileAspectRatio = item?.mobileImageAspectRatio;\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  const isCardLayout = variant === 'card';\n\n  const onClickGridItem = () => {\n    trackEvent(\n      ANALYTICS_GLOBAL_CLICK_EVENT,\n      generateDynamicGridMetrics({\n        metrics,\n        position: position || 0,\n        count,\n        itemTitle,\n        headline: listHeadline || headline,\n      })\n    );\n    onItemClick?.(id, buttonRef.current);\n  };\n  // TODO: NHCBP-3494 - Tailwind utitilies for grid-* classes (see grid.css)\n  // TODO: NHCBP-3494 - Tailwind focus:ring utility not working - classNames on \"button\":\n  // focus:ring-2 focus:ring-primary focus:ring-opacity-50\n\n  const handleOnFocus = () => {\n    // Scroll to the element when focused\n    // The setTimeout is needed for this to work in Safari browser\n    setTimeout(() => {\n      buttonRef.current?.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n    }, 10);\n  };\n\n  if (item) {\n    return (\n      <button\n        ref={buttonRef}\n        type=\"button\"\n        data-testid={`dynamicgrid-item-${id}`}\n        id={id}\n        onClick={onClickGridItem}\n        className={cx(\n          'group overflow-y-hidden sm:w-auto',\n          'focus:ring-primary/50 focus:ring-2',\n          'snap snap-start',\n          'relative',\n          item.cmsTranslationClasses,\n          className\n        )}\n        onFocus={handleOnFocus}\n      >\n        <div\n          className=\"bg-bg-alt brand-hi-refresh:rounded-lg relative overflow-hidden\"\n          data-testid={`layout-${isCardLayout ? 'card' : 'default'}`}\n        >\n          {isCardLayout ? (\n            <div className=\"bg-bg-inverse absolute inset-0 z-10 opacity-0 transition-opacity duration-300 group-hover:opacity-15 group-focus:opacity-15\" />\n          ) : null}\n          <div className={cx('absolute z-10 flex size-full items-end')}>\n            <div\n              className={cx('from-bg-inverse size-full to-transparent', {\n                'bg-gradient-to-t': !isCardLayout,\n              })}\n            >\n              <div\n                className={cx('flex size-full items-end duration-200 ease-in-out', {\n                  'group-hover:-translate-y-1/3': !isCardLayout,\n                })}\n              >\n                {!isCardLayout && (\n                  <div\n                    className={cx(\n                      'dynamic-grid-item-header mx-auto w-full px-3 leading-tight sm:py-4 lg:py-6 xl:text-3xl'\n                    )}\n                    data-testid=\"dynamicgrid-item-btnText\"\n                  >\n                    {itemTitle}\n                  </div>\n                )}\n                <span className=\"sr-only\">{t('openModal')}</span>\n              </div>\n            </div>\n          </div>\n          <div ref={ref} className=\"relative\">\n            <DynamicImage\n              id={id}\n              imageUrl={imageUrl}\n              altText=\"\"\n              aspectRatio={aspectRatio}\n              tabletAspectRatio={tabletAspectRatio}\n              mobileAspectRatio={mobileAspectRatio}\n              tabletImageUrl={tabletImageUrl}\n              mobileImageUrl={mobileImageUrl}\n              width={rect?.width ?? 0}\n              captionData={captionData}\n              className=\"brand-gu:group-hover:scale-110 brand-gu:group-hover:opacity-80 duration-300 ease-in-out\"\n            />\n            {isCardLayout && aspectRatio === '3:4' ? (\n              <DynamicGridCardHeader\n                ar={aspectRatio}\n                isDark={isDark}\n                isLight={isLight}\n                itemTitle={itemTitle}\n              />\n            ) : null}\n          </div>\n          {isCardLayout && aspectRatio !== '3:4' ? (\n            <DynamicGridCardHeader\n              ar={aspectRatio}\n              isDark={isDark}\n              isLight={isLight}\n              itemTitle={itemTitle}\n            />\n          ) : null}\n        </div>\n        {item.cmsDocumentControl}\n      </button>\n    );\n  }\n\n  return null;\n};\n\ntype DynamicGridCardHeaderProps = {\n  ar: AspectRatio;\n  isDark: boolean;\n  isLight: boolean;\n  itemTitle: string | undefined;\n};\n\nconst DynamicGridCardHeader = ({ ar, isDark, isLight, itemTitle }: DynamicGridCardHeaderProps) => {\n  const baseClasses =\n    'mx-auto w-full px-3 py-0 min-h-20 flex items-center justify-center xl:text-xl leading-tight dynamic-grid-item-header';\n  const positionClasses = ar === '3:4' ? 'absolute inset-x-0 bottom-0' : '';\n\n  return (\n    <div\n      className={cx(baseClasses, positionClasses, {\n        'dynamic-grid-item-header-light': isLight,\n        'dynamic-grid-item-header-dark': isDark,\n        'bg-primary': !isDark && !isLight,\n      })}\n      data-testid=\"dynamicgrid-item-btnText\"\n    >\n      <span className=\"relative z-10\">{itemTitle}</span>\n    </div>\n  );\n};\n\nexport { DynamicGridItem };\nexport default DynamicGridItem;\n","export const getDynamicGridColumnCount = (columnCount: string | number, count: number) => {\n  let is369 = false,\n    is4x = false,\n    is2x = false,\n    isOther = false;\n\n  if (columnCount === 'auto') {\n    is369 = count % 3 === 0 || count === 5;\n    is4x = !is369 && count > 2 && (count % 2 === 0 || count === 7);\n    is2x = !is369 && (is4x || count % 2 === 0);\n    isOther = !is369 && !is4x && !is2x;\n  } else {\n    is369 = columnCount === '3';\n    is4x = columnCount === '4';\n    is2x = columnCount === '2';\n  }\n\n  return { is369, is4x, is2x, isOther };\n};\n","import { useEffect, useState } from 'react';\nimport cx from 'classnames';\nimport { DialogWithContent } from '@dx-ui/osc-marketing';\nimport { BrandTextBody } from '@dx-ui/osc-brand-text-body';\nimport { BrandTextHeader } from '@dx-ui/osc-brand-text-header';\nimport { AnimateRevealItem } from '@dx-ui/osc-animate-reveal-item';\nimport DynamicGridItem, { type TDynamicGridItem } from './dynamic-grid-item';\nimport type { AspectRatio } from '@dx-ui/osc-responsive-image';\nimport { mapTextAlignToClassname } from '@dx-ui/osc-textual-block';\nimport { type BaseImageMetrics } from '@dx-ui/config-metrics';\nimport { getDynamicGridColumnCount } from './utils/dynamic-grid-column-count';\n\ntype ListItemButtonElement = HTMLButtonElement | null;\nexport type VariantTypes = 'card';\n\nexport type TDynamicGrid = {\n  id: string;\n  /** An array of TDynamicGridItem objects */\n  items: TDynamicGridItem[];\n  /** The aspect ratio for the grid item images */\n  imageAspectRatio: AspectRatio;\n  tabletImageAspectRatio?: AspectRatio;\n  mobileImageAspectRatio?: AspectRatio;\n  /** The aspect ratio for the modal item image */\n  modalImageAspectRatio?: AspectRatio;\n  /** If true then vertically stack items for mobile, instead of horitzontally scrolling */\n  isMobileVerticalStack?: boolean;\n  /** Headline for Dynamic Grid */\n  listHeadline?: string;\n  /** Content as a component, such as Markdown, or text */\n  listDescription?: JSX.Element | string;\n  /** Text alignment for CMS controls */\n  textAlign?: 'left' | 'right' | 'center';\n  /** Add Tailwind classes to root element */\n  className?: string;\n  /** Dialog component requires ariaLabel */\n  ariaLabel?: string;\n  /** Callback handler for Read Message event  */\n  onViewItem?: (id: string) => void;\n  /** Callback for modal state opening or closing */\n  onToggleModal?: (isOpen: boolean) => void;\n  /** Theme variable for dark/light theming */\n  brandComponentTheme?: CmsBrandComponentTheme;\n  /** Enables reveal animations */\n  isAnimated?: boolean;\n  /** New card variant added for Enterprise refresh */\n  variant?: VariantTypes;\n  metrics?: Partial<BaseImageMetrics>;\n  /** Choose the number of grid columns */\n  columnCount?: 'auto' | '2' | '3' | '4';\n};\n\n/**\n * DynamicGrid creates a grid of items with an image and title that opens a modal when clicked. Grids with either be a 3x grid (item counts of 3, 5, 6, or 9) or a 4x grid (item counts of 4, 7, or 8).\n * Recommended grid item counts of 3 to 9.\n */\nexport const DynamicGrid: React.FC<TDynamicGrid> = ({\n  imageAspectRatio,\n  tabletImageAspectRatio,\n  mobileImageAspectRatio,\n  modalImageAspectRatio = '16:9',\n  items: baseItems = [],\n  isMobileVerticalStack = false,\n  className = '',\n  listHeadline,\n  listDescription,\n  textAlign = 'left',\n  onViewItem,\n  onToggleModal,\n  isAnimated = false,\n  id: dynamicGridId,\n  brandComponentTheme,\n  variant,\n  metrics,\n  columnCount = 'auto',\n  ...props\n}) => {\n  const [activeId, updateActiveId] = useState('');\n  const [isModalOpen, updateModalOpen] = useState(false);\n  const [snapClasses, setSnapClasses] = useState('');\n  const [activeListItem, setActiveListItem] = useState<ListItemButtonElement>();\n  const items = baseItems?.filter((item) => Boolean(item));\n  const count = items.length;\n\n  useEffect(() => {\n    // delay appying the snap classes, otherwise snapping can occur before the user scrolls\n    const timer = setTimeout(() => setSnapClasses('snap snap-x snap-px-4 snap-mandatory'), 500);\n    return () => clearTimeout(timer);\n  }, []);\n\n  if (!count) {\n    return null;\n  }\n\n  const openModal = (id: string, el: ListItemButtonElement) => {\n    updateActiveId(id);\n    el && setActiveListItem(el);\n    onToggleModal && onToggleModal(true);\n    onViewItem && onViewItem(id);\n    updateModalOpen(true);\n  };\n  const closeModal = () => {\n    onToggleModal && onToggleModal(false);\n    updateModalOpen(false);\n    activeListItem && setTimeout(() => activeListItem.focus());\n  };\n  const activeItem: TDynamicGridItem | undefined =\n    items?.find((i) => i.id === activeId) || items?.[0];\n\n  const { is369, is4x, is2x, isOther } = getDynamicGridColumnCount(columnCount, count);\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return (\n    <section>\n      <div\n        className={cx('container overflow-hidden sm:pe-2 md:py-8 lg:py-10', {\n          [className]: !!className,\n        })}\n        data-testid=\"dynamicGridWrap\"\n        id={dynamicGridId}\n      >\n        {listHeadline && (\n          <BrandTextHeader\n            className={cx('dynamic-grid-header', mapTextAlignToClassname(textAlign), {\n              '!text-text-inverse': isDark,\n              '!dynamic-grid-header-light': isLight,\n            })}\n          >\n            {listHeadline}\n          </BrandTextHeader>\n        )}\n        {listDescription && (\n          <BrandTextBody\n            className={cx(\n              'dynamic-grid-description pe-8 sm:pe-6',\n              mapTextAlignToClassname(textAlign),\n              {\n                'text-text-inverse': isDark,\n                '!dynamic-grid-descrption-light': isLight,\n              }\n            )}\n            brandComponentTheme={brandComponentTheme}\n            {...props}\n          >\n            {listDescription}\n          </BrandTextBody>\n        )}\n\n        <div className=\"size-full\">\n          <div\n            data-testid=\"dynamicGridItemsWrap\"\n            className={cx(\n              snapClasses,\n              'grid-wrapper -mx-4 grid gap-4 overflow-hidden overflow-x-visible px-4 py-2 md:-mx-8 md:pe-1 md:ps-8',\n              `auto-cols-[85%] sm:me-0 sm:w-full sm:grid-flow-row sm:overflow-x-hidden sm:pe-0`,\n              'scroll-smooth',\n              isMobileVerticalStack ? 'grid-flow-row grid-cols-1' : 'grid-flow-col',\n              is369 ? 'sm:grid-cols-3' : null,\n              is2x ? 'sm:grid-cols-2' : null,\n              is4x ? 'sm:grid-cols-2 lg:grid-cols-4' : null,\n              isOther ? 'sm:grid-cols-2 lg:grid-cols-4' : null\n            )}\n            tabIndex={-1}\n          >\n            {items.map((item: TDynamicGridItem, index) => (\n              <AnimateRevealItem\n                key={`dynamic-grid-item${item.id}`}\n                delay={is369 ? 100 + (index % 3) * 100 : 100 + (index % 4) * 100}\n                isAnimated={isAnimated}\n                className={cx({\n                  'max-sm:translate-y-0 max-sm:opacity-100': !isMobileVerticalStack,\n                })}\n              >\n                <DynamicGridItem\n                  imageAspectRatio={imageAspectRatio}\n                  tabletImageAspectRatio={tabletImageAspectRatio}\n                  mobileImageAspectRatio={mobileImageAspectRatio}\n                  className=\"w-full sm:w-full\"\n                  onItemClick={openModal}\n                  variant={variant}\n                  brandComponentTheme={brandComponentTheme}\n                  listHeadline={listHeadline}\n                  position={index + 1}\n                  count={count}\n                  metrics={metrics}\n                  {...item}\n                />\n              </AnimateRevealItem>\n            ))}\n            <div className=\"w-4 sm:hidden md:ms-6\" />\n          </div>\n        </div>\n\n        <DialogWithContent\n          id=\"dynamicGridModalOverlay\"\n          ariaLabel={activeItem?.itemTitle ?? ''}\n          containerAspectRatio={modalImageAspectRatio}\n          imageAspectRatio={modalImageAspectRatio}\n          imageUrl={activeItem?.modalImageUrl}\n          imageAltText={activeItem?.imageAltTxt}\n          title={activeItem?.itemTitle}\n          headline={activeItem?.headline}\n          content={activeItem?.shortDescription}\n          link={activeItem?.link}\n          isOpen={isModalOpen}\n          onClose={closeModal}\n          cmsTranslationClasses={activeItem?.cmsTranslationClasses}\n          {...props}\n        />\n      </div>\n    </section>\n  );\n};\n\nexport default DynamicGrid;\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { useRef } from 'react';\nimport cx from 'classnames';\nimport { getIsReducedMotion } from '@dx-ui/utilities-accessibility';\nimport { BrandTextBody } from '@dx-ui/osc-brand-text-body';\nimport { useIntersectionObserver } from 'usehooks-ts';\nimport { DynamicImage } from './dynamic-grid-image';\nimport { Link } from '@dx-ui/osc-link';\nimport type { AspectRatio } from '@dx-ui/osc-responsive-image';\nimport type { TDynamicGridItem } from './dynamic-grid-item';\nimport { useRect } from '@dx-ui/utilities-use-rect';\nimport { HeadingLevel } from '@dx-ui/osc-heading-level';\nimport {\n  type BaseImageMetrics,\n  ANALYTICS_GLOBAL_CLICK_EVENT,\n  ImageFunction,\n  trackEvent,\n} from '@dx-ui/config-metrics';\nimport { generateDynamicGridMetrics } from './utils/dynamic-grid-analytics';\n\ntype TDynamicGridItemWithoutListeners = Omit<TDynamicGridItem, 'onItemClick' | 'onClickLink'>;\n\nexport type TDynamicGridItemWOM = TDynamicGridItemWithoutListeners & {\n  /** fade-in text animations */\n  isAnimated?: boolean;\n  /** theme for the component `dark` or `light` */\n  brandComponentTheme?: CmsBrandComponentTheme;\n  metrics?: Partial<BaseImageMetrics>;\n};\n\nexport type TDynamicGridItemAndAspectRatiosWOM = TDynamicGridItemWOM & {\n  /** The aspect ratio for the grid item images */\n  imageAspectRatio: AspectRatio;\n  tabletImageAspectRatio?: AspectRatio;\n  mobileImageAspectRatio?: AspectRatio;\n};\n\nexport const DocsTDynamicGridItemWOM: React.FC<\n  React.PropsWithChildren<TDynamicGridItemAndAspectRatiosWOM>\n> = () => null;\n\nconst DynamicGridItemWOM: React.FC<TDynamicGridItemAndAspectRatiosWOM> = (item) => {\n  const ref = useRef<React.ElementRef<'div'>>(null);\n  const rect = useRect({ ref });\n  const gridItemRef = useRef<React.ElementRef<'div'>>(null);\n\n  const {\n    id,\n    imageUrl,\n    tabletImageUrl,\n    mobileImageUrl,\n    imageAltTxt,\n    headline,\n    link,\n    captionData,\n    brandComponentTheme,\n    shortDescription,\n    isAnimated,\n    count,\n    listHeadline,\n    position,\n    metrics,\n  } = item;\n\n  const aspectRatio = item?.imageAspectRatio;\n  const tabletAspectRatio = item?.tabletImageAspectRatio;\n  const mobileAspectRatio = item?.mobileImageAspectRatio;\n  const { ref: intersectionRef } = useIntersectionObserver({\n    threshold: [1],\n    freezeOnceVisible: true,\n  });\n  const observedWrapper = !getIsReducedMotion() && isAnimated ? intersectionRef : null;\n  const headlineId = `headline${id}`;\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  const onClick = () => {\n    trackEvent(\n      ANALYTICS_GLOBAL_CLICK_EVENT,\n      generateDynamicGridMetrics({\n        position: position || 0,\n        count,\n        itemTitle: headline,\n        headline: listHeadline,\n        imageFunction: ImageFunction.Link,\n        metrics,\n      })\n    );\n  };\n\n  const handleLinkFocus = () => {\n    // Scroll to the element when focused\n    // The setTimeout is needed for this to work in Safari browser\n    setTimeout(() => {\n      gridItemRef.current?.scrollIntoView({\n        behavior: 'smooth',\n        block: 'nearest',\n        inline: 'center',\n      });\n    }, 10);\n  };\n\n  return (\n    <>\n      {item ? (\n        <div\n          className={cx(\n            'group relative flex h-full flex-col justify-between pb-5',\n            item.cmsTranslationClasses\n          )}\n          data-testid={`dynamicgrid-wom-item-${id}`}\n          key={id}\n          ref={gridItemRef}\n        >\n          <div className=\"flex flex-col\">\n            {headline && (\n              <HeadingLevel\n                headingLevelFallback={3}\n                id={headlineId}\n                data-testid={`dynamicgrid-wom-item-head-${id}`}\n                data-osc-product=\"dynamic-grid-wom-item-headline\"\n                className={cx('dynamic-grid-item-wom-header my-2', {\n                  '!text-text-inverse': isDark,\n                  'dynamic-grid-item-wom-header-light': isLight,\n                  'dynamic-grid-item-wom-header-no-desc': !shortDescription,\n                })}\n              >\n                {headline}\n              </HeadingLevel>\n            )}\n\n            <div ref={ref} className=\"order-first\">\n              {imageUrl && (\n                <DynamicImage\n                  id={id}\n                  imageUrl={imageUrl}\n                  altText={imageAltTxt}\n                  aspectRatio={aspectRatio}\n                  tabletAspectRatio={tabletAspectRatio}\n                  mobileAspectRatio={mobileAspectRatio}\n                  tabletImageUrl={tabletImageUrl}\n                  mobileImageUrl={mobileImageUrl}\n                  width={rect?.width ?? 0}\n                  captionData={captionData}\n                  className=\"brand-gu:group-hover:scale-110 brand-gu:group-hover:opacity-80 image-corner-radius duration-300 ease-in-out\"\n                />\n              )}\n            </div>\n            <div className=\"mb-2\" ref={observedWrapper}>\n              <div className=\"relative z-10 pb-4\">\n                <BrandTextBody\n                  brandComponentTheme={brandComponentTheme}\n                  className=\"!py-0 sm:!text-base lg:!text-lg\"\n                >\n                  {shortDescription || ''}\n                </BrandTextBody>\n              </div>\n            </div>\n          </div>\n\n          {link?.label && link?.url ? (\n            <Link\n              className=\"dynamic-grid-item-wom-link-text\"\n              anchorClassName={cx(\n                \"inline-block decoration-2 after:absolute after:inset-0 after:z-0 after:content-[''] hover:decoration-4 focus:decoration-4\",\n                'dynamic-grid-item-wom-link-anchor',\n                link.anchorClassName,\n                {\n                  '!text-text-inverse hover:!text-text-inverse': isDark,\n                  'dynamic-grid-item-wom-link-anchor-light': isLight,\n                  'dynamic-grid-item-wom-link-anchor-default': !isLight && !isDark,\n                }\n              )}\n              isNewWindow={link?.isNewWindow || false}\n              url={link?.url}\n              showNewWindowIcon={link?.isNewWindow || false}\n              underline={false}\n              data-testid={`dynamicgrid-wom-item-link-${id}`}\n              cidParams={link?.cidParams}\n              data-conductrics-goal={link.experimentationConfiguration?.goal}\n              data-conductrics-value={link.experimentationConfiguration?.value}\n              onFocus={handleLinkFocus}\n              onClick={(e) => {\n                if (link?.onClick) {\n                  link.onClick?.(e);\n                }\n                onClick();\n              }}\n            >\n              <div className=\"relative inline\">\n                {link.label}\n                <div\n                  className={cx(\n                    'absolute h-px w-full origin-bottom-left scale-x-100 duration-[250ms] ease-out group-hover:scale-x-0 group-hover:ease-out',\n                    'dynamic-grid-item-wom-link-label',\n                    {\n                      'dynamic-grid-item-wom-link-label-dark': isDark,\n                    }\n                  )}\n                />\n              </div>\n            </Link>\n          ) : null}\n          {item.cmsDocumentControl}\n        </div>\n      ) : null}\n    </>\n  );\n};\n\nexport { DynamicGridItemWOM };\nexport default DynamicGridItemWOM;\n","/**\n * Shamelessly copied from https://www.robinwieruch.de/react-custom-hook-check-if-overflow/\n * with slight modifications.\n */\n\nimport { useLayoutEffect, useState } from 'react';\n\nexport const useHasOverflow = <T extends HTMLElement>(\n  ref: React.RefObject<T>,\n  onlyHorizontal = false,\n  onlyVertical = false\n) => {\n  const [isOverflow, setIsOverflow] = useState<boolean | undefined>(undefined);\n\n  useLayoutEffect(() => {\n    const { current } = ref;\n\n    if (!current) return;\n\n    const trigger = () => {\n      const hasOverflowHorizontal =\n        current?.scrollWidth && current?.clientWidth\n          ? current.scrollWidth > current.clientWidth\n          : false;\n\n      const hasOverflowVertical =\n        current?.scrollHeight && current?.clientHeight\n          ? current.scrollHeight > current.clientHeight\n          : false;\n\n      if (onlyHorizontal) {\n        setIsOverflow(hasOverflowHorizontal);\n        return;\n      }\n\n      if (onlyVertical) {\n        setIsOverflow(hasOverflowVertical);\n        return;\n      }\n\n      setIsOverflow(hasOverflowHorizontal || hasOverflowVertical);\n    };\n\n    if ('ResizeObserver' in window) {\n      new ResizeObserver(trigger).observe(current);\n    }\n\n    trigger();\n  }, [onlyHorizontal, onlyVertical, ref]);\n\n  return isOverflow;\n};\n","export * from './use-has-overflow';\n","export * from './lib';\n","import { useId, useRef } from 'react';\nimport type * as React from 'react';\nimport cx from 'classnames';\nimport { useIntersectionObserver } from 'usehooks-ts';\nimport { getIsReducedMotion } from '@dx-ui/utilities-accessibility';\nimport { BrandTextBody } from '@dx-ui/osc-brand-text-body';\nimport { BrandTextHeader } from '@dx-ui/osc-brand-text-header';\nimport { BrandLink } from '@dx-ui/osc-brand-buttons';\nimport type { TDynamicGrid } from './dynamic-grid';\nimport type { Link } from '@dx-ui/osc-link';\nimport DynamicGridItemWOM, { type TDynamicGridItemWOM } from './dynamic-grid-item-wom';\nimport { mapTextAlignToClassname } from '@dx-ui/osc-textual-block';\nimport { HeadingLevelProvider } from '@dx-ui/osc-heading-level';\nimport { useHasOverflow } from '@dx-ui/utilities-use-has-overflow';\nimport type { BaseImageMetrics } from '@dx-ui/config-metrics';\nimport { getDynamicGridColumnCount } from './utils/dynamic-grid-column-count';\n\ntype TDynamicGridWithoutListeners = Omit<TDynamicGrid, 'onViewItem' | 'onToggleModal'>;\n\nexport type TDynamicGridWOM = TDynamicGridWithoutListeners & {\n  /** An array of TDynamicGridItem objects */\n  items: TDynamicGridItemWOM[];\n  /** */\n  listSubheading?: string;\n  /** Link CTA appears below component */\n  link?: Link & { experimentationConfiguration?: CmsExperimentationConfiguration };\n  /** */\n  wrapperClassName?: string;\n  /** When passed, appends metrics object to generateDynamicGrids in dynamic-grids-item-wom */\n  metrics?: Partial<BaseImageMetrics>;\n  /** Choose the number of grid columns */\n  columnCount?: 'auto' | '2' | '3' | '4';\n};\n\nexport const DocsTDynamicGridWOM: React.FC<React.PropsWithChildren<TDynamicGridWOM>> = () => null;\n\n/**\n * Dynamic Grid With-Out-Modal (WOM) creates a grid of images with content underneath in either a 3x grid (item counts of 3, 5, 6, or 9) or a 4x grid (item counts of 4, 7, or 8).\n * Recommended grid item counts of 3 to 9.\n */\nexport const DynamicGridWOM: React.FC<TDynamicGridWOM & { brandCode?: string }> = ({\n  imageAspectRatio,\n  tabletImageAspectRatio,\n  mobileImageAspectRatio,\n  items: baseItems = [],\n  isMobileVerticalStack = false,\n  className = '',\n  listHeadline,\n  listSubheading,\n  listDescription,\n  textAlign = 'left',\n  link,\n  id,\n  isAnimated = false,\n  wrapperClassName,\n  brandComponentTheme,\n  metrics,\n  columnCount = 'auto',\n  ...props\n}) => {\n  const { ref, isIntersecting: inView } = useIntersectionObserver({\n    threshold: [0.15],\n    freezeOnceVisible: true,\n  });\n  const observedWrapper = !getIsReducedMotion() && isAnimated ? ref : null;\n  const items = baseItems?.filter((item) => Boolean(item));\n  const hasLinks = items.some((item) => item.link);\n  const count = items.length;\n  const headerId = useId();\n\n  const scrollRef = useRef<HTMLDivElement>(null);\n  const hasOverflow = useHasOverflow(scrollRef);\n  const scrollSectionIsFocusable = hasOverflow && !hasLinks;\n\n  if (!count) {\n    return null;\n  }\n\n  const { is369, is4x, is2x, isOther } = getDynamicGridColumnCount(columnCount, count);\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return (\n    <section ref={observedWrapper}>\n      <div\n        className={\n          wrapperClassName ||\n          cx('brand-wa:py-16 brand-wa:xl:py-20 container overflow-hidden py-8 sm:pe-2 xl:py-12', {\n            [className]: !!className,\n          })\n        }\n        data-testid=\"dynamicGridWOM\"\n        id={id}\n      >\n        <div className=\"dynamic-grid-wom-headline-wrapper\">\n          <div className=\"dynamic-grid-wom-headline\">\n            {listHeadline ? (\n              <BrandTextHeader\n                className={cx(mapTextAlignToClassname(textAlign), 'dynamic-grid-wom-header', {\n                  'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n                    isAnimated,\n                  'translate-y-4': !inView && isAnimated,\n                  'opacity-100 translate-y-0': inView && isAnimated,\n                  '!text-text-inverse': isDark,\n                  '!dynamic-grid-wom-header-light': isLight,\n                })}\n                id={`dynamic-grid-heading-${headerId}`}\n              >\n                {listHeadline}\n              </BrandTextHeader>\n            ) : null}\n\n            {listSubheading ? (\n              <span\n                className={cx(mapTextAlignToClassname(textAlign), 'dynamic-grid-wom-subheader', {\n                  'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n                    isAnimated,\n                  'translate-y-4': !inView && isAnimated,\n                  'delay-150 opacity-100 translate-y-0': inView && isAnimated,\n                  'text-text-inverse': isDark,\n                  'dynamic-grid-wom-header-light': isLight,\n                })}\n              >\n                {listSubheading}\n              </span>\n            ) : null}\n          </div>\n\n          {listDescription ? (\n            <BrandTextBody\n              className={cx(\n                `dynamic-grid-wom-description pe-8 sm:pe-6`,\n                mapTextAlignToClassname(textAlign),\n                {\n                  'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n                    isAnimated,\n                  'translate-y-4': !inView && isAnimated,\n                  'delay-300 opacity-100 translate-y-0': inView && isAnimated,\n                  'text-text-inverse': isDark,\n                }\n              )}\n              {...props}\n              brandComponentTheme={brandComponentTheme}\n            >\n              {listDescription}\n            </BrandTextBody>\n          ) : null}\n        </div>\n\n        <div className=\"dynamic-grid-wom-grid-wrapper\">\n          <div\n            data-testid=\"dynamicGridItemsWrap\"\n            className={cx(\n              'grid-wrapper -mx-4 grid gap-4 overflow-x-auto overflow-y-hidden px-4 py-2 md:-mx-8 md:ps-8',\n              'auto-cols-[85%] sm:me-0 sm:w-full sm:grid-flow-row sm:overflow-x-hidden sm:pe-0',\n              {\n                'grid-flow-row grid-cols-1': isMobileVerticalStack,\n                'grid-flow-col': !isMobileVerticalStack,\n                'sm:grid-cols-3': is369,\n                'sm:grid-cols-2': is2x,\n                'sm:grid-cols-2 lg:grid-cols-4': is4x || isOther,\n                'text-text-inverse': isDark,\n                'dynamic-grid-wom-grid-wrap-light': isLight,\n              }\n            )}\n            tabIndex={scrollSectionIsFocusable ? 0 : -1}\n            aria-labelledby={`dynamic-grid-heading-${headerId}`}\n            ref={scrollRef}\n          >\n            <HeadingLevelProvider shouldIncreaseLevel={!!listHeadline}>\n              {items.map((item, itemIndex) => (\n                <DynamicGridItemWOM\n                  key={`dynamic-grid-item-wom${item.id}`}\n                  isAnimated={isAnimated}\n                  brandComponentTheme={brandComponentTheme}\n                  imageAspectRatio={imageAspectRatio}\n                  tabletImageAspectRatio={tabletImageAspectRatio}\n                  mobileImageAspectRatio={mobileImageAspectRatio}\n                  position={itemIndex + 1}\n                  listHeadline={listHeadline}\n                  count={count}\n                  metrics={metrics}\n                  {...item}\n                />\n              ))}\n            </HeadingLevelProvider>\n          </div>\n        </div>\n        {link?.adaDescription && link?.url && link?.label ? (\n          <div className=\"relative flex w-full justify-center\">\n            <BrandLink\n              label={link.label}\n              isNewWindow={link.isNewWindow}\n              showNewWindowIcon={link.isNewWindow}\n              url={link.url}\n              brandComponentTheme={brandComponentTheme}\n              data-conductrics-goal={link.experimentationConfiguration?.goal}\n              data-conductrics-value={link.experimentationConfiguration?.value}\n            />\n          </div>\n        ) : null}\n      </div>\n    </section>\n  );\n};\n\nexport default DynamicGridWOM;\n","export * from './dynamic-grid';\nexport * from './dynamic-grid-wom';\nexport * from './dynamic-grid-item';\nexport * from './dynamic-grid-image';\nexport * from './dynamic-grid-item-wom';\nexport * from './utils/dynamic-grid-analytics';\nexport * from './utils/dynamic-grid-column-count';\nexport * from './types/dynamic-grid-analytics';\n","export * from './lib';\n","import * as React from 'react';\n\nimport cx from 'classnames';\n\nexport function mapTextAlignToClassname(textAlign: CmsAlignContent) {\n  return {\n    'text-right': textAlign === 'right',\n    'text-left': textAlign === 'left',\n    'text-center': textAlign === 'center',\n  };\n}\n\nexport function mapTextAlignToFlexClassname(textAlign: CmsAlignContent) {\n  return {\n    'justify-start': textAlign === 'left',\n    'justify-end': textAlign === 'right',\n    'justify-center': textAlign === 'center',\n  };\n}\n\nexport type TextualBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n  textAlign: 'left' | 'right' | 'center';\n  hasBorderTrim: boolean;\n};\n\nexport const TextualBlock = React.forwardRef<HTMLDivElement, TextualBlockProps>(\n  function TextualBlock(\n    { children, brandComponentTheme, textAlign, hasBorderTrim }: TextualBlockProps,\n    ref\n  ) {\n    const isDark = brandComponentTheme === 'dark';\n    const isLight = brandComponentTheme === 'light';\n\n    return (\n      <div\n        className={cx(\n          `brand-qq:bg-[url('/modules/assets/images/curio-bg1.png')] relative bg-cover bg-no-repeat`,\n          {\n            'bg-bg-dark': isDark,\n            'bg-bg-light': isLight,\n          }\n        )}\n        data-testid=\"textBlockBackgroundClassTest\"\n      >\n        <div\n          className={cx(\n            `brand-wa:py-16 brand-wa:xl:py-20 container py-8 xl:py-12`,\n            mapTextAlignToClassname(textAlign)\n          )}\n          data-testid=\"textBlockContainer\"\n          ref={ref}\n        >\n          <div\n            className={cx('brand-qq:py-24', {\n              'outline outline-primary outline-1 px-10 py-6': hasBorderTrim,\n              '!outline-bg brand-ou:!outline-secondary': isDark,\n              'brand-qq:outline-bg brand-ht:outline-bg': isLight, //remove brand-qq:outline-bg once background image work is complete\n            })}\n          >\n            {children}\n          </div>\n        </div>\n      </div>\n    );\n  }\n);\n\nexport function makeHeadingOverrides({\n  brandComponentTheme,\n  isAnimated,\n  isInView,\n  textAlign,\n}: {\n  brandComponentTheme?: CmsBrandComponentTheme;\n  textAlign: 'left' | 'right' | 'center';\n  isAnimated: boolean;\n  isInView: boolean;\n}): Record<'h1' | 'h2' | 'h3' | 'span', { props: { className: string } }> {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  const headingStyles = cx(\n    'brand-qq:text-4xl brand-qq:tracking-wide brand-qq:px-12 brand-qq:pb-4 brand-qq:md:text-6xl brand-qq:md:px-0 brand-wa:uppercase brand-wa:font-sans brand-wa:font-light brand-wa:text-text',\n    mapTextAlignToClassname(textAlign),\n    {\n      'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n        isAnimated,\n      'translate-y-4': !isInView && isAnimated,\n      'opacity-100 translate-y-0': isInView && isAnimated,\n      '!text-text-inverse brand-wa:!text-text-inverse': isDark,\n      'brand-ht:!text-text-inverse': isLight,\n    },\n    'font-headline text-primary lg:mb-2'\n  );\n\n  return {\n    h1: {\n      props: {\n        className: cx(headingStyles, 'heading-2xl lg:heading-5xl lg:mb-2'),\n      },\n    },\n    h2: {\n      props: {\n        className: cx(headingStyles, 'heading-xl lg:heading-2xl lg:mb-2'),\n      },\n    },\n    h3: {\n      props: {\n        className: cx(headingStyles, 'heading-lg lg:heading-xl lg:mb-2'),\n      },\n    },\n    span: {\n      props: {\n        className: 'text-text py-2 sm:heading-lg lg:heading-xl block',\n      },\n    },\n  };\n}\n\nexport type TextualDescriptionBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n  textAlign: 'left' | 'right' | 'center';\n  isInView: boolean;\n  isAnimated: boolean;\n};\n\nexport function makeDescriptionClassName({\n  brandComponentTheme,\n  textAlign,\n  isInView,\n  isAnimated,\n}: Omit<TextualDescriptionBlockProps, 'children'>) {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return cx(\n    'brand-qq:text-xl brand-qq:text-primary brand-qq:tracking-wider brand-qq:pb-6 brand-qq:px-20 brand-qq:font-serif brand-qq:font-medium brand-qq:md:px-0',\n    mapTextAlignToClassname(textAlign),\n    {\n      'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n        isAnimated,\n      'translate-y-4': !isInView && isAnimated,\n      'opacity-100 translate-y-0': isInView && isAnimated,\n      'text-text-inverse brand-qq:text-text-inverse': isDark,\n      'brand-ht:text-text-inverse': isLight,\n      'brand-hp:text-brand': brandComponentTheme !== 'dark',\n    },\n    'brand-wa:font-serif brand-gi:font-serif brand-gi:font-semibold py-2 sm:text-lg lg:text-xl'\n  );\n}\n\nexport function TextualDescriptionBlock({\n  children,\n  brandComponentTheme,\n  textAlign,\n  isInView,\n  isAnimated,\n}: TextualDescriptionBlockProps) {\n  const className = makeDescriptionClassName({\n    brandComponentTheme,\n    textAlign,\n    isInView,\n    isAnimated,\n  });\n\n  return (\n    <div data-testid=\"textBlockBody\" className={className}>\n      {children}\n    </div>\n  );\n}\n\nexport type TextualOrderedListBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n  textAlign: 'left' | 'right' | 'center';\n  isInView: boolean;\n  isAnimated: boolean;\n};\n\nexport function makeOrderedListClassName({\n  isAnimated,\n  isInView,\n  brandComponentTheme,\n}: Omit<TextualOrderedListBlockProps, 'children' | 'textAlign'>) {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return cx('list-outside list-decimal py-2 ps-4 text-left', {\n    'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n      isAnimated,\n    'translate-y-4': !isInView && isAnimated,\n    'opacity-100 translate-y-0': isInView && isAnimated,\n    'text-text-inverse': isDark,\n    'brand-ht:text-text-inverse': isLight,\n  });\n}\n\nexport function TextualOrderedListBlock({\n  children,\n  textAlign,\n  isAnimated,\n  isInView,\n  brandComponentTheme,\n}: TextualOrderedListBlockProps) {\n  const className = makeOrderedListClassName({\n    isAnimated,\n    isInView,\n    brandComponentTheme,\n  });\n\n  return (\n    <div className={cx('flex items-center', mapTextAlignToFlexClassname(textAlign))}>\n      <ul className={className}>{children}</ul>\n    </div>\n  );\n}\n\nexport type TextualOrderedListItemBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n};\n\nexport function makeOrderedListItemClassName({\n  brandComponentTheme,\n}: Omit<TextualOrderedListItemBlockProps, 'children'>) {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return cx(\n    {\n      'text-text-inverse': isDark,\n      'brand-ht:text-text-inverse': isLight,\n    },\n    'brand-wa:font-serif sm:text-lg lg:text-xl',\n    {\n      'brand-hp:text-brand': brandComponentTheme !== 'dark',\n    }\n  );\n}\n\nexport function TextualOrderedListItemBlock({\n  children,\n  brandComponentTheme,\n}: TextualOrderedListItemBlockProps) {\n  const className = makeOrderedListItemClassName({ brandComponentTheme });\n\n  return (\n    <li>\n      <div data-testid=\"textBlockBody\" className={className}>\n        {children}\n      </div>\n    </li>\n  );\n}\n\nexport type TextualUnorderedListBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n  textAlign: 'left' | 'right' | 'center';\n  isInView: boolean;\n  isAnimated: boolean;\n};\n\nexport function makeUnorderedListClassName({\n  isAnimated,\n  isInView,\n  brandComponentTheme,\n}: Omit<TextualUnorderedListBlockProps, 'children' | 'textAlign'>) {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return cx('list-outside list-disc py-2 ps-5 text-left', {\n    'duration-1000 ease-in-out opacity-0 motion-reduce:transition-none motion-reduce:opacity-100':\n      isAnimated,\n    'translate-y-4': !isInView && isAnimated,\n    'opacity-100 translate-y-0': isInView && isAnimated,\n    'text-text-inverse': isDark,\n    'brand-ht:text-text-inverse': isLight,\n  });\n}\n\nexport function TextualUnorderedListBlock({\n  children,\n  textAlign,\n  isAnimated,\n  isInView,\n  brandComponentTheme,\n}: TextualUnorderedListBlockProps) {\n  const className = makeUnorderedListClassName({\n    isAnimated,\n    isInView,\n    brandComponentTheme,\n  });\n\n  return (\n    <div className={cx('flex items-center', mapTextAlignToFlexClassname(textAlign))}>\n      <ul className={className}>{children}</ul>\n    </div>\n  );\n}\n\nexport type TextualUnorderedListItemBlockProps = {\n  children: React.ReactNode;\n  brandComponentTheme?: CmsBrandComponentTheme;\n};\nexport function TextualUnorderedListItemBlock({\n  children,\n  brandComponentTheme,\n}: TextualUnorderedListItemBlockProps) {\n  const isDark = brandComponentTheme === 'dark';\n  const isLight = brandComponentTheme === 'light';\n\n  return (\n    <li>\n      <div\n        data-testid=\"textBlockBody\"\n        className={cx(\n          {\n            'text-text-inverse': isDark,\n            'brand-ht:text-text-inverse': isLight,\n          },\n          'brand-wa:font-serif brand-gi:font-serif sm:text-lg lg:text-xl',\n          {\n            'brand-hp:text-brand': brandComponentTheme !== 'dark',\n          }\n        )}\n      >\n        {children}\n      </div>\n    </li>\n  );\n}\n\nexport type TextualBlockLinkProps = React.HTMLAttributes<HTMLAnchorElement> & {\n  brandComponentTheme?: CmsBrandComponentTheme;\n};\n\nexport function makeLinkClassName({ brandComponentTheme }: TextualBlockLinkProps) {\n  return cx('underline', {\n    'text-text-inverse': brandComponentTheme === 'dark',\n    'text-primary hover:text-primary-alt brand-ht:text-text-inverse brand-ht:hover:text-text-inverse':\n      brandComponentTheme === 'light',\n    'text-primary hover:text-primary-alt ':\n      brandComponentTheme !== 'light' && brandComponentTheme !== 'dark',\n  });\n}\n\nexport function TextualBlockLink({ brandComponentTheme, ...props }: TextualBlockLinkProps) {\n  const className = makeLinkClassName({ brandComponentTheme });\n  return <a {...props} target=\"_blank\" rel=\"noopener noreferrer\" className={className} />;\n}\n","export * from './textual-block';\n","export * from './lib';\n"],"names":["AnimateRevealItem","children","delay","animationType","isAnimatedProp","isAnimated","className","isReducedMotion","getIsReducedMotion","useIntersectionObserver","threshold","freezeOnceVisible","ref","isIntersecting","intersectionRef","clipPathValue","inView","div","cx","data-testid","style","transitionDelay","clipPath","isFadeInUp","transitionTimingFunction","DynamicImage","id","imageUrl","altText","aspectRatio","tabletAspectRatio","mobileAspectRatio","tabletImageUrl","mobileImageUrl","width","captionData","sharedProps","ResponsivePicture","ResponsiveImage","generateDynamicGridMetrics","metrics","position","count","itemTitle","ANALYTICS_NO_VALUE","headline","imageFunction","ImageFunction","Modal","click","clickID","ImageClickID","Img","osc","image","type","ImageType","Dynamic","function","DynamicGridCardHeader","ar","isDark","isLight","baseClasses","positionClasses","span","item","rect","DynamicGridItem","useRef","buttonRef","useRect","t","useTranslation","onItemClick","variant","brandComponentTheme","listHeadline","imageAspectRatio","tabletImageAspectRatio","mobileImageAspectRatio","isCardLayout","button","onClick","onClickGridItem","trackEvent","ANALYTICS_GLOBAL_CLICK_EVENT","current","cmsTranslationClasses","onFocus","handleOnFocus","setTimeout","scrollIntoView","behavior","block","inline","cmsDocumentControl","getDynamicGridColumnCount","columnCount","is369","is4x","is2x","isOther","activeItem","modalImageAspectRatio","baseItems","items","isMobileVerticalStack","listDescription","textAlign","onViewItem","onToggleModal","props","useState","activeId","updateActiveId","isModalOpen","updateModalOpen","snapClasses","setSnapClasses","activeListItem","setActiveListItem","filter","Boolean","length","useEffect","timer","clearTimeout","openModal","el","find","i","section","dynamicGridId","BrandTextHeader","mapTextAlignToClassname","BrandTextBody","tabIndex","map","index","DialogWithContent","ariaLabel","containerAspectRatio","modalImageUrl","imageAltText","imageAltTxt","title","content","shortDescription","link","isOpen","onClose","closeModal","focus","DynamicGridItemWOM","gridItemRef","observedWrapper","headlineId","Link","HeadingLevel","headingLevelFallback","data-osc-product","label","url","anchorClassName","isNewWindow","showNewWindowIcon","underline","cidParams","data-conductrics-goal","experimentationConfiguration","goal","data-conductrics-value","value","handleLinkFocus","e","useHasOverflow","onlyHorizontal","onlyVertical","undefined","isOverflow","setIsOverflow","useLayoutEffect","trigger","hasOverflowHorizontal","scrollWidth","clientWidth","hasOverflowVertical","scrollHeight","clientHeight","window","ResizeObserver","observe","listSubheading","wrapperClassName","hasLinks","some","headerId","useId","scrollRef","hasOverflow","scrollSectionIsFocusable","aria-labelledby","HeadingLevelProvider","shouldIncreaseLevel","itemIndex","adaDescription","BrandLink","mapTextAlignToFlexClassname","TextualBlock","React","hasBorderTrim","makeHeadingOverrides","isInView","headingStyles","h1","h2","h3","makeDescriptionClassName","TextualDescriptionBlock","makeOrderedListClassName","TextualOrderedListBlock","ul","makeOrderedListItemClassName","TextualOrderedListItemBlock","li","makeUnorderedListClassName","TextualUnorderedListBlock","TextualUnorderedListItemBlock","makeLinkClassName"],"sourceRoot":"","ignoreList":[]}