{"version":3,"sources":["webpack:///./presentation/hocs/withLanguage.ts","webpack:///./presentation/utils/rgba.js","webpack:///./presentation/components/common/Layer/Parallax.tsx","webpack:///./presentation/components/common/Layer/Parallax.stylesheet.ts","webpack:///./presentation/components/common/Layer/Static.tsx","webpack:///./presentation/components/common/Layer/Layer.tsx","webpack:///./presentation/components/common/Layer/Layer.stylesheet.ts","webpack:///./presentation/components/common/Layer/index.ts","webpack:///./presentation/components/common/Background/Wash.stylesheet.ts","webpack:///./presentation/components/common/Background/Wash.tsx","webpack:///./presentation/components/common/Background/Background.tsx","webpack:///./presentation/components/common/Background/Background.stylesheet.ts","webpack:///./presentation/components/common/Background/index.ts","webpack:///./presentation/hooks/withUrlComponent.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.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.stylesheet.ts","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"],"names":["BaseComponent","compose","connect","state","currentLanguage","getCurrentLanguage","c","a","color","alpha","string","PureParallax","layer","styles","useStyles","default","image","width","height","backgroundImage","urlLanguageParse","imageUrl","backgroundRepeat","backgroundSize","backgroundPosition","useStylesheet","data","start","duration","properties","startValue","fx","type","endValue","property","getParallaxData","parallaxData","style","displayName","withLanguage","enhance","pureEnhance","hocs","hooks","withProps","test","navigator","userAgent","vendor","webpUrl","focus","role","PureLayer","isParallax","root","position","top","overflow","plx","aria-label","createImageAlt","Parallax","Static","LayerComponent","props","colorway","layout","duoLayout","hasTiles","isMinMd","useBreakpoints","theme","useTheme","palette","wash","clr","Colorway","LIGHT","rgba","generateBackground","alignment","Alignment","CENTER","gradient","modifier","background","NEUTRAL","grey10","DARK","PRIMARY","primary","PRIMARY_GRADIENT","HIGHLIGHT","highlight","PureWash","PureBackground","hideGradient","videoWrapper","left","right","bottom","video","objectFit","objectPosition","fallbackVideoImage","minHeight","minWidth","activeBackground","findResponsiveItem","backgroundType","Array","isArray","loop","muted","autoPlay","playsInline","poster","fallback","url","onEnded","e","autoplay","load","showFallbackImage","currentTarget","src","mp4","webm","loading","alt","key","i","Wash","BackgroundComponent","withUrlComponent","r","Component","isInternalUrl","NavLink","to","isHashUrl","href","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","window","browserCrypto","crypto","msCrypto","buffer","Uint8Array","getRandomValues","nodeCrypto","randomBytes","readUInt8","console","error","random","ulid","currPrng","seedTime","Date","factory","cornerToPosition","gu2CornerSize","gu","gu2px","spacing","generateCornerImages","embellishments","cornerEmbellishments","size","cornerSize","filteredEmbellishments","Object","repeat","cornerArrayToCssProperty","cornerImages","joinedPropArray","PureCornerEmbellishments","breakpoints","pointerEvents","longhand","PureBody","hBaseline","text","additionalText","footerText","ctas","ribbonId","isMinSm","body","precursor","title","hasBodyText","isNilOrEmpty","hasCta","hasPrecursor","hasTitle","hasFooterText","typography","getTitleColor","subtitle","getBodyColor","marginTop","display","flexDirection","cta","smallprint","opacity","cssSides","Side","marginBottom","textAlign","justifyContent","depth","Shortcode","against","code","component","CallToAction","getAgainst","block","ButtonSize","LG","index","side","X","PureBillboardScroll","onScrollClick","scroller","paddingTop","scrollAgainst","onClick","kind","Kind","TERTIARY","glyph","id","halfContainerWidth","space","getActiveAnchor","anchor","from","getActive","flexAnchors","Anchor","TOP","PureBillboardGeneric","showScroll","breakpointProps","getBreakpoints","activeAnchor","content","flex","flexBasis","justify","Justify","Background","vblock","xs","md","lg","Body","Scroll","PureBillboardDuo","isMinXl","startDuoLayout","maxWidth","isDuoLayoutMd","marginLeft","isDuoLayoutLg","isDuoLayoutXl","marginRight","isMinLg","Layout","PureTile","action","rightTile","tilesSide","backgroundColor","getBackgroundColor","textDecoration","ribbonPadding","shrinkLeading","shrinkTrailing","leftTile","container","paddingRight","box","wrapperText","wrapperIcon","icon","hover","animation","animationTimingFunction","animationDirection","animationFillMode","leftTileMedium","rightTileMedium","leftTileLarge","tilesStartLarge","TilesSide","START","linkAttribution","withHover","callToAction","PureTiles","tiles","tile","WebkitFlexBasis","tileAnimation","Tile","PureBillboardTiles","webkitFlexBasis","row","lgStartTile","direction","END","Direction","ROW","ROW_REVERSE","gutters","Tiles","BillboardLayout","PureBillboard","name","duo","fitSet","fit","Fit","FILL","FULLSCREEN","shouldShowScroll","hasTwoTiles","bottomScrollName","setBottomScrollName","useState","scrollTo","delay","smooth","scrollHandler","Ribbon","flush","CornerEmbellishments","errorBoundary","visibilitySet","Billboard"],"mappings":"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","file":"pex-static/40/6.26779cae237ba092c837.chunk.js","sourcesContent":["import {\n compose,\n} from 'recompose';\nimport { connect } from 'react-redux';\nimport { getCurrentLanguage } from 'domain/selectors/ribbons';\n\nexport default (BaseComponent: any) => {\n return compose(\n connect((state) => {\n return {\n currentLanguage: getCurrentLanguage(state),\n };\n }),\n )(BaseComponent);\n};\n","import color from 'color';\n\nexport default (c, a) =>\n color(c)\n .alpha(a)\n .string();\n","import React, { ComponentClass } from 'react';\nimport useStylesheet from './Parallax.stylesheet';\nimport Plx from 'react-plx';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { Layer } from './Layer';\n\ninterface OuterProps {\n layer: Layer,\n}\n\nexport interface InnerProps extends OuterProps {\n currentLanguage: string,\n}\nconst getParallaxData = ({\n layer,\n}: OuterProps) => {\n return [{\n start: 'self',\n // @TODO: this value will have to be determined by the ribbon's height.\n // We might have to use react-height here to help us.\n // ---\n // It is double the value of the viewheight to ensure that\n // it keeps performing the parallax scrolling past.\n // 200vh was an arbitary number. This will have to be tweaked with Matt's\n // consent.Make sure that when you tweak this number you also tweak\n // the height calc in the stylesheet\n duration: '200vh',\n properties: [\n {\n startValue: layer.fx.type === 'parallax' ? -400 : 0,\n endValue: 0,\n property: 'translateY',\n },\n ],\n }];\n};\n\nexport const PureParallax = ({\n layer,\n currentLanguage,\n}: InnerProps) => {\n const {\n styles,\n } = useStylesheet({\n layer,\n currentLanguage,\n });\n const data = getParallaxData({ layer });\n return (\n \n );\n};\n\nPureParallax.displayName = 'Parallax';\n\nexport default withLanguage(PureParallax) as ComponentClass;\n","import { CSSProperties } from 'react';\nimport { useStyles } from '@team-griffin/stylr';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport { InnerProps } from './Parallax';\n\nexport interface Styles {\n image: CSSProperties,\n}\nexport default ({\n layer,\n currentLanguage,\n}: InnerProps) => {\n\n return useStyles({\n default: {\n image: {\n width: '100%',\n height: '100%',\n backgroundImage: `url(${urlLanguageParse(layer.imageUrl, currentLanguage)})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n },\n },\n }, [\n { layer: layer.imageUrl },\n ]);\n};\n","import React, { CSSProperties } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { useStyles } from '@team-griffin/stylr';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Layer } from './Layer';\n\ninterface OuterProps {\n layer: Layer,\n}\n\ninterface InnerProps extends OuterProps {\n currentLanguage: string,\n imageUrl: string,\n styles: {\n image: CSSProperties,\n },\n}\n\nconst stylesheet = ({\n layer,\n imageUrl,\n}: InnerProps) => {\n\n return useStyles({\n default: {\n image: {\n width: '100%',\n height: '100%',\n backgroundSize: 'cover',\n backgroundPosition: layer.focus || 'center center',\n backgroundImage: `url(${imageUrl})`,\n backgroundRepeat: 'no-repeat',\n },\n },\n }, [\n { imageUrl },\n ]);\n};\n\nexport const PureStatic = ({\n styles,\n}: InnerProps) => (\n \n);\n\nexport const enhance = pureEnhance(\n 'Static',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withProps(({\n layer,\n currentLanguage,\n }: InnerProps) => {\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n const image = (isChrome === true && layer.webpUrl != null) ? layer.webpUrl : layer.imageUrl;\n const imageUrl = urlLanguageParse(image, currentLanguage);\n\n return {\n imageUrl,\n };\n }),\n withProps(stylesheet),\n ],\n },\n\n);\n\nexport default enhance(PureStatic);\n","import React from 'react';\nimport Parallax from './Parallax';\nimport Static from './Static';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport useStylesheet from './Layer.stylesheet';\n\nexport interface Layer {\n imageUrl?: string,\n focus: string,\n webpUrl?: string,\n fx: {\n type: string\n },\n}\n\ninterface OuterProps {\n layer: Layer,\n}\n\nexport const PureLayer = ({\n layer,\n}: OuterProps) => {\n const isParallax = layer.fx.type === 'parallax';\n const {\n styles,\n } = useStylesheet();\n return (\n \n \n \n
\n \n
\n
\n \n \n \n
\n \n );\n};\n\nPureLayer.displayName = 'Layer';\n\nexport default PureLayer;\n","import { useStyles } from '@team-griffin/stylr';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n plx: CSSProperties,\n}\n\nexport default () => useStyles({\n default: {\n // We wrap the actual parallax element in another\n // element as parallax uses `transform` and we can\n // not specify 2 of those one a single element.\n root: {\n position: 'absolute',\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n },\n plx: {\n // We add on 400px here as a buffer space to work with parallaxing.\n // Whatever the amount to parallax is set to * 2.\n height: 'calc(100% + 400px)',\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n },\n});\n","import LayerComponent, { Layer } from './Layer';\nexport {\n Layer,\n};\nexport default LayerComponent;\n","import { useStyles } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport {\n modifier,\n} from '@ux/style-utils';\nimport rgba from 'presentation/utils/rgba';\nimport { Color, useTheme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Alignment } from 'domain/constants/alignment';\n\nexport default (props: {\n colorway: Colorway,\n layout: Layout,\n duoLayout: boolean,\n hasTiles: boolean,\n}) => {\n const {\n colorway,\n layout,\n duoLayout,\n hasTiles,\n } = props;\n const {\n isMinMd,\n } = useBreakpoints();\n const {\n theme,\n } = useTheme();\n\n const {\n palette,\n } = theme;\n\n const wash = (clr: Color|string) => {\n if (colorway === Colorway.LIGHT) {\n return rgba(clr, 0.9);\n }\n return rgba(clr, 0.75);\n };\n\n const gradient = (clr: Color|string) => `\n linear-gradient(\n to right,\n ${rgba(clr, 0.9)} 40%,\n ${rgba(clr, 0.8)} 50%,\n ${rgba(clr, 0)} 65%\n )`;\n\n /*\n Creates a gradient or semi opaque wash\n Use the wash on:\n - mobile\n - we're center aligned text\n - we're a duo layout\n - we have tiles\n Use gradient otherwise\n */\n const generateBackground = (clr: Color|string) => {\n if (!isMinMd) {\n return wash(clr);\n }\n if (layout.alignment === Alignment.CENTER || duoLayout === true) {\n return wash(clr);\n }\n if (hasTiles) {\n return wash(clr);\n }\n return gradient(clr);\n };\n\n return useStyles({\n default: {\n root: {\n position: 'absolute',\n top: 0,\n width: '100%',\n height: '100%',\n },\n },\n\n [modifier('colorway', Colorway.LIGHT)]: {\n root: {\n background: generateBackground('#ffffff'),\n },\n },\n\n [modifier('colorway', Colorway.NEUTRAL)]: {\n root: {\n background: generateBackground(palette.grey10),\n },\n },\n\n [modifier('colorway', Colorway.DARK)]: {\n root: {\n background: generateBackground('#000000'),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY)]: {\n root: {\n background: generateBackground(palette.primary),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY_GRADIENT)]: {\n root: {\n background: generateBackground(palette.primary),\n },\n },\n\n [modifier('colorway', Colorway.HIGHLIGHT)]: {\n root: {\n background: generateBackground(palette.highlight),\n },\n },\n\n }, {\n colorway,\n isMinMd,\n });\n};\n","import React from 'react';\nimport useStylesheet from './Wash.stylesheet';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps {\n colorway: Colorway,\n layout: Layout,\n hasTiles: boolean,\n duoLayout: boolean,\n}\n\nexport const PureWash = ({\n colorway,\n layout,\n duoLayout,\n hasTiles,\n}: OuterProps) => {\n const {\n styles,\n } = useStylesheet({\n colorway,\n layout,\n duoLayout,\n hasTiles,\n });\n return (\n
\n );\n};\n\nPureWash.displayName = 'Wash';\n\nexport default PureWash;\n","import React, { ComponentClass } from 'react';\nimport { useBreakpoints } from '@ux/responsive';\nimport useStylesheet from './Background.stylesheet';\nimport Layer, { Layer as ImageLayer } from 'presentation/components/common/Layer';\nimport Wash from './Wash';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\n\nexport interface Background {\n fallback: {\n url: string,\n },\n mp4?: string,\n webm?: string,\n loop?: boolean,\n}\nexport type BackgroundArray = ResponsiveSet;\n\ninterface OuterProps {\n layout: Layout,\n background: BackgroundArray,\n duoLayout?: boolean,\n hasTiles?: boolean,\n colorway: Colorway,\n hideGradient?: boolean,\n}\ninterface InnerProps extends OuterProps {\n currentLanguage: string,\n}\n\ndeclare const layer: ImageLayer;\ndeclare const i: number;\n\nconst showFallbackImage = (video: HTMLVideoElement) => {\n video.autoplay = false;\n video.load();\n};\n\nexport const PureBackground = ({\n layout,\n duoLayout,\n hasTiles,\n colorway,\n currentLanguage,\n background,\n hideGradient = false,\n}: InnerProps) => {\n const { styles } = useStylesheet();\n const activeBackground = findResponsiveItem(\n useBreakpoints(),\n background,\n );\n const backgroundType = Array.isArray(activeBackground) ? 'image' : 'video';\n return (\n \n \n
\n showFallbackImage(e.currentTarget)}\n >\n \n \n \n \n
\n
\n \n \n \n \n \n {!hideGradient && (\n \n )}\n
\n );\n};\n\nPureBackground.displayName = 'Background';\n\nexport default withLanguage(PureBackground) as ComponentClass;\n","import { useStyles } from '@team-griffin/stylr';\n\nexport default () => {\n return useStyles({\n default: {\n videoWrapper: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n },\n video: {\n objectFit: 'cover',\n objectPosition: 'center center',\n width: '100%',\n height: '100%',\n },\n fallbackVideoImage: {\n minHeight: '100%',\n minWidth: '100%',\n position: 'absolute',\n top: 0,\n },\n },\n }, []);\n};\n","import { default as BackgroundComponent, Background, BackgroundArray } from './Background';\n\nexport {\n Background,\n BackgroundArray,\n};\n\nexport default BackgroundComponent;\n","import * as r from 'ramda';\nimport { withProps } from '@team-griffin/rehook';\nimport { isInternalUrl, isHashUrl } from 'domain/url';\nimport { NavLink } from 'react-router-dom';\n\ninterface AnyProps {\n url?: string,\n action?: {\n url?: string,\n [key: string]: any,\n }\n [key: string]: any,\n}\n\nexport type UrlComponentType = typeof NavLink | 'a' | 'div';\nconst withUrlComponent = withProps((props: AnyProps) => r.pipe(\n r.either(\n r.prop('url'),\n r.path([ 'action', 'url' ]),\n ),\n r.cond([\n [\n r.isNil,\n () => ({\n Component: 'div',\n }),\n ],\n [\n isInternalUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n isHashUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n r.T,\n (url) => ({\n Component: 'a',\n href: url,\n }),\n ],\n ]),\n//@ts-ignore\n)(props));\n\nexport default withUrlComponent;","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 { CornerEmbellishmentsType } from './CornerEmbellishments';\nimport { useBreakpoints } from '@ux/responsive';\n\nconst cornerToPosition = (str: string) => {\n switch (str) {\n case 'topLeft': return '0 0';\n case 'topRight': return 'right 0';\n case 'bottomLeft': return '0 bottom';\n case 'bottomRight': return 'right bottom';\n default: return '';\n }\n};\n\nconst gu2CornerSize = (gu: number, spacing?: number) => `${gu2px(gu, spacing)}px ${gu2px(gu, spacing)}px`;\n\nconst cornerSize = ({\n theme,\n isMinSm,\n isMinMd,\n}: {\n theme: Theme,\n isMinSm: boolean,\n isMinMd: boolean,\n}) => {\n const {\n spacing,\n } = 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 {\n image: string,\n size: string,\n position: string,\n repeat: string,\n }[];\n Object.keys(embellishments).forEach((\n corner: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight',\n ) => {\n if (embellishments[corner] !== null) {\n filteredEmbellishments.push({\n image: `url(${urlLanguageParse(embellishments[corner], 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: {\n image: string,\n size: string,\n position: string,\n repeat: string,\n }[],\n) => {\n const joinedPropArray: string[] = [];\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 {\n theme,\n } = useTheme();\n const cornerImages = generateCornerImages({\n currentLanguage,\n cornerEmbellishments,\n ...breakpoints,\n theme,\n });\n return useStyles({\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};","import React, { ComponentClass } from 'react';\nimport withLanguage from 'presentation/hocs/withLanguage';\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 = ({\n currentLanguage,\n cornerEmbellishments,\n}: InnerProps) => {\n const {\n styles,\n } = useStylesheet({\n currentLanguage,\n cornerEmbellishments,\n });\n return (\n
\n );\n};\n\nPureCornerEmbellishments.displayName = 'CornerEmbellishments';\n\nexport default withLanguage(PureCornerEmbellishments) as ComponentClass;","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 useStylesheet from './Body.stylesheet';\nimport { useTheme } from '@ux/theme-utils';\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\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: CTA[],\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 {\n isMinSm,\n } = useBreakpoints();\n const {\n theme,\n } = useTheme();\n const {\n body,\n precursor,\n title,\n } = 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 {\n styles,\n } = useStylesheet({\n isMinSm,\n theme,\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 {additionalText}\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, Theme } 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 { Colorway } from '@ux/bookends/dist/es/constants';\nimport { Layout } from 'domain/constants/layout';\n\nexport default ({\n theme,\n colorway,\n theme: {\n spacing,\n typography,\n },\n layout: {\n alignment,\n },\n isMinSm,\n}: {\n theme: Theme,\n colorway: Colorway,\n layout: Layout,\n isMinSm: Boolean,\n}) => useStyles({\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(typography),\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 },\n { alignment },\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 useStylesheet from './Scroll.stylesheet';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps {\n colorway: Colorway,\n onScrollClick: (evt: any) => any,\n layout: Layout,\n}\n\nexport const PureBillboardScroll = ({\n onScrollClick,\n layout,\n colorway,\n}: OuterProps) => {\n const {\n styles,\n } = useStylesheet({ layout });\n const scrollAgainst = colorway === Colorway.PRIMARY_GRADIENT ? Colorway.PRIMARY : colorway;\n return (\n \n \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 ({\n layout: {\n alignment,\n },\n}: {\n layout: Layout,\n}) => {\n const {\n theme,\n } = useTheme();\n const {\n spacing,\n } = theme;\n return useStyles({\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};","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\n\nexport const getActiveAnchor = (anchor: AnchorArray, breakpoints: BreakpointProps) => {\n const getActive = (from: AnchorArray) => findResponsiveItem(\n breakpoints,\n from,\n );\n\n const activeAnchor = getActive(\n flexAnchors([ Anchor.TOP, null, null ], anchor),\n );\n\n return activeAnchor;\n};\n\nexport default null;","import React, { Fragment } from 'react';\nimport { Container, Row, Column, Justify } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport { Alignment } from 'domain/constants/alignment';\nimport useStylesheet from './Generic.stylesheet';\nimport { useBreakpoints } from '@ux/responsive';\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 {\n styles,\n } = useStylesheet({\n layout,\n ...breakpoints,\n });\n const justify = layout.alignment === Alignment.CENTER ? Justify.CENTER : null;\n return (\n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n );\n};\n\nPureBillboardGeneric.displayName = 'BillboardGeneric';\n\nexport default PureBillboardGeneric;\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { getActiveAnchor } from '../styles';\nimport { Layout } from 'domain/constants/layout';\nimport { BreakpointProps } from '@ux/responsive';\n\nexport default (props: {\n layout: Layout,\n} & BreakpointProps) => {\n const {\n layout,\n } = props;\n const {\n anchor,\n } = layout;\n const breakpointProps = getBreakpoints(props);\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n return useStyles({\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n },\n }, []);\n};\n","import React, { Fragment } from 'react';\nimport { Container } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport useStylesheet from './Duo.stylesheet';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\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 {\n styles,\n } = useStylesheet({\n layout,\n duoLayout,\n });\n return (\n \n \n
\n
\n \n
\n
\n \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 { getActiveAnchor, halfContainerWidth } from '../styles';\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\nexport default (props: {\n layout: Layout,\n duoLayout: boolean,\n}) => {\n const {\n layout,\n duoLayout,\n } = props;\n const breakpointProps = useBreakpoints();\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n } = breakpointProps;\n const {\n theme,\n } = useTheme();\n const {\n anchor,\n } = layout;\n\n const startDuoLayout = layout.startDuoLayout || false;\n\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n\n return useStyles({\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 { anchor },\n { isMinSm },\n { isDuoLayoutMd: duoLayout && isMinMd },\n { isDuoLayoutLg: duoLayout && isMinLg },\n { isDuoLayoutXl: duoLayout && isMinXl },\n { startDuoLayout },\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;","import React from 'react';\nimport PaddingBox from '@ux/padding-box';\nimport {\n Heading02,\n BodyCopy01,\n} from '@ux/typography';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport useStylesheet from './Tile.stylesheet';\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\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 = ({\n colorway,\n text,\n hBaseline,\n action,\n ...props\n}: OuterProps) => {\n const {\n title,\n body,\n } = text;\n const { theme } = useTheme();\n const {\n styles,\n } = 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\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 { 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 { Side as TilesSide } from './constants';\nimport { halfContainerWidth } from './styles';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Colorway } from '@ux/bookends/dist/es/constants';\nimport { Layout } from 'domain/constants/layout';\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 {\n theme,\n } = useTheme();\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n } = useBreakpoints();\n const {\n alignment,\n tilesSide,\n } = layout;\n\n const {\n spacing,\n } = theme;\n\n return useStyles({\n default: {\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 { alignment },\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","import React from 'react';\nimport Tile, { TileProps } from './Tile';\nimport useStylesheet from './Tiles.stylesheet';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps {\n tiles: TileProps[],\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 = ({\n tiles,\n hBaseline,\n layout,\n}: OuterProps) => {\n const {\n theme,\n } = useTheme();\n const {\n styles,\n } = 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 {\n isMinMd,\n isMinLg,\n } = useBreakpoints();\n return useStyles({\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 },\n { isMinLg },\n ]);\n};\n","import React from 'react';\nimport { Container, Row, Column, Direction, Justify } from '@ux/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport Tiles from '../Tiles';\nimport PaddingBox, { Side } from '@ux/padding-box';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Side as TilesSide } from '../constants';\nimport useStylesheet from './WithTiles.stylesheet';\nimport { TileProps } from '../Tile';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n justify: Justify,\n hideGradient?: boolean,\n tiles: TileProps[],\n}\n\nexport const PureBillboardTiles = ({\n layout,\n colorway,\n hBaseline,\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 breakpoints = useBreakpoints();\n const {\n isMinLg,\n } = breakpoints;\n const {\n styles,\n } = useStylesheet({\n layout,\n ...breakpoints,\n });\n const hasFooterText = !isNilOrEmpty(footerText);\n const direction = layout.tilesSide === TilesSide.END ? Direction.ROW : Direction.ROW_REVERSE;\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 \n \n \n \n {footerText}\n \n \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 { getActiveAnchor, halfContainerWidth } from '../styles';\nimport { BreakpointProps, breakpoints } 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 { Side as TilesSide } from '../constants';\nimport { Layout } from 'domain/constants/layout';\n\nexport default ({\n layout,\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n}: {\n layout: Layout,\n} & BreakpointProps) => {\n const {\n theme,\n } = useTheme();\n const {\n spacing,\n } = theme;\n\n const {\n anchor,\n tilesSide,\n } = layout;\n\n const activeAnchor = getActiveAnchor(anchor, {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n });\n\n return useStyles({\n default: {\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 ...cssSides('padding', Side.X, gu2px(1, spacing)),\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(breakpoints.lg, spacing),\n height: '100%',\n position: 'static',\n },\n },\n\n isMinXl: {\n content: {\n maxWidth: halfContainerWidth(breakpoints.xl, spacing),\n },\n },\n\n lgStartTile: {\n content: {\n marginLeft: 0,\n marginRight: 'auto',\n },\n },\n }, [\n { isMinSm },\n { isMinLg },\n { isMinXl },\n { lgStartTile: tilesSide === TilesSide.START && isMinLg },\n ]);\n};\n","import React, { ComponentClass, ReactNode, useState } from 'react';\nimport Ribbon from '../Ribbon';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport { Fit, RibbonProps } from 'domain/constants/ribbons';\nimport { scroller, Element } from 'react-scroll';\nimport { ulid } from 'ulid';\nimport CornerEmbellishments, { CornerEmbellishmentsType } from './CornerEmbellishments';\nimport BillboardGeneric from './layouts/Generic';\nimport BillboardDuo from './layouts/Duo';\nimport BillboardTiles from './layouts/WithTiles';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { OuterProps as BodyProps } from './Body';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Layout } from 'domain/constants/layout';\nimport { TileProps } from './Tile';\nimport { Theme } from '@ux/theme-utils';\nimport { Justify } from '@ux/grid';\nimport { Background } from 'components/common/Background';\n\nexport interface OuterProps extends BodyProps, RibbonProps {\n cornerEmbellishments?: CornerEmbellishmentsType,\n tiles?: TileProps[],\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 theme: Theme,\n background: [Background, Background, Background],\n hideGradient?: boolean,\n}\ninterface LayoutProps extends OuterProps {\n duoLayout: boolean,\n hasTiles: boolean,\n showScroll: boolean,\n onScrollClick: () => void,\n setBottomScrollName: (v: string) => void,\n tiles: TileProps[],\n}\n\nconst hasTwoTiles = (tiles: TileProps[]) => tiles?.length === 2;\n\nconst shouldShowScroll = (props: {\n layout: Layout,\n isMinSm: boolean,\n isMinMd: boolean,\n isMinLg: boolean,\n isMinXl: boolean,\n}) => {\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n layout,\n } = props;\n if (props.isMinSm) {\n const fitSet = layout.fit;\n const fit = findResponsiveItem({\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n }, fitSet);\n return fit === Fit.FILL || fit === Fit.FULLSCREEN;\n }\n return false;\n};\n\n\nconst BillboardLayout = ({\n hasTiles,\n ...props\n}: LayoutProps) => {\n const duoLayout = props.duoLayout;\n if (hasTiles) {\n return ;\n }\n if (duoLayout) {\n return ;\n }\n return ;\n};\n\nexport const PureBillboard = ({\n id,\n theme,\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 = hasTwoTiles(tiles) && duo === false;\n\n const [ bottomScrollName, setBottomScrollName ] = useState(() => {\n return ulid();\n });\n const scrollHandler = ({ bottomScrollName }: { bottomScrollName: string }) => () => {\n scroller.scrollTo(bottomScrollName, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n };\n const onScrollClick = scrollHandler({ bottomScrollName });\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 {\n Side,\n OuterProps as BillboardProps,\n};\nexport default Billboard;"],"sourceRoot":""}