{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/stories/Components/SectionWrapper/SectionWrapper.tsx","webpack:///./src/helpers/aspectRatio.ts","webpack:///./src/stories/Components/Misc/ArticleDate/ArticleDate.styles.ts","webpack:///./src/stories/Components/Misc/ArticleDate/ArticleDate.tsx","webpack:///./src/helpers/grid.ts","webpack:///./src/img/icons/blockquote-icon.svg","webpack:///./src/stories/Components/SectionWrapper/SectionWrapper.styles.ts","webpack:///./src/helpers/date.ts","webpack:///./src/helpers/brand.ts","webpack:///./src/helpers/fluid.ts","webpack:///./src/stories/Widgets/ArticleDetailPageHeroBanner/ArticleDetailPageHeroBanner.styles.ts","webpack:///./src/stories/Widgets/ArticleDetailPageHeroBanner/ArticleDetailPageHeroBanner.tsx","webpack:///./src/helpers/typography.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:///./node_modules/query-string/index.js","webpack:///./src/helpers/fonts.ts","webpack:///./src/helpers/animate.ts","webpack:///./src/helpers/image.ts"],"names":["Device","from","size","until","between","start","end","SectionWrapper","React","ref","children","layout","hideOverflow","otherProps","S","Container","Inner","displayName","aspectRatio","width","height","imageWrapperPreserveRatio","css","imageCoverContainer","relative","ArticleDateStyles","ArticleDateVariant","ArticleDateSize","styled","div","tagLarge","tagSmall","brand","black","green","white","Date","time","ArticleDate","date","tags","variant","dateTime","formatDateISO","formatDate","SitePadding","SiteWidth","siteWide","TabletLarge","baseGrid","fluid","_path","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgBlockquoteIcon","props","viewBox","xmlns","d","fill","fillRule","SectionWrapperStyles","section","value","ensureDate","getTime","getTimezoneOffset","toISOString","formatString","format","formatDay","Intl","DateTimeFormat","undefined","day","weekday","formatRange","to","dateFrom","dateTo","month","year","formatTime","hour","minute","hour12","beige","beigeDark","greenBright","greyLight","greyMid","greyDark","pink","validation","invalid","valid","textShadow","rgba","DEFAULT_MIN_VALUE","TabletSmall","DEFAULT_MAX_VALUE","ActualDesktop","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","ArticleDetailPageHeroBannerStyles","Tablet","Detail","Title","h1","ImageWrapper","MobileLarge","Image","img","ArticleDetailPageHeroBanner","anchorId","title","image","srcs","getSrcs","id","Large","Black","sizes","DesktopLarge","src","split","srcSet","join","role","altText","alt","headingStyles","fonts","zahrah","medium","h2","h3","h4","h5","h6","paragraphStyles","brandonGrotesque","regular","paragraphLarge","paragraphMedium","paragraphSmall","paragraphMicro","bold","tag","link","transition","table","blockquote","svgBlockQuoteIcon","contentStyles","module","exports","str","encodeURIComponent","replace","x","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","left","slice","right","Array","concat","decode","input","tokens","match","encodedURI","TypeError","replaceMap","exec","result","entries","keys","customDecodeURIComponent","string","separator","separatorIndex","indexOf","obj","predicate","ret","isArr","isArray","val","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","options","strict","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","parse","query","sort","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","newValue","map","item","test","arrayValue","parserForArrayFormat","create","param","k","reduce","Boolean","keysSorter","a","b","stringify","object","shouldFilter","skipNull","skipEmptyString","index","keyValueSep","encoderForArrayFormat","objectCopy","filter","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","thin","thinItalic","light","lightItalic","regularItalic","mediumItalic","boldItalic","blackItalic","semiBold","cubicEaseOut","shouldAnimate","innerCss","properties","duration","timing","scrollTo","y","disabled","document","querySelector","window","top","behavior","imageUrl","imageParams","imageSource","params","rxy","focalPoint","quality","rsampler","upper","lower","steps","ratio","increment","_","ceil","getRange"],"mappings":"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","file":"63-0cf650b6dc9444e1be72.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[\"TabletMedium\"] = 896] = \"TabletMedium\";\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","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef(({ children, layout = 'default', hideOverflow, ...otherProps }, ref) => {\r\n switch (layout) {\r\n case 'fullWidth':\r\n return (React.createElement(S.Container, { ref: ref, \"data-hide-overflow\": hideOverflow, ...otherProps }, children));\r\n case 'default':\r\n default:\r\n return (React.createElement(S.Container, { ref: ref, \"data-hide-overflow\": hideOverflow, ...otherProps },\r\n React.createElement(S.Inner, null, children)));\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { css } from 'styled-components';\r\n/**\r\n * Returns the aspect ratio of the given width and height as a percentage.\r\n */\r\nexport function aspectRatio(width, height) {\r\n return (height / width) * 100;\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n return css `\r\n position: relative;\r\n height: 0;\r\n width: 100%;\r\n overflow: hidden;\r\n overflow: clip;\r\n padding-bottom: ${aspectRatio(width, height)}%;\r\n `;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","import brand from '@helpers/brand';\r\nimport { tagLarge, tagSmall } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n &[data-size='large'] {\r\n ${tagLarge};\r\n }\r\n\r\n &[data-size='small'] {\r\n ${tagSmall};\r\n }\r\n\r\n &[data-variant='black'] {\r\n color: ${brand.black};\r\n }\r\n\r\n &[data-variant='green'] {\r\n color: ${brand.green};\r\n }\r\n\r\n &[data-variant='white'] {\r\n color: ${brand.white};\r\n }\r\n\r\n &[data-variant] {\r\n margin: 0;\r\n }\r\n`;\r\nconst Date = styled.time ``;\r\nconst ArticleDateStyles = {\r\n Container,\r\n Date,\r\n};\r\nexport default ArticleDateStyles;\r\n","import { formatDate, formatDateISO } from '@helpers/date';\r\nimport * as React from 'react';\r\nimport S from './ArticleDate.styles';\r\nexport var ArticleDateVariant;\r\n(function (ArticleDateVariant) {\r\n ArticleDateVariant[\"Black\"] = \"black\";\r\n ArticleDateVariant[\"Green\"] = \"green\";\r\n ArticleDateVariant[\"White\"] = \"white\";\r\n})(ArticleDateVariant || (ArticleDateVariant = {}));\r\nexport var ArticleDateSize;\r\n(function (ArticleDateSize) {\r\n ArticleDateSize[\"Large\"] = \"large\";\r\n ArticleDateSize[\"Small\"] = \"small\";\r\n})(ArticleDateSize || (ArticleDateSize = {}));\r\nconst ArticleDate = ({ date, tags, size, variant }) => {\r\n return (React.createElement(S.Container, { \"data-size\": size, \"data-variant\": variant },\r\n React.createElement(S.Date, { dateTime: formatDateISO(date) }, formatDate(date, 'MMM dd, yyyy')),\r\n \" | \",\r\n tags));\r\n};\r\nexport default ArticleDate;\r\n","import { Device, from } from '@helpers/media';\r\nimport { css } from 'styled-components';\r\nimport { fluid } from './fluid';\r\nexport const SitePadding = 18;\r\nexport const SiteWidth = 1240;\r\nexport const SiteWidthBreakpoint = SiteWidth + SitePadding * 2;\r\nexport const siteWide = css `\r\n --sitePadding: ${SitePadding}px;\r\n --siteWidth: ${SiteWidth}px;\r\n --maxWidth: calc(var(--siteWidth) + (var(--sitePadding) * 2));\r\n\r\n margin: 0 auto;\r\n padding: 0 var(--sitePadding);\r\n width: 100%;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: min(calc(75% + (var(--sitePadding) * 2)), var(--maxWidth));\r\n }\r\n`;\r\nexport const baseGrid = css `\r\n --gutterWidth: ${fluid(10, 40)};\r\n\r\n display: grid;\r\n column-gap: var(--gutterWidth);\r\n grid-template-columns: repeat(12, 1fr);\r\n`;\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgBlockquoteIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1200 1200\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54 728.45c0 138.57 112.33 250.91 250.91 250.91s250.91-112.33 250.91-250.91c0-136.87-109.64-248.07-245.87-250.78 63.348-62.125 150.11-100.5 245.87-100.5l.004-150.54c-277.14 0-501.82 224.68-501.82 501.82zm1104-501.82c-277.14 0-501.82 224.68-501.82 501.82 0 138.57 112.34 250.91 250.91 250.91S1158 867.03 1158 728.45c0-136.87-109.64-248.07-245.87-250.78 63.348-62.125 150.12-100.5 245.87-100.5z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n })));\n}\n\nexport default __webpack_public_path__ + \"f328a34411117476e91b24f457d832a0.svg\";\nexport { SvgBlockquoteIcon as ReactComponent };","import { fluid } from '@helpers/fluid';\r\nimport { siteWide } from '@helpers/grid';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --sectionSpacing: ${fluid(48, 96)};\r\n scroll-margin: var(--headerScrollHeight) 0 0;\r\n\r\n &[data-hide-overflow='true'] {\r\n overflow: hidden;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide}\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import format from 'date-fns/format';\r\nexport function formatDateISO(value) {\r\n const date = ensureDate(value);\r\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString();\r\n}\r\nexport function formatDate(value, formatString = 'MMMM do yyyy') {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return format(date, formatString);\r\n}\r\nexport function formatDay(value) {\r\n const date = ensureDate(value);\r\n const formatter = new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n weekday: 'short',\r\n });\r\n return formatter.format(date);\r\n}\r\nexport function formatRange(from, to) {\r\n const dateFrom = ensureDate(from);\r\n const dateTo = ensureDate(to);\r\n const formatter = new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n });\r\n return formatter.formatRange(dateFrom, dateTo);\r\n}\r\nexport function ensureDate(value) {\r\n if (typeof value === 'string') {\r\n return new Date(value);\r\n }\r\n return value;\r\n}\r\nexport function formatTime(value) {\r\n const date = ensureDate(value);\r\n const formatter = new Intl.DateTimeFormat(undefined, {\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: false,\r\n });\r\n return formatter.format(date);\r\n}\r\n","import { rgba } from 'polished';\r\nconst brand = {\r\n beige: '#F4F3EE',\r\n beigeDark: '#E9E7DD',\r\n black: '#000000',\r\n green: '#9DAD98',\r\n greenBright: '#889E83',\r\n greyLight: '#F4F3EE',\r\n greyMid: '#BEBEBE',\r\n greyDark: '#2B2E34',\r\n pink: '#FF8C93',\r\n white: '#ffffff',\r\n validation: {\r\n invalid: '#DA291C',\r\n valid: '#008C15',\r\n },\r\n};\r\nexport default brand;\r\nexport const textShadow = `drop-shadow(0px 0px 6px ${rgba(brand.greyDark, 0.5)})`;\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.TabletSmall;\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 * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import { imageCoverContainer, imageWrapperPreserveRatio } from '@helpers/aspectRatio';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { Device, from } from '@helpers/media';\r\nimport { h1 } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n background: ${brand.beige};\r\n margin-bottom: var(--sectionSpacing);\r\n`;\r\nconst Inner = styled.div `\r\n display: grid;\r\n gap: ${fluid(32, 40)};\r\n padding: ${fluid(24, 32)} 0 ${fluid(40, 85)};\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-template-columns: 1fr 1.5fr;\r\n align-items: center;\r\n }\r\n`;\r\nconst Detail = styled.div ``;\r\nconst Title = styled.h1 `\r\n ${h1};\r\n`;\r\nconst ImageWrapper = styled.div `\r\n ${imageWrapperPreserveRatio(3, 4)};\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n ${imageWrapperPreserveRatio(16, 9)};\r\n }\r\n`;\r\nconst Image = styled.img `\r\n ${imageCoverContainer()};\r\n`;\r\nconst ArticleDetailPageHeroBannerStyles = {\r\n Container,\r\n Inner,\r\n Detail,\r\n Title,\r\n ImageWrapper,\r\n Image,\r\n};\r\nexport default ArticleDetailPageHeroBannerStyles;\r\n","import { getSrcs } from '@helpers/image';\r\nimport { Device, until } from '@helpers/media';\r\nimport ArticleDate, { ArticleDateSize, ArticleDateVariant, } from '@stories/Components/Misc/ArticleDate/ArticleDate';\r\nimport * as React from 'react';\r\nimport S from './ArticleDetailPageHeroBanner.styles';\r\nconst ArticleDetailPageHeroBanner = ({ anchorId, title, date, tags, image, }) => {\r\n const srcs = getSrcs(image, 731, 339, 6, 3 / 4);\r\n return (React.createElement(S.Container, { id: anchorId },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.Detail, null,\r\n React.createElement(S.Title, null, title),\r\n React.createElement(ArticleDate, { date: date, tags: tags, size: ArticleDateSize.Large, variant: ArticleDateVariant.Black })),\r\n React.createElement(S.ImageWrapper, null,\r\n React.createElement(S.Image, { sizes: `${until(Device.TabletSmall)} 100vw, ${until(Device.TabletLarge)} 66vw, ${until(Device.DesktopLarge)} 52.5vw, 720px`, src: srcs[0].split(' ')[0], srcSet: srcs.join(','), role: !image.altText ? 'presentation' : undefined, alt: image.altText })))));\r\n};\r\nexport default ArticleDetailPageHeroBanner;\r\n","import svgBlockQuoteIcon from '@img/icons/blockquote-icon.svg';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport { Device, from } from './media';\r\nexport const headingStyles = css `\r\n color: currentColor;\r\n ${fonts.zahrah.medium};\r\n margin: 0 0 ${fluid(16, 18)};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n letter-spacing: -0.035em;\r\n }\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(36, 52)};\r\n line-height: ${fluid(42, 58)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(32, 46)};\r\n line-height: ${fluid(38, 52)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(28, 36)};\r\n line-height: ${fluid(34, 42)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(24, 32)};\r\n line-height: ${fluid(30, 38)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(20, 26)};\r\n line-height: ${fluid(26, 32)};\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n`;\r\nconst paragraphStyles = css `\r\n color: currentColor;\r\n ${fonts.brandonGrotesque.regular};\r\n margin: 0 0 ${fluid(14, 16)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n`;\r\nexport const paragraphMedium = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(22, 24)};\r\n`;\r\nexport const paragraphMicro = css `\r\n ${paragraphStyles};\r\n font-size: 16px;\r\n line-height: 22px;\r\n`;\r\nexport const tagLarge = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(20, 22)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const tag = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(18, 20)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const tagSmall = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(12, 14)};\r\n line-height: ${fluid(14, 16)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const link = css `\r\n display: inline-block;\r\n color: currentColor;\r\n background: linear-gradient(\r\n to right,\r\n var(--accentColor, ${brand.green}),\r\n var(--accentColor, ${brand.green})\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n margin: 0 -4px 0;\r\n padding: 0 4px 0;\r\n text-decoration: underline;\r\n text-underline-offset: 3px;\r\n\r\n ${transition('background-size, color')};\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &.focus-ring,\r\n &:focus,\r\n &:hover {\r\n background-size: 100% 100%;\r\n color: ${brand.white};\r\n text-decoration: none;\r\n }\r\n`;\r\nexport const table = css `\r\n background: ${brand.white};\r\n border-collapse: collapse;\r\n color: ${brand.black};\r\n margin-bottom: 1em;\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n background: ${brand.green};\r\n\r\n td,\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.zahrah.medium};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(odd) {\r\n background: ${brand.white};\r\n }\r\n\r\n &:nth-child(even) {\r\n background: ${brand.beige};\r\n }\r\n\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.zahrah.medium};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n\r\n td {\r\n border: 2px solid ${brand.white};\r\n ${fonts.brandonGrotesque.regular};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 20px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n`;\r\nexport const blockquote = css `\r\n position: relative;\r\n ${paragraphLarge}\r\n ${fonts.brandonGrotesque.bold}\r\n padding-top: 66px;\r\n text-align: left;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n background-image: url(${svgBlockQuoteIcon});\r\n height: 50px;\r\n width: 50px;\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h1}\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h2}\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h3}\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h4}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h5}\r\n }\r\n\r\n p {\r\n ${paragraphMedium}\r\n }\r\n\r\n p.large {\r\n ${paragraphLarge}\r\n }\r\n\r\n p.small {\r\n ${paragraphSmall}\r\n }\r\n\r\n p.tag-large,\r\n .tag-large {\r\n ${tagLarge};\r\n }\r\n\r\n p.tag,\r\n .tag {\r\n ${tag};\r\n }\r\n\r\n p.tag-small,\r\n .tag-small {\r\n ${tagSmall};\r\n }\r\n\r\n p.tag,\r\n .tag,\r\n p.tag-large,\r\n .tag-large,\r\n p.tag-small,\r\n .tag-small {\r\n margin: 0 0 ${fluid(12, 14)};\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphMedium};\r\n margin: 0 0 0.5em;\r\n\r\n li {\r\n margin: 0 0 0.33em;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n padding-left: 1.2em;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n padding-left: 1.2em;\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n height: 4px;\r\n margin: ${fluid(40, 80)} 0;\r\n padding: 0;\r\n width: 100%;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n .responsive-table {\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\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","'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 'colon-list-separator':\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), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', 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 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\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 { css } from 'styled-components';\r\nexport default {\r\n brandonGrotesque: {\r\n thin: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 100;\r\n `,\r\n thinItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 100;\r\n `,\r\n light: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n mediumItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 500;\r\n `,\r\n bold: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n black: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 900;\r\n `,\r\n blackItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 900;\r\n `,\r\n },\r\n zahrah: {\r\n regular: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n semiBold: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n },\r\n};\r\n","import { css } from 'styled-components';\r\nexport const inViewMargin = '0px 0px -35% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport const disableAnimationClass = '.equally-ai___toolbox-disable-buttons-animations';\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: ${properties};\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\nexport function scrollTo(y) {\r\n const disabled = document.querySelector(disableAnimationClass);\r\n window.scrollTo({\r\n top: y,\r\n behavior: !disabled ? 'smooth' : 'auto',\r\n });\r\n}\r\n","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image || !image.src) {\r\n return '';\r\n }\r\n /**\r\n * Remove any query param string to ensure paramsString is applied correctly and\r\n * there are no double definitions (setting a param twice prevents any tranformations)\r\n */\r\n const imageSource = image.src.split('?')[0];\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.left},${image.focalPoint.top}` : undefined,\r\n // Define default quality as 90 to ensure some reduction in size for all but the smallest images\r\n quality: imageParams.width && imageParams.width > 400 ? 90 : 100,\r\n // Default the format to jpg, except in cases where the original image is an SVG or PNG\r\n format: imageSource.includes('.svg') || imageSource.includes('.png')\r\n ? undefined\r\n : imageParams.format ?? 'jpg',\r\n // Default the rsampler to lanczos8\r\n rsampler: imageParams.rsampler ?? 'lanczos8',\r\n ...imageParams,\r\n };\r\n const paramsString = queryString.stringify(params);\r\n return `${imageSource}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, params) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, {\r\n width: size,\r\n height: ratio ? Math.round(size * ratio) : undefined,\r\n ...params,\r\n })} ${size}w`);\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n"],"sourceRoot":""}