{"version":3,"sources":["webpack:///./presentation/components/ribbons/ads/AdvertCard.tsx","webpack:///src/presentation/components/ribbons/ads/AdvertCard.stylesheet.ts","webpack:///./presentation/components/ribbons/ads/Ads.tsx","webpack:///../node_modules/@uds/badge/dist/es/index.js","webpack:///../node_modules/linaria/esm/react/styled.js","webpack:///../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///src/presentation/components/common/Card/CardImage.stylesheet.ts","webpack:///./presentation/components/common/Card/CardImage.tsx","webpack:///./presentation/components/common/Card/ConnectedCardImage.tsx","webpack:///src/presentation/components/common/Card/Card.stylesheet.ts","webpack:///./presentation/components/common/Card/Card.tsx"],"names":["PureAdvert","colorway","imageUrl","illustration","imageAspectRatio","imagesWithAspectRatios","precursor","badge","title","body","hBaseline","ctas","ribbonId","breakpoints","useBreakpoints","styles","useStyles","default","category","display","alignItems","color","cssTheme","grey02","marginTop","flexGrow","grey04","useStylesheet","hasBadge","length","hasPrecursor","isNilOrEmpty","activeImage","getActiveImageWithAspectRatios","Card","image","url","style","component","Shortcode","against","Against","LIGHT","code","kind","BadgeKind","HIGHLIGHT","depth","displayName","PureAds","id","loading","name","ads","layout","Ribbon","type","Type","ADS","map","ad","i","AdvertCard","concat","String","visibilitySet","errorBoundary","Kind","colors","PRIMARY","WARNING","ALERT","NEUTRAL","MUTED","PureBadge$1","_ref","children","tag","flush","classNames","headingXxs","badgeWrapper","badgeTag","getClassNames","className","restOp","obj","keysToExclude","Object","keys","filter","prop","includes","reduce","acc","curr","assign","warnIfInvalid","value","componentName","options","render","props","ref","as","class","rest","filteredProps","indexOf","key","vars","variable","result","unit","__linaria","Result","innerRef","extends","reactPropsRegex","index","fn","cache","arg","undefined","test","charCodeAt","StyledContent","inner","fit","CardImage","ctaUrl","externalRoutes","currentLanguage","theme","useTheme","assetUrl","createImageUrl","ratioPercentage","imageAspectRatioPercentage","alt","createImageAlt","classnames","hasIllustration","cx","getClassnames","percentage","src","to","ConnectedCardImage","useCurrentLanguage","useExternalRoutes","StyledRoot","cta","hasImage","Boolean","footer","last","behavior","Behavior","NAVIGATION","goto","getCtaUrl","showBorder","Colorway","PRIMARY_GRADIENT","DARK","hasPanelBorder","backgroundAccent","getBackgroundAccent","hasMultipleCtas","border","background","content","CallToAction"],"mappings":"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","file":"pex-static/90/19.582769c28af370dff60e.chunk.js","sourcesContent":["import React from 'react';\nimport { PreHeading02, Heading04, BodyCopy01 } from '@ux/typography';\nimport Badge, { Kind as BadgeKind } from '@uds/badge';\nimport { useBreakpoints } from '@ux/responsive';\nimport { CTA } from 'core/ribbons/cta';\nimport { ImagesWithAspectRatios } from 'core/ribbons/primitives';\nimport { Against, Colorway } from 'domain/constants/colorway';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\nimport getActiveImageWithAspectRatios from 'presentation/utils/getActiveImageWithAspectRatios';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport Card from 'components/common/Card';\n\nimport useStylesheet from './AdvertCard.stylesheet';\n\nexport interface AdvertCardProps {\n imageUrl?: string;\n illustration?: string;\n imageAspectRatio?: ImageAspectRatio;\n imagesWithAspectRatios?: ImagesWithAspectRatios;\n precursor: ShortcodeProps;\n badge: string;\n title: ShortcodeProps;\n body: ShortcodeProps;\n ctas: Array;\n}\n\ninterface OuterProps extends AdvertCardProps {\n key?: string;\n colorway: Colorway;\n hBaseline?: number;\n ribbonId: string;\n}\n\nconst PureAdvert = ({\n colorway,\n imageUrl,\n illustration,\n imageAspectRatio,\n imagesWithAspectRatios,\n precursor,\n badge,\n title,\n body,\n hBaseline = 1,\n ctas,\n ribbonId,\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n const { styles } = useStylesheet();\n const hasBadge = badge && badge.length > 0;\n const hasPrecursor = !isNilOrEmpty(precursor);\n const activeImage = getActiveImageWithAspectRatios(\n breakpoints,\n {\n imageUrl,\n imageAspectRatio,\n },\n imagesWithAspectRatios,\n );\n\n return (\n \n <>\n {hasPrecursor && (\n \n <>\n \n {hasBadge && {badge}}\n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n );\n};\n\nPureAdvert.displayName = 'Advert';\n\nexport default PureAdvert;\n","import { cssTheme } from '@ux/theme-utils';\nimport { useStyles } from '@team-griffin/stylr';\n\nexport default () =>\n useStyles({\n default: {\n category: {\n display: 'flex',\n alignItems: 'center',\n color: cssTheme.palette.grey02,\n },\n title: {\n color: cssTheme.palette.grey02,\n },\n body: {\n marginTop: cssTheme.gu2,\n flexGrow: 1,\n color: cssTheme.palette.grey04,\n },\n },\n });\n","import React, { ComponentType } from 'react';\nimport Slider from '@ux/slider';\nimport { RibbonProps, Type } from 'domain/constants/ribbons';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\n\nimport AdvertCard, { AdvertCardProps } from './AdvertCard';\nimport Ribbon from '../Ribbon';\n\ninterface OuterProps extends RibbonProps {\n ads: Array;\n}\n\nexport const PureAds = ({ id, colorway, loading, name, hBaseline = 1, ads, layout }: OuterProps) => (\n \n \n {ads.map((ad, i) => (\n \n ))}\n \n \n);\n\nPureAds.displayName = 'Ads';\n\nexport default visibilitySet(errorBoundary(PureAds)) as ComponentType;\n","import { classNames, Heading06 } from '@uds/typography';\nimport { cx } from 'linaria';\nimport './badge.stylesheet_1h9r18g.css';\nimport { jsxs, jsx } from 'react/jsx-runtime';\n\nlet Kind;\n\n(function (Kind) {\n Kind[\"PRIMARY\"] = \"PRIMARY\";\n Kind[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n Kind[\"WARNING\"] = \"WARNING\";\n Kind[\"ALERT\"] = \"ALERT\";\n Kind[\"NEUTRAL\"] = \"NEUTRAL\";\n Kind[\"MUTED\"] = \"MUTED\";\n})(Kind || (Kind = {}));\n\nconst badgeWrapper = \"b8lv12d\";\nconst flushed = \"f1jgljld\";\nconst badge = \"b1kjbh2x\";\nconst badgeTag = \"b1im6t4a\";\nconst colors = {\n PRIMARY: \"pi7709t\",\n HIGHLIGHT: \"h13te26t\",\n WARNING: \"wfo8huu\",\n ALERT: \"a1ts93wr\",\n NEUTRAL: \"nh9nguv\",\n MUTED: \"myd1t1i\"\n};\nconst getClassNames = _ref => {\n let {\n kind,\n flush\n } = _ref;\n return {\n badge: cx(badge, classNames.headingXxs, kind != null && colors[kind]),\n badgeWrapper: cx(badgeWrapper, flush && flushed),\n badgeTag\n };\n};\n\nconst PureBadge = _ref => {\n let {\n children,\n tag,\n kind = Kind.PRIMARY,\n flush = false\n } = _ref;\n const classNames = getClassNames({\n kind,\n flush\n });\n return /*#__PURE__*/jsxs(\"div\", {\n className: classNames.badgeWrapper,\n children: [/*#__PURE__*/jsx(\"div\", {\n className: classNames.badge,\n children: children\n }), tag != null && /*#__PURE__*/jsx(\"span\", {\n className: classNames.badgeTag,\n children: /*#__PURE__*/jsx(Heading06, {\n component: \"span\",\n children: tag\n })\n })]\n });\n};\n\nvar PureBadge$1 = PureBadge;\n\nexport { PureBadge$1 as Badge, Kind, PureBadge$1 as default };\n","/**\n * This file contains an runtime version of `styled` component. Responsibilities of the component are:\n * - returns ReactElement based on HTML tag used with `styled` or custom React Component\n * - injects classNames for the returned component\n * - injects CSS variables used to define dynamic styles based on props\n */\nimport * as React from 'react'; // eslint-disable-line import/no-extraneous-dependencies\n\nimport validAttr from '@emotion/is-prop-valid';\nimport { cx } from '../index';\n\n// Workaround for rest operator\nconst restOp = (obj, keysToExclude) => Object.keys(obj).filter(prop => !keysToExclude.includes(prop)).reduce((acc, curr) => Object.assign(acc, {\n [curr]: obj[curr]\n}), {}); // rest operator workaround\n\n\nconst warnIfInvalid = (value, componentName) => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof value === 'string' || // eslint-disable-next-line no-self-compare\n typeof value === 'number' && isFinite(value)) {\n return;\n }\n\n const stringified = typeof value === 'object' ? JSON.stringify(value) : String(value); // eslint-disable-next-line no-console\n\n console.warn(`An interpolation evaluated to '${stringified}' in the component '${componentName}', which is probably a mistake. You should explicitly cast or transform the value to a string.`);\n }\n}; // If styled wraps custom component, that component should have className property\n\n\nfunction styled(tag) {\n return options => {\n if (process.env.NODE_ENV !== 'production') {\n if (Array.isArray(options)) {\n // We received a strings array since it's used as a tag\n throw new Error('Using the \"styled\" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly. See https://github.com/callstack/linaria#setup');\n }\n }\n\n const render = (props, ref) => {\n const {\n as: component = tag,\n class: className\n } = props;\n const rest = restOp(props, ['as', 'class']);\n let filteredProps; // Check if it's an HTML tag and not a custom element\n\n if (typeof component === 'string' && component.indexOf('-') === -1) {\n filteredProps = {}; // eslint-disable-next-line guard-for-in\n\n for (const key in rest) {\n if (key === 'as' || validAttr(key)) {\n // Don't pass through invalid attributes to HTML elements\n filteredProps[key] = rest[key];\n }\n }\n } else {\n filteredProps = rest;\n }\n\n filteredProps.ref = ref;\n filteredProps.className = cx(filteredProps.className || className, options.class);\n const {\n vars\n } = options;\n\n if (vars) {\n const style = {}; // eslint-disable-next-line guard-for-in\n\n for (const name in vars) {\n const variable = vars[name];\n const result = variable[0];\n const unit = variable[1] || '';\n const value = typeof result === 'function' ? result(props) : result;\n warnIfInvalid(value, options.name);\n style[`--${name}`] = `${value}${unit}`;\n }\n\n filteredProps.style = Object.assign(style, filteredProps.style);\n }\n\n if (tag.__linaria && tag !== component) {\n // If the underlying tag is a styled component, forward the `as` prop\n // Otherwise the styles from the underlying component will be ignored\n filteredProps.as = component;\n return /*#__PURE__*/React.createElement(tag, filteredProps);\n }\n\n return /*#__PURE__*/React.createElement(component, filteredProps);\n };\n\n const Result = React.forwardRef ? /*#__PURE__*/React.forwardRef(render) : // React.forwardRef won't available on older React versions and in Preact\n // Fallback to a innerRef prop in that case\n props => {\n const rest = restOp(props, ['innerRef']);\n return render(rest, props.innerRef);\n };\n Result.displayName = options.name; // These properties will be read by the babel plugin for interpolation\n\n Result.__linaria = {\n className: options.class,\n extends: tag\n };\n return Result;\n };\n}\n\nexport default process.env.NODE_ENV !== 'production' ? new Proxy(styled, {\n get(o, prop) {\n return o(prop);\n }\n\n}) : styled;\n//# sourceMappingURL=styled.js.map","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\nimport { styled } from 'linaria/react';\n\ninterface ContentProps {\n percentage?: string;\n}\nexport const StyledContent = styled.div`\n position: relative;\n height: 0;\n padding-top: ${(props) => props.percentage ?? 0};\n overflow: hidden;\n`;\n\nconst inner = {\n default: css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n\n * {\n width: 100%;\n height: 100%;\n }\n `,\n background: css`\n background-color: ${cssTheme.palette.grey09};\n `,\n};\n\n// 16:9 area, full height, crop sides if needed\nconst fit = {\n height: css`\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n height: 100%;\n width: auto;\n `,\n width: css`\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n height: auto;\n `,\n};\n\ninterface Props {\n hasIllustration: boolean;\n}\n\nexport const getClassnames = ({ hasIllustration }: Props) => {\n return {\n inner: cx(inner.default, !hasIllustration && inner.background),\n image: cx(fit.height, hasIllustration && fit.width),\n };\n};\n","import { useTheme } from '@ux/theme-utils';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport createImageUrl from 'presentation/utils/createImageUrl';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport { imageAspectRatioPercentage } from 'presentation/utils/imageAspectRatioPercentage';\n\nimport { getClassnames, StyledContent } from './CardImage.stylesheet';\nimport { OuterProps } from './ConnectedCardImage';\n\ninterface InnerProps extends OuterProps {\n currentLanguage?: string;\n externalRoutes?: Array;\n}\n\nconst CardImage = ({\n ctaUrl,\n imageAspectRatio,\n illustration,\n imageUrl,\n externalRoutes,\n currentLanguage,\n}: InnerProps) => {\n const { theme } = useTheme();\n const assetUrl = createImageUrl(\n {\n illustration,\n imageUrl,\n },\n theme,\n currentLanguage,\n );\n\n const ratioPercentage = imageAspectRatioPercentage(imageAspectRatio);\n const alt = createImageAlt({ imageUrl });\n\n const classnames = getClassnames({\n hasIllustration: illustration != null,\n });\n\n return (\n \n
\n {ctaUrl == null ? (\n {alt}\n ) : (\n \n {alt}\n \n )}\n
\n
\n );\n};\n\nCardImage.displayName = 'CardImage';\nexport default CardImage;\n","import React from 'react';\nimport { useExternalRoutes } from 'domain/selectors/common';\nimport { useCurrentLanguage } from 'domain/selectors/page';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\n\nimport { default as CardImage } from './CardImage';\n\nexport interface OuterProps {\n imageUrl: string | undefined;\n illustration: string | undefined;\n imageAspectRatio?: ImageAspectRatio;\n ctaUrl?: string | null;\n}\n\nconst ConnectedCardImage = (props: OuterProps) => {\n const currentLanguage = useCurrentLanguage();\n const externalRoutes = useExternalRoutes();\n\n return ;\n};\n\nexport default ConnectedCardImage;\n","import { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\nimport { styled } from 'linaria/react';\n\ninterface RootProps {\n last: boolean | undefined;\n}\nexport const StyledRoot = styled.div`\n &,\n > div {\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n overflow: hidden;\n margin-bottom: ${(props) => (props.last === true ? 0 : 'inherit')};\n`;\n\nconst content = css`\n &,\n > div {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst body = css`\n width: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n`;\n\nconst ctas = css`\n overflow: hidden;\n margin-top: ${cssTheme.gu2};\n`;\n\nconst cta = {\n default: css`\n margin-top: ${cssTheme.gu1};\n `,\n spaceCtas: css`\n ${cssTheme.breakpoints.sm} {\n margin-right: ${cssTheme.gu1};\n display: inline-block;\n }\n `,\n};\n\ninterface Props {\n hasMultipleCtas: boolean;\n}\nexport const getClassnames = ({ hasMultipleCtas }: Props) => {\n return {\n content,\n body,\n ctas,\n cta: cx(cta.default, hasMultipleCtas === true && cta.spaceCtas),\n };\n};\n","import { ReactNode } from 'react';\nimport { useTheme } from '@ux/theme-utils';\nimport PaddingBox from '@ux/padding-box';\nimport Panel from '@ux/panel';\nimport { Colorway } from 'domain/constants/colorway';\nimport { getBackgroundAccent } from 'presentation/utils/colorway';\nimport CallToAction from 'components/common/CallToAction';\nimport { CTA } from 'core/ribbons/cta';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\nimport { Behavior } from 'domain/constants/callToAction';\n\nimport CardImage from './ConnectedCardImage';\nimport { getClassnames, StyledRoot } from './Card.stylesheet';\n\ntype ImageType = {\n imageUrl: string | undefined;\n illustration: string | undefined;\n alt?: string;\n imageAspectRatio?: ImageAspectRatio;\n};\n\ninterface CardProps {\n ctas: Array | undefined;\n ribbonId: string;\n colorway: Colorway;\n image: ImageType;\n footer?: ReactNode;\n children: ReactNode;\n last?: boolean;\n}\n\nconst hasImage = (image: ImageType) => Boolean(image?.imageUrl || image?.illustration);\n\nconst getCtaUrl = (ctas: Array | undefined) => {\n const cta = ctas?.[0];\n if (cta?.behavior?.type === Behavior.NAVIGATION) {\n return cta?.behavior?.goto;\n }\n return null;\n};\n\nconst hasPanelBorder = (colorway: Colorway) => {\n return [Colorway.PRIMARY, Colorway.PRIMARY_GRADIENT, Colorway.DARK, Colorway.HIGHLIGHT].includes(colorway);\n};\n\nconst Card = ({ image, children, footer, ctas = [], ribbonId, colorway, last }: CardProps) => {\n const ctaUrl = getCtaUrl(ctas);\n const showBorder = !hasPanelBorder(colorway);\n\n const { theme } = useTheme();\n const backgroundAccent = getBackgroundAccent(theme, colorway);\n const against = colorway === Colorway.LIGHT ? Colorway.NEUTRAL : Colorway.LIGHT;\n\n const classnames = getClassnames({\n hasMultipleCtas: ctas.length > 1,\n });\n\n return (\n \n \n {hasImage(image) && }\n
\n \n
{children}
\n \n
\n
\n
\n
\n );\n};\n\nCard.displayName = 'Card';\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n getCtaUrl,\n hasImage,\n};\n\nexport default Card;\n"],"sourceRoot":""}