{"version":3,"file":"component---src-pages-design-tsx-b6fa75bb27b862de349c.js","mappings":"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","sources":["webpack://axon-division/./src/content/images/gcn/gcn-responsive-animation-poster.png","webpack://axon-division/./src/content/images/gcn/gcn-responsive-animation.mp4","webpack://axon-division/./src/content/images/gcn/gcn-responsive-animation.webmsd.webm","webpack://axon-division/./src/components/GCNResponsiveDesignVideo/GCNResponsiveDesignVideo.tsx","webpack://axon-division/./src/content/projects/hoponhopoff.project.ts","webpack://axon-division/./src/components/QuoteSection/QuoteSection.tsx","webpack://axon-division/./src/components/YouTubeEmbed/YouTubeEmbed.tsx","webpack://axon-division/./src/components/DefaultPageHeader/DefaultPageHeader.tsx","webpack://axon-division/./src/constants/hashtags.constants.ts","webpack://axon-division/./src/components/GatsbyImageAdaptor/GatsbyImageAdaptor.tsx","webpack://axon-division/./src/hooks/useFloatInOnVisible.transition.hook.ts","webpack://axon-division/./src/components/GridRow/GridRow.tsx","webpack://axon-division/./src/constants/categories.constants.ts","webpack://axon-division/./src/hooks/textEnterSwoosh.transition.hook.ts","webpack://axon-division/./src/content/projects/escape-to-marlborough.project.ts","webpack://axon-division/./src/components/PageEndCTASection/PageEndCTASection.tsx","webpack://axon-division/./src/content/projects/turn2me.project.ts","webpack://axon-division/./src/content/projects/gymcoach.project.ts","webpack://axon-division/./src/components/StandardTextBlock/StandardTextBlock.tsx","webpack://axon-division/./src/content/projects/fia-rally-marshals-training.project.ts","webpack://axon-division/./src/content/projects/mjhudson-bridge.project.ts","webpack://axon-division/./src/utils/typography.utils.ts","webpack://axon-division/./src/components/Widowless/Widowless.tsx","webpack://axon-division/./src/constants/sectors.constants.ts","webpack://axon-division/./src/components/GridRow/GridRowEndColumn.tsx","webpack://axon-division/./src/hooks/useAnimateTextEnterByLine.hook.ts","webpack://axon-division/./src/utils/image.utils.ts","webpack://axon-division/./src/components/NativeVideoWrapper/NativeVideoWrapper.tsx","webpack://axon-division/./src/components/DesignGalleryAnimations/DesignGalleryAnimations.tsx","webpack://axon-division/./src/content/logos/escape-to-marlborough.tsx","webpack://axon-division/./src/content/logos/escape-tourism.logos.tsx","webpack://axon-division/./src/content/logos/ics.logos.tsx","webpack://axon-division/./src/content/logos/jim.logos.tsx","webpack://axon-division/./src/content/logos/mjhudson-bridge.logos.tsx","webpack://axon-division/./src/content/logos/solucol.logos.tsx","webpack://axon-division/./src/content/logos/the-gables.logos.tsx","webpack://axon-division/./src/content/logos/tougheroil.logos.tsx","webpack://axon-division/./src/content/logos/xmusic.logos.tsx","webpack://axon-division/./src/components/DesignGalleryBranding/DesignGalleryBranding.tsx","webpack://axon-division/./src/content/images/elyxr/elyxr-page-animation-sample-poster.png","webpack://axon-division/./src/content/images/elyxr/elyxr-page-animation-sample-poster.webp","webpack://axon-division/./src/content/images/elyxr/elyxr-page-animation-sample.mp4","webpack://axon-division/./src/content/images/elyxr/elyxr-page-animation-sample.webmsd.webm","webpack://axon-division/./src/components/ElyxrPageAnimationVideo/ElyxrPageAnimationVideo.tsx","webpack://axon-division/./src/components/DesignGalleryDigital/DesignGalleryDigital.tsx","webpack://axon-division/./src/content/projects/solucol.project.ts","webpack://axon-division/./src/components/DesignGalleryPrint/DesignGalleryPrint.tsx","webpack://axon-division/./src/pages/design.tsx"],"sourcesContent":["export default __webpack_public_path__ + \"static/gcn-responsive-animation-poster-25e764510a2ab16501646c2cbad26646.png\";","export default __webpack_public_path__ + \"static/gcn-responsive-animation-66292278aa0b21504457888ad9e41f51.mp4\";","export default __webpack_public_path__ + \"static/gcn-responsive-animation.webmsd-bcb012d210f246aa7302246d206ea892.webm\";","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport videoPoster from '../../content/images/gcn/gcn-responsive-animation-poster.png';\n// import './GCNResponsiveDesignVideo.scss';\nimport videoMp4 from '../../content/images/gcn/gcn-responsive-animation.mp4';\nimport videoWebm from '../../content/images/gcn/gcn-responsive-animation.webmsd.webm';\nimport NativeVideoWrapper from '../NativeVideoWrapper/NativeVideoWrapper';\n\ntype GCNResponsiveDesignVideoProps = {\n rounded?: boolean,\n}\n\nconst GCNResponsiveDesignVideo: React.FC = props => {\n return (\n \n )} />\n}\n\nexport default GCNResponsiveDesignVideo;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { HopOnHopOffImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoHopOnHopOff: ProjectMetaInfo = {\n name: \"hoponhopoff\",\n displayName: \"Hop On Hop Off Wine Tours\",\n abbreviation: \"HopOnHopOff\",\n subtitle: \"New Zealand Bus Tour Company\",\n // TODO\n description: \"New Zealand is a stunning country, and their wines deserve equal attention as the breathtaking nature. We designed the branding and website for the wine tour bus service, together with many peripheral designs such as the tour map and more. This is easily one of our favourite projects!\",\n url: 'https://hoponhopoffwinetours.com/',\n categories: [\n Category.websites,\n ],\n sectors: [\n Sector.tourism,\n ],\n hasPage: true,\n hashtags: [\n Hashtag.branding,\n Hashtag.digitalDesign,\n Hashtag.printDesign,\n ],\n keywords: [\n 'branding design',\n 'web design',\n 'print design',\n 'WordPress',\n 'New Zealand',\n 'Bus Tours',\n 'Wine Tours',\n 'tourism',\n ],\n}\nexport const useHopOnHopOffInfo = () => {\n const HopOnHopOffImages: HopOnHopOffImagesQuery = useStaticQuery(graphql`\n query HopOnHopOffImages {\n featuredImage: file(relativePath: {eq: \"images/hoponhopoff/hoponhopoff-bus-parked-in-front-of-gibbston-valley-winery.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/hoponhopoff/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560)\n }\n }\n }\n }\n mobileScreenshots: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/hoponhopoff/mobile-screenshots\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(\n width: 238\n )\n }\n }\n }\n }\n }`\n )\n const imageMetaData: Partial[] = [\n {\n title: \"Hop On Hop Off: Homepage Screenshot\",\n alt: \"Hop On Hop Off: Homepage Screenshot, desktop version\",\n },\n {\n title: \"Hop On Hop Off: Office Exterior Wrappings Design\",\n alt: \"Hop On Hop Off: Office Exterior Wrappings Design\",\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoHopOnHopOff,\n featuredImage: {\n image: HopOnHopOffImages.featuredImage!.childImageSharp,\n title: 'Hop On Hop Off Bus',\n alt: 'A black Hop On Hop Off wine tour bus outside of a winery restaurant',\n },\n gallery: HopOnHopOffImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n })),\n // TODO: provide better title / alt values,\n mobileScreenshots: HopOnHopOffImages.mobileScreenshots.edges.map((edge, i) => ({\n image: edge.node.childImageSharp,\n title: edge.node.name,\n alt: edge.node.name,\n }))\n }\n return info;\n}","import React from 'react';\nimport { AnimateTextEnterByLineProps, useAnimateTextEnterByLine } from '../../hooks/useAnimateTextEnterByLine.hook';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport joinClassName from '../../utils/className.utils';\nimport { isString } from '../../utils/typeChecks.utils';\nimport Line from '../Line/Line';\nimport PageSection from '../PageSection/PageSection';\nimport Widowless from '../Widowless/Widowless';\nimport './QuoteSection.scss';\n\ntype QuoteSectionProps = {\n id: string,\n className: string,\n content: string | string[],\n addLineBefore?: boolean,\n addLineAfter?: boolean,\n} & AnimateTextEnterByLineProps\n\nconst QuoteSection: React.FC = props => {\n return \n {props.addLineBefore && }\n
\n \n
\n {props.addLineAfter && }\n
\n}\n\nconst QuoteSectionBlockquote = (props: QuoteSectionProps) => {\n const ref = useObservableRef();\n useAnimateTextEnterByLine(ref, {\n ...props,\n animateTextEnter: { onlyWhenParentSectionVisible: true, delay: 380, }\n });\n return
\n {isString(props.content) ?\n {props.content} :\n props.content.map((p, i) => {p})\n }\n
\n}\n\nexport default QuoteSection;","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { useAppContext } from '../../controllers/app.controller';\nimport { isIE } from '../../utils/browsers.utils';\nimport './YouTubeEmbed.scss';\n\ntype YouTubeEmbedProps = {\n src: string,\n title: string,\n}\n\nconst YouTubeEmbed: React.FC = props => {\n const { UI } = useAppContext();\n return (\n
\n \n
\n )} />\n}\n\nexport default YouTubeEmbed;","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { useTextEnterSwoosh } from '../../hooks/textEnterSwoosh.transition.hook';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport joinClassName from '../../utils/className.utils';\nimport PageSection from '../PageSection/PageSection';\nimport Widowless from '../Widowless/Widowless';\nimport './DefaultPageHeader.scss';\n\ntype DefaultPageHeaderProps = {\n id: string,\n title: string,\n titleFontSize?: 'md' | 'lg',\n className?: string,\n subtitle?: string,\n hideTitle?: boolean,\n animateTitle?: boolean,\n}\n\nconst DefaultPageHeader: React.FC = props => {\n const headingOneRef = useObservableRef();\n {props.animateTitle == false ? \n null\n : \n useTextEnterSwoosh(props.hideTitle ? undefined : headingOneRef, { delay: 100 })\n }\n return (\n \n

{props.title}

\n {props.subtitle && {props.subtitle}}\n {props.children &&
\n {props.children}\n
}\n \n )} />\n}\n\nexport default DefaultPageHeader;","export enum Hashtag {\n 'branding' = 'branding',\n 'digitalDesign' = 'digitalDesign',\n 'printDesign' = 'printDesign',\n 'animations' = 'animations',\n}\n\nexport const DesignHashtags = [\n Hashtag.digitalDesign,\n Hashtag.animations,\n Hashtag.branding,\n Hashtag.printDesign,\n]","import { GatsbyImage, GatsbyImageProps, getImage } from 'gatsby-plugin-image';\nimport React from 'react';\nimport { ImageWithMetaInfo } from '../../types/app.types';\nimport { ImageDataLike } from '../../types/gatsby.types';\n\ntype GatsbyImageAdaptorProps = {\n image: ImageWithMetaInfo | ImageDataLike,\n id?: string,\n title?: string,\n alt?: string,\n className?: string,\n objectFit?: GatsbyImageProps['objectFit'],\n objectPosition?: GatsbyImageProps['objectPosition'],\n backgroundColor?: string,\n}\n\n/**\n * A little adaptor component that automatically applies the getImage method for graphQL image query results.\n * It also accepts title/alt overrides.\n */\nconst GatsbyImageAdaptor: React.FC = props => {\n const image = props.image ? getImage(('image' in props.image || 'title' in props.image || 'alt' in props.image) ? props.image?.image : props.image) : null;\n return image ? : null;\n}\n\nexport default GatsbyImageAdaptor;","import { Expo, TweenLite } from 'gsap';\nimport { isBuildTime } from \"../env\";\nimport { isIE } from '../utils/browsers.utils';\nimport { observeVisibility } from \"../utils/visibilityObserver.util\";\nimport { useOnMount } from \"./lifecycle.hooks\";\nimport { ObservableRef } from \"./useObservableRef.hook\";\n\nexport const useFloatInOnVisible = (\n id: string, \n observedRef: ObservableRef, \n animationTargetRef?: ObservableRef,\n delay?: number,\n duration?: number\n) => {\n useOnMount(() => {\n if (isBuildTime) return;\n if (isIE) return;\n const getElement = () => (animationTargetRef ?? observedRef).current;\n TweenLite.set(getElement(), { opacity: 0 });\n observeVisibility(observedRef, {\n id,\n once: true,\n onBecomeVisible: () => {\n const element = getElement();\n if (!element) return;\n TweenLite.fromTo(element, duration ?? .5, {\n opacity: 0,\n y: 100,\n }, {\n delay: delay ?? (.19 * Math.random()),\n ease: Expo.easeOut,\n opacity: 1,\n y: 0,\n });\n },\n })\n })\n}","import React from 'react';\nimport joinClassName from '../../utils/className.utils';\nimport './GridRow.scss';\n\ntype GridRowProps = {\n className?: string,\n}\n\nconst GridRow: React.FC = props => {\n return
\n {props.children}\n
\n}\n\nexport default GridRow;","export enum Category {\n 'apps' = 'apps',\n 'websites' = 'websites',\n 'design' = 'design',\n}\n","import { Expo, TweenMax } from 'gsap';\nimport { SplitText } from 'gsap/SplitText';\nimport { when } from 'mobx';\nimport { usePageSectionContext } from '../components/PageSection/PageSection';\nimport { useAppContext } from '../controllers/app.controller';\nimport { isBrowser, isProduction } from \"../env\";\nimport { waitForFontsToLoad } from '../utils/fonts.utils';\nimport { highPerf } from '../utils/performance.utils';\nimport tick from '../utils/waiters.utils';\nimport { useOnMount } from \"./lifecycle.hooks\";\nimport { ObservableRef } from \"./useObservableRef.hook\";\n\nexport const useTextEnterSwoosh = (\n ref?: ObservableRef, \n options?: {\n delay?: number,\n duration?: number,\n stagger?: number,\n from?: gsap.TweenVars,\n to?: gsap.TweenVars,\n onlyWhenParentSectionVisible?: boolean,\n }\n) => {\n const pageSection = usePageSectionContext();\n const { UI } = useAppContext();\n useOnMount(() => {\n (async () => {\n if (isProduction && UI.isFirstLoad) return;\n if (!highPerf) return;\n if (!ref) return;\n if (isBrowser) {\n if (!ref.current) return;\n const spiltText = new SplitText(ref.current, { type: 'chars' });\n TweenMax.set(spiltText.chars, { opacity: 0 });\n await waitForFontsToLoad();\n if (options?.delay) await tick(options?.delay);\n if (options?.onlyWhenParentSectionVisible) await when(() => pageSection.visible);\n if (!ref.current) return;\n const styles = getComputedStyle(ref.current);\n // const color = styles.color;\n const XOffset = parseInt(styles.fontSize ?? 64) * .75;\n const duration = Math.max(options?.duration ?? XOffset / 256, .62);\n const stagger = options?.stagger ?? .019;\n TweenMax.fromTo(spiltText.chars!, duration, {\n opacity: 0,\n x: XOffset,\n // color: DefaultColorPalette.red,\n ...options?.from,\n }, {\n opacity: 1,\n x: 0,\n ease: Expo.easeOut,\n // color,\n stagger,\n // toggle the following line to view kerning differences before/after splitting text\n // onComplete: () => spiltText.revert(),\n ...options?.to,\n });\n }\n })();\n })\n}","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { EscapeToMarlboroughImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoEscapeToMarlborough: ProjectMetaInfo = {\n name: \"escape-to-marlborough\",\n displayName: \"Escape to Marlborough\",\n abbreviation: \"E2M\",\n subtitle: \"New Zealand Luxury Wine Tour Operator\",\n description: \"Escape to Marlborough specialise in tours within the Marlborough region in New Zealand. A complete branding solution with a new website was developed, featuring one of the first interactive maps for tours companies of the same kind in the country.\",\n url: 'http://escapetomarlborough.co.nz/',\n categories: [\n Category.websites,\n Category.design,\n ],\n sectors: [\n Sector.tourism,\n ],\n hasPage: false,\n hashtags: [\n Hashtag.branding,\n Hashtag.digitalDesign,\n Hashtag.printDesign,\n ],\n keywords: [\n 'branding design',\n 'web design',\n 'print design',\n 'WordPress',\n 'New Zealand',\n 'Bus Tours',\n 'Wine Tours',\n 'Private Wine Tours',\n 'tourism',\n ],\n}\nexport const useEscapeToMarlboroughInfo = () => {\n const EscapeToMarlboroughImages: EscapeToMarlboroughImagesQuery = useStaticQuery(graphql`\n query EscapeToMarlboroughImages {\n featuredImage: file(relativePath: {eq: \"images/escape-to-marlborough/escape-to-marlborough-wineries-view-from-top-of-mountain.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/escape-to-marlborough/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560)\n }\n }\n }\n }\n }`\n )\n const imageMetaData: Partial[] = [\n {\n title: \"Escape to Marlborough: Homepage Screenshot\",\n alt: \"Escape to Marlborough: Homepage Screenshot, desktop version\",\n },\n {\n title: \"Escape to Marlborough: Interactive Maps Design\",\n alt: \"Escape to Marlborough: Interactive Maps Design\",\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoEscapeToMarlborough,\n featuredImage: {\n image: EscapeToMarlboroughImages.featuredImage!.childImageSharp,\n title: 'Escape to Marlborough Bus',\n alt: 'A black Escape to Marlborough wine tour bus outside of a winery restaurant',\n },\n gallery: EscapeToMarlboroughImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n }))\n }\n return info;\n}","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport CTAButton from '../CTAButton/CTAButton';\nimport PageSection from '../PageSection/PageSection';\nimport './PageEndCTASection.scss';\n\ntype PageEndCTASectionProps = {\n preSelectTopic?: string,\n}\n\nconst PageEndCTASection: React.FC = props => {\n return (\n \n Get in Touch\n \n )} />\n}\n\nexport default PageEndCTASection;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { EntryMetaInfoWithQueriedResources, ImageWithMetaInfo, ProjectMetaInfo } from \"../../types/app.types\";\nimport { Turn2meImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoTurn2me: ProjectMetaInfo = {\n name: \"turn2me\",\n displayName: \"turn2me.ie\",\n abbreviation: \"turn2me\",\n subtitle: \"Leading Irish Mental Health Online Service\",\n description: \"We assist turn2me.ie in delivering professional, inclusive and confidential counselling services to people in need in this unprecedented global crisis. As of April 30, 2021, a total of 22,811 new users joined turn2me.ie since the beginning of 2020, a significant surge for the mental health service, and the counselling hours has increased by 386%.\",\n categories: [\n Category.apps,\n Category.websites,\n ],\n sectors: [\n Sector.healthAndFitness,\n ],\n url: \"https://turn2me.ie/\",\n hasPage: true,\n keywords: [\n 'turn2me',\n 'mental health platform',\n 'app development',\n 'web design',\n 'HSE',\n 'online counselling platform',\n ],\n theme: {\n backgroundColor: '#009FE3',\n foregroundColor: '#ffffff',\n backgroundImageOpacity: 1,\n primaryColor: '#ffffff',\n }\n // entryRenderer: Turn2meAppScreenshotSlider\n}\nexport const useTurn2meInfo = () => {\n const Turn2meImages: Turn2meImagesQuery = useStaticQuery(graphql`\n query Turn2meImages {\n featuredImage: file(relativePath: {eq: \"images/turn2me/turn2me-featured-image-speech-bubble-background.png\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/turn2me/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n mobileScreenshots: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/turn2me/mobile-screenshots\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(\n width: 238\n )\n }\n }\n }\n }\n }\n `)\n const imageMetaData: Partial[] = [\n {\n title: \"turn2me Homepage Screenshot\",\n alt: \"turn2me Homepage Screenshot, desktop version\",\n },\n ]\n const info: EntryMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoTurn2me,\n featuredImage: {\n image: Turn2meImages.featuredImage!.childImageSharp,\n title: 'turn2me Homepage',\n alt: 'turn2me Homepage Design'\n },\n gallery: Turn2meImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n })),\n // TODO: provide better title / alt values,\n mobileScreenshots: Turn2meImages.mobileScreenshots.edges.map((edge, i) => ({\n image: edge.node.childImageSharp,\n title: edge.node.name,\n alt: edge.node.name,\n }))\n }\n return info;\n}","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { EntryMetaInfoWithQueriedResources, ImageWithMetaInfo, ProjectMetaInfo } from \"../../types/app.types\";\nimport { GymCoachImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoGymCoach: ProjectMetaInfo = {\n name: \"gymcoach\",\n displayName: \"GymCoach\",\n abbreviation: \"GymCoach\",\n subtitle: \"Health & Fitness App Design Concept\",\n // TODO\n description: `GymCoach is an internal app concept that is designed to be \"a personal trainer in your pocket\", with smart suggestions of gym plans and easy-to-use in-session tracker UIs, and carefully designed helpful analytics screens to visualise your progress.`,\n categories: [\n Category.apps,\n ],\n sectors: [\n Sector.healthAndFitness,\n ],\n hasPage: true,\n keywords: [\n 'app concept design',\n 'gym',\n 'fitness tracking app'\n ],\n}\nexport const useGymCoachInfo = () => {\n const GymCoachImages: GymCoachImagesQuery = useStaticQuery(graphql`\n query GymCoachImages {\n featuredImage: file(relativePath: {eq: \"images/gymcoach/gymcoach-project-background-two-persons-working-out-in-a-gym.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/gymcoach/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n mobileScreenshots: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/gymcoach/mobile-screenshots\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(\n width: 238\n )\n }\n }\n }\n }\n }\n `)\n const imageMetaData: Partial[] = [\n {\n title: 'GymCoach UI Designs',\n alt: 'GymCoach UI Designs',\n }\n ]\n const info: EntryMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoGymCoach,\n featuredImage: {\n image: GymCoachImages.featuredImage!.childImageSharp,\n title: 'GymCoach Featured Image',\n alt: 'GymCoach Project Image: Two persons working out in a gym'\n },\n gallery: GymCoachImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n })),\n // TODO: provide better title / alt values,\n mobileScreenshots: GymCoachImages.mobileScreenshots.edges.map((edge, i) => ({\n image: edge.node.childImageSharp,\n title: edge.node.name,\n alt: edge.node.name,\n }))\n }\n return info;\n}","import React from 'react';\nimport { AnimateTextEnterByLineProps, useAnimateTextEnterByLine } from '../../hooks/useAnimateTextEnterByLine.hook';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport joinClassName from '../../utils/className.utils';\nimport './StandardTextBlock.scss';\n\ntype StandardTextBlockProps = AnimateTextEnterByLineProps & {\n className?: string\n}\n\nconst StandardTextBlock: React.FC = props => {\n const ref = useObservableRef();\n useAnimateTextEnterByLine(ref, props);\n return
\n {props.children}\n
\n}\n\nexport default StandardTextBlock;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { FiaRallyMarshalsTrainingImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoFIARallyMarshalsTraining: ProjectMetaInfo = {\n name: \"fia-rally-marshals-training\",\n displayName: \"FIA Rally Marshals Training Module Design\",\n abbreviation: \"FIA Training Module Design\",\n subtitle: \"Fédération Internationale de l'Automobile\",\n description: \"We were really honoured to have been awarded the opportunity to design a full suite of training materials for FIA Rally Marshals. It comprises of a dozen modules and various different formats of learning materials, which was one of the most exciting projects we have ever worked on.\",\n categories: [\n Category.design,\n ],\n sectors: [\n Sector.governmentAndNPO,\n Sector.motorsports,\n Sector.eLearning,\n ],\n hasPage: false,\n hashtags: [\n Hashtag.digitalDesign,\n Hashtag.printDesign,\n ],\n keywords: [\n 'print design',\n 'digital design',\n 'eLearning modules',\n 'infographics',\n ],\n}\nexport const useFIARallyMarshalsTrainingInfo = () => {\n const FIARallyMarshalsTrainingImages: FiaRallyMarshalsTrainingImagesQuery = useStaticQuery(graphql`\n query FIARallyMarshalsTrainingImages {\n featuredImage: file(relativePath: {eq: \"images/fia/fia-flag-navy-and-gold.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/fia-rally-marshals-training/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n }\n `)\n const imageMetaData: Partial[] = [\n {\n title: \"FIA Rally Marshals Training Booklet and Swatches design\",\n alt: \"FIA Rally Marshals Training Booklet and Swatches design\",\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoFIARallyMarshalsTraining,\n featuredImage: {\n image: FIARallyMarshalsTrainingImages.featuredImage!.childImageSharp,\n title: \"FIA Rally Marshals Training\",\n alt: \"FIA Rally Marshals Training\",\n },\n gallery: FIARallyMarshalsTrainingImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n }))\n }\n return info\n}","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { MjHudsonBridgeImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoMJHudsonBridge: ProjectMetaInfo = {\n name: \"mjhudson-bridge\",\n displayName: \"MJ Hudson: Bridge Consulting\",\n abbreviation: \"Bridge Consulting\",\n subtitle: \"Irish Specialist Financial Consulting Firm\",\n description: \"Bridge Consulting, a well renowned specialist in financial services consultation and compliance, entrusted with the task of a comprehensive overhaul of the company’s brand; updating their online platform and creating a distinct and engaging website specifically tailored to their brand goals. It has recently joined MJ Hudson, a global asset management consultancy.\",\n url: 'https://bridgeconsulting.ie/',\n categories: [\n Category.websites,\n ],\n sectors: [\n Sector.finance,\n ],\n hasPage: false,\n hashtags: [\n Hashtag.branding,\n Hashtag.digitalDesign,\n Hashtag.printDesign,\n ],\n keywords: [\n 'branding design',\n 'web design',\n 'print design',\n 'WordPress',\n 'financial consulting company',\n ],\n}\nexport const useMJHudsonBridgeInfo = () => {\n const MJHudsonBridgeImages: MjHudsonBridgeImagesQuery = useStaticQuery(graphql`\n query MJHudsonBridgeImages {\n featuredImage: file(relativePath: {eq: \"images/mjhudson-bridge/samuel-beckett-bridge-in-twilight-river-liffey-dublin.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/mjhudson-bridge/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n }`\n )\n const imageMetaData: Partial[] = [\n {\n title: \"Bridge Consulting Homepage Screenshot\",\n alt: \"Bridge Consulting Homepage Screenshot, desktop version\",\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoMJHudsonBridge,\n featuredImage: {\n image: MJHudsonBridgeImages.featuredImage!.childImageSharp,\n title: 'MJ Hudson – Bridge Consulting',\n alt: 'Samuel Beckett Bridge in twilight, River Liffey, Dublin'\n },\n gallery: MJHudsonBridgeImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n }))\n }\n return info;\n}","const widowPreventerRegex = /\\s(?=[^\\s]*$)/g;\n\nexport const preventWidows = (s: string) => s.replace(widowPreventerRegex, '\\u00A0');","import React from 'react';\nimport { preventWidows } from '../../utils/typography.utils';\n\ntype WidowlessProps = {\n as?: keyof HTMLElementTagNameMap,\n className?: string,\n children: string,\n onClick?: React.MouseEventHandler,\n}\n\nconst Widowless: React.FC = props => React.createElement(\n props.as ?? 'p', {\n ...props,\n children: preventWidows(props.children)\n }\n)\n\nexport default Widowless;","export enum Sector {\n 'all' = 'all',\n // 'agriculture' = 'agriculture',\n // 'aviation' = 'aviation',\n // 'construction' = 'construction',\n 'eCommerceAndRetail' = 'eCommerceAndRetail',\n 'eLearning' = 'eLearning',\n 'energy' = 'energy',\n 'entertainmentAndEvents' = 'entertainmentAndEvents',\n 'finance' = 'finance',\n 'governmentAndNPO' = 'governmentAndNPO',\n 'healthAndFitness' = 'healthAndFitness',\n 'lgbtq' = 'lgbtq',\n 'motorsports' = 'motorsports',\n 'musicAndAudio' = 'musicAndAudio',\n 'newsAndMedia' = 'newsAndMedia',\n 'tourism' = 'tourism',\n}\n\nexport const sectorsPreferredOrder = [\n Sector.all,\n Sector.healthAndFitness,\n Sector.eCommerceAndRetail,\n Sector.governmentAndNPO,\n Sector.finance,\n Sector.motorsports,\n Sector.tourism,\n Sector.entertainmentAndEvents,\n Sector.eLearning,\n Sector.musicAndAudio,\n Sector.lgbtq,\n // Sector.aviation,\n // Sector.construction,\n // Sector.agriculture,\n Sector.energy,\n Sector.newsAndMedia,\n]\n\nexport type SectorDefinition = {\n name: string,\n abbreviation?: string,\n slug: string,\n}\n\nexport const sectorDefinitions: Record = {\n [Sector.all]: { name: 'All Sectors', slug: 'all' },\n // [Sector.agriculture]: { name: 'Agriculture', slug: 'agriculture' },\n // [Sector.aviation]: { name: 'Aviation', slug: 'aviation' },\n // [Sector.construction]: { name: 'Construction', slug: 'construction' },\n [Sector.eCommerceAndRetail]: { name: 'eCommerce & Retail', slug: 'ecommerce-and-retail' },\n [Sector.eLearning]: { name: 'eLearning', slug: 'elearning' },\n [Sector.energy]: { name: 'Energy', slug: 'energy' },\n [Sector.entertainmentAndEvents]: { name: 'Entertainment & Events', slug: 'entertainment-and-events' },\n [Sector.finance]: { name: 'Finance', slug: 'finance' },\n [Sector.governmentAndNPO]: { name: 'Government & NPO', abbreviation: 'Gov & NPO', slug: 'government-and-npo' },\n [Sector.healthAndFitness]: { name: 'Health & Fitness', slug: 'health-and-fitness' },\n [Sector.lgbtq]: { name: 'LGBTQ+', slug: 'lgbtq' },\n [Sector.motorsports]: { name: 'Motorsports', slug: 'motorsports' },\n [Sector.musicAndAudio]: { name: 'Music & Audio', slug: 'music-and-audio' },\n [Sector.newsAndMedia]: { name: 'News & Media', slug: 'news-and-media' },\n [Sector.tourism]: { name: 'Tourism', slug: 'tourism' },\n}\n\nexport const isSectorEnum = (s: string): s is Sector => s in Sector;\n\nexport const getSectorName = (s?: Sometimes) => {\n if (!s) return undefined;\n if (isSectorEnum(s)) return sectorDefinitions[s].name;\n const [sector, def] = Object.entries(sectorDefinitions).find(([key, value]) => value.slug === s || value.name === s || value.abbreviation === s) || [];\n return def?.name;\n}\nexport const getSectorFromSlug = (s?: Sometimes) => {\n const [sector, def] = Object.entries(sectorDefinitions).find(([key, value]) => value.slug === s) || [];\n return sector as Sector | undefined;\n}","import React from 'react';\n\ntype GridRowEndColumnProps = {}\n\nconst GridRowEndColumn: React.FC = props => {\n return
\n {props.children}\n
\n}\n\nexport default GridRowEndColumn;","import { Expo, TweenMax } from 'gsap';\nimport { SplitText } from 'gsap/SplitText';\nimport { when } from \"mobx\";\nimport { PageSectionContext, usePageSectionContext } from \"../components/PageSection/PageSection\";\nimport { useAppContext } from '../controllers/app.controller';\nimport { isBrowser, isProduction } from \"../env\";\nimport { makeDisposerController } from \"../utils/disposer.utils\";\nimport { waitForFontsToLoad } from \"../utils/fonts.utils\";\nimport { log } from '../utils/loggers.utils';\nimport { highPerf } from '../utils/performance.utils';\nimport { isObject } from \"../utils/typeChecks.utils\";\nimport tick from \"../utils/waiters.utils\";\nimport { useOnMount } from \"./lifecycle.hooks\";\nimport { ObservableRef } from \"./useObservableRef.hook\";\n\nexport type AnimateTextEnterByLineProps = {\n animateTextEnter?: {\n delay?: number,\n onlyWhenParentSectionVisible?: boolean,\n } | true,\n}\n\nexport const useAnimateTextEnterByLine = (\n ref: ObservableRef, \n props: AnimateTextEnterByLineProps,\n context?: PageSectionContext,\n) => {\n const { UI } = useAppContext();\n const autoContext = usePageSectionContext();\n const pageSection = context ?? autoContext;\n useOnMount(() => {\n if (isProduction && UI.isFirstLoad) return;\n if (!highPerf) return;\n const d = makeDisposerController();\n const animateIn = async () => {\n if (isBrowser) {\n await waitForFontsToLoad();\n if (!ref.current) return;\n const spiltText = new SplitText(ref.current.children, { type: 'lines' });\n TweenMax.set(spiltText.lines, { opacity: 0 });\n if (isObject(props.animateTextEnter)) {\n if (props.animateTextEnter.delay) {\n await tick(props.animateTextEnter.delay);\n }\n if (props.animateTextEnter.onlyWhenParentSectionVisible) {\n await when(() => pageSection.visible);\n log('visible now', pageSection.id);\n }\n }\n if (!ref.current) return;\n const styles = getComputedStyle(ref.current);\n const YOffset = parseInt(styles.fontSize ?? 64) * 1;\n TweenMax.fromTo(spiltText.lines!, .62, {\n opacity: 0,\n y: YOffset,\n }, {\n opacity: 1,\n y: 0,\n ease: Expo.easeOut,\n stagger: .05,\n onComplete: () => spiltText.revert()\n });\n }\n }\n if (props.animateTextEnter) animateIn();\n return d.disposer\n })\n}","import { isBuildTime } from \"../env\";\n\nfunction checkIfBrowserSupportsWebp() {\n if (isBuildTime) return true;\n const canvas = document.createElement('canvas');\n if (!!(canvas.getContext && canvas.getContext('2d'))) {\n // was able or not to get WebP representation\n return canvas.toDataURL('image/webp').indexOf('data:image/webp') == 0;\n }\n else {\n // very old browser like IE 8, canvas not supported\n return false;\n }\n}\nexport const supportsWebp = checkIfBrowserSupportsWebp();","import { action } from 'mobx';\nimport { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { isBuildTime } from '../../env';\nimport { useOnMount } from '../../hooks/lifecycle.hooks';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport joinClassName from '../../utils/className.utils';\nimport { makeDisposerController } from '../../utils/disposer.utils';\nimport { supportsWebp } from '../../utils/image.utils';\nimport { useStore } from '../../utils/mobx.utils';\nimport { isArray } from '../../utils/typeChecks.utils';\nimport { observeVisibility } from '../../utils/visibilityObserver.util';\nimport './NativeVideoWrapper.scss';\n\ntype NativeVideoWrapperProps = {\n id: string,\n className?: string,\n loop?: boolean,\n muted?: boolean,\n poster?: string,\n posterWebp?: string,\n autoPlay?: boolean,\n controls?: boolean,\n preload?: HTMLVideoElement['preload'],\n playsInline?: boolean,\n width?: number,\n height?: number,\n src?: string | string[],\n onlyLoadWhenVisible?: boolean,\n rounded?: boolean,\n}\n\nconst NativeVideoWrapper: React.FC = props => {\n const ref = useObservableRef();\n const videoRef = useObservableRef();\n // const p = useProps(props);\n const s = useStore(() => ({\n src: props.onlyLoadWhenVisible ? [''] : isArray(props.src) ? props.src : [props.src],\n }))\n useOnMount(() => {\n if (isBuildTime) return;\n const d = makeDisposerController();\n const setSrcAndPlay = action(() => {\n s.src = isArray(props.src) ? props.src : [props.src];\n videoRef?.current?.play();\n })\n d.add(observeVisibility(ref, {\n id: props.id,\n onBecomeVisible: setSrcAndPlay,\n onBecomeInvisible: () => {\n videoRef?.current?.pause();\n }\n }))\n if (!props.onlyLoadWhenVisible) { \n setSrcAndPlay();\n }\n return d.disposer;\n })\n return (\n \n \n \n )} />\n}\n\nexport default NativeVideoWrapper;","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Hashtag } from '../../constants/hashtags.constants';\nimport GridRow from '../GridRow/GridRow';\nimport YouTubeEmbed from '../YouTubeEmbed/YouTubeEmbed';\nimport './DesignGalleryAnimations.scss';\n\ntype DesignGalleryAnimationsProps = {}\n\nconst DesignGalleryAnimations: React.FC = props => {\n return (\n
\n
\n

#Animations

\n
\n \n \n \n \n {/* */}\n \n \n
\n )} />\n}\n\nexport default DesignGalleryAnimations;","import React from 'react';\n\nexport const EscapeToMarlboroughLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\nexport const EscapeToMarlboroughLogoReversed = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import React from 'react';\n\nexport const EscapeTourismLogo = \n \n \n \n\n","import React from 'react';\n\nexport const ICSLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import React from 'react';\nexport const JimOCallaghanLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import React from 'react';\n\nexport const BridgeConsultingLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import React from 'react';\nexport const SoluColLogoDefault = \n \n \n \n\n","import React from 'react';\n\nexport const TheGablesLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\nexport const TheGablesLogoReversed = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n","import React from 'react';\n\nexport const TougherOilLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import React from 'react';\n\nexport const XMusicLogoDefault = \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Hashtag } from '../../constants/hashtags.constants';\nimport { EscapeToMarlboroughLogoDefault } from '../../content/logos/escape-to-marlborough';\nimport { EscapeTourismLogo } from '../../content/logos/escape-tourism.logos';\nimport { ICSLogoDefault } from '../../content/logos/ics.logos';\nimport { JimOCallaghanLogoDefault } from '../../content/logos/jim.logos';\nimport { BridgeConsultingLogoDefault } from '../../content/logos/mjhudson-bridge.logos';\nimport { SoluColLogoDefault } from '../../content/logos/solucol.logos';\nimport { TheGablesLogoDefault } from '../../content/logos/the-gables.logos';\nimport { TougherOilLogoDefault } from '../../content/logos/tougheroil.logos';\nimport { XMusicLogoDefault } from '../../content/logos/xmusic.logos';\nimport { useFloatInOnVisible } from '../../hooks/useFloatInOnVisible.transition.hook';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport GridRow from '../GridRow/GridRow';\nimport './DesignGalleryBranding.scss';\n\ntype DesignGalleryBrandingProps = {}\n\nconst DesignGalleryBrandingItem = (props: React.PropsWithChildren<{\n // entry?: EntryMetaInfo,\n id: string,\n background?: string\n}>) => {\n const id = `DesignGallery--branding--${props.id}`;\n const ref = useObservableRef();\n useFloatInOnVisible(id, ref);\n return \n {props.children}\n \n}\nconst DesignGalleryBranding: React.FC = props => {\n // const DesignPageGallery = useStaticQuery(graphql`\n // query DesignPageGallery {\n\n // }\n // `) \n return (\n
\n
\n

#Branding

\n
\n \n \n { TougherOilLogoDefault }\n \n {/* square */}\n { TheGablesLogoDefault }\n \n \n { EscapeToMarlboroughLogoDefault }\n \n \n { XMusicLogoDefault }\n \n {/* square */}\n { BridgeConsultingLogoDefault }\n \n \n { ICSLogoDefault }\n \n {/* square */}\n { SoluColLogoDefault }\n \n {/* square */}\n { JimOCallaghanLogoDefault }\n \n {/* square */}\n { EscapeTourismLogo }\n \n \n
\n )} />\n}\n\nexport default DesignGalleryBranding;","export default __webpack_public_path__ + \"static/elyxr-page-animation-sample-poster-925bd54c0df230f8017f6e0717ff30e1.png\";","export default __webpack_public_path__ + \"static/elyxr-page-animation-sample-poster-cae3fc8b5e22241b888a3d0b897f095f.webp\";","export default __webpack_public_path__ + \"static/elyxr-page-animation-sample-c34af0e7d7e36993235315ef7e37c1d9.mp4\";","export default __webpack_public_path__ + \"static/elyxr-page-animation-sample.webmsd-31b61f6b815a92259cd5f41ca692e374.webm\";","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport videoPosterPng from '../../content/images/elyxr/elyxr-page-animation-sample-poster.png';\nimport videoPosterWebp from '../../content/images/elyxr/elyxr-page-animation-sample-poster.webp';\n// import './ElyxrPageAnimationVideo.scss';\nimport videoMp4 from '../../content/images/elyxr/elyxr-page-animation-sample.mp4';\nimport videoWebm from '../../content/images/elyxr/elyxr-page-animation-sample.webmsd.webm';\nimport NativeVideoWrapper from '../NativeVideoWrapper/NativeVideoWrapper';\n\ntype ElyxrPageAnimationVideoProps = {}\n\nconst ElyxrPageAnimationVideo: React.FC = props => {\n return (\n \n )} />\n}\n\nexport default ElyxrPageAnimationVideo;","import { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Hashtag } from '../../constants/hashtags.constants';\nimport { useEscapeToMarlboroughInfo } from '../../content/projects/escape-to-marlborough.project';\nimport { useGymCoachInfo } from '../../content/projects/gymcoach.project';\nimport { useMJHudsonBridgeInfo } from '../../content/projects/mjhudson-bridge.project';\nimport { useTurn2meInfo } from '../../content/projects/turn2me.project';\nimport ElyxrPageAnimationVideo from '../ElyxrPageAnimationVideo/ElyxrPageAnimationVideo';\nimport GatsbyImageAdaptor from '../GatsbyImageAdaptor/GatsbyImageAdaptor';\nimport GCNResponsiveDesignVideo from '../GCNResponsiveDesignVideo/GCNResponsiveDesignVideo';\nimport GridRow from '../GridRow/GridRow';\nimport './DesignGalleryDigital.scss';\n\ntype DesignGalleryDigitalProps = {}\n\n// const DesignGalleryDigitalItem = (props: React.PropsWithChildren<{\n// image: ImageWithMetaInfo,\n// id: string\n// }>) => {\n// const id = `DesignGallery--design--${props.id}`;\n// const ref = useObservableRef();\n// useFloatInOnVisible(id, ref);\n// return
\n// \n//
\n// };\n\nconst DesignGalleryDigital: React.FC = props => {\n const imageMetaArray = [\n useTurn2meInfo().gallery?.[1],\n // ,\n ,\n useEscapeToMarlboroughInfo().gallery?.[1],\n useGymCoachInfo().gallery?.[0],\n useMJHudsonBridgeInfo().gallery?.[0],\n // \n ,\n ]\n return (\n
\n
\n

