{"version":3,"sources":["webpack:///./src/components/intro.js","webpack:///./src/components/body.js","webpack:///./src/components/featured-image.js","webpack:///./src/components/ingredients.js","webpack:///./src/components/post-links.js","webpack:///./src/templates/recipe-post.js","webpack:///./src/components/title.js"],"names":["Intro","title","date","description","center","Body","props","dangerouslySetInnerHTML","__html","content","FeaturedImage","style","marginBottom","rhythm","fluid","image","childImageSharp","bufferSmall","bufferLarge","IngredientsWrapper","styled","div","colours","mutedPrimary","breakpoints","small","IngredientList","ul","Ingredient","li","ComponentTitle","h3","Ingredients","ingredientsList","components","map","component","Fragment","key","componentTitle","length","componentIngredientObjects","ingredientObject","ingredientDisplay","PostLinks","display","flexWrap","justifyContent","listStyle","padding","previous","to","fields","slug","rel","frontmatter","next","RecipePostTemplate","post","data","markdownRemark","featuredImage","location","pageContext","excerpt","html","Title","TitleElement","h1","extraSpace","scale","large"],"mappings":"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","file":"component---src-templates-recipe-post-js-cfd6fa7ef2b453b03126.js","sourcesContent":["import React from \"react\"\n\nimport Title from \"./title\"\nimport Container from \"./container\"\n\nfunction Intro({ title, date, description }) {\n return (\n \n \n <p>{description}</p>\n <p>{date}</p>\n </Container>\n )\n}\n\nexport default Intro\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport Container from \"./container\"\n\nfunction Body(props) {\n return (\n <Container>\n <h2>Preparation</h2>\n <div dangerouslySetInnerHTML={{ __html: props.content }} />\n <hr />\n </Container>\n )\n}\n\nexport default Body\n","import React from \"react\"\n\nimport Img from \"gatsby-image\"\n\nimport { rhythm } from \"../utils/typography\"\n\nfunction FeaturedImage(props) {\n return (\n <div style={{ marginBottom: rhythm(2) }}>\n <Img fluid={props.image.childImageSharp.fluid} />\n </div>\n )\n}\n\nexport default FeaturedImage\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nimport Container from \"./container\"\n\nimport { rhythm } from \"../utils/typography\"\nimport { colours, breakpoints } from \"../utils/theme\"\n\nconst bufferSmall = rhythm(1.5)\nconst bufferLarge = rhythm(2)\n\n// Media query is to have the ingredients snap to the edges of the screen when the container width can do so.\nconst IngredientsWrapper = styled.div`\n background-color: ${colours.mutedPrimary};\n padding: ${bufferSmall};\n margin: 0 -${bufferSmall};\n @media (min-width: calc(${breakpoints.small} + 4*${bufferSmall})) {\n padding: ${bufferLarge};\n margin: 0;\n }\n`\n\nconst IngredientList = styled.ul`\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst Ingredient = styled.li`\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst ComponentTitle = styled.h3`\n margin-bottom: ${rhythm(0.5)};\n`\n\nfunction Ingredients(props) {\n const ingredientsList = props.components.map(({ component }) => (\n <React.Fragment key={component.componentTitle}>\n {props.components.length > 1 ? (\n <ComponentTitle>{component.componentTitle}</ComponentTitle>\n ) : null}\n <IngredientList>\n {component.componentIngredientObjects.map(({ ingredientObject }) => (\n <Ingredient key={ingredientObject.ingredientDisplay}>\n {ingredientObject.ingredientDisplay}\n </Ingredient>\n ))}\n </IngredientList>\n </React.Fragment>\n ))\n\n return (\n <Container>\n <h2>Ingredients</h2>\n <IngredientsWrapper>{ingredientsList}</IngredientsWrapper>\n </Container>\n )\n}\n\nexport default Ingredients\n","import React from \"react\"\nimport { Link } from \"gatsby\"\n\nimport Container from \"./container\"\n\nfunction PostLinks(props) {\n return (\n <Container>\n <ul\n style={{\n display: `flex`,\n flexWrap: `wrap`,\n justifyContent: `space-between`,\n listStyle: `none`,\n padding: 0,\n }}\n >\n <li>\n {props.previous && (\n <Link to={`recipes${props.previous.fields.slug}`} rel=\"prev\">\n ← {props.previous.frontmatter.title}\n </Link>\n )}\n </li>\n <li>\n {props.next && (\n <Link to={`recipes${props.next.fields.slug}`} rel=\"next\">\n {props.next.frontmatter.title} →\n </Link>\n )}\n </li>\n </ul>\n </Container>\n )\n}\n\nexport default PostLinks\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\n\nimport Layout from \"../components/layout\"\nimport SEO from \"../components/seo\"\nimport Intro from \"../components/intro\"\nimport Body from \"../components/body\"\nimport FeaturedImage from \"../components/featured-image\"\nimport Ingredients from \"../components/ingredients\"\nimport PostLinks from \"../components/post-links\"\n\nfunction RecipePostTemplate(props) {\n const post = props.data.markdownRemark\n const {\n featuredImage,\n components,\n title,\n description,\n date,\n } = post.frontmatter\n const { location } = props\n const { previous, next } = props.pageContext\n\n return (\n <Layout location={location}>\n <SEO title={title} description={description || post.excerpt} />\n <Intro title={title} date={date} description={description} />\n <FeaturedImage image={featuredImage} />\n <Ingredients components={components} />\n <Body content={post.html}></Body>\n <PostLinks previous={previous} next={next} />\n </Layout>\n )\n}\n\nexport default RecipePostTemplate\n\nexport const pageQuery = graphql`\n query RecipePostBySlug($slug: String!) {\n site {\n siteMetadata {\n title\n author\n }\n }\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n excerpt(pruneLength: 160)\n html\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\")\n description\n tags\n components {\n component {\n componentTitle\n componentIngredientObjects {\n ingredientObject {\n ingredientDisplay\n ingredientMachineName\n }\n }\n }\n }\n featuredImage {\n childImageSharp {\n fluid(maxWidth: 2048) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n`\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { rhythm, scale } from \"../utils/typography\"\nimport { breakpoints } from \"../utils/theme\"\n\nfunction Title(props) {\n const TitleElement = styled.h1`\n text-align: center;\n ${props.extraSpace ? `margin-bottom: ${rhythm(2)};` : null}\n @media (min-width: ${breakpoints.small}) {\n ${scale(1.5)}\n }\n @media (min-width: ${breakpoints.large}) {\n ${scale(2)}\n }\n `\n return <TitleElement>{props.title}</TitleElement>\n}\n\nexport default Title\n"],"sourceRoot":""}