{"version":3,"file":"static/chunks/pages/hilton-honors/credit-cards-958343cdea0f6797.js","mappings":"kRAaA,gBACA,MAAyD,OAAkB,IAC3E,WACA,EAAkB,YAAgB,CAClC,QACA,IACA,qBACA,OACA,cACA,WACA,eACA,KACA,CAAM,EACN,SAAoC,OAAoB,EACxD,OACA,cACA,UACA,CAAK,EACL,MAA2B,SAAG,CAC9B,EACA,CACA,QACA,WACA,UAAmB,OAAK,GACxB,OACA,aAAsB,aAAiB,mBACvC,SAAkC,SAAG,CAC3B,IAAS,KACnB,CACA,kBACA,4BACA,KACA,KACA,EAEA,EAEA,EAEA,iBACA,2BACA,EAAyB,YAAgB,CACzC,QACA,uBAAY,QAAsC,EAClD,SACA,MAA2B,SAAG,CACxB,IAAS,QACf,CACA,cACA,4BACA,2BACA,uBACA,qCACA,oBACA,KACA,MACA,QAAiB,OAAoB,0BACrC,EAEA,GAEA,gBACA,2BACA,EAAyB,YAAgB,CACzC,QACA,eAAY,QAA8B,EAC1C,4BACA,MAA2B,SAAG,CAAC,GAAQ,EAAI,6BAAkD,UAAS,GAAqB,SAAG,IAA2B,qBAA6C,EAAG,CACzM,GAEA,gBACA,MAA6B,YAAgB,SAC7C,uBAAU,6BAAyD,EACnE,SACA,MAAoC,UAAc,IAClD,EAAc,QAAY,OAC1B,EAAuB,OAAe,MACtC,EAAoB,QAAY,IAChC,YACA,EAAmB,QAAY,IAC/B,YACA,YACA,EAAuC,QAAY,IACnD,EAA4B,QAAY,SAwBxC,OAvBE,WAAe,MACjB,8CACA,iCACA,CAAG,KACD,OAAe,MACjB,gBACA,MACA,sBACA,8CACA,qCAEA,gCACA,6BACA,+BACA,oBACA,kBACA,YACA,wDACA,+CAEA,IACA,CACA,CAAG,aACsB,SAAG,CACxB,IAAS,KACb,CACA,uBACA,qCACA,eACA,UACA,KACA,MACA,OACA,0CAA4D,EAAO,WACnE,yCAA0D,EAAM,WAChE,WACO,CACP,aACA,EAEA,CAAC,EACD,cACA,wBACA,gBC7HA,cACA,gEACA,QAAyD,OAAgB,IACzE,MAAqD,OAAkB,IACvE,EACE,EACF,EACA,EAA0B,IAC1B,EAAgB,UAHQ,EAGQ,CAChC,GAFgD,KAGhD,SAAY,QAA0B,EAGtC,MAA2B,SAAG,aAAwB,iDAA+E,SAAG,IADxI,IACkK,OAAqC,EAAoB,SAAG,IAF9N,IAEsP,OAAmC,EAAG,CAC5R,GAEA,gBACA,cACA,QACA,EACA,CAAI,iBAEJ,EAA0B,YAAgB,CAC1C,QACA,IACA,QACA,eACA,qBACA,CAAO,CACP,iBACA,KACA,CAAM,EACN,MAA8B,OAAoB,EAClD,OACA,cACA,UACA,CAAK,EACL,MAA2B,SAAG,CAC9B,EACA,CACA,yBACA,eACA,aACA,YAAqB,aAAiB,qBACtC,SAAkC,SAAG,IAAiC,gDAAsE,SAAG,IAAkB,WAA4C,EAAG,CAChN,EAEA,GAEA,EAA4B,YAAgB,SAC5C,IACA,QACA,eACA,qBACA,CAAK,CACL,KACA,CAAI,EACJ,SAAiC,OAAoB,EACrD,OACA,cACA,UACA,CAAG,EACH,EAAyB,aAAiB,CAC1C,uBACA,KAEA,EAA0B,aAAiB,CAC3C,iCACA,KAEA,MAAyB,SAAG,CAC5B,EACA,CACA,yBACA,QACA,aACA,cACA,SAAgC,SAAG,IAAiC,iDAA4E,SAAG,IAAkB,WAA8C,EAAG,CACtN,EAEA,CAAC,EACD,WACA,EAAoB,YAAgB,CACpC,QACA,qBAAY,kDAA+E,EAC3F,EAAyB,QAAY,OACrC,EAAyB,OAAe,MACxC,OAEA,UADsB,QAAY,IAElC,EAA0B,OAAoB,iBAC9C,6BACA,eACA,0CACA,oCACA,WACA,iBACA,mBACA,QAEA,MACA,OACA,QACA,GACA,GALA,CAKA,CAEA,EACA,OACA,QATA,GAWA,KAEA,EACA,cACA,WACA,EAhBA,EAiBA,KACA,WACA,IACA,KACA,kBACA,mBACA,EACA,IAEA,KAGA,KACA,iBACA,gBACA,IAEA,KACA,iBACA,mBACA,EACA,IAEA,KAGA,KACA,eACA,gBACA,GAGA,CACA,SACA,0BACA,CAAK,EACL,MAA2B,SAAG,CAC9B,EACA,CACA,QACA,WACA,YACA,cACA,SAAkC,SAAG,SAAoB,iBAAmD,SAAG,CACrG,IAAS,KACnB,CACA,KACA,qBACA,MACA,oBACA,EACA,CAAW,CACX,EAEA,GAEA,kBACA,WACA,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","sources":["webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-collapsible@1.1.3_@types+react-dom@18.3.1_@types+react@18.3.18_react-do_b573f2f14753c843b813a0cea82ea3f0/node_modules/@radix-ui/react-collapsible/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-accordion@1.2.3_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-accordion/dist/index.mjs","webpack://_N_E/./components/CreditCardsV2/helpers.tsx","webpack://_N_E/./components/CreditCardsV2/MoreDetails.tsx","webpack://_N_E/./components/CreditCardsV2/CardBreakdown.tsx","webpack://_N_E/./components/CreditCardsV2/CardGroup/Card.tsx","webpack://_N_E/./components/CreditCardsV2/BuiltInBenefits.tsx","webpack://_N_E/./components/CreditCardsV2/CardGroup/CardGroup.tsx","webpack://_N_E/./components/CreditCardsV2/EarningPoints.tsx","webpack://_N_E/./components/CreditCardsV2/WelcomeOffer.tsx","webpack://_N_E/./components/CreditCardsV2/CardComparison.tsx","webpack://_N_E/./components/CreditCardsV2/CardDisplay.tsx","webpack://_N_E/./hooks/useScrollBarHorizontal.tsx","webpack://_N_E/./components/CreditCardsV2/CardDisplayJa.tsx","webpack://_N_E/./components/CreditCardsV2/InternationalCards.tsx","webpack://_N_E/./components/CreditCardsV2/Disclaimer.tsx","webpack://_N_E/./components/CreditCardsV2/index.tsx","webpack://_N_E/./views/credit-cards/credit-cards-en.tsx","webpack://_N_E/./components/CreditCardsV2/CardBreakdownJa/MoreDetailsJa.tsx","webpack://_N_E/./components/CreditCardsV2/CardBreakdownJa/CardDetailsJa.tsx","webpack://_N_E/./components/CreditCardsV2/CardBreakdownJa/index.tsx","webpack://_N_E/./components/CreditCardsV2/CardComparisonJA/CardComparisonDetailsJA.tsx","webpack://_N_E/./components/CreditCardsV2/CardComparisonJA/CardJA.tsx","webpack://_N_E/./components/CreditCardsV2/CardComparisonJA/index.tsx","webpack://_N_E/./views/credit-cards/credit-cards-ja.tsx","webpack://_N_E/./pages/hilton-honors/credit-cards.tsx","webpack://_N_E/?0628","webpack://_N_E/../../libs/osc/caption/src/lib/caption.tsx","webpack://_N_E/../../libs/osc/caption/src/lib/index.ts","webpack://_N_E/../../libs/osc/caption/src/index.ts","webpack://_N_E/./components/Head/Head.tsx","webpack://_N_E/../../libs/osc/accordion/src/lib/accordion.tsx","webpack://_N_E/../../libs/osc/accordion/src/index.ts"],"sourcesContent":["\"use client\";\n\n// packages/react/collapsible/src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeCollapsible,\n      open: openProp,\n      defaultOpen,\n      disabled,\n      onOpenChange,\n      ...collapsibleProps\n    } = props;\n    const [open = false, setOpen] = useControllableState({\n      prop: openProp,\n      defaultProp: defaultOpen,\n      onChange: onOpenChange\n    });\n    return /* @__PURE__ */ jsx(\n      CollapsibleProvider,\n      {\n        scope: __scopeCollapsible,\n        disabled,\n        contentId: useId(),\n        open,\n        onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n        children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            \"data-state\": getState(open),\n            \"data-disabled\": disabled ? \"\" : void 0,\n            ...collapsibleProps,\n            ref: forwardedRef\n          }\n        )\n      }\n    );\n  }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeCollapsible, ...triggerProps } = props;\n    const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n    return /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        \"aria-controls\": context.contentId,\n        \"aria-expanded\": context.open || false,\n        \"data-state\": getState(context.open),\n        \"data-disabled\": context.disabled ? \"\" : void 0,\n        disabled: context.disabled,\n        ...triggerProps,\n        ref: forwardedRef,\n        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n      }\n    );\n  }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { forceMount, ...contentProps } = props;\n    const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n  }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n  const { __scopeCollapsible, present, children, ...contentProps } = props;\n  const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n  const [isPresent, setIsPresent] = React.useState(present);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  const heightRef = React.useRef(0);\n  const height = heightRef.current;\n  const widthRef = React.useRef(0);\n  const width = widthRef.current;\n  const isOpen = context.open || isPresent;\n  const isMountAnimationPreventedRef = React.useRef(isOpen);\n  const originalStylesRef = React.useRef(void 0);\n  React.useEffect(() => {\n    const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n    return () => cancelAnimationFrame(rAF);\n  }, []);\n  useLayoutEffect(() => {\n    const node = ref.current;\n    if (node) {\n      originalStylesRef.current = originalStylesRef.current || {\n        transitionDuration: node.style.transitionDuration,\n        animationName: node.style.animationName\n      };\n      node.style.transitionDuration = \"0s\";\n      node.style.animationName = \"none\";\n      const rect = node.getBoundingClientRect();\n      heightRef.current = rect.height;\n      widthRef.current = rect.width;\n      if (!isMountAnimationPreventedRef.current) {\n        node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n        node.style.animationName = originalStylesRef.current.animationName;\n      }\n      setIsPresent(present);\n    }\n  }, [context.open, present]);\n  return /* @__PURE__ */ jsx(\n    Primitive.div,\n    {\n      \"data-state\": getState(context.open),\n      \"data-disabled\": context.disabled ? \"\" : void 0,\n      id: context.contentId,\n      hidden: !isOpen,\n      ...contentProps,\n      ref: composedRefs,\n      style: {\n        [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n        [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n        ...props.style\n      },\n      children: isOpen && children\n    }\n  );\n});\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n  Collapsible,\n  CollapsibleContent,\n  CollapsibleTrigger,\n  Content,\n  Root,\n  Trigger,\n  createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/accordion/src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n  createCollectionScope,\n  createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n  (props, forwardedRef) => {\n    const { type, ...accordionProps } = props;\n    const singleProps = accordionProps;\n    const multipleProps = accordionProps;\n    return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n  }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n  ACCORDION_NAME,\n  { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      value: valueProp,\n      defaultValue,\n      onValueChange = () => {\n      },\n      collapsible = false,\n      ...accordionSingleProps\n    } = props;\n    const [value, setValue] = useControllableState({\n      prop: valueProp,\n      defaultProp: defaultValue,\n      onChange: onValueChange\n    });\n    return /* @__PURE__ */ jsx(\n      AccordionValueProvider,\n      {\n        scope: props.__scopeAccordion,\n        value: value ? [value] : [],\n        onItemOpen: setValue,\n        onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n        children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n      }\n    );\n  }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n  const {\n    value: valueProp,\n    defaultValue,\n    onValueChange = () => {\n    },\n    ...accordionMultipleProps\n  } = props;\n  const [value = [], setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue,\n    onChange: onValueChange\n  });\n  const handleItemOpen = React.useCallback(\n    (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n    [setValue]\n  );\n  const handleItemClose = React.useCallback(\n    (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n    [setValue]\n  );\n  return /* @__PURE__ */ jsx(\n    AccordionValueProvider,\n    {\n      scope: props.__scopeAccordion,\n      value,\n      onItemOpen: handleItemOpen,\n      onItemClose: handleItemClose,\n      children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n    }\n  );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n    const accordionRef = React.useRef(null);\n    const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n    const getItems = useCollection(__scopeAccordion);\n    const direction = useDirection(dir);\n    const isDirectionLTR = direction === \"ltr\";\n    const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n      if (!ACCORDION_KEYS.includes(event.key)) return;\n      const target = event.target;\n      const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n      const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n      const triggerCount = triggerCollection.length;\n      if (triggerIndex === -1) return;\n      event.preventDefault();\n      let nextIndex = triggerIndex;\n      const homeIndex = 0;\n      const endIndex = triggerCount - 1;\n      const moveNext = () => {\n        nextIndex = triggerIndex + 1;\n        if (nextIndex > endIndex) {\n          nextIndex = homeIndex;\n        }\n      };\n      const movePrev = () => {\n        nextIndex = triggerIndex - 1;\n        if (nextIndex < homeIndex) {\n          nextIndex = endIndex;\n        }\n      };\n      switch (event.key) {\n        case \"Home\":\n          nextIndex = homeIndex;\n          break;\n        case \"End\":\n          nextIndex = endIndex;\n          break;\n        case \"ArrowRight\":\n          if (orientation === \"horizontal\") {\n            if (isDirectionLTR) {\n              moveNext();\n            } else {\n              movePrev();\n            }\n          }\n          break;\n        case \"ArrowDown\":\n          if (orientation === \"vertical\") {\n            moveNext();\n          }\n          break;\n        case \"ArrowLeft\":\n          if (orientation === \"horizontal\") {\n            if (isDirectionLTR) {\n              movePrev();\n            } else {\n              moveNext();\n            }\n          }\n          break;\n        case \"ArrowUp\":\n          if (orientation === \"vertical\") {\n            movePrev();\n          }\n          break;\n      }\n      const clampedIndex = nextIndex % triggerCount;\n      triggerCollection[clampedIndex].ref.current?.focus();\n    });\n    return /* @__PURE__ */ jsx(\n      AccordionImplProvider,\n      {\n        scope: __scopeAccordion,\n        disabled,\n        direction: dir,\n        orientation,\n        children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            ...accordionProps,\n            \"data-orientation\": orientation,\n            ref: composedRefs,\n            onKeyDown: disabled ? void 0 : handleKeyDown\n          }\n        ) })\n      }\n    );\n  }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, value, ...accordionItemProps } = props;\n    const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n    const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    const triggerId = useId();\n    const open = value && valueContext.value.includes(value) || false;\n    const disabled = accordionContext.disabled || props.disabled;\n    return /* @__PURE__ */ jsx(\n      AccordionItemProvider,\n      {\n        scope: __scopeAccordion,\n        open,\n        disabled,\n        triggerId,\n        children: /* @__PURE__ */ jsx(\n          CollapsiblePrimitive.Root,\n          {\n            \"data-orientation\": accordionContext.orientation,\n            \"data-state\": getState(open),\n            ...collapsibleScope,\n            ...accordionItemProps,\n            ref: forwardedRef,\n            disabled,\n            open,\n            onOpenChange: (open2) => {\n              if (open2) {\n                valueContext.onItemOpen(value);\n              } else {\n                valueContext.onItemClose(value);\n              }\n            }\n          }\n        )\n      }\n    );\n  }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...headerProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n    return /* @__PURE__ */ jsx(\n      Primitive.h3,\n      {\n        \"data-orientation\": accordionContext.orientation,\n        \"data-state\": getState(itemContext.open),\n        \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n        ...headerProps,\n        ref: forwardedRef\n      }\n    );\n  }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...triggerProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n    const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n      CollapsiblePrimitive.Trigger,\n      {\n        \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n        \"data-orientation\": accordionContext.orientation,\n        id: itemContext.triggerId,\n        ...collapsibleScope,\n        ...triggerProps,\n        ref: forwardedRef\n      }\n    ) });\n  }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...contentProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    return /* @__PURE__ */ jsx(\n      CollapsiblePrimitive.Content,\n      {\n        role: \"region\",\n        \"aria-labelledby\": itemContext.triggerId,\n        \"data-orientation\": accordionContext.orientation,\n        ...collapsibleScope,\n        ...contentProps,\n        ref: forwardedRef,\n        style: {\n          [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n          [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n          ...props.style\n        }\n      }\n    );\n  }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n  Accordion,\n  AccordionContent,\n  AccordionHeader,\n  AccordionItem,\n  AccordionTrigger,\n  Content2 as Content,\n  Header,\n  Item,\n  Root2 as Root,\n  Trigger2 as Trigger,\n  createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","import type { ImageLoaderProps } from 'next/legacy/image';\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/gql-types';\n\nexport type CreditCardsByLanguageType = {\n  title: 'personalCardsTitle' | 'businessCardsTitle';\n  metrics?: string[];\n  cards: OffersCreditCardGroup[];\n}[];\n\nexport const ImageLoader = ({ src, width, quality }: ImageLoaderProps) =>\n  `${src}?w=${width}&q=${quality || 75}`;\n\nexport const creditCardTypes = ['hh', 'hhsurpass', 'hhaspire', 'hhbusiness'];\nexport const creditCardTypes2 = {\n  en: [\n    { title: 'personalCardsTitle', cardType: 'personal', metrics: ['hh', 'hhsurpass', 'hhaspire'] },\n    { title: 'businessCardsTitle', cardType: 'business', metrics: ['hhbusiness'] },\n  ],\n  ja: [{ cardType: null, metrics: [], title: null }],\n};\n\nexport const getCreditCardsByLanguage = ({\n  creditCardsContent,\n  language = 'en',\n}: {\n  creditCardsContent: OffersCreditCardGroup[];\n  language: string;\n}) => {\n  return creditCardTypes2[language].map((cardType) => {\n    const cards: OffersCreditCardGroup[] =\n      creditCardsContent?.filter((card) => card?.cardType === cardType.cardType) || [];\n\n    return {\n      title: cardType.title,\n      metrics: cardType.metrics,\n      cards,\n    };\n  });\n};\n\nexport const getFilteredSegmentCrediCardContent = (\n  offersCreditCard: OffersCreditCardGroup,\n  segments: string[]\n): OffersCreditCard => {\n  if (!segments.length || offersCreditCard?.items.length === 1)\n    return offersCreditCard?.items[0] as OffersCreditCard;\n\n  return (\n    offersCreditCard?.items?.find((card) =>\n      card?.segmentIds?.find((segmentId) => segments?.includes(segmentId))\n    ) || (offersCreditCard?.items[0] as OffersCreditCard)\n  );\n};\n","import { useMemo } from 'react';\nimport { ReactSVG } from 'react-svg';\nimport { Accordion } from '@dx-ui/osc-accordion';\nimport { Markdown } from '@dx-ui/osc-markdown';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport { useLanguage } from '../../hooks';\nimport { getUrlHost } from '../../utils/helpers/urlBuilder';\n\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\ntype Props = {\n  cardName?: string | null;\n  language?: SupportedLanguage;\n  builtInBenefits?: {\n    heading?: string | null;\n  };\n  breakDown?: {\n    builtInBenefits?: string[];\n    earningBenefits?: string[];\n  };\n  earningStructure?: {\n    heading?: string;\n    subheading?: string;\n  };\n};\n\nconst TierCallout = ({\n  children,\n  tier,\n}: {\n  children: React.ReactNode;\n  tier: 'Silver' | 'Gold' | 'Diamond';\n}) => {\n  if (!children) return null;\n  return (\n    <>\n      {tier && (tier === 'Silver' || tier === 'Gold' || tier === 'Diamond') ? (\n        <ReactSVG\n          aria-hidden\n          className={cx('relative top-1 -ml-0.5 inline-block', {\n            'text-tier-silver': tier === 'Silver',\n            'text-tier-gold': tier === 'Gold',\n            'text-tier-diamond': tier === 'Diamond',\n          })}\n          src=\"/dx_guests_app/images/banner.svg\"\n        />\n      ) : null}\n      <strong>{children}</strong>\n    </>\n  );\n};\n\nexport const MoreDetails = ({ builtInBenefits, earningStructure, breakDown, cardName }: Props) => {\n  const language = useLanguage();\n  const [t] = useTranslation('credit-cards');\n  const cardFeaturesContent = useMemo(\n    () => (\n      <>\n        <h5 className=\"mb-2 font-black sm:mt-4 rtl:text-right\">\n          {builtInBenefits?.heading ? (\n            <Markdown origin={getUrlHost()} language={language}>\n              {builtInBenefits?.heading}\n            </Markdown>\n          ) : null}\n        </h5>\n        <ul className=\"ml-4 list-outside list-disc text-text\">\n          {breakDown?.builtInBenefits?.filter(Boolean).map((benefit) => {\n            const tier = benefit.match(/\\*\\*(silver|gold|diamond)\\*\\*/i);\n            return (\n              <li key={benefit} className=\"w-fit [direction:ltr]\">\n                <Markdown\n                  origin={getUrlHost()}\n                  language={language}\n                  options={{\n                    overrides: {\n                      strong: {\n                        component: TierCallout,\n                        props: { tier: tier?.[1] },\n                      },\n                    },\n                  }}\n                >\n                  {benefit}\n                </Markdown>\n              </li>\n            );\n          })}\n        </ul>\n\n        <h5 className=\"mt-4 font-black rtl:text-right\">\n          {earningStructure?.heading ? (\n            <Markdown origin={getUrlHost()} language={language}>\n              {earningStructure?.heading}\n            </Markdown>\n          ) : null}\n        </h5>\n        <p className=\"mb-4 text-sm text-text-alt rtl:text-right\">{earningStructure?.subheading}</p>\n        <ul className=\"ml-4 list-disc text-text\">\n          {breakDown?.earningBenefits?.map((benefit) => (\n            <li key={benefit} className=\"w-fit [direction:ltr]\">\n              {benefit ? (\n                <Markdown\n                  origin={getUrlHost()}\n                  language={language}\n                  options={{\n                    overrides: {\n                      strong: {\n                        props: {\n                          className: 'text-primary',\n                        },\n                      },\n                    },\n                  }}\n                >\n                  {benefit}\n                </Markdown>\n              ) : null}\n            </li>\n          ))}\n        </ul>\n      </>\n    ),\n    [\n      builtInBenefits?.heading,\n      language,\n      breakDown?.builtInBenefits,\n      breakDown?.earningBenefits,\n      earningStructure?.heading,\n      earningStructure?.subheading,\n    ]\n  );\n\n  return (\n    <>\n      <Accordion\n        className=\"accordion-single mx-auto mb-0 mt-3 w-32 justify-center text-tertiary sm:hidden\"\n        items={[\n          {\n            collapsedButtonAccessibleLabel: t('screenReader.moreDetailsCollapsed', { cardName }),\n            collapsedButtonLabel: t('moreDetailsOpen'),\n            content: (\n              <section className=\"mt-8 rounded-xl border border-text-disabled px-3 py-4 text-left sm:mt-0 sm:rounded-none sm:border-none sm:p-0 rtl:text-center rtl:sm:text-right\">\n                {cardFeaturesContent}\n              </section>\n            ),\n            expandedButtonLabel: t('moreDetailsClose'),\n            expandedButtonAccessibleLabel: t('screenReader.moreDetailsExpanded', { cardName }),\n            key: 'more-details',\n          },\n        ]}\n        type=\"multiple\"\n      />\n      <section className=\"mt-8 hidden rounded-xl border border-text-disabled px-3 py-4 text-left sm:mt-0 sm:block sm:rounded-none sm:border-none sm:p-0 rtl:text-center rtl:sm:text-right\">\n        {cardFeaturesContent}\n      </section>\n    </>\n  );\n};\n","import { Trans, useTranslation } from 'next-i18next';\nimport Image from 'next/legacy/image';\nimport { useMemo } from 'react';\n\nimport { Link } from '@dx-ui/osc-link';\nimport { Markdown } from '@dx-ui/osc-markdown';\n\nimport { useLanguage, useMetrics, useSegments } from '../../hooks';\nimport { Goals } from '../../types/Conductrics';\nimport { GoalByCardName, sendConductricsReward } from '../../utils/helpers/conductrics';\nimport { getUrlHost } from '../../utils/helpers/urlBuilder';\nimport { creditCardTypes, getFilteredSegmentCrediCardContent, ImageLoader } from './helpers';\nimport { MoreDetails } from './MoreDetails';\n\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\n\ntype CardListProps = {\n  cardData: OffersCreditCard;\n  actionDetail?: string;\n};\n\nconst CardDetails = ({ cardData, actionDetail }: CardListProps) => {\n  const { attributes, cardName, cardBreakdownBlocks, feeDescription, images, link, cardType } =\n    cardData;\n  const [\n    cardBreakdownHeading,\n    ,\n    ,\n    ,\n    builtInBenefitsHeading,\n    builtInBenefitsContent,\n    earningstructureHeading,\n    earningstructureSubHeading,\n    earningstructureContent,\n  ] = cardBreakdownBlocks;\n  const language = useLanguage();\n  const [t] = useTranslation('credit-cards');\n  const { metrics } = useMetrics();\n  const applyNowLink = link[0];\n  const otherLinks = link?.slice(1, link.length);\n\n  return (\n    <section className=\"flex flex-col gap-20 border-b border-border py-6 text-center sm:flex-row sm:text-left\">\n      <div className=\"mx-auto w-2/3 flex-none sm:mx-0 sm:w-96\">\n        {images?.[0]?.image?.image?.variants &&\n        images?.[0]?.image?.image?.variants?.tabs[0]?.cdnLink &&\n        images?.[0]?.altText ? (\n          <div className=\"relative min-h-36 max-w-64 sm:min-h-72 sm:max-w-96 ltr:left-1/2 ltr:-translate-x-1/2 rtl:right-1/2 rtl:translate-x-1/2\">\n            <Image\n              id={`card-${cardName}`}\n              src={images?.[0]?.image?.image?.variants?.tabs[0]?.cdnLink}\n              alt={images?.[0]?.altText}\n              loader={ImageLoader}\n              layout=\"fill\"\n              objectFit=\"contain\"\n            />\n          </div>\n        ) : null}\n\n        {/* “Apply Now” CTA and T&C links for desktop — hidden on mobile */}\n        <div className=\"my-4 hidden items-center justify-between sm:flex\">\n          <span className=\"font-bold\">{feeDescription}</span>\n          {link?.[0]?.linkUrl ? (\n            <Link\n              onClick={() => {\n                sendConductricsReward(Goals.CreditCardApplyNow);\n                if (cardName) {\n                  sendConductricsReward(GoalByCardName[cardName]);\n                }\n                metrics.setProperty(\n                  'page.attributes.actionDetail',\n                  `breakdown:apply:${actionDetail}`\n                );\n                metrics.setEventAction([{ eventAction: 'homeclick' }]);\n                metrics.trackEvent('homeclick');\n              }}\n              adaDescription={link?.[0]?.adaDescription || ''}\n              className=\"btn btn-lg btn-primary px-4 no-underline hover:bg-secondary-alt\"\n              isNewWindow={link?.[0]?.isNewWindow || false}\n              url={link?.[0]?.linkUrl}\n              cidParams={{\n                campaignId: link?.[0]?.campaignId as string,\n                componentName: 'CardBreakdown',\n              }}\n            >\n              {link?.[0]?.linkLabel}\n            </Link>\n          ) : null}\n        </div>\n        {otherLinks && otherLinks?.length > 0 ? (\n          <div className=\"hidden sm:flex sm:justify-between\">\n            {otherLinks?.map(({ adaDescription, linkLabel, linkUrl, isNewWindow, campaignId }) => (\n              <Link\n                adaDescription={adaDescription || ''}\n                className=\"whitespace-nowrap px-1 text-sm text-tertiary hover:text-secondary-alt\"\n                key={`card-${cardName}-${linkLabel}-link`}\n                isNewWindow={isNewWindow || false}\n                onClick={() => sendConductricsReward(Goals.CreditCardTermsAndConditions)}\n                url={linkUrl}\n                cidParams={{ campaignId: campaignId as string, componentName: 'CardBreakdown' }}\n              >\n                {linkLabel}\n              </Link>\n            ))}\n          </div>\n        ) : null}\n        {cardType !== 'business' ? (\n          <p className=\"pt-4 text-text\">\n            <Trans t={t} i18nKey=\"noCreditImpact\" components={[<strong key=\"first\" />]} />\n          </p>\n        ) : null}\n      </div>\n      <div className=\"max-w-prose flex-none sm:flex-1 rtl:text-center rtl:sm:text-right\">\n        {cardBreakdownBlocks && cardBreakdownBlocks.length ? (\n          <>\n            <h4 className=\"scroll-mt-52 text-xl font-extrabold sm:scroll-mt-12\">\n              {cardBreakdownHeading?.heading}\n            </h4>\n            <p className=\"text-lg\">{cardBreakdownBlocks?.[1]?.description}</p>\n            {attributes[0] === 'limitedTimeOffer' ? (\n              <p className=\"mx-auto my-4 max-w-fit rounded-full border-2 border-primary px-4 py-1 font-extrabold text-primary sm:mx-0\">\n                {t('limitedTimeOffer')}\n              </p>\n            ) : null}\n            <p className=\"my-4 font-bold sm:hidden\">{feeDescription}</p>\n            {cardBreakdownBlocks?.[2]?.heading ? (\n              <h5 className=\"mb-2 mt-4 font-extrabold\">\n                <Markdown\n                  origin={getUrlHost()}\n                  language={language}\n                  options={{\n                    overrides: {\n                      strong: {\n                        props: {\n                          className: 'text-primary',\n                        },\n                      },\n                    },\n                  }}\n                >\n                  {cardBreakdownBlocks?.[2]?.heading}\n                </Markdown>\n              </h5>\n            ) : null}\n            <p className=\"text-sm text-text-alt\">{cardBreakdownBlocks?.[3]?.description}</p>\n\n            <MoreDetails\n              cardName={cardName}\n              builtInBenefits={{ heading: builtInBenefitsHeading?.heading }}\n              breakDown={{\n                builtInBenefits: builtInBenefitsContent?.unorderedList,\n                earningBenefits: earningstructureContent?.unorderedList,\n              }}\n              earningStructure={{\n                heading: earningstructureHeading?.heading || '',\n                subheading: earningstructureSubHeading?.description || '',\n              }}\n            />\n          </>\n        ) : null}\n\n        {/* “Apply Now” CTA and T&C links for mobile — hidden on desktop */}\n        <section className=\"sm:hidden\">\n          {applyNowLink?.linkUrl ? (\n            <Link\n              className=\"btn btn-sm btn-primary mt-4 px-4 text-base no-underline\"\n              url={applyNowLink?.linkUrl}\n              onClick={() => {\n                sendConductricsReward(Goals.CreditCardApplyNow);\n                if (cardName) {\n                  const cardNameOnly = cardName.substring(0, cardName.lastIndexOf(' '));\n                  sendConductricsReward(GoalByCardName[cardNameOnly]);\n                }\n              }}\n              cidParams={{\n                campaignId: applyNowLink?.campaignId as string,\n                componentName: 'CardBreakdown',\n              }}\n              {...(applyNowLink?.isNewWindow\n                ? {\n                    target: '_blank',\n                    rel: 'noopener noreferrer',\n                    'aria-label': `${applyNowLink?.adaDescription}, ${t('opensInNewWindow')}`,\n                  }\n                : { 'aria-label': applyNowLink?.adaDescription || '' })}\n            >\n              {applyNowLink?.linkLabel}\n            </Link>\n          ) : null}\n          {otherLinks && otherLinks?.length > 0 ? (\n            <div className=\"m-4 flex justify-between\">\n              {otherLinks.map(({ adaDescription, linkLabel, linkUrl, isNewWindow, campaignId }) => (\n                <Link\n                  adaDescription={adaDescription || ''}\n                  className=\"whitespace-nowrap px-1 text-sm text-tertiary hover:text-secondary-alt\"\n                  key={`card-${cardName}-${linkLabel}-link`}\n                  isNewWindow={isNewWindow || false}\n                  url={linkUrl}\n                  cidParams={{ campaignId: campaignId as string, componentName: 'CardBreakdown' }}\n                >\n                  {linkLabel}\n                </Link>\n              ))}\n            </div>\n          ) : null}\n          {cardType !== 'business' ? (\n            <p className=\"px-2 text-left text-text\">\n              <Trans t={t} i18nKey=\"noCreditImpact\" components={[<strong key=\"first\" />]} />\n            </p>\n          ) : null}\n        </section>\n      </div>\n    </section>\n  );\n};\n\nexport const CardBreakdown = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards');\n  const segments = useSegments();\n\n  const displayCardContent = useMemo(() => {\n    const personalCards = creditCards?.filter((card) => card?.cardType === 'personal') || [];\n    const businessCards = creditCards?.filter((card) => card?.cardType === 'business') || [];\n\n    return (\n      <section className=\"flex flex-col\">\n        <h2 className=\"mb-4 text-center font-headline text-3xl text-primary sm:text-left rtl:sm:text-right\">\n          {t('cardBreakdown.title')}\n        </h2>\n        <h3 className=\"text-center text-xl font-bold sm:text-left rtl:sm:text-right\">\n          {t('cardBreakdown.personalCardsTitle', { count: personalCards?.length })}\n        </h3>\n        {personalCards.map((cardData, index) => {\n          const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n            cardData,\n            segments\n          );\n          return (\n            <CardDetails\n              key={`card-breakdown-${creditCardContent?.cardName}`}\n              cardData={creditCardContent}\n              actionDetail={creditCardTypes[index]}\n            />\n          );\n        })}\n        <h3 className=\"mt-6 text-center text-xl font-bold sm:text-left rtl:sm:text-right\">\n          {t('cardBreakdown.businessCardsTitle', { count: businessCards?.length })}\n        </h3>\n        {businessCards.map((cardData) => {\n          const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n            cardData,\n            segments\n          );\n          return (\n            <CardDetails\n              key={`card-breakdown-${creditCardContent?.cardName}`}\n              cardData={creditCardContent}\n              actionDetail={creditCardTypes[3]}\n            />\n          );\n        })}\n      </section>\n    );\n  }, [creditCards, t, segments]);\n\n  return displayCardContent;\n};\n","import Image from 'next/legacy/image';\n\nimport { Link } from '@dx-ui/osc-link';\n\nimport { useMetrics } from '../../../hooks';\nimport { Goals } from '../../../types/Conductrics';\nimport { GoalByCardName, sendConductricsReward } from '../../../utils/helpers/conductrics';\n\nimport type { OffersCreditCard } from '@dx-ui/gql-types';\nimport { ImageLoader } from '../helpers';\n\ntype Props = {\n  children: React.ReactNode;\n  card: OffersCreditCard;\n  className?: string;\n  actionDetail?: string;\n};\n\nexport const Card = ({ card, className, actionDetail, children }: Props) => {\n  const { metrics } = useMetrics();\n\n  const { cardName, link, images, feeDescription } = card;\n  const applyNowLink = link[0];\n  const otherLinks = link.slice(1, link.length);\n\n  return (\n    <div className={`items-center text-center ${className}`}>\n      {images[0]?.image?.image?.variants && images[0]?.altText ? (\n        <div className=\"relative min-h-[155px] max-w-[220px] ltr:left-1/2 ltr:-translate-x-1/2 rtl:right-1/2 rtl:translate-x-1/2\">\n          <Image\n            src={images[0]?.image?.image?.variants?.tabs[0]?.cdnLink || ''}\n            alt={images[0]?.altText}\n            loader={ImageLoader}\n            layout=\"fill\"\n            objectFit=\"contain\"\n          />\n        </div>\n      ) : null}\n      <h5 className=\"text-base font-bold\">{cardName}</h5>\n      <span className=\"mb-4 block text-sm font-bold\">{feeDescription}</span>\n      {applyNowLink?.linkUrl ? (\n        <Link\n          className=\"btn btn-sm btn-primary px-4 text-base hover:bg-secondary-alt\"\n          url={applyNowLink?.linkUrl}\n          underline={false}\n          cidParams={{ campaignId: applyNowLink?.campaignId as string, componentName: 'Card' }}\n          isNewWindow={applyNowLink?.isNewWindow || false}\n          onClick={() => {\n            sendConductricsReward(Goals.CreditCardApplyNow);\n            cardName && sendConductricsReward(GoalByCardName[cardName]);\n            metrics.setProperty('page.attributes.actionDetail', `${actionDetail}`);\n            metrics.setEventAction([{ eventAction: 'homeclick' }]);\n            metrics.trackEvent('homeclick');\n          }}\n        >\n          {applyNowLink?.linkLabel}\n        </Link>\n      ) : null}\n      {otherLinks && otherLinks?.length > 0 ? (\n        <div className=\"mt-4 flex flex-col divide-border\">\n          {otherLinks?.map((link) => (\n            <Link\n              adaDescription={link?.adaDescription || ''}\n              className=\"whitespace-nowrap px-0.5 text-xs text-tertiary hover:text-secondary-alt\"\n              key={`card-${cardName}-${link?.linkLabel}-link`}\n              isNewWindow={link?.isNewWindow || false}\n              onClick={() => sendConductricsReward(Goals.CreditCardTermsAndConditions)}\n              url={link?.linkUrl}\n              cidParams={{ campaignId: link?.campaignId as string, componentName: 'Card' }}\n            >\n              {link?.linkLabel}\n            </Link>\n          ))}\n        </div>\n      ) : null}\n      <div className=\"flex justify-center px-3 sm:px-0 lg:px-3\">{children}</div>\n    </div>\n  );\n};\n","import { useSegments } from '../../hooks';\nimport Icon from '@dx-ui/osc-icon';\nimport { Card } from './CardGroup/Card';\nimport { creditCardTypes, getFilteredSegmentCrediCardContent } from './helpers';\n\nimport type {\n  OffersCreditCard,\n  OffersCreditCardBuiltinBenefitsBlock,\n  OffersCreditCardGroup,\n} from '@dx-ui/gql-types';\ntype Props = {\n  cardType: string;\n  cards: OffersCreditCardGroup[];\n};\n\ntype BenefitsProps = {\n  builtInBenefits: OffersCreditCardBuiltinBenefitsBlock[];\n};\n\nexport const BuiltInBenefits = ({ cards, cardType }: Props) => {\n  const segments = useSegments();\n  return cards?.map((card, index) => {\n    const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(card, segments);\n    return (\n      <Card\n        key={`${cardType}-cards-built-in-benefits-${creditCardContent?.cardName}`}\n        card={creditCardContent}\n        actionDetail={`compare:benefits:apply:${\n          cardType === 'personal' ? creditCardTypes[index] : creditCardTypes[3]\n        }`}\n      >\n        <BuiltInDetails builtInBenefits={creditCardContent?.builtinBenefitsBlocks} />\n      </Card>\n    );\n  });\n};\n\nconst BuiltInDetails = ({ builtInBenefits }: BenefitsProps) => {\n  return (\n    <div className=\"mt-6 w-80 max-w-xs text-text sm:w-auto\">\n      <div className=\"mb-6\">\n        <h6 className=\"text-xl font-bold\">{builtInBenefits[0]?.heading}</h6>\n        {builtInBenefits[1]?.description ? (\n          <p className=\"text-sm font-normal\">{builtInBenefits[1]?.description} </p>\n        ) : null}\n      </div>\n      <ul className=\"text-left text-lg rtl:text-right\">\n        {builtInBenefits[2]?.unorderedList?.map((benefit) => (\n          <li key={benefit} className=\"relative mb-6 flex font-normal leading-6 \">\n            <Icon\n              name=\"checkmark-heavy\"\n              variant=\"solid\"\n              size=\"sm\"\n              className=\"absolute ml-1 mt-1 fill-primary\"\n            />\n            <span className=\"ltr:pl-7 rtl:pr-7\">{benefit}</span>\n          </li>\n        ))}\n      </ul>\n      {builtInBenefits[3]?.heading ? (\n        <div className=\"mx-auto w-10/12 rounded-md border border-text-alt p-2 px-3 text-left text-lg rtl:text-right\">\n          <p className=\"mb-4 text-lg font-bold\">{builtInBenefits[3]?.heading}</p>\n          <ul>\n            {builtInBenefits[4]?.unorderedList?.map((spendBenefit) => (\n              <li key={spendBenefit} className=\"relative mb-8 flex font-normal leading-4\">\n                <Icon\n                  name=\"checkmark-heavy\"\n                  variant=\"solid\"\n                  size=\"sm\"\n                  className=\"absolute ml-1 fill-primary\"\n                />\n                <span className=\"ltr:pl-7 rtl:pr-5\">{spendBenefit}</span>\n              </li>\n            ))}\n          </ul>\n        </div>\n      ) : null}\n    </div>\n  );\n};\n","import { useTranslation } from 'next-i18next';\n\ntype Props = {\n  className?: string;\n  children: React.ReactNode;\n};\nexport const CardGroup = ({ className, children }: Props) => {\n  return (\n    <div className={`relative rounded-xl border border-text px-6 py-8 ${className}`}>\n      {children}\n    </div>\n  );\n};\ntype LabelProps = {\n  label: string;\n  className?: string;\n};\nconst Label = ({ className, label }: LabelProps) => {\n  return (\n    <h4\n      className={`absolute -top-4 z-20 rounded-full px-4 py-2 font-bold ltr:-left-4 rtl:-right-4 ${className}`}\n    >\n      {label}\n    </h4>\n  );\n};\n\nexport const PersonalLabel = () => {\n  const [t] = useTranslation('credit-cards');\n  return <Label label={t('personal')} className=\"bg-secondary text-text-inverse\" />;\n};\n\nexport const BusinessLabel = () => {\n  const [t] = useTranslation('credit-cards');\n  return <Label label={t('business')} className=\"bg-secondary text-text-inverse\" />;\n};\n","import { useSegments } from '../../hooks';\nimport { Card } from './CardGroup/Card';\nimport { creditCardTypes, getFilteredSegmentCrediCardContent } from './helpers';\n\nimport type {\n  OffersCreditCardGroup,\n  OffersCreditCardEarningPointsBlock,\n  OffersCreditCard,\n} from '@dx-ui/gql-types';\ntype Props = {\n  cardType: string;\n  cards: OffersCreditCardGroup[];\n};\n\ntype DetailProps = {\n  earningDetails: OffersCreditCardEarningPointsBlock[];\n};\n\nexport const EarningPoints = ({ cards, cardType }: Props) => {\n  const segments = useSegments();\n\n  return cards?.map((card, index) => {\n    const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(card, segments);\n\n    return (\n      <Card\n        key={`${cardType}-cards-earning-points-${creditCardContent?.cardName}`}\n        card={creditCardContent}\n        actionDetail={`compare:earning:apply:${\n          cardType === 'personal' ? creditCardTypes[index] : creditCardTypes[3]\n        }`}\n      >\n        <EarningDetails earningDetails={creditCardContent?.earningPointsBlocks} />\n      </Card>\n    );\n  });\n};\n\nconst EarningDetails = ({ earningDetails }: DetailProps) => {\n  return (\n    <ul className=\"mt-6 w-80 max-w-xs text-text sm:w-auto\">\n      {earningDetails?.map((benefit, index) => (\n        <li key={benefit?.heading ?? benefit?.description} className=\"mb-2 last:mb-0\">\n          {(index % 2) - 1 ? (\n            <h5 className=\"mb-1 font-bold text-primary sm:mb-0\">{benefit?.heading}</h5>\n          ) : (\n            <p className=\"mb-4\">{benefit?.description}</p>\n          )}\n        </li>\n      ))}\n    </ul>\n  );\n};\n","import { Markdown } from '@dx-ui/osc-markdown';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport { useLanguage, useSegments } from '../../hooks';\nimport { getUrlHost } from '../../utils/helpers/urlBuilder';\n\nimport { Card } from './CardGroup/Card';\nimport { creditCardTypes, getFilteredSegmentCrediCardContent } from './helpers';\n\nimport type { OffersCreditCardGroup, OffersCreditCard } from '@dx-ui/gql-types';\ntype Props = {\n  cardType: string;\n  cards: OffersCreditCardGroup[];\n};\n\nconst Paragraph = ({ children }: React.PropsWithChildren<unknown>) => (\n  <p className=\"mt-6 w-80 max-w-xs text-text sm:w-auto\">{children}</p>\n);\n\nconst WelcomeOfferCardDetails = ({ cardDetails }: { cardDetails: OffersCreditCard }) => {\n  const language = useLanguage();\n  const [t] = useTranslation('credit-cards');\n\n  const { attributes, offerDescription } = cardDetails;\n\n  return (\n    <div className=\"flex flex-col\">\n      <div className=\"mb-1 mt-6 flex items-center justify-center\">\n        {attributes[0] === 'welcomeOffer' ? <div className=\"h-px w-full bg-primary\" /> : null}\n        <p\n          className={cx('shrink-0 px-4 py-1 font-bold text-primary', {\n            'border-primary mx-auto max-w-fit rounded-full border-2 font-extrabold':\n              attributes[0] === 'limitedTimeOffer',\n          })}\n        >\n          {attributes[0] && <span>{t(attributes[0])}</span>}\n        </p>\n        {attributes[0] === 'welcomeOffer' ? <div className=\"h-px w-full bg-primary\" /> : null}\n      </div>\n      <Markdown\n        origin={getUrlHost()}\n        language={language}\n        options={{ wrapper: Paragraph, forceWrapper: true }}\n      >\n        {offerDescription ?? ''}\n      </Markdown>\n    </div>\n  );\n};\n\nexport const WelcomeOffer = ({ cards, cardType }: Props) => {\n  const segments = useSegments();\n  return cards?.map((card, index) => {\n    const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(card, segments);\n\n    return (\n      <Card\n        key={`${cardType}-cards-welcome-offer-${creditCardContent?.cardName}`}\n        card={creditCardContent}\n        actionDetail={`compare:welcome:apply:${\n          cardType === 'personal' ? creditCardTypes[index] : creditCardTypes[cards?.length - 1]\n        }`}\n      >\n        <WelcomeOfferCardDetails cardDetails={creditCardContent} />\n      </Card>\n    );\n  });\n};\n","import { TabButton, TabList, TabPanel, TabPanels, Tabs } from '@dx-ui/osc-tabs';\nimport { useTranslation } from 'next-i18next';\n\nimport { BuiltInBenefits } from './BuiltInBenefits';\nimport { BusinessLabel, CardGroup, PersonalLabel } from './CardGroup/CardGroup';\nimport { EarningPoints } from './EarningPoints';\nimport { WelcomeOffer } from './WelcomeOffer';\n\nimport type { OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\n\nexport const CardComparison = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards');\n\n  const personalCards = creditCards?.filter((card) => card?.cardType === 'personal') || [];\n  const businessCards = creditCards?.filter((card) => card?.cardType === 'business') || [];\n\n  return (\n    <>\n      <h2 className=\"my-8 text-center font-headline text-3xl text-primary sm:text-start\">\n        {t('compareCreditCards')}\n      </h2>\n      <Tabs defaultActive=\"welcomeOfferTab\" changeWithArrow={true} className=\"hidden lg:block\">\n        <TabList className=\"hidden h-16 w-full space-x-16 !overflow-hidden lg:block\">\n          <TabButton\n            activeClassName=\"!border-b-secondary text-secondary font-bold\"\n            className=\"h-12 cursor-pointer border-b-4 border-b-transparent py-1 text-xl\"\n            id=\"welcomeOfferTab\"\n          >\n            {t('welcomeOfferTab')}\n          </TabButton>\n          <TabButton\n            activeClassName=\"!border-b-secondary text-secondary font-bold\"\n            className=\"h-12 cursor-pointer border-b-4 border-b-transparent py-1 text-xl\"\n            id=\"earningPointsTab\"\n          >\n            {t('earningPointsTab')}\n          </TabButton>\n          <TabButton\n            activeClassName=\"!border-b-secondary text-secondary font-bold\"\n            className=\"h-12 cursor-pointer border-b-4 border-b-transparent py-1 text-xl\"\n            id=\"builtInBenefitsTab\"\n          >\n            {t('builtInBenefitsTab')}\n          </TabButton>\n        </TabList>\n        <TabPanels className=\"overflow-x-auto py-10 sm:overflow-visible rtl:mr-5\">\n          <TabPanel className=\"grid grid-cols-12 gap-6\" id=\"welcomeOfferTab\">\n            <CardGroup className=\"col-span-9\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3 gap-4\">\n                <WelcomeOffer cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-3\">\n              <BusinessLabel />\n              <WelcomeOffer cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </TabPanel>\n          <TabPanel className=\"grid grid-cols-12 gap-7\" id=\"earningPointsTab\">\n            <CardGroup className=\"col-span-9\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3 gap-4\">\n                <EarningPoints cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-3\">\n              <BusinessLabel />\n              <EarningPoints cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </TabPanel>\n          <TabPanel className=\"grid grid-cols-12 gap-7\" id=\"builtInBenefitsTab\">\n            <CardGroup className=\"col-span-9\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3 gap-4\">\n                <BuiltInBenefits cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-3\">\n              <BusinessLabel />\n              <BuiltInBenefits cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </TabPanel>\n        </TabPanels>\n      </Tabs>\n      {/* Mobile view */}\n      <section className=\"lg:hidden\">\n        <h3 className=\"mt-8 text-xl font-bold\">{t('welcomeOfferTab')}</h3>\n        <div className=\"overflow-x-auto py-5 pl-5\">\n          <div className=\"grid w-max grid-cols-4 gap-6 rtl:mr-5 rtl:pr-2\" id=\"welcomeOfferTab\">\n            <CardGroup className=\"col-span-3\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3\">\n                <WelcomeOffer cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-1\">\n              <BusinessLabel />\n              <WelcomeOffer cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </div>\n        </div>\n        <h3 className=\"mt-8 text-xl font-bold\">{t('earningPointsTab')}</h3>\n        <div className=\"overflow-x-auto py-5 pl-5\">\n          <div className=\"grid w-max grid-cols-4 gap-7 rtl:mr-5\" id=\"earningPointsTab\">\n            <CardGroup className=\"col-span-3\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3\">\n                <EarningPoints cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-1\">\n              <BusinessLabel />\n              <EarningPoints cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </div>\n        </div>\n        <h3 className=\"mt-8 text-xl font-bold\">{t('builtInBenefitsTab')}</h3>\n        <div className=\"overflow-x-auto py-5 pl-5\">\n          <div className=\"grid w-max grid-cols-4 gap-7 rtl:mr-5\" id=\"builtInBenefitsTab\">\n            <CardGroup className=\"col-span-3\">\n              <PersonalLabel />\n              <div className=\"grid grid-cols-3\">\n                <BuiltInBenefits cardType=\"personal\" cards={personalCards} />\n              </div>\n            </CardGroup>\n            <CardGroup className=\"col-span-1\">\n              <BusinessLabel />\n              <BuiltInBenefits cardType=\"business\" cards={businessCards} />\n            </CardGroup>\n          </div>\n        </div>\n      </section>\n    </>\n  );\n};\n","import { useMemo, useRef, useState } from 'react';\n\nimport * as React from 'react';\nimport { Markdown } from '@dx-ui/osc-markdown';\nimport { isRtl } from '@dx-ui/utilities-get-language-direction';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { env } from '@dx-ui/framework-env';\nimport Image from 'next/legacy/image';\n\nimport Icon from '@dx-ui/osc-icon';\nimport { useLanguage, useSegments } from '../../hooks';\nimport { BusinessLabel, PersonalLabel } from './CardGroup/CardGroup';\nimport { getFilteredSegmentCrediCardContent, ImageLoader } from './helpers';\n\nimport type { TFunction } from 'i18next';\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\nimport { useIsomorphicLayoutEffect } from 'usehooks-ts';\n\ntype CardProps = {\n  offersCreditCard: OffersCreditCard;\n  t: TFunction<'credit-cards'>;\n};\n\nconst Card = ({ offersCreditCard, t }: CardProps) => {\n  const { feeDescription, cardName, images, offerTitle, attributes } = offersCreditCard;\n  const language = useLanguage();\n  return (\n    <>\n      {images && images[0]?.image ? (\n        <div className=\"relative min-h-[135px] max-w-[224px] focus-within:outline focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-primary ltr:left-1/2 ltr:-translate-x-1/2 rtl:right-1/2 rtl:translate-x-1/2\">\n          <a className=\"focus:!shadow-none\" href={`#card-${cardName}`}>\n            <Image\n              src={images[0]?.image?.image?.variants?.tabs[0]?.cdnLink || ''}\n              alt={images[0]?.altText || ''}\n              loader={ImageLoader}\n              layout=\"fill\"\n              objectFit=\"contain\"\n            />\n          </a>\n        </div>\n      ) : null}\n      <h5 className=\"mt-3 text-base font-extrabold text-text md:text-lg lg:row-start-2\">\n        {cardName ? cardName : null}\n      </h5>\n      <p className=\"text-sm text-text md:text-base lg:row-start-3\">\n        {feeDescription ? feeDescription : null}\n      </p>\n      <div className=\"flex items-center justify-center\">\n        {attributes[0] === 'welcomeOffer' ? <div className=\"h-px w-full bg-secondary\" /> : null}\n        <p\n          className={cx('my-4 shrink-0 px-2 py-1 font-bold text-secondary', {\n            'mx-auto max-w-fit rounded-full border border-primary':\n              attributes[0] === 'limitedTimeOffer',\n          })}\n        >\n          {attributes[0] && <span>{t(attributes[0])}</span>}\n        </p>\n        {attributes[0] === 'welcomeOffer' ? <div className=\"h-px w-full bg-secondary\" /> : null}\n      </div>\n      {offerTitle ? (\n        <p>\n          <Markdown\n            language={language}\n            origin={env('OHW_BASE_URL')}\n            options={{\n              overrides: {\n                strong: {\n                  props: {\n                    className: 'text-secondary',\n                  },\n                },\n              },\n              wrapper: React.Fragment,\n              forceWrapper: true,\n            }}\n          >\n            {offerTitle}\n          </Markdown>\n        </p>\n      ) : null}\n    </>\n  );\n};\n\nexport const CardDisplay = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards');\n  const language = useLanguage();\n  const isRtlLanguage = isRtl(language);\n  const wrapperRef = useRef<HTMLDivElement>(null);\n  const [scrollLeft, setScrollLeft] = useState(0);\n  const segments = useSegments();\n\n  const handleScroll = ({ target }: React.ChangeEvent<HTMLDivElement>) => {\n    setScrollLeft(target.scrollLeft);\n  };\n\n  useIsomorphicLayoutEffect(() => {\n    if (wrapperRef?.current) {\n      wrapperRef.current.addEventListener('scroll', handleScroll as unknown as EventListener);\n      return () =>\n        (wrapperRef.current as HTMLDivElement).removeEventListener(\n          'scroll',\n          handleScroll as unknown as EventListener\n        );\n    }\n  }, [wrapperRef]);\n\n  const scrollAmount = isRtlLanguage ? -scrollLeft : scrollLeft;\n\n  const displayContent = useMemo(() => {\n    const personalCards: OffersCreditCardGroup[] =\n      creditCards?.filter((card) => card?.cardType === 'personal') || [];\n    const businessCards: OffersCreditCardGroup[] =\n      creditCards?.filter((card) => card?.cardType === 'business') || [];\n\n    return (\n      <section className=\"mt-2 lg:mt-8 lg:flex lg:gap-6\">\n        <div\n          className=\"flex flex-wrap overflow-x-auto lg:block lg:overflow-visible\"\n          ref={wrapperRef}\n        >\n          <div className=\"relative ml-6 mt-6 grid shrink grow-0 grid-cols-[repeat(3,minmax(180px,1fr))] gap-x-10 rounded-xl bg-bg/100 p-10 text-center lg:m-0 lg:h-full rtl:mr-5\">\n            <PersonalLabel />\n            {Array.isArray(personalCards) &&\n              personalCards.length > 0 &&\n              personalCards?.map((personalItem) => {\n                const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n                  personalItem,\n                  segments\n                );\n                return (\n                  <div key={`card-wrapper-${creditCardContent?.cardName}`}>\n                    <Card offersCreditCard={creditCardContent} t={t} />\n                  </div>\n                );\n              })}\n          </div>\n        </div>\n        <section className=\"relative mr-2 py-3 pr-3 text-right text-text sm:hidden\">\n          {scrollAmount < 100 ? (\n            <>\n              <Icon\n                name=\"arrowhead-right\"\n                className=\"absolute bottom-0.5 right-14 rotate-180 ltr:hidden\"\n                size=\"sm\"\n              />\n              <span className=\"inline-block border-b border-text pr-4 text-left\">{t('more')}</span>\n              <Icon\n                name=\"arrowhead-right\"\n                className=\"absolute bottom-0.5 right-0 rtl:hidden\"\n                size=\"sm\"\n              />\n            </>\n          ) : (\n            <span aria-hidden=\"true\">&nbsp;</span>\n          )}\n        </section>\n\n        <div className=\"mt-8 flex pl-6 lg:m-0 lg:p-0\">\n          <div className=\"relative grid grid-cols-[repeat(1,minmax(180px,max-content))] rounded-xl bg-bg/100 p-10 text-center rtl:mr-5\">\n            <BusinessLabel />\n            {Array.isArray(businessCards) &&\n              businessCards.length > 0 &&\n              businessCards?.map((businessCard) => {\n                const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n                  businessCard,\n                  segments\n                );\n                return (\n                  <div key={`card-wrapper-${creditCardContent?.cardName}`}>\n                    <Card offersCreditCard={creditCardContent} t={t} />\n                  </div>\n                );\n              })}\n          </div>\n        </div>\n      </section>\n    );\n  }, [creditCards, scrollAmount, t, segments]);\n\n  return displayContent;\n};\n","import { useRect } from '@dx-ui/utilities-use-rect';\nimport { useCallback, useRef, useState } from 'react';\n\nconst useScrollBarHorizontal = () => {\n  const wrapperRef = useRef<HTMLDivElement | null>(null);\n  const [showPreviousArrow, setShowPreviousArrow] = useState(false);\n  const [showNextArrow, setShowNextArrow] = useState(true);\n\n  const onChange = useCallback((rect: DOMRect | undefined) => {\n    const { scrollLeft = 0, scrollWidth = 0 } = wrapperRef?.current || {};\n    const carouselWidth = rect?.width || 0;\n    const maxScrollWidth = scrollWidth - carouselWidth;\n    setShowNextArrow(maxScrollWidth > scrollLeft);\n    setShowPreviousArrow(scrollLeft > 0);\n  }, []);\n\n  const arrowButtonRect = useRect({ ref: wrapperRef, onResize: onChange });\n\n  const onScrollArrow = useCallback(() => {\n    if (arrowButtonRect) onChange(arrowButtonRect);\n  }, [onChange, arrowButtonRect]);\n\n  return {\n    showPreviousArrow,\n    showNextArrow,\n    onScrollArrow,\n    wrapperRef,\n  };\n};\nexport default useScrollBarHorizontal;\n","import { Fragment } from 'react';\n\nimport { env } from '@dx-ui/framework-env';\nimport { Markdown } from '@dx-ui/osc-markdown';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport Image from 'next/image';\n\nimport Icon from '@dx-ui/osc-icon';\nimport { useLanguage, useSegments } from '../../hooks';\nimport { getFilteredSegmentCrediCardContent } from './helpers';\nimport useScrollBarHorizontal from '../../hooks/useScrollBarHorizontal';\n\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\nimport type { TFunction } from 'i18next';\n\ntype CardProps = {\n  offersCreditCard: OffersCreditCard;\n  t: TFunction<'credit-cards-ja'>;\n};\n\nconst Card = ({ offersCreditCard, t }: CardProps) => {\n  const { feeDescription, cardName, images, offerTitle, attributes } = offersCreditCard;\n  const language = useLanguage();\n  const firstAttribute = attributes?.[0];\n  return (\n    <>\n      {images && images[0]?.image && (\n        <div className=\"relative left-1/2 min-h-40 max-w-56 -translate-x-1/2\">\n          <Image\n            src={images[0]?.image?.image?.variants?.tabs[0]?.cdnLink || ''}\n            alt={images[0]?.altText || ''}\n            fill\n          />\n        </div>\n      )}\n      {cardName && (\n        <h4 className=\"mt-3 text-base font-extrabold text-text md:text-lg lg:row-start-2\">\n          {cardName}\n        </h4>\n      )}\n      {feeDescription && (\n        <p className=\"text-sm text-text md:text-base lg:row-start-3\">{feeDescription}</p>\n      )}\n      <div className=\"flex items-center justify-center\">\n        {firstAttribute === 'welcomeOffer' && <div className=\"h-px w-full bg-primary\" />}\n        <p\n          className={cx('my-4 shrink-0 px-2 py-1 font-bold text-primary', {\n            'mx-auto max-w-fit rounded-full border border-primary':\n              firstAttribute === 'limitedTimeOffer',\n          })}\n        >\n          {firstAttribute && (\n            <span>\n              {t(\n                firstAttribute === 'limitedTimeOffer'\n                  ? 'limitedTimeOffer_noTx'\n                  : 'welcomeOffer_noTx'\n              )}\n            </span>\n          )}\n        </p>\n        {firstAttribute === 'welcomeOffer' && <div className=\"h-px w-full bg-primary\" />}\n      </div>\n      {offerTitle && (\n        <p>\n          <Markdown\n            language={language}\n            origin={env('OHW_BASE_URL')}\n            options={{\n              overrides: {\n                strong: {\n                  props: {\n                    className: 'text-primary',\n                  },\n                },\n              },\n              wrapper: Fragment,\n              forceWrapper: true,\n            }}\n          >\n            {offerTitle}\n          </Markdown>\n        </p>\n      )}\n    </>\n  );\n};\n\nexport const CardDisplayJa = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards-ja');\n\n  const segments = useSegments();\n\n  const { showPreviousArrow, showNextArrow, onScrollArrow, wrapperRef } = useScrollBarHorizontal();\n\n  return (\n    <section className=\"relative mt-8\">\n      <div\n        className=\"relative mb-4 flex w-full flex-wrap overflow-x-auto bg-bg/100 pb-12 lg:mb-0 lg:block lg:overflow-visible lg:rounded-xl lg:pb-0\"\n        ref={wrapperRef}\n        onScroll={onScrollArrow}\n      >\n        {creditCards && creditCards?.length > 0 ? (\n          <div className=\"relative grid shrink grow-0 auto-cols-auto grid-flow-col gap-x-10 p-5 text-center lg:flex lg:h-full lg:justify-center lg:gap-x-20 lg:p-10\">\n            {creditCards?.map((personalItem) => {\n              const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n                personalItem,\n                segments\n              );\n              return (\n                <div key={`card-wrapper-${creditCardContent?.cardName}`} className=\"w-96\">\n                  <Card offersCreditCard={creditCardContent} t={t} />\n                </div>\n              );\n            })}\n          </div>\n        ) : null}\n      </div>\n      <section className=\"absolute bottom-2 left-0 flex text-secondary lg:hidden\">\n        <span\n          className={cx({\n            hidden: !showPreviousArrow,\n          })}\n        >\n          <Icon name=\"arrow-left\" size=\"xl\" />\n        </span>\n        <span\n          className={cx({\n            hidden: !showNextArrow,\n          })}\n        >\n          <Icon name=\"arrow-right\" size=\"xl\" />\n        </span>\n      </section>\n    </section>\n  );\n};\n","import { Link } from '@dx-ui/osc-link';\nimport Image from 'next/legacy/image';\n\nimport { ImageLoader } from './helpers';\nimport type { OffersCreditCardGroup } from '@dx-ui/gql-types';\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { env } from '@dx-ui/framework-env';\nimport { useFeatureTogglesQuery } from '@dx-ui/queries-dx-guests-ui';\nimport {\n  ENABLE_JAPANESE_CO_BRAND_PAGE_LINK,\n  featureFlags,\n} from '../../utils/constants/featureFlags';\nimport { isFeatureEnabled } from '../../utils/featureToggles';\n\nexport const InternationalCards = ({\n  internationalCardsContent,\n  language,\n}: {\n  internationalCardsContent: OffersCreditCardGroup;\n  language: SupportedLanguage;\n}) => {\n  const { data: featureTogglesData } = useFeatureTogglesQuery({\n    flags: featureFlags,\n  });\n  const showNewJACobrandLink = isFeatureEnabled(\n    featureTogglesData?.featureToggles || [],\n    ENABLE_JAPANESE_CO_BRAND_PAGE_LINK\n  );\n\n  return (\n    <section className=\"my-10 flex flex-col\">\n      <h2 className=\"text-center font-headline text-3xl text-primary sm:text-left rtl:sm:text-right\">\n        {internationalCardsContent?.headline}\n      </h2>\n      {language === 'en' ? (\n        <p className=\"mt-4 text-xl font-bold\">{internationalCardsContent?.description}</p>\n      ) : (\n        <h3 className=\"mt-4 text-xl font-bold\">{internationalCardsContent?.description}</h3>\n      )}\n      <ul className=\"mt-4 grid gap-4 px-2 sm:mt-10 sm:grid-cols-3 sm:px-4\">\n        {internationalCardsContent &&\n        internationalCardsContent?.items &&\n        internationalCardsContent?.items.length > 0\n          ? internationalCardsContent?.items?.map((cardDetails) => (\n              <li\n                key={`international-cards-${cardDetails?.cardName}`}\n                className=\"flex items-center gap-4 rounded-lg border border-border-form p-3\"\n              >\n                <div className=\"shrink-0\">\n                  {cardDetails?.images?.length &&\n                  cardDetails?.images[0]?.image?.image?.variants?.tabs[0]?.cdnLink ? (\n                    <Image\n                      src={cardDetails?.images[0]?.image?.image?.variants?.tabs[0]?.cdnLink}\n                      alt={cardDetails?.images[0]?.altText || ''}\n                      loader={ImageLoader}\n                      width={100}\n                      height={70}\n                      aria-hidden={true}\n                    />\n                  ) : null}\n                </div>\n                <div>\n                  {language === 'en' ? (\n                    <strong className=\"mb-0.5 block\">{cardDetails?.cardName}</strong>\n                  ) : (\n                    <h3 className=\"mb-0.5 font-bold\">{cardDetails?.cardName}</h3>\n                  )}\n                  {cardDetails?.link?.[0]?.linkUrl ? (\n                    <Link\n                      adaDescription={cardDetails.link[0].adaDescription || ''}\n                      isNewWindow={cardDetails.link[0].isNewWindow || false}\n                      url={\n                        showNewJACobrandLink &&\n                        cardDetails?.images[0]?.image?.image?.variants?.tabs[0]?.cdnLink?.includes(\n                          'flag-of-japan'\n                        )\n                          ? `${env('OHW_BASE_URL')}ja/hilton-honors/credit-cards/`\n                          : cardDetails?.link[0]?.linkUrl\n                      }\n                      className=\"text-secondary hover:text-secondary-alt\"\n                      cidParams={{\n                        campaignId: cardDetails?.link[0]?.campaignId as string,\n                        componentName: 'InternationalCards',\n                      }}\n                    >\n                      {cardDetails?.link[0]?.linkLabel}\n                    </Link>\n                  ) : null}\n                </div>\n              </li>\n            ))\n          : null}\n      </ul>\n    </section>\n  );\n};\n","import { env } from '@dx-ui/framework-env';\nimport { logError } from '@dx-ui/framework-logger';\nimport { useCmsPolicyQuery } from '@dx-ui/queries-dx-guests-ui';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport Markdown from 'markdown-to-jsx';\nimport { useLanguage } from '../../hooks';\n\nexport const Disclaimer = () => {\n  const language = useLanguage();\n  const { data: disclaimerContent, error: policyError } = useCmsPolicyQuery({\n    language,\n    policy: 'creditCardsDisclaimer',\n  });\n  if (policyError) {\n    logError('CREDIT_CARDS', generateError(policyError), `Error on ${useCmsPolicyQuery.name}`);\n  }\n\n  return (\n    <>\n      {disclaimerContent?.policy?.content?.[0]?.heading ? (\n        <h2 className=\"mb-4 text-center font-headline text-3xl text-primary sm:text-start\">\n          <Markdown language={language} origin={env('OHW_BASE_URL')}>\n            {disclaimerContent?.policy?.content?.[0]?.heading}\n          </Markdown>\n        </h2>\n      ) : null}\n      {disclaimerContent?.policy?.content?.map(({ description: disclaimerContent, _id }) =>\n        disclaimerContent ? (\n          <p className=\"mb-6 last:mb-10\" key={`disclaimer-${_id}`}>\n            {disclaimerContent}\n          </p>\n        ) : null\n      )}\n    </>\n  );\n};\n","export * from './CardBreakdown';\nexport * from './CardComparison';\nexport * from './CardDisplay';\nexport * from './CardDisplayJa';\nexport * from './EarningPoints';\nexport * from './InternationalCards';\nexport * from './Disclaimer';\n","import { useTranslation } from 'next-i18next';\nimport { useIsClient } from 'usehooks-ts';\nimport { CardBreakdown, CardComparison, CardDisplay } from '../../components/CreditCardsV2';\nimport type { OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\n\nexport const CreditCardsEn = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards');\n  const isClient = useIsClient();\n\n  return (\n    <>\n      <section className=\"mb-16 hidden lg:block\">\n        <div className=\"flex w-full flex-col\">\n          <div className=\"mx-auto -mb-64 max-w-screen-xl -translate-y-1/2 rounded-xl bg-bg-light p-10 xl:-mb-60\">\n            <h2 className=\"font-headline text-3xl text-text\">{t('cardDisplayTitle')}</h2>\n            <CardDisplay creditCards={creditCards} />\n          </div>\n        </div>\n      </section>\n\n      {/* Mobile & Tablet View */}\n      <div className=\"mx-auto block max-w-screen-xl bg-bg-light p-4 lg:hidden\">\n        <h2 className=\"font-headline text-2xl text-text\">{t('cardDisplayTitle')}</h2>\n        <CardDisplay creditCards={creditCards} />\n      </div>\n\n      <section className=\"container\">\n        <h2 className=\"mb-4 text-center font-headline text-3xl text-primary sm:text-start\">\n          {t('headline')}\n        </h2>\n        <p className=\"mb-10 text-base\">{t('description')}</p>\n        <CardBreakdown creditCards={creditCards} />\n        {isClient ? <CardComparison creditCards={creditCards} /> : null}\n      </section>\n    </>\n  );\n};\n","import { useMemo, type ElementType } from 'react';\nimport { Markdown } from '@dx-ui/osc-markdown';\nimport { getUrlHost } from '../../../utils/helpers/urlBuilder';\n\ntype MoreDetailsProps = {\n  cardName?: string | null;\n  headingTag?: ElementType;\n  language: string;\n  sections: {\n    heading?: string | null;\n    description?: string | null;\n    list?: string[] | null;\n  }[];\n};\n\nexport const MoreDetailsJa = ({ cardName, headingTag, language, sections }: MoreDetailsProps) => {\n  const cardFeaturesContent = useMemo(\n    () =>\n      sections?.map(({ heading, description, list }) => {\n        const isHeading = !!heading && heading.trim() !== '';\n        const isDescription = !!description && description.trim() !== '';\n        const isList = !!list && list.length !== 0;\n\n        return (\n          <div key={`${cardName}-${heading}`}>\n            {isHeading && (\n              <Markdown\n                origin={getUrlHost()}\n                language={language}\n                options={{\n                  overrides: {\n                    h1: {\n                      component: headingTag,\n                      props: { className: 'font-black text-start', id: null },\n                    },\n                  },\n                }}\n              >\n                {`# ${heading}`}\n              </Markdown>\n            )}\n            {isDescription && (\n              <p className=\"mt-2 text-sm text-text-alt\">\n                <Markdown\n                  origin={getUrlHost()}\n                  language={language}\n                  options={{\n                    overrides: {\n                      strong: {\n                        props: {\n                          className: 'text-bold',\n                        },\n                      },\n                    },\n                  }}\n                >\n                  {description}\n                </Markdown>\n              </p>\n            )}\n            {isList && (\n              <ul className=\"ml-6 mt-2 list-disc text-text\">\n                {list?.map((benefit) => (\n                  <li key={benefit} className=\"w-fit [direction:ltr]\">\n                    <Markdown\n                      origin={getUrlHost()}\n                      language={language}\n                      options={{\n                        overrides: {\n                          strong: {\n                            props: {\n                              className: 'text-primary',\n                            },\n                          },\n                        },\n                      }}\n                    >\n                      {benefit}\n                    </Markdown>\n                  </li>\n                ))}\n              </ul>\n            )}\n          </div>\n        );\n      }),\n    [sections, cardName, language, headingTag]\n  );\n  return (\n    <section className=\"mt-6 flex flex-col gap-6 p-0 text-left sm:mt-0 sm:gap-4 rtl:text-center rtl:sm:text-right\">\n      {cardFeaturesContent}\n    </section>\n  );\n};\n","import Image from 'next/legacy/image';\nimport { Link } from '@dx-ui/osc-link';\nimport { MoreDetailsJa } from './MoreDetailsJa';\nimport { Markdown } from '@dx-ui/osc-markdown';\nimport { ImageLoader } from '../helpers';\nimport { getUrlHost } from '../../../utils/helpers/urlBuilder';\nimport type { ElementType } from 'react';\nimport type { OffersCreditCard } from '@dx-ui/queries-dx-guests-ui';\n\ntype CardListProps = {\n  actionDetail?: string;\n  cardData: OffersCreditCard;\n  headingTag?: ElementType;\n  headingTagSections?: ElementType;\n  language: string;\n  cardIndex: number;\n};\n\nexport const CardDetailsJa = ({\n  cardData,\n  headingTag,\n  headingTagSections,\n  language = 'ja',\n  cardIndex,\n}: CardListProps) => {\n  const { cardName, cardBreakdownBlocks, feeDescription, images, link } = cardData;\n\n  const [\n    cardBreakdownHeading,\n    cardBreakdownDescription,\n    bonusPointsHeading,\n    bonusPointsDescription,\n    bonusPointsItems,\n    builtInBenefitsHeading,\n    builtInBenefitsDescription,\n    builtInBenefitsContent,\n    earningStructureHeading,\n    earningStructureSubHeading,\n    earningStructureContent,\n    feeContent,\n  ] = cardBreakdownBlocks;\n\n  const otherLinks = link?.slice(1);\n\n  return (\n    <section\n      className=\"flex flex-col gap-4 border-b border-border py-6 text-start sm:flex-row sm:gap-12\"\n      data-testid={`card-details-ja-${cardIndex}`}\n    >\n      <div className=\"mx-0 w-full flex-none sm:w-96 sm:pe-8\">\n        {images?.[0]?.image?.image?.variants?.tabs[0]?.cdnLink && images?.[0]?.altText && (\n          <div className=\"relative min-h-36 max-w-64 sm:left-1/2 sm:min-h-72 sm:max-w-96 sm:-translate-x-1/2\">\n            <Image\n              id={`card-${cardName}`}\n              src={images[0].image.image.variants.tabs[0].cdnLink}\n              alt={images[0].altText}\n              loader={ImageLoader}\n              layout=\"fill\"\n              objectFit=\"contain\"\n              objectPosition=\"left\"\n            />\n          </div>\n        )}\n\n        {/* “Apply Now” CTA and T&C links */}\n        <div className=\"mt-4 flex flex-col items-start justify-between gap-4 sm:mb-4\">\n          <span className=\"font-bold\">{feeDescription}</span>\n          {feeContent?.heading && (\n            <p className=\"text-text\">\n              <Markdown\n                origin={getUrlHost()}\n                language={language}\n                options={{\n                  overrides: {\n                    strong: {\n                      props: {\n                        className: 'fond-bold',\n                      },\n                    },\n                  },\n                }}\n              >\n                {feeContent.heading}\n              </Markdown>\n            </p>\n          )}\n          {link?.[0]?.linkUrl && (\n            <Link\n              adaDescription={link[0].adaDescription || ''}\n              className=\"btn btn-lg btn-primary px-4 no-underline hover:bg-secondary-alt\"\n              isNewWindow={link[0].isNewWindow || false}\n              url={link[0].linkUrl}\n            >\n              {link[0].linkLabel}\n            </Link>\n          )}\n          {otherLinks?.length > 0 && (\n            <div className=\"sm:flex ltr:divide-x rtl:divide-x-reverse\">\n              {otherLinks.map(({ adaDescription, linkLabel, linkUrl, isNewWindow }) => (\n                <Link\n                  adaDescription={adaDescription || ''}\n                  className=\"whitespace-nowrap px-1 text-sm text-tertiary hover:text-secondary-alt\"\n                  key={`card-${cardName}-${linkLabel}-link`}\n                  isNewWindow={isNewWindow || false}\n                  url={linkUrl}\n                >\n                  {linkLabel}\n                </Link>\n              ))}\n            </div>\n          )}\n        </div>\n      </div>\n\n      <div className=\"max-w-prose flex-none text-start sm:flex-1\">\n        {cardBreakdownBlocks?.length > 0 && (\n          <>\n            <Markdown\n              origin={getUrlHost()}\n              language={language}\n              options={{\n                overrides: {\n                  h1: {\n                    component: headingTag,\n                    props: {\n                      className: 'mb-2 scroll-mt-52 text-xl font-extrabold sm:scroll-mt-12',\n                      id: null,\n                    },\n                  },\n                },\n              }}\n            >\n              {`# ${cardBreakdownHeading?.heading}`}\n            </Markdown>\n            <p className=\"mb-4 text-lg\">{cardBreakdownDescription?.description}</p>\n\n            <MoreDetailsJa\n              cardName={cardName}\n              headingTag={headingTagSections}\n              language={language}\n              sections={[\n                {\n                  heading: bonusPointsHeading?.heading,\n                  description: bonusPointsDescription?.description,\n                  list: bonusPointsItems?.unorderedList,\n                },\n                {\n                  heading: builtInBenefitsHeading?.heading,\n                  description: builtInBenefitsDescription?.description,\n                  list: builtInBenefitsContent?.unorderedList,\n                },\n                {\n                  heading: earningStructureHeading?.heading,\n                  description: earningStructureSubHeading?.description,\n                  list: earningStructureContent?.unorderedList,\n                },\n              ]}\n            />\n          </>\n        )}\n      </div>\n    </section>\n  );\n};\n","import { useTranslation } from 'next-i18next';\nimport { useMemo } from 'react';\nimport cx from 'classnames';\nimport { useLanguage, useSegments } from '../../../hooks';\nimport type { CreditCardsByLanguageType } from '../helpers';\nimport {\n  creditCardTypes,\n  getCreditCardsByLanguage,\n  getFilteredSegmentCrediCardContent,\n} from '../helpers';\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\nimport { CardDetailsJa } from './CardDetailsJa';\n\nexport const CardBreakdownJa = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards-ja');\n  const language = useLanguage();\n  const segments = useSegments();\n\n  const displayCardContent = useMemo(() => {\n    const creditCardsByLanguage: CreditCardsByLanguageType = getCreditCardsByLanguage({\n      creditCardsContent: creditCards,\n      language,\n    });\n\n    return (\n      <section className=\"flex flex-col\">\n        <h2 className=\"text-start font-headline text-3xl text-primary\">\n          {t('cardBreakdown.title_noTx')}\n        </h2>\n        {creditCardsByLanguage.map((cardType, index) => {\n          const { title, cards } = cardType;\n\n          return (\n            <>\n              {title && (\n                <h3\n                  key={`card-breakdown-${title}`}\n                  className={cx('text-start text-xl font-bold', {\n                    'mt-4': index === 0,\n                    'mt-9': index !== 0,\n                  })}\n                >\n                  {t(`cardBreakdown.${title}`, { count: cards?.length })}\n                </h3>\n              )}\n              {cards.map((cardData, cardIndex) => {\n                const creditCardContent: OffersCreditCard = getFilteredSegmentCrediCardContent(\n                  cardData,\n                  segments\n                );\n\n                return (\n                  <CardDetailsJa\n                    key={`card-breakdown-${creditCardContent?.cardName}`}\n                    cardData={creditCardContent}\n                    actionDetail={creditCardTypes[cardIndex]}\n                    headingTag={title ? 'h4' : 'h3'}\n                    headingTagSections={title ? 'h5' : 'h4'}\n                    language={language}\n                    cardIndex={cardIndex}\n                  />\n                );\n              })}\n            </>\n          );\n        })}\n      </section>\n    );\n  }, [creditCards, language, t, segments]);\n\n  return displayCardContent;\n};\n","import Icon from '@dx-ui/osc-icon';\nimport { useTranslation } from 'next-i18next';\n\nimport type { OffersCreditCard } from '@dx-ui/gql-types';\n\nexport const WelcomeOfferJA = ({ cardDetails }: { cardDetails: OffersCreditCard }) => {\n  const [t] = useTranslation('credit-cards-ja');\n\n  const { attributes, offerDescription } = cardDetails;\n  return (\n    <div className=\"flex size-full flex-col\">\n      <div className=\"mb-1 mt-6 flex items-center justify-center\">\n        <div className=\"h-px w-full bg-primary\" />\n        <p className=\"shrink-0 px-4 py-1 font-bold text-primary\">\n          {attributes[0] && (\n            <span>\n              {attributes[0] && (\n                <span>\n                  {t(\n                    attributes[0] === 'limitedTimeOffer'\n                      ? 'limitedTimeOffer_noTx'\n                      : 'welcomeOffer_noTx'\n                  )}\n                </span>\n              )}\n            </span>\n          )}\n        </p>\n        <div className=\"h-px w-full bg-primary\" />\n      </div>\n      <p className=\"mt-4 w-80 max-w-xs text-text sm:w-auto\"> {offerDescription ?? ''}</p>\n    </div>\n  );\n};\n\nexport const EarningPointsJA = ({ cardDetails }: { cardDetails: OffersCreditCard }) => {\n  return (\n    <ul className=\"mt-6 w-80 max-w-xs text-text sm:w-auto\">\n      {cardDetails?.earningPointsBlocks.map((benefit, index) => (\n        <li\n          key={benefit?.heading ?? benefit?.description}\n          className=\"px-2 [&:nth-child(4n-2)]:mb-4 [&:nth-child(4n-2)]:rounded-b-lg [&:nth-child(4n-2)]:bg-white [&:nth-child(4n-3)]:rounded-t-lg [&:nth-child(4n-3)]:bg-white\"\n        >\n          {(index % 2) - 1 ? (\n            <h5 className=\"pt-2 font-bold text-primary\">{benefit?.heading}</h5>\n          ) : (\n            <p className=\"pb-2 pt-4\">{benefit?.description}</p>\n          )}\n        </li>\n      ))}\n    </ul>\n  );\n};\n\nexport const BuiltInBenefitsJA = ({ cardDetails }: { cardDetails: OffersCreditCard }) => {\n  const builtInBenefits = cardDetails.builtinBenefitsBlocks;\n  return (\n    <div className=\"mt-6 w-80 max-w-xs text-text sm:w-auto\">\n      <div className=\"mb-6\">\n        <h5 className=\"text-xl font-bold\">{builtInBenefits[0]?.heading}</h5>\n      </div>\n      <ul className=\"text-left text-lg\">\n        {builtInBenefits[1]?.unorderedList?.map((benefit) => (\n          <li key={benefit} className=\"relative mb-6 flex font-normal leading-6\">\n            <Icon\n              name=\"check\"\n              variant=\"solid\"\n              size=\"lg\"\n              className=\"absolute -mt-1 ml-1 fill-primary\"\n            />\n            <span className=\"pl-7\">{benefit}</span>\n          </li>\n        ))}\n      </ul>\n      {builtInBenefits[2]?.description && (\n        <p className=\"text-sm font-normal\">{builtInBenefits[2]?.description} </p>\n      )}\n    </div>\n  );\n};\n","import { Link } from '@dx-ui/osc-link';\nimport Image from 'next/image';\n\nimport type { OffersCreditCard } from '@dx-ui/gql-types';\n\nexport const CardJA = ({\n  card: { cardName, link, images, feeDescription },\n  children,\n}: {\n  children: React.ReactNode;\n  card: OffersCreditCard;\n}) => {\n  const [applyNowLink, ...additionalLinks] = link ?? [];\n  const imageUrl =\n    images?.[0]?.image?.image?.variants?.tabs.find((img) => img.name?.includes('desktop'))\n      ?.cdnLink ?? '';\n\n  return (\n    <div className=\"w-80 items-center text-center lg:w-auto\">\n      {images[0]?.altText && (\n        <div className=\"relative left-1/2 mb-1 min-h-40 max-w-56 -translate-x-1/2\">\n          <Image src={imageUrl} alt={images[0].altText} fill />\n        </div>\n      )}\n      <h4 className=\"text-base font-bold\">{cardName}</h4>\n      <span className=\"mb-4 block text-sm\">{feeDescription}</span>\n      {applyNowLink?.linkUrl && (\n        <Link\n          className=\"btn btn-sm btn-primary px-4 text-base font-bold hover:bg-secondary-alt\"\n          url={applyNowLink.linkUrl}\n          underline={false}\n          cidParams={{ campaignId: applyNowLink.campaignId as string, componentName: 'CardJA' }}\n          isNewWindow={applyNowLink.isNewWindow ?? false}\n          adaDescription={applyNowLink.adaDescription ?? ''}\n        >\n          {applyNowLink.linkLabel}\n        </Link>\n      )}\n      {additionalLinks.length > 0 && (\n        <div className=\"mt-4 grid divide-x divide-border\">\n          {additionalLinks.map((link) => (\n            <Link\n              adaDescription={link.adaDescription ?? ''}\n              className=\"whitespace-nowrap px-0.5 text-xs text-primary hover:text-secondary-alt\"\n              key={`card-${cardName}-${link.linkLabel}-link`}\n              isNewWindow={link.isNewWindow ?? false}\n              url={link.linkUrl}\n              cidParams={{ campaignId: link.campaignId as string, componentName: 'CardJA' }}\n            >\n              {link.linkLabel}\n            </Link>\n          ))}\n        </div>\n      )}\n      <div className=\"flex justify-center px-3 sm:px-0 lg:px-3\">{children}</div>\n    </div>\n  );\n};\n","import Icon from '@dx-ui/osc-icon';\nimport { TabButton, TabList, TabPanel, TabPanels, Tabs } from '@dx-ui/osc-tabs';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useSegments } from '../../../hooks';\nimport useScrollBarHorizontal from '../../../hooks/useScrollBarHorizontal';\nimport { getFilteredSegmentCrediCardContent } from '../helpers';\nimport { BuiltInBenefitsJA, EarningPointsJA, WelcomeOfferJA } from './CardComparisonDetailsJA';\nimport { CardJA } from './CardJA';\n\nimport type { OffersCreditCard, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\n\nexport const CardComparisonJA = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards-ja');\n  const segments = useSegments();\n  const { showPreviousArrow, showNextArrow, onScrollArrow, wrapperRef } = useScrollBarHorizontal();\n\n  const tabData = [\n    {\n      id: 'welcomeOfferTab',\n      label: t('welcomeOffer_noTx'),\n      CardComparisonDetailsJA: WelcomeOfferJA,\n    },\n    {\n      id: 'earningPointsTab',\n      label: t('earningPoints_noTx'),\n      CardComparisonDetailsJA: EarningPointsJA,\n    },\n    {\n      id: 'builtInBenefitsTab',\n      label: t('builtInBenefits_noTx'),\n      CardComparisonDetailsJA: BuiltInBenefitsJA,\n    },\n  ];\n\n  const renderCardComparisonTabJA = (\n    card: OffersCreditCardGroup,\n    segments: string[],\n    CardComparisonDetailsJA: React.ComponentType<{ cardDetails: OffersCreditCard }>\n  ) => {\n    const creditCardContent = getFilteredSegmentCrediCardContent(card, segments);\n    return (\n      <CardJA key={creditCardContent?.cardName} card={creditCardContent}>\n        <CardComparisonDetailsJA cardDetails={creditCardContent} />\n      </CardJA>\n    );\n  };\n\n  return (\n    <section className=\"container\">\n      <h2 className=\"my-8 pt-6 text-start font-headline text-3xl text-primary sm:pb-2 sm:pt-10\">\n        {t('compareCreditCards_noTx')}\n      </h2>\n      <Tabs defaultActive=\"welcomeOfferTab\" changeWithArrow>\n        <TabList className=\"flex w-full justify-start space-x-4 lg:space-x-16\">\n          {tabData.map(({ id, label }) => (\n            <TabButton\n              key={id}\n              activeClassName=\"!border-b-primary text-text font-bold\"\n              className=\"min-w-40 grow border-b-4 border-b-transparent p-1 text-xl lg:min-w-[auto] lg:grow-0\"\n              id={id}\n            >\n              {label}\n            </TabButton>\n          ))}\n        </TabList>\n        <TabPanels>\n          <div\n            className=\"relative flex w-full flex-wrap overflow-x-auto py-10 lg:block lg:overflow-visible\"\n            ref={wrapperRef}\n            onScroll={onScrollArrow}\n          >\n            {tabData.map(({ id, CardComparisonDetailsJA }) => (\n              <TabPanel key={id} id={id}>\n                <div className=\"relative grid shrink grow-0 auto-cols-auto grid-flow-col gap-x-16 lg:grid-cols-4 lg:gap-x-8\">\n                  {creditCards.map((card) =>\n                    renderCardComparisonTabJA(card, segments, CardComparisonDetailsJA)\n                  )}\n                </div>\n              </TabPanel>\n            ))}\n          </div>\n        </TabPanels>\n        <section className=\"absolute bottom-2 left-0 flex text-text lg:hidden\">\n          <span\n            className={cx({\n              hidden: !showPreviousArrow,\n            })}\n          >\n            <Icon name=\"arrow-left\" size=\"xl\" />\n          </span>\n          <span\n            className={cx({\n              hidden: !showNextArrow,\n            })}\n          >\n            <Icon name=\"arrow-right\" size=\"xl\" />\n          </span>\n        </section>\n      </Tabs>\n    </section>\n  );\n};\n","import { useTranslation } from 'next-i18next';\nimport type { OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\nimport { CardBreakdownJa } from '../../components/CreditCardsV2/CardBreakdownJa';\nimport { CardDisplayJa } from '../../components/CreditCardsV2';\nimport { CardComparisonJA } from '../../components/CreditCardsV2/CardComparisonJA';\n\nexport const CreditCardsJa = ({ creditCards }: { creditCards: OffersCreditCardGroup[] }) => {\n  const [t] = useTranslation('credit-cards-ja');\n\n  return (\n    <>\n      <section className=\"mb-8\" data-testid=\"card-display-section\">\n        <div className=\"mx-auto max-w-screen-xl bg-bg-light p-4 lg:-mb-64 lg:-translate-y-1/2 lg:rounded-xl lg:p-10 xl:-mb-60\">\n          <h3 className=\"font-headline text-2xl text-text lg:text-center lg:text-3xl\">\n            {t('cardDisplayTitle_noTx')}\n          </h3>\n          <CardDisplayJa creditCards={creditCards} />\n        </div>\n      </section>\n\n      <section className=\"container\">\n        <h2\n          id=\"ourCreditCardsSection\"\n          className=\"mb-4 mt-12 text-start font-headline text-3xl text-primary\"\n        >\n          {t('headline_noTx')}\n        </h2>\n        <p className=\"mb-10 text-base\">{t('description_noTx')}</p>\n        <CardBreakdownJa creditCards={creditCards} />\n      </section>\n      <section className=\"bg-bg-light\" data-testid=\"creditCards-Comparison\">\n        <CardComparisonJA creditCards={creditCards} />\n      </section>\n    </>\n  );\n};\n","import { auth } from '../../utils/auth';\nimport { GLOBAL_RESOURCE_BUNDLES } from '../../utils/constants/global-resource-bundles';\nimport { show404NonTransPage } from '../../utils/helpers/show404NonTransPage';\n\nimport { getServerSideSafeLanguage, makeServerQueryClient } from '@dx-ui/framework-react-query';\nimport { REACT_QUERY_CONFIG } from '../../config/react-query';\nimport type { BrandQuery, OffersCreditCardGroup } from '@dx-ui/queries-dx-guests-ui';\n\nimport { Head } from '../../components/Head/Head';\nimport { Link } from '@dx-ui/osc-link';\nimport { useMemo } from 'react';\nimport { useTranslation, Trans } from 'next-i18next';\nimport { InternationalCards, Disclaimer } from '../../components/CreditCardsV2';\nimport { useLanguage, useSegments } from '../../hooks';\nimport {\n  useCreditCardOffersQuery,\n  useBrand_CobrandQuery as useBrandQuery,\n  serverSideCreditCardOffersQuery,\n  serverSideCmsPolicy_CobrandQuery as serverSideCmsPolicyQuery,\n  serverSideBrand_CobrandQuery as serverSideBrandQuery,\n} from '@dx-ui/queries-dx-guests-ui';\nimport cx from 'classnames';\nimport { serverSideProps } from '../../utils/helpers/serverSideProps';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport { getThemeClassName } from '@dx-ui/framework-theme';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport { logWarning } from '@dx-ui/framework-logger';\nimport { CreditCardsEn } from '../../views/credit-cards/credit-cards-en';\nimport { CreditCardsJa } from '../../views/credit-cards/credit-cards-ja';\n\ntype FullWidthImageData = NonNullable<NonNullable<BrandQuery['brand']>['page']>['fullWidthImage'];\n\nconst CreditCards: NextPage<typeof getServerSideProps> = () => {\n  const [t] = useTranslation('credit-cards');\n  const { t: tJaCards } = useTranslation('credit-cards-ja');\n  const language = useLanguage();\n  const segments = useSegments();\n\n  const {\n    data: creditCardOffersData,\n    isLoading,\n    error: offersError,\n  } = useCreditCardOffersQuery({ language });\n\n  const { data: fullWidthImageData, error: brandError } = useBrandQuery({\n    language,\n    brandCode: 'HH',\n    path: 'credit-cards',\n  });\n\n  const fullWidthImage = fullWidthImageData?.brand_noTx?.page?.fullWidthImage;\n  const filteredItems = useMemo(\n    () =>\n      fullWidthImage?.reduce((acc, item) => {\n        if (item?.segmentIds?.some((segmentId) => segments.includes(segmentId))) {\n          acc.push({ ...item });\n        }\n        return acc;\n      }, [] as FullWidthImageData),\n    [fullWidthImage, segments]\n  );\n\n  if (offersError) {\n    logWarning(\n      'CREDIT_CARDS',\n      generateError(offersError),\n      `Error on ${useCreditCardOffersQuery.name}`\n    );\n  }\n\n  if (brandError) {\n    logWarning('CREDIT_CARDS', generateError(brandError), `Error on ${useBrandQuery.name}`);\n  }\n\n  const imageHeadlinerFmt =\n    filteredItems && filteredItems?.length > 0 ? filteredItems?.[0] : fullWidthImage?.[0];\n\n  const imageUrl = imageHeadlinerFmt?.imageCompound?.image?.variants?.find(\n    (v) => v.size === 'md'\n  )?.url;\n\n  const internationalCreditCards = creditCardOffersData?.creditCardOffers_noTx?.filter(\n    (card) => card?.cardType === 'international'\n  )[0];\n\n  const otherCreditCards = creditCardOffersData?.creditCardOffers_noTx?.filter(\n    (card) => card?.cardType !== 'international'\n  ) as OffersCreditCardGroup[];\n\n  if (isLoading) {\n    return <Spinner size=\"xl\" />;\n  }\n\n  const renderCreditCardsLayout = () => {\n    switch (language) {\n      case 'ja':\n        return <CreditCardsJa creditCards={otherCreditCards} />;\n      default:\n        return <CreditCardsEn creditCards={otherCreditCards} />;\n    }\n  };\n\n  return (\n    <>\n      <Head\n        title={t('pageTitle')}\n        keywords={t('metaData.keywords')}\n        description={t('metaData.description')}\n      />\n      <div className={getThemeClassName({ brandCode: 'CB' })}>\n        <section\n          className=\"bg-[length:100%_100%]\"\n          style={{\n            backgroundImage: `url(\"${imageUrl}\")`,\n          }}\n          data-testid=\"full-width-image-section\"\n        >\n          <div className=\"flex h-[400px] w-full flex-col backdrop-brightness-75 sm:h-[700px]\">\n            <div\n              className={cx('w-full bg-bg-inverse text-text-inverse', {\n                'order-last mt-auto lg:mt-0 lg:order-none ': language !== 'ja',\n              })}\n            >\n              <p className=\"container py-1\">{imageHeadlinerFmt?.caption}</p>\n            </div>\n            <div className=\"container mx-auto max-w-screen-xl p-4 py-16 sm:mx-auto\">\n              <p className=\"mb-8 max-w-fit shrink-0 rounded-full border-2 border-primary bg-bg px-5 py-1 font-extrabold text-primary drop-shadow-md\">\n                {imageHeadlinerFmt?.attributes?.[0] ? (\n                  language === 'ja' ? (\n                    <span>\n                      {imageHeadlinerFmt?.attributes?.[0] === 'limitedTimeOffer'\n                        ? tJaCards('limitedTimeOffer_noTx')\n                        : tJaCards('welcomeOffer_noTx')}\n                    </span>\n                  ) : (\n                    <Trans t={t}>{imageHeadlinerFmt?.attributes?.[0]}</Trans>\n                  )\n                ) : null}\n              </p>\n              <div className=\"max-w-max\">\n                <h1 className=\"font-headline text-2xl text-text-inverse drop-shadow-md sm:text-5xl\">\n                  {imageHeadlinerFmt?.headline}\n                </h1>\n                <p className=\"my-2 font-headline text-xl font-bold text-text-inverse drop-shadow-md sm:text-4xl\">\n                  {imageHeadlinerFmt?.shortDescription}\n                  <span\n                    className={cx('block font-sans text-base', {\n                      'text-center':\n                        !fullWidthImageData?.brand_noTx?.page?.fullWidthImage?.[0]\n                          ?.shortDescription,\n                      'ms-4 inline-block font-normal':\n                        fullWidthImageData?.brand_noTx?.page?.fullWidthImage?.[0]?.shortDescription,\n                    })}\n                  >\n                    {imageHeadlinerFmt?.description}\n                  </span>\n                </p>\n                <Link\n                  url={imageHeadlinerFmt?.link?.url as string}\n                  className=\"btn btn-lg mb-7 border border-text-inverse bg-primary text-base font-black text-text-inverse hover:bg-secondary-alt\"\n                  underline={false}\n                  cidParams={{\n                    campaignId: imageHeadlinerFmt?.link?.campaignId ?? '',\n                    componentName: 'CreditCards',\n                  }}\n                >\n                  {imageHeadlinerFmt?.link?.label}\n                </Link>\n              </div>\n            </div>\n          </div>\n        </section>\n        {renderCreditCardsLayout()}\n        <section className=\"container\">\n          {language !== 'ja' ? <Disclaimer /> : null}\n          {internationalCreditCards && internationalCreditCards?.items?.length > 0 ? (\n            <InternationalCards\n              internationalCardsContent={internationalCreditCards as OffersCreditCardGroup}\n              language={language}\n            />\n          ) : null}\n        </section>\n      </div>\n    </>\n  );\n};\n\nexport const getServerSideProps = (async (context) => {\n  const { req, res } = context;\n  const locale = getServerSideSafeLanguage(context);\n  const authClient = auth({ context });\n  const queryClient = makeServerQueryClient({\n    ...REACT_QUERY_CONFIG,\n    serverResponse: res,\n    authClient,\n  });\n\n  const show404 = await show404NonTransPage({ url: req.path, language: locale, queryClient });\n\n  if (show404) return { notFound: true };\n\n  await Promise.allSettled([\n    serverSideCreditCardOffersQuery(queryClient, { language: locale }),\n    serverSideCmsPolicyQuery(queryClient, { language: locale, policy: 'creditCardsDisclaimer' }),\n    serverSideBrandQuery(queryClient, {\n      language: locale,\n      brandCode: 'HH',\n      path: 'credit-cards',\n    }),\n  ]);\n\n  return serverSideProps({\n    authClient,\n    context,\n    queryClient,\n    pageProps: {\n      metrics: {\n        trackingData: {\n          pageView: 'honorsPageView',\n          pageData: {\n            pageName: 'Credit Cards',\n            expType: 'New Hilton',\n            subSection: 'Brand',\n            subSubSection: '',\n            pageType: 'creditCards',\n          },\n        },\n      },\n    },\n    namespaces: [...GLOBAL_RESOURCE_BUNDLES, 'credit-cards', 'credit-cards-ja'],\n    includeConfigRules: true,\n  });\n}) satisfies GetServerSideProps;\n\nexport default CreditCards;\n","\n    (window.__NEXT_P = window.__NEXT_P || []).push([\n      \"/hilton-honors/credit-cards\",\n      function () {\n        return require(\"private-next-pages/hilton-honors/credit-cards.tsx\");\n      }\n    ]);\n    if(module.hot) {\n      module.hot.dispose(function () {\n        window.__NEXT_P.push([\"/hilton-honors/credit-cards\"])\n      });\n    }\n  ","import type * as React from 'react';\nimport cx from 'classnames';\n\nexport type CaptionProps = {\n  /**\n   * Optional, provides the text content for the caption\n   */\n  caption?: string;\n  /**\n   * Optional link url\n   */\n  captionLink?: string;\n  /**\n   * Optional link target\n   */\n  captionLinkTarget?: string;\n  /**\n   * Optional metrics data\n   */\n  metricsOnClick?: () => void;\n  /*\n   * Optional alignment, default is end\n   */\n  align?: 'start' | 'end';\n};\n\n/**\n * Image caption is an optional prop that is consumed by other components, this cheese does not stand alone. Can be text only or a clickable link.\n */\nexport const Caption: React.FC<CaptionProps> = ({\n  caption,\n  captionLink,\n  captionLinkTarget,\n  align = 'end',\n  metricsOnClick,\n}) => {\n  const captionClasses =\n    'flex absolute top-0 items-center justify-center flex-auto text-xs mx-4 mt-4 mb-0 py-2 px-4 bg-bg-inverse text-text-overlay opacity-80 p-2 no-underline caption-main-text';\n\n  if (!caption && !captionLink) {\n    return null;\n  }\n\n  return (\n    <figcaption data-testid=\"caption-container\">\n      {captionLink ? (\n        <a\n          data-e2e=\"linkedCaption\"\n          data-testid=\"img-caption-link\"\n          className={cx(captionClasses, 'cursor-pointer', {\n            'end-0': align === 'end',\n            'start-0': align === 'start',\n          })}\n          href={captionLink}\n          onClick={() => metricsOnClick?.()}\n          target={captionLinkTarget}\n        >\n          {caption}\n        </a>\n      ) : (\n        <div\n          data-osc-product=\"osc-caption\"\n          className={cx(captionClasses, 'pointer-events-none cursor-default', {\n            'end-0': align === 'end',\n            'start-0': align === 'start',\n          })}\n        >\n          {caption}\n        </div>\n      )}\n    </figcaption>\n  );\n};\n","export * from './caption';\n","export * from './lib';\n","import NextHead from 'next/head';\n\ntype Props = {\n  title: string;\n  description?: string;\n  keywords?: string;\n};\n\nexport const Head: React.FC<React.PropsWithChildren<Props>> = ({\n  title,\n  description,\n  keywords,\n}) => {\n  return (\n    <NextHead>\n      <title key=\"title\">{title}</title>\n      {description && <meta name=\"description\" content={description} />}\n      {keywords && <meta name=\"keywords\" content={keywords} />}\n    </NextHead>\n  );\n};\n","import * as React from 'react';\nimport * as RadixAccordion from '@radix-ui/react-accordion';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\nimport { getLanguageDirection } from '@dx-ui/utilities-get-language-direction';\nimport { useRouter } from 'next/router';\n\nexport type HeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nexport type Item = {\n  /**\n   * Content that will be displayed when the accordion is expanded\n   */\n  content: React.ReactNode;\n  /** Trigger text to display hidden content\n   *\n   * Defaults to “Open”\n   */\n  collapsedButtonLabel?: string | React.ReactNode;\n  /** Screen-reader only trigger text to display hidden content\n   */\n  collapsedButtonAccessibleLabel?: string;\n  /**\n   * Applies to Accordion when it is not expanded\n   */\n  collapsedClassName?: string;\n  /**\n   * Screen-reader only trigger text to hide displayed content\n   */\n  expandedButtonAccessibleLabel?: string;\n  /** Trigger text to hide displayed content\n   *\n   * Defaults to “Close”\n   */\n  expandedButtonLabel?: string | React.ReactNode;\n  /**\n   * Applies to Accordion when it is expanded\n   */\n  expandedClassName?: string;\n  /**\n   * Styles for the wrapper(div) of the accordion button\n   */\n  buttonWrapperClassName?: string;\n  /** A stable key to identify the accordion */\n  key: string;\n};\n\nexport type AccordionBase = {\n  /** Classes apply to trigger button\n   *\n   * To style accordion content, apply relevant classes directly to passed-in children\n   */\n  className?: string;\n  /** Accordion item including labels and content */\n  items: Item[];\n  /** Passed into `<section />` element that contains children\n   */\n  containerClassName?: string;\n  /**\n   * Optional heading level that should wrap the Accordion Trigger. Defaults to a span if undefined.\n   */\n  headingLevel?: HeadingLevel;\n  /**\n   * Controls the fill color for the indicator icon\n   */\n  iconIndicatorFillColor?: string;\n  /**\n   * Applies color when expanded\n   */\n  iconIndicatorExpandedFillColor?: string;\n  /**\n   * Controls whether children should be unmounted when accordion is collapsed\n   */\n  shouldUnmountChildrenWhenCollapsed?: boolean;\n  /**\n   * Controls accordion variant type, single or stacked.  Defaults to single.\n   *\n   * Single - only one accordion can be expanded at a time (other accordion items will collapse)\n   *\n   * Multiple - multiple accordion items can be expanded at the same time. (other accordion items will remain expanded)\n   */\n  variant?: 'single' | 'stacked';\n};\n\nexport type AccordionProps = AccordionBase & React.ComponentProps<typeof RadixAccordion.Root>;\n\nconst setInitialExpandedAccordions = (items: Item[], defaultValue?: string | string[]) => {\n  if (typeof defaultValue === 'string') {\n    const isExpanded = defaultValue === items[0]?.key;\n    return [isExpanded];\n  }\n  return Array.from({ length: items?.length }, (_, idx) => {\n    return Boolean(defaultValue?.includes(items?.[idx]?.key ?? ''));\n  });\n};\n/**\n *\n * An Accordion component based off of Radix UI's Accordion component. This component is used to display a list of items that can be expanded or collapsed to show or hide content. Root level component that rest props will pass to is <Accordion.Root />.\n * @see {@link Radix UI Accordion Documentation} https://www.radix-ui.com/primitives/docs/components/accordion\n */\nexport const Accordion = ({\n  className,\n  items,\n  containerClassName,\n  iconIndicatorFillColor,\n  iconIndicatorExpandedFillColor,\n\n  onValueChange,\n  variant = 'single',\n  shouldUnmountChildrenWhenCollapsed = false,\n  headingLevel,\n  ...rest\n}: AccordionProps) => {\n  const [uncontrolledExpandedAccordion, setUncontrolledExpandedAccordion] = React.useState(\n    setInitialExpandedAccordions(items, rest.defaultValue)\n  );\n\n  const isUncontrolledComponent = !rest?.value;\n\n  const { t } = useTranslation('osc-accordion');\n  const { locale = 'en' } = useRouter();\n  const languageDirection = getLanguageDirection(locale);\n\n  const isStackedAccordion = variant === 'stacked';\n  const handleIconType = isStackedAccordion ? 'arrowhead-down-circle' : 'arrowhead-small-down';\n  const iconSize = isStackedAccordion ? 'lg' : 'md';\n\n  /**\n   *\n   * Value can be string | string[] if `type` prop is `single` or `multiple` respectively.\n   */\n  const handleValueChange = (values: string | string[]) => {\n    if (typeof values === 'string') {\n      isUncontrolledComponent &&\n        setUncontrolledExpandedAccordion([!uncontrolledExpandedAccordion[0]]);\n      (onValueChange as (value: string) => void)?.(values);\n    } else {\n      isUncontrolledComponent &&\n        setUncontrolledExpandedAccordion(\n          uncontrolledExpandedAccordion.map((_, idx) => values.includes(items?.[idx]?.key ?? ''))\n        );\n      (onValueChange as (value: string[]) => void)?.(values);\n    }\n  };\n\n  if (!items?.length) return null;\n\n  return (\n    <RadixAccordion.Root\n      {...rest}\n      dir={languageDirection}\n      {...(rest.type === 'single' && { collapsible: true })}\n      onValueChange={handleValueChange}\n    >\n      {items.map((item, idx) => {\n        const isExpanded = isUncontrolledComponent\n          ? uncontrolledExpandedAccordion[idx]\n          : typeof rest?.value === 'string'\n          ? rest?.value === item.key\n          : !!rest?.value?.includes(item.key);\n\n        const buttonLabel = isExpanded\n          ? item?.expandedButtonLabel ?? t('close')\n          : item?.collapsedButtonLabel ?? t('open');\n\n        const accessibleButtonLabel = isExpanded\n          ? item?.expandedButtonAccessibleLabel\n          : item?.collapsedButtonAccessibleLabel;\n        const iconVariant = isStackedAccordion && isExpanded ? 'solid' : 'regular';\n        const shouldRenderChildren =\n          !isExpanded && shouldUnmountChildrenWhenCollapsed ? false : true;\n\n        return (\n          <RadixAccordion.Item\n            key={item.key}\n            value={item.key}\n            className={item.buttonWrapperClassName}\n            data-osc=\"accordion-item\"\n          >\n            <RadixAccordion.Header asChild={true}>\n              <TriggerWrapper as={headingLevel}>\n                <RadixAccordion.Trigger asChild>\n                  <button\n                    type=\"button\"\n                    className={cx('items-center', className, {\n                      [item?.expandedClassName as string]: isExpanded && !!item?.expandedClassName,\n                      [item?.collapsedClassName as string]:\n                        !isExpanded && !!item?.collapsedClassName,\n                    })}\n                    data-osc={`accordion-trigger-${item.key}`}\n                  >\n                    <span aria-hidden={Boolean(accessibleButtonLabel)}>{buttonLabel}</span>\n                    {accessibleButtonLabel ? (\n                      <span className=\"sr-only\">{accessibleButtonLabel}</span>\n                    ) : null}\n                    <span\n                      className={cx(\n                        'accordion-indicator-wrapper duration-150 ease-in-out motion-safe:transition',\n                        {\n                          '-rotate-180': isExpanded,\n                        }\n                      )}\n                      data-osc=\"accordion-indicator-wrapper\"\n                    >\n                      <Icon\n                        name={handleIconType}\n                        variant={iconVariant}\n                        size={iconSize}\n                        className={cx(iconIndicatorFillColor, {\n                          [iconIndicatorExpandedFillColor as string]:\n                            isExpanded && !!iconIndicatorExpandedFillColor,\n                        })}\n                      />\n                    </span>\n                  </button>\n                </RadixAccordion.Trigger>\n              </TriggerWrapper>\n            </RadixAccordion.Header>\n            <RadixAccordion.Content className={containerClassName} data-osc=\"accordion-panel\">\n              {shouldRenderChildren ? item.content : null}\n            </RadixAccordion.Content>\n          </RadixAccordion.Item>\n        );\n      })}\n    </RadixAccordion.Root>\n  );\n};\n\nfunction TriggerWrapper({\n  as: Wrapper = 'span',\n  children,\n  ...rest\n}: {\n  as?: HeadingLevel | 'span';\n  children: React.ReactNode;\n}) {\n  return <Wrapper {...rest}>{children}</Wrapper>;\n}\n\nexport default Accordion;\n","export * from './lib/accordion';\n"],"names":["ImageLoader","src","width","quality","en","title","cardType","metrics","ja","getCreditCardsByLanguage","creditCardsContent","language","creditCardTypes2","map","cards","filter","card","getFilteredSegmentCrediCardContent","offersCreditCard","segments","length","items","find","segmentIds","includes","segmentId","TierCallout","children","tier","ReactSVG","aria-hidden","className","cx","strong","MoreDetails","builtInBenefits","earningStructure","breakDown","cardName","useLanguage","t","useTranslation","cardFeaturesContent","useMemo","h5","heading","Markdown","origin","getUrlHost","ul","Boolean","benefit","match","li","options","overrides","component","props","p","subheading","earningBenefits","Accordion","collapsedButtonAccessibleLabel","collapsedButtonLabel","content","section","expandedButtonLabel","expandedButtonAccessibleLabel","key","type","cardData","actionDetail","attributes","cardBreakdownBlocks","feeDescription","images","link","cardBreakdownHeading","builtInBenefitsHeading","builtInBenefitsContent","earningstructureHeading","earningstructureSubHeading","earningstructureContent","useMetrics","applyNowLink","otherLinks","slice","div","image","variants","tabs","cdnLink","altText","Image","id","alt","loader","layout","objectFit","span","linkUrl","Link","onClick","sendConductricsReward","Goals","CreditCardApplyNow","GoalByCardName","setProperty","setEventAction","eventAction","trackEvent","adaDescription","isNewWindow","url","cidParams","campaignId","componentName","linkLabel","CreditCardTermsAndConditions","Trans","i18nKey","components","h4","description","unorderedList","cardNameOnly","substring","lastIndexOf","target","rel","CardBreakdown","creditCards","useSegments","personalCards","businessCards","h2","h3","count","index","creditCardContent","CardDetails","creditCardTypes","Card","underline","BuiltInDetails","builtinBenefitsBlocks","h6","Icon","name","variant","size","spendBenefit","CardGroup","Label","label","PersonalLabel","EarningPoints","EarningDetails","earningDetails","earningPointsBlocks","Paragraph","WelcomeOfferCardDetails","cardDetails","offerDescription","wrapper","forceWrapper","WelcomeOffer","Tabs","defaultActive","changeWithArrow","TabList","TabButton","activeClassName","TabPanels","TabPanel","BusinessLabel","BuiltInBenefits","offerTitle","a","href","env","React","CardDisplay","isRtlLanguage","isRtl","wrapperRef","useRef","scrollLeft","setScrollLeft","useState","handleScroll","useIsomorphicLayoutEffect","current","addEventListener","removeEventListener","scrollAmount","ref","Array","isArray","personalItem","businessCard","showPreviousArrow","setShowPreviousArrow","useScrollBarHorizontal","showNextArrow","setShowNextArrow","onChange","useCallback","scrollWidth","rect","arrowButtonRect","useRect","onResize","onScrollArrow","firstAttribute","fill","Fragment","CardDisplayJa","onScroll","hidden","InternationalCards","internationalCardsContent","data","featureTogglesData","useFeatureTogglesQuery","flags","featureFlags","showNewJACobrandLink","isFeatureEnabled","featureToggles","ENABLE_JAPANESE_CO_BRAND_PAGE_LINK","headline","height","Disclaimer","disclaimerContent","error","policyError","useCmsPolicyQuery","policy","logError","generateError","_id","CreditCardsEn","isClient","useIsClient","CardComparison","headingTag","sections","list","isHeading","trim","isDescription","isList","h1","CardDetailsJa","headingTagSections","cardIndex","cardBreakdownDescription","bonusPointsHeading","bonusPointsDescription","bonusPointsItems","builtInBenefitsDescription","earningStructureHeading","earningStructureSubHeading","earningStructureContent","feeContent","data-testid","objectPosition","MoreDetailsJa","creditCardsByLanguage","BuiltInBenefitsJA","CardJA","additionalLinks","imageUrl","img","tabData","CardComparisonDetailsJA","WelcomeOfferJA","EarningPointsJA","renderCardComparisonTabJA","CardBreakdownJa","CardComparisonJA","CreditCards","tJaCards","creditCardOffersData","isLoading","offersError","useCreditCardOffersQuery","fullWidthImageData","brandError","useBrandQuery","brandCode","path","fullWidthImage","brand_noTx","page","filteredItems","reduce","acc","item","some","push","logWarning","imageHeadlinerFmt","imageCompound","v","internationalCreditCards","creditCardOffers_noTx","otherCreditCards","Spinner","Head","keywords","getThemeClassName","style","backgroundImage","caption","shortDescription","CreditCardsJa","Caption","captionLink","captionLinkTarget","align","metricsOnClick","captionClasses","figcaption","data-e2e","data-osc-product","NextHead","meta","setInitialExpandedAccordions","defaultValue","from","_","idx","containerClassName","iconIndicatorFillColor","iconIndicatorExpandedFillColor","onValueChange","shouldUnmountChildrenWhenCollapsed","headingLevel","rest","uncontrolledExpandedAccordion","setUncontrolledExpandedAccordion","isUncontrolledComponent","value","locale","useRouter","languageDirection","getLanguageDirection","isStackedAccordion","handleIconType","iconSize","RadixAccordion","dir","collapsible","handleValueChange","values","isExpanded","buttonLabel","accessibleButtonLabel","iconVariant","shouldRenderChildren","buttonWrapperClassName","data-osc","asChild","TriggerWrapper","as","button","expandedClassName","collapsedClassName","Wrapper"],"sourceRoot":"","ignoreList":[0,1]}