@carbonplan/components 11.3.0 → 11.5.0-develop.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dst/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/avatar.js","../src/row.js","../src/column.js","../src/group.js","../src/avatar-group.js","../src/blockquote.js","../src/link.js","../src/utils/get-size-styles.js","../src/button.js","../src/callout.js","../src/caption.js","../src/colorbar.js","../src/colors.js","../src/meta.js","../src/logo.js","../src/menu.js","../src/header.js","../src/monogram.js","../src/footer.js","../src/dimmer.js","../src/gitsha.js","../src/metadata.js","../src/fade-in.js","../src/utils/get-scrollbar-width.js","../src/scrollbar.js","../src/guide.js","../src/settings.js","../src/layout.js","../src/tag.js","../src/filter.js","../src/sidenote.js","../src/input.js","../src/slider.js","../src/table.js","../src/toggle.js","../src/utils/format-date.js","../src/badge.js","../src/custom-404.js","../src/expander.js","../src/figure-caption.js","../src/heading.js","../src/link-group.js","../src/select.js","../src/utils/get-props.js","../src/table-caption.js","../src/tracking.js","../src/tray.js"],"sourcesContent":["import React from 'react'\nimport { Box, Image } from 'theme-ui'\n\nconst Avatar = ({\n color = 'transparent',\n width = '90px',\n maxWidth,\n name,\n github,\n alt,\n src,\n sx,\n ...props\n}) => {\n if (!name && !src && !github) {\n console.warn('must specify either name, github, or src')\n }\n\n let srcProp, altProp\n if (name) {\n srcProp = `https://images.carbonplan.org/team/${name\n .toLowerCase()\n .replace(' ', '-')}.png`\n altProp = alt || name\n } else if (github) {\n srcProp = `https://github.com/${github}.png`\n altProp = alt || github\n } else {\n srcProp = src\n altProp = alt\n }\n\n return (\n <Box\n sx={{\n width: width,\n maxWidth: maxWidth,\n height: 'auto',\n borderRadius: '50%',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n bg: color,\n ...sx,\n }}\n {...props}\n >\n <Image\n alt={altProp}\n src={srcProp}\n sx={{\n opacity: color && color !== 'transparent' ? 0.25 : 1,\n filter:\n color && color !== 'transparent'\n ? 'grayscale(100%) contrast(200%) brightness(100%)'\n : 'none',\n width: '100%',\n borderRadius: '50%',\n display: 'block',\n }}\n />\n </Box>\n )\n}\n\nexport default Avatar\n","import React from 'react'\nimport { Grid } from 'theme-ui'\n\nconst Row = ({ children, sx, columns, gap, ...props }) => {\n const makeArray = (input) => {\n if (!Array.isArray(input)) {\n input = [input, input, input, input]\n }\n if (Array.isArray(input) && ![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d]).flat()\n }\n if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n return input\n }\n\n let columnGap, rowGap\n if (Number.isInteger(gap) || Array.isArray(gap)) {\n gap = makeArray(gap)\n columnGap = gap\n rowGap = gap\n } else {\n columnGap = [4, 5, 5, 6]\n rowGap = [0, 0, 0, 0]\n }\n\n if (Number.isInteger(columns) || Array.isArray(columns)) {\n columns = makeArray(columns)\n } else {\n columns = [6, 8, 12, 12]\n }\n\n return (\n <Grid\n {...props}\n columns={columns}\n sx={{\n columnGap: columnGap,\n rowGap: rowGap,\n ...sx,\n }}\n >\n {children}\n </Grid>\n )\n}\n\nexport default Row\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Column = ({ start, width, dl, dr, children, sx, ...props }) => {\n start = start || 'auto'\n width = width || 'auto'\n\n const makeArray = (input) => {\n if (input && !Array.isArray(input)) {\n input = [input]\n }\n\n if (![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d, d, d, d]).flat()\n } else if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n\n return input\n }\n\n start = makeArray(start)\n width = makeArray(width)\n\n const end = start.map((d, i) => {\n if (d == 'auto') return 'auto'\n return d + width[i]\n })\n\n let ml, mr\n\n if (dl) {\n if (![0.5, 1].includes(dl)) {\n throw new Error('dl must be 0.5 or 1')\n }\n if (dl === 0.5) {\n ml = ['-12px', -3, -3, -4]\n }\n if (dl === 1) {\n ml = [-4, -5, -5, -6]\n }\n }\n\n if (dr) {\n if (![0.5, 1].includes(dr)) {\n throw new Error('dr must be 0.5 or 1')\n }\n if (dr === 0.5) {\n mr = ['-12px', -3, -3, -4]\n }\n if (dr === 1) {\n mr = [-4, -5, -5, -6]\n }\n }\n\n return (\n <Box\n {...props}\n sx={{\n gridColumnStart: start,\n gridColumnEnd: end,\n ml: ml,\n mr: mr,\n ...sx,\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default Column\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\nconst Group = ({ children, direction = 'vertical', spacing = 'md', sx }) => {\n let marginValue\n if (typeof spacing === 'string' && sizes.hasOwnProperty(spacing)) {\n marginValue = sizes[spacing]\n } else {\n marginValue = spacing\n }\n\n if (!['horizontal', 'vertical'].includes(direction)) {\n throw new Error(\n 'Invalid direction value. Must be either horizontal or vertical'\n )\n }\n\n const marginProperty = direction === 'vertical' ? 'mb' : 'mr'\n const additionalStyles =\n direction === 'horizontal' ? { display: 'inline-block' } : {}\n return (\n <Box sx={sx}>\n {React.Children.map(children, (child, i) => {\n return (\n <Box\n sx={{\n [marginProperty]: i < children.length - 1 ? marginValue : 0,\n ...additionalStyles,\n }}\n >\n {child}\n </Box>\n )\n })}\n </Box>\n )\n}\n\nexport default Group\n","import React from 'react'\nimport Avatar from './avatar'\nimport Row from './row'\nimport Column from './column'\nimport Group from './group'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\n}) => {\n if (members.length > fixedCount) {\n throw Error(\n `cannot render '${members.length}' avatars with a fixed count of '${fixedCount}'`\n )\n }\n\n let gap\n if (sizes.hasOwnProperty(spacing)) {\n gap = sizes[spacing]\n } else {\n gap = spacing\n }\n\n let start = (idx) => 'auto'\n if (align) {\n if (!Array.isArray(align)) {\n align = [align]\n }\n start = (idx) =>\n align.map((d) => {\n if (d === 'left') {\n return 'auto'\n } else if (d === 'right') {\n const offset = Math.max(1, fixedCount - members.length + 1)\n return offset + idx\n } else {\n throw Error(`alignment '${align}' not recognized`)\n }\n })\n }\n\n return (\n <>\n {fixedCount && (\n <Row columns={fixedCount} gap={gap} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Column key={idx} start={start(idx)}>\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n </Column>\n ))}\n </Row>\n )}\n {!fixedCount && (\n <Group direction={direction} spacing={spacing} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Avatar key={idx} {...props} width={width} maxWidth={maxWidth} />\n ))}\n </Group>\n )}\n </>\n )\n}\n\nexport default AvatarGroup\n","import React, { cloneElement, Children } from 'react'\nimport { Box } from 'theme-ui'\n\nconst specialChars = ['“', '\"', \"'\", '‘']\n\nconst Blockquote = ({ children }) => {\n let firstChar = ''\n\n if (\n Array.isArray(children) &&\n children[0].props &&\n typeof children[0].props.children === 'string'\n ) {\n firstChar = children[0].props.children.slice(0, 1)\n children = Children.map(children, (d, i) => {\n if (i == 0) {\n return cloneElement(d, { children: d.props.children.slice(1) })\n } else return d\n })\n } else if (children.props && typeof children.props.children === 'string') {\n firstChar = children.props.children.slice(0, 1)\n children = cloneElement(children, {\n children: children.props.children.slice(1),\n })\n } else if (typeof children === 'string') {\n firstChar = children.slice(0, 1)\n children = children.slice(1)\n }\n\n return (\n <Box variant='styles.blockquote'>\n {specialChars.includes(firstChar) && (\n <Box as='span' sx={{ position: 'absolute', ml: '-0.4em' }}>\n {firstChar}\n </Box>\n )}\n {children}\n </Box>\n )\n}\n\nexport default Blockquote\n","import React, { forwardRef } from 'react'\nimport { Link as ThemedLink } from 'theme-ui'\nimport { default as NextLink } from 'next/link'\n\nconst event = ({ action, category, label, value }) => {\n if (typeof window.gtag !== 'function') {\n console.warn(`Missing window.gtag, skipping analytics action: '${action}'.`)\n return\n }\n\n window.gtag('event', action, {\n event_category: category,\n event_label: label,\n value: value,\n })\n}\n\nconst Link = (\n { href, children, internal = false, tracking = false, ...props },\n ref\n) => {\n if (internal || (href && href.startsWith('/'))) {\n return (\n <NextLink href={href} passHref>\n <ThemedLink ref={ref} {...props}>\n {children}\n </ThemedLink>\n </NextLink>\n )\n } else if (tracking) {\n let action\n let category\n if (href && href.includes('pdf')) {\n action = 'PDF'\n category = 'download'\n } else {\n action = 'website'\n category = 'external'\n }\n const track = (e) => {\n event({\n action: action,\n category: category,\n label: href,\n })\n }\n return (\n <ThemedLink\n ref={ref}\n onClick={track}\n onContextMenu={track}\n href={href}\n {...props}\n >\n {children}\n </ThemedLink>\n )\n } else {\n return (\n <ThemedLink ref={ref} href={href} {...props}>\n {children}\n </ThemedLink>\n )\n }\n}\n\nexport default forwardRef(Link)\n","const getSizeStyles = (size) => {\n if (!['xs', 'sm', 'md', 'lg', 'xl'].includes(size)) {\n throw new Error('Size must be xs, sm, md, lg, or xl')\n }\n\n let fontSize, fontFamily, letterSpacing, lineHeight\n\n if (size === 'xs') {\n fontSize = [2, 2, 2, 3]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'sm') {\n fontSize = [3, 3, 3, 4]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'md') {\n fontSize = [4, 4, 4, 5]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'lg') {\n fontSize = [5, 5, 6, 7]\n fontFamily = 'heading'\n letterSpacing = 'heading'\n lineHeight = [1.2, 1.2, 1.25, 1.25]\n }\n\n if (size === 'xl') {\n fontSize = [6, 7, 8, 9]\n fontFamily = 'heading'\n letterSpacing = 'heading'\n lineHeight = [1.25]\n }\n\n return { fontSize, fontFamily, letterSpacing, lineHeight }\n}\n\nexport default getSizeStyles\n","import React, { forwardRef, cloneElement } from 'react'\nimport { Box } from 'theme-ui'\nimport Link from './link'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Button = (\n {\n size = 'sm',\n prefix,\n suffix,\n inverted,\n sx,\n children,\n align,\n href,\n internal,\n tracking,\n ...props\n },\n ref\n) => {\n if (!['xs', 'sm', 'md', 'lg', 'xl'].includes(size)) {\n throw new Error('Size must be xs, sm, md, lg, or xl')\n }\n\n let offset, margin, top, height, width, strokeWidth\n\n const { color, ...sxProp } = sx || {}\n\n const baseColor = color || (inverted ? 'secondary' : 'primary')\n const hoverColor = color ? 'primary' : inverted ? 'primary' : 'secondary'\n\n if (size === 'xs') {\n margin = ['6px', '6px', '6px', '6px']\n height = [12, 12, 12, 13]\n width = [12, 12, 12, 13]\n strokeWidth = [1.5, 1.5, 1.5, 1.5]\n offset = { transform: 'translateY(0.25px)' }\n }\n\n if (size === 'sm') {\n margin = ['7px', '7px', '7px', '7px']\n height = [13, 13, 13, 18]\n width = [13, 13, 13, 18]\n strokeWidth = [1.5, 1.5, 1.5, 2]\n offset = { transform: 'translateY(0.25px)' }\n }\n\n if (size === 'md') {\n margin = ['8px', '8px', '8px', '8px']\n height = [18, 18, 18, 24]\n width = [18, 18, 18, 24]\n strokeWidth = [2, 2, 2, 3]\n }\n\n if (size === 'lg') {\n margin = ['10px', '10px', '12px', '16px']\n height = [24, 24, 34, 46]\n width = [24, 24, 34, 46]\n strokeWidth = [3, 3, 4, 5]\n }\n\n if (size === 'xl') {\n margin = ['12px', '16px', '18px', '20px']\n height = [34, 46, 56, 68]\n width = [34, 46, 56, 68]\n strokeWidth = [4, 5, 6, 7]\n }\n\n let prefixHover,\n suffixHover,\n prefixAlign,\n suffixAlign,\n prefixOffset,\n suffixOffset\n\n if (align) {\n prefixAlign = align\n suffixAlign = align\n } else {\n if (prefix && suffix) {\n prefixAlign = 'initial'\n suffixAlign = 'initial'\n } else if (prefix) {\n prefixAlign = 'initial'\n } else if (suffix) {\n suffixAlign = 'middle'\n }\n }\n\n if (prefixAlign === 'middle') {\n prefixOffset = {}\n } else {\n prefixOffset = offset\n }\n\n if (suffixAlign === 'middle') {\n suffixOffset = {}\n } else {\n suffixOffset = offset\n }\n\n if (prefix) {\n prefixHover = {\n '&:hover > #prefix-span > #prefix': {\n color: hoverColor,\n ...prefix.type.hover,\n },\n }\n prefix = cloneElement(prefix, {\n id: 'prefix',\n sx: {\n position: 'relative',\n height: height,\n width: width,\n mr: children ? margin : [0],\n strokeWidth: strokeWidth,\n verticalAlign: prefixAlign,\n transition: 'color 0.15s, transform 0.15s',\n ...prefix.props.sx,\n },\n })\n }\n\n if (suffix) {\n suffixHover = {\n '&:hover > #suffix-span >#suffix': {\n color: hoverColor,\n ...suffix.type.hover,\n },\n }\n suffix = cloneElement(suffix, {\n id: 'suffix',\n sx: {\n height: height,\n width: width,\n ml: children ? margin : [0],\n strokeWidth: strokeWidth,\n verticalAlign: suffixAlign,\n transition: 'color 0.15s, transform 0.15s',\n ...suffix.props.sx,\n },\n })\n }\n\n let sizeStyles = getSizeStyles(size)\n\n const style = {\n ...sizeStyles,\n lineHeight: 1.05,\n border: 'none',\n background: 'transparent',\n display: 'block',\n color: baseColor,\n padding: [0],\n textAlign: 'left',\n cursor: 'pointer',\n width: 'fit-content',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n color: hoverColor,\n },\n ...suffixHover,\n ...prefixHover,\n },\n ...sxProp,\n }\n\n const Inner = (\n <>\n <Box\n as='span'\n id='prefix-span'\n sx={{ display: 'inline-block', ...prefixOffset }}\n >\n {prefix && prefix}\n </Box>\n <Box as='span' sx={{ transition: 'color 0.15s' }}>\n {children}\n </Box>\n <Box\n as='span'\n id='suffix-span'\n sx={{ display: 'inline-block', ...suffixOffset }}\n >\n {suffix && suffix}\n </Box>\n </>\n )\n\n if (href) {\n return (\n <Link\n ref={ref}\n href={href}\n internal={internal}\n tracking={tracking}\n sx={{\n ...style,\n textDecoration: 'none',\n }}\n {...props}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box ref={ref} as='button' sx={style} {...props}>\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef(Button)\n","import React, { forwardRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Link from './link'\n\nconst Callout = (\n { label, children, inverted, color, href, internal, tracking, sx, ...props },\n ref\n) => {\n const baseColor = color || (inverted ? 'secondary' : 'primary')\n const hoverColor = color ? 'primary' : inverted ? 'primary' : 'secondary'\n\n const style = {\n border: 'none',\n padding: [0],\n fontSize: [3, 3, 3, 4],\n color: baseColor,\n background: 'transparent',\n textDecoration: 'none',\n fontFamily: 'body',\n lineHeight: 'h3',\n letterSpacing: 'body',\n width: 'fit-content',\n cursor: 'pointer',\n textAlign: 'left',\n mb: [1],\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover > #container > #arrow': {\n transform: 'rotate(45deg)',\n fill: hoverColor,\n },\n '&:hover': {\n color: hoverColor,\n },\n },\n ...sx,\n }\n\n const Inner = (\n <>\n <Box sx={{ transition: '0.15s', letterSpacing: 'body', pb: ['6px'] }}>\n {children}\n </Box>\n <Box\n sx={{\n transition: '0.15s',\n display: 'inline-block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n }}\n >\n {label}\n </Box>\n <Box\n as='span'\n id='container'\n sx={{\n ml: [2],\n display: 'inline-block',\n }}\n >\n <Arrow\n id='arrow'\n sx={{\n transition: 'fill 0.15s, transform 0.15s',\n position: 'relative',\n top: ['2px'],\n color: baseColor,\n height: [15, 15, 15, 17],\n width: [15, 15, 15, 17],\n }}\n />\n </Box>\n </>\n )\n\n if (href) {\n return (\n <Link\n ref={ref}\n href={href}\n internal={internal}\n tracking={tracking}\n sx={style}\n {...props}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box ref={ref} as='button' sx={style} {...props}>\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef(Callout)\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Caption = ({ number, children, label = 'figure' }) => {\n return (\n <Box\n as='figcaption'\n sx={{\n color: 'secondary',\n mt: [3, 3, 3, 4],\n mb: [6, 6, 6, 7],\n fontSize: [2, 2, 2, 3],\n }}\n >\n {number && (\n <>\n <Box\n sx={{\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n display: 'inline-block',\n }}\n >\n {label} {number}\n </Box>{' '}\n <Box sx={{ display: 'inline-block', mx: [1], pr: [1] }}>/</Box>\n </>\n )}\n {children}\n </Box>\n )\n}\n\nexport default Caption\n","import React, { useState, useEffect, useRef } from 'react'\nimport { Box, Flex } from 'theme-ui'\n\nconst styles = {\n clim: (setClim) => {\n return {\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary} !important`\n : 'unset',\n },\n },\n '&:focus': {\n outline: 'none',\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary} !important`\n : 'unset',\n },\n transition: 'border 0.15s',\n userSelect: setClim ? 'none !important' : 'unset',\n width: 'fit-content',\n minWidth: 'fit-content',\n }\n },\n}\n\nconst DIMENSIONS = {\n width: ['10px', '16px', '16px', '17px'],\n height: ['80px', '110px', '110px', '130px'],\n}\n\nconst Gradient = ({ colormap, discrete, horizontal, width, height }) => {\n const step = (1 / colormap.length) * 100\n const values = colormap.map((d, i) => {\n return `rgb(${d}) ${i * step}% ${\n discrete && i < colormap.length - 1 ? `${(i + 1) * step}%` : ''\n }`\n })\n\n const css = `linear-gradient(to ${\n horizontal ? 'right' : 'top'\n }, ${values.join(',')})`\n\n return (\n <Box\n sx={{\n ...(horizontal\n ? {\n width: width || DIMENSIONS.height,\n height: height || DIMENSIONS.width,\n }\n : {\n width: width || DIMENSIONS.width,\n minHeight: height || DIMENSIONS.height,\n }),\n mt: horizontal ? ['1px', '1px', '1px', 0] : 0,\n border: ({ colors }) => `solid 1px ${colors.hinted}`,\n background: css,\n }}\n />\n )\n}\n\nconst Label = ({ label, units, horizontal }) => (\n <Box\n sx={\n !horizontal && {\n width: ['13px', '17px', '17px', '19px'],\n alignSelf: 'flex-end',\n }\n }\n >\n <Box\n sx={{\n mb: horizontal ? 0 : ['-4px', '-4px', '-4px', '-3px'],\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\n ...(horizontal\n ? {}\n : {\n writingMode: 'vertical-rl',\n transform: 'rotate(180deg)',\n whiteSpace: 'nowrap',\n display: 'inline-block',\n overflow: 'visible',\n }),\n }}\n >\n {label}{' '}\n <Box\n as='span'\n sx={{\n textTransform: 'none',\n color: 'secondary',\n display: 'inline-block',\n }}\n >\n {units}\n </Box>\n </Box>\n </Box>\n)\n\nconst Colorbar = ({\n colormap,\n label,\n clim,\n setClim,\n setClimStep = 1,\n discrete,\n units,\n width,\n height,\n format = (d) => d,\n horizontal = false,\n bottom = false,\n sx,\n sxClim,\n ...props\n}) => {\n if (!Array.isArray(colormap)) {\n throw new Error(`expected array for colormap, got '${colormap}'.`)\n }\n\n const climRef = [useRef(), useRef()]\n const [climMinDragging, setClimMinDragging] = useState(false)\n const [climMaxDragging, setClimMaxDragging] = useState(false)\n\n let x,\n y,\n dx,\n dy = 0\n let id = null\n let init = [0, 0]\n let scale = setClimStep\n\n const draggingFunction = (e) => {\n if (id === 'min' && !climMinDragging) setClimMinDragging(true)\n if (id === 'max' && !climMaxDragging) setClimMaxDragging(true)\n dx = e.pageX - x\n dy = e.pageY - y\n if (horizontal) {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] + dx * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] + dx * scale, init[0])])\n } else {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] - dy * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] - dy * scale, init[0])])\n }\n }\n\n const handleMouseDown = (e) => {\n y = e.pageY\n x = e.pageX\n id = e.target.id\n init = clim\n\n document.body.setAttribute(\n 'style',\n horizontal\n ? 'cursor: ew-resize !important'\n : 'cursor: ns-resize !important'\n )\n document.addEventListener('mousemove', draggingFunction)\n const updater = () => {\n document.body.setAttribute('style', 'cursor: unset')\n document.removeEventListener('mousemove', draggingFunction)\n window.removeEventListener('mouseup', updater)\n if (id === 'min') setClimMinDragging(false)\n if (id === 'max') setClimMaxDragging(false)\n }\n window.addEventListener('mouseup', updater)\n }\n\n const increment = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] + scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] + scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n const decrement = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] - scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] - scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n useEffect(() => {\n const listener = (e) => {\n if (\n ['ArrowUp', 'ArrowRight'].includes(e.code) ||\n ['ArrowUp', 'ArrowRight'].includes(e.key)\n ) {\n increment(e)\n }\n if (\n ['ArrowDown', 'ArrowLeft'].includes(e.code) ||\n ['ArrowDown', 'ArrowLeft'].includes(e.key)\n ) {\n decrement(e)\n }\n }\n window.addEventListener('keydown', listener)\n\n return () => {\n window.removeEventListener('keydown', listener)\n }\n }, [clim])\n\n const ClimMin = () => {\n return (\n <Box\n id='min'\n ref={climRef[0]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: label\n ? horizontal\n ? bottom\n ? '0px'\n : '10px'\n : ['2px', '1px', '1px', '2px']\n : 0,\n mr: horizontal ? ['2px', '1px', '1px', '2px'] : 0,\n mb: horizontal ? 0 : ['-2px', '-2px', '-2px', '-3px'],\n borderBottom: setClim\n ? climMinDragging\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : ({ colors }) => `solid 1px ${colors.secondary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[0].current.focus()}\n >\n {format(clim[0])}\n </Box>\n )\n }\n\n const ClimMax = () => {\n return (\n <Box\n id='max'\n ref={climRef[1]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: horizontal\n ? ['2px', '1px', '1px', '2px']\n : ['2px', '1px', '1px', '2px'],\n mt: horizontal ? 0 : ['-2px', '-3px', '-3px', '-3px'],\n borderBottom: setClim\n ? climMaxDragging\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : ({ colors }) => `solid 1px ${colors.secondary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[1].current.focus()}\n >\n {format(clim[1])}\n </Box>\n )\n }\n\n return (\n <Flex\n {...props}\n sx={{\n flexDirection: 'row',\n alignItems: 'start',\n justifyContent: 'flex-start',\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n ...sx,\n }}\n >\n {label && <Label label={label} units={units} horizontal={horizontal} />}\n <Flex\n sx={{\n flexGrow: horizontal ? 1 : 'unset',\n flexDirection: 'column',\n ml: bottom && label ? '4px' : '0px',\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n <Flex\n sx={{\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n {horizontal && clim && !bottom && <ClimMin />}\n <Gradient\n colormap={colormap}\n horizontal={horizontal}\n discrete={discrete}\n width={width}\n height={height}\n />\n {horizontal && clim && !bottom && <ClimMax />}\n </Flex>\n {horizontal && clim && bottom && (\n <Flex sx={{ justifyContent: 'space-between' }}>\n <ClimMin />\n <ClimMax />\n </Flex>\n )}\n </Flex>\n\n {!horizontal && (\n <Flex\n sx={{\n flexDirection: 'column-reverse',\n justifyContent: 'space-between',\n height: height || DIMENSIONS.height,\n }}\n >\n {clim && <ClimMin />}\n {clim && <ClimMax />}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default Colorbar\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst InlineColor = ({ sx, color, children, ...props }) => {\n return (\n <Box\n as='span'\n sx={{ display: 'inline-block', color: color, ...sx }}\n {...props}\n >\n {children}\n </Box>\n )\n}\n\nconst Colors = {}\n\nColors.Primary = (props) => {\n return <InlineColor color='primary' {...props} />\n}\n\nColors.Secondary = (props) => {\n return <InlineColor color='secondary' {...props} />\n}\n\nColors.Background = (props) => {\n return <InlineColor color='background' {...props} />\n}\n\nColors.Red = (props) => {\n return <InlineColor color='red' {...props} />\n}\n\nColors.Orange = (props) => {\n return <InlineColor color='orange' {...props} />\n}\n\nColors.Yellow = (props) => {\n return <InlineColor color='yellow' {...props} />\n}\n\nColors.Green = (props) => {\n return <InlineColor color='green' {...props} />\n}\n\nColors.Teal = (props) => {\n return <InlineColor color='teal' {...props} />\n}\n\nColors.Blue = (props) => {\n return <InlineColor color='blue' {...props} />\n}\n\nColors.Purple = (props) => {\n return <InlineColor color='purple' {...props} />\n}\n\nColors.Pink = (props) => {\n return <InlineColor color='pink' {...props} />\n}\n\nColors.Grey = (props) => {\n return <InlineColor color='grey' {...props} />\n}\n\nexport default Colors\n","import React from 'react'\nimport Head from 'next/head'\n\nconst Meta = ({ title, description, card }) => {\n if (!description) {\n console.warn(\n 'a custom description should be used for search engine optimization'\n )\n }\n if (!title) {\n console.warn('a custom title should be used for search engine optimization')\n }\n const titleProp = title || 'CarbonPlan'\n const descriptionProp =\n description ||\n 'Improving the transparency and scientific integrity of carbon removal and climate solutions through open data and tools.'\n const cardProp = card || 'https://images.carbonplan.org/social/homepage.png'\n\n return (\n <Head>\n <title>{titleProp}</title>\n <meta name='description' content={descriptionProp} />\n <meta name='viewport' content='initial-scale=1.0, width=device-width' />\n <link\n rel='icon'\n type='image/svg+xml'\n href='https://images.carbonplan.org/favicon.svg'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-medium-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-mono-11-pitch-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-faux-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link rel='manifest' href='https://images.carbonplan.org/manifest.json' />\n <meta name='theme-color' content='#1b1e23' />\n <link\n rel='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\n <link\n rel='mask-icon'\n href='https://images.carbonplan.org/safari-pinned-tab.svg'\n color='#000000'\n />\n <link\n rel='apple-touch-icon'\n sizes='180x180'\n href='https://images.carbonplan.org/apple-touch-icon.png'\n />\n <meta name='msapplication-TileColor' content='#1b1e23' />\n <meta\n name='msapplication-TileImage'\n content='https://images.carbonplan.org/mstile-144x144.png'\n />\n <meta\n name='msapplication-config'\n content='https://images.carbonplan.org/browserconfig.xml'\n />\n <meta property='og:title' content={titleProp} />\n <meta property='og:description' content={descriptionProp} />\n <meta property='og:image' content={cardProp} />\n <meta property='og:url' content='https://carbonplan.org' />\n <meta name='twitter:title' content={titleProp} />\n <meta name='twitter:description' content={descriptionProp} />\n <meta name='twitter:image' content={cardProp} />\n <meta name='twitter:card' content='summary_large_image' />\n </Head>\n )\n}\n\nexport default Meta\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Logo = ({ ...props }) => {\n return (\n <Box\n as='svg'\n width='150'\n fill='currentColor'\n stroke='none'\n viewBox='0 0 151.1 28.8'\n {...props}\n >\n <g>\n <g>\n <path\n d='M9.7,20.1c-1.3-1.4-2-3.1-2-5.2c0-2.1,0.7-3.9,2-5.2c1.3-1.4,3-2,5.1-2c1.7,0,3.1,0.4,4.3,1.3\n c1.1,0.9,1.8,2.1,2.1,3.5c0,0.1,0,0.2,0,0.3s-0.1,0.2-0.2,0.2h-2.3c-0.2,0-0.3-0.1-0.4-0.2c-0.3-0.8-0.7-1.4-1.3-1.8\n c-0.6-0.4-1.4-0.6-2.2-0.6c-1.3,0-2.3,0.4-3,1.2c-0.8,0.8-1.1,1.9-1.1,3.4c0,1.5,0.4,2.6,1.1,3.4c0.8,0.8,1.8,1.2,3,1.2\n c0.8,0,1.6-0.2,2.2-0.6c0.6-0.4,1.1-1,1.3-1.8c0.1-0.2,0.2-0.2,0.4-0.3H21c0.1,0,0.2,0.1,0.2,0.2c0,0.1,0,0.2,0,0.3\n c-0.3,1.4-1,2.6-2.1,3.5c-1.1,0.9-2.5,1.3-4.3,1.3C12.7,22.1,11,21.4,9.7,20.1z'\n />\n </g>\n <g>\n <path\n d='M22.5,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1C30.6,7.6,32,8.1,33,9c1,0.9,1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C23,20.1,22.5,19,22.5,17.6z M25.4,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C25.7,16.3,25.4,16.8,25.4,17.5z'\n />\n </g>\n <g>\n <path\n d='M37,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.1c1-1.1,2.3-1.6,3.7-1.6\n c0.8,0,1.7,0.1,2.5,0.4c0.2,0.1,0.3,0.3,0.3,0.5v2.2c0,0.2-0.1,0.3-0.2,0.3c0,0-0.1,0-0.2-0.1c-1.1-0.5-2-0.8-2.9-0.8\n c-0.9,0-1.7,0.4-2.3,1.1c-0.6,0.7-0.9,1.7-0.9,3v7.3c0,0.2-0.1,0.3-0.3,0.3h-2.2C37.1,21.8,37,21.7,37,21.6z'\n />\n </g>\n <g>\n <path\n d='M47.6,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3H50c0.2,0,0.3,0.1,0.3,0.3v6.5c1.3-1.1,2.7-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2c1.1,1.3,1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.8,0-3.2-0.5-4.3-1.6v1\n c0,0.2-0.1,0.3-0.3,0.3h-2.2C47.7,21.8,47.6,21.7,47.6,21.6z M51.2,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3\n s1.7,1.3,2.9,1.3c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3\n C52.9,10.2,51.9,10.7,51.2,11.5z'\n />\n </g>\n <g>\n <path\n d='M64.3,20.1c-1.4-1.4-2.1-3.1-2.1-5.2c0-2.1,0.7-3.9,2.1-5.2c1.4-1.4,3.1-2,5.2-2c2.1,0,3.8,0.7,5.2,2\n c1.4,1.4,2.1,3.1,2.1,5.2c0,2.1-0.7,3.9-2.1,5.2c-1.4,1.4-3.1,2-5.2,2C67.4,22.1,65.7,21.4,64.3,20.1z M66.4,11.5\n c-0.8,0.8-1.2,2-1.2,3.4c0,1.4,0.4,2.5,1.2,3.4s1.9,1.3,3.1,1.3c1.3,0,2.3-0.4,3.1-1.3c0.8-0.8,1.2-2,1.2-3.4\n c0-1.4-0.4-2.5-1.2-3.4c-0.8-0.8-1.9-1.3-3.1-1.3C68.2,10.2,67.2,10.7,66.4,11.5z'\n />\n </g>\n <g>\n <path\n d='M78.7,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C78.7,21.8,78.7,21.7,78.7,21.6z'\n />\n </g>\n <g>\n <path\n d='M101.7,27.1V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1c1.1-1.1,2.5-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2s1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.5,0-3-0.5-4.3-1.6v6.6c0,0.2-0.1,0.3-0.3,0.3\n H102C101.8,27.3,101.7,27.2,101.7,27.1z M105.3,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3s1.7,1.3,2.9,1.3\n c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3C107,10.2,106,10.7,105.3,11.5z'\n />\n </g>\n <g>\n <path\n d='M117.2,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v18.9c0,0.2-0.1,0.3-0.3,0.3h-2.2\n C117.3,21.8,117.2,21.7,117.2,21.6z'\n />\n </g>\n <g>\n <path\n d='M122,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1c1.7,0,3.1,0.5,4.2,1.4s1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C122.5,20.1,122,19,122,17.6z M124.9,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C125.2,16.3,124.9,16.8,124.9,17.5z'\n />\n </g>\n <g>\n <path\n d='M136.9,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C137,21.8,136.9,21.7,136.9,21.6z'\n />\n </g>\n <path\n d='M97.6,14.9c0,4.2-0.6,8.3-1.6,12.3c0,0.1-0.1,0.2-0.2,0.2h-2.4c-0.1,0-0.2-0.1-0.2-0.3c1.1-3.9,1.7-8,1.7-12.2\n s-0.6-8.3-1.7-12.2c0-0.1,0.1-0.3,0.2-0.3l2.4,0c0.1,0,0.2,0.1,0.2,0.2C97.1,6.5,97.6,10.6,97.6,14.9z'\n />\n <path\n d='M1.4,14.9C1.4,10.6,2,6.5,3,2.6c0-0.1,0.1-0.2,0.2-0.2l2.4,0c0.1,0,0.2,0.1,0.2,0.3c-1.1,3.9-1.7,8-1.7,12.2\n s0.6,8.3,1.7,12.2c0,0.1-0.1,0.3-0.2,0.3H3.3c-0.1,0-0.2-0.1-0.2-0.2C2,23.2,1.4,19.1,1.4,14.9z'\n />\n </g>\n </Box>\n )\n}\n\nexport default Logo\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Menu = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='52' y1='29.9' x2='16' y2='29.9' />\n <line x1='52' y1='6.1' x2='16' y2='6.1' />\n <line x1='52' y1='18' x2='16' y2='18' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Menu\n","import React, { useState } from 'react'\nimport { default as NextLink } from 'next/link'\nimport { Box, Flex, Container, Link } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Logo from './logo'\nimport Row from './row'\nimport Column from './column'\nimport Menu from './menu'\n\nconst sx = {\n link: (current, label, first = false) => {\n return {\n width: 'auto',\n color: current === label ? 'secondary' : 'text',\n fontSize: [6, 6, 7, 8],\n fontFamily: 'heading',\n letterSpacing: 'heading',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderTopWidth: first ? '1px' : '0px',\n py: [3, 3, 4, 5],\n textDecoration: 'none',\n display: 'block',\n position: 'relative',\n transition: 'color 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover > #arrow': {\n opacity: 1,\n },\n },\n '&:hover': {\n color: current == label ? 'secondary' : 'text',\n },\n }\n },\n}\n\nconst links = [\n { url: 'about', display: 'About' },\n { url: 'research', display: 'Research' },\n { url: 'blog', display: 'Blog' },\n { url: 'press', display: 'Press' },\n]\n\nconst HoverArrow = () => {\n return (\n <Arrow\n id='arrow'\n sx={{\n pointerEvents: 'none',\n display: 'inline-block',\n position: 'absolute',\n left: ['-60px', '-68px', '-80px', '-104px'],\n top: ['32px', '32px', '46px', '62px'],\n opacity: 0,\n transition: 'opacity 0.2s ease-out',\n transform: 'rotate(45deg)',\n width: [36, 36, 48, 56],\n height: [36, 36, 48, 56],\n }}\n />\n )\n}\n\nconst Nav = ({ link, mode, nav, first, setExpanded }) => {\n const { url, display } = link\n const href = mode === 'remote' ? 'https://carbonplan.org/' + url : '/' + url\n\n if (mode === 'homepage' || (mode === 'local' && nav === url)) {\n return (\n <NextLink href={href} passHref>\n <Link\n onClick={() => {\n if (nav === url) setExpanded(false)\n }}\n sx={sx.link(nav, url, first)}\n >\n <HoverArrow />\n {display}\n </Link>\n </NextLink>\n )\n } else {\n return (\n <Link href={href} sx={sx.link(nav, url, first)}>\n <HoverArrow />\n {display}\n </Link>\n )\n }\n}\n\nconst NavGroup = ({ links, nav, mode, setExpanded }) => {\n return links.map((d, i) => {\n return (\n <Nav\n key={i}\n link={d}\n mode={mode}\n nav={nav}\n first={i === 0}\n setExpanded={setExpanded}\n />\n )\n })\n}\n\nconst Header = ({ status, mode, nav, menuItems }) => {\n const [expanded, setExpanded] = useState(false)\n\n const toggle = (e) => {\n setExpanded(!expanded)\n }\n\n return (\n <Row\n sx={{\n pt: ['12px'],\n pb: [3],\n }}\n >\n <Column start={[1]} width={[2]}>\n <Box\n sx={{ pointerEvents: 'all', display: 'block', width: 'fit-content' }}\n >\n {(mode == 'homepage' || mode == 'local') && (\n <NextLink href='/' passHref>\n <Link\n aria-label='CarbonPlan Homepage'\n sx={{\n display: 'block',\n }}\n >\n <Logo\n id='logo'\n sx={{\n cursor: 'pointer',\n color: 'primary',\n }}\n />\n </Link>\n </NextLink>\n )}\n {(mode == null || mode == 'remote') && (\n <Link\n href='https://carbonplan.org'\n aria-label='CarbonPlan Homepage'\n sx={{ display: 'block' }}\n >\n <Logo sx={{ cursor: 'pointer', color: 'primary' }} />\n </Link>\n )}\n </Box>\n </Column>\n <Column\n start={[4, 9]}\n width={[2, 2]}\n dr={1}\n sx={{\n display: [status ? 'flex' : 'none', 'flex', 'flex', 'flex'],\n alignItems: 'center',\n }}\n >\n <Box\n sx={{\n fontSize: [1, 2, 3],\n position: 'relative',\n top: ['-2px', '-3px', '-3px'],\n }}\n >\n {status ? `(${status})` : ''}\n </Box>\n </Column>\n <Column\n start={[status ? 6 : 4, 6, 11, 11]}\n width={[status ? 1 : 3, 3, 2, 2]}\n sx={{ zIndex: 5000 }}\n >\n <Flex sx={{ pointerEvents: 'all', justifyContent: 'flex-end' }}>\n <Box\n sx={{\n display: [status ? 'none' : 'flex', 'flex', 'flex', 'flex'],\n mr: '18px',\n gap: '18px',\n opacity: expanded ? 0 : 1,\n transition: 'opacity 0.15s',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n {menuItems}\n </Box>\n <Menu\n sx={{\n flexShrink: 0,\n mr: ['-2px'],\n }}\n value={expanded}\n onClick={toggle}\n />\n </Flex>\n </Column>\n <Box\n sx={{\n opacity: expanded ? 1 : 0,\n pointerEvents: expanded ? 'all' : 'none',\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n minWidth: '0px',\n maxHeight: '100vh',\n width: '100vw',\n backgroundColor: 'background',\n zIndex: 4000,\n pt: ['79px'],\n transition: 'opacity 0.25s',\n }}\n >\n <Container>\n <Row>\n <Column start={[2, 4, 7, 7]} width={[5, 4, 5, 5]}>\n <Box\n as='nav'\n sx={{\n display: expanded ? 'inherit' : 'none',\n mt: [5, 5, 5, 6],\n }}\n >\n <NavGroup\n links={links}\n nav={nav}\n mode={mode}\n setExpanded={setExpanded}\n />\n </Box>\n </Column>\n </Row>\n </Container>\n </Box>\n </Row>\n )\n}\n\nexport default Header\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Monogram = ({ ...props }) => {\n return (\n <Box\n as='svg'\n width='80'\n stroke='none'\n fill='currentColor'\n viewBox='0 0 32 32'\n {...props}\n >\n <path d='M21.9395,14.9395 L17.5005,19.3785 L17.5005,7.0005 L14.5005,7.0005 L14.5005,19.3785 L10.0605,14.9395 L7.9395,17.0605 L14.9395,24.0605 C15.2325,24.3535 15.6165,24.5005 16.0005,24.5005 C16.3835,24.5005 16.7675,24.3535 17.0605,24.0605 L24.0605,17.0605 L21.9395,14.9395 Z'></path>\n <path d='M27.5986,4 L22.8966,4 C26.5556,6.303 28.9996,10.366 28.9996,15 C28.9996,20.4 25.6896,25.039 20.9926,27 L26.5586,27 C29.8886,24.068 31.9996,19.785 31.9996,15 C31.9996,10.734 30.3196,6.868 27.5986,4'></path>\n <path d='M3,15 C3,10.366 5.444,6.303 9.104,4 L4.401,4 C1.68,6.868 0,10.734 0,15 C0,19.785 2.112,24.068 5.441,27 L11.008,27 C6.311,25.039 3,20.4 3,15'></path>\n </Box>\n )\n}\n\nexport default Monogram\n","import React from 'react'\nimport { Box, Grid, Link } from 'theme-ui'\nimport { default as NextLink } from 'next/link'\nimport Monogram from './monogram'\nimport Row from './row'\nimport Column from './column'\n\nconst Footer = () => {\n return (\n <Box\n sx={{\n mt: [7, 7, 7, 8],\n mb: [7, 7, 7, 8],\n pb: [2, 1, 0, 0],\n }}\n >\n <Row sx={{ mb: [0, 0, 4, 5] }}>\n <Column start={[1, 2]} width={[3, 3]}>\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'heading',\n letterSpacing: 'mono',\n mb: [2],\n }}\n >\n EMAIL\n </Box>\n <Link\n href='mailto:hello@carbonplan.org'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n hello@carbonplan.org\n </Link>\n </Box>\n </Column>\n <Column\n start={[5]}\n width={[1]}\n dl={1}\n dr={1}\n sx={{\n display: ['flex', 'none', 'none', 'none'],\n justifyContent: ['center'],\n }}\n >\n <Monogram sx={{ mt: ['-4px'], width: '60px', height: '60px' }} />\n </Column>\n <Column start={[1, 5, 5, 5]} width={[3, 3]} sx={{ mt: [3, 0, 0, 0] }}>\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'heading',\n letterSpacing: 'mono',\n mb: [2],\n }}\n >\n FOLLOW\n </Box>\n <Link\n href='https://twitter.com/carbonplanorg'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n @carbonplanorg\n </Link>\n </Box>\n </Column>\n <Column\n start={[1, 9]}\n width={[5, 4, 3, 3]}\n sx={{ mt: ['42px', '42px', 0, 0], mb: [3, 3, 0, 0] }}\n >\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'body',\n color: 'secondary',\n }}\n >\n CarbonPlan is a registered non-profit public benefit corporation\n in California with 501(c)(3) status.\n </Box>\n </Box>\n </Column>\n </Row>\n <Row sx={{ mb: ['2px'], mt: [5, 5, 4] }}>\n <Column\n start={[1, 1, 2, 2]}\n width={[3, 2, 3, 3]}\n sx={{\n display: 'flex',\n alignItems: ['flex-start', 'flex-start', 'flex-end'],\n }}\n >\n <Box\n sx={{\n bottom: '0px',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n pt: [2],\n }}\n >\n <Box\n sx={{\n color: 'secondary',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n }}\n >\n (c) 2021 CARBONPLAN\n </Box>\n </Box>\n </Column>\n <Column\n start={[4, 3, 5, 5]}\n width={[2, 2, 3, 3]}\n sx={{\n display: 'flex',\n alignItems: ['flex-start', 'flex-start', 'flex-end'],\n mt: [0, 0, 0, 0],\n }}\n >\n <Box\n sx={{\n bottom: '0px',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n width: ['100%', 'auto', 'auto', 'auto'],\n pt: [2],\n }}\n >\n <NextLink href='/terms' passHref>\n <Box\n as='a'\n sx={{\n textDecoration: 'none',\n fontSize: [1, 1, 1, 2],\n color: 'secondary',\n fontFamily: 'mono',\n letterSpacing: 'mono',\n display: 'block',\n }}\n >\n READ OUR TERMS\n </Box>\n </NextLink>\n </Box>\n </Column>\n <Column\n start={[5, 7, 9, 9]}\n width={[2, 3, 3, 3]}\n sx={{ display: ['none', 'initial', 'initial', 'initial'] }}\n >\n <Monogram\n sx={{\n width: 80,\n height: 80,\n mt: [0, '-10px', 4, 5],\n mb: ['-12px'],\n }}\n />\n </Column>\n </Row>\n </Box>\n )\n}\n\nexport default Footer\n","import React from 'react'\nimport { Box, IconButton, useColorMode } from 'theme-ui'\nimport { useCallback } from 'react'\nimport { Sun } from '@carbonplan/icons'\n\nconst Dimmer = ({ sx, ...props }) => {\n const [colorMode, setColorMode] = useColorMode()\n\n const toggle = useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light')\n }, [colorMode])\n\n return (\n <IconButton\n aria-label='Toggle dark mode'\n onClick={toggle}\n role='checkbox'\n sx={{\n width: 32,\n height: 32,\n display: 'inline-block',\n cursor: 'pointer',\n color: 'secondary',\n ...sx,\n }}\n {...props}\n >\n <Sun\n sx={{\n strokeWidth: '1.75',\n transition: 'stroke 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n stroke: 'primary',\n },\n },\n }}\n />\n </IconButton>\n )\n}\n\nexport default Dimmer\n","import React from 'react'\nimport { Box, Text, Link, useThemeUI } from 'theme-ui'\n\nconst GitSha = () => {\n const sha = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA\n const owner = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER\n const slug = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG\n\n const { theme } = useThemeUI()\n\n const color = theme.rawColors.secondary\n\n if (sha && owner && slug) {\n const shortSha = sha.substring(0, 7)\n const href = 'https://github.com/' + owner + '/' + slug + '/tree/' + sha\n\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Link\n href={href}\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n textDecoration: 'none',\n }}\n >\n {shortSha}\n </Link>\n </Box>\n )\n } else {\n // fallback\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {color}\n </Text>\n </Box>\n )\n }\n}\n\nconst Separator = ({ color }) => {\n return (\n <svg fill={color} opacity='0.8' viewBox='0 0 24 24' width='24' height='24'>\n <circle r={5} cx={19} cy={19} />\n </svg>\n )\n}\n\nexport default GitSha\n","import React from 'react'\nimport { Box, Text } from 'theme-ui'\nimport { useState, useEffect } from 'react'\nimport GitSha from './gitsha'\n\nconst Value = ({ mode }) => {\n const [display, setDisplay] = useState(init(mode))\n\n useEffect(() => {\n if (mode === 'mouse') {\n const setFromEvent = (e) => {\n const x = format(e.clientX, 4)\n const y = format(e.clientY, 4)\n setDisplay(`X,Y: ${x},${y}`)\n }\n window.addEventListener('mousemove', setFromEvent)\n return () => {\n window.removeEventListener('mousemove', setFromEvent)\n }\n }\n if (mode === 'scroll') {\n const setFromEvent = (e) => {\n const y = scrollFraction(window, document)\n setDisplay(`SCROLL: 0.${format((y * 100).toFixed(0), 2)}`)\n }\n window.addEventListener('scroll', setFromEvent)\n const y = scrollFraction(window, document)\n return () => {\n window.removeEventListener('scroll', setFromEvent)\n }\n }\n }, [])\n\n return (\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n mr: '-6px',\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: 'secondary',\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {display}\n </Text>\n )\n}\n\nconst Metadata = ({ mode }) => {\n return (\n <Box\n sx={{\n userSelect: 'none',\n position: 'fixed',\n bottom: '42px',\n right: '24px',\n transformOrigin: 'right',\n transform: 'rotate(90deg)',\n display: ['none', 'none', 'initial'],\n }}\n >\n <Value mode={mode} />\n <GitSha />\n </Box>\n )\n}\n\nfunction init(mode) {\n if (mode === 'mouse') {\n return `X,Y: ${format(0, 4)},${format(0, 4)}`\n } else if (mode === 'scroll') {\n return `SCROLL: 0.${format((0).toFixed(0), 2)}`\n } else {\n return mode\n }\n}\n\nfunction format(num, pad) {\n return num.toString().padStart(pad, '0')\n}\n\nfunction scrollFraction(window, documnt) {\n return Math.min(window.scrollY / (document.body.offsetHeight - 770), 0.99)\n}\n\nexport default Metadata\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { keyframes } from '@emotion/react'\n\nconst fade = keyframes({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n})\n\nconst FadeIn = ({ duration = 300, delay = 0, children, ...delegated }) => {\n return (\n <Box\n {...delegated}\n sx={{\n animationDuration: duration + 'ms',\n animationDelay: delay + 'ms',\n animationName: fade.toString(),\n animationFillMode: 'backwards',\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default FadeIn\n","const getScrollbarWidth = (document) => {\n const outer = document.createElement('div')\n outer.style.visibility = 'hidden'\n outer.style.width = '100px'\n document.body.appendChild(outer)\n outer.style.overflow = 'scroll'\n const inner = document.createElement('div')\n inner.style.width = '100%'\n outer.appendChild(inner)\n const delta = outer.offsetWidth - inner.offsetWidth\n outer.parentNode.removeChild(outer)\n return delta\n}\n\nexport default getScrollbarWidth\n","import React, { useEffect } from 'react'\nimport getScrollbarWidth from './utils/get-scrollbar-width'\n\nconst Scrollbar = () => {\n useEffect(() => {\n if (typeof document !== 'undefined') {\n const delta = getScrollbarWidth(document)\n if (delta > 0) {\n document.body.classList.add('custom-scrollbar')\n document\n .getElementsByTagName('html')[0]\n .classList.add('custom-scrollbar')\n }\n }\n }, [])\n return null\n}\n\nexport default Scrollbar\n","import React, { useState, useEffect } from 'react'\nimport { Box, Container } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Guide = ({ color = 'muted' }) => {\n const [display, setDisplay] = useState(false)\n\n useEffect(() => {\n function handler(event) {\n const { key, keyCode, metaKey } = event\n if (key === ';' && metaKey) {\n setDisplay((prev) => !prev)\n }\n }\n\n document.addEventListener('keydown', handler)\n return () => {\n document.removeEventListener('keydown', handler)\n }\n }, [])\n\n return (\n <Box\n sx={{\n position: 'fixed',\n width: '100%',\n left: 0,\n top: 0,\n zIndex: color === 'teal' ? 5000 : -1,\n pointerEvents: 'none',\n display: display ? 'initial' : 'none',\n }}\n >\n <Container>\n <Box sx={{ display: ['none', 'none', 'initial', 'initial'] }}>\n <GuideColumns\n indices={[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}\n color={color}\n />\n </Box>\n <Box sx={{ display: ['none', 'initial', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6, 7, 8]} color={color} />\n </Box>\n <Box sx={{ display: ['initial', 'none', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6]} color={color} />\n </Box>\n </Container>\n </Box>\n )\n}\n\nconst colorCycle = [\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'teal',\n 'blue',\n 'purple',\n 'pink',\n]\n\nfunction GuideColumns({ indices, color }) {\n const sx = {\n outerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: color === 'teal' ? '0px' : '1px',\n borderRightWidth: color === 'teal' ? '0px' : '1px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n innerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: '0px',\n borderRightWidth: '0px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n }\n\n return (\n <Row>\n {indices.map((i) => {\n return (\n <Column\n key={i}\n start={[i]}\n width={[1, 1]}\n dl={0.5}\n dr={0.5}\n sx={{\n bg: color === 'teal' ? 'teal' : 'transparent',\n height: '100vh',\n ...sx.innerGuideColumn,\n }}\n >\n <Box\n sx={{\n mx: ['12px', 3, 3, 4],\n bg: color === 'teal' ? 'background' : 'transparent',\n height: '100%',\n borderLeftColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n borderRightColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n ...sx.outerGuideColumn,\n }}\n ></Box>\n </Column>\n )\n })}\n </Row>\n )\n}\n\nexport default Guide\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Settings = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='24' y1='2.1' x2='24' y2='6.1' />\n <line x1='24' y1='24.1' x2='24' y2='33.9' />\n <line x1='44' y1='2.1' x2='44' y2='12.1' />\n <line x1='44' y1='30.1' x2='44' y2='33.9' />\n <circle cx='24' cy='15.1' r='5' />\n <circle cx='44' cy='21.1' r='5' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Settings\n","import React, { useEffect } from 'react'\nimport { useThemeUI, Container, Flex, Box } from 'theme-ui'\nimport Meta from './meta'\nimport Header from './header'\nimport Footer from './footer'\nimport Dimmer from './dimmer'\nimport Metadata from './metadata'\nimport FadeIn from './fade-in'\nimport Scrollbar from './scrollbar'\nimport Guide from './guide'\nimport Settings from './settings'\n\nconst Layout = ({\n title,\n description,\n card,\n children,\n status,\n nav,\n settings,\n footer = true,\n header = true,\n metadata = 'mouse',\n links = 'remote',\n dimmer = 'bottom',\n guide = true,\n scrollbar = true,\n fade = true,\n container = true,\n printable = false,\n}) => {\n let content = children\n\n if (fade) {\n content = <FadeIn duration={250}>{content}</FadeIn>\n }\n if (container) {\n content = (\n <Box sx={{ mb: [8, 8, 9, 10] }}>\n <Container>{content}</Container>\n </Box>\n )\n }\n\n const { theme } = useThemeUI()\n\n const hideOnPrint = printable\n ? {\n '@media print': {\n display: 'none',\n },\n }\n : {}\n\n useEffect(() => {\n if (!theme) return\n\n const handler = (e) => {\n if (e.matches && settings?.value && settings?.onClick) {\n settings?.onClick()\n }\n }\n\n const query = window.matchMedia(`(min-width: ${theme.breakpoints[1]})`)\n query.onchange = handler\n\n return () => {\n query.onchange = null\n }\n }, [theme?.breakpoints, settings?.value, settings?.onClick])\n\n const menuItems = [\n <Dimmer\n key='dimmer'\n sx={{\n color: 'primary',\n mt: '-2px',\n display: [\n 'block',\n 'block',\n dimmer === 'top' ? 'block' : 'none',\n dimmer === 'top' ? 'block' : 'none',\n ],\n }}\n />,\n ]\n\n if (settings) {\n menuItems.push(\n <Settings\n key='settings'\n sx={{ mr: ['2px'], display: ['inherit', 'inherit', 'none', 'none'] }}\n {...settings}\n />\n )\n }\n\n return (\n <>\n {guide && <Guide color={guide} />}\n {scrollbar && <Scrollbar />}\n <Meta card={card} description={description} title={title} />\n <Flex\n sx={{\n flexDirection: 'column',\n minHeight: '100vh',\n }}\n >\n {header && (\n <Box\n as='header'\n sx={{\n width: '100%',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n position: 'sticky',\n top: 0,\n bg: 'background',\n height: '56px',\n zIndex: 2000,\n ...hideOnPrint,\n }}\n >\n <Container>\n <Header\n mode={links}\n status={status}\n nav={nav}\n menuItems={menuItems}\n />\n </Container>\n </Box>\n )}\n <Box\n sx={{\n width: '100%',\n flex: '1 1 auto',\n }}\n >\n {content}\n </Box>\n {footer && (\n <Box\n as='footer'\n sx={{\n width: '100%',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n ...hideOnPrint,\n }}\n >\n <Container>\n <Footer />\n </Container>\n </Box>\n )}\n {dimmer === 'bottom' && (\n <Box\n sx={{\n display: ['none', 'none', 'initial', 'initial'],\n position: ['fixed'],\n right: [13],\n bottom: [17, 17, 15, 15],\n }}\n >\n <Dimmer />\n </Box>\n )}\n {metadata && <Metadata mode={metadata} />}\n </Flex>\n </>\n )\n}\n\nexport default Layout\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Tag = ({ label, value, sx, children, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const isClickable = props && (props.onClick || props.onDoubleClick)\n\n return (\n <Box\n as={isClickable ? 'button' : 'span'}\n role='checkbox'\n aria-checked={value}\n aria-label={label}\n sx={{\n display: 'inline-block',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n cursor: isClickable ? 'pointer' : 'inherit',\n color: color,\n backgroundColor: 'transparent',\n borderStyle: 'solid',\n borderColor: color,\n lineHeight: 'body',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n textTransform: 'uppercase',\n userSelect: 'none',\n transition: 'opacity 0.05s',\n pt: ['1px'],\n pb: ['2px'],\n px: [0],\n m: [0],\n opacity: value == null || value ? 1 : color == 'primary' ? 0.24 : 0.33,\n ...sx,\n }}\n {...props}\n >\n {children}\n </Box>\n )\n}\n\nexport default Tag\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Tag from './tag'\n\nconst sx = {\n label: {\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [1, 1, 1, 2],\n color: 'secondary',\n userSelect: 'none',\n textTransform: 'uppercase',\n },\n}\n\nconst duplicateOptions = (options, defaultValue, overrides = {}) => {\n return Object.keys(options).reduce(\n (o, key) => Object.assign(o, { [key]: overrides[key] || defaultValue }),\n {}\n )\n}\n\nconst isAll = (option) => {\n return (\n Object.keys(option).filter((d) => option[d]).length ==\n Object.keys(option).length\n )\n}\n\nconst updateValues = ({ values, multiSelect, setValues, value }) => {\n const isAllAlreadySelected = isAll(values)\n const isSelectingAll = value === 'all'\n\n let updatedToggle\n\n if (multiSelect) {\n if (isSelectingAll && !isAllAlreadySelected) {\n // select all\n updatedToggle = duplicateOptions(values, true)\n } else if (isSelectingAll && isAllAlreadySelected) {\n // deselect all\n updatedToggle = duplicateOptions(values, false)\n } else {\n // de/select value, inherit other values\n updatedToggle = { ...values, [value]: !values[value] }\n }\n } else {\n if (isSelectingAll && !isAllAlreadySelected) {\n // select all\n updatedToggle = duplicateOptions(values, true)\n } else if (isSelectingAll && isAllAlreadySelected) {\n // do nothing\n } else {\n // select only value\n updatedToggle = duplicateOptions(values, false, { [value]: true })\n }\n }\n\n if (updatedToggle) {\n setValues(updatedToggle)\n }\n}\n\nconst Filter = ({\n values,\n setValues,\n label,\n colors,\n showAll = false,\n multiSelect = false,\n ...props\n}) => {\n return (\n <Box {...props}>\n {label && <Box sx={sx.label}>{label}</Box>}\n <Box sx={{ mt: label ? [3] : 0 }}>\n {showAll && (\n <Tag\n onClick={() =>\n updateValues({\n values: values,\n multiSelect,\n setValues: setValues,\n value: 'all',\n })\n }\n value={isAll(values)}\n sx={{ mr: [2] }}\n >\n All\n </Tag>\n )}\n {Object.keys(values).map((d, i) => (\n <Tag\n onClick={() =>\n updateValues({\n values: values,\n multiSelect,\n setValues: setValues,\n value: d,\n })\n }\n onDoubleClick={() =>\n updateValues({\n values: values,\n multiSelect: false,\n setValues: setValues,\n value: d,\n })\n }\n key={i}\n value={values[d]}\n sx={{\n width: 'max-content',\n color: colors ? colors[d] : 'primary',\n mr: [2],\n mb: [1],\n }}\n >\n {d}\n </Tag>\n ))}\n </Box>\n </Box>\n )\n}\n\nexport default Filter\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Column from './column'\n\nconst Sidenote = ({ children, variant = 'h1' }) => {\n let mt\n if (variant === 'h1') mt = [4, '27px', '42px', '54px']\n if (variant === 'h2') mt = [4, 4, '14px', '25px']\n return (\n <>\n <Column start={[1, 4, 8, 8]} width={[1, 1, 1, 1]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n textAlign: 'right',\n }}\n >\n /\n </Box>\n </Column>\n <Column start={[2, 5, 9, 9]} width={[3, 3, 2, 2]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n height: ['100%', '0px', '0px', '0px'],\n }}\n >\n {children}\n </Box>\n </Column>\n </>\n )\n}\n\nexport default Sidenote\n","import React, { forwardRef } from 'react'\nimport { Input as ThemedInput } from 'theme-ui'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Input = ({ size = 'sm', inverted, sx, ...props }, ref) => {\n const defaultColor = inverted ? 'secondary' : 'primary'\n\n const styles = {\n color: defaultColor,\n borderColor: 'secondary',\n borderStyle: 'solid',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderRadius: '0px',\n transition: 'border 0.15s',\n borderBottomWidth: '1px',\n width: 'calc(min(15ch, 100%))',\n p: [0],\n py: ['2px'],\n 'input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n 'input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n ':focus': {\n borderColor: 'primary',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: 'none !important',\n },\n ...getSizeStyles(size),\n ...sx,\n }\n return <ThemedInput {...props} ref={ref} sx={styles} />\n}\n\nexport default forwardRef(Input)\n","import React, { forwardRef } from 'react'\nimport { useThemeUI, Slider as ThemeSlider } from 'theme-ui'\n\nconst Slider = ({ sx, ...props }, ref) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const {\n theme: { rawColors: colors },\n } = useThemeUI()\n\n return (\n <ThemeSlider\n ref={ref}\n sx={{\n '&::-webkit-slider-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n '&::-moz-range-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: `${colors.secondary} !important`,\n },\n ':focus': {\n color: color,\n '&::-webkit-slider-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n '&::-moz-range-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n },\n color: color,\n ...sx,\n }}\n {...props}\n />\n )\n}\n\nexport default forwardRef(Slider)\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst styles = {\n reset: {\n verticalAlign: 'baseline',\n border: 0,\n outline: 0,\n margin: 0,\n padding: 0,\n },\n row: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderTopWidth: '1px',\n borderColor: 'muted',\n pt: [3, 3, 3, '20px'],\n pb: [3, 3, 3, '20px'],\n mb: ['2px'],\n },\n header: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n index: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n entry: {\n display: 'block',\n fontSize: [2, 2, 2, 3],\n fontFamily: 'faux',\n letterSpacing: 'faux',\n mb: ['1px'],\n mt: [2, 0, 0, 0],\n },\n}\n\nconst Table = ({\n data,\n sx,\n color,\n header,\n columns,\n start,\n width,\n index = true,\n borderBottom = true,\n borderTop = true,\n}) => {\n if (!start || !columns || !width) {\n throw new Error('Must provide columns, start, and width')\n }\n return (\n <Box as='table' sx={{ display: 'block', ...sx }}>\n <Box as='tbody' sx={{ display: 'block' }}>\n {header && (\n <Row\n as='tr'\n sx={{\n ...styles.reset,\n ...styles.header,\n ...styles.row,\n color: color,\n borderTopWidth: !borderTop ? '0px' : '1px',\n }}\n >\n <Column as='td' start={[1]} width={columns} sx={styles.index}>\n {header}\n </Column>\n </Row>\n )}\n {data.map((row, i) => {\n return (\n <Row\n as='tr'\n columns={columns}\n key={i}\n sx={{\n ...styles.reset,\n ...styles.row,\n pb:\n borderBottom && i === data.length - 1\n ? ['18px', '18px', '18px', '22px']\n : [3, 3, 3, '20px'],\n borderBottomWidth:\n borderBottom && i === data.length - 1 ? '1px' : '0px',\n borderTopWidth:\n !borderTop && i === 0 && !header ? '0px' : '1px',\n }}\n >\n {row.map((column, j) => {\n return (\n <Column\n as='td'\n key={j}\n start={start[j]}\n width={width[j]}\n sx={\n j == 0 && index\n ? { ...styles.reset, ...styles.index }\n : { ...styles.reset, ...styles.entry }\n }\n >\n {column}\n </Column>\n )\n })}\n </Row>\n )\n })}\n </Box>\n </Box>\n )\n}\n\nexport default Table\n","import React, { forwardRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\n\nconst Toggle = ({ value, onClick, disabled, sx, ...props }, ref) => {\n const color = sx && sx.color ? sx.color : 'primary'\n value = disabled ? false : value\n return (\n <Box\n ref={ref}\n as='button'\n onClick={onClick}\n role='checkbox'\n aria-checked={value}\n aria-label='Toggle'\n sx={{\n border: 'none',\n background: 'none',\n cursor: disabled ? 'default' : 'pointer',\n p: [0],\n m: [0],\n display: 'inline-block',\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n width: '50px',\n height: '20px',\n borderRadius: '20px',\n backgroundColor: value\n ? transparentize(color, color == 'primary' ? 0.5 : 0.45)\n : 'muted',\n position: 'relative',\n transition: '0.15s',\n display: 'inline-block',\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n borderRadius: '7px',\n position: 'absolute',\n left: value ? '32px' : '4px',\n top: '3px',\n backgroundColor: value ? color : 'secondary',\n transition: '0.15s',\n }}\n ></Box>\n </Box>\n </Box>\n )\n}\n\nexport default forwardRef(Toggle)\n","const defaultOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n}\n\nconst formatDateElement = (date, element, option) => {\n if (!option) {\n return null\n }\n\n const format = typeof option === 'string' ? option : defaultOptions[element]\n\n const result = date.toLocaleString('default', {\n [element]: format,\n })\n\n if (format === 'numeric' && ['day', 'month'].includes(element)) {\n return result.padStart(2, '0')\n } else {\n return result\n }\n}\nconst formatDate = (date, options = defaultOptions) => {\n const d = new Date(date.replace(/-/g, '/'))\n\n const month = formatDateElement(d, 'month', options.month)\n const day = formatDateElement(d, 'day', options.day)\n const year = formatDateElement(d, 'year', options.year)\n\n return [month, day, year].filter(Boolean).join(options.separator ?? ' ')\n}\n\nexport default formatDate\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\n\nconst Badge = ({ sx, children, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n return (\n <Box\n sx={{\n display: 'inline-block',\n width: 'fit-content',\n height: ['24px', '24px', '24px', '26px'],\n borderRadius: '5px',\n backgroundColor:\n color == 'primary' || color == 'secondary'\n ? 'muted'\n : transparentize(color, 0.7),\n textAlign: 'center',\n userSelect: 'none',\n fontSize: [2, 2, 2, 3],\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n letterSpacing: '0.02em',\n fontFamily: 'mono',\n mt: ['1px', '1px', '1px', '0px'],\n px: [1, 1, 1, '5px'],\n color: color,\n }}\n >\n {children}\n </Box>\n </Box>\n )\n}\n\nexport default Badge\n","import React from 'react'\nimport { Box, Styled, Container, Grid } from 'theme-ui'\nimport { PoopSad } from '@carbonplan/emoji'\nimport Layout from './layout'\nimport Row from './row'\nimport Column from './column'\n\nconst Custom404 = () => {\n return (\n <Layout\n footer={false}\n title={'404 – CarbonPlan'}\n description={\n \"Sorry but we can't seem to find the page you are looking for.\"\n }\n >\n <Row sx={{ mb: [5, 0, 0], pt: [0, 0, 6] }}>\n <Column start={[1, 1, 3, 3]} width={[6, 4, 4, 4]}>\n <Styled.h1>Oops!</Styled.h1>\n <Box\n sx={{\n fontSize: [4, 4, 4, 5],\n lineHeight: 'h3',\n mt: [3, 4, 4],\n mb: [2, 3, 3],\n maxWidth: ['90%', '90%', '400px'],\n }}\n >\n Sorry but we can't seem to find the page you are looking for.\n </Box>\n <Box\n sx={{\n color: 'secondary',\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [2, 2, 2, 3],\n mt: [4, 5, 5],\n }}\n >\n ERROR CODE 404\n </Box>\n </Column>\n <Column start={[2, 5, 7, 7]} width={[4, 4, 4, 4]}>\n <Box\n sx={{\n width: ['100%'],\n mt: [2, 4, 4, 5],\n fill: 'primary',\n }}\n >\n <PoopSad sx={{ width: '100%', height: 'auto' }} />\n </Box>\n </Column>\n </Row>\n </Layout>\n )\n}\n\nexport default Custom404\n","import React from 'react'\nimport { Box, IconButton } from 'theme-ui'\n\nconst Expander = ({ value, id, onClick, sx }) => {\n return (\n <IconButton\n onClick={onClick}\n id={id}\n role='checkbox'\n aria-checked={value}\n aria-label='Expand'\n sx={{\n display: 'inline-block',\n width: 24,\n height: 24,\n p: [1],\n cursor: 'pointer',\n fill: 'secondary',\n stroke: 'secondary',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n fill: 'primary',\n stroke: 'primary',\n },\n },\n ...sx,\n }}\n >\n <svg viewBox='0 0 16 16'>\n <path\n d='M8,0 V16 M0,8 H16'\n style={{\n strokeWidth: 2,\n transition: '0.25s all',\n transformOrigin: '8px 8px',\n transform: value ? 'rotate(45deg)' : '',\n }}\n />\n </svg>\n </IconButton>\n )\n}\n\nexport default Expander\n","import React from 'react'\nimport Caption from './caption'\n\nconst FigureCaption = ({ number, children }) => {\n return (\n <Caption number={number} label='figure'>\n {children}\n </Caption>\n )\n}\n\nexport default FigureCaption\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\nimport Sidenote from './sidenote'\n\nconst Heading = ({\n children,\n sidenote,\n variant = 'h1',\n description,\n descriptionStart = [1, 3, 5, 5],\n descriptionWidth = [5, 5, 5, 4],\n sx,\n}) => {\n let titleWidth = [6, 6, 6, 6]\n if (description) {\n titleWidth[1] = descriptionStart[1] - 1\n titleWidth[2] = descriptionStart[2] - 2\n titleWidth[3] = descriptionStart[3] - 2\n }\n\n if (!['h1', 'h2'].includes(variant)) {\n throw new Error(`variant must be 'h1' or 'h2' but got '${variant}'`)\n }\n\n return (\n <Row sx={{ mt: [5, 6, 7, 8], mb: [5, 6, 7, 8], ...sx }}>\n <Column start={[1, 1, 2, 2]} width={titleWidth}>\n {variant === 'h1' && (\n <Box as='h1' variant='styles.h1' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n {variant === 'h2' && (\n <Box as='h2' variant='styles.h2' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n </Column>\n {sidenote && <Sidenote variant={variant}>{sidenote}</Sidenote>}\n {description && (\n <Column start={descriptionStart} width={descriptionWidth}>\n <Box\n sx={{\n mt: [4, '5px', '20px', '31px'],\n fontSize: [2, 2, 2, 3],\n }}\n >\n {description}\n </Box>\n </Column>\n )}\n </Row>\n )\n}\n\nexport default Heading\n","import React from 'react'\nimport { Flex } from 'theme-ui'\nimport { RotatingArrow } from '@carbonplan/icons'\nimport Button from './button'\n\nconst LinkGroup = ({\n members,\n color,\n inverted,\n tracking,\n size = 'xs',\n rowGap = [2, 2, 2, 3],\n columnGap = [3, 3, 3, 4],\n direction = 'horizontal',\n sx,\n}) => {\n return (\n <Flex\n sx={{\n flexDirection: direction === 'horizontal' ? 'row' : 'column',\n rowGap,\n columnGap,\n flexWrap: 'wrap',\n ...sx,\n }}\n >\n {members.map((d, i) => {\n return (\n <Button\n key={i}\n href={d.href}\n label={d.label}\n size={size}\n sx={{ color: color }}\n inverted={inverted}\n suffix={<RotatingArrow />}\n tracking={tracking}\n >\n {d.label}\n </Button>\n )\n })}\n </Flex>\n )\n}\n\nexport default LinkGroup\n","import React, { useRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport getProps from './utils/get-props'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Select = ({ children, size = 'sm', sx, sxSelect, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const sizeStyles = getSizeStyles(size)\n const ref = useRef(null)\n\n const { onChange } = props\n const omitOnChange = getProps((k) => k !== 'onChange')(props)\n\n if (!['xs', 'sm', 'md'].includes(size)) {\n throw new Error('Size must be xs, sm, or md')\n }\n\n let pr, height, width, ml, top\n\n if (size === 'xs') {\n height = [14, 14, 14, 16]\n width = [14, 14, 14, 14]\n top = ['1px']\n ml = ['-14px', '-14px', '-14px', '-16px']\n }\n\n if (size === 'sm') {\n height = [15, 15, 15, 20]\n width = [15, 15, 15, 20]\n top = ['1px']\n ml = ['-16px', '-16px', '-16px', '-20px']\n }\n\n if (size === 'md') {\n height = [20, 20, 20, 20]\n width = [20, 20, 20, 20]\n top = ['2px']\n ml = ['-20px', '-20px', '-20px', '-20px']\n }\n\n pr = width.map((d) => d + 12)\n\n return (\n <Box\n sx={{\n display: 'inline-block',\n ...sx,\n }}\n >\n <Box\n as='select'\n ref={ref}\n onChange={(e) => {\n ref.current.blur()\n if (onChange) onChange(e)\n }}\n sx={{\n ...sizeStyles,\n lineHeight: 'normal',\n cursor: 'pointer',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n pb: ['5px'],\n bg: 'transparent',\n pr: pr,\n border: 'none',\n borderBottomStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomColor: 'primary',\n borderRadius: '0px',\n color: 'text',\n width: 'fit-content',\n color: color,\n userSelect: 'none',\n '@media (hover: none) and (pointer: coarse)': {\n '&:focus-visible': {\n outline: 'none !important',\n background: 'transparent !important',\n },\n },\n ...sxSelect,\n }}\n {...omitOnChange}\n >\n {children}\n </Box>\n <Arrow\n sx={{\n width: width,\n height: height,\n position: 'relative',\n ml: ml,\n top: top,\n fill: 'secondary',\n transform: 'rotate(135deg)',\n pointerEvents: 'none',\n }}\n />\n </Box>\n )\n}\n\nexport default Select\n","const getProps = (test) => (props) => {\n const next = {}\n for (const key in props) {\n if (test(key || '')) next[key] = props[key]\n }\n return next\n}\n\nexport default getProps\n","import React from 'react'\nimport Caption from './caption'\n\nconst TableCaption = ({ number, children }) => {\n return (\n <Caption number={number} label='table'>\n {children}\n </Caption>\n )\n}\n\nexport default TableCaption\n","import React from 'react'\n\nconst Tracking = ({ id }) => {\n if (!id) {\n return null\n }\n return (\n <>\n <script async src={`https://www.googletagmanager.com/gtag/js?id=${id}`} />\n <script\n dangerouslySetInnerHTML={{\n __html: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${id}', {\n page_path: window.location.pathname,\n });\n `,\n }}\n />\n </>\n )\n}\n\nexport default Tracking\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Tray = ({ expanded, sx, children }) => {\n return (\n <>\n <Box\n sx={{\n position: 'fixed',\n top: '56px',\n bottom: '0px',\n left: '0px',\n width: 'calc(100vw)',\n mt: ['56px'],\n bg: 'background',\n zIndex: 1000,\n transition: 'opacity 0.15s',\n opacity: expanded ? 0.9 : 0,\n pointerEvents: expanded ? 'all' : 'none',\n }}\n />\n <Box\n sx={{\n position: 'fixed',\n width: 'calc(100vw)',\n top: '0px',\n mt: ['56px'],\n pb: [6, 7, 7, 8],\n pt: [5, 6, 7, 8],\n bg: 'background',\n zIndex: 1100,\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n transition: 'transform 0.15s',\n ml: [-3, -4, -5, -6],\n pl: [3, 4, 5, 6],\n pr: [3, 4, 5, 6],\n transform: expanded ? 'translateY(0)' : 'translateY(-100%)',\n ...sx,\n }}\n >\n <Row>\n <Column start={[1, 1, 1, 1]} width={[6, 8, 10, 10]}>\n {children}\n </Column>\n </Row>\n </Box>\n </>\n )\n}\n\nexport default Tray\n"],"names":["Avatar","srcProp","altProp","color","width","maxWidth","name","github","alt","src","sx","props","console","warn","toLowerCase","replace","React","Box","height","borderRadius","position","display","verticalAlign","bg","Image","opacity","filter","Row","columnGap","rowGap","children","columns","gap","makeArray","input","Array","isArray","includes","length","Error","map","d","flat","Number","isInteger","Grid","Column","start","dl","dr","ml","mr","end","i","gridColumnStart","gridColumnEnd","sizes","xs","sm","md","lg","xl","Group","marginValue","direction","spacing","hasOwnProperty","marginProperty","additionalStyles","Children","child","specialChars","forwardRef","ref","href","internal","tracking","startsWith","NextLink","passHref","ThemedLink","action","category","track","e","window","gtag","event_category","event_label","label","value","event","onClick","onContextMenu","getSizeStyles","size","fontSize","fontFamily","letterSpacing","lineHeight","offset","margin","strokeWidth","prefix","suffix","inverted","align","prefixHover","suffixHover","prefixAlign","suffixAlign","prefixOffset","suffixOffset","sxProp","baseColor","hoverColor","transform","type","hover","cloneElement","id","transition","style","border","background","padding","textAlign","cursor","Inner","as","Link","textDecoration","mb","fill","pb","textTransform","Arrow","top","Caption","number","mt","mx","pr","styles","setClim","borderBottom","colors","primary","outline","userSelect","minWidth","DIMENSIONS","Gradient","colormap","discrete","horizontal","step","css","join","minHeight","hinted","Label","units","alignSelf","writingMode","whiteSpace","overflow","InlineColor","Colors","Meta","title","description","card","titleProp","descriptionProp","cardProp","Head","content","rel","crossOrigin","property","Logo","stroke","viewBox","Menu","IconButton","marginTop","xmlns","x1","y1","x2","y2","className","current","first","borderStyle","borderColor","borderWidth","borderBottomWidth","borderTopWidth","py","links","url","HoverArrow","pointerEvents","left","Nav","link","mode","nav","setExpanded","NavGroup","key","Header","status","menuItems","useState","expanded","pt","alignItems","zIndex","Flex","justifyContent","flexShrink","right","bottom","maxHeight","backgroundColor","Container","Monogram","Footer","Dimmer","useColorMode","colorMode","setColorMode","toggle","useCallback","role","Sun","GitSha","sha","process","env","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","owner","NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER","slug","NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG","useThemeUI","theme","rawColors","secondary","shortSha","substring","Separator","Text","r","cx","cy","Value","format","toFixed","init","setDisplay","useEffect","setFromEvent","x","clientX","y","clientY","addEventListener","removeEventListener","documnt","Math","min","scrollY","document","body","offsetHeight","scrollFraction","Metadata","transformOrigin","num","pad","toString","padStart","fade","keyframes","from","to","FadeIn","duration","delay","delegated","animationDuration","animationDelay","animationName","animationFillMode","getScrollbarWidth","outer","createElement","visibility","appendChild","inner","delta","offsetWidth","parentNode","removeChild","Scrollbar","classList","add","getElementsByTagName","Guide","handler","metaKey","prev","GuideColumns","indices","colorCycle","outerGuideColumn","borderLeftWidth","borderRightWidth","innerGuideColumn","borderLeftColor","borderRightColor","Settings","Layout","settings","footer","header","metadata","dimmer","guide","scrollbar","container","printable","hideOnPrint","query","matchMedia","breakpoints","onchange","matches","push","flexDirection","flex","Tag","isClickable","onDoubleClick","px","m","duplicateOptions","options","defaultValue","overrides","Object","keys","reduce","o","assign","isAll","option","updateValues","updatedToggle","values","multiSelect","setValues","isAllAlreadySelected","isSelectingAll","Sidenote","variant","p","WebkitAppearance","ThemedInput","ThemeSlider","boxShadow","reset","row","index","entry","disabled","transparentize","defaultOptions","month","day","year","formatDateElement","date","element","result","toLocaleString","members","fixedCount","idx","max","firstChar","slice","clim","setClimStep","sxClim","dx","climRef","useRef","climMinDragging","setClimMinDragging","climMaxDragging","setClimMaxDragging","dy","scale","draggingFunction","pageX","pageY","handleMouseDown","target","setAttribute","updater","listener","code","activeElement","preventDefault","focus","increment","decrement","ClimMin","tabIndex","onMouseDown","ClimMax","flexGrow","Styled","h1","PoopSad","showAll","sidenote","descriptionStart","descriptionWidth","titleWidth","my","flexWrap","Button","RotatingArrow","test","sxSelect","sizeStyles","onChange","omitOnChange","k","next","blur","MozAppearance","borderBottomStyle","borderBottomColor","data","borderTop","column","j","async","dangerouslySetInnerHTML","__html","pl","Date","Boolean","separator"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/avatar.js","../src/row.js","../src/column.js","../src/group.js","../src/avatar-group.js","../src/badge.js","../src/blockquote.js","../src/link.js","../src/utils/get-size-styles.js","../src/button.js","../src/callout.js","../src/caption.js","../src/colorbar.js","../src/colors.js","../src/meta.js","../src/logo.js","../src/menu.js","../src/header.js","../src/monogram.js","../src/footer.js","../src/dimmer.js","../src/gitsha.js","../src/metadata.js","../src/fade-in.js","../src/utils/get-scrollbar-width.js","../src/scrollbar.js","../src/guide.js","../src/settings.js","../src/layout.js","../src/tag.js","../src/filter.js","../src/sidenote.js","../src/input.js","../src/slider.js","../src/table.js","../src/toggle.js","../src/utils/format-date.js","../src/custom-404.js","../src/expander.js","../src/figure-caption.js","../src/heading.js","../src/link-group.js","../src/select.js","../src/utils/get-props.js","../src/table-caption.js","../src/tracking.js","../src/tray.js","../src/utils/use-scrollbar-class.js"],"sourcesContent":["import React from 'react'\nimport { Box, Image } from 'theme-ui'\n\nconst Avatar = ({\n color = 'transparent',\n width = '90px',\n maxWidth,\n name,\n github,\n alt,\n src,\n sx,\n ...props\n}) => {\n if (!name && !src && !github) {\n console.warn('must specify either name, github, or src')\n }\n\n let srcProp, altProp\n if (name) {\n srcProp = `https://images.carbonplan.org/team/${name\n .toLowerCase()\n .replace(' ', '-')}.png`\n altProp = alt || name\n } else if (github) {\n srcProp = `https://github.com/${github}.png`\n altProp = alt || github\n } else {\n srcProp = src\n altProp = alt\n }\n\n return (\n <Box\n sx={{\n width: width,\n maxWidth: maxWidth,\n height: 'auto',\n borderRadius: '50%',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n bg: color,\n ...sx,\n }}\n {...props}\n >\n <Image\n alt={altProp}\n src={srcProp}\n sx={{\n opacity: color && color !== 'transparent' ? 0.25 : 1,\n filter:\n color && color !== 'transparent'\n ? 'grayscale(100%) contrast(200%) brightness(100%)'\n : 'none',\n width: '100%',\n borderRadius: '50%',\n display: 'block',\n }}\n />\n </Box>\n )\n}\n\nexport default Avatar\n","import React from 'react'\nimport { Grid } from 'theme-ui'\n\nconst Row = ({ children, sx, columns, gap, ...props }) => {\n const makeArray = (input) => {\n if (!Array.isArray(input)) {\n input = [input, input, input, input]\n }\n if (Array.isArray(input) && ![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d]).flat()\n }\n if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n return input\n }\n\n let columnGap, rowGap\n if (Number.isInteger(gap) || Array.isArray(gap)) {\n gap = makeArray(gap)\n columnGap = gap\n rowGap = gap\n } else {\n columnGap = [4, 5, 5, 6]\n rowGap = [0, 0, 0, 0]\n }\n\n if (Number.isInteger(columns) || Array.isArray(columns)) {\n columns = makeArray(columns)\n } else {\n columns = [6, 8, 12, 12]\n }\n\n return (\n <Grid\n {...props}\n columns={columns}\n sx={{\n columnGap: columnGap,\n rowGap: rowGap,\n ...sx,\n }}\n >\n {children}\n </Grid>\n )\n}\n\nexport default Row\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Column = ({ start, width, dl, dr, children, sx, ...props }) => {\n start = start || 'auto'\n width = width || 'auto'\n\n const makeArray = (input) => {\n if (input && !Array.isArray(input)) {\n input = [input]\n }\n\n if (![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d, d, d, d]).flat()\n } else if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n\n return input\n }\n\n start = makeArray(start)\n width = makeArray(width)\n\n const end = start.map((d, i) => {\n if (d == 'auto') return 'auto'\n return d + width[i]\n })\n\n let ml, mr\n\n if (dl) {\n if (![0.5, 1].includes(dl)) {\n throw new Error('dl must be 0.5 or 1')\n }\n if (dl === 0.5) {\n ml = ['-12px', -3, -3, -4]\n }\n if (dl === 1) {\n ml = [-4, -5, -5, -6]\n }\n }\n\n if (dr) {\n if (![0.5, 1].includes(dr)) {\n throw new Error('dr must be 0.5 or 1')\n }\n if (dr === 0.5) {\n mr = ['-12px', -3, -3, -4]\n }\n if (dr === 1) {\n mr = [-4, -5, -5, -6]\n }\n }\n\n return (\n <Box\n {...props}\n sx={{\n gridColumnStart: start,\n gridColumnEnd: end,\n ml: ml,\n mr: mr,\n ...sx,\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default Column\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\nconst Group = ({ children, direction = 'vertical', spacing = 'md', sx }) => {\n let marginValue\n if (typeof spacing === 'string' && sizes.hasOwnProperty(spacing)) {\n marginValue = sizes[spacing]\n } else {\n marginValue = spacing\n }\n\n if (!['horizontal', 'vertical'].includes(direction)) {\n throw new Error(\n 'Invalid direction value. Must be either horizontal or vertical'\n )\n }\n\n const marginProperty = direction === 'vertical' ? 'mb' : 'mr'\n const additionalStyles =\n direction === 'horizontal' ? { display: 'inline-block' } : {}\n return (\n <Box sx={sx}>\n {React.Children.map(children, (child, i) => {\n return (\n <Box\n sx={{\n [marginProperty]: i < children.length - 1 ? marginValue : 0,\n ...additionalStyles,\n }}\n >\n {child}\n </Box>\n )\n })}\n </Box>\n )\n}\n\nexport default Group\n","import React from 'react'\nimport Avatar from './avatar'\nimport Row from './row'\nimport Column from './column'\nimport Group from './group'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\n}) => {\n if (members.length > fixedCount) {\n throw Error(\n `cannot render '${members.length}' avatars with a fixed count of '${fixedCount}'`\n )\n }\n\n let gap\n if (sizes.hasOwnProperty(spacing)) {\n gap = sizes[spacing]\n } else {\n gap = spacing\n }\n\n let start = (idx) => 'auto'\n if (align) {\n if (!Array.isArray(align)) {\n align = [align]\n }\n start = (idx) =>\n align.map((d) => {\n if (d === 'left') {\n return 'auto'\n } else if (d === 'right') {\n const offset = Math.max(1, fixedCount - members.length + 1)\n return offset + idx\n } else {\n throw Error(`alignment '${align}' not recognized`)\n }\n })\n }\n\n return (\n <>\n {fixedCount && (\n <Row columns={fixedCount} gap={gap} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Column key={idx} start={start(idx)}>\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n </Column>\n ))}\n </Row>\n )}\n {!fixedCount && (\n <Group direction={direction} spacing={spacing} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Avatar key={idx} {...props} width={width} maxWidth={maxWidth} />\n ))}\n </Group>\n )}\n </>\n )\n}\n\nexport default AvatarGroup\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\n\nconst Badge = ({ sx, children, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n return (\n <Box\n sx={{\n display: 'inline-block',\n width: 'fit-content',\n height: ['24px', '24px', '24px', '26px'],\n borderRadius: '5px',\n backgroundColor:\n color == 'primary' || color == 'secondary'\n ? 'muted'\n : transparentize(color, 0.7),\n textAlign: 'center',\n userSelect: 'none',\n fontSize: [2, 2, 2, 3],\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n letterSpacing: '0.02em',\n fontFamily: 'mono',\n mt: ['1px', '1px', '1px', '0px'],\n px: [1, 1, 1, '5px'],\n color: color,\n }}\n >\n {children}\n </Box>\n </Box>\n )\n}\n\nexport default Badge\n","import React, { cloneElement, Children } from 'react'\nimport { Box } from 'theme-ui'\n\nconst specialChars = ['“', '\"', \"'\", '‘']\n\nconst Blockquote = ({ children }) => {\n let firstChar = ''\n\n if (\n Array.isArray(children) &&\n children[0].props &&\n typeof children[0].props.children === 'string'\n ) {\n firstChar = children[0].props.children.slice(0, 1)\n children = Children.map(children, (d, i) => {\n if (i == 0) {\n return cloneElement(d, { children: d.props.children.slice(1) })\n } else return d\n })\n } else if (children.props && typeof children.props.children === 'string') {\n firstChar = children.props.children.slice(0, 1)\n children = cloneElement(children, {\n children: children.props.children.slice(1),\n })\n } else if (typeof children === 'string') {\n firstChar = children.slice(0, 1)\n children = children.slice(1)\n }\n\n return (\n <Box variant='styles.blockquote'>\n {specialChars.includes(firstChar) && (\n <Box as='span' sx={{ position: 'absolute', ml: '-0.4em' }}>\n {firstChar}\n </Box>\n )}\n {children}\n </Box>\n )\n}\n\nexport default Blockquote\n","import React, { forwardRef } from 'react'\nimport { Link as ThemedLink } from 'theme-ui'\nimport { default as NextLink } from 'next/link'\n\nconst event = ({ action, category, label, value }) => {\n if (typeof window.gtag !== 'function') {\n console.warn(`Missing window.gtag, skipping analytics action: '${action}'.`)\n return\n }\n\n window.gtag('event', action, {\n event_category: category,\n event_label: label,\n value: value,\n })\n}\n\nconst Link = (\n { href, children, internal = false, tracking = false, ...props },\n ref\n) => {\n if (internal || (href && href.startsWith('/'))) {\n return (\n <NextLink href={href} passHref>\n <ThemedLink ref={ref} {...props}>\n {children}\n </ThemedLink>\n </NextLink>\n )\n } else if (tracking) {\n let action\n let category\n if (href && href.includes('pdf')) {\n action = 'PDF'\n category = 'download'\n } else {\n action = 'website'\n category = 'external'\n }\n const track = (e) => {\n event({\n action: action,\n category: category,\n label: href,\n })\n }\n return (\n <ThemedLink\n ref={ref}\n onClick={track}\n onContextMenu={track}\n href={href}\n {...props}\n >\n {children}\n </ThemedLink>\n )\n } else {\n return (\n <ThemedLink ref={ref} href={href} {...props}>\n {children}\n </ThemedLink>\n )\n }\n}\n\nexport default forwardRef(Link)\n","const getSizeStyles = (size) => {\n if (!['xs', 'sm', 'md', 'lg', 'xl'].includes(size)) {\n throw new Error('Size must be xs, sm, md, lg, or xl')\n }\n\n let fontSize, fontFamily, letterSpacing, lineHeight\n\n if (size === 'xs') {\n fontSize = [2, 2, 2, 3]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'sm') {\n fontSize = [3, 3, 3, 4]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'md') {\n fontSize = [4, 4, 4, 5]\n fontFamily = 'body'\n letterSpacing = 'body'\n lineHeight = [1.2]\n }\n\n if (size === 'lg') {\n fontSize = [5, 5, 6, 7]\n fontFamily = 'heading'\n letterSpacing = 'heading'\n lineHeight = [1.2, 1.2, 1.25, 1.25]\n }\n\n if (size === 'xl') {\n fontSize = [6, 7, 8, 9]\n fontFamily = 'heading'\n letterSpacing = 'heading'\n lineHeight = [1.25]\n }\n\n return { fontSize, fontFamily, letterSpacing, lineHeight }\n}\n\nexport default getSizeStyles\n","import React, { forwardRef, cloneElement } from 'react'\nimport { Box } from 'theme-ui'\nimport Link from './link'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Button = (\n {\n size = 'sm',\n prefix,\n suffix,\n inverted,\n sx,\n children,\n align,\n href,\n internal,\n tracking,\n ...props\n },\n ref\n) => {\n if (!['xs', 'sm', 'md', 'lg', 'xl'].includes(size)) {\n throw new Error('Size must be xs, sm, md, lg, or xl')\n }\n\n let offset, margin, top, height, width, strokeWidth\n\n const { color, ...sxProp } = sx || {}\n\n const baseColor = color || (inverted ? 'secondary' : 'primary')\n const hoverColor = color ? 'primary' : inverted ? 'primary' : 'secondary'\n\n if (size === 'xs') {\n margin = ['6px', '6px', '6px', '6px']\n height = [12, 12, 12, 13]\n width = [12, 12, 12, 13]\n strokeWidth = [1.5, 1.5, 1.5, 1.5]\n offset = { transform: 'translateY(0.25px)' }\n }\n\n if (size === 'sm') {\n margin = ['7px', '7px', '7px', '7px']\n height = [13, 13, 13, 18]\n width = [13, 13, 13, 18]\n strokeWidth = [1.5, 1.5, 1.5, 2]\n offset = { transform: 'translateY(0.25px)' }\n }\n\n if (size === 'md') {\n margin = ['8px', '8px', '8px', '8px']\n height = [18, 18, 18, 24]\n width = [18, 18, 18, 24]\n strokeWidth = [2, 2, 2, 3]\n }\n\n if (size === 'lg') {\n margin = ['10px', '10px', '12px', '16px']\n height = [24, 24, 34, 46]\n width = [24, 24, 34, 46]\n strokeWidth = [3, 3, 4, 5]\n }\n\n if (size === 'xl') {\n margin = ['12px', '16px', '18px', '20px']\n height = [34, 46, 56, 68]\n width = [34, 46, 56, 68]\n strokeWidth = [4, 5, 6, 7]\n }\n\n let prefixHover,\n suffixHover,\n prefixAlign,\n suffixAlign,\n prefixOffset,\n suffixOffset\n\n if (align) {\n prefixAlign = align\n suffixAlign = align\n } else {\n if (prefix && suffix) {\n prefixAlign = 'initial'\n suffixAlign = 'initial'\n } else if (prefix) {\n prefixAlign = 'initial'\n } else if (suffix) {\n suffixAlign = 'middle'\n }\n }\n\n if (prefixAlign === 'middle') {\n prefixOffset = {}\n } else {\n prefixOffset = offset\n }\n\n if (suffixAlign === 'middle') {\n suffixOffset = {}\n } else {\n suffixOffset = offset\n }\n\n if (prefix) {\n prefixHover = {\n '&:hover > #prefix-span > #prefix': {\n color: hoverColor,\n ...prefix.type.hover,\n },\n }\n prefix = cloneElement(prefix, {\n id: 'prefix',\n sx: {\n position: 'relative',\n height: height,\n width: width,\n mr: children ? margin : [0],\n strokeWidth: strokeWidth,\n verticalAlign: prefixAlign,\n transition: 'color 0.15s, transform 0.15s',\n ...prefix.props.sx,\n },\n })\n }\n\n if (suffix) {\n suffixHover = {\n '&:hover > #suffix-span >#suffix': {\n color: hoverColor,\n ...suffix.type.hover,\n },\n }\n suffix = cloneElement(suffix, {\n id: 'suffix',\n sx: {\n height: height,\n width: width,\n ml: children ? margin : [0],\n strokeWidth: strokeWidth,\n verticalAlign: suffixAlign,\n transition: 'color 0.15s, transform 0.15s',\n ...suffix.props.sx,\n },\n })\n }\n\n let sizeStyles = getSizeStyles(size)\n\n const style = {\n ...sizeStyles,\n lineHeight: 1.05,\n border: 'none',\n background: 'transparent',\n display: 'block',\n color: baseColor,\n padding: [0],\n textAlign: 'left',\n cursor: 'pointer',\n width: 'fit-content',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n color: hoverColor,\n },\n ...suffixHover,\n ...prefixHover,\n },\n ...sxProp,\n }\n\n const Inner = (\n <>\n <Box\n as='span'\n id='prefix-span'\n sx={{ display: 'inline-block', ...prefixOffset }}\n >\n {prefix && prefix}\n </Box>\n <Box as='span' sx={{ transition: 'color 0.15s' }}>\n {children}\n </Box>\n <Box\n as='span'\n id='suffix-span'\n sx={{ display: 'inline-block', ...suffixOffset }}\n >\n {suffix && suffix}\n </Box>\n </>\n )\n\n if (href) {\n return (\n <Link\n ref={ref}\n href={href}\n internal={internal}\n tracking={tracking}\n sx={{\n ...style,\n textDecoration: 'none',\n }}\n {...props}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box ref={ref} as='button' sx={style} {...props}>\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef(Button)\n","import React, { forwardRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Link from './link'\n\nconst Callout = (\n { label, children, inverted, color, href, internal, tracking, sx, ...props },\n ref\n) => {\n const baseColor = color || (inverted ? 'secondary' : 'primary')\n const hoverColor = color ? 'primary' : inverted ? 'primary' : 'secondary'\n\n const style = {\n border: 'none',\n padding: [0],\n fontSize: [3, 3, 3, 4],\n color: baseColor,\n background: 'transparent',\n textDecoration: 'none',\n fontFamily: 'body',\n lineHeight: 'h3',\n letterSpacing: 'body',\n width: 'fit-content',\n cursor: 'pointer',\n textAlign: 'left',\n mb: [1],\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover > #container > #arrow': {\n transform: 'rotate(45deg)',\n fill: hoverColor,\n },\n '&:hover': {\n color: hoverColor,\n },\n },\n ...sx,\n }\n\n const Inner = (\n <>\n <Box sx={{ transition: '0.15s', letterSpacing: 'body', pb: ['6px'] }}>\n {children}\n </Box>\n <Box\n sx={{\n transition: '0.15s',\n display: 'inline-block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n }}\n >\n {label}\n </Box>\n <Box\n as='span'\n id='container'\n sx={{\n ml: [2],\n display: 'inline-block',\n }}\n >\n <Arrow\n id='arrow'\n sx={{\n transition: 'fill 0.15s, transform 0.15s',\n position: 'relative',\n top: ['2px'],\n color: baseColor,\n height: [15, 15, 15, 17],\n width: [15, 15, 15, 17],\n }}\n />\n </Box>\n </>\n )\n\n if (href) {\n return (\n <Link\n ref={ref}\n href={href}\n internal={internal}\n tracking={tracking}\n sx={style}\n {...props}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box ref={ref} as='button' sx={style} {...props}>\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef(Callout)\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Caption = ({ as = 'figcaption', number, children, label = 'figure' }) => {\n return (\n <Box\n as={as}\n sx={{\n color: 'secondary',\n display: 'block',\n textAlign: 'left',\n fontSize: [2, 2, 2, 3],\n }}\n >\n {number && (\n <>\n <Box\n sx={{\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n display: 'inline-block',\n }}\n >\n {label} {number}\n </Box>{' '}\n <Box sx={{ display: 'inline-block', mx: [1], pr: [1] }}>/</Box>\n </>\n )}\n {children}\n </Box>\n )\n}\n\nexport default Caption\n","import React, { useState, useEffect, useRef } from 'react'\nimport { Box, Flex } from 'theme-ui'\n\nconst styles = {\n clim: (setClim) => {\n return {\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary} !important`\n : 'unset',\n },\n },\n '&:focus': {\n outline: 'none',\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary} !important`\n : 'unset',\n },\n transition: 'border 0.15s',\n userSelect: setClim ? 'none !important' : 'unset',\n width: 'fit-content',\n minWidth: 'fit-content',\n }\n },\n}\n\nconst DIMENSIONS = {\n width: ['10px', '16px', '16px', '17px'],\n height: ['80px', '110px', '110px', '130px'],\n}\n\nconst Gradient = ({ colormap, discrete, horizontal, width, height }) => {\n const step = (1 / colormap.length) * 100\n const values = colormap.map((d, i) => {\n return `rgb(${d}) ${i * step}% ${\n discrete && i < colormap.length - 1 ? `${(i + 1) * step}%` : ''\n }`\n })\n\n const css = `linear-gradient(to ${\n horizontal ? 'right' : 'top'\n }, ${values.join(',')})`\n\n return (\n <Box\n sx={{\n ...(horizontal\n ? {\n width: width || DIMENSIONS.height,\n height: height || DIMENSIONS.width,\n }\n : {\n width: width || DIMENSIONS.width,\n minHeight: height || DIMENSIONS.height,\n }),\n mt: horizontal ? ['1px', '1px', '1px', 0] : 0,\n border: ({ colors }) => `solid 1px ${colors.hinted}`,\n background: css,\n }}\n />\n )\n}\n\nconst Label = ({ label, units, horizontal }) => (\n <Box\n sx={\n !horizontal && {\n width: ['13px', '17px', '17px', '19px'],\n alignSelf: 'flex-end',\n }\n }\n >\n <Box\n sx={{\n mb: horizontal ? 0 : ['-4px', '-4px', '-4px', '-3px'],\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\n ...(horizontal\n ? {}\n : {\n writingMode: 'vertical-rl',\n transform: 'rotate(180deg)',\n whiteSpace: 'nowrap',\n display: 'inline-block',\n overflow: 'visible',\n }),\n }}\n >\n {label}{' '}\n <Box\n as='span'\n sx={{\n textTransform: 'none',\n color: 'secondary',\n display: 'inline-block',\n }}\n >\n {units}\n </Box>\n </Box>\n </Box>\n)\n\nconst Colorbar = ({\n colormap,\n label,\n clim,\n setClim,\n setClimStep = 1,\n discrete,\n units,\n width,\n height,\n format = (d) => d,\n horizontal = false,\n bottom = false,\n sx,\n sxClim,\n ...props\n}) => {\n if (!Array.isArray(colormap)) {\n throw new Error(`expected array for colormap, got '${colormap}'.`)\n }\n\n const climRef = [useRef(), useRef()]\n const [climMinDragging, setClimMinDragging] = useState(false)\n const [climMaxDragging, setClimMaxDragging] = useState(false)\n\n let x,\n y,\n dx,\n dy = 0\n let id = null\n let init = [0, 0]\n let scale = setClimStep\n\n const draggingFunction = (e) => {\n if (id === 'min' && !climMinDragging) setClimMinDragging(true)\n if (id === 'max' && !climMaxDragging) setClimMaxDragging(true)\n dx = e.pageX - x\n dy = e.pageY - y\n if (horizontal) {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] + dx * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] + dx * scale, init[0])])\n } else {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] - dy * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] - dy * scale, init[0])])\n }\n }\n\n const handleMouseDown = (e) => {\n y = e.pageY\n x = e.pageX\n id = e.target.id\n init = clim\n\n document.body.setAttribute(\n 'style',\n horizontal\n ? 'cursor: ew-resize !important'\n : 'cursor: ns-resize !important'\n )\n document.addEventListener('mousemove', draggingFunction)\n const updater = () => {\n document.body.setAttribute('style', 'cursor: unset')\n document.removeEventListener('mousemove', draggingFunction)\n window.removeEventListener('mouseup', updater)\n if (id === 'min') setClimMinDragging(false)\n if (id === 'max') setClimMaxDragging(false)\n }\n window.addEventListener('mouseup', updater)\n }\n\n const increment = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] + scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] + scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n const decrement = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] - scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] - scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n useEffect(() => {\n const listener = (e) => {\n if (\n ['ArrowUp', 'ArrowRight'].includes(e.code) ||\n ['ArrowUp', 'ArrowRight'].includes(e.key)\n ) {\n increment(e)\n }\n if (\n ['ArrowDown', 'ArrowLeft'].includes(e.code) ||\n ['ArrowDown', 'ArrowLeft'].includes(e.key)\n ) {\n decrement(e)\n }\n }\n window.addEventListener('keydown', listener)\n\n return () => {\n window.removeEventListener('keydown', listener)\n }\n }, [clim])\n\n const ClimMin = () => {\n return (\n <Box\n id='min'\n ref={climRef[0]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: label\n ? horizontal\n ? bottom\n ? '0px'\n : '10px'\n : ['2px', '1px', '1px', '2px']\n : 0,\n mr: horizontal ? ['2px', '1px', '1px', '2px'] : 0,\n mb: horizontal ? 0 : ['-2px', '-2px', '-2px', '-3px'],\n borderBottom: setClim\n ? climMinDragging\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : ({ colors }) => `solid 1px ${colors.secondary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[0].current.focus()}\n >\n {format(clim[0])}\n </Box>\n )\n }\n\n const ClimMax = () => {\n return (\n <Box\n id='max'\n ref={climRef[1]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: horizontal\n ? ['2px', '1px', '1px', '2px']\n : ['2px', '1px', '1px', '2px'],\n mt: horizontal ? 0 : ['-2px', '-3px', '-3px', '-3px'],\n borderBottom: setClim\n ? climMaxDragging\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : ({ colors }) => `solid 1px ${colors.secondary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[1].current.focus()}\n >\n {format(clim[1])}\n </Box>\n )\n }\n\n return (\n <Flex\n {...props}\n sx={{\n flexDirection: 'row',\n alignItems: 'start',\n justifyContent: 'flex-start',\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n ...sx,\n }}\n >\n {label && <Label label={label} units={units} horizontal={horizontal} />}\n <Flex\n sx={{\n flexGrow: horizontal ? 1 : 'unset',\n flexDirection: 'column',\n ml: bottom && label ? '4px' : '0px',\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n <Flex\n sx={{\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n {horizontal && clim && !bottom && <ClimMin />}\n <Gradient\n colormap={colormap}\n horizontal={horizontal}\n discrete={discrete}\n width={width}\n height={height}\n />\n {horizontal && clim && !bottom && <ClimMax />}\n </Flex>\n {horizontal && clim && bottom && (\n <Flex sx={{ justifyContent: 'space-between' }}>\n <ClimMin />\n <ClimMax />\n </Flex>\n )}\n </Flex>\n\n {!horizontal && (\n <Flex\n sx={{\n flexDirection: 'column-reverse',\n justifyContent: 'space-between',\n height: height || DIMENSIONS.height,\n }}\n >\n {clim && <ClimMin />}\n {clim && <ClimMax />}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default Colorbar\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst InlineColor = ({ sx, color, children, ...props }) => {\n return (\n <Box\n as='span'\n sx={{ display: 'inline-block', color: color, ...sx }}\n {...props}\n >\n {children}\n </Box>\n )\n}\n\nconst Colors = {}\n\nColors.Primary = (props) => {\n return <InlineColor color='primary' {...props} />\n}\n\nColors.Secondary = (props) => {\n return <InlineColor color='secondary' {...props} />\n}\n\nColors.Background = (props) => {\n return <InlineColor color='background' {...props} />\n}\n\nColors.Red = (props) => {\n return <InlineColor color='red' {...props} />\n}\n\nColors.Orange = (props) => {\n return <InlineColor color='orange' {...props} />\n}\n\nColors.Yellow = (props) => {\n return <InlineColor color='yellow' {...props} />\n}\n\nColors.Green = (props) => {\n return <InlineColor color='green' {...props} />\n}\n\nColors.Teal = (props) => {\n return <InlineColor color='teal' {...props} />\n}\n\nColors.Blue = (props) => {\n return <InlineColor color='blue' {...props} />\n}\n\nColors.Purple = (props) => {\n return <InlineColor color='purple' {...props} />\n}\n\nColors.Pink = (props) => {\n return <InlineColor color='pink' {...props} />\n}\n\nColors.Grey = (props) => {\n return <InlineColor color='grey' {...props} />\n}\n\nexport default Colors\n","import React from 'react'\nimport Head from 'next/head'\n\nconst Meta = ({ title, description, card }) => {\n if (!description) {\n console.warn(\n 'a custom description should be used for search engine optimization'\n )\n }\n if (!title) {\n console.warn('a custom title should be used for search engine optimization')\n }\n const titleProp = title || 'CarbonPlan'\n const descriptionProp =\n description ||\n 'Improving the transparency and scientific integrity of carbon removal and climate solutions through open data and tools.'\n const cardProp = card || 'https://images.carbonplan.org/social/homepage.png'\n\n return (\n <Head>\n <title>{titleProp}</title>\n <meta name='description' content={descriptionProp} />\n <meta name='viewport' content='initial-scale=1.0, width=device-width' />\n <link\n rel='icon'\n type='image/svg+xml'\n href='https://images.carbonplan.org/favicon.svg'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-medium-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-mono-11-pitch-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-faux-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link rel='manifest' href='https://images.carbonplan.org/manifest.json' />\n <meta name='theme-color' content='#1b1e23' />\n <link\n rel='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\n <link\n rel='mask-icon'\n href='https://images.carbonplan.org/safari-pinned-tab.svg'\n color='#000000'\n />\n <link\n rel='apple-touch-icon'\n sizes='180x180'\n href='https://images.carbonplan.org/apple-touch-icon.png'\n />\n <meta name='msapplication-TileColor' content='#1b1e23' />\n <meta\n name='msapplication-TileImage'\n content='https://images.carbonplan.org/mstile-144x144.png'\n />\n <meta\n name='msapplication-config'\n content='https://images.carbonplan.org/browserconfig.xml'\n />\n <meta property='og:title' content={titleProp} />\n <meta property='og:description' content={descriptionProp} />\n <meta property='og:image' content={cardProp} />\n <meta property='og:url' content='https://carbonplan.org' />\n <meta name='twitter:title' content={titleProp} />\n <meta name='twitter:description' content={descriptionProp} />\n <meta name='twitter:image' content={cardProp} />\n <meta name='twitter:card' content='summary_large_image' />\n </Head>\n )\n}\n\nexport default Meta\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Logo = ({ ...props }) => {\n return (\n <Box\n as='svg'\n width='150'\n fill='currentColor'\n stroke='none'\n viewBox='0 0 151.1 28.8'\n {...props}\n >\n <g>\n <g>\n <path\n d='M9.7,20.1c-1.3-1.4-2-3.1-2-5.2c0-2.1,0.7-3.9,2-5.2c1.3-1.4,3-2,5.1-2c1.7,0,3.1,0.4,4.3,1.3\n c1.1,0.9,1.8,2.1,2.1,3.5c0,0.1,0,0.2,0,0.3s-0.1,0.2-0.2,0.2h-2.3c-0.2,0-0.3-0.1-0.4-0.2c-0.3-0.8-0.7-1.4-1.3-1.8\n c-0.6-0.4-1.4-0.6-2.2-0.6c-1.3,0-2.3,0.4-3,1.2c-0.8,0.8-1.1,1.9-1.1,3.4c0,1.5,0.4,2.6,1.1,3.4c0.8,0.8,1.8,1.2,3,1.2\n c0.8,0,1.6-0.2,2.2-0.6c0.6-0.4,1.1-1,1.3-1.8c0.1-0.2,0.2-0.2,0.4-0.3H21c0.1,0,0.2,0.1,0.2,0.2c0,0.1,0,0.2,0,0.3\n c-0.3,1.4-1,2.6-2.1,3.5c-1.1,0.9-2.5,1.3-4.3,1.3C12.7,22.1,11,21.4,9.7,20.1z'\n />\n </g>\n <g>\n <path\n d='M22.5,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1C30.6,7.6,32,8.1,33,9c1,0.9,1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C23,20.1,22.5,19,22.5,17.6z M25.4,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C25.7,16.3,25.4,16.8,25.4,17.5z'\n />\n </g>\n <g>\n <path\n d='M37,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.1c1-1.1,2.3-1.6,3.7-1.6\n c0.8,0,1.7,0.1,2.5,0.4c0.2,0.1,0.3,0.3,0.3,0.5v2.2c0,0.2-0.1,0.3-0.2,0.3c0,0-0.1,0-0.2-0.1c-1.1-0.5-2-0.8-2.9-0.8\n c-0.9,0-1.7,0.4-2.3,1.1c-0.6,0.7-0.9,1.7-0.9,3v7.3c0,0.2-0.1,0.3-0.3,0.3h-2.2C37.1,21.8,37,21.7,37,21.6z'\n />\n </g>\n <g>\n <path\n d='M47.6,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3H50c0.2,0,0.3,0.1,0.3,0.3v6.5c1.3-1.1,2.7-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2c1.1,1.3,1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.8,0-3.2-0.5-4.3-1.6v1\n c0,0.2-0.1,0.3-0.3,0.3h-2.2C47.7,21.8,47.6,21.7,47.6,21.6z M51.2,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3\n s1.7,1.3,2.9,1.3c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3\n C52.9,10.2,51.9,10.7,51.2,11.5z'\n />\n </g>\n <g>\n <path\n d='M64.3,20.1c-1.4-1.4-2.1-3.1-2.1-5.2c0-2.1,0.7-3.9,2.1-5.2c1.4-1.4,3.1-2,5.2-2c2.1,0,3.8,0.7,5.2,2\n c1.4,1.4,2.1,3.1,2.1,5.2c0,2.1-0.7,3.9-2.1,5.2c-1.4,1.4-3.1,2-5.2,2C67.4,22.1,65.7,21.4,64.3,20.1z M66.4,11.5\n c-0.8,0.8-1.2,2-1.2,3.4c0,1.4,0.4,2.5,1.2,3.4s1.9,1.3,3.1,1.3c1.3,0,2.3-0.4,3.1-1.3c0.8-0.8,1.2-2,1.2-3.4\n c0-1.4-0.4-2.5-1.2-3.4c-0.8-0.8-1.9-1.3-3.1-1.3C68.2,10.2,67.2,10.7,66.4,11.5z'\n />\n </g>\n <g>\n <path\n d='M78.7,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C78.7,21.8,78.7,21.7,78.7,21.6z'\n />\n </g>\n <g>\n <path\n d='M101.7,27.1V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1c1.1-1.1,2.5-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2s1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.5,0-3-0.5-4.3-1.6v6.6c0,0.2-0.1,0.3-0.3,0.3\n H102C101.8,27.3,101.7,27.2,101.7,27.1z M105.3,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3s1.7,1.3,2.9,1.3\n c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3C107,10.2,106,10.7,105.3,11.5z'\n />\n </g>\n <g>\n <path\n d='M117.2,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v18.9c0,0.2-0.1,0.3-0.3,0.3h-2.2\n C117.3,21.8,117.2,21.7,117.2,21.6z'\n />\n </g>\n <g>\n <path\n d='M122,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1c1.7,0,3.1,0.5,4.2,1.4s1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C122.5,20.1,122,19,122,17.6z M124.9,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C125.2,16.3,124.9,16.8,124.9,17.5z'\n />\n </g>\n <g>\n <path\n d='M136.9,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C137,21.8,136.9,21.7,136.9,21.6z'\n />\n </g>\n <path\n d='M97.6,14.9c0,4.2-0.6,8.3-1.6,12.3c0,0.1-0.1,0.2-0.2,0.2h-2.4c-0.1,0-0.2-0.1-0.2-0.3c1.1-3.9,1.7-8,1.7-12.2\n s-0.6-8.3-1.7-12.2c0-0.1,0.1-0.3,0.2-0.3l2.4,0c0.1,0,0.2,0.1,0.2,0.2C97.1,6.5,97.6,10.6,97.6,14.9z'\n />\n <path\n d='M1.4,14.9C1.4,10.6,2,6.5,3,2.6c0-0.1,0.1-0.2,0.2-0.2l2.4,0c0.1,0,0.2,0.1,0.2,0.3c-1.1,3.9-1.7,8-1.7,12.2\n s0.6,8.3,1.7,12.2c0,0.1-0.1,0.3-0.2,0.3H3.3c-0.1,0-0.2-0.1-0.2-0.2C2,23.2,1.4,19.1,1.4,14.9z'\n />\n </g>\n </Box>\n )\n}\n\nexport default Logo\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Menu = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='52' y1='29.9' x2='16' y2='29.9' />\n <line x1='52' y1='6.1' x2='16' y2='6.1' />\n <line x1='52' y1='18' x2='16' y2='18' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Menu\n","import React, { useState } from 'react'\nimport { default as NextLink } from 'next/link'\nimport { Box, Flex, Container, Link } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Logo from './logo'\nimport Row from './row'\nimport Column from './column'\nimport Menu from './menu'\n\nconst sx = {\n link: (current, label, first = false) => {\n return {\n width: 'auto',\n color: current === label ? 'secondary' : 'text',\n fontSize: [6, 6, 7, 8],\n fontFamily: 'heading',\n letterSpacing: 'heading',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderTopWidth: first ? '1px' : '0px',\n py: [3, 3, 4, 5],\n textDecoration: 'none',\n display: 'block',\n position: 'relative',\n transition: 'color 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover > #arrow': {\n opacity: 1,\n },\n },\n '&:hover': {\n color: current == label ? 'secondary' : 'text',\n },\n }\n },\n}\n\nconst links = [\n { url: 'about', display: 'About' },\n { url: 'research', display: 'Research' },\n { url: 'blog', display: 'Blog' },\n { url: 'press', display: 'Press' },\n]\n\nconst HoverArrow = () => {\n return (\n <Arrow\n id='arrow'\n sx={{\n pointerEvents: 'none',\n display: 'inline-block',\n position: 'absolute',\n left: ['-60px', '-68px', '-80px', '-104px'],\n top: ['32px', '32px', '46px', '62px'],\n opacity: 0,\n transition: 'opacity 0.2s ease-out',\n transform: 'rotate(45deg)',\n width: [36, 36, 48, 56],\n height: [36, 36, 48, 56],\n }}\n />\n )\n}\n\nconst Nav = ({ link, mode, nav, first, setExpanded }) => {\n const { url, display } = link\n const href = mode === 'remote' ? 'https://carbonplan.org/' + url : '/' + url\n\n if (mode === 'homepage' || (mode === 'local' && nav === url)) {\n return (\n <NextLink href={href} passHref>\n <Link\n onClick={() => {\n if (nav === url) setExpanded(false)\n }}\n sx={sx.link(nav, url, first)}\n >\n <HoverArrow />\n {display}\n </Link>\n </NextLink>\n )\n } else {\n return (\n <Link href={href} sx={sx.link(nav, url, first)}>\n <HoverArrow />\n {display}\n </Link>\n )\n }\n}\n\nconst NavGroup = ({ links, nav, mode, setExpanded }) => {\n return links.map((d, i) => {\n return (\n <Nav\n key={i}\n link={d}\n mode={mode}\n nav={nav}\n first={i === 0}\n setExpanded={setExpanded}\n />\n )\n })\n}\n\nconst Header = ({ status, mode, nav, menuItems }) => {\n const [expanded, setExpanded] = useState(false)\n\n const toggle = (e) => {\n setExpanded(!expanded)\n }\n\n return (\n <Row\n sx={{\n pt: ['12px'],\n pb: [3],\n }}\n >\n <Column start={[1]} width={[2]}>\n <Box\n sx={{ pointerEvents: 'all', display: 'block', width: 'fit-content' }}\n >\n {(mode == 'homepage' || mode == 'local') && (\n <NextLink href='/' passHref>\n <Link\n aria-label='CarbonPlan Homepage'\n sx={{\n display: 'block',\n }}\n >\n <Logo\n id='logo'\n sx={{\n cursor: 'pointer',\n color: 'primary',\n }}\n />\n </Link>\n </NextLink>\n )}\n {(mode == null || mode == 'remote') && (\n <Link\n href='https://carbonplan.org'\n aria-label='CarbonPlan Homepage'\n sx={{ display: 'block' }}\n >\n <Logo sx={{ cursor: 'pointer', color: 'primary' }} />\n </Link>\n )}\n </Box>\n </Column>\n <Column\n start={[4, 9]}\n width={[2, 2]}\n dr={1}\n sx={{\n display: [status ? 'flex' : 'none', 'flex', 'flex', 'flex'],\n alignItems: 'center',\n }}\n >\n <Box\n sx={{\n fontSize: [1, 2, 3],\n position: 'relative',\n top: ['-2px', '-3px', '-3px'],\n }}\n >\n {status ? `(${status})` : ''}\n </Box>\n </Column>\n <Column\n start={[status ? 6 : 4, 6, 11, 11]}\n width={[status ? 1 : 3, 3, 2, 2]}\n sx={{ zIndex: 5000 }}\n >\n <Flex sx={{ pointerEvents: 'all', justifyContent: 'flex-end' }}>\n <Box\n sx={{\n display: [status ? 'none' : 'flex', 'flex', 'flex', 'flex'],\n mr: '18px',\n gap: '18px',\n opacity: expanded ? 0 : 1,\n transition: 'opacity 0.15s',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n {menuItems}\n </Box>\n <Menu\n sx={{\n flexShrink: 0,\n mr: ['-2px'],\n }}\n value={expanded}\n onClick={toggle}\n />\n </Flex>\n </Column>\n <Box\n sx={{\n opacity: expanded ? 1 : 0,\n pointerEvents: expanded ? 'all' : 'none',\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n minWidth: '0px',\n maxHeight: '100vh',\n width: '100vw',\n backgroundColor: 'background',\n zIndex: 4000,\n pt: ['79px'],\n transition: 'opacity 0.25s',\n }}\n >\n <Container>\n <Row>\n <Column start={[2, 4, 7, 7]} width={[5, 4, 5, 5]}>\n <Box\n as='nav'\n sx={{\n display: expanded ? 'inherit' : 'none',\n mt: [5, 5, 5, 6],\n }}\n >\n <NavGroup\n links={links}\n nav={nav}\n mode={mode}\n setExpanded={setExpanded}\n />\n </Box>\n </Column>\n </Row>\n </Container>\n </Box>\n </Row>\n )\n}\n\nexport default Header\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Monogram = ({ ...props }) => {\n return (\n <Box\n as='svg'\n width='80'\n stroke='none'\n fill='currentColor'\n viewBox='0 0 32 32'\n {...props}\n >\n <path d='M21.9395,14.9395 L17.5005,19.3785 L17.5005,7.0005 L14.5005,7.0005 L14.5005,19.3785 L10.0605,14.9395 L7.9395,17.0605 L14.9395,24.0605 C15.2325,24.3535 15.6165,24.5005 16.0005,24.5005 C16.3835,24.5005 16.7675,24.3535 17.0605,24.0605 L24.0605,17.0605 L21.9395,14.9395 Z'></path>\n <path d='M27.5986,4 L22.8966,4 C26.5556,6.303 28.9996,10.366 28.9996,15 C28.9996,20.4 25.6896,25.039 20.9926,27 L26.5586,27 C29.8886,24.068 31.9996,19.785 31.9996,15 C31.9996,10.734 30.3196,6.868 27.5986,4'></path>\n <path d='M3,15 C3,10.366 5.444,6.303 9.104,4 L4.401,4 C1.68,6.868 0,10.734 0,15 C0,19.785 2.112,24.068 5.441,27 L11.008,27 C6.311,25.039 3,20.4 3,15'></path>\n </Box>\n )\n}\n\nexport default Monogram\n","import React from 'react'\nimport { Box, Grid, Link } from 'theme-ui'\nimport { default as NextLink } from 'next/link'\nimport Monogram from './monogram'\nimport Row from './row'\nimport Column from './column'\n\nconst Footer = () => {\n return (\n <Box\n sx={{\n mt: [7, 7, 7, 8],\n mb: [7, 7, 7, 8],\n pb: [2, 1, 0, 0],\n }}\n >\n <Row sx={{ mb: [0, 0, 4, 5] }}>\n <Column start={[1, 2]} width={[3, 3]}>\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'heading',\n letterSpacing: 'mono',\n mb: [2],\n }}\n >\n EMAIL\n </Box>\n <Link\n href='mailto:hello@carbonplan.org'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n hello@carbonplan.org\n </Link>\n </Box>\n </Column>\n <Column\n start={[5]}\n width={[1]}\n dl={1}\n dr={1}\n sx={{\n display: ['flex', 'none', 'none', 'none'],\n justifyContent: ['center'],\n }}\n >\n <Monogram sx={{ mt: ['-4px'], width: '60px', height: '60px' }} />\n </Column>\n <Column start={[1, 5, 5, 5]} width={[3, 3]} sx={{ mt: [3, 0, 0, 0] }}>\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'heading',\n letterSpacing: 'mono',\n mb: [2],\n }}\n >\n FOLLOW\n </Box>\n <Link\n href='https://twitter.com/carbonplanorg'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n @carbonplanorg\n </Link>\n </Box>\n </Column>\n <Column\n start={[1, 9]}\n width={[5, 4, 3, 3]}\n sx={{ mt: ['42px', '42px', 0, 0], mb: [3, 3, 0, 0] }}\n >\n <Box>\n <Box\n sx={{\n fontSize: [2, 2, 2, 3],\n fontFamily: 'body',\n color: 'secondary',\n }}\n >\n CarbonPlan is a registered non-profit public benefit corporation\n in California with 501(c)(3) status.\n </Box>\n </Box>\n </Column>\n </Row>\n <Row sx={{ mb: ['2px'], mt: [5, 5, 4] }}>\n <Column\n start={[1, 1, 2, 2]}\n width={[3, 2, 3, 3]}\n sx={{\n display: 'flex',\n alignItems: ['flex-start', 'flex-start', 'flex-end'],\n }}\n >\n <Box\n sx={{\n bottom: '0px',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n pt: [2],\n }}\n >\n <Box\n sx={{\n color: 'secondary',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n }}\n >\n (c) 2021 CARBONPLAN\n </Box>\n </Box>\n </Column>\n <Column\n start={[4, 3, 5, 5]}\n width={[2, 2, 3, 3]}\n sx={{\n display: 'flex',\n alignItems: ['flex-start', 'flex-start', 'flex-end'],\n mt: [0, 0, 0, 0],\n }}\n >\n <Box\n sx={{\n bottom: '0px',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n width: ['100%', 'auto', 'auto', 'auto'],\n pt: [2],\n }}\n >\n <NextLink href='/terms' passHref>\n <Box\n as='a'\n sx={{\n textDecoration: 'none',\n fontSize: [1, 1, 1, 2],\n color: 'secondary',\n fontFamily: 'mono',\n letterSpacing: 'mono',\n display: 'block',\n }}\n >\n READ OUR TERMS\n </Box>\n </NextLink>\n </Box>\n </Column>\n <Column\n start={[5, 7, 9, 9]}\n width={[2, 3, 3, 3]}\n sx={{ display: ['none', 'initial', 'initial', 'initial'] }}\n >\n <Monogram\n sx={{\n width: 80,\n height: 80,\n mt: [0, '-10px', 4, 5],\n mb: ['-12px'],\n }}\n />\n </Column>\n </Row>\n </Box>\n )\n}\n\nexport default Footer\n","import React from 'react'\nimport { Box, IconButton, useColorMode } from 'theme-ui'\nimport { useCallback } from 'react'\nimport { Sun } from '@carbonplan/icons'\n\nconst Dimmer = ({ sx, ...props }) => {\n const [colorMode, setColorMode] = useColorMode()\n\n const toggle = useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light')\n }, [colorMode])\n\n return (\n <IconButton\n aria-label='Toggle dark mode'\n onClick={toggle}\n role='checkbox'\n sx={{\n width: 32,\n height: 32,\n display: 'inline-block',\n cursor: 'pointer',\n color: 'secondary',\n ...sx,\n }}\n {...props}\n >\n <Sun\n sx={{\n strokeWidth: '1.75',\n transition: 'stroke 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n stroke: 'primary',\n },\n },\n }}\n />\n </IconButton>\n )\n}\n\nexport default Dimmer\n","import React from 'react'\nimport { Box, Text, Link, useThemeUI } from 'theme-ui'\n\nconst GitSha = () => {\n const sha = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA\n const owner = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER\n const slug = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG\n\n const { theme } = useThemeUI()\n\n const color = theme.rawColors.secondary\n\n if (sha && owner && slug) {\n const shortSha = sha.substring(0, 7)\n const href = 'https://github.com/' + owner + '/' + slug + '/tree/' + sha\n\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Link\n href={href}\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n textDecoration: 'none',\n }}\n >\n {shortSha}\n </Link>\n </Box>\n )\n } else {\n // fallback\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {color}\n </Text>\n </Box>\n )\n }\n}\n\nconst Separator = ({ color }) => {\n return (\n <svg fill={color} opacity='0.8' viewBox='0 0 24 24' width='24' height='24'>\n <circle r={5} cx={19} cy={19} />\n </svg>\n )\n}\n\nexport default GitSha\n","import React from 'react'\nimport { Box, Text } from 'theme-ui'\nimport { useState, useEffect } from 'react'\nimport GitSha from './gitsha'\n\nconst Value = ({ mode }) => {\n const [display, setDisplay] = useState(init(mode))\n\n useEffect(() => {\n if (mode === 'mouse') {\n const setFromEvent = (e) => {\n const x = format(e.clientX, 4)\n const y = format(e.clientY, 4)\n setDisplay(`X,Y: ${x},${y}`)\n }\n window.addEventListener('mousemove', setFromEvent)\n return () => {\n window.removeEventListener('mousemove', setFromEvent)\n }\n }\n if (mode === 'scroll') {\n const setFromEvent = (e) => {\n const y = scrollFraction(window, document)\n setDisplay(`SCROLL: 0.${format((y * 100).toFixed(0), 2)}`)\n }\n window.addEventListener('scroll', setFromEvent)\n const y = scrollFraction(window, document)\n return () => {\n window.removeEventListener('scroll', setFromEvent)\n }\n }\n }, [])\n\n return (\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n mr: '-6px',\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: 'secondary',\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {display}\n </Text>\n )\n}\n\nconst Metadata = ({ mode }) => {\n return (\n <Box\n sx={{\n userSelect: 'none',\n position: 'fixed',\n bottom: '42px',\n right: '24px',\n transformOrigin: 'right',\n transform: 'rotate(90deg)',\n display: ['none', 'none', 'initial'],\n }}\n >\n <Value mode={mode} />\n <GitSha />\n </Box>\n )\n}\n\nfunction init(mode) {\n if (mode === 'mouse') {\n return `X,Y: ${format(0, 4)},${format(0, 4)}`\n } else if (mode === 'scroll') {\n return `SCROLL: 0.${format((0).toFixed(0), 2)}`\n } else {\n return mode\n }\n}\n\nfunction format(num, pad) {\n return num.toString().padStart(pad, '0')\n}\n\nfunction scrollFraction(window, documnt) {\n return Math.min(window.scrollY / (document.body.offsetHeight - 770), 0.99)\n}\n\nexport default Metadata\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { keyframes } from '@emotion/react'\n\nconst fade = keyframes({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n})\n\nconst FadeIn = ({ duration = 300, delay = 0, children, ...delegated }) => {\n return (\n <Box\n {...delegated}\n sx={{\n animationDuration: duration + 'ms',\n animationDelay: delay + 'ms',\n animationName: fade.toString(),\n animationFillMode: 'backwards',\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default FadeIn\n","const getScrollbarWidth = (document) => {\n const outer = document.createElement('div')\n outer.style.visibility = 'hidden'\n outer.style.width = '100px'\n document.body.appendChild(outer)\n outer.style.overflow = 'scroll'\n const inner = document.createElement('div')\n inner.style.width = '100%'\n outer.appendChild(inner)\n const delta = outer.offsetWidth - inner.offsetWidth\n outer.parentNode.removeChild(outer)\n return delta\n}\n\nexport default getScrollbarWidth\n","import React, { useEffect } from 'react'\nimport getScrollbarWidth from './utils/get-scrollbar-width'\n\nconst Scrollbar = () => {\n useEffect(() => {\n if (typeof document !== 'undefined') {\n const delta = getScrollbarWidth(document)\n if (delta > 0) {\n document.body.classList.add('custom-scrollbar')\n document\n .getElementsByTagName('html')[0]\n .classList.add('custom-scrollbar')\n }\n }\n }, [])\n return null\n}\n\nexport default Scrollbar\n","import React, { useState, useEffect } from 'react'\nimport { Box, Container } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Guide = ({ color = 'muted' }) => {\n const [display, setDisplay] = useState(false)\n\n useEffect(() => {\n function handler(event) {\n const { key, keyCode, metaKey } = event\n if (key === ';' && metaKey) {\n setDisplay((prev) => !prev)\n }\n }\n\n document.addEventListener('keydown', handler)\n return () => {\n document.removeEventListener('keydown', handler)\n }\n }, [])\n\n return (\n <Box\n sx={{\n position: 'fixed',\n width: '100%',\n left: 0,\n top: 0,\n zIndex: color === 'teal' ? 5000 : -1,\n pointerEvents: 'none',\n display: display ? 'initial' : 'none',\n }}\n >\n <Container>\n <Box sx={{ display: ['none', 'none', 'initial', 'initial'] }}>\n <GuideColumns\n indices={[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}\n color={color}\n />\n </Box>\n <Box sx={{ display: ['none', 'initial', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6, 7, 8]} color={color} />\n </Box>\n <Box sx={{ display: ['initial', 'none', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6]} color={color} />\n </Box>\n </Container>\n </Box>\n )\n}\n\nconst colorCycle = [\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'teal',\n 'blue',\n 'purple',\n 'pink',\n]\n\nfunction GuideColumns({ indices, color }) {\n const sx = {\n outerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: color === 'teal' ? '0px' : '1px',\n borderRightWidth: color === 'teal' ? '0px' : '1px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n innerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: '0px',\n borderRightWidth: '0px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n }\n\n return (\n <Row>\n {indices.map((i) => {\n return (\n <Column\n key={i}\n start={[i]}\n width={[1, 1]}\n dl={0.5}\n dr={0.5}\n sx={{\n bg: color === 'teal' ? 'teal' : 'transparent',\n height: '100vh',\n ...sx.innerGuideColumn,\n }}\n >\n <Box\n sx={{\n mx: ['12px', 3, 3, 4],\n bg: color === 'teal' ? 'background' : 'transparent',\n height: '100%',\n borderLeftColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n borderRightColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n ...sx.outerGuideColumn,\n }}\n ></Box>\n </Column>\n )\n })}\n </Row>\n )\n}\n\nexport default Guide\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Settings = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='24' y1='2.1' x2='24' y2='6.1' />\n <line x1='24' y1='24.1' x2='24' y2='33.9' />\n <line x1='44' y1='2.1' x2='44' y2='12.1' />\n <line x1='44' y1='30.1' x2='44' y2='33.9' />\n <circle cx='24' cy='15.1' r='5' />\n <circle cx='44' cy='21.1' r='5' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n transform: 'scale(2)',\n marginTop: '-3px',\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Settings\n","import React, { useEffect } from 'react'\nimport { useThemeUI, Container, Flex, Box } from 'theme-ui'\nimport Meta from './meta'\nimport Header from './header'\nimport Footer from './footer'\nimport Dimmer from './dimmer'\nimport Metadata from './metadata'\nimport FadeIn from './fade-in'\nimport Scrollbar from './scrollbar'\nimport Guide from './guide'\nimport Settings from './settings'\n\nconst Layout = ({\n title,\n description,\n card,\n children,\n status,\n nav,\n settings,\n footer = true,\n header = true,\n metadata = 'mouse',\n links = 'remote',\n dimmer = 'bottom',\n guide = true,\n scrollbar = true,\n fade = true,\n container = true,\n printable = false,\n}) => {\n let content = children\n\n if (fade) {\n content = <FadeIn duration={250}>{content}</FadeIn>\n }\n if (container) {\n content = (\n <Box sx={{ mb: [8, 8, 9, 10] }}>\n <Container>{content}</Container>\n </Box>\n )\n }\n\n const { theme } = useThemeUI()\n\n const hideOnPrint = printable\n ? {\n '@media print': {\n display: 'none',\n },\n }\n : {}\n\n useEffect(() => {\n if (!theme) return\n\n const handler = (e) => {\n if (e.matches && settings?.value && settings?.onClick) {\n settings?.onClick()\n }\n }\n\n const query = window.matchMedia(`(min-width: ${theme.breakpoints[1]})`)\n query.onchange = handler\n\n return () => {\n query.onchange = null\n }\n }, [theme?.breakpoints, settings?.value, settings?.onClick])\n\n const menuItems = [\n <Dimmer\n key='dimmer'\n sx={{\n color: 'primary',\n mt: '-2px',\n display: [\n 'block',\n 'block',\n dimmer === 'top' ? 'block' : 'none',\n dimmer === 'top' ? 'block' : 'none',\n ],\n }}\n />,\n ]\n\n if (settings) {\n menuItems.push(\n <Settings\n key='settings'\n sx={{ mr: ['2px'], display: ['inherit', 'inherit', 'none', 'none'] }}\n {...settings}\n />\n )\n }\n\n return (\n <>\n {guide && <Guide color={guide} />}\n {scrollbar && <Scrollbar />}\n <Meta card={card} description={description} title={title} />\n <Flex\n sx={{\n flexDirection: 'column',\n minHeight: '100vh',\n }}\n >\n {header && (\n <Box\n as='header'\n sx={{\n width: '100%',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n position: 'sticky',\n top: 0,\n bg: 'background',\n height: '56px',\n zIndex: 2000,\n ...hideOnPrint,\n }}\n >\n <Container>\n <Header\n mode={links}\n status={status}\n nav={nav}\n menuItems={menuItems}\n />\n </Container>\n </Box>\n )}\n <Box\n sx={{\n width: '100%',\n flex: '1 1 auto',\n }}\n >\n {content}\n </Box>\n {footer && (\n <Box\n as='footer'\n sx={{\n width: '100%',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderTopWidth: '1px',\n ...hideOnPrint,\n }}\n >\n <Container>\n <Footer />\n </Container>\n </Box>\n )}\n {dimmer === 'bottom' && (\n <Box\n sx={{\n display: ['none', 'none', 'initial', 'initial'],\n position: ['fixed'],\n right: [13],\n bottom: [17, 17, 15, 15],\n }}\n >\n <Dimmer />\n </Box>\n )}\n {metadata && <Metadata mode={metadata} />}\n </Flex>\n </>\n )\n}\n\nexport default Layout\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Tag = ({ label, value, sx, children, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const isClickable = props && (props.onClick || props.onDoubleClick)\n\n return (\n <Box\n as={isClickable ? 'button' : 'span'}\n role='checkbox'\n aria-checked={value}\n aria-label={label}\n sx={{\n display: 'inline-block',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n cursor: isClickable ? 'pointer' : 'inherit',\n color: color,\n backgroundColor: 'transparent',\n borderStyle: 'solid',\n borderColor: color,\n lineHeight: 'body',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n textTransform: 'uppercase',\n userSelect: 'none',\n transition: 'opacity 0.05s',\n pt: ['1px'],\n pb: ['2px'],\n px: [0],\n m: [0],\n opacity: value == null || value ? 1 : color == 'primary' ? 0.24 : 0.33,\n ...sx,\n }}\n {...props}\n >\n {children}\n </Box>\n )\n}\n\nexport default Tag\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Tag from './tag'\n\nconst sx = {\n label: {\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [1, 1, 1, 2],\n color: 'secondary',\n userSelect: 'none',\n textTransform: 'uppercase',\n },\n}\n\nconst duplicateOptions = (options, defaultValue, overrides = {}) => {\n return Object.keys(options).reduce(\n (o, key) => Object.assign(o, { [key]: overrides[key] || defaultValue }),\n {}\n )\n}\n\nconst isAll = (option) => {\n return (\n Object.keys(option).filter((d) => option[d]).length ==\n Object.keys(option).length\n )\n}\n\nconst updateValues = ({ values, multiSelect, setValues, value }) => {\n const isAllAlreadySelected = isAll(values)\n const isSelectingAll = value === 'all'\n\n let updatedToggle\n\n if (multiSelect) {\n if (isSelectingAll && !isAllAlreadySelected) {\n // select all\n updatedToggle = duplicateOptions(values, true)\n } else if (isSelectingAll && isAllAlreadySelected) {\n // deselect all\n updatedToggle = duplicateOptions(values, false)\n } else {\n // de/select value, inherit other values\n updatedToggle = { ...values, [value]: !values[value] }\n }\n } else {\n if (isSelectingAll && !isAllAlreadySelected) {\n // select all\n updatedToggle = duplicateOptions(values, true)\n } else if (isSelectingAll && isAllAlreadySelected) {\n // do nothing\n } else {\n // select only value\n updatedToggle = duplicateOptions(values, false, { [value]: true })\n }\n }\n\n if (updatedToggle) {\n setValues(updatedToggle)\n }\n}\n\nconst Filter = ({\n values,\n setValues,\n label,\n colors,\n showAll = false,\n multiSelect = false,\n ...props\n}) => {\n return (\n <Box {...props}>\n {label && <Box sx={sx.label}>{label}</Box>}\n <Box sx={{ mt: label ? [3] : 0 }}>\n {showAll && (\n <Tag\n onClick={() =>\n updateValues({\n values: values,\n multiSelect,\n setValues: setValues,\n value: 'all',\n })\n }\n value={isAll(values)}\n sx={{ mr: [2] }}\n >\n All\n </Tag>\n )}\n {Object.keys(values).map((d, i) => (\n <Tag\n onClick={() =>\n updateValues({\n values: values,\n multiSelect,\n setValues: setValues,\n value: d,\n })\n }\n onDoubleClick={() =>\n updateValues({\n values: values,\n multiSelect: false,\n setValues: setValues,\n value: d,\n })\n }\n key={i}\n value={values[d]}\n sx={{\n width: 'max-content',\n color: colors ? colors[d] : 'primary',\n mr: [2],\n mb: [1],\n }}\n >\n {d}\n </Tag>\n ))}\n </Box>\n </Box>\n )\n}\n\nexport default Filter\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Column from './column'\n\nconst Sidenote = ({ children, variant = 'h1' }) => {\n let mt\n if (variant === 'h1') mt = [4, '27px', '42px', '54px']\n if (variant === 'h2') mt = [4, 4, '14px', '25px']\n return (\n <>\n <Column start={[1, 4, 8, 8]} width={[1, 1, 1, 1]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n textAlign: 'right',\n }}\n >\n /\n </Box>\n </Column>\n <Column start={[2, 5, 9, 9]} width={[3, 3, 2, 2]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n height: ['100%', '0px', '0px', '0px'],\n }}\n >\n {children}\n </Box>\n </Column>\n </>\n )\n}\n\nexport default Sidenote\n","import React, { forwardRef } from 'react'\nimport { Input as ThemedInput } from 'theme-ui'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Input = ({ size = 'sm', inverted, sx, ...props }, ref) => {\n const defaultColor = inverted ? 'secondary' : 'primary'\n\n const styles = {\n color: defaultColor,\n borderColor: 'secondary',\n borderStyle: 'solid',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderRadius: '0px',\n transition: 'border 0.15s',\n borderBottomWidth: '1px',\n width: 'calc(min(15ch, 100%))',\n p: [0],\n py: ['2px'],\n 'input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n 'input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n ':focus': {\n borderColor: 'primary',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: 'none !important',\n },\n ...getSizeStyles(size),\n ...sx,\n }\n return <ThemedInput {...props} ref={ref} sx={styles} />\n}\n\nexport default forwardRef(Input)\n","import React, { forwardRef } from 'react'\nimport { useThemeUI, Slider as ThemeSlider } from 'theme-ui'\n\nconst Slider = ({ sx, ...props }, ref) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const {\n theme: { rawColors: colors },\n } = useThemeUI()\n\n return (\n <ThemeSlider\n ref={ref}\n sx={{\n '&::-webkit-slider-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n '&::-moz-range-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: `${colors.secondary} !important`,\n },\n ':focus': {\n color: color,\n '&::-webkit-slider-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n '&::-moz-range-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n },\n color: color,\n ...sx,\n }}\n {...props}\n />\n )\n}\n\nexport default forwardRef(Slider)\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst styles = {\n reset: {\n verticalAlign: 'baseline',\n border: 0,\n outline: 0,\n margin: 0,\n padding: 0,\n },\n row: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderTopWidth: '1px',\n borderColor: 'muted',\n pt: [3, 3, 3, '20px'],\n pb: [3, 3, 3, '20px'],\n mb: ['2px'],\n },\n header: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n index: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n entry: {\n display: 'block',\n fontSize: [2, 2, 2, 3],\n fontFamily: 'faux',\n letterSpacing: 'faux',\n mb: ['1px'],\n mt: [2, 0, 0, 0],\n },\n}\n\nconst Table = ({\n data,\n sx,\n color,\n header,\n columns,\n start,\n width,\n index = true,\n borderBottom = true,\n borderTop = true,\n}) => {\n if (!start || !columns || !width) {\n throw new Error('Must provide columns, start, and width')\n }\n return (\n <Box as='table' sx={{ display: 'block', ...sx }}>\n <Box as='tbody' sx={{ display: 'block' }}>\n {header && (\n <Row\n as='tr'\n sx={{\n ...styles.reset,\n ...styles.header,\n ...styles.row,\n color: color,\n borderTopWidth: !borderTop ? '0px' : '1px',\n }}\n >\n <Column as='td' start={[1]} width={columns} sx={styles.index}>\n {header}\n </Column>\n </Row>\n )}\n {data.map((row, i) => {\n return (\n <Row\n as='tr'\n columns={columns}\n key={i}\n sx={{\n ...styles.reset,\n ...styles.row,\n pb:\n borderBottom && i === data.length - 1\n ? ['18px', '18px', '18px', '22px']\n : [3, 3, 3, '20px'],\n borderBottomWidth:\n borderBottom && i === data.length - 1 ? '1px' : '0px',\n borderTopWidth:\n !borderTop && i === 0 && !header ? '0px' : '1px',\n }}\n >\n {row.map((column, j) => {\n return (\n <Column\n as='td'\n key={j}\n start={start[j]}\n width={width[j]}\n sx={\n j == 0 && index\n ? { ...styles.reset, ...styles.index }\n : { ...styles.reset, ...styles.entry }\n }\n >\n {column}\n </Column>\n )\n })}\n </Row>\n )\n })}\n </Box>\n </Box>\n )\n}\n\nexport default Table\n","import React, { forwardRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\n\nconst Toggle = ({ value, onClick, disabled, sx, ...props }, ref) => {\n const color = sx && sx.color ? sx.color : 'primary'\n value = disabled ? false : value\n return (\n <Box\n ref={ref}\n as='button'\n onClick={onClick}\n role='checkbox'\n aria-checked={value}\n aria-label='Toggle'\n sx={{\n border: 'none',\n background: 'none',\n cursor: disabled ? 'default' : 'pointer',\n p: [0],\n m: [0],\n display: 'inline-block',\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n width: '50px',\n height: '20px',\n borderRadius: '20px',\n backgroundColor: value\n ? transparentize(color, color == 'primary' ? 0.5 : 0.45)\n : 'muted',\n position: 'relative',\n transition: '0.15s',\n display: 'inline-block',\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n borderRadius: '7px',\n position: 'absolute',\n left: value ? '32px' : '4px',\n top: '3px',\n backgroundColor: value ? color : 'secondary',\n transition: '0.15s',\n }}\n ></Box>\n </Box>\n </Box>\n )\n}\n\nexport default forwardRef(Toggle)\n","const defaultOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n}\n\nconst formatDateElement = (date, element, option) => {\n if (!option) {\n return null\n }\n\n const format = typeof option === 'string' ? option : defaultOptions[element]\n\n const result = date.toLocaleString('default', {\n [element]: format,\n })\n\n if (format === 'numeric' && ['day', 'month'].includes(element)) {\n return result.padStart(2, '0')\n } else {\n return result\n }\n}\nconst formatDate = (date, options = defaultOptions) => {\n const d = new Date(date.replace(/-/g, '/'))\n\n const month = formatDateElement(d, 'month', options.month)\n const day = formatDateElement(d, 'day', options.day)\n const year = formatDateElement(d, 'year', options.year)\n\n return [month, day, year].filter(Boolean).join(options.separator ?? ' ')\n}\n\nexport default formatDate\n","import React from 'react'\nimport { Box, Styled, Container, Grid } from 'theme-ui'\nimport { PoopSad } from '@carbonplan/emoji'\nimport Layout from './layout'\nimport Row from './row'\nimport Column from './column'\n\nconst Custom404 = () => {\n return (\n <Layout\n footer={false}\n title={'404 – CarbonPlan'}\n description={\n \"Sorry but we can't seem to find the page you are looking for.\"\n }\n >\n <Row sx={{ mb: [5, 0, 0], pt: [0, 0, 6] }}>\n <Column start={[1, 1, 3, 3]} width={[6, 4, 4, 4]}>\n <Styled.h1>Oops!</Styled.h1>\n <Box\n sx={{\n fontSize: [4, 4, 4, 5],\n lineHeight: 'h3',\n mt: [3, 4, 4],\n mb: [2, 3, 3],\n maxWidth: ['90%', '90%', '400px'],\n }}\n >\n Sorry but we can't seem to find the page you are looking for.\n </Box>\n <Box\n sx={{\n color: 'secondary',\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [2, 2, 2, 3],\n mt: [4, 5, 5],\n }}\n >\n ERROR CODE 404\n </Box>\n </Column>\n <Column start={[2, 5, 7, 7]} width={[4, 4, 4, 4]}>\n <Box\n sx={{\n width: ['100%'],\n mt: [2, 4, 4, 5],\n fill: 'primary',\n }}\n >\n <PoopSad sx={{ width: '100%', height: 'auto' }} />\n </Box>\n </Column>\n </Row>\n </Layout>\n )\n}\n\nexport default Custom404\n","import React from 'react'\nimport { Box, IconButton } from 'theme-ui'\n\nconst Expander = ({ value, id, onClick, sx }) => {\n return (\n <IconButton\n onClick={onClick}\n id={id}\n role='checkbox'\n aria-checked={value}\n aria-label='Expand'\n sx={{\n display: 'inline-block',\n width: 24,\n height: 24,\n p: [1],\n cursor: 'pointer',\n fill: 'secondary',\n stroke: 'secondary',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n fill: 'primary',\n stroke: 'primary',\n },\n },\n ...sx,\n }}\n >\n <svg viewBox='0 0 16 16'>\n <path\n d='M8,0 V16 M0,8 H16'\n style={{\n strokeWidth: 2,\n transition: '0.25s all',\n transformOrigin: '8px 8px',\n transform: value ? 'rotate(45deg)' : '',\n }}\n />\n </svg>\n </IconButton>\n )\n}\n\nexport default Expander\n","import React from 'react'\nimport Caption from './caption'\n\nconst FigureCaption = ({ as = 'figcaption', number, children }) => {\n return (\n <Caption as={as} number={number} label='figure'>\n {children}\n </Caption>\n )\n}\n\nexport default FigureCaption\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\nimport Sidenote from './sidenote'\n\nconst Heading = ({\n children,\n sidenote,\n variant = 'h1',\n description,\n descriptionStart = [1, 3, 5, 5],\n descriptionWidth = [5, 5, 5, 4],\n sx,\n}) => {\n let titleWidth = [6, 6, 6, 6]\n if (description) {\n titleWidth[1] = descriptionStart[1] - 1\n titleWidth[2] = descriptionStart[2] - 2\n titleWidth[3] = descriptionStart[3] - 2\n }\n\n if (!['h1', 'h2'].includes(variant)) {\n throw new Error(`variant must be 'h1' or 'h2' but got '${variant}'`)\n }\n\n return (\n <Row sx={{ mt: [5, 6, 7, 8], mb: [5, 6, 7, 8], ...sx }}>\n <Column start={[1, 1, 2, 2]} width={titleWidth}>\n {variant === 'h1' && (\n <Box as='h1' variant='styles.h1' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n {variant === 'h2' && (\n <Box as='h2' variant='styles.h2' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n </Column>\n {sidenote && <Sidenote variant={variant}>{sidenote}</Sidenote>}\n {description && (\n <Column start={descriptionStart} width={descriptionWidth}>\n <Box\n sx={{\n mt: [4, '5px', '20px', '31px'],\n fontSize: [2, 2, 2, 3],\n }}\n >\n {description}\n </Box>\n </Column>\n )}\n </Row>\n )\n}\n\nexport default Heading\n","import React from 'react'\nimport { Flex } from 'theme-ui'\nimport { RotatingArrow } from '@carbonplan/icons'\nimport Button from './button'\n\nconst LinkGroup = ({\n members,\n color,\n inverted,\n tracking,\n size = 'xs',\n rowGap = [2, 2, 2, 3],\n columnGap = [3, 3, 3, 4],\n direction = 'horizontal',\n sx,\n}) => {\n return (\n <Flex\n sx={{\n flexDirection: direction === 'horizontal' ? 'row' : 'column',\n rowGap,\n columnGap,\n flexWrap: 'wrap',\n ...sx,\n }}\n >\n {members.map((d, i) => {\n return (\n <Button\n key={i}\n href={d.href}\n label={d.label}\n size={size}\n sx={{ color: color }}\n inverted={inverted}\n suffix={<RotatingArrow />}\n tracking={tracking}\n >\n {d.label}\n </Button>\n )\n })}\n </Flex>\n )\n}\n\nexport default LinkGroup\n","import React, { useRef } from 'react'\nimport { Box } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport getProps from './utils/get-props'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Select = ({ children, size = 'sm', sx, sxSelect, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const sizeStyles = getSizeStyles(size)\n const ref = useRef(null)\n\n const { onChange } = props\n const omitOnChange = getProps((k) => k !== 'onChange')(props)\n\n if (!['xs', 'sm', 'md'].includes(size)) {\n throw new Error('Size must be xs, sm, or md')\n }\n\n let pr, height, width, ml, top\n\n if (size === 'xs') {\n height = [14, 14, 14, 16]\n width = [14, 14, 14, 14]\n top = ['1px']\n ml = ['-14px', '-14px', '-14px', '-16px']\n }\n\n if (size === 'sm') {\n height = [15, 15, 15, 20]\n width = [15, 15, 15, 20]\n top = ['1px']\n ml = ['-16px', '-16px', '-16px', '-20px']\n }\n\n if (size === 'md') {\n height = [20, 20, 20, 20]\n width = [20, 20, 20, 20]\n top = ['2px']\n ml = ['-20px', '-20px', '-20px', '-20px']\n }\n\n pr = width.map((d) => d + 12)\n\n return (\n <Box\n sx={{\n display: 'inline-block',\n ...sx,\n }}\n >\n <Box\n as='select'\n ref={ref}\n onChange={(e) => {\n ref.current.blur()\n if (onChange) onChange(e)\n }}\n sx={{\n ...sizeStyles,\n lineHeight: 'normal',\n cursor: 'pointer',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n pb: ['5px'],\n bg: 'transparent',\n pr: pr,\n border: 'none',\n borderBottomStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomColor: 'primary',\n borderRadius: '0px',\n color: 'text',\n width: 'fit-content',\n color: color,\n userSelect: 'none',\n '@media (hover: none) and (pointer: coarse)': {\n '&:focus-visible': {\n outline: 'none !important',\n background: 'transparent !important',\n },\n },\n ...sxSelect,\n }}\n {...omitOnChange}\n >\n {children}\n </Box>\n <Arrow\n sx={{\n width: width,\n height: height,\n position: 'relative',\n ml: ml,\n top: top,\n fill: 'secondary',\n transform: 'rotate(135deg)',\n pointerEvents: 'none',\n }}\n />\n </Box>\n )\n}\n\nexport default Select\n","const getProps = (test) => (props) => {\n const next = {}\n for (const key in props) {\n if (test(key || '')) next[key] = props[key]\n }\n return next\n}\n\nexport default getProps\n","import React from 'react'\nimport Caption from './caption'\n\nconst TableCaption = ({ as = 'figcaption', number, children }) => {\n return (\n <Caption as={as} number={number} label='table'>\n {children}\n </Caption>\n )\n}\n\nexport default TableCaption\n","import React from 'react'\n\nconst Tracking = ({ id }) => {\n if (!id) {\n return null\n }\n return (\n <>\n <script async src={`https://www.googletagmanager.com/gtag/js?id=${id}`} />\n <script\n dangerouslySetInnerHTML={{\n __html: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${id}', {\n page_path: window.location.pathname,\n });\n `,\n }}\n />\n </>\n )\n}\n\nexport default Tracking\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Tray = ({ expanded, sx, children }) => {\n return (\n <>\n <Box\n sx={{\n position: 'fixed',\n top: '56px',\n bottom: '0px',\n left: '0px',\n width: 'calc(100vw)',\n mt: ['56px'],\n bg: 'background',\n zIndex: 1000,\n transition: 'opacity 0.15s',\n opacity: expanded ? 0.9 : 0,\n pointerEvents: expanded ? 'all' : 'none',\n }}\n />\n <Box\n sx={{\n position: 'fixed',\n width: 'calc(100vw)',\n top: '0px',\n mt: ['56px'],\n pb: [6, 7, 7, 8],\n pt: [5, 6, 7, 8],\n bg: 'background',\n zIndex: 1100,\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n transition: 'transform 0.15s',\n ml: [-3, -4, -5, -6],\n pl: [3, 4, 5, 6],\n pr: [3, 4, 5, 6],\n transform: expanded ? 'translateY(0)' : 'translateY(-100%)',\n ...sx,\n }}\n >\n <Row>\n <Column start={[1, 1, 1, 1]} width={[6, 8, 10, 10]}>\n {children}\n </Column>\n </Row>\n </Box>\n </>\n )\n}\n\nexport default Tray\n","import { useEffect, useState } from 'react'\n\nimport getScrollbarWidth from './get-scrollbar-width'\n\nconst useScrollbarClass = () => {\n const [className, setClassName] = useState(null)\n\n useEffect(() => {\n if (document && getScrollbarWidth(document) > 0) {\n setClassName('custom-scrollbar')\n }\n }, [])\n\n return className\n}\n\nexport default useScrollbarClass\n"],"names":["Avatar","_ref","srcProp","altProp","_ref$color","color","_ref$width","width","maxWidth","name","github","alt","src","sx","props","_objectWithoutPropertiesLoose","_excluded","console","warn","toLowerCase","replace","React","createElement","Box","_extends","height","borderRadius","position","display","verticalAlign","bg","Image","opacity","filter","Row","children","columnGap","rowGap","columns","gap","makeArray","input","Array","isArray","includes","length","Error","map","d","flat","Number","isInteger","Grid","Column","start","dl","dr","ml","mr","end","i","gridColumnStart","gridColumnEnd","sizes","xs","sm","md","lg","xl","Group","marginValue","_ref$direction","direction","spacing","_ref$spacing","hasOwnProperty","marginProperty","additionalStyles","Children","child","_extends2","specialChars","forwardRef","_ref2","ref","href","internal","_ref2$internal","_ref2$tracking","tracking","startsWith","NextLink","passHref","ThemedLink","action","category","track","e","window","gtag","event_category","event_label","label","value","event","Link","onClick","onContextMenu","getSizeStyles","size","fontSize","fontFamily","letterSpacing","lineHeight","Button$1","offset","margin","strokeWidth","_ref$size","prefix","suffix","inverted","align","prefixHover","suffixHover","prefixAlign","suffixAlign","prefixOffset","suffixOffset","sxProp","_excluded2","baseColor","hoverColor","transform","type","hover","cloneElement","id","transition","style","border","background","padding","textAlign","cursor","Inner","Fragment","as","textDecoration","mb","fill","pb","textTransform","Arrow","top","Caption","_ref$as","number","_ref$label","mx","pr","styles","setClim","borderBottom","colors","primary","outline","userSelect","minWidth","DIMENSIONS","Gradient","_ref3","colormap","discrete","horizontal","step","css","values","join","minHeight","mt","_ref4","hinted","Label","units","alignSelf","writingMode","whiteSpace","overflow","InlineColor","Colors","Meta","title","description","card","titleProp","descriptionProp","cardProp","Head","content","rel","crossOrigin","property","Logo","stroke","viewBox","Menu","IconButton","marginTop","xmlns","x1","y1","x2","y2","className","current","first","borderStyle","borderColor","borderWidth","borderBottomWidth","borderTopWidth","py","links","url","HoverArrow","pointerEvents","left","Nav","link","mode","nav","setExpanded","NavGroup","key","Header","status","menuItems","useState","expanded","pt","alignItems","zIndex","Flex","justifyContent","flexShrink","right","bottom","maxHeight","backgroundColor","Container","Monogram","Footer","Dimmer","_useColorMode","useColorMode","colorMode","setColorMode","toggle","useCallback","role","Sun","GitSha","sha","process","env","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","owner","NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER","slug","NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG","useThemeUI","theme","rawColors","secondary","shortSha","substring","Separator","Text","r","cx","cy","Value","format","toFixed","init","setDisplay","useEffect","setFromEvent","x","clientX","y","clientY","addEventListener","removeEventListener","documnt","Math","min","scrollY","document","body","offsetHeight","scrollFraction","Metadata","transformOrigin","num","pad","toString","padStart","fade","keyframes","from","to","FadeIn","_ref$duration","duration","delay","_ref$delay","delegated","animationDuration","animationDelay","animationName","animationFillMode","getScrollbarWidth","outer","visibility","appendChild","inner","delta","offsetWidth","parentNode","removeChild","Scrollbar","classList","add","getElementsByTagName","Guide","handler","metaKey","prev","GuideColumns","indices","colorCycle","outerGuideColumn","borderLeftWidth","borderRightWidth","innerGuideColumn","borderLeftColor","borderRightColor","Settings","Layout","settings","footer","_ref$footer","header","_ref$header","metadata","_ref$metadata","_ref$links","_ref$dimmer","dimmer","_ref$guide","guide","scrollbar","_ref$scrollbar","container","_ref$container","_ref$printable","printable","_ref$fade","hideOnPrint","query","matchMedia","breakpoints","onchange","matches","push","flexDirection","flex","Tag","isClickable","onDoubleClick","px","m","duplicateOptions","options","defaultValue","overrides","Object","keys","reduce","o","_Object$assign","assign","isAll","option","updateValues","updatedToggle","multiSelect","setValues","isAllAlreadySelected","isSelectingAll","_duplicateOptions","Sidenote","_ref$variant","variant","p","WebkitAppearance","ThemedInput","Input","ThemeSlider","boxShadow","reset","row","index","entry","disabled","transparentize","defaultOptions","month","day","year","formatDateElement","date","element","result","toLocaleString","_date$toLocaleString","members","fixedCount","idx","max","firstChar","slice","_ref6","clim","_ref6$setClimStep","setClimStep","_ref6$horizontal","_ref6$bottom","sxClim","dx","climRef","useRef","climMinDragging","setClimMinDragging","_useState","_useState2","climMaxDragging","setClimMaxDragging","dy","scale","draggingFunction","pageX","pageY","handleMouseDown","target","setAttribute","updater","listener","code","activeElement","preventDefault","focus","increment","decrement","ClimMin","tabIndex","_ref7","_ref8","onMouseDown","ClimMax","_ref9","_ref10","flexGrow","Styled","h1","PoopSad","_ref2$showAll","showAll","_ref2$multiSelect","sidenote","descriptionStart","_ref$descriptionStart","descriptionWidth","_ref$descriptionWidth","titleWidth","my","_ref$columnGap","_ref$rowGap","flexWrap","Button","RotatingArrow","test","sxSelect","sizeStyles","onChange","omitOnChange","k","next","blur","MozAppearance","borderBottomStyle","borderBottomColor","data","_ref$index","_ref$borderBottom","borderTop","_ref$borderTop","column","j","async","dangerouslySetInnerHTML","__html","pl","Date","Boolean","separator","_options$separator","setClassName"],"mappings":"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"}