-
Notifications
You must be signed in to change notification settings - Fork 0
/
1-f274d7e1fa23abdcd78c.js.map
1 lines (1 loc) · 64.1 KB
/
1-f274d7e1fa23abdcd78c.js.map
1
{"version":3,"sources":["webpack:///./src/theme.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./src/utils/queries.js","webpack:///./src/components/ContactForm.js","webpack:///./src/components/Container.js","webpack:///./src/components/forms.js","webpack:///./src/components/FlexGrid.js","webpack:///./src/components/Footer.js","webpack:///./src/components/GatsbyImg.js","webpack:///./src/components/Image.js","webpack:///./src/components/ImageGrid.js","webpack:///./src/components/InlineList.js","webpack:///./src/components/Landing.js","webpack:///./src/components/Link.js","webpack:///./src/components/LinkTo.js","webpack:///./src/components/LogoGrid.js","webpack:///./src/components/Page.js","webpack:///./src/components/Project.js","webpack:///./src/components/SEO.js","webpack:///./src/components/Section.js","webpack:///./src/components/SimpleImg.js","webpack:///./src/components/Slab.js","webpack:///./src/components/index.js","webpack:///./.cache/public-page-renderer.js","webpack:///./.cache/public-page-renderer-prod.js"],"names":["reset","name","styles","breakpoints","phone","ipadp","ipadl","laptop","fhd","mq","lodash_fp_mapValues__WEBPACK_IMPORTED_MODULE_0___default","v","fonts","sans","serif","baseFontSizes","px","n","isNaN","threeBreakPoints","vs","fs","landingLogo","landingNav","sansTitle","footerIcon","footerLogo","footerText","quote","serifTitle","lede","fontWeights","normal","bold","spy","section","subsection","baseColors","colors","background","text","emphasis","button","link","accent","frame","slab","logoBg","footer","thread","borders","input","bb","map","x","nav","theme","radii","rounded","space","global","css","_css","html","fontFamily","fontSize","boxSizing","body","lineHeight","color","backgroundColor","fontWeight","textStyles","titleSans","textTransform","titleSerif","StaticQueryContext","React","createContext","StaticQuery","props","Object","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","Consumer","staticQueryData","data","query","render","children","graphql","Error","propTypes","PropTypes","object","string","isRequired","func","imageNodes","lodash_fp_pipe__WEBPACK_IMPORTED_MODULE_5___default","lodash_fp_get__WEBPACK_IMPORTED_MODULE_4___default","lodash_fp_map__WEBPACK_IMPORTED_MODULE_3___default","namedImages","node","lodash_fp_fromPairs__WEBPACK_IMPORTED_MODULE_2___default","a","objFromNamedArray","namedLinks","lodash_fp_mapValues__WEBPACK_IMPORTED_MODULE_1___default","InputContact","_ref","label","objectWithoutPropertiesLoose_default","core_browser_esm","Box","mt","forms_Label","htmlFor","mb","forms_Input","extends_default","id","width","ContactForm","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","this","concat","state","next","inheritsLoose_default","_proto","prototype","componentDidMount","setState","window","location","protocol","host","email","action","method","FlexGrid_FlexGrid","columns","gutter","ContactForm_InputContact","type","required","Col","span","as","rows","Button","ButtonText","value","ContactForm_ref2","Component","defaultProps","Container","mx","maxWidth","Input","Card","border","borderRadius","p","Label","Text","variant","css_browser_esm","display","broken","isObject_default","is","negate","startsWith","substring","colWidths","rawSpans","rawColumns","rawGutters","_map2","map_default","spans","gutters","pipe_default","toPairs_default","k","fractionalWidth","fromPairs_default","mapValues_default","FlexGrid","_ref2","colGutter","rowGutter","Flex","justifyContent","flexWrap","ml","Children","child","isCol","colProps","cloneElement","assign","displayName","oneOfType","number","objectOf","_ref3","SocialLink","icon","LinkTo_LinkTo","index_es","Footer","Slab_Slab","pt","pb","bg","Container_Container","flexDirection","alignItems","InlineList_InlineList","Footer_SocialLink","href","faTwitter","faGithub","faLinkedin","GatsbyImg","Img","Image","image","childImageSharp","fluid","GatsbyImg_GatsbyImg","fixed","SimpleImg_SimpleImg","ImageGridImage","resize","ref","current","getBoundingClientRect","measuredWidth","createRef","addEventListener","componentWillUnmount","removeEventListener","_this$props","aspect","imgStyle","aspectHeight","Image_Image","style","height","objectFit","objectPosition","ImageGrid","images","imageProps","linked","order","flexOrder","o","key","ImageGrid_ImageGridImage","arrayOf","InlineList","_ref$gutter","InlineList_ref2","i","mr","InlineList_ref3","Highlight","Landing_ref","Mission","textAlign","Landing_Highlight","NavLink","borderBottom","Link_Link","onClick","event","document","querySelector","el","scrollIntoView","behavior","block","history","pushState","e","console","error","preventDefault","Nav","Landing_NavLink","Landing","frameWidths","replace","minHeights","minHeight","py","flex","components_Header","Landing_Mission","Landing_Nav","Link","target","LinkTo","gatsby_browser_entry","links","site","siteMetadata","_2498455618","mapWithIndex","convert","cap","arr","LOGO_ORDER","LogoGrid","LOGO_QUERY","ImageGrid_ImageGrid","sortBy_default","opacity","_338905843","AbsoluteReserved","react_default","Fragment","ariaHidden","visibility","position","Bottom","Page_AbsoluteReserved","bottom","left","Page","keywords","title","SEO","emotion_theming_browser_esm","overflow","role","Page_Bottom","Footer_Footer","className","array","Project","category","imageColProps","flip","components_H3","components_H2","Group","alternating","Description","Testimonial","from","pl","borderLeft","fontStyle","_ref4","Award","_ref5","content","faAward","description","lang","meta","detailsQuery","titlePrefix","defaultTitle","Helmet_default","htmlAttributes","property","twitter","join","_1493795551","Section","first","SubSection","SimpleImg","img","alt","src","publicURL","Slab","themed","styled_base_browser_esm","minWidth","maxHeight","top","right","alignSelf","letterSpacing","borderColor","buttonStyle","m","cards","boxShadow","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","P","Header","Lede","H1","H2","H3","module","exports","require","default","ProdPageRenderer","pageResources","loader","getResourcesForPathnameSync","pathname","createElement","InternalPageRenderer","json","shape"],"mappings":"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","file":"1-f274d7e1fa23abdcd78c.js","sourcesContent":["import fp from 'lodash/fp'\nimport {css} from '@emotion/core'\n\n// Reset based on http://meyerweb.com/eric/tools/css/reset/ v2.0\n// prettier-ignore\nconst reset = css`\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n border: 0;\n color: inherit;\n font-size: 100%;\n font-style: inherit;\n font-weight: inherit;\n font: inherit;\n margin: 0;\n padding: 0;\n text-decoration: none;\n vertical-align: baseline;\n }\n /* HTML5 display-role reset for older browsers */\n article, aside, details, figcaption, figure,\n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n body {\n line-height: 1;\n }\n ol, ul {\n list-style: none;\n }\n blockquote, q {\n quotes: none;\n }\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n /* avoid blue outline on focused input */\n *:focus {\n outline: none;\n }\n`\n\n// Define styled-system lookup tables in advance, so we can also reference\n// them directly while defining the theme below.\n//\n// https://github.com/jxnblk/styled-system/blob/master/docs/table.md\n//\nconst breakpoints = {\n phone: 0,\n ipadp: '768px',\n ipadl: '1024px',\n laptop: '1200px',\n fhd: '1920px',\n}\nexport const mq = fp.mapValues(v => `@media(min-width: ${v})`, breakpoints)\nconst fonts = {\n sans: 'brother-1816, sans-serif',\n serif: 'mrs-eaves, serif',\n}\nconst baseFontSizes = {\n phone: 20,\n ipadp: 22,\n ipadl: 24,\n}\nconst baseLineHeights = {\n phone: 1.3,\n}\nconst px = n => isNaN(n) ? n : `${n}px`\nconst threeBreakPoints = fp.mapValues(\n vs => ({\n phone: px(vs[0]),\n ipadp: px(vs[1]),\n ipadl: px(vs[2]),\n }))\nexport const fs = threeBreakPoints({\n landingLogo: [14, 16, 18],\n landingNav: [12, 14, 16],\n sansTitle: [14, 16, 16],\n footerIcon: [24, 26, 28],\n footerLogo: [12, 14, 14],\n footerText: [16, 18, 18],\n quote: [24, 26, 28],\n serifTitle: [26, 32, 32],\n lede: [24, 33, 36],\n})\nconst fontWeights = {\n normal: 400,\n bold: 700,\n}\n// These should be calculated from baseFontSize (actually base line-heights)\nexport const spy = threeBreakPoints({\n section: [55, 66, 96], // [2.75x, 3x, 4x]\n subsection: [20, 33, 48], // [1x, 1.5x, 2x]\n})\nconst baseColors = {\n greyDk: 'hsla(0, 0%, 0%, 0.8)',\n greyLt: 'hsla(0, 0%, 0%, 0.2)',\n blue: '#0060ad',\n blueTint: '#a8c9e3', // blue tint 66%\n green: '#86a5a6', // from #4a797a\n greenShade: '#7f9d9e', // green shade 5%\n gold: '#b87812',\n magenta: '#a9047a',\n}\nconst colors = {\n background: 'white',\n text: baseColors.greyDk,\n\n emphasis: baseColors.gold,\n button: baseColors.magenta,\n link: baseColors.magenta,\n\n accent: baseColors.blueTint,\n frame: baseColors.blue,\n slab: baseColors.green,\n logoBg: baseColors.greenShade,\n footer: baseColors.blueTint,\n\n // not currently used\n thread: baseColors.greyLt,\n}\nconst borders = {\n accent: `4px solid ${colors.accent}`, // not used?\n input: `1px solid ${colors.thread}`,\n}\nexport const bb = threeBreakPoints({\n quote: [3, 4, 4].map(x => `${x}px solid ${colors.accent}`),\n frame: [8, 15, 30].map(x => `${x}px solid ${colors.frame}`),\n nav: [2, 3, 3].map(x => `${x}px solid ${colors.text}`),\n})\nconst radii = {\n rounded: '6px',\n}\n\nconst theme = {\n borders,\n breakpoints,\n colors,\n fonts,\n fontWeights,\n radii,\n space: {},\n\n global: css`\n ${reset}\n ${{\n html: {\n fontFamily: fonts.serif,\n fontSize: baseFontSizes.phone,\n boxSizing: 'border-box',\n // scrollBehavior is set in gatsby-browser.js\n },\n [mq.ipadp]: {\n html: {\n fontSize: baseFontSizes.ipadp,\n },\n },\n [mq.ipadl]: {\n html: {\n fontSize: baseFontSizes.ipadl,\n },\n },\n [mq.laptop]: {\n html: {\n fontSize: baseFontSizes.laptop,\n },\n },\n '*,*:before,*:after': {\n boxSizing: 'inherit',\n },\n body: {\n lineHeight: baseLineHeights.phone,\n color: colors.text,\n backgroundColor: colors.background,\n fontWeight: fontWeights.normal,\n },\n }}\n `,\n\n textStyles: {\n titleSans: {\n fontFamily: fonts.sans,\n textTransform: 'uppercase',\n lineHeight: 1,\n fontWeight: fontWeights.bold,\n },\n titleSerif: {\n fontFamily: fonts.serif,\n textTransform: 'none',\n lineHeight: 1,\n fontWeight: fontWeights.bold,\n },\n },\n}\n\nexport default theme\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport parsePath from \"./parse-path\"\n\nconst StaticQueryContext = React.createContext({})\n\nconst StaticQuery = props => (\n <StaticQueryContext.Consumer>\n {staticQueryData => {\n if (\n props.data ||\n (staticQueryData[props.query] && staticQueryData[props.query].data)\n ) {\n return (props.render || props.children)(\n props.data ? props.data.data : staticQueryData[props.query].data\n )\n } else {\n return <div>Loading (StaticQuery)</div>\n }\n }}\n </StaticQueryContext.Consumer>\n)\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away,. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n.` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n}\n","import fp from 'lodash/fp'\n\nexport const imageNodes = fp.pipe(\n fp.get('edges'),\n fp.map(fp.get('node')),\n)\n\nexport const namedImages = fp.pipe(\n imageNodes,\n fp.map(node => [node.name, node]),\n fp.fromPairs,\n)\n\nexport const objFromNamedArray = fp.pipe(\n fp.map(x => [x.name, x]),\n fp.fromPairs,\n)\n\nexport const namedLinks = fp.pipe(\n objFromNamedArray,\n fp.mapValues(fp.get('href')),\n)\n","import React from 'react'\nimport {Box, Button, ButtonText, FlexGrid, Input, Label} from '.'\n\nconst InputContact = ({label, ...props}) => {\n return (\n <Box mt=\"0.5rem\">\n <Label htmlFor={props.name} mb=\"0.5em\">\n {label}\n </Label>\n <Input id={props.name} {...props} width=\"100%\" />\n </Box>\n )\n}\n\nexport class ContactForm extends React.Component {\n state = {\n next: `https://scampersand.com${this.props.next}`,\n }\n\n componentDidMount() {\n this.setState({\n next: `${window.location.protocol}//${window.location.host}${this.props.next}`,\n })\n }\n\n render() {\n const {email} = this.props\n const {next} = this.state\n return (\n <form action={`https://formspree.io/${email}`} method=\"POST\">\n <FlexGrid columns={{phone: 1, ipadl: 2}} gutter=\"20px\">\n <InputContact label=\"Name\" type=\"text\" name=\"name\" required />\n <InputContact label=\"Email\" type=\"email\" name=\"_replyto\" required />\n <FlexGrid.Col span={{phone: 1, ipadl: 2}}>\n <InputContact\n label=\"Message\"\n as=\"textarea\"\n name=\"body\"\n rows=\"5\"\n required\n />\n </FlexGrid.Col>\n <FlexGrid.Col span={{phone: 1, ipadl: 2}}>\n <Button type=\"submit\">\n <ButtonText>Send</ButtonText>\n </Button>\n </FlexGrid.Col>\n </FlexGrid>\n <input type=\"hidden\" name=\"_subject\" value=\"Hello!\" />\n <input type=\"hidden\" name=\"_next\" value={next} />\n <input type=\"test\" name=\"_gotcha\" css={{display: 'none'}} />\n </form>\n )\n }\n}\n\nContactForm.defaultProps = {\n email: 'hello@scampersand.com',\n next: '/thanks',\n}\n","import React from 'react'\nimport {Box} from '.'\n\nexport const Container = props => (\n <Box\n mx=\"auto\"\n px={{\n phone: '0.75rem',\n ipadp: '1.5rem',\n ipadl: '2rem',\n }}\n maxWidth={{\n ipadl: 'calc(1152px + 2rem)',\n fhd: 'calc(1664px + 2rem)',\n }}\n {...props}\n />\n)\n","import React from 'react'\nimport {Box, Card, Text} from '.'\nimport {fs} from '../theme'\n\nexport const Fieldset = props => <Box as=\"fieldset\" {...props} />\n\nexport const Input = props => (\n <Card as=\"input\" border=\"input\" borderRadius=\"rounded\" p=\"1em\" {...props} />\n)\n\nexport const Label = props => (\n <Text\n as=\"label\"\n variant=\"titleSans\"\n fontSize={fs.sansTitle}\n {...props}\n css={[{display: 'block'}, props.css]}\n />\n)\n","import fp from 'lodash/fp'\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport {Flex, Box} from '.'\n\nconst broken = x => (fp.isObject(x) ? x : {phone: x})\n\nconst is = x => x !== undefined && x !== null\n\nconst negate = x =>\n typeof x === 'string' ? (x.startsWith('-') ? x.substring(1) : '-' + x) : -x\n\nconst colWidths = (rawSpans, rawColumns, rawGutters) => {\n const [spans, columns, gutters] = fp.map(broken, [\n rawSpans,\n rawColumns,\n rawGutters,\n ])\n return fp.pipe(\n fp.toPairs,\n fp.map(([k, c]) => [k, {\n fractionalWidth: (spans[k] || spans.phone) / columns[k],\n gutter: gutters[k] || gutters.phone,\n }]),\n fp.fromPairs,\n fp.mapValues(v => `calc(${100 * v.fractionalWidth}% - ${v.gutter})`),\n )(columns)\n}\n\nexport const FlexGrid = ({\n columns,\n gutter,\n colGutter,\n rowGutter,\n children,\n ...props\n}) => {\n columns = broken(columns)\n colGutter = broken(is(colGutter) ? colGutter : is(gutter) ? gutter : 0)\n rowGutter = broken(is(rowGutter) ? rowGutter : is(gutter) ? gutter : 0)\n return (\n <Flex\n justifyContent=\"start\"\n flexWrap=\"wrap\"\n ml={fp.mapValues(negate, colGutter)}\n mt={fp.mapValues(negate, rowGutter)}\n {...props}\n >\n {React.Children.map(children, child => {\n const isCol = !!(child.props && child.props.span)\n const span = isCol ? child.props.span : 1\n const colProps = {\n span,\n width: colWidths(span, columns, colGutter),\n ml: colGutter,\n mt: rowGutter,\n }\n return isCol ? (\n React.cloneElement(child, {\n ...colProps,\n ...child.props,\n })\n ) : (\n <FlexGrid.Col {...colProps}>{child}</FlexGrid.Col>\n )\n })}\n </Flex>\n )\n}\n\nFlexGrid.displayName = 'FlexGrid'\n\nFlexGrid.propTypes = {\n columns: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.objectOf(PropTypes.number),\n ]).isRequired,\n}\n\nFlexGrid.Col = ({span, ...props}) => <Box {...props} />\n\nFlexGrid.Col.displayName = 'FlexGrid-Col'\n\n// NB: FlexGrid.Col.defaultProps = {span: 1} doesn't work for detecting\n// isCol. Instead force callers to pass span explicitly for now.\nFlexGrid.Col.propTypes = {\n span: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.objectOf(PropTypes.number),\n ]).isRequired,\n}\n","import React from 'react'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport {\n faGithub,\n faLinkedin,\n faTwitter,\n} from '@fortawesome/free-brands-svg-icons'\nimport {Container, Flex, InlineList, LinkTo, Slab, Text} from '.'\nimport {fs} from '../theme'\n\nconst SocialLink = ({icon, ...props}) => (\n <LinkTo {...props}>\n <Text fontSize={fs.footerIcon}>\n <FontAwesomeIcon icon={icon} />\n </Text>\n </LinkTo>\n)\n\nexport const Footer = props => (\n <Slab as=\"footer\" pt=\"1rem\" pb=\"0.5rem\" bg=\"footer\" {...props}>\n <Container as={Flex} flexDirection=\"column\" alignItems=\"center\">\n <InlineList gutter=\"1.25rem\">\n <SocialLink href=\"twitter\" icon={faTwitter} />\n <SocialLink href=\"github\" icon={faGithub} />\n <SocialLink href=\"linkedin\" icon={faLinkedin} />\n </InlineList>\n <InlineList gutter=\"0.25rem\" mt=\"0.5rem\">\n <Text variant=\"titleSans\" fontSize={fs.footerLogo} fontWeight=\"bold\" {...props}>\n Scampersand\n </Text>\n <Text fontSize={fs.footerText} {...props}>\n {'//'}\n </Text>\n <Text fontSize={fs.footerText} {...props}>\n Providence, Rhode Island\n </Text>\n </InlineList>\n </Container>\n </Slab>\n)\n","import React from 'react'\nimport Img from 'gatsby-image'\nimport {Box} from '.'\n\nexport const GatsbyImg = props => <Box as={Img} {...props} />\n\nGatsbyImg.displayName = GatsbyImg\n","import React from 'react'\nimport {GatsbyImg, SimpleImg} from '.'\n\nexport const Image = ({image, ...props}) =>\n image.childImageSharp && image.childImageSharp.fluid ? (\n <GatsbyImg fluid={image.childImageSharp.fluid} {...props} />\n ) : image.childImageSharp && image.childImageSharp.fixed ? (\n <GatsbyImg fixed={image.childImageSharp.fixed} {...props} />\n ) : (\n <SimpleImg image={image} {...props} />\n )\n\nImage.displayName = 'Image'\n","import fp from 'lodash/fp'\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport {FlexGrid, Image, LinkTo} from '.'\n\nclass ImageGridImage extends React.Component {\n constructor(props) {\n super(props)\n this.ref = React.createRef()\n this.state = {measuredWidth: 0}\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.resize)\n this.resize()\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.resize)\n }\n\n resize = () => {\n const {width} = this.ref.current.getBoundingClientRect()\n this.setState({measuredWidth: width})\n }\n\n render() {\n const {\n props: {aspect, imgStyle, link, ...props},\n state: {measuredWidth},\n } = this\n const aspectHeight = measuredWidth / aspect\n let image = (\n <Image\n style={{height: '100%'}}\n imgStyle={{\n height: '100%',\n width: '100%',\n objectFit: 'contain',\n objectPosition: 'center center',\n ...imgStyle,\n }}\n {...props}\n />\n )\n if (link) {\n image = <LinkTo href={link}>{image}</LinkTo>\n }\n return (\n <div css={{height: `${aspectHeight}px`}} ref={this.ref}>\n {image}\n </div>\n )\n }\n}\n\nImageGridImage.propTypes = {\n aspect: PropTypes.number.isRequired,\n image: PropTypes.object.isRequired,\n link: PropTypes.string,\n}\n\nexport const ImageGrid = ({\n aspect,\n colProps,\n images,\n imageProps,\n linked,\n order,\n ...props\n}) => {\n return (\n <FlexGrid alignItems=\"center\" justifyContent=\"start\" {...props}>\n {images.map(image => {\n const flexOrder = fp.mapValues(o => o[image.name] || 0, order)\n return (\n <FlexGrid.Col\n span={1}\n {...colProps}\n key={image.name}\n order={flexOrder}\n >\n <ImageGridImage\n {...imageProps}\n aspect={aspect}\n image={image}\n link={linked && image.name}\n />\n </FlexGrid.Col>\n )\n })}\n </FlexGrid>\n )\n}\n\nImageGrid.propTypes = {\n aspect: PropTypes.number.isRequired,\n colProps: PropTypes.object,\n images: PropTypes.arrayOf(PropTypes.object).isRequired,\n imageProps: PropTypes.object,\n order: PropTypes.objectOf(PropTypes.objectOf(PropTypes.number)),\n}\n\nImageGrid.defaultProps = {\n order: [],\n}\n","import React from 'react'\nimport {Box} from '.'\n\nexport const InlineList = ({children, gutter = 1, ...props}) => (\n <Box as=\"ul\" {...props} css={{listStyle: 'none', marginLeft: 0}}>\n {React.Children.map(children, (child, i) => (\n <Box\n as=\"li\"\n key={i}\n mr={i < children.length - 1 ? gutter : 0}\n css={{\n display: 'inline-block',\n }}\n >\n {child}\n </Box>\n ))}\n </Box>\n)\n","import fp from 'lodash/fp'\nimport React from 'react'\nimport {Card, Container, Flex, Header, InlineList, Link, Text} from '.'\nimport {bb, fs} from '../theme'\n\nconst Highlight = props => <Text css={{fontStyle: 'italic'}} {...props} />\nHighlight.defaultProps = {as: 'span', color: 'emphasis'}\nHighlight.displayName = 'Highlight'\n\nconst Mission = props => {\n const phone = 8.8\n const ipadl = 5.0 // random fricking constant\n const laptop = 7.5\n return (\n <Text\n textAlign=\"center\"\n fontSize={{\n phone: `${phone}vw`,\n ipadp: `${(768 * phone) / 100}px`, // <-- makes sense!\n // random garbage calculations\n ipadl: `${(1024 * ipadl) / 100}px`,\n laptop: `${(1024 * laptop) / 100}px`,\n }}\n lineHeight={1}\n {...props}\n >\n We work with\n <br />\n <Highlight>startups & organizations</Highlight>\n <br />\n to build software\n <br />\n that makes a <Highlight>difference.</Highlight>\n </Text>\n )\n}\n\nconst nav = x => {\n const [el, id] =\n typeof x === 'string'\n ? [document.querySelector(x), x.startsWith('#') ? x.substring(1) : null]\n : [x, x.id]\n if (el) {\n try {\n el.scrollIntoView({behavior: 'smooth', block: 'start'})\n if (id) {\n window.history.pushState(null, null, `#${id}`)\n }\n return el // indicate success\n } catch (e) {\n console.error(e)\n }\n }\n}\n\nconst NavLink = ({href, ...props}) => (\n <Card borderBottom={bb.nav}>\n <Link\n color=\"text\"\n variant=\"titleSans\"\n fontSize={fs.landingNav}\n href={href}\n onClick={event => {\n if (nav(href)) {\n event.preventDefault()\n }\n }}\n {...props}\n />\n </Card>\n)\n\nconst Nav = props => (\n <InlineList gutter=\"2rem\" {...props}>\n <NavLink href=\"#work\">Work</NavLink>\n <NavLink href=\"#clients\">Clients</NavLink>\n <NavLink href=\"#contact\">Let's Talk</NavLink>\n </InlineList>\n)\n\nexport const Landing = () => {\n const frameWidths = fp.mapValues(v => v.replace(/ .*/, ''), bb.frame)\n const minHeights = fp.mapValues(v => `calc(100vh - (${v} * 4))`, frameWidths)\n return (\n <Card\n minHeight=\"100vh\"\n mx=\"auto\"\n py={frameWidths}\n width={fp.mapValues(v => `calc(100vw - (${v} * 2))`, frameWidths)}\n >\n <Card width=\"100%\" border={bb.frame}>\n <Container>\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n minHeight={{\n ...minHeights,\n // These overrides compensate for the top and bottom bars on\n // mobile devices that intrude on 100vh. These are\n // hand-picked values from testing on Android/iPhone/iPad.\n phone: '80vh',\n ipadp: '88vh',\n ipadl: '75vh',\n // Restore the largest entry from minHeights at laptop size,\n // since we can trust 100vh there.\n laptop: minHeights.ipadl,\n }}\n >\n <Flex\n flex=\"1\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n pt=\"12vh\"\n pb=\"6vh\"\n >\n <Header>Scampersand</Header>\n </Flex>\n <Mission />\n <Flex\n flex=\"1\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n pt=\"12vh\"\n pb=\"12vh\"\n >\n <Nav />\n </Flex>\n </Flex>\n </Container>\n </Card>\n </Card>\n )\n}\n","import React from 'react'\nimport {LinkTo, Text} from '.'\n\nexport const Link = ({href, target, ...props}) => (\n <LinkTo href={href} target={target}>\n <Text {...props} />\n </LinkTo>\n)\n\nLink.defaultProps = {\n as: 'span',\n color: 'link',\n fontWeight: 'bold',\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {StaticQuery, graphql} from 'gatsby'\nimport {namedLinks} from '~/utils/queries'\n\nexport const LinkTo = ({children, href, ...props}) => (\n <StaticQuery\n query={graphql`\n query LinksQuery {\n site {\n siteMetadata {\n links {\n name\n href\n }\n }\n }\n }\n `}\n render={({\n site: {\n siteMetadata: {links},\n },\n }) => (\n <a href={namedLinks(links)[href] || href} {...props}>\n {children}\n </a>\n )}\n />\n)\n\nLinkTo.displayName = 'LinkTo'\n\nLinkTo.propTypes = {\n href: PropTypes.string.isRequired,\n}\n","import fp from 'lodash/fp'\nimport {StaticQuery, graphql} from 'gatsby'\nimport React from 'react'\nimport {imageNodes} from '~/utils/queries'\nimport {ImageGrid} from '.'\nimport theme from '~/theme'\n\nconst mapWithIndex = fp.map.convert({cap: false})\n\nconst flexOrder = fp.pipe(\n mapWithIndex((v, i, arr) => [v, -(arr.length - i)]),\n fp.fromPairs,\n)\n\nconst LOGO_ORDER = fp.mapValues(flexOrder, {\n phone: [\n '18f',\n 'tizra',\n 'appsembler',\n 'ada',\n 'ripul',\n 'abc-clio',\n 'princeton-university-press',\n 'gw',\n ],\n ipadp: [\n '18f',\n 'appsembler',\n 'ada',\n 'abc-clio',\n 'tizra',\n 'ripul',\n 'princeton-university-press',\n 'gw',\n ],\n})\n\nexport const LogoGrid = props => (\n <StaticQuery\n query={LOGO_QUERY}\n render={({images}) => {\n return (\n <ImageGrid\n images={fp.sortBy('name', imageNodes(images))}\n linked\n order={LOGO_ORDER}\n columns={{phone: 2, ipadp: 4}}\n aspect={2}\n gutter=\"0.5rem\"\n rowGutter=\"0.5rem\"\n colProps={{\n px: {\n phone: '0.5rem',\n ipadl: '0.75rem',\n },\n py: '1rem',\n css: {backgroundColor: theme.colors.logoBg},\n }}\n imageProps={{imgStyle: {opacity: '0.8'}}}\n {...props}\n />\n )\n }}\n />\n)\n\nconst LOGO_QUERY = graphql`\n fragment logoImage on File {\n childImageSharp {\n fluid(maxWidth: 512, toFormat: PNG) {\n ...GatsbyImageSharpFluid_noBase64\n }\n }\n }\n fragment logoImages on FileConnection {\n edges {\n node {\n name\n publicURL\n ...logoImage\n }\n }\n }\n query LogoQuery {\n images: allFile(filter: {relativeDirectory: {eq: \"clients\"}}) {\n ...logoImages\n }\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Global} from '@emotion/core'\nimport {ThemeProvider} from 'emotion-theming'\nimport theme from '~/theme'\nimport {Box, Card, Flex, Footer, SEO} from '.'\n\nexport const AbsoluteReserved = props => (\n <>\n <Box\n ariaHidden=\"true\"\n {...props}\n css={{visibility: 'hidden', ...props.css}}\n />\n <Box position=\"absolute\" {...props} />\n </>\n)\n\nexport const Bottom = props => (\n <AbsoluteReserved bottom=\"0\" left=\"0\" width=\"100%\" {...props} />\n)\n\nexport const Page = ({keywords, title, ...props}) => (\n <>\n <SEO title={title} keywords={keywords} />\n <ThemeProvider theme={theme}>\n <Global styles={theme['global']} />\n <Flex\n flexDirection=\"column\"\n minHeight=\"100vh\"\n position=\"relative\"\n overflow={'hidden auto' /* for appsembler image */}\n >\n <Card as=\"main\" role=\"main\" flex=\"1\" {...props} />\n <Bottom>\n <Footer />\n </Bottom>\n </Flex>\n </ThemeProvider>\n </>\n)\n\nPage.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n keywords: PropTypes.array,\n title: PropTypes.string,\n}\n","import React from 'react'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport {faAward} from '@fortawesome/free-solid-svg-icons'\nimport {Box, Card, FlexGrid, H2, H3, Image, Link, Text} from '.'\nimport {bb, fs, spy} from '../theme'\n\nexport const Project = ({\n title,\n category,\n link,\n image,\n imageColProps,\n imageProps,\n flip,\n children,\n ...props\n}) => {\n if (link) {\n title = <Link href={link}>{title}</Link>\n }\n return (\n <FlexGrid columns={{phone: 1, ipadl: 5}} gutter=\"1rem\" pt={spy.subsection} {...props}>\n <FlexGrid.Col\n span={{phone: 1, ipadl: 2}}\n order={{phone: 0, ipadl: flip ? 1 : 0}}\n >\n <H3>{category}</H3>\n <H2>{title}</H2>\n <Box children={children} />\n </FlexGrid.Col>\n <FlexGrid.Col\n span={{phone: 1, ipadl: 3}}\n order={{phone: 0, ipadl: flip ? 0 : 0}}\n {...imageColProps}\n >\n <Image image={image} {...imageProps} />\n </FlexGrid.Col>\n </FlexGrid>\n )\n}\n\nProject.defaultProps = {\n mb: '3em',\n}\n\nProject.Group = ({alternating, children}) =>\n React.Children.map(children, (child, i) =>\n alternating && i % 2 ? React.cloneElement(child, {flip: true}) : child,\n )\n\nProject.Group.displayName = 'Project.Group'\n\nProject.Description = props => <Text mb=\"1em\" {...props} />\n\nProject.Description.displayName = 'Project.Description'\n\nProject.Testimonial = ({from, children}) => (\n <Card pl=\"1rem\" borderLeft={bb.quote}>\n <Text\n fontSize={fs.quote}\n fontWeight=\"bold\"\n fontStyle=\"italic\"\n css={\n // until https://github.com/rebassjs/rebass/pull/558\n {fontStyle: 'italic'}\n }\n mb=\"0.5em\"\n >\n {children}\n </Text>\n <Text as=\"cite\">—{from}</Text>\n </Card>\n)\n\nProject.Testimonial.displayName = 'Project.Testimonial'\n\nProject.Award = ({name, link, ...props}) => {\n let content = (\n <>\n <FontAwesomeIcon icon={faAward} />{' '}\n <Text\n as=\"span\"\n fontFamily=\"sans\"\n fontWeight=\"normal\"\n fontSize={fs.sansTitle}\n color=\"text\"\n >\n {name}\n </Text>\n </>\n )\n if (link) {\n content = <Link href={link}>{content}</Link>\n }\n return <Box {...props}>{content}</Box>\n}\n\nProject.Award.displayName = 'Project.Award'\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Helmet from 'react-helmet'\nimport {StaticQuery, graphql} from 'gatsby'\n\nexport function SEO({description, lang, meta, keywords, title}) {\n return (\n <StaticQuery\n query={detailsQuery}\n render={({site: {siteMetadata}}) => {\n title = siteMetadata.titlePrefix + (title || siteMetadata.defaultTitle)\n description = description || siteMetadata.description\n return (\n <Helmet\n htmlAttributes={{\n lang,\n }}\n title={title}\n meta={[\n {\n name: 'description',\n content: description,\n },\n {\n property: 'og:title',\n content: title,\n },\n {\n property: 'og:description',\n content: description,\n },\n {\n property: 'og:type',\n content: 'website',\n },\n {\n name: 'twitter:card',\n content: 'summary',\n },\n {\n name: 'twitter:creator',\n content: siteMetadata.twitter,\n },\n {\n name: 'twitter:title',\n content: title,\n },\n {\n name: 'twitter:description',\n content: description,\n },\n ]\n .concat(\n keywords.length > 0\n ? {\n name: 'keywords',\n content: keywords.join(', '),\n }\n : [],\n )\n .concat(meta)}\n />\n )\n }}\n />\n )\n}\n\nSEO.defaultProps = {\n lang: 'en',\n meta: [],\n keywords: [],\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.array,\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string,\n}\n\nconst detailsQuery = graphql`\n query DefaultSEOQuery {\n site {\n siteMetadata {\n titlePrefix\n defaultTitle\n description\n }\n }\n }\n`\n","import React from 'react'\nimport {Box} from '.'\nimport {spy} from '../theme'\n\n// TODO vertical spacing should use rhythm, not rems\n\nexport const Section = ({first, ...props}) => {\n const pt = Object.assign(\n {},\n spy.section,\n first && {phone: 0, ipadp: 0, ipadl: 16, laptop: spy.section.ipadl},\n )\n return <Box as=\"section\" pt={pt} pb={spy.section} {...props} />\n}\n\nSection.displayName = 'Section'\n\nSection.SubSection = props => <Box {...props} />\n\nSection.SubSection.displayName = 'Section.SubSection'\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Box} from '.'\n\n/**\n * gatsby-image provides Img which generates a wrapper and applies style\n * (wrapper) and imgStyle (wrapped img tag). But Img only works with the\n * result of the fluid/fixed GraphQL queries. For SVG we need an\n * alternative that generates similar markup but handles a simple src prop.\n */\nexport const SimpleImg = ({css, image, imgStyle, style, ...props}) => (\n <Box\n css={[\n {\n img: {\n maxWidth: '100%',\n height: 'auto',\n ...imgStyle,\n },\n },\n style,\n css,\n ]}\n {...props}\n >\n <img\n alt={image.name}\n src={image.publicURL}\n />\n </Box>\n)\n\nSimpleImg.displayName = 'SimpleImg'\n\nSimpleImg.propTypes = {\n image: PropTypes.object.isRequired,\n style: PropTypes.object,\n imgStyle: PropTypes.object,\n}\n","import React from 'react'\nimport {Card} from '.'\n\nexport const Slab = props => <Card bg=\"slab\" {...props} />\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport {\n alignItems,\n alignSelf,\n backgroundImage,\n backgroundPosition,\n backgroundRepeat,\n backgroundSize,\n borderColor,\n borderRadius,\n borders,\n bottom,\n boxShadow,\n buttonStyle,\n color,\n flex,\n flexDirection,\n flexWrap,\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n height,\n justifyContent,\n left,\n letterSpacing,\n lineHeight,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n opacity,\n order,\n overflow,\n position,\n right,\n space,\n textAlign,\n top,\n variant,\n width,\n} from 'styled-system'\nimport {fs} from '../theme'\n\nconst themed = key => props => props.theme[key]\n\nexport const Box = styled('div')(\n {\n boxSizing: 'border-box',\n },\n space,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n position,\n top,\n right,\n bottom,\n left,\n overflow,\n fontSize,\n color,\n flex,\n order,\n alignSelf,\n themed('Box'),\n)\nBox.propTypes = {\n ...space.propTypes,\n ...width.propTypes,\n ...height.propTypes,\n ...minWidth.propTypes,\n ...minHeight.propTypes,\n ...maxWidth.propTypes,\n ...maxHeight.propTypes,\n ...position.propTypes,\n ...top.propTypes,\n ...right.propTypes,\n ...bottom.propTypes,\n ...left.propTypes,\n ...overflow.propTypes,\n ...fontSize.propTypes,\n ...color.propTypes,\n ...flex.propTypes,\n ...order.propTypes,\n ...alignSelf.propTypes,\n}\n\nexport const Flex = styled(Box)(\n {\n display: 'flex',\n },\n flexWrap,\n flexDirection,\n alignItems,\n justifyContent,\n themed('Flex'),\n)\nFlex.propTypes = {\n ...flexWrap.propTypes,\n ...flexDirection.propTypes,\n ...alignItems.propTypes,\n ...justifyContent.propTypes,\n}\n\nconst textStyles = variant({key: 'textStyles'})\nexport const Text = styled(Box)(\n textStyles,\n fontFamily,\n fontWeight,\n fontStyle,\n textAlign,\n lineHeight,\n letterSpacing,\n themed('Text'),\n)\nText.propTypes = {\n ...fontFamily.propTypes,\n ...fontWeight.propTypes,\n ...fontStyle.propTypes,\n ...textAlign.propTypes,\n ...lineHeight.propTypes,\n ...letterSpacing.propTypes,\n ...textStyles.propTypes,\n}\n\nexport const Button = styled(Box)(\n {\n appearance: 'none',\n display: 'inline-block',\n textAlign: 'center',\n lineHeight: 'inherit',\n textDecoration: 'none',\n },\n fontWeight,\n fontStyle,\n borders,\n borderColor,\n borderRadius,\n buttonStyle,\n themed('Button'),\n)\nButton.propTypes = {\n ...fontWeight.propTypes,\n ...fontStyle.propTypes,\n ...borders.propTypes,\n ...borderColor.propTypes,\n ...borderRadius.propTypes,\n ...buttonStyle.propTypes,\n}\nButton.defaultProps = {\n as: 'button',\n fontSize: 'inherit',\n fontWeight: 'bold',\n m: 0,\n p: 0,\n color: 'white',\n bg: 'button',\n border: 0,\n borderRadius: 4,\n}\n\nexport const ButtonText = styled(Text)()\nButtonText.defaultProps = {\n variant: 'titleSans',\n fontSize: fs.sansTitle,\n px: '2.5em',\n py: '1.25em',\n}\n\nconst cards = variant({key: 'cards'})\nexport const Card = styled(Box)(\n borders,\n borderColor,\n borderRadius,\n boxShadow,\n backgroundImage,\n backgroundSize,\n backgroundPosition,\n backgroundRepeat,\n opacity,\n cards,\n themed('Card'),\n)\nCard.propTypes = {\n ...borders.propTypes,\n ...borderColor.propTypes,\n ...borderRadius.propTypes,\n ...boxShadow.propTypes,\n ...backgroundImage.propTypes,\n ...backgroundSize.propTypes,\n ...backgroundPosition.propTypes,\n ...backgroundRepeat.propTypes,\n ...opacity.propTypes,\n ...cards.propTypes,\n}\n\nexport const P = styled(Text)()\nP.defaultProps = {as: 'p'}\nP.displayName = 'P'\n\nexport const Header = props => (\n <Text as=\"header\" variant=\"titleSans\" fontSize={fs.landingLogo} {...props} />\n)\n\nexport const Lede = props => (\n <Text as=\"p\" fontSize={fs.lede} lineHeight=\"1.15\" mb=\"1.5em\" {...props} />\n)\n\nexport const H1 = props => (\n <Text\n as=\"h1\"\n variant=\"titleSans\"\n fontSize={fs.sansTitle}\n mb=\"0.75em\"\n {...props}\n />\n)\n\nexport const H2 = props => (\n <Text\n as=\"h2\"\n variant=\"titleSerif\"\n fontSize={fs.serifTitle}\n mb=\"0.75em\"\n {...props}\n />\n)\n\nexport const H3 = props => (\n <Text\n as=\"h3\"\n variant=\"titleSans\"\n fontSize={fs.sansTitle}\n mb=\"0.75em\"\n {...props}\n />\n)\n\nexport {ContactForm} from './ContactForm'\nexport {Container} from './Container'\nexport {Fieldset, Input, Label} from './forms'\nexport {FlexGrid} from './FlexGrid'\nexport {Footer} from './Footer'\nexport {GatsbyImg} from './GatsbyImg'\nexport {Image} from './Image'\nexport {ImageGrid} from './ImageGrid'\nexport {InlineList} from './InlineList'\nexport {Landing} from './Landing'\nexport {Link} from './Link'\nexport {LinkTo} from './LinkTo'\nexport {LogoGrid} from './LogoGrid'\nexport {Page} from './Page'\nexport {Project} from './Project'\nexport {SEO} from './SEO'\nexport {Section} from './Section'\nexport {SimpleImg} from './SimpleImg'\nexport {Slab} from './Slab'\nexport {Thread} from './Thread'\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\nimport loader from \"./loader\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.getResourcesForPathnameSync(location.pathname)\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n"],"sourceRoot":""}