{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/helpers/ssr.ts","webpack:///./src/stories/Components/Misc/DotPagination/DotPagination.styles.ts","webpack:///./src/hoc/withMotionMax.tsx","webpack:///./src/hoc/withWidget.ts","webpack:///./src/stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.widget.tsx","webpack:///./src/helpers/global.ts","webpack:///./src/stories/Components/Global/Typography/Paragraph.styles.ts","webpack:///./src/helpers/grid.ts","webpack:///./src/helpers/ReactPropsHelper.ts","webpack:///./src/helpers/brand.ts","webpack:///./src/stories/Components/Misc/DotPagination/DotPagination.tsx","webpack:///./src/helpers/fonts.ts","webpack:///./src/helpers/theme.ts","webpack:///./src/stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.styles.ts","webpack:///./src/core/enums.ts"],"names":["Device","from","size","until","between","min","max","isSSR","window","document","DotPaginationStyles","Container","styled","nav","brand","white","Tablet","Item","button","ActiveIndicator","m","span","SvgIndicator","svg","Circle","circle","SvgBox","div","SvgOutline","SvgPath","path","withMotionMax","WrappedComponent","displayName","name","ComponentWithMotionMax","props","React","createElement","LazyMotion","features","domMax","strict","component","componentName","options","hydrate","HydrateOption","Never","configs","ReactPropsHelper","filter","x","toLowerCase","length","config","index","container","querySelector","id","classList","add","requestIdleCallback","element","withWidget","items","BreadcrumbsStyles","Wrapper","Grid","Default","Inner","map","key","href","url","ButtonReset","css","LargeStyles","fonts","DaxPro","Regular","RegularStyles","SmallStyles","Paragraph","p","isLatestNewsWidget","align","baseGrid","MobileLarge","TabletLarge","DesktopSmall","Desktop","DesktopLarge","DefaultBreakout","DefaultPseudo","CardGridSpans","reactPropsNode","this","JSON","parse","innerHTML","black","primary","base","dark","light","alt","accent","orange","divisionTags","mrCropper","sandhurst","default","grey","grey89","hsl","grey96","grey76","grey75","grey55","grey44","grey40","grey35","grey20","red","ysp","input","water","ground","excavation","tpa","autoplay","count","paused","value","customLayoutId","onChange","onHover","S","Array","_","onClick","event","preventDefault","onMouseEnter","onMouseLeave","isActiveAnimating","viewBox","xmlns","initial","pathLength","animate","transition","duration","ease","strokeWidth","strokeDasharray","stroke","fill","d","layoutId","renderActiveIndicator","Bold","BoldItalic","Medium","SlightlyLessThanMedium","RegularItalic","Light","ThemeWrapper","ThemeSwitch","groundforceColour","groundforceColourHover","lighten","generateOpacity","transparentize","groundforcePseudoColourAlt","tpaColour","tpaColourHover","tpaPseudoColourAlt","ul","MediaType","HireViewType","OrderStepProgress"],"mappings":"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","file":"default~HomepageCarousel~SearchHeroBanner-1f7a411b4cc6d59147cc.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"MobileMedium\"] = 360] = \"MobileMedium\";\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(min, max) {\r\n return `${from(min)} and ${until(max)}`;\r\n}\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { Device, from } from '@helpers/media';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n --color: ${brand.white};\r\n --gap: 4px;\r\n --height: 16px;\r\n --opacityInactive: 1;\r\n --opacityActive: 0.65;\r\n --tapSize: 48px;\r\n --width: 16px;\r\n\r\n --tapPadding: calc((var(--tapSize) - var(--width)) / 2);\r\n\r\n display: flex;\r\n flex-direction: row;\r\n gap: var(--gap);\r\n place-content: center;\r\n place-items: center;\r\n user-select: none;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --gap: 8px;\r\n --height: 16px;\r\n --width: 16px;\r\n }\r\n`;\r\nconst Item = styled.button `\r\n position: relative;\r\n display: flex;\r\n background: none;\r\n border: 0;\r\n color: var(--color);\r\n margin: 0;\r\n \r\n padding: var(--tapPadding);\r\n place-content: center;\r\n place-items: center;\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n color: currentColor;\r\n height: var(--height);\r\n width: var(--width);\r\n transform: scale(1);\r\n transition: transform 0.15s ease-out;\r\n will-change: transform;\r\n }\r\n\r\n /* Enable focus styles for Safari */\r\n &:focus {\r\n background: none;\r\n outline: none;\r\n\r\n &::before {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n }\r\n }\r\n\r\n /* Enable hover styles for Safari */\r\n &:hover {\r\n background: none;\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n\r\n /* Disable focus styles if focus visible is supported */\r\n &:not(:focus-visible):focus {\r\n outline: none;\r\n\r\n &::before {\r\n outline: none;\r\n }\r\n }\r\n\r\n /* Reapply focus styles for focus-visible browsers */\r\n &:focus-visible {\r\n outline: none;\r\n\r\n &::before {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n }\r\n }\r\n\r\n /* Apply hover styles for focus-visible browsers */\r\n &:not(:focus-visible):hover {\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n\r\n /* Apply active styles */\r\n &[aria-current='true'] {\r\n &::before {\r\n transform: scale(0.6);\r\n }\r\n }\r\n`;\r\nconst ActiveIndicator = styled(m.span) `\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n display: block;\r\n border: 2px solid var(--color);\r\n height: 20px;\r\n width: 20px;\r\n transform: translate(-50%, -50%);\r\n`;\r\nconst SvgIndicator = styled(m.svg) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n height: 100%;\r\n width: 100%;\r\n`;\r\nconst Circle = styled(m.circle) `\r\n fill: none;\r\n stroke: var(--color);\r\n stroke-width: 2px;\r\n`;\r\nconst SvgBox = styled.div `\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n margin-left: auto;\r\n margin-right: auto;\r\n stroke: var(--color);\r\n border: 'none';\r\n transform: translate(-50%, -50%);\r\n width: 20px;\r\n height: 20px;\r\n`;\r\nconst SvgOutline = styled(m.svg) `\r\n width: 100%;\r\n height: 100%;\r\n transform: scaleX(-1) rotate(90deg);\r\n`;\r\nconst SvgPath = styled(m.path) `\r\n`;\r\nconst DotPaginationStyles = {\r\n Container,\r\n Item,\r\n ActiveIndicator,\r\n SvgIndicator,\r\n Circle,\r\n SvgBox,\r\n SvgOutline,\r\n SvgPath,\r\n};\r\nexport default DotPaginationStyles;\r\n","import { domMax, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotionMax(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotionMax = (props) => {\r\n return (React.createElement(LazyMotion, { features: domMax, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotionMax.displayName = `withMotionMax(${displayName})`;\r\n return ComponentWithMotionMax;\r\n}\r\n","import { HydrateOption } from '@core/enums';\r\nimport ReactPropsHelper from '@helpers/ReactPropsHelper';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport { createElement } from 'react';\r\nimport { hydrate } from 'react-dom';\r\nimport 'regenerator-runtime/runtime';\r\nexport default function (component, componentName, options) {\r\n if (isSSR() || options.hydrate === HydrateOption.Never) {\r\n return component;\r\n }\r\n const configs = ReactPropsHelper.props.filter((x) => x.name.toLowerCase() === `components.${componentName.toLowerCase()}`);\r\n if (!configs || configs.length === 0) {\r\n return component;\r\n }\r\n for (let index = 0; index < configs.length; index++) {\r\n const config = configs[index];\r\n const container = document.querySelector(`#${config.id}:not(.hydrated)`);\r\n if (!container) {\r\n continue;\r\n }\r\n container.classList.add('hydrated');\r\n // Not supported in Safari iOS\r\n if (window.requestIdleCallback) {\r\n window.requestIdleCallback(() => {\r\n const element = createElement(component, config.props);\r\n // const t0 = performance.now();\r\n hydrate(element, container);\r\n // const t1 = performance.now();\r\n // console.log(`${componentName} hydrate took ${t1 - t0} milliseconds.`);\r\n });\r\n }\r\n else {\r\n hydrate(createElement(component, config.props), container);\r\n }\r\n }\r\n return component;\r\n}\r\n","import { HydrateOption } from '@core/enums';\r\nimport { Grid } from '@helpers/grid';\r\nimport withWidget from '@hoc/withWidget';\r\nimport React from 'react';\r\nimport { BreadcrumbsStyles } from './Breadcrumbs.styles';\r\nconst Breadcrumbs = (props) => {\r\n if (!props.items || props.items.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(BreadcrumbsStyles.Wrapper, null,\r\n React.createElement(Grid.Default, null,\r\n React.createElement(BreadcrumbsStyles.Inner, null, props.items.map((x) => (React.createElement(\"li\", { key: x.name },\r\n React.createElement(\"a\", { href: x.url }, x.name))))))));\r\n};\r\nexport default withWidget(Breadcrumbs, 'Breadcrumbs', { hydrate: HydrateOption.Never });\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","import { fonts } from '@helpers/fonts';\r\nimport styled, { css } from 'styled-components';\r\n/**\r\n * 20px / 28px\r\n */\r\nexport const LargeStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 20px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 18px / 28px\r\n */\r\nexport const RegularStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 18px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 16px / 26px\r\n */\r\nexport const SmallStyles = css `\r\n ${fonts.DaxPro.Regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 26px;\r\n margin-bottom: 16px;\r\n`;\r\nconst Paragraph = styled.p `\r\n ${({ isLatestNewsWidget }) => isLatestNewsWidget\r\n ? css `\r\n min-height: 104px;\r\n `\r\n : null}\r\n \r\n ${({ align }) => align\r\n ? css `\r\n text-align: ${align};\r\n `\r\n : null}\r\n\r\n ${({ size }) => {\r\n switch (size) {\r\n case 'large':\r\n return LargeStyles;\r\n case 'regular':\r\n return RegularStyles;\r\n case 'small':\r\n return SmallStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Paragraph,\r\n SmallStyles,\r\n RegularStyles,\r\n LargeStyles,\r\n};\r\n","import styled, { css } from 'styled-components';\r\nimport { Device, from } from './media';\r\nconst baseGrid = css `\r\n --grid-gap: 10px;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n grid-gap: var(--grid-gap);\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --grid-gap: 12px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --grid-gap: 15px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --grid-gap: 20px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --grid-gap: 30px;\r\n }\r\n`;\r\nconst Default = styled.div `\r\n ${baseGrid};\r\n --gridPadding: 13px;\r\n max-width: 1920px;\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n --gridPadding: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --gridPadding: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --gridPadding: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --gridPadding: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n --gridPadding: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n --gridPadding: 140px;\r\n }\r\n\r\n padding: 0px var(--gridPadding);\r\n`;\r\nconst DefaultBreakout = css `\r\n position: relative;\r\n left: 0px;\r\n right: 0px;\r\n margin: 0px -13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n margin: 0px -40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 0px -60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin: 0px -80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin: 0px -100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n margin: 0px -120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin: 0px -140px;\r\n }\r\n`;\r\nconst DefaultPseudo = css `\r\n position: relative;\r\n\r\n &:before,\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n }\r\n\r\n &:before {\r\n left: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n left: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n left: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n left: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n left: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n left: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n left: -140px;\r\n width: 140px;\r\n }\r\n }\r\n\r\n &:after {\r\n right: -13px;\r\n width: 13px;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n right: -40px;\r\n width: 40px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n right: -60px;\r\n width: 60px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n right: -80px;\r\n width: 80px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n right: -100px;\r\n width: 100px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n right: -120px;\r\n width: 120px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n right: -140px;\r\n width: 140px;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${baseGrid};\r\n`;\r\nconst CardGridSpans = css `\r\n grid-column: span 6;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: span 4;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: span 3;\r\n }\r\n`;\r\nexport const Grid = {\r\n Default,\r\n DefaultBreakout,\r\n DefaultPseudo,\r\n Inner,\r\n CardGridSpans,\r\n};\r\n","import { isSSR } from './ssr';\r\nclass ReactPropsHelper {\r\n props = [];\r\n constructor() {\r\n if (isSSR()) {\r\n return;\r\n }\r\n const reactPropsNode = document.querySelector('#react_props');\r\n if (!reactPropsNode) {\r\n return;\r\n }\r\n this.props = JSON.parse(reactPropsNode.innerHTML);\r\n }\r\n}\r\nexport default new ReactPropsHelper();\r\n","import { hsl } from 'polished';\r\nexport default {\r\n /** Hex: #1f1f1f */\r\n black: '#1f1f1f',\r\n /** Hex: #fff */\r\n white: '#fff',\r\n primary: {\r\n /** Hex: #859a3e */\r\n base: '#859a3e',\r\n /** Hex: #558000 */\r\n dark: '#558000',\r\n /** Hex: #84bb26 */\r\n light: '#84bb26',\r\n /** Hex: #669900 */\r\n alt: '#669900',\r\n },\r\n accent: {\r\n /** Hex: #FF6600 */\r\n orange: '#FF6600',\r\n },\r\n divisionTags: {\r\n mrCropper: '#CC0000',\r\n sandhurst: '#FF6600',\r\n default: '#669900',\r\n },\r\n grey: {\r\n /** Hex: #E5E5E5 */\r\n grey89: hsl(0, 0, 0.89),\r\n /** Hex: #F6F6F6 */\r\n grey96: hsl(0, 0, 0.96),\r\n /** Hex: #C1C1C1 */\r\n grey76: hsl(0, 0, 0.76),\r\n grey75: hsl(0, 0, 0.75),\r\n /** Hex: #8D8C8C*/\r\n grey55: hsl(0, 0, 0.55),\r\n /** Hex: #707070*/\r\n grey44: hsl(0, 0, 0.44),\r\n /** Hex: #666666*/\r\n grey40: hsl(0, 0, 0.4),\r\n /** Hex: #5A5A5A */\r\n grey35: hsl(0, 0, 0.35),\r\n /** Hex: #333333*/\r\n grey20: hsl(0, 0, 0.2),\r\n },\r\n red: { base: 'red' },\r\n ysp: {\r\n input: '#DBE6C7',\r\n water: '#0097a9',\r\n ground: '#ab0216',\r\n excavation: '#93545c',\r\n },\r\n tpa: {\r\n base: '#26358c',\r\n light: '#009dff',\r\n },\r\n};\r\n","import * as React from 'react';\r\nimport S from './DotPagination.styles';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nconst DotPagination = ({ autoplay = 0, count, paused = false, value, customLayoutId = 'indicator', onChange, onHover, }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": \"Slider Pagination\" }, Array.from(Array(count)).map((_, index) => (React.createElement(S.Item, { key: `DotPaginationItem_${index}`, \"aria-current\": index === value, \"aria-label\": `Go to ${index + 1}`, onClick: (event) => {\r\n event.preventDefault();\r\n onChange(index);\r\n }, onMouseEnter: () => (onHover && autoplay > 0) ? onHover(true) : null, onMouseLeave: () => (onHover && autoplay > 0) ? onHover(false) : null }, index === value && renderActiveIndicator())))));\r\n function renderActiveIndicator() {\r\n const isActiveAnimating = autoplay > 0 && !paused;\r\n if (isActiveAnimating) {\r\n return (React.createElement(S.SvgBox, null,\r\n React.createElement(S.SvgOutline, { viewBox: \"0 0 204 204\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(S.SvgPath, { initial: { pathLength: isActiveAnimating ? 0 : 1 }, animate: { pathLength: 1 }, transition: {\r\n duration: autoplay / 1000,\r\n ease: \"linear\",\r\n }, strokeWidth: 40, strokeDasharray: \"0 1\", stroke: \"currentColor\", fill: \"none\", d: \"M2.7.7v200h200V.7H2.7Z\" }))));\r\n }\r\n return (React.createElement(S.ActiveIndicator, { \"aria-hidden\": true, \r\n // \"layoutId\" handles animating between positions automatically.\r\n layoutId: customLayoutId, transition: {\r\n duration: 0.3,\r\n ease: 'easeOut',\r\n } }));\r\n }\r\n};\r\nexport default withMotionMax(DotPagination);\r\n","import { css } from 'styled-components';\r\nexport const fonts = {\r\n DaxPro: {\r\n Bold: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n BoldItalic: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n Medium: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n SlightlyLessThanMedium: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n Regular: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n RegularItalic: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n Light: css `\r\n font-family: 'ff-dax-pro', Arial, sans-serif;\r\n font-style: normal;\r\n font-weight: 200;\r\n `,\r\n },\r\n};\r\n","import styled, { css } from 'styled-components';\r\nimport brand from './brand';\r\nimport { lighten, transparentize } from 'polished';\r\nexport const ThemeWrapper = styled.div `\r\n display: contents;\r\n`;\r\n/**\r\n * Injects the theme switching for Groundforce / TPA.\r\n * Make sure to not include this on a pseudoelement, as they can't query parents for some reason.\r\n */\r\nexport const ThemeSwitch = (options) => css `\r\n --theme: ${options.groundforceColour ?? brand.primary.base};\r\n --theme-hover: ${options.groundforceColourHover ?? lighten(0.1, brand.primary.base)};\r\n\r\n ${options.generateOpacity &&\r\n `--theme-half-opacity: ${transparentize(0.5, options.groundforceColour ?? brand.primary.base)};`}\r\n\r\n ${options.groundforcePseudoColourAlt && `--theme-alt: ${options.groundforcePseudoColourAlt};`}\r\n\r\n [data-theme='tpa'] &,\r\n &[data-theme='tpa'] {\r\n --theme: ${options.tpaColour ?? brand.tpa.base};\r\n --theme-hover: ${options.tpaColourHover ?? lighten(0.1, brand.tpa.base)};\r\n\r\n ${options.generateOpacity &&\r\n `--theme-half-opacity: ${transparentize(0.5, options.tpaColour ?? brand.tpa.base)};`}\r\n\r\n ${options.tpaPseudoColourAlt && `--theme-alt: ${options.tpaPseudoColourAlt};`}\r\n }\r\n`;\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { from, Device } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div `\r\n margin: 25px 0px;\r\n`;\r\nconst Inner = styled.ul `\r\n grid-column: span 12;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n margin-bottom: 0px;\r\n height: 16px;\r\n white-space: nowrap;\r\n\r\n li {\r\n position: relative;\r\n white-space: nowrap;\r\n\r\n &:after {\r\n content: '|';\r\n padding: 0px 5px;\r\n }\r\n\r\n &:last-child:after {\r\n display: none;\r\n }\r\n\r\n a {\r\n color: ${brand.grey.grey20};\r\n ${fonts.DaxPro.Regular};\r\n font-size: 14px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 16px;\r\n }\r\n }\r\n }\r\n`;\r\nexport const BreadcrumbsStyles = { Wrapper, Inner };\r\n","export var MediaType;\r\n(function (MediaType) {\r\n MediaType[MediaType[\"Image\"] = 0] = \"Image\";\r\n MediaType[MediaType[\"YouTube\"] = 1] = \"YouTube\";\r\n})(MediaType || (MediaType = {}));\r\nexport var HireViewType;\r\n(function (HireViewType) {\r\n HireViewType[HireViewType[\"ReadOnly\"] = 0] = \"ReadOnly\";\r\n HireViewType[HireViewType[\"Editable\"] = 1] = \"Editable\";\r\n})(HireViewType || (HireViewType = {}));\r\nexport var OrderStepProgress;\r\n(function (OrderStepProgress) {\r\n OrderStepProgress[OrderStepProgress[\"Inactive\"] = 0] = \"Inactive\";\r\n OrderStepProgress[OrderStepProgress[\"Complete\"] = 1] = \"Complete\";\r\n OrderStepProgress[OrderStepProgress[\"Current\"] = 2] = \"Current\";\r\n})(OrderStepProgress || (OrderStepProgress = {}));\r\nexport var HydrateOption;\r\n(function (HydrateOption) {\r\n HydrateOption[HydrateOption[\"Always\"] = 0] = \"Always\";\r\n HydrateOption[HydrateOption[\"InView\"] = 1] = \"InView\";\r\n HydrateOption[HydrateOption[\"Never\"] = 2] = \"Never\";\r\n})(HydrateOption || (HydrateOption = {}));\r\n"],"sourceRoot":""}