{"version":3,"sources":["webpack:///./src/pages/index.jsx","webpack:///./src/components/image.jsx","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/components/card-hover.jsx","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/components/post-meta.jsx","webpack:///./src/components/media-preview.jsx","webpack:///./src/components/post-preview.jsx","webpack:///./src/components/profiles.jsx"],"names":["styleRecentWritingWrapper","display","flexDirection","width","Object","_css_themes__WEBPACK_IMPORTED_MODULE_5__","h","j","_styleRecentWritingWr","stylePostPreview","i","g","flexBasis","_stylePostPreview","AvatarWrapper","glamorous__WEBPACK_IMPORTED_MODULE_3__","b","div","justifyContent","alignItems","marginTop","marginBottom","RecentWritingWrapper","RecentWriting","_glamorous$div","flexWrap","_ref","data","lodash__WEBPACK_IMPORTED_MODULE_0___default","a","map","allMarkdownRemark","edges","_ref2","_ref2$node$frontmatte","node","frontmatter","path","title","date","Glamor","createElement","Div","key","css","_components_card_hover__WEBPACK_IMPORTED_MODULE_6__","_components_post_preview__WEBPACK_IMPORTED_MODULE_7__","queryPrefix","__webpack_exports__","default","_ref4","location","_layouts_default__WEBPACK_IMPORTED_MODULE_4__","_components_common__WEBPACK_IMPORTED_MODULE_10__","src","allFile","publicURL","size","marginRight","r","q","gatsby__WEBPACK_IMPORTED_MODULE_2__","to","k","o","_components_profiles__WEBPACK_IMPORTED_MODULE_9__","pageQuery","ImageWrapper","glamorous__WEBPACK_IMPORTED_MODULE_4__","span","Caption","fontSize","fontWeight","d","Image","fluid","fixed","caption","gatsby_image__WEBPACK_IMPORTED_MODULE_3___default","propTypes","prop_types__WEBPACK_IMPORTED_MODULE_2__","any","string","call","this","276","e","t","__webpack_require__","createHTML","278","_interopRequireDefault","exports","__esModule","io","_inheritsLoose2","_assertThisInitialized2","_objectWithoutProperties2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","imageCache","inImageCache","listeners","isWebpSupportedCache","isWebpSupported","elem","window","document","getContext","toDataURL","indexOf","noscriptImg","srcSet","alt","height","opacity","transitionDelay","Img","style","onLoad","otherProps","position","top","left","transition","objectFit","objectPosition","object","func","_React$Component","_this","isVisible","imgLoaded","IOSupported","IntersectionObserver","state","handleRef","bind","_proto","prototype","ref","_this2","el","cb","entries","forEach","entry","l","target","isIntersecting","intersectionRatio","unobserve","rootMargin","observe","push","listenToIntersections","setState","render","bgColor","_this3","_convertProps","className","outerWrapperClassName","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","backgroundColor","Tag","imagePlaceholderStyle","imageStyle","fadeIn","image","srcWebp","srcSetWebp","overflow","paddingBottom","aspectRatio","base64","tracedSVG","bottom","right","dangerouslySetInnerHTML","__html","_image","divStyle","Component","defaultProps","fixedObject","shape","number","isRequired","fluidObject","bool","oneOfType","_default","Hover","glamorous__WEBPACK_IMPORTED_MODULE_1__","paddingLeft","paddingRight","margin","&:hover .hover-backdrop","cursor","transform","HoverBackdrop","pointerEvents","background","_css_themes__WEBPACK_IMPORTED_MODULE_2__","orange","boxShadow","black","borderRadius","children","$export","fails","defined","quot","tag","attribute","value","S","String","p1","replace","module","NAME","exec","O","P","F","test","toLowerCase","split","length","styleIconItem","color","darkGrey","styleDelimeter","marginLeft","IconRow","IconItem","PostMeta","tags","locations","renderLinks","_common__WEBPACK_IMPORTED_MODULE_6__","dateString","strings","queryKey","delimeter","chain","react__WEBPACK_IMPORTED_MODULE_1___default","Fragment","gatsby__WEBPACK_IMPORTED_MODULE_3__","s","reduce","prev","curr","join","arrayOf","358","n","MediaPreviewContentWrapper","flexGrow","textAlign","MediaPreviewDescription","MediaPreview","author","_components_card_hover__WEBPACK_IMPORTED_MODULE_5__","_components_common__WEBPACK_IMPORTED_MODULE_7__","_components_image__WEBPACK_IMPORTED_MODULE_6__","childImageSharp","u","396","c","styleTitle","styleShort","lineHeight","PreviewImageWrapper","glamorous__WEBPACK_IMPORTED_MODULE_5__","PostWrapper","featuredImage","lodash__WEBPACK_IMPORTED_MODULE_1___default","has","TitleWrapper","PostPreview","short","hasPreviewImage","& a","textDecoration","borderBottom","gatsby__WEBPACK_IMPORTED_MODULE_4__","_components_image__WEBPACK_IMPORTED_MODULE_7__","_post_meta__WEBPACK_IMPORTED_MODULE_8__","prop_types__WEBPACK_IMPORTED_MODULE_3__","578","SocialWrapper","styleSocialIcons","Social","profiles","site","siteMetadata","profilesComponents","username","url","icon","_card_hover__WEBPACK_IMPORTED_MODULE_6__","_common__WEBPACK_IMPORTED_MODULE_7__","&:hover","&::before","visibility","href","rel","I","query","_public_static_d_3420343078_json__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"component---src-pages-index-jsx-8c522bbd9f99f2c9038d.js","sourcesContent":["import _ from 'lodash'\nimport React from 'react'\nimport {Link, graphql} from 'gatsby'\nimport glamorous from 'glamorous'\n\n/* eslint-disable-next-line import/no-named-as-default */\nimport Default from '../layouts/default'\nimport {mediaMaxWidth, mediaMinWidth, sm, md} from '../css/themes'\nimport CardHover from '../components/card-hover'\nimport PostPreview from '../components/post-preview'\nimport MediaPreview from '../components/media-preview'\nimport Profiles from '../components/profiles'\nimport {Avatar, H1, H4, P, I, LinkStyled} from '../components/common'\n\nconst styleRecentWritingWrapper = {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n [mediaMaxWidth(sm)]: {\n flexDirection: 'column',\n },\n}\n\nconst stylePostPreview = {\n display: 'flex',\n [mediaMinWidth(md)]: {\n flexBasis: '30%',\n },\n}\n\nconst AvatarWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n marginTop: '1rem',\n marginBottom: '2rem',\n})\n\nconst RecentWritingWrapper = glamorous.div(styleRecentWritingWrapper)\n\nconst MediaPreviewWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n [mediaMaxWidth(sm)]: {\n justifyContent: 'center',\n },\n})\n\nconst RecentWriting = ({data}) =>\n _.map(data.allMarkdownRemark.edges, ({node: {frontmatter: {path, title, date}}}) => (\n \n \n \n \n \n ))\n\nconst renderMediaPreviews = edges => (\n \n {_.map(edges, ({node: {image, title, author, review, fields: {path}}}) => {\n return (\n \n )\n })}\n \n)\n\nconst IndexPage = ({data, location}) => (\n \n \n \n

Hi, I'm Jacob 🍜

\n
\n

\n I'm a frontend developer, hackathon organizer, and senior Computer Science student at the University of\n California, Davis. I do some{` `}\n \n writing\n \n {` `}\n about correctness, frontend, and functional programming. I also maintain a collection of book, podcast,\n and film{` `}\n \n reviews\n \n .{` `}\n If you're interested, this is where I am and what I'm working on right {` `}\n \n now\n \n .{` `}\n Here is my résumé and a bit {` `}\n \n about\n \n {` `} me.\n

\n\n

Recent Writing

\n\n \n \n \n\n

Find Me Places

\n

\n Fun fact, I've cryptographically proven that I own these profiles using Keybase.\n

\n \n
\n)\n\nexport default IndexPage\n\nexport const pageQuery = graphql`\n query AvatarQuery {\n allFile(filter: {name: {eq: \"avatar\"}}) {\n edges {\n node {\n publicURL\n }\n }\n }\n allMarkdownRemark(\n limit: 3\n sort: {order: DESC, fields: [frontmatter___date]}\n filter: {fields: {type: {eq: \"writing\"}}}\n ) {\n edges {\n node {\n id\n excerpt(pruneLength: 250)\n frontmatter {\n path\n title\n tags\n locations\n date(formatString: \"YYYY-MM-DD\")\n }\n headings {\n value\n }\n }\n }\n }\n }\n`\n","import React from 'react'\nimport {any, string} from 'prop-types'\nimport Img from 'gatsby-image'\nimport glamorous from 'glamorous'\n\nimport {getThemeStyles} from '../css/themes'\n\nconst ImageWrapper = glamorous.span({\n display: 'block',\n marginTop: '2rem',\n marginBottom: '2rem',\n})\nconst Caption = glamorous.i(\n {\n marginTop: '0.25rem',\n marginBottom: '0.25rem',\n fontSize: '0.9rem',\n fontWeight: 'normal',\n },\n getThemeStyles('i')\n)\nconst Image = ({fluid, fixed, caption}) => (\n \n \n {caption && {caption}}\n \n)\nImage.propTypes = {\n fixed: any,\n fluid: any,\n caption: string,\n}\n\nexport default Image\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\n// Handle legacy names for image queries.\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n\n if (convertedProps.resolutions) {\n convertedProps.fixed = convertedProps.resolutions;\n delete convertedProps.resolutions;\n }\n\n if (convertedProps.sizes) {\n convertedProps.fluid = convertedProps.sizes;\n delete convertedProps.sizes;\n }\n\n return convertedProps;\n}; // Cache if we've seen an image before so we don't both with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = {};\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = convertedProps.fluid ? convertedProps.fluid.src : convertedProps.fixed.src;\n\n if (imageCache[src]) {\n return true;\n } else {\n imageCache[src] = true;\n return false;\n }\n};\n\nvar io;\nvar listeners = [];\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n listeners.forEach(function (l) {\n if (l[0] === entry.target) {\n // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(l[0]);\n l[1]();\n }\n }\n });\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n getIO().observe(el);\n listeners.push([el, cb]);\n};\n\nvar isWebpSupportedCache = null;\n\nvar isWebpSupported = function isWebpSupported() {\n if (isWebpSupportedCache !== null) {\n return isWebpSupportedCache;\n }\n\n var elem = typeof window !== \"undefined\" ? window.document.createElement(\"canvas\") : {};\n\n if (elem.getContext && elem.getContext(\"2d\")) {\n isWebpSupportedCache = elem.toDataURL(\"image/webp\").indexOf(\"data:image/webp\") === 0;\n } else {\n isWebpSupportedCache = false;\n }\n\n return isWebpSupportedCache;\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var opacity = props.opacity ? props.opacity : \"1\";\n var transitionDelay = props.transitionDelay ? props.transitionDelay : \"0.5s\";\n return \"\";\n};\n\nvar Img = function Img(props) {\n var style = props.style,\n onLoad = props.onLoad,\n otherProps = (0, _objectWithoutProperties2.default)(props, [\"style\", \"onLoad\"]);\n return _react.default.createElement(\"img\", (0, _extends2.default)({}, otherProps, {\n onLoad: onLoad,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n transition: \"opacity 0.5s\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n};\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onLoad: _propTypes.default.func\n};\n\nvar Image =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this browser doesn't support the IntersectionObserver API\n // we default to start downloading the image right away.\n\n var isVisible = true;\n var imgLoaded = true;\n var IOSupported = false; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n var seenBefore = inImageCache(props);\n\n if (!seenBefore && typeof window !== \"undefined\" && window.IntersectionObserver) {\n isVisible = false;\n imgLoaded = false;\n IOSupported = true;\n } // Always don't render image while server rendering\n\n\n if (typeof window === \"undefined\") {\n isVisible = false;\n imgLoaded = false;\n }\n\n _this.state = {\n isVisible: isVisible,\n imgLoaded: imgLoaded,\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.state.IOSupported && ref) {\n listenToIntersections(ref, function () {\n _this2.setState({\n isVisible: true,\n imgLoaded: false\n });\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n outerWrapperClassName = _convertProps.outerWrapperClassName,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n Tag = _convertProps.Tag;\n\n var bgColor;\n\n if (typeof backgroundColor === \"boolean\") {\n bgColor = \"lightgray\";\n } else {\n bgColor = backgroundColor;\n }\n\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1,\n transitionDelay: \"0.25s\"\n }, imgStyle, placeholderStyle);\n var imageStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded || this.props.fadeIn === false ? 1 : 0\n }, imgStyle);\n\n if (fluid) {\n var image = fluid; // Use webp by default if browser supports it\n\n if (image.srcWebp && image.srcSetWebp && isWebpSupported()) {\n image.src = image.srcWebp;\n image.srcSet = image.srcSetWebp;\n } // The outer div is necessary to reset the z-index to 0.\n\n\n return _react.default.createElement(Tag, {\n className: (outerWrapperClassName ? outerWrapperClassName : \"\") + \" gatsby-image-outer-wrapper\",\n style: {\n // Let users set component to be absolutely positioned.\n position: style.position === \"absolute\" ? \"initial\" : \"relative\"\n }\n }, _react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\"\n }, style),\n ref: this.handleRef\n }, _react.default.createElement(Tag, {\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), image.base64 && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n src: image.base64,\n style: imagePlaceholderStyle\n }), image.tracedSVG && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n src: image.tracedSVG,\n style: imagePlaceholderStyle\n }), bgColor && _react.default.createElement(Tag, {\n title: title,\n style: {\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n transitionDelay: \"0.35s\",\n right: 0,\n left: 0\n }\n }), this.state.isVisible && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n srcSet: image.srcSet,\n src: image.src,\n sizes: image.sizes,\n style: imageStyle,\n onLoad: function onLoad() {\n _this3.state.IOSupported && _this3.setState({\n imgLoaded: true\n });\n _this3.props.onLoad && _this3.props.onLoad();\n }\n }), _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title\n }, image))\n }\n })));\n }\n\n if (fixed) {\n var _image = fixed;\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: _image.width,\n height: _image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n } // Use webp by default if browser supports it\n\n\n if (_image.srcWebp && _image.srcSetWebp && isWebpSupported()) {\n _image.src = _image.srcWebp;\n _image.srcSet = _image.srcSetWebp;\n } // The outer div is necessary to reset the z-index to 0.\n\n\n return _react.default.createElement(Tag, {\n className: (outerWrapperClassName ? outerWrapperClassName : \"\") + \" gatsby-image-outer-wrapper\",\n style: {\n // Let users set component to be absolutely positioned.\n position: style.position === \"absolute\" ? \"initial\" : \"relative\"\n }\n }, _react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef\n }, _image.base64 && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n src: _image.base64,\n style: imagePlaceholderStyle\n }), _image.tracedSVG && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n src: _image.tracedSVG,\n style: imagePlaceholderStyle\n }), bgColor && _react.default.createElement(Tag, {\n title: title,\n style: {\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n transitionDelay: \"0.25s\",\n height: _image.height\n }\n }), this.state.isVisible && _react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height,\n srcSet: _image.srcSet,\n src: _image.src,\n style: imageStyle,\n onLoad: function onLoad() {\n _this3.setState({\n imgLoaded: true\n });\n\n _this3.props.onLoad && _this3.props.onLoad();\n }\n }), _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height\n }, _image))\n }\n })));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n alt: \"\",\n Tag: \"div\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string\n});\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: fixedObject,\n fluid: fluidObject,\n fadeIn: _propTypes.default.bool,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n outerWrapperClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n position: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n Tag: _propTypes.default.string\n};\nvar _default = Image;\nexports.default = _default;","import React from 'react'\nimport glamorous from 'glamorous'\nimport {colors, hexToRgba} from '../css/themes'\n\nconst Hover = glamorous.div({\n position: 'relative',\n paddingLeft: '1rem',\n paddingRight: '1rem',\n margin: '0.5rem',\n '&:hover .hover-backdrop': {\n cursor: 'pointer',\n opacity: 0.18,\n transform: 'none',\n },\n})\n\nconst HoverBackdrop = glamorous.div({\n position: 'absolute',\n pointerEvents: 'none',\n top: '-4px',\n bottom: '-4px',\n left: '-4px',\n right: '-4px',\n background: colors.orange,\n boxShadow: `0 0 40px 3px ${hexToRgba(colors.black, 0.4)}`,\n borderRadius: '8px',\n transition: 'all 320ms ease-out',\n transform: 'scale(1.03)',\n opacity: 0,\n})\n\nconst CardHover = ({style, children}) => (\n \n \n {children}\n \n)\n\nexport default CardHover\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","import _ from 'lodash'\nimport React from 'react'\nimport {string, arrayOf} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport {colors} from '../css/themes'\nimport {Span, Date, LinkStyled} from './common'\n\nconst styleIcon = {\n display: 'inline-block',\n marginRight: '0.5rem',\n}\n\nconst styleIconItem = {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n marginRight: '2rem',\n color: colors.darkGrey,\n}\n\nconst styleIconRow = {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n marginBottom: '0.75rem',\n}\n\nconst styleDelimeter = {\n marginLeft: '0.2rem',\n marginRight: '0.2rem',\n}\n\nconst IconRow = glamorous.div(styleIconRow)\nconst IconItem = glamorous.div(styleIconItem)\n\nconst joinLinks = (strings, renderLinks, queryPrefix, queryKey, delimeter) =>\n _.chain(strings)\n .map((string, i) => (\n \n {renderLinks ? (\n \n {string}{' '}\n \n ) : (\n {string}\n )}\n \n ))\n .reduce((prev, curr, i) => [\n prev,\n \n {`${delimeter}`}\n ,\n curr,\n ])\n .value()\n\nconst PostMeta = ({queryPrefix, date, tags, locations, renderLinks}) => (\n \n \n {/* */}\n \n \n {tags &&\n tags.length && (\n \n {/* */}\n {joinLinks(tags, renderLinks, queryPrefix, 'tag', '·')}\n \n )}\n {locations &&\n locations.length && (\n \n {/* */}\n {locations.join(' · ')}\n \n )}\n \n)\n\nPostMeta.propTypes = {\n date: string.isRequired,\n tags: arrayOf(string),\n locations: arrayOf(string),\n queryPrefix: string.isRequired,\n}\n\nexport default PostMeta\n","import React from 'react'\nimport {string, shape, any} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport CardHover from '../components/card-hover'\nimport Image from '../components/image'\nimport {LinkStyled, Strong} from '../components/common'\n\n/*\n * 1. Book preview\n * 2. Podcast Preview\n * 3. Film Preview\n *\n * All of these have some sort of image with a subtitle description\n */\n\nconst MediaPreviewContentWrapper = glamorous.div({\n display: 'flex',\n marginBottom: '2rem',\n flexDirection: 'column',\n flexGrow: 1,\n alignItems: 'center',\n textAlign: 'center',\n})\n\nconst MediaPreviewDescription = glamorous.div({\n marginTop: '0.15rem',\n fontSize: '0.85rem',\n})\n\nconst MediaPreview = ({path, image, title, author}) => {\n return (\n \n \n \n \n {image && }\n \n {title}\n \n \n \n \n \n )\n}\n\nMediaPreview.propTypes = {\n path: string,\n image: shape({\n childImageSharp: shape({\n fixed: any,\n }).isRequired,\n }).isRequired,\n title: string.isRequired,\n author: string.isRequired,\n}\n\nexport default MediaPreview\n","import _ from 'lodash'\nimport React from 'react'\nimport {string, arrayOf} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport {H4, P, LinkStyled} from './common'\nimport Image from '../components/image'\nimport PostMeta from './post-meta'\n\nconst styleTitle = {\n marginBottom: '0.5rem',\n}\nconst styleShort = {\n marginTop: '0.5rem',\n lineHeight: '1.3rem',\n}\n\nconst PreviewImageWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n})\n\nconst PostWrapper = glamorous.div(\n {\n marginLeft: '2rem',\n },\n ({featuredImage}) => {\n const hasPreviewImage = _.has(featuredImage, 'childImageSharp.fixed')\n if (!hasPreviewImage) return {marginLeft: '0rem'}\n }\n)\n\nconst TitleWrapper = glamorous.div({\n marginTop: '0.5rem',\n marginBottom: '1.5rem',\n})\n\nconst PostPreview = ({\n path,\n featuredImage,\n title,\n date,\n tags,\n locations,\n short,\n renderLinks,\n queryPrefix,\n}) => {\n const hasPreviewImage = _.has(featuredImage, 'childImageSharp.fixed')\n return (\n \n \n \n {hasPreviewImage && }\n \n \n

{title}

\n \n
\n {short &&

{short}

}\n
\n
\n \n \n )\n}\n\nPostPreview.propTypes = {\n path: string.isRequired,\n title: string.isRequired,\n date: string.isRequired,\n tags: arrayOf(string),\n locations: arrayOf(string),\n short: string,\n queryPrefix: string.isRequired,\n}\n\nexport default PostPreview\n","import _ from 'lodash'\nimport React from 'react'\nimport {StaticQuery, graphql} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport {mediaMaxWidth, sm} from '../css/themes'\nimport CardHover from './card-hover'\nimport {A, LinkStyled} from './common'\n\nconst SocialWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n [mediaMaxWidth(sm)]: {\n flexDirection: 'column',\n },\n})\n\nconst styleSocialIcons = {\n marginRight: '0.5rem',\n fontSize: '1.2rem',\n}\n\nconst Social = ({data}) => {\n const {\n site: {\n siteMetadata: {profiles},\n },\n } = data\n\n const profilesComponents = _.map(profiles, ({username, url, icon}) => {\n return (\n \n \n \n \n {username}\n \n \n \n )\n })\n\n return {profilesComponents}\n}\n\nconst SocialQuery = () => (\n }\n />\n)\n\nexport default SocialQuery\n"],"sourceRoot":""}