{"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\"> </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]}