{"version":3,"sources":["webpack:///./presentation/utils/flexAnchors.ts","webpack:///../node_modules/ulid/dist/index.esm.js","webpack:///src/presentation/components/ribbons/billboard/CornerEmbellishments.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/CornerEmbellishments.tsx","webpack:///./presentation/components/ribbons/billboard/Body.tsx","webpack:///src/presentation/components/ribbons/billboard/Body.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Scroll.tsx","webpack:///./presentation/components/ribbons/billboard/Scroll.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/styles.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.stylesheet.ts","webpack:///./presentation/utils/getBreakpoints.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/Duo.tsx","webpack:///src/presentation/components/ribbons/billboard/layouts/Duo.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/constants.ts","webpack:///./presentation/components/ribbons/billboard/Tile.tsx","webpack:///src/presentation/components/ribbons/billboard/Tile.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Tiles.tsx","webpack:///./presentation/components/ribbons/billboard/Tiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/layouts/WithTiles.tsx","webpack:///src/presentation/components/ribbons/billboard/layouts/WithTiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Billboard.tsx","webpack:///./presentation/components/ribbons/billboard/index.ts","webpack:///./domain/constants/anchor.ts"],"names":["anchorMap","Anchor","TOP","Align","FLEX_START","CENTER","BOTTOM","FLEX_END","defaultAnchors","desiredAnchors","r","a","b","createError","message","err","Error","source","ENCODING","ENCODING_LEN","length","TIME_MAX","Math","pow","randomChar","prng","rand","floor","charAt","encodeTime","now","len","isNaN","Number","isInteger","mod","str","encodeRandom","detectPrng","allowInsecure","arguments","undefined","root","window","browserCrypto","crypto","msCrypto","buffer","Uint8Array","getRandomValues","nodeCrypto","randomBytes","readUInt8","e","console","error","random","ulid","currPrng","seedTime","Date","factory","cornerToPosition","gu2CornerSize","gu","gu2px","spacing","generateCornerImages","isMinMd","embellishments","cornerEmbellishments","size","cornerSize","filteredEmbellishments","Object","embellishment","image","urlLanguageParse","currentLanguage","position","repeat","cornerArrayToCssProperty","cornerImages","joinedPropArray","PureCornerEmbellishments","styles","breakpoints","useBreakpoints","theme","useTheme","useStyles","default","pointerEvents","top","bottom","left","right","longhand","useStylesheet","style","displayName","withLanguage","PureBody","hBaseline","text","additionalText","footerText","ctas","colorway","layout","ribbonId","isMinSm","body","precursor","title","hasBodyText","isNilOrEmpty","hasCta","hasPrecursor","hasTitle","hasFooterText","alignment","findResponsiveItem","Alignment","color","getTitleColor","subtitle","getBodyColor","marginTop","display","flexDirection","overflow","cta","smallprint","opacity","cssSides","Side","marginBottom","modifier","textAlign","justifyContent","depth","Shortcode","against","code","component","CallToAction","getAgainst","block","ButtonSize","LG","index","i","side","X","PureBillboardScroll","onScrollClick","scroller","paddingTop","scrollAgainst","Colorway","PRIMARY_GRADIENT","PRIMARY","type","onClick","kind","Kind","TERTIARY","glyph","id","halfContainerWidth","width","space","getActiveAnchor","anchor","from","getActive","flexAnchors","props","breakpointProps","getBreakpoints","activeAnchor","content","flex","flexBasis","PureBillboardGeneric","showScroll","background","hideGradient","justify","alignmentMobile","STARTING","alignmentTablet","Justify","Background","vblock","xs","md","lg","Body","Scroll","PureBillboardDuo","duoLayout","isMinXl","startDuoLayout","maxWidth","isDuoLayoutMd","marginLeft","isDuoLayoutLg","isDuoLayoutXl","marginRight","isMinLg","Layout","PureTile","action","rightTile","tilesSide","backgroundColor","getBackgroundColor","textDecoration","height","ribbonPadding","shrinkLeading","shrinkTrailing","leftTile","container","paddingRight","box","wrapperText","wrapperIcon","minWidth","icon","hover","animation","animationTimingFunction","animationDirection","animationFillMode","leftTileMedium","rightTileMedium","leftTileLarge","tilesStartLarge","TilesSide","START","Component","withUrlComponent","href","url","to","linkAttribution","withHover","callToAction","tileAnimation","PureTiles","tiles","tile","WebkitFlexBasis","Tile","PureBillboardTiles","webkitFlexBasis","row","breakpointsValues","lgStartTile","direction","END","Direction","ROW","ROW_REVERSE","gutters","hasTiles","Tiles","BillboardLayout","PureBillboard","loading","name","duo","fitSet","fit","Fit","FILL","FULLSCREEN","shouldShowScroll","bottomScrollName","setBottomScrollName","useState","scrollTo","duration","delay","smooth","scrollHandler","Ribbon","Type","BILLBOARD","flush","CornerEmbellishments","errorBoundary","visibilitySet","Billboard"],"mappings":"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","file":"pex-static/90/9.da7192875ee255d3ff5b.chunk.js","sourcesContent":["import * as r from 'ramda';\nimport { Anchor } from 'domain/constants/anchor';\nimport { Align } from '@ux/grid';\n\nconst anchorMap = {\n [Anchor.TOP]: Align.FLEX_START,\n [Anchor.CENTER]: Align.CENTER,\n [Anchor.BOTTOM]: Align.FLEX_END,\n};\n\nexport type AnchorArray = [Anchor | null, Anchor | null, Anchor | null];\nexport default (defaultAnchors: AnchorArray, desiredAnchors: AnchorArray | undefined) => {\n return r.pipe(\n r.defaultTo([null, null, null]),\n r.zipWith((a: Anchor, b: Anchor) => {\n if (b == null) {\n return anchorMap[a];\n }\n\n return anchorMap[b];\n }, defaultAnchors),\n )(desiredAnchors) as unknown as AnchorArray;\n};\n","function createError(message) {\n var err = new Error(message);\n err.source = \"ulid\";\n return err;\n}\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nvar ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nvar ENCODING_LEN = ENCODING.length;\nvar TIME_MAX = Math.pow(2, 48) - 1;\nvar TIME_LEN = 10;\nvar RANDOM_LEN = 16;\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\nfunction incrementBase32(str) {\n var done = undefined;\n var index = str.length;\n var char = void 0;\n var charIndex = void 0;\n var maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError(\"incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw createError(\"cannot increment this string\");\n}\nfunction randomChar(prng) {\n var rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Error(now + \" must be a number\");\n }\n if (now > TIME_MAX) {\n throw createError(\"cannot encode time greater than \" + TIME_MAX);\n }\n if (now < 0) {\n throw createError(\"time must be positive\");\n }\n if (Number.isInteger(now) === false) {\n throw createError(\"time must be an integer\");\n }\n var mod = void 0;\n var str = \"\";\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction encodeRandom(len, prng) {\n var str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError(\"malformed ulid\");\n }\n var time = id.substr(0, TIME_LEN).split(\"\").reverse().reduce(function (carry, char, index) {\n var encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError(\"invalid character found: \" + char);\n }\n return carry += encodingIndex * Math.pow(ENCODING_LEN, index);\n }, 0);\n if (time > TIME_MAX) {\n throw createError(\"malformed ulid, timestamp too large\");\n }\n return time;\n}\nfunction detectPrng() {\n var allowInsecure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var root = arguments[1];\n\n if (!root) {\n root = typeof window !== \"undefined\" ? window : null;\n }\n var browserCrypto = root && (root.crypto || root.msCrypto);\n if (browserCrypto) {\n return function () {\n var buffer = new Uint8Array(1);\n browserCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n } else {\n try {\n var nodeCrypto = require(\"crypto\");\n return function () {\n return nodeCrypto.randomBytes(1).readUInt8() / 0xff;\n };\n } catch (e) {}\n }\n if (allowInsecure) {\n try {\n console.error(\"secure crypto unusable, falling back to insecure Math.random()!\");\n } catch (e) {}\n return function () {\n return Math.random();\n };\n }\n throw createError(\"secure crypto unusable, insecure Math.random not allowed\");\n}\nfunction factory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);\n };\n}\nfunction monotonicFactory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n var lastTime = 0;\n var lastRandom = void 0;\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n if (seedTime <= lastTime) {\n var incrementedRandom = lastRandom = incrementBase32(lastRandom);\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n var newRandom = lastRandom = encodeRandom(RANDOM_LEN, currPrng);\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\nvar ulid = factory();\n\nexport { replaceCharAt, incrementBase32, randomChar, encodeTime, encodeRandom, decodeTime, detectPrng, factory, monotonicFactory, ulid };\n","import { useStyles } from '@team-griffin/stylr';\nimport longhand from '@team-griffin/css-longhand';\nimport { gu2px, Theme, useTheme } from '@ux/theme-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport { useBreakpoints } from '@ux/responsive';\n\nimport { CornerEmbellishmentsType } from './CornerEmbellishments';\n\nconst cornerToPosition = (str: string) => {\n switch (str) {\n case 'topLeft':\n return '0 0';\n case 'topRight':\n return 'right 0';\n case 'bottomLeft':\n return '0 bottom';\n case 'bottomRight':\n return 'right bottom';\n default:\n return '';\n }\n};\n\n// @ts-ignore: error after upgrading to ux-configs\nconst gu2CornerSize = (gu: number, spacing?: number) => `${gu2px(gu, spacing)}px ${gu2px(gu, spacing)}px`;\n\nconst cornerSize = ({ theme, isMinSm, isMinMd }: { theme: Theme; isMinSm: boolean; isMinMd: boolean }) => {\n const { spacing } = theme;\n if (isMinMd) {\n return gu2CornerSize(6, spacing);\n }\n if (isMinSm) {\n return gu2CornerSize(5, spacing);\n }\n return gu2CornerSize(4, spacing);\n};\n\nconst generateCornerImages = ({\n cornerEmbellishments,\n currentLanguage,\n theme,\n isMinSm,\n isMinMd,\n}: {\n cornerEmbellishments: CornerEmbellishmentsType;\n currentLanguage: string;\n theme: Theme;\n isMinSm: boolean;\n isMinMd: boolean;\n}) => {\n const embellishments = cornerEmbellishments ?? {};\n const size = cornerSize({\n theme,\n isMinSm,\n isMinMd,\n });\n const filteredEmbellishments = [] as Array<{\n image: string;\n size: string;\n position: string;\n repeat: string;\n }>;\n Object.keys(embellishments).forEach((corner: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight') => {\n const embellishment = embellishments[corner];\n if (embellishment != null) {\n filteredEmbellishments.push({\n image: `url(${urlLanguageParse(embellishment, currentLanguage)})`,\n size,\n position: cornerToPosition(corner),\n repeat: 'no-repeat',\n });\n }\n });\n return filteredEmbellishments;\n};\n\nconst cornerArrayToCssProperty = (\n prop: 'image' | 'size' | 'position' | 'repeat',\n cornerImages: Array<{\n image: string;\n size: string;\n position: string;\n repeat: string;\n }>,\n) => {\n const joinedPropArray: Array = [];\n cornerImages.forEach((image) => {\n joinedPropArray.push(image[prop]);\n });\n return joinedPropArray.join(',');\n};\n\nexport default ({\n currentLanguage,\n cornerEmbellishments,\n}: {\n currentLanguage: string;\n cornerEmbellishments: CornerEmbellishmentsType;\n}) => {\n const breakpoints = useBreakpoints();\n const { theme } = useTheme();\n const cornerImages = generateCornerImages({\n currentLanguage,\n cornerEmbellishments,\n ...breakpoints,\n theme,\n });\n return useStyles(\n {\n default: {\n root: {\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n ...longhand('background', {\n size: cornerArrayToCssProperty('size', cornerImages),\n image: cornerArrayToCssProperty('image', cornerImages),\n position: cornerArrayToCssProperty('position', cornerImages),\n repeat: cornerArrayToCssProperty('repeat', cornerImages),\n }),\n },\n },\n },\n [],\n );\n};\n","import React, { ComponentType } from 'react';\nimport withLanguage from 'presentation/hocs/withLanguage';\n\nimport useStylesheet from './CornerEmbellishments.stylesheet';\n\nexport type CornerEmbellishmentsType = {\n topRight?: string;\n bottomRight?: string;\n bottomLeft?: string;\n topLeft?: string;\n};\ninterface OuterProps {\n cornerEmbellishments: CornerEmbellishmentsType;\n}\n\nexport interface InnerProps extends OuterProps {\n currentLanguage: string;\n}\nconst PureCornerEmbellishments = ({ currentLanguage, cornerEmbellishments }: InnerProps) => {\n const { styles } = useStylesheet({\n currentLanguage,\n cornerEmbellishments,\n });\n return
;\n};\n\nPureCornerEmbellishments.displayName = 'CornerEmbellishments';\n\nexport default withLanguage(PureCornerEmbellishments) as ComponentType;\n","import React, { Fragment, ReactNode } from 'react';\nimport { PreHeading01, Heading01, SubHeading01 } from '@ux/typography';\nimport PaddingBox, { Side } from '@ux/padding-box';\nimport CallToAction from 'components/common/CallToAction';\nimport { Size as ButtonSize } from '@ux/button';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport { getAgainst } from 'presentation/utils/colorway';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { CTA } from 'core/ribbons/cta';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\n\nimport useStylesheet from './Body.stylesheet';\n\nexport interface OuterProps {\n hBaseline?: number;\n text: {\n precursor?: ShortcodeProps;\n title?: ShortcodeProps;\n body?: ShortcodeProps;\n };\n additionalText?: string | ReactNode;\n footerText?: string | ReactNode;\n ctas: Array;\n colorway: Colorway;\n layout: Layout;\n ribbonId: string;\n}\n\ndeclare const cta: CTA;\ndeclare const i: number;\n\nconst PureBody = ({\n hBaseline = 1,\n text,\n additionalText,\n footerText,\n ctas,\n colorway,\n layout,\n ribbonId,\n}: OuterProps) => {\n const { isMinSm } = useBreakpoints();\n const { body, precursor, title } = text;\n const hasBodyText = !isNilOrEmpty(body);\n const hasCta = !isNilOrEmpty(ctas);\n const hasPrecursor = !isNilOrEmpty(precursor);\n const hasTitle = !isNilOrEmpty(title);\n const hasFooterText = !isNilOrEmpty(footerText);\n const { styles } = useStylesheet({\n isMinSm,\n layout,\n colorway,\n });\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {additionalText}\n \n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
{footerText}
\n
\n
\n
\n );\n};\n\nPureBody.displayName = 'BillboardBody';\n\nexport default PureBody;\n","import { useStyles } from '@team-griffin/stylr';\nimport { getTitleColor, getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { modifier } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { smallprint } from '@ux/type-size';\nimport { Layout } from 'domain/constants/layout';\nimport { useBreakpoints } from '@ux/responsive';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Colorway } from '@uds/theme-utils';\n\nexport default ({ colorway, layout, isMinSm }: { colorway: Colorway; layout: Layout; isMinSm: Boolean }) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n const alignment = findResponsiveItem(useBreakpoints(), [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n return useStyles(\n {\n default: {\n root: {\n position: 'relative',\n },\n precursor: {\n color: getTitleColor(theme, colorway),\n },\n title: {\n color: getTitleColor(theme, colorway),\n },\n subtitle: {\n color: getBodyColor(theme, colorway),\n marginTop: gu2px(2, spacing),\n },\n ctas: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: gu2px(2, spacing),\n overflow: 'hidden',\n },\n cta: {\n marginTop: gu2px(1, spacing),\n },\n footerText: {\n marginTop: gu2px(1, spacing),\n ...smallprint(),\n color: getBodyColor(theme, colorway),\n opacity: 0.9,\n },\n },\n\n isMinSm: {\n ctas: {\n flexDirection: 'row',\n ...cssSides('margin', Side.X, 0 - gu2px(0.5, spacing)),\n },\n cta: {\n marginBottom: 0,\n ...cssSides('margin', Side.X, gu2px(0.5, spacing)),\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n footerText: {\n textAlign: 'center',\n },\n ctas: {\n justifyContent: 'center',\n },\n },\n },\n [{ isMinSm }, { alignment }],\n );\n};\n","import React from 'react';\nimport PaddingBox from '@ux/padding-box';\nimport { Button, Kind } from '@ux/button';\nimport Message from '@ux/message';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\nimport useStylesheet from './Scroll.stylesheet';\n\ninterface OuterProps {\n colorway: Colorway;\n onScrollClick: (evt: any) => any;\n layout: Layout;\n}\n\nexport const PureBillboardScroll = ({ onScrollClick, layout, colorway }: OuterProps) => {\n const { styles } = useStylesheet({ layout });\n const scrollAgainst = colorway === Colorway.PRIMARY_GRADIENT ? Colorway.PRIMARY : colorway;\n return (\n \n \n \n );\n};\n\nPureBillboardScroll.displayName = 'BillboardScroll';\n\nexport default PureBillboardScroll;\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { modifier } from '@ux/style-utils';\nimport { Layout } from 'domain/constants/layout';\n\nexport default ({ layout: { alignment } }: { layout: Layout }) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n return useStyles(\n {\n default: {\n scroller: {\n paddingTop: gu2px(2, spacing),\n },\n },\n [modifier('alignment', Alignment.CENTER)]: {\n scroller: {\n textAlign: 'center',\n },\n },\n },\n [{ alignment }],\n );\n};\n","import { gu2px } from '@ux/theme-utils';\nimport flexAnchors, { AnchorArray } from 'presentation/utils/flexAnchors';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Anchor } from 'domain/constants/anchor';\nimport { BreakpointProps } from '@ux/responsive';\n\n/**\n * Two layouts: Tiles and Duo, require separate containers to site\n * next to each other, bleed to the far edge, but still maintain the\n * site width rules of a single container. This function returns half\n * the width of the container size\n */\nexport const halfContainerWidth = (width: number, spacing: number) => {\n const space = gu2px(1, spacing);\n // add the extra gu of spacing between the two items\n const withSpacing = width + space;\n // account for the additional padding at either side\n const divided = withSpacing / 2;\n // remove the accounted for spacing\n return divided - space;\n};\n\nexport const getActiveAnchor = (anchor: AnchorArray, breakpoints: BreakpointProps) => {\n const getActive = (from: AnchorArray) => findResponsiveItem(breakpoints, from);\n\n const activeAnchor = getActive(flexAnchors([Anchor.TOP, null, null], anchor));\n\n return activeAnchor;\n};\n\nexport default null;\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { Layout } from 'domain/constants/layout';\nimport { BreakpointProps } from '@ux/responsive';\n\nimport { getActiveAnchor } from '../styles';\n\nexport default (\n props: {\n layout: Layout;\n } & BreakpointProps,\n) => {\n const { layout } = props;\n const { anchor } = layout;\n const breakpointProps = getBreakpoints(props);\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n return useStyles(\n {\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n },\n },\n [{ activeAnchor }],\n );\n};\n","import * as r from 'ramda';\nimport { BreakpointProps } from '@ux/responsive';\n\ninterface anyProps extends BreakpointProps {\n [key: string]: any;\n}\nexport default (props: anyProps) => r.pick(['isMinSm', 'isMinMd', 'isMinLg', 'isMinXl'], props) as anyProps;\n","import React from 'react';\nimport { Container, Row, Column, Justify } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport { Alignment } from 'domain/constants/alignment';\nimport { useBreakpoints } from '@ux/responsive';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport useStylesheet from './Generic.stylesheet';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n hideGradient?: boolean;\n}\n\nexport const PureBillboardGeneric = ({\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n hideGradient,\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n const { styles } = useStylesheet({\n layout,\n ...breakpoints,\n });\n const alignment = findResponsiveItem(breakpoints, [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n const justify = alignment === Alignment.CENTER ? Justify.CENTER : Justify.FLEX_START;\n return (\n <>\n \n
\n \n \n \n \n \n \n \n
\n {showScroll && (\n \n \n \n )}\n \n );\n};\n\nPureBillboardGeneric.displayName = 'BillboardGeneric';\n\nexport default PureBillboardGeneric;\n","import React from 'react';\nimport { Container } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport useStylesheet from './Duo.stylesheet';\n\ninterface OuterProps extends BodyProps {\n layout: Layout;\n colorway: Colorway;\n hBaseline?: number;\n showScroll: boolean;\n duoLayout: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n hideGradient?: boolean;\n}\n\nexport const PureBillboardDuo = ({\n layout,\n colorway,\n hBaseline = 1,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n duoLayout,\n hideGradient,\n}: OuterProps) => {\n const { styles } = useStylesheet({\n layout,\n duoLayout,\n });\n return (\n <>\n \n
\n
\n \n
\n
\n {showScroll && (\n \n
\n \n
\n
\n )}\n \n );\n};\n\nPureBillboardDuo.displayName = 'BillboardDuo';\n\nexport default PureBillboardDuo;\n","import { useStyles } from '@team-griffin/stylr';\nimport { breakpoints, useBreakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\n\nexport default (props: { layout: Layout; duoLayout: boolean }) => {\n const { layout, duoLayout } = props;\n const breakpointProps = useBreakpoints();\n const { isMinSm, isMinMd, isMinLg, isMinXl } = breakpointProps;\n const { theme } = useTheme();\n const { anchor } = layout;\n\n const startDuoLayout = layout.startDuoLayout || false;\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n\n return useStyles(\n {\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n duoLayout: {\n ...cssSides('padding', Side.X, gu2px(1, theme.spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n width: '100%',\n maxWidth: '100%',\n },\n },\n\n isMinSm: {\n duoLayout: {\n maxWidth: breakpoints.sm - gu2px(1, theme.spacing),\n },\n },\n\n isDuoLayoutMd: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.md, theme.spacing),\n marginLeft: 0,\n },\n },\n isDuoLayoutLg: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.lg, theme.spacing),\n },\n },\n isDuoLayoutXl: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.xl, theme.spacing),\n },\n },\n startDuoLayout: {\n duoLayout: {\n marginRight: 0,\n marginLeft: 'auto',\n },\n },\n },\n [\n { activeAnchor },\n { isMinSm },\n { isDuoLayoutMd: duoLayout && isMinMd },\n { isDuoLayoutLg: duoLayout && isMinLg },\n { isDuoLayoutXl: duoLayout && isMinXl },\n { startDuoLayout },\n ],\n );\n};\n","export enum Side {\n START = 'START',\n END = 'END',\n}\n\nexport enum Layout {\n DUO = 'DUO',\n TILES = 'TILES',\n}\n\nexport default null;\n","import React from 'react';\nimport PaddingBox from '@ux/padding-box';\nimport { Heading02, BodyCopy01 } from '@ux/typography';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport Glyph from '@ux/glyphs';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport callToAction from 'presentation/hocs/callToAction';\nimport withUrlComponent from 'presentation/hooks/withUrlComponent';\nimport { withHover } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\nimport useStylesheet from './Tile.stylesheet';\n\nexport interface TileProps {\n colorway: Colorway;\n type: string;\n text: {\n body?: ShortcodeProps;\n title?: ShortcodeProps;\n };\n action: {\n url: string;\n linkAttribution?: string;\n };\n leftTile: boolean;\n rightTile: boolean;\n hBaseline: number;\n layout: Layout;\n}\ninterface OuterProps extends TileProps {\n hover: boolean;\n}\n\nexport const PureTile = ({ colorway, text, hBaseline, action, ...props }: OuterProps) => {\n const { title, body } = text;\n const { theme } = useTheme();\n const { styles } = useStylesheet({\n colorway,\n ...props,\n });\n const { Component } = withUrlComponent({ action });\n return (\n \n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n );\n};\n\nPureTile.displayName = 'Tile';\n\nexport default withHover(callToAction(PureTile));\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { getTitleColor, getBodyColor, getBackgroundColor } from 'presentation/utils/colorway';\nimport { Colorway } from '@uds/theme-utils';\nimport { modifier } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { breakpoints, useBreakpoints } from '@ux/responsive';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Layout } from 'domain/constants/layout';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\n\nimport { halfContainerWidth } from './styles';\nimport { Side as TilesSide } from './constants';\n\nexport default ({\n colorway,\n hover,\n layout,\n leftTile,\n rightTile,\n}: {\n colorway: Colorway;\n hover: boolean;\n layout: Layout;\n leftTile: boolean;\n rightTile: boolean;\n}) => {\n const { theme } = useTheme();\n const { isMinSm, isMinMd, isMinLg, isMinXl } = useBreakpoints();\n\n const alignment = findResponsiveItem(useBreakpoints(), [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n const { tilesSide } = layout;\n const { spacing } = theme;\n\n return useStyles(\n {\n default: {\n // @ts-ignore: error after upgrading to ux-configs\n root: {\n flex: 1,\n flexBasis: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: isMinLg ? 'center' : 'flex-start',\n backgroundColor: getBackgroundColor(theme, colorway),\n textAlign: 'left',\n textDecoration: 'none',\n height: '100%',\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n layout: {\n shrinkLeading: isMinLg && rightTile,\n shrinkTrailing: isMinLg && leftTile,\n },\n }),\n },\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n position: 'relative',\n width: '100%',\n maxWidth: '100%',\n },\n title: {\n color: getTitleColor(theme, colorway),\n paddingRight: gu2px(3, spacing),\n },\n subtitle: {\n color: getBodyColor(theme, colorway),\n marginTop: gu2px(2, spacing),\n },\n box: {\n display: 'flex',\n },\n wrapperText: {\n flex: 1,\n flexBasis: 'auto',\n paddingRight: gu2px(2, spacing),\n },\n wrapperIcon: {\n minWidth: gu2px(3, spacing),\n position: 'relative',\n paddingTop: gu2px(0.5, spacing),\n },\n icon: {\n color: getTitleColor(theme, colorway),\n opacity: 1,\n width: gu2px(3, spacing),\n position: 'absolute',\n right: 0,\n },\n },\n hover: {\n root: {\n textDecoration: 'none',\n },\n icon: {\n opacity: 1,\n marginRight: 0,\n animation: 'arrowAnimation 0.3s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationFillMode: 'forwards',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n },\n\n isMinSm: {\n container: {\n maxWidth: breakpoints.sm - gu2px(1, spacing),\n },\n },\n\n isMinMd: {\n container: {\n // theu're side by side so need an additional 1GU removing\n maxWidth: halfContainerWidth(breakpoints.md, spacing),\n },\n },\n\n isMinLg: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.lg, spacing),\n },\n },\n isMinXl: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.xl, spacing),\n },\n },\n leftTileMedium: {\n container: {\n marginRight: 0,\n },\n },\n rightTileMedium: {\n container: {\n marginLeft: 0,\n },\n },\n leftTileLarge: {\n container: {\n marginRight: 'auto',\n marginLeft: 0,\n },\n },\n\n tilesStartLarge: {\n container: {\n marginLeft: 'auto',\n marginRight: 0,\n },\n },\n },\n [\n { hover },\n { alignment },\n { isMinSm },\n { isMinMd },\n { isMinLg },\n { isMinXl },\n { leftTileMedium: leftTile && isMinMd },\n { rightTileMedium: rightTile && isMinMd },\n { leftTileLarge: leftTile && isMinLg },\n { tilesStartLarge: isMinLg && tilesSide === TilesSide.START },\n ],\n );\n};\n","import React from 'react';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\nimport Tile, { TileProps } from './Tile';\nimport useStylesheet from './Tiles.stylesheet';\n\ninterface OuterProps {\n tiles: Array;\n hBaseline: number;\n layout: Layout;\n}\n\nconst tileAnimation = (spacing: number) => `@keyframes arrowAnimation {\n from {\n right: ${gu2px(3, spacing)}px;\n opacity: 0.1;\n }\n to {\n right: ${gu2px(0, spacing)}px;\n opacity: 1;\n }\n}`;\n\ndeclare const i: number;\ndeclare const tile: TileProps;\n\nexport const PureTiles = ({ tiles, hBaseline, layout }: OuterProps) => {\n const { theme } = useTheme();\n const { styles } = useStylesheet();\n return (\n
\n \n \n
\n \n
\n
\n
\n );\n};\n\nPureTiles.displayName = 'Tiles';\n\nexport default PureTiles;\n","import { useStyles } from '@team-griffin/stylr';\nimport { useBreakpoints } from '@ux/responsive';\n\nexport default () => {\n const { isMinMd, isMinLg } = useBreakpoints();\n return useStyles(\n {\n default: {\n tile: {\n flex: 1,\n flexBasis: 'auto',\n // Safari is not filling 100% height of flex parent\n // in nested flex containers\n WebkitFlexBasis: 0,\n position: 'relative',\n },\n },\n isMinMd: {\n root: {\n flexDirection: 'row',\n display: 'flex',\n },\n tile: {\n width: '50%',\n },\n },\n isMinLg: {\n root: {\n flexDirection: 'column',\n height: '100%',\n },\n tile: {\n width: '100%',\n },\n },\n },\n [{ isMinMd }, { isMinLg }],\n );\n};\n","import React from 'react';\nimport { Container, Row, Column, Direction, Justify } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport Tiles from '../Tiles';\nimport { Side as TilesSide } from '../constants';\nimport useStylesheet from './WithTiles.stylesheet';\nimport { TileProps } from '../Tile';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n justify: Justify;\n hideGradient?: boolean;\n tiles: Array;\n}\n\nexport const PureBillboardTiles = ({\n layout,\n colorway,\n hBaseline = 0,\n ctas,\n text,\n additionalText,\n footerText,\n tiles,\n onScrollClick,\n justify,\n showScroll,\n ribbonId,\n background,\n hideGradient,\n}: OuterProps) => {\n const { styles } = useStylesheet({ layout });\n const direction = layout.tilesSide === TilesSide.END ? Direction.ROW : Direction.ROW_REVERSE;\n\n return (\n
\n
\n \n \n \n
\n \n \n {showScroll && }\n \n
\n
\n \n \n \n
\n
\n
\n );\n};\n\nPureBillboardTiles.displayName = 'BillboardTiles';\n\nexport default PureBillboardTiles;\n","import { useStyles } from '@team-griffin/stylr';\nimport { useBreakpoints, breakpoints as breakpointsValues } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Layout } from 'domain/constants/layout';\nimport { Alignment } from 'domain/constants/alignment';\nimport { modifier } from '@ux/style-utils';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\n\nimport { Side as TilesSide } from '../constants';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\n\nexport default ({ layout }: { layout: Layout }) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n const breakpoints = useBreakpoints();\n const { isMinSm, isMinLg, isMinXl } = breakpoints;\n\n const alignment = findResponsiveItem(breakpoints, [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n const { anchor, tilesSide } = layout;\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpoints);\n\n return useStyles(\n {\n default: {\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n },\n // @ts-ignore: error after upgrading to ux-configs\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n }),\n },\n body: {\n flex: 1,\n flexBasis: 'auto',\n },\n },\n\n isMinLg: {\n container: {\n display: 'flex',\n flex: 1,\n flexBasis: 'auto',\n // Safari is not filling 100% height of flex parent\n // in nested flex containers\n webkitFlexBasis: 0,\n width: '100%',\n maxWidth: '100%',\n },\n row: {\n width: '100%',\n },\n content: {\n marginLeft: 'auto',\n maxWidth: halfContainerWidth(breakpointsValues.lg, spacing),\n height: '100%',\n position: 'static',\n },\n },\n\n isMinXl: {\n content: {\n maxWidth: halfContainerWidth(breakpointsValues.xl, spacing),\n },\n },\n\n lgStartTile: {\n content: {\n marginLeft: 0,\n marginRight: 'auto',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n content: {\n textAlign: 'center',\n },\n },\n },\n [\n { isMinSm },\n { isMinLg },\n { isMinXl },\n { lgStartTile: tilesSide === TilesSide.START && isMinLg },\n { alignment },\n { activeAnchor },\n ],\n );\n};\n","import React, { ComponentClass, ReactNode, useState } from 'react';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport { Fit, RibbonProps, Type } from 'domain/constants/ribbons';\nimport { scroller, Element } from 'react-scroll';\nimport { ulid } from 'ulid';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Layout } from 'domain/constants/layout';\nimport { Justify } from '@ux/grid';\nimport { Background } from 'components/common/Background';\n\nimport CornerEmbellishments, { CornerEmbellishmentsType } from './CornerEmbellishments';\nimport BillboardGeneric from './layouts/Generic';\nimport BillboardDuo from './layouts/Duo';\nimport BillboardTiles from './layouts/WithTiles';\nimport { OuterProps as BodyProps } from './Body';\nimport { TileProps } from './Tile';\nimport Ribbon from '../Ribbon';\n\nexport interface OuterProps extends BodyProps, RibbonProps {\n cornerEmbellishments: CornerEmbellishmentsType;\n tiles?: Array;\n additionalText?: ReactNode;\n footerText?: ReactNode;\n duo?: boolean;\n duoLayout?: boolean;\n name: string;\n loading: boolean;\n id: string;\n justify: Justify;\n background: [Background, Background, Background];\n hideGradient?: boolean;\n}\ninterface LayoutProps extends Omit {\n hasTiles: boolean;\n showScroll: boolean;\n onScrollClick: () => void;\n setBottomScrollName: (v: string) => void;\n}\n\nconst shouldShowScroll = (props: {\n layout: Layout;\n isMinSm: boolean;\n isMinMd: boolean;\n isMinLg: boolean;\n isMinXl: boolean;\n}) => {\n const { isMinSm, isMinMd, isMinLg, isMinXl, layout } = props;\n if (props.isMinSm) {\n const fitSet = layout.fit;\n const fit = findResponsiveItem(\n {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n },\n fitSet,\n );\n return fit === Fit.FILL || fit === Fit.FULLSCREEN;\n }\n return false;\n};\n\nconst BillboardLayout = ({ hasTiles, tiles = [], duoLayout, ...props }: LayoutProps) => {\n if (hasTiles) {\n return ;\n }\n if (duoLayout) {\n return ;\n }\n return ;\n};\n\nexport const PureBillboard = ({\n id,\n layout,\n loading,\n colorway,\n name,\n duoLayout,\n cornerEmbellishments,\n ctas = [],\n additionalText = null,\n footerText = null,\n duo = false,\n tiles,\n ...props\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n\n const showScroll = shouldShowScroll({\n layout,\n ...breakpoints,\n });\n\n const hasTiles = tiles?.length === 2 && duo === false;\n\n const [bottomScrollName, setBottomScrollName] = useState(() => {\n return ulid();\n });\n const scrollHandler =\n ({ bottomScrollName }: { bottomScrollName: string }) =>\n () => {\n scroller.scrollTo(bottomScrollName, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n };\n const onScrollClick = scrollHandler({ bottomScrollName });\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nPureBillboard.displayName = 'Billboard';\n\nexport default errorBoundary(visibilitySet(PureBillboard)) as ComponentClass;\n","import Billboard, { OuterProps } from './Billboard';\nimport { Side } from './constants';\n\nexport { Side, OuterProps as BillboardProps };\nexport default Billboard;\n","export enum Anchor {\n TOP = 'TOP',\n CENTER = 'CENTER',\n BOTTOM = 'BOTTOM',\n}\n\nexport default null;\n"],"sourceRoot":""}