{"version":3,"sources":["webpack:///./presentation/hocs/withLanguage.ts","webpack:///./crosscutting/ramda.ts","webpack:///./presentation/utils/rgba.js","webpack:///./presentation/hooks/withUrlComponent.ts","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:///../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/Wash.tsx","webpack:///./presentation/components/ribbons/billboard/Wash.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Background.tsx","webpack:///./presentation/components/ribbons/billboard/Background.stylesheet.ts","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","isNotEmpty","isNotNil","mapIndexed","rA","r","fallback","arr","fn","obj","c","a","color","alpha","string","withUrlComponent","withProps","props","Component","isInternalUrl","url","NavLink","to","isHashUrl","href","getParallaxData","layer","start","duration","properties","startValue","fx","type","endValue","property","enhance","pureEnhance","hocs","withLanguage","hooks","data","useStyles","default","image","width","percentage","height","backgroundImage","urlLanguageParse","imageUrl","backgroundRepeat","backgroundSize","backgroundPosition","styles","parallaxData","style","test","navigator","userAgent","vendor","webpUrl","focus","role","isParallax","root","position","top","overflow","plx","aria-label","createImageAlt","Parallax","Static","LayerComponent","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","e","console","error","random","ulid","currPrng","seedTime","Date","factory","cornerToPosition","gu2CornerSize","gu","gu2px","spacing","cornerSize","cornerArrayToCssProperty","cornerImages","withBreakpointsHook","size","repeat","generateCornerImages","pointerEvents","bottom","left","right","longhand","theme","colorway","palette","wash","clr","Colorway","LIGHT","rgba","generateBackground","Alignment","CENTER","gradient","modifier","background","NEUTRAL","grey10","DARK","PRIMARY","primary","PRIMARY_GRADIENT","HIGHLIGHT","highlight","ownerProps","findResponsiveItem","getBreakpoints","activeBackground","backgroundType","Array","isArray","videoWrapper","video","objectFit","objectPosition","fallbackVideoImage","minHeight","minWidth","layout","duoLayout","hasTiles","loop","muted","autoPlay","playsInline","poster","src","mp4","webm","loading","alt","Layer","key","i","Wash","defaultProps","hBaseline","hasBodyText","isNotNilOrEmpty","hasCta","hasPrecursor","hasTitle","hasFooterText","typography","alignment","isMinSm","precursor","getTitleColor","title","subtitle","getBodyColor","marginTop","ctas","display","flexDirection","cta","footerText","smallprint","opacity","cssSides","Side","marginBottom","textAlign","justifyContent","text","additionalText","ribbonId","depth","Shortcode","against","code","component","body","CallToAction","getAgainst","block","ButtonSize","LG","index","side","X","scrollAgainst","scroller","paddingTop","onScrollClick","onClick","kind","Kind","TERTIARY","glyph","id","halfContainerWidth","getActiveAnchor","anchor","breakpoints","from","getActive","flexAnchors","Anchor","TOP","justify","Justify","breakpointProps","activeAnchor","content","flex","flexBasis","showScroll","Background","vblock","xs","md","lg","Body","Scroll","startDuoLayout","maxWidth","isDuoLayoutMd","marginLeft","isDuoLayoutLg","isDuoLayoutXl","marginRight","isMinMd","isMinLg","isMinXl","Layout","callToAction","branch","withHover","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","action","linkAttribution","tile","WebkitFlexBasis","tiles","tileAnimation","Tile","direction","END","Direction","ROW","ROW_REVERSE","webkitFlexBasis","row","lgStartTile","gutters","Tiles","hasTwoTiles","shouldShowScroll","fit","Fit","FULLSCREEN","FILL","BillboardLayout","errorBoundary","visibilitySet","duo","withState","withHandlers","bottomScrollName","scrollTo","delay","smooth","name","cornerEmbellishments","Ribbon","flush","CornerEmbellishments","Billboard"],"mappings":"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","file":"pex-static/20/16.e1ede3ded8cbbfd2dde6.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 * as rA from 'ramda-adjunct';\nimport * as r from 'ramda';\nimport {\n curry2,\n isNotNilOrEmpty,\n} from '@team-griffin/capra';\n\nconst {\n isNotEmpty,\n isNotNil,\n mapIndexed,\n} = rA;\n\nexport {\n curry2,\n isNotNilOrEmpty,\n isNotEmpty,\n isNotNil,\n mapIndexed,\n};\n\nexport const headOr = r.curryN(2, (fallback: any, arr: any[]) => r.pipe(\n r.defaultTo([]),\n r.head,\n r.defaultTo(fallback),\n)(arr));\n\nexport const getFirstKey = r.pipe(\n r.keys,\n r.head,\n) as (data: any)=>string;\n\nexport const getFirstValue = r.pipe(\n //@ts-ignore\n r.values,\n r.head,\n);\n\nexport const mapKeys = r.curryN(2, (fn: any, obj: any) => r.pipe(\n r.defaultTo({}),\n r.mapObjIndexed(\n r.converge(\n r.unapply(r.identity),\n [\n r.pipe(\n r.nthArg(1),\n fn,\n ),\n r.identity,\n ]\n ),\n ),\n r.values,\n r.fromPairs,\n)(obj));\n","import color from 'color';\n\nexport default (c, a) =>\n color(c)\n .alpha(a)\n .string();\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;","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Parallax.stylesheet';\nimport Plx from 'react-plx';\nimport * as r from 'ramda';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { Layer } from './Layer';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n layer: Layer,\n}\n\nexport interface InnerProps extends OuterProps {\n currentLanguage: string,\n styles: Styles,\n data: {\n start: string,\n duration: string,\n properties: [\n {\n startValue: number,\n endValue: number,\n property: string,\n },\n ],\n }\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: r.ifElse(\n r.equals('parallax'),\n r.always(r.negate(400)),\n r.always(0)\n )(layer.fx.type),\n endValue: 0,\n property: 'translateY',\n },\n ],\n }];\n};\n\nexport const PureParallax = ({\n styles,\n data,\n}: InnerProps) => (\n \n);\n\nexport const enhance = pureEnhance(\n 'Parallax',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withProps((props: OuterProps) => ({\n data: getParallaxData(props),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureParallax);\n","import { CSSProperties } from 'react';\nimport { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\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: percentage(100),\n height: percentage(100),\n backgroundImage: `url(${urlLanguageParse(layer.imageUrl, currentLanguage)})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n },\n },\n }, []);\n};\n","import React, { CSSProperties } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport { percentage } from '@ux/style-utils';\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: percentage(100),\n height: percentage(100),\n backgroundSize: 'cover',\n backgroundPosition: layer.focus || 'center center',\n backgroundImage: `url(${imageUrl})`,\n backgroundRepeat: 'no-repeat',\n },\n },\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 pureEnhance from '@ux/pure-enhance';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport Parallax from './Parallax';\nimport Static from './Static';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport stylesheet, { Styles } from './Layer.stylesheet';\nimport * as r from 'ramda';\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}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n isParallax: boolean,\n}\nexport const PureLayer = ({\n styles,\n layer,\n isParallax,\n}: InnerProps) => (\n \n \n \n
\n \n
\n
\n \n \n \n
\n \n);\n\nexport const enhance = pureEnhance(\n 'Layer',\n {\n hooks: [\n withProps((props: OuterProps) => ({\n isParallax: r.pathEq([ 'layer', 'fx', 'type' ], 'parallax', props),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureLayer);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\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: percentage(100),\n height: percentage(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(${percentage(100)} + 400px)`,\n position: 'absolute',\n top: 0,\n width: percentage(100),\n },\n },\n});\n","import LayerComponent, { Layer } from './Layer';\nexport {\n Layer,\n};\nexport default LayerComponent;\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 } from '@ux/theme-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport * as r from 'ramda';\nimport { InnerProps } from './CornerEmbellishments';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n}\nconst cornerToPosition = r.cond([\n [ r.equals('topLeft'), r.always('0 0') ],\n [ r.equals('topRight'), r.always('right 0') ],\n [ r.equals('bottomLeft'), r.always('0 bottom') ],\n [ r.equals('bottomRight'), r.always('right bottom') ],\n]) as (str: string) => string;\n\nconst gu2CornerSize = (gu: number, spacing?: number) => `${gu2px(gu, spacing)}px ${gu2px(gu, spacing)}px`;\n\nconst cornerSize = (props: InnerProps) => r.cond([\n [\n r.propEq('isMinMd', true),\n r.always(gu2CornerSize(6, props.theme.spacing)),\n ],\n [\n r.propEq('isMinSm', true),\n r.always(gu2CornerSize(5, props.theme.spacing)),\n ],\n [\n r.T,\n r.always(gu2CornerSize(4)),\n ],\n])(props) as string;\n\nconst generateCornerImages = (props: InnerProps) => r.pipe(\n r.defaultTo({}),\n r.reject(r.isNil),\n r.toPairs,\n r.map(([ corner, url ]) => ({\n image: `url(${urlLanguageParse(url, props.currentLanguage)})`,\n size: cornerSize(props),\n position: cornerToPosition(corner),\n repeat: 'no-repeat',\n })),\n)(props.cornerEmbellishments) as unknown as {\n image: string,\n size: string,\n position: string,\n repeat: string,\n}[];\n\nconst cornerArrayToCssProperty = (\n prop: string,\n cornerImages: {\n image: string,\n size: string,\n position: string,\n repeat: string,\n }[],\n//r.pluck wants (never, unknown) as props. I'm more speciifc\n//@ts-ignore\n) => r.join(',', r.pluck(prop, cornerImages));\n\nexport default (props: InnerProps) => {\n const cornerImages = generateCornerImages(props);\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 from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport { withBreakpointsHook } from '@ux/responsive';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport stylesheet, { Styles } from './CornerEmbellishments.stylesheet';\nimport { Theme } from '@ux/theme-utils';\n\nexport type cornerEmbellishments = {\n topRight?: string,\n bottomRight?: string,\n bottomLeft?: string,\n topLeft?: string\n};\ninterface OuterProps {\n theme: Theme,\n cornerEmbellishments?: cornerEmbellishments,\n}\n\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n currentLanguage: string,\n}\nconst PureCornerEmbellishments = ({\n styles,\n}: InnerProps) => (\n
\n);\n\nconst enhance = pureEnhance('CornerEmbellishments', {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureCornerEmbellishments);","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Wash.stylesheet';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\n\ninterface OuterProps {\n theme: Theme,\n colorway: Colorway,\n layout: Layout,\n hasTiles: boolean,\n duoLayout: boolean,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n}\n\nexport const PureWash = ({\n styles,\n}: InnerProps) => (\n
\n);\n\nexport const enhance = pureEnhance(\n 'Wash',\n {\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n },\n);\n\nexport default enhance(PureWash);\n","import { useStyles } from '@team-griffin/stylr';\nimport { UnsafeColorway as Colorway } from 'domain/constants/colorway';\nimport {\n modifier,\n percentage,\n} from '@ux/style-utils';\nimport rgba from 'presentation/utils/rgba';\nimport { Alignment } from 'domain/constants/alignment';\nimport * as r from 'ramda';\nimport { InnerProps } from './Wash';\nimport { Color } from '@ux/theme-utils';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n}\nexport default (props: InnerProps) => {\n const {\n theme,\n colorway,\n } = props;\n\n const {\n palette,\n } = theme;\n\n const wash = (clr: Color|string) => r.ifElse(\n r.propEq('colorway', Colorway.LIGHT),\n r.always(rgba(clr, 0.9)),\n r.always(rgba(clr, 0.75)),\n )(props);\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 mobile, and gradient on tablet and above, unless:\n - we're center aligned text\n - we're a duo layout\n - we have tiles and are on desktop view\n */\n const generateBackground = r.pipe(\n (clr: Color|string) => r.cond([\n // eslint-disable-next-line max-len\n [ r.pathEq([ 'layout', 'alignment' ], Alignment.CENTER), () => wash(clr) ],\n [ r.propEq('duoLayout', true), () => wash(clr) ],\n [ r.both(\n r.propEq('hasTiles', true),\n r.propEq('isMinLg'),\n ), () => wash(clr) ],\n [ r.propEq('isMinMd', true), () => gradient(clr) ],\n [ r.T, () => wash(clr) ],\n ])(props),\n );\n\n return useStyles({\n default: {\n root: {\n position: 'absolute',\n top: 0,\n width: percentage(100),\n height: percentage(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 });\n\n};\n","import React, { Fragment } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport stylesheet, { Styles } 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 getBreakpoints from 'presentation/utils/getBreakpoints';\nimport * as r from 'ramda';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Theme } from '@ux/theme-utils';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\n\ninterface Background {\n fallback: {\n url: string,\n },\n mp4?: string,\n webm?: string,\n}\nexport type BackgroundArray = ResponsiveSet;\n\ninterface OuterProps {\n layout: Layout,\n background: BackgroundArray,\n duoLayout?: boolean,\n hasTiles?: boolean,\n colorway: Colorway,\n theme: Theme,\n}\ninterface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n activeBackground: Background,\n backgroundType: string,\n currentLanguage: string,\n}\n\ndeclare const layer: ImageLayer;\ndeclare const i: number;\n\nexport const PureBackground = ({\n styles,\n activeBackground,\n backgroundType,\n layout,\n duoLayout,\n hasTiles,\n colorway,\n theme,\n currentLanguage,\n}: InnerProps) => {\n return (\n \n \n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n );\n};\n\n//we need this because of the withProps that uses findResponsiveItem\ninterface MiddleProps extends OuterProps, BreakpointProps {}\nexport const enhance = pureEnhance(\n 'Background',\n {\n hocs: [\n withLanguage,\n ],\n hooks: [\n withBreakpointsHook,\n withProps((ownerProps: MiddleProps) => ({\n ...r.pipe(\n (ownerProps: MiddleProps) => findResponsiveItem(\n getBreakpoints(ownerProps),\n ownerProps.background\n ), r.defaultTo({}),\n (activeBackground) => ({\n activeBackground,\n backgroundType: r.ifElse(\n Array.isArray,\n r.always('image'),\n r.always('video'),\n )(activeBackground),\n })\n )(ownerProps),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\n\nexport default enhance(PureBackground);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n videoWrapper: CSSProperties,\n video: CSSProperties,\n fallbackVideoImage: CSSProperties,\n}\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: percentage(100),\n height: percentage(100),\n },\n fallbackVideoImage: {\n minHeight: percentage(100),\n minWidth: percentage(100),\n position: 'absolute',\n top: 0,\n },\n },\n }, []);\n};\n","import React, { Fragment, ReactNode } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps, defaultProps } from '@team-griffin/rehook';\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 { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport stylesheet, { Styles } from './Body.stylesheet';\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { CTA } from 'core/ribbons/cta';\n\n\nexport interface OuterProps {\n theme: Theme,\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}\nexport interface DefaultProps extends OuterProps {\n hBaseline: number,\n}\nexport interface InnerProps extends DefaultProps, BreakpointProps {\n styles: Styles,\n hasPrecursor: boolean,\n hasTitle: boolean,\n hasBodyText: boolean,\n hasCta: boolean,\n hasFooterText: boolean,\n}\n\ndeclare const cta: CTA;\ndeclare const i: number;\n\nconst PureBody = ({\n theme,\n styles,\n hBaseline,\n hasPrecursor,\n hasTitle,\n hasBodyText,\n hasCta,\n hasFooterText,\n text,\n additionalText,\n footerText,\n ctas,\n colorway,\n layout,\n ribbonId,\n isMinSm,\n}: InnerProps) => (\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\nconst enhance = pureEnhance('BillboardBody', {\n hooks: [\n defaultProps({\n hBaseline: 1,\n }),\n withProps((ownerProps: DefaultProps) => ({\n hasBodyText: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'body' ],\n ownerProps,\n ),\n hasCta: r.propSatisfies(\n isNotNilOrEmpty,\n 'ctas',\n )(ownerProps),\n hasPrecursor: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'precursor' ],\n ownerProps,\n ),\n hasTitle: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'text', 'title' ],\n ownerProps,\n ),\n hasFooterText: r.propSatisfies(\n isNotNilOrEmpty,\n 'footerText',\n )(ownerProps),\n })),\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureBody);","import { useStyles } from '@team-griffin/stylr';\nimport { getTitleColor, getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px } 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 * as r from 'ramda';\nimport { InnerProps } from './Body';\nimport { CSSProperties } from 'react';\n\n\nexport interface Styles {\n root: CSSProperties,\n precursor: CSSProperties,\n title: CSSProperties,\n subtitle: CSSProperties,\n ctas: CSSProperties,\n cta: CSSProperties,\n footerText: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n theme: {\n spacing,\n typography,\n },\n layout: {\n alignment,\n },\n isMinSm,\n}: InnerProps) => 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, r.negate(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 pureEnhance from '@ux/pure-enhance';\nimport PaddingBox from '@ux/padding-box';\nimport { Button, Kind, Against } from '@ux/button';\nimport Message from '@ux/message';\nimport { Colorway } from 'domain/constants/colorway';\nimport { withProps } from '@team-griffin/rehook';\nimport stylesheet, { Styles } from './Scroll.stylesheet';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps {\n theme: Theme,\n colorway: Colorway,\n onScrollClick: (evt: any) => any,\n layout: Layout,\n}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n scrollAgainst: Against,\n}\nexport const PureBillboardScroll = ({\n onScrollClick,\n scrollAgainst,\n styles,\n}: InnerProps) => (\n \n \n \n \n \n);\n\nconst enhance = pureEnhance(\n 'BillboardScroll',\n {\n hooks: [\n withProps((ownerProps: OuterProps) => ({\n scrollAgainst: r.when(\n r.equals(Colorway.PRIMARY_GRADIENT),\n r.always(Colorway.PRIMARY),\n )(ownerProps.colorway),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureBillboardScroll);\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { modifier } from '@ux/style-utils';\nimport { InnerProps } from './Scroll';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n scroller: CSSProperties,\n}\nexport default ({\n theme: {\n spacing,\n },\n layout: {\n alignment,\n },\n}: InnerProps) => 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}, [\n { alignment },\n]);\n","import * as r from 'ramda';\nimport { 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) => r.pipe(\n // add the extra gu of spacing between the two items\n r.add(gu2px(1, spacing)),\n // account for the additional padding at either side\n r.divide(r.__, 2),\n // remove the accounted for spacing\n r.subtract(r.__, gu2px(1, spacing)),\n)(width);\n\n\nexport const getActiveAnchor = (anchor: AnchorArray, breakpoints: BreakpointProps) => {\n\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 { withProps } from '@team-griffin/rehook';\nimport { Container, Row, Column, Justify } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport { Alignment } from 'domain/constants/alignment';\nimport stylesheet, { Styles } from './Generic.stylesheet';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n justify: Justify,\n}\n\nimport * as r from 'ramda';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\n\nexport const PureBillboardGeneric = ({\n styles,\n theme,\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n justify,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n}: InnerProps) => (\n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n);\n\nconst enhance = pureEnhance('BillboardGeneric', [\n withBreakpointsHook,\n withProps((ownerProps: OuterProps) => ({\n justify: r.ifElse(\n r.pathEq([ 'layout', 'alignment' ], Alignment.CENTER),\n r.always(Justify.CENTER),\n r.always(null),\n )(ownerProps),\n })),\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardGeneric);\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { getActiveAnchor } from '../styles';\nimport { InnerProps } from './Generic';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n}\n\nexport default (props: InnerProps) => {\n const {\n layout,\n } = props;\n\n const {\n anchor,\n } = layout;\n\n\n const breakpointProps = getBreakpoints(props);\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 },\n }, []);\n};\n","import React, { Fragment } from 'react';\nimport { Container } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport stylesheet, { Styles } from './Duo.stylesheet';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { withProps } from '@team-griffin/rehook';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\ninterface OuterProps extends BodyProps {\n theme: Theme,\n layout: Layout,\n colorway: Colorway,\n hBaseline: number,\n showScroll: boolean,\n duoLayout: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n}\n\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n}\n\nexport const PureBillboardDuo = ({\n styles,\n theme,\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n}: InnerProps) => (\n \n \n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n);\n\nconst enhance = pureEnhance('BillboardDuo', [\n withBreakpointsHook,\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardDuo);\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\nimport { breakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px } from '@ux/theme-utils';\nimport * as r from 'ramda';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './Duo';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n duoLayout: CSSProperties,\n}\nexport default (props: InnerProps) => {\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n layout,\n duoLayout,\n theme,\n } = props;\n\n const {\n anchor,\n } = layout;\n\n const startDuoLayout = r.pathOr(false, [ 'layout', 'startDuoLayout' ], props);\n // @todo this prop isn't set properly due to how ribbon raid loops and creates duo\n // const endDuoLayout = r.pathOr(false, [ 'layout', 'endDuoLayout' ], props);\n\n const breakpointProps = getBreakpoints(props);\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: percentage(100),\n maxWidth: percentage(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 {\n branch,\n} from 'recompose';\nimport PaddingBox from '@ux/padding-box';\nimport {\n Heading02,\n BodyCopy01,\n} from '@ux/typography';\nimport { withProps } from '@team-griffin/rehook';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport stylesheet, { Styles } from './Tile.stylesheet';\nimport Glyph from '@ux/glyphs';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport callToAction from 'presentation/hocs/callToAction';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport * as r from 'ramda';\nimport withUrlComponent, { UrlComponentType } 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}\ninterface OuterProps extends TileProps {\n theme: Theme,\n hBaseline: number,\n layout: Layout,\n leftTile: boolean,\n rightTile: boolean,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n hover: boolean,\n Component: UrlComponentType,\n}\n\nexport const PureTile = ({\n styles,\n theme,\n colorway,\n text,\n hBaseline,\n action,\n Component,\n}: InnerProps) => {\n const {\n title,\n body,\n } = text;\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\nexport const enhance = pureEnhance('Tile', {\n hocs: [\n callToAction,\n branch(\n r.path([ 'action', 'url' ]),\n //@ts-ignore\n withHover\n ),\n ],\n hooks: [\n withBreakpointsHook,\n withUrlComponent,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureTile);","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport { getTitleColor, getBodyColor, getBackgroundColor } from 'presentation/utils/colorway';\nimport { modifier, percentage } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { breakpoints } from '@ux/responsive';\nimport { Side as TilesSide } from './constants';\nimport { halfContainerWidth } from './styles';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { InnerProps } from './Tile';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n container: CSSProperties,\n title: CSSProperties,\n subtitle: CSSProperties,\n box: CSSProperties,\n wrapperText: CSSProperties,\n wrapperIcon: CSSProperties,\n icon: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n hover,\n layout,\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n leftTile,\n rightTile,\n}: InnerProps) => {\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: percentage(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: percentage(100),\n maxWidth: percentage(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 {\n withProps,\n} from '@team-griffin/rehook';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport Tile, { TileProps } from './Tile';\nimport stylesheet, { Styles } from './Tiles.stylesheet';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n theme: Theme,\n tiles: TileProps[],\n hBaseline: number,\n layout: Layout,\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\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 theme,\n tiles,\n styles,\n hBaseline,\n layout,\n}: InnerProps) => (\n
\n \n \n \n \n
\n \n
\n);\n\n\nexport const enhance = pureEnhance(\n 'Tiles',\n {\n hooks: [\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n },\n\n);\n\nexport default enhance(PureTiles);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './Tiles';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n tile: CSSProperties,\n}\nexport default ({\n isMinMd,\n isMinLg,\n}: InnerProps) => {\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\n isMinMd: {\n root: {\n flexDirection: 'row',\n display: 'flex',\n },\n tile: {\n width: percentage(50),\n },\n },\n isMinLg: {\n root: {\n flexDirection: 'column',\n height: percentage(100),\n },\n tile: {\n width: percentage(100),\n },\n },\n }, [\n { isMinMd },\n { isMinLg },\n ]);\n};\n","import React, { Fragment } from 'react';\nimport { Container, Row, Column, Direction, Justify } from '@ux/grid';\nimport pureEnhance from '@ux/pure-enhance';\nimport Background, { BackgroundArray } from '../Background';\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport Tiles from '../Tiles';\nimport PaddingBox, { Side } from '@ux/padding-box';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { withProps } from '@team-griffin/rehook';\nimport { Side as TilesSide } from '../constants';\nimport stylesheet, { Styles } from './WithTiles.stylesheet';\nimport * as r from 'ramda';\nimport { TileProps } from '../Tile';\nimport { isNotNilOrEmpty } from 'crosscutting/ramda';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean,\n background: BackgroundArray,\n onScrollClick: (evt: any) => any,\n justify: Justify,\n tiles: TileProps[],\n}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n direction: Direction,\n hasFooterText: boolean,\n}\nexport const PureBillboardTiles = ({\n styles,\n theme,\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 hasFooterText,\n background,\n direction,\n isMinLg,\n}: InnerProps) => (\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\nconst enhance = pureEnhance('BillboardTiles', [\n withBreakpointsHook,\n withProps((ownerProps: OuterProps) => ({\n direction: r.ifElse(\n r.pathEq([ 'layout', 'tilesSide' ], TilesSide.END),\n r.always(Direction.ROW),\n r.always(Direction.ROW_REVERSE),\n )(ownerProps),\n hasFooterText: r.propSatisfies(\n isNotNilOrEmpty,\n 'footerText',\n )(ownerProps),\n })),\n withProps(stylesheet),\n]);\n\nexport default enhance(PureBillboardTiles);\n","import { useStyles } from '@team-griffin/stylr';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\nimport { breakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px } from '@ux/theme-utils';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Side as TilesSide } from '../constants';\nimport { percentage } from '@ux/style-utils';\nimport { InnerProps } from './WithTiles';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n content: CSSProperties,\n body: CSSProperties,\n container: CSSProperties,\n row: CSSProperties,\n}\n\nexport default ({\n layout,\n theme,\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n}: InnerProps) => {\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 ...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: percentage(100),\n maxWidth: percentage(100),\n },\n row: {\n width: percentage(100),\n },\n content: {\n marginLeft: 'auto',\n maxWidth: halfContainerWidth(breakpoints.lg, spacing),\n height: percentage(100),\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, { Fragment, ReactNode } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport {\n withProps,\n defaultProps,\n withHandlers,\n withState,\n} from '@team-griffin/rehook';\nimport Ribbon from '../Ribbon';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\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, { cornerEmbellishments } 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 * as r from 'ramda';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport { CTA } from 'core/ribbons/cta';\n\nexport interface OuterProps extends BodyProps, RibbonProps {\n cornerEmbellishments?: cornerEmbellishments,\n}\ninterface DefaultProps extends OuterProps {\n ctas: CTA[],\n additionalText: string|ReactNode,\n footerText: string|ReactNode,\n duo: boolean,\n duoLayout: boolean,\n}\ninterface MiddleProps extends DefaultProps, BreakpointProps {}\ninterface InnerProps extends MiddleProps {\n bottomScrollName: string,\n hasTiles: boolean,\n}\n\nconst hasTwoTiles = r.pipe(r.length, r.equals(2));\n\nconst shouldShowScroll = (props: MiddleProps) => r.ifElse(\n r.propEq('isMinSm', true),\n r.pipe(\n r.path([ 'layout', 'fit' ]),\n (fit) => findResponsiveItem(\n getBreakpoints(props),\n fit,\n ),\n r.either(\n r.equals(Fit.FULLSCREEN),\n r.equals(Fit.FILL),\n ),\n ),\n r.always(false),\n)(props);\n\n\nconst BillboardLayout = r.cond([\n [ r.prop('hasTiles'), (props) => ],\n [ r.prop('duoLayout'), (props) => ],\n [ r.T, (props) => ],\n]);\n\nexport const PureBillboard = ({\n id,\n theme,\n layout,\n loading,\n colorway,\n name,\n bottomScrollName,\n hasTiles,\n duoLayout,\n cornerEmbellishments,\n ...props\n}: InnerProps) => (\n \n \n \n \n \n \n \n);\n\n\nexport const enhance = pureEnhance(\n 'Billboard',\n {\n hocs: [\n errorBoundary,\n visibilitySet,\n ],\n hooks: [\n defaultProps({\n ctas: [],\n additionalText: null,\n footerText: null,\n duo: false,\n }),\n withState('bottomScrollName', 'setBottomScrollName', () => {\n return ulid();\n }),\n withHandlers({\n onScrollClick: ({ bottomScrollName }: { bottomScrollName: string }) => () => {\n scroller.scrollTo(bottomScrollName, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n },\n }),\n withBreakpointsHook,\n withProps((ownerProps: MiddleProps) => ({\n showScroll: shouldShowScroll(ownerProps),\n hasTiles: r.both(\n r.propSatisfies(hasTwoTiles, 'tiles'),\n r.propEq('duo', false),\n )(ownerProps),\n })),\n ],\n },\n);\n\nexport default enhance(PureBillboard);\n","import Billboard, { OuterProps } from './Billboard';\nimport { Side } from './constants';\n\nexport {\n Side,\n OuterProps as BillboardProps,\n};\nexport default Billboard;"],"sourceRoot":""}