{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./node_modules/query-string/index.js","webpack:///./src/stories/Components/Countdown/Countdown.tsx","webpack:///./src/stories/Components/Link/Link.tsx","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.tsx","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.styles.ts","webpack:///./src/helpers/fluid.ts","webpack:///./src/helpers/animation.ts","webpack:///./src/stories/Widgets/ShardLightsHeroBanner/ShardLightsHeroBanner.tsx","webpack:///./src/helpers/brand.ts","webpack:///./src/helpers/grey.ts","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/filter-obj/index.js","webpack:///./src/helpers/cssVar.ts","webpack:///./src/helpers/fonts.ts"],"names":["Device","from","size","until","between","start","end","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","value","length","TypeError","encode","options","strict","encodeURIComponent","decode","removeHash","input","hashStart","indexOf","slice","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","parse","query","Object","assign","sort","arrayFormat","arrayFormatSeparator","formatter","result","key","accumulator","exec","replace","undefined","concat","isArray","includes","isEncodedArray","newValue","split","map","item","test","arrayValue","parserForArrayFormat","ret","create","param","keys","k","reduce","Boolean","Array","keysSorter","a","b","exports","stringify","object","shouldFilter","skipNull","skipEmptyString","index","join","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","calculateTimeLeft","endDate","difference","Date","timeLeft","days","hours","minutes","seconds","Math","floor","pad","num","number","toString","Countdown","props","setTimeLeft","React","obj","values","every","onComplete","timer","setInterval","clearInterval","S","Container","showDays","completeMessage","Inner","title","Title","DigitText","TimeWrapper","TimeDigits","TimeLabel","hideHours","Link","children","href","rel","initialRel","disableNofollow","otherProps","ref","getRel","startsWith","displayName","SiteWide","className","width","createElement","styled","div","setCssVar","cssVar","css","DesktopLarge","TabletLarge","DEFAULT_MIN_VALUE","Tablet","DEFAULT_MAX_VALUE","ActualDesktop","fluid","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","slope","yAxisIntersection","round","fluidUnit","unit","inView","threshold","rootMargin","earlyRootMargin","globalThreshold","easeInOutCubic","slideInUpInitial","slideInUp","animate","duration","delay","easingFunc","fadeInUp","amount","fadeIn","backgroundAnimation","textClip","multicolouredBackground","multicolouredAnimatedText","fonts","brown","light","multicolouredBackgroundBright","multicolouredTextBright","choirInTheSpireBackground","choirInTheSpireText","transition","properties","timing","innerCss","withMotion","id","tag","backgroundImage","backgroundImageTwo","foregroundImage","content","items","countdownTag","countdownTitle","countdownConfig","refContainer","isInView","useInView","animation","countdownFinished","setCountdownFinished","useState","visible","setVisible","srcs","img","getSrcs","ClipWrapper","ImageWrapper","Image","src","srcSet","sizes","alt","altText","role","ContentWrapper","Tag","ContentContainer","Content","dangerouslySetInnerHTML","__html","IconBlockList","IconItem","iconText","IconWrapper","renderSystemIcon","iconSvg","IconText","IconValue","iconValue","MediaWrapper","ForegroundImage","CountdownWrapper","style","startDate","CountdownTitle","now","toISOString","nextHour","setMinutes","setHours","getHours","setCountdownToDate","date","getTime","brand","black","blue","blueGrey","blueTint","grey","previous","current","hsl","orange","white","validation","invalid","valid","lightTheme","grey90","grey96","darkTheme","grey10","themes","dark","module","str","charCodeAt","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","left","right","prototype","call","tokens","match","i","encodedURI","replaceMap","entries","customDecodeURIComponent","string","separator","separatorIndex","predicate","isArr","val","name","thin","thinItalic","lightItalic","regular","regularItalic","bold","boldItalic"],"mappings":"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","file":"79-bf93ca219b2a140b09d6.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import * as React from 'react';\r\nimport S from './Countdown.styles';\r\nconst Countdown = (props) => {\r\n if (props.endDate === undefined) {\r\n return null;\r\n }\r\n const [timeLeft, setTimeLeft] = React.useState(calculateTimeLeft(props.endDate));\r\n React.useEffect(() => {\r\n if (allAreZero(timeLeft)) {\r\n props.onComplete();\r\n return;\r\n }\r\n const timer = setInterval(() => {\r\n setTimeLeft(calculateTimeLeft(props.endDate));\r\n }, 1000);\r\n return () => {\r\n clearInterval(timer);\r\n };\r\n }, [timeLeft]);\r\n return (React.createElement(S.Container, { \"data-show-days\": props.showDays && !props.completeMessage },\r\n React.createElement(S.Inner, null,\r\n props.title && React.createElement(S.Title, null, props.title),\r\n props.completeMessage ? (React.createElement(S.DigitText, { \"data-message\": true }, props.completeMessage)) : timeLeft ? (React.createElement(S.TimeWrapper, null,\r\n props.showDays && (React.createElement(S.TimeDigits, null,\r\n React.createElement(S.DigitText, null, pad(timeLeft.days, 2)),\r\n React.createElement(S.TimeLabel, null, \"Days\"))),\r\n (props.hideHours === undefined || !props.hideHours) && (React.createElement(S.TimeDigits, null,\r\n React.createElement(S.DigitText, null, pad(props.showDays ? timeLeft.hours - timeLeft.days * 24 : timeLeft.hours, 2)),\r\n React.createElement(S.TimeLabel, null, \"Hours\"))),\r\n React.createElement(S.TimeDigits, null,\r\n React.createElement(S.DigitText, null, pad(timeLeft.minutes, 2)),\r\n React.createElement(S.TimeLabel, null, \"Minutes\")),\r\n React.createElement(S.TimeDigits, null,\r\n React.createElement(S.DigitText, null, pad(timeLeft.seconds, 2)),\r\n React.createElement(S.TimeLabel, null, \"Seconds\")))) : null)));\r\n};\r\nexport default Countdown;\r\nfunction calculateTimeLeft(endDate) {\r\n const difference = +new Date(endDate) - +new Date();\r\n let timeLeft = { days: 0, hours: 0, minutes: 0, seconds: 0 };\r\n if (difference > 0) {\r\n timeLeft = {\r\n days: Math.floor(difference / (1000 * 60 * 60 * 24)),\r\n hours: Math.floor(difference / (1000 * 60 * 60)),\r\n minutes: Math.floor((difference / 1000 / 60) % 60),\r\n seconds: Math.floor((difference / 1000) % 60),\r\n };\r\n }\r\n return timeLeft;\r\n}\r\nfunction pad(num, size) {\r\n let number = num.toString();\r\n while (number.length < size)\r\n number = '0' + number;\r\n return number;\r\n}\r\nfunction allAreZero(obj) {\r\n return Object.values(obj).every((value) => value === 0);\r\n}\r\n","import * as React from 'react';\r\nconst Link = React.forwardRef(({ children, href, rel: initialRel, disableNofollow = false, ...otherProps }, ref) => {\r\n return (React.createElement(\"a\", { ref: ref, href: href, rel: getRel(href, initialRel, disableNofollow), ...otherProps }, children));\r\n});\r\nLink.displayName = 'Link';\r\nexport default Link;\r\n/**\r\n * Get the rel value for the href, handle nofollow on external links unless noFollowDisabled is true.\r\n */\r\nfunction getRel(href = '', initialRel = '', disableNofollow) {\r\n // If disableNofollow is true, remove 'nofollow' from initialRel\r\n if (disableNofollow) {\r\n return initialRel.replace('nofollow', '');\r\n }\r\n // Skip if rel already includes 'nofollow' or href is a relative URL\r\n if (initialRel.includes('nofollow') || href.startsWith('/')) {\r\n return initialRel;\r\n }\r\n // Otherwise, append 'nofollow' to existing rel value\r\n return `${initialRel} nofollow`.trim();\r\n}\r\n","import React from 'react';\r\nimport S from './SiteWide.styles';\r\nconst SiteWide = ({ children, className, width = 'default' }) => {\r\n return (React.createElement(S.Container, { className: className, width: width }, children));\r\n};\r\nexport default SiteWide;\r\n","import { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '100%')};\r\n\r\n --siteGutter: calc((1926px - (var(--siteWidth) + (var(--sitePadding) * 2))) / 2);\r\n\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: calc(${cssVar('siteWidth')} + (${cssVar('sitePadding')} * 2));\r\n padding-left: ${cssVar('sitePadding')};\r\n padding-right: ${cssVar('sitePadding')};\r\n width: 100%;\r\n\r\n ${({ width }) => {\r\n switch (width) {\r\n case 'default':\r\n return css `\r\n @media ${from(Device.DesktopLarge)} {\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '1312px')};\r\n }\r\n `;\r\n case 'narrow':\r\n return css `\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '804px')};\r\n }\r\n `;\r\n case 'wide':\r\n return css `\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '1640px')};\r\n }\r\n `;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Container,\r\n};\r\n","import { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.Tablet;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.ActualDesktop;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluidUnit(min, max, unit = '', minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const slope = (max - min) / (maxWidth - minWidth);\r\n const yAxisIntersection = -minWidth * slope + min;\r\n const clampMin = `${round(min)}`;\r\n const clampVal = `${round(yAxisIntersection)}${unit} + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(max)}`;\r\n return `clamp(${clampMin}${unit}, ${clampVal}, ${clampMax}${unit})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import { css } from 'styled-components';\r\nimport fonts from './fonts';\r\nexport default {\r\n inView: {\r\n threshold: 0.25,\r\n rootMargin: '0px 0px -25% 0px',\r\n earlyRootMargin: '0px 0px -10% 0px',\r\n },\r\n globalThreshold: 0.25,\r\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\r\n};\r\nexport const slideInUpInitial = css `\r\n > span {\r\n opacity: 0;\r\n transform: translateY(100%);\r\n }\r\n`;\r\nexport function slideInUp(animate, duration, delay, easingFunc) {\r\n return css `\r\n overflow: hidden;\r\n\r\n > span {\r\n display: inline-block;\r\n transition: transform ${duration}ms ${delay}ms ${easingFunc},\r\n opacity ${duration}ms ${delay}ms ${easingFunc};\r\n }\r\n\r\n ${animate\r\n ? css `\r\n > span {\r\n opacity: 1;\r\n transform: translateY(0px);\r\n }\r\n `\r\n : css `\r\n ${slideInUpInitial};\r\n `}\r\n `;\r\n}\r\nexport function fadeInUp(animate, amount, duration, delay, easingFunc) {\r\n return css `\r\n transition: transform ${duration}ms ${delay}ms ${easingFunc},\r\n opacity ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${animate\r\n ? css `\r\n opacity: 1;\r\n transform: translateY(0px);\r\n `\r\n : css `\r\n opacity: 0;\r\n transform: translateY(${amount}px);\r\n `}\r\n `;\r\n}\r\nexport function fadeIn(animate, duration, delay, easingFunc) {\r\n return css `\r\n transition: opacity ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${animate\r\n ? css `\r\n opacity: 1;\r\n `\r\n : css `\r\n opacity: 0;\r\n `}\r\n `;\r\n}\r\nconst backgroundAnimation = css `\r\n background-size: 200% auto;\r\n animation: multicoloured 5s linear infinite;\r\n\r\n @keyframes multicoloured {\r\n to {\r\n background-position: 200% center;\r\n }\r\n }\r\n`;\r\nconst textClip = css `\r\n background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n width: fit-content;\r\n`;\r\nexport const multicolouredBackground = css `\r\n background: linear-gradient(\r\n 90deg,\r\n rgba(213, 149, 91, 1) 0%,\r\n rgba(213, 118, 86, 1) 20%,\r\n rgba(100, 202, 185, 1) 40%,\r\n rgba(150, 145, 204, 1) 60%,\r\n rgba(182, 103, 202, 1) 80%,\r\n rgba(174, 90, 188, 1) 100%\r\n );\r\n\r\n ${backgroundAnimation}\r\n`;\r\nexport const multicolouredAnimatedText = css `\r\n ${fonts.brown.light}\r\n ${multicolouredBackground};\r\n ${textClip};\r\n`;\r\nexport const multicolouredBackgroundBright = css `\r\n background: linear-gradient(\r\n 90deg,\r\n #ed4141,\r\n #ef523d,\r\n #f0623a,\r\n #f17138,\r\n #f07e37,\r\n #f08b39,\r\n #ef983c,\r\n #eda441,\r\n #d8a936,\r\n #c2ae30,\r\n #aab231,\r\n #90b439,\r\n #73b645,\r\n #50b754,\r\n #08b766,\r\n #50b754,\r\n #73b645,\r\n #90b439,\r\n #aab231,\r\n #c2ae30,\r\n #d8a936,\r\n #eda441,\r\n #ef983c,\r\n #f08b39,\r\n #f07e37,\r\n #f17138,\r\n #f0623a,\r\n #ef523d,\r\n #ed4141\r\n );\r\n\r\n ${backgroundAnimation}\r\n`;\r\nexport const multicolouredTextBright = css `\r\n ${fonts.brown.light}\r\n ${multicolouredBackgroundBright};\r\n ${textClip};\r\n`;\r\nexport const choirInTheSpireBackground = css `\r\n background: linear-gradient(\r\n 90deg,\r\n #f1563c 9%,\r\n #e65352 10%,\r\n #d34e79 11%,\r\n #c74c92 12%,\r\n #c34b9b 13%,\r\n #00b3c1 40%,\r\n #c34b9b 45%,\r\n #f1563c 50%,\r\n #f1563c 59%,\r\n #e65352 60%,\r\n #d34e79 61%,\r\n #d34e79 62%,\r\n #c74c92 63%,\r\n #00b3c1 90%,\r\n #c34b9b 95%,\r\n #f1563c 100%\r\n );\r\n\r\n ${backgroundAnimation}\r\n`;\r\nexport const choirInTheSpireText = css `\r\n ${choirInTheSpireBackground};\r\n ${textClip};\r\n`;\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss}\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-property: ${properties};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\n","import animation from '@helpers/animation';\r\nimport { getSrcs } from '@helpers/image';\r\nimport { renderSystemIcon } from '@helpers/systemIcons';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport { useInView } from '@hooks/useInView';\r\nimport Countdown from '@stories/Components/Countdown/Countdown';\r\nimport React from 'react';\r\nimport S from './ShardLightsHeroBanner.styles';\r\nconst ShardLightsHeroBanner = ({ id, tag, backgroundImage, backgroundImageTwo, foregroundImage, title, content, items, countdownTag, countdownTitle, countdownConfig, }) => {\r\n const [refContainer, isInView] = useInView({\r\n rootMargin: animation.inView.earlyRootMargin,\r\n });\r\n const [countdownFinished, setCountdownFinished] = React.useState(false);\r\n const [visible, setVisible] = React.useState(countdownConfig.visible);\r\n const srcs = (img) => getSrcs(img, 2560, 375, 10);\r\n return (React.createElement(S.Container, { ref: refContainer, id: id, \"data-active\": isInView, \"data-countdown-finished\": countdownFinished },\r\n React.createElement(S.ClipWrapper, null,\r\n React.createElement(S.ImageWrapper, null,\r\n React.createElement(S.Image, { src: srcs(backgroundImage)[0].split(' ')[0], srcSet: srcs(backgroundImage).join(','), sizes: \"100vw\", alt: backgroundImage.altText, role: !backgroundImage.altText ? 'presentation' : undefined, \"data-desktop-img\": true }),\r\n backgroundImageTwo && (React.createElement(S.Image, { src: srcs(backgroundImageTwo)[0].split(' ')[0], srcSet: srcs(backgroundImageTwo).join(','), sizes: \"100vw\", alt: backgroundImageTwo.altText, role: !backgroundImageTwo.altText ? 'presentation' : undefined, \"data-desktop-img\": true }))),\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.Tag, null, tag),\r\n React.createElement(S.Title, null, title),\r\n React.createElement(S.ContentContainer, null,\r\n React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: content } })),\r\n items && (React.createElement(S.IconBlockList, null, items.map((item, index) => (React.createElement(S.IconItem, { key: `Icon-${index} - ${item.iconText}` },\r\n React.createElement(S.IconWrapper, null, renderSystemIcon(item.iconSvg)),\r\n React.createElement(S.IconText, null, item.iconText),\r\n React.createElement(S.IconValue, null, item.iconValue))))))),\r\n React.createElement(S.MediaWrapper, null,\r\n React.createElement(S.ForegroundImage, { src: srcs(foregroundImage)[0].split(' ')[0], srcSet: srcs(foregroundImage).join(','), sizes: \"100vw\", alt: foregroundImage.altText, role: !foregroundImage.altText ? 'presentation' : undefined, \"data-desktop-img\": true })))),\r\n visible && (React.createElement(S.CountdownWrapper, { style: {\r\n '--timeColumns': showDays(countdownConfig.startDate)\r\n ? 4\r\n : hideHours(countdownConfig.startDate)\r\n ? 2\r\n : 3,\r\n } },\r\n React.createElement(S.CountdownTitle, null,\r\n React.createElement(\"small\", null, countdownTag),\r\n React.createElement(\"span\", null, countdownTitle)),\r\n React.createElement(S.Countdown, null,\r\n React.createElement(Countdown, { showDays: showDays(countdownConfig.startDate), hideHours: hideHours(countdownConfig.startDate), endDate: setCountdownToDate(countdownConfig.startDate), onComplete: () => setCountdownFinished(true) }))))));\r\n function setCountdownToDate(startDate) {\r\n const now = new Date();\r\n const start = new Date(startDate);\r\n const end = countdownConfig.endDate ? new Date(countdownConfig.endDate) : null;\r\n // Check if startDate is in the future\r\n if (start > now) {\r\n return start.toISOString();\r\n }\r\n // If startDate has passed, set the countdown to the next hour\r\n const nextHour = new Date();\r\n nextHour.setMinutes(0, 0, 0); // Reset to start of the current hour\r\n nextHour.setHours(nextHour.getHours() + 1); // Set to the next hour\r\n // If there's an endDate, ensure the countdown doesn't go beyond that\r\n if (end && nextHour > end) {\r\n setVisible(false); // Hide countdown if we're past endDate\r\n return end.toISOString();\r\n }\r\n return nextHour.toISOString();\r\n }\r\n function showDays(date) {\r\n const now = new Date();\r\n const end = new Date(date);\r\n // If the countdown is less than 24 hours, don't show days\r\n return end.getTime() - now.getTime() > 1000 * 60 * 60 * 24;\r\n }\r\n function hideHours(date) {\r\n const now = new Date();\r\n const end = new Date(date);\r\n // If the countdown is less than 1 hour, hide hours\r\n return end.getTime() - now.getTime() < 1000 * 60 * 60;\r\n }\r\n};\r\nexport default withMotion(ShardLightsHeroBanner);\r\n","import { css } from 'styled-components';\r\nimport { setCssVar } from './cssVar';\r\nimport greyscale from './grey';\r\nconst brand = {\r\n black: '#000000',\r\n blue: '#b7cbeb',\r\n blueGrey: '#eff1f1',\r\n blueTint: '#eef1f8',\r\n grey: greyscale,\r\n orange: '#f96a1d',\r\n white: '#fff',\r\n validation: {\r\n invalid: '#da291c',\r\n valid: '#008c15',\r\n },\r\n};\r\nexport const lightTheme = css `\r\n ${setCssVar('fgColor', brand.black)};\r\n ${setCssVar('bgColor', brand.white)};\r\n ${setCssVar('bgColorAlt', brand.grey.grey90)};\r\n ${setCssVar('bgColorAlt2', brand.grey.grey96)};\r\n ${setCssVar('accentColor', brand.orange)};\r\n ${setCssVar('colorScheme', 'light')};\r\n`;\r\nexport const darkTheme = css `\r\n ${setCssVar('fgColor', brand.white)};\r\n ${setCssVar('bgColor', brand.black)};\r\n ${setCssVar('bgColorAlt', brand.grey.grey10)};\r\n ${setCssVar('bgColorAlt2', brand.black)};\r\n ${setCssVar('accentColor', brand.orange)};\r\n ${setCssVar('colorScheme', 'dark')};\r\n`;\r\nexport const themes = {\r\n dark: darkTheme,\r\n light: lightTheme,\r\n};\r\nexport default brand;\r\n","import { hsl } from 'polished';\r\nconst greyscaleValues = [10, 18, 46, 73, 90, 96];\r\nconst greyscale = greyscaleValues.reduce((previous, current) => ({\r\n ...previous,\r\n [`grey${current}`]: grey(current),\r\n}), {});\r\nfunction grey(value) {\r\n return hsl(0, 0, value / 100);\r\n}\r\nexport { greyscale as default, grey };\r\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","const variables = [\r\n 'fgColor',\r\n 'bgColor',\r\n 'bgColorAlt',\r\n 'bgColorAlt2',\r\n 'accentColor',\r\n 'siteWidth',\r\n 'sitePadding',\r\n 'sectionMargin',\r\n 'colorScheme',\r\n];\r\nfunction cssVar(name) {\r\n return `var(--${name})`;\r\n}\r\nfunction setCssVar(name, value) {\r\n return `--${name}: ${value}`;\r\n}\r\nexport { cssVar, setCssVar };\r\n","import { css } from 'styled-components';\r\nexport default {\r\n brown: {\r\n thin: css `\r\n font-family: 'Brown', sans-serif;\r\n font-style: normal;\r\n font-weight: 100;\r\n `,\r\n thinItalic: css `\r\n font-family: 'Brown', sans-serif;\r\n font-weight: 100;\r\n font-style: italic;\r\n `,\r\n light: css `\r\n font-family: 'Brown', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Brown', sans-serif;\r\n font-weight: 300;\r\n font-style: italic;\r\n `,\r\n regular: css `\r\n font-family: 'Brown', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Brown', sans-serif;\r\n font-weight: 400;\r\n font-style: italic;\r\n `,\r\n bold: css `\r\n font-family: 'Brown', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Brown', sans-serif;\r\n font-weight: 700;\r\n font-style: italic;\r\n `,\r\n },\r\n};\r\n"],"sourceRoot":""}