#Digital

\n
\n \n {imageMetaArray.map((imageMeta, i) => {\n if (imageMeta && 'image' in imageMeta) {\n return \n } else {\n return imageMeta\n }\n })}\n \n
\n )} />\n}\n\nexport default DesignGalleryDigital;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { SoluColImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoSoluCol: ProjectMetaInfo = {\n name: \"solucol\",\n displayName: \"SoluCol\",\n abbreviation: \"SoluCol\",\n subtitle: \"Branding and Packaging Design\",\n // TODO\n description: \"\",\n categories: [\n Category.websites,\n ],\n sectors: [\n Sector.eCommerceAndRetail,\n ],\n hasPage: false,\n hashtags: [\n Hashtag.branding,\n Hashtag.printDesign,\n ],\n keywords: [\n 'branding design',\n 'print design',\n 'packaging design',\n 'beauty products',\n ],\n}\nexport const useSoluColInfo = () => {\n const SoluColImages: SoluColImagesQuery = useStaticQuery(graphql`\n query SoluColImages {\n featuredImage: file(relativePath: {eq: \"images/solucol/solucol-packaging-design-3d-mockup.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"}, \n relativeDirectory: {eq: \"images/solucol/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n }\n `)\n const imageMetaData: Partial[] = [\n {\n title: 'SoluCol Packaging 3D Rendering',\n alt: 'SoluCol packaging 3D rendering on a kitchen table',\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoSoluCol,\n featuredImage: {\n image: SoluColImages.featuredImage!.childImageSharp!,\n title: 'SoluCol Design overview: branding, iconography and packaging',\n alt: 'SoluCol design overview: branding, iconography and packaging',\n },\n gallery: SoluColImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n }))\n }\n return info;\n}","import { graphql, useStaticQuery } from 'gatsby';\nimport { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Hashtag } from '../../constants/hashtags.constants';\nimport { useFIARallyMarshalsTrainingInfo } from '../../content/projects/fia-rally-marshals-training.project';\nimport { useHopOnHopOffInfo } from '../../content/projects/hoponhopoff.project';\nimport { useSoluColInfo } from '../../content/projects/solucol.project';\nimport { useAppContext } from '../../controllers/app.controller';\nimport { isBrowser, isBuildTime } from '../../env';\nimport { DesignGalleryPrintImagesQuery } from '../../types/generated';\nimport { ColorPalette } from '../../utils/colors.utils';\nimport GatsbyImageAdaptor from '../GatsbyImageAdaptor/GatsbyImageAdaptor';\nimport GridRow from '../GridRow/GridRow';\nimport './DesignGalleryPrint.scss';\n\ntype DesignGalleryPrintProps = {}\n\nconst DesignGalleryPrint: React.FC = props => {\n const { UI } = useAppContext();\n const DesignGalleryPrintImages: DesignGalleryPrintImagesQuery = useStaticQuery(graphql`\n query DesignGalleryPrintImages {\n yesMilk: file(relativePath: {eq: \"images/yes-milk/yes-milk-branding-packaging.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n },\n keithBarryPoster: file(relativePath: {eq: \"images/keith-barry/keith-barry-magic-madhouse-poster-design.png\"}) {\n childImageSharp {\n gatsbyImageData\n }\n },\n keithBarryPosterWithInformation: file(relativePath: {eq: \"images/keith-barry/keith-barry-magic-madhouse-poster-design-with-information.png\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n },\n }\n `)\n const imageMetaArray = [\n useFIARallyMarshalsTrainingInfo().gallery?.[0],\n useSoluColInfo().gallery?.[0],\n {\n image: DesignGalleryPrintImages.yesMilk!.childImageSharp!,\n title: 'YES-milk branding and packaging design concept',\n alt: 'YES-milk branding and packaging design concept',\n },\n {\n image: DesignGalleryPrintImages.keithBarryPoster!.childImageSharp!,\n title: 'Keith Barry Poster Design: Magic Madhouse',\n alt: 'Keith Barry Poster Design: Magic Madhouse',\n },\n {\n image: DesignGalleryPrintImages.keithBarryPosterWithInformation!.childImageSharp!,\n title: 'Keith Barry Poster Design: Magic Madhouse (with information)',\n alt: 'Keith Barry Poster Design: Magic Madhouse (with information)',\n },\n useHopOnHopOffInfo().gallery?.[1],\n ]\n return (\n
\n
\n

#Print

\n
\n \n \n \n \n {isBrowser && UI.viewport.width >= 1440 && UI.cssFeatures.grid && }\n {(isBuildTime || UI.viewport.width < 1440 || !UI.cssFeatures.grid) && }\n \n \n
\n )} />\n}\n\nexport default DesignGalleryPrint;","import { Link } from \"gatsby\"\nimport { Observer } from \"mobx-react-lite\"\nimport * as React from \"react\"\nimport CTAButton from \"../components/CTAButton/CTAButton\"\nimport DefaultPageHeader from \"../components/DefaultPageHeader/DefaultPageHeader\"\nimport DesignGalleryAnimations from \"../components/DesignGalleryAnimations/DesignGalleryAnimations\"\nimport DesignGalleryBranding from \"../components/DesignGalleryBranding/DesignGalleryBranding\"\nimport DesignGalleryDigital from \"../components/DesignGalleryDigital/DesignGalleryDigital\"\nimport DesignGalleryPrint from \"../components/DesignGalleryPrint/DesignGalleryPrint\"\nimport GridRow from \"../components/GridRow/GridRow\"\nimport GridRowEndColumn from \"../components/GridRow/GridRowEndColumn\"\nimport Line from \"../components/Line/Line\"\nimport PageEndCTASection from \"../components/PageEndCTASection/PageEndCTASection\"\nimport PageSection from \"../components/PageSection/PageSection\"\nimport PageTemplate from \"../components/PageTemplate/PageTemplate\"\nimport QuoteSection from \"../components/QuoteSection/QuoteSection\"\nimport StandardTextBlock from \"../components/StandardTextBlock/StandardTextBlock\"\nimport TricolorMorphDef from \"../components/TricolorMorphDef/TricolorMorphDef\"\nimport Widowless from \"../components/Widowless/Widowless\"\nimport { DesignHashtags } from \"../constants/hashtags.constants\"\nimport { useAppContext } from \"../controllers/app.controller\"\nimport { PageComponent } from \"../types/gatsby.types\"\nimport { isIE } from \"../utils/browsers.utils\"\nimport { ColorPalette } from \"../utils/colors.utils\"\nimport './design.scss'\n\nconst PageDesign: PageComponent = props => {\n\n const { UI } = useAppContext();\n\n return (\n \n\n {/* */}\n\n \n \n \n \n Apart from designing apps and websites, businesses also requires designs for a wide range of purposes. Design covers every aspect of an user's experience with your brand, products and services, and cannot be taken lightly.\n \n \n Design coupled with data-driven insights does not only look great: it is crucial in helping the potential customers understanding and retaining what you are trying to sell.\n \n {\n !isIE && <>\n {!UI.cssFeatures.grid &&
}\n {!UI.cssFeatures.grid && UI.viewport.width >= 1440 &&
}\n \n }\n \n Contact Us\n \n \n \n\n \n \n {DesignHashtags.map(key => \n \n #{key.replace(\"Design\", \"\")}\n )}\n {!isIE && }\n \n \n\n \n \n \n \n \n \n\n 768}\n />\n\n \n {/* */}\n\n \n )} />\n}\n\nexport default PageDesign\n"],"names":["props","_jsx","Observer","children","NativeVideoWrapper","id","className","src","videoWebm","videoMp4","poster","videoPoster","width","height","onlyLoadWhenVisible","rounded","ProjectMetaInfoHopOnHopOff","name","displayName","abbreviation","subtitle","description","url","categories","Category","websites","sectors","Sector","tourism","hasPage","hashtags","Hashtag","branding","digitalDesign","printDesign","keywords","useHopOnHopOffInfo","HopOnHopOffImages","useStaticQuery","imageMetaData","title","alt","_objectSpread","featuredImage","image","childImageSharp","gallery","edges","map","edge","i","_edge$node$childImage","node","gatsbyImageData","mobileScreenshots","QuoteSectionBlockquote","ref","useObservableRef","useAnimateTextEnterByLine","animateTextEnter","onlyWhenParentSectionVisible","delay","isString","content","Widowless","p","_jsxs","PageSection","joinClassName","observeVisibility","addLineBefore","Line","addLineAfter","UI","useAppContext","frameBorder","allow","allowFullScreen","isIE","Math","min","viewport","undefined","round","headingOneRef","animateTitle","useTextEnterSwoosh","hideTitle","_props$titleFontSize","as","titleFontSize","DesignHashtags","animations","_props$image","_props$title","_props$image2","_ref","_props$alt","_props$image3","getImage","GatsbyImage","backgroundColor","useFloatInOnVisible","observedRef","animationTargetRef","duration","useOnMount","isBuildTime","getElement","current","TweenLite","set","opacity","once","onBecomeVisible","element","fromTo","y","random","ease","Expo","easeOut","options","pageSection","usePageSectionContext","isProduction","isFirstLoad","highPerf","isBrowser","_styles$fontSize","_options$duration","_options$stagger","spiltText","SplitText","type","TweenMax","chars","waitForFontsToLoad","tick","when","visible","styles","getComputedStyle","XOffset","parseInt","fontSize","max","stagger","x","from","to","ProjectMetaInfoEscapeToMarlborough","design","useEscapeToMarlboroughInfo","EscapeToMarlboroughImages","CTAButton","preSelectTopic","ribbons","gaEvent","event","ProjectMetaInfoTurn2me","apps","healthAndFitness","theme","foregroundColor","backgroundImageOpacity","primaryColor","useTurn2meInfo","Turn2meImages","ProjectMetaInfoGymCoach","useGymCoachInfo","GymCoachImages","ProjectMetaInfoFIARallyMarshalsTraining","governmentAndNPO","motorsports","eLearning","useFIARallyMarshalsTrainingInfo","FIARallyMarshalsTrainingImages","ProjectMetaInfoMJHudsonBridge","finance","useMJHudsonBridgeInfo","MJHudsonBridgeImages","widowPreventerRegex","_props$as","s","React","replace","sectorsPreferredOrder","all","eCommerceAndRetail","entertainmentAndEvents","musicAndAudio","lgbtq","energy","newsAndMedia","sectorDefinitions","slug","getSectorName","isSectorEnum","sector","def","Object","entries","find","key","value","getSectorFromSlug","_ref2","context","autoContext","d","makeDisposerController","async","lines","isObject","log","YOffset","onComplete","revert","animateIn","disposer","supportsWebp","canvas","document","createElement","getContext","toDataURL","indexOf","checkIfBrowserSupportsWebp","videoRef","useStore","isArray","setSrcAndPlay","action","_videoRef$current","play","add","onBecomeInvisible","_videoRef$current2","pause","_props$loop","_props$muted","_props$preload","_props$autoPlay","_props$controls","_props$playsInline","loop","muted","posterWebp","preload","autoPlay","controls","playsInline","srcString","GridRow","YouTubeEmbed","EscapeToMarlboroughLogoDefault","viewBox","fill","xmlns","style","aspectRatio","x1","y1","x2","y2","gradientUnits","stopColor","offset","EscapeTourismLogo","fillRule","clipRule","ICSLogoDefault","JimOCallaghanLogoDefault","BridgeConsultingLogoDefault","SoluColLogoDefault","TheGablesLogoDefault","stroke","strokeWidth","strokeMiterlimit","strokeDasharray","TougherOilLogoDefault","XMusicLogoDefault","cx","cy","r","gradientTransform","DesignGalleryBrandingItem","background","videoPosterWebp","videoPosterPng","_useTurn2meInfo$galle","_useEscapeToMarlborou","_useGymCoachInfo$gall","_useMJHudsonBridgeInf","imageMetaArray","GCNResponsiveDesignVideo","ElyxrPageAnimationVideo","imageMeta","GatsbyImageAdaptor","ProjectMetaInfoSoluCol","useSoluColInfo","SoluColImages","_useFIARallyMarshalsT","_useSoluColInfo$galle","_useHopOnHopOffInfo$g","DesignGalleryPrintImages","yesMilk","keithBarryPoster","keithBarryPosterWithInformation","cssFeatures","grid","objectFit","objectPosition","ColorPalette","ivory","PageTemplate","black","TricolorMorphDef","mobile","R","G","B","desktop","DefaultPageHeader","StandardTextBlock","_Fragment","GridRowEndColumn","Link","DesignGalleryDigital","DesignGalleryAnimations","DesignGalleryBranding","DesignGalleryPrint","QuoteSection","PageEndCTASection"],"sourceRoot":""}