@carbonplan/components 11.7.1 → 11.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.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/custom-404.js","../src/expander.js","../src/figure.js","../src/figure-caption.js","../src/tag.js","../src/filter.js","../src/sidenote.js","../src/heading.js","../src/input.js","../src/link-group.js","../src/select.js","../src/utils/get-props.js","../src/slider.js","../src/table.js","../src/table-caption.js","../src/toggle.js","../src/tracking.js","../src/tray.js","../src/utils/format-date.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 { Box } from 'theme-ui'\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 Blank = ({ overflow, maxWidth }) => {\n return (\n <Box\n sx={{\n bg: 'muted',\n height: '100%',\n maxWidth: maxWidth,\n borderRadius: '50%',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Box\n sx={{\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [3, 3, 3, 4],\n }}\n >\n +{overflow}\n </Box>\n </Box>\n </Box>\n )\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n limit,\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\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) % fixedCount\n } else {\n throw Error(`alignment '${align}' not recognized`)\n }\n })\n }\n\n const excess = members.length > limit\n const overflow = members.length - limit + 1\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 {(!excess || idx < limit - 1) && (\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n )}\n {excess && idx === limit - 1 && (\n <Blank overflow={overflow} maxWidth={maxWidth} />\n )}\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 let filteredChildren = children\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 filteredChildren = 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 filteredChildren = cloneElement(children, {\n children: children.props.children.slice(1),\n })\n } else if (typeof children === 'string') {\n firstChar = children.slice(0, 1)\n filteredChildren = 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 {specialChars.includes(firstChar) ? filteredChildren : 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 bg: 'unset',\n border: 'none',\n color: 'primary',\n px: 0,\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\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 as={setClim ? 'button' : 'div'}\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 ? ({ colors }) => `solid 1px ${colors.primary}`\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 as={setClim ? 'button' : 'div'}\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 ? ({ colors }) => `solid 1px ${colors.primary}`\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='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\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='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, 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 { Box } from 'theme-ui'\n\nimport Group from './group'\n\nconst Figure = ({ as = 'figure', children, sx }) => {\n return (\n <Box\n as={as}\n sx={{\n my: [6, 6, 6, 7],\n '@media print': {\n breakInside: 'avoid',\n },\n ...sx,\n }}\n >\n <Group spacing={[4, 4, 4, 5]}>{children}</Group>\n </Box>\n )\n}\n\nexport default Figure\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'\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 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, { 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 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: 'background',\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, { 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 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, { 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","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","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 { 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","color","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","columns","gap","makeArray","input","Array","isArray","includes","length","Error","map","d","flat","columnGap","rowGap","Number","isInteger","Grid","Column","start","dl","dr","end","i","ml","mr","gridColumnStart","gridColumnEnd","sizes","xs","sm","md","lg","xl","Group","direction","spacing","marginValue","hasOwnProperty","marginProperty","additionalStyles","Children","child","Blank","overflow","justifyContent","alignItems","fontFamily","letterSpacing","fontSize","AvatarGroup","members","align","limit","fixedCount","idx","Math","max","excess","Fragment","key","Badge","backgroundColor","transparentize","textAlign","userSelect","mt","px","specialChars","Blockquote","firstChar","filteredChildren","slice","cloneElement","variant","as","Link$1","forwardRef","ref","href","internal","tracking","startsWith","NextLink","passHref","ThemedLink","action","category","track","e","label","value","window","gtag","event_category","event_label","event","onClick","onContextMenu","getSizeStyles","size","lineHeight","offset","margin","strokeWidth","prefix","suffix","inverted","sxProp","baseColor","hoverColor","prefixHover","suffixHover","prefixAlign","suffixAlign","prefixOffset","suffixOffset","transform","type","hover","id","transition","style","border","background","padding","cursor","Inner","Link","textDecoration","mb","fill","pb","textTransform","Arrow","top","Caption","number","mx","pr","styles","setClim","minWidth","DIMENSIONS","Gradient","colormap","discrete","horizontal","step","css","join","minHeight","colors","hinted","Label","units","alignSelf","writingMode","whiteSpace","Colorbar","clim","setClimStep","format","bottom","sxClim","climRef","useRef","climMinDragging","setClimMinDragging","useState","climMaxDragging","setClimMaxDragging","x","y","dx","dy","init","scale","draggingFunction","pageX","pageY","prev","min","handleMouseDown","target","document","body","setAttribute","addEventListener","updater","removeEventListener","useEffect","listener","code","current","activeElement","preventDefault","focus","increment","decrement","ClimMin","tabIndex","borderBottom","primary","onMouseDown","ClimMax","Flex","flexDirection","flexGrow","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","first","borderStyle","borderColor","borderWidth","borderBottomWidth","borderTopWidth","py","links","url","HoverArrow","pointerEvents","left","Nav","link","mode","nav","setExpanded","NavGroup","Header","status","menuItems","expanded","pt","zIndex","flexShrink","right","maxHeight","Container","Monogram","Footer","Dimmer","colorMode","setColorMode","useColorMode","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","theme","useThemeUI","rawColors","secondary","shortSha","substring","Separator","Text","r","cx","cy","Value","setDisplay","toFixed","setFromEvent","clientX","clientY","documnt","scrollY","offsetHeight","scrollFraction","Metadata","transformOrigin","num","pad","toString","padStart","fade","keyframes","from","to","FadeIn","duration","delay","delegated","animationDuration","animationDelay","animationName","animationFillMode","getScrollbarWidth","outer","visibility","appendChild","inner","delta","offsetWidth","parentNode","removeChild","Scrollbar","classList","add","getElementsByTagName","Guide","handler","metaKey","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","flex","Custom404","Styled","h1","PoopSad","Expander","p","Figure","my","breakInside","FigureCaption","Tag","isClickable","onDoubleClick","m","duplicateOptions","options","defaultValue","overrides","Object","keys","reduce","o","assign","isAll","option","updateValues","values","multiSelect","setValues","isAllAlreadySelected","isSelectingAll","updatedToggle","Filter","showAll","Sidenote","Heading","sidenote","descriptionStart","descriptionWidth","titleWidth","WebkitAppearance","outline","ThemedInput","LinkGroup","flexWrap","Button","RotatingArrow","Select","sxSelect","sizeStyles","onChange","omitOnChange","test","k","next","blur","MozAppearance","borderBottomStyle","borderBottomColor","ThemeSlider","boxShadow","reset","row","index","entry","Table","data","borderTop","column","j","TableCaption","disabled","Tracking","async","dangerouslySetInnerHTML","__html","Tray","pl","defaultOptions","month","day","year","formatDateElement","date","element","result","toLocaleString","formatDate","_options$separator","Date","Boolean","separator","useScrollbarClass","setClassName"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.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/custom-404.js","../src/expander.js","../src/figure.js","../src/figure-caption.js","../src/tag.js","../src/filter.js","../src/sidenote.js","../src/heading.js","../src/input.js","../src/link-group.js","../src/select.js","../src/utils/get-props.js","../src/slider.js","../src/table.js","../src/table-caption.js","../src/toggle.js","../src/tracking.js","../src/tray.js","../src/utils/format-date.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 { Box } from 'theme-ui'\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 Blank = ({ overflow, maxWidth }) => {\n return (\n <Box\n sx={{\n bg: 'muted',\n height: '100%',\n maxWidth: maxWidth,\n borderRadius: '50%',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Box\n sx={{\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [3, 3, 3, 4],\n }}\n >\n +{overflow}\n </Box>\n </Box>\n </Box>\n )\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n limit,\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\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) % fixedCount\n } else {\n throw Error(`alignment '${align}' not recognized`)\n }\n })\n }\n\n const excess = members.length > limit\n const overflow = members.length - limit + 1\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 {(!excess || idx < limit - 1) && (\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n )}\n {excess && idx === limit - 1 && (\n <Blank overflow={overflow} maxWidth={maxWidth} />\n )}\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 let filteredChildren = children\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 filteredChildren = 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 filteredChildren = cloneElement(children, {\n children: children.props.children.slice(1),\n })\n } else if (typeof children === 'string') {\n firstChar = children.slice(0, 1)\n filteredChildren = 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 {specialChars.includes(firstChar) ? filteredChildren : 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 bg: 'unset',\n border: 'none',\n color: 'primary',\n px: 0,\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\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 as={setClim ? 'button' : 'div'}\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 ? ({ colors }) => `solid 1px ${colors.primary}`\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 as={setClim ? 'button' : 'div'}\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 ? ({ colors }) => `solid 1px ${colors.primary}`\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'\nimport { useThemeUI } from 'theme-ui'\n\nconst Meta = ({ title, description, card }) => {\n const { theme, colormode } = useThemeUI()\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='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\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={theme.colors.background} />\n <meta\n name='color-scheme'\n content={colormode === 'light' ? 'light' : 'dark'}\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={theme.colors.background} />\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 <meta name='format-detection' content='telephone=no' />\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 marginTop: '-3px',\n flexShrink: 0,\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 marginTop: '-3px',\n flexShrink: 0,\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) 2022 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 marginTop: '-3px',\n flexShrink: 0,\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 marginTop: '-3px',\n flexShrink: 0,\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, 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 { Box } from 'theme-ui'\n\nimport Group from './group'\n\nconst Figure = ({ as = 'figure', children, sx }) => {\n return (\n <Box\n as={as}\n sx={{\n my: [6, 6, 6, 7],\n '@media print': {\n breakInside: 'avoid',\n },\n ...sx,\n }}\n >\n <Group spacing={[4, 4, 4, 5]}>{children}</Group>\n </Box>\n )\n}\n\nexport default Figure\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'\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 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, { 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 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: 'background',\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, { 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 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, { 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","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","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 { 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","color","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","columns","gap","makeArray","input","Array","isArray","includes","length","Error","map","d","flat","columnGap","rowGap","Number","isInteger","Grid","Column","start","dl","dr","end","i","mr","ml","gridColumnStart","gridColumnEnd","xs","sm","md","lg","xl","Group","direction","spacing","marginValue","sizes","hasOwnProperty","marginProperty","Children","child","additionalStyles","Blank","overflow","justifyContent","alignItems","fontFamily","letterSpacing","fontSize","AvatarGroup","members","align","limit","fixedCount","idx","Math","max","excess","Fragment","key","Badge","backgroundColor","transparentize","textAlign","userSelect","mt","px","specialChars","Blockquote","firstChar","filteredChildren","slice","cloneElement","variant","as","Link$1","forwardRef","ref","href","internal","tracking","startsWith","NextLink","passHref","ThemedLink","action","category","track","e","label","value","window","gtag","event_category","event_label","event","onClick","onContextMenu","getSizeStyles","size","lineHeight","offset","margin","strokeWidth","prefix","suffix","inverted","_ref2","sxProp","_excluded2","baseColor","suffixHover","prefixAlign","suffixAlign","prefixOffset","suffixOffset","transform","prefixHover","hoverColor","type","hover","id","transition","style","sizeStyles","border","background","padding","cursor","Inner","Link","textDecoration","callout","mb","fill","pb","textTransform","Arrow","top","Caption","number","mx","pr","setClim","minWidth","DIMENSIONS","colormap","discrete","horizontal","step","css","join","minHeight","colors","hinted","Label","units","alignSelf","writingMode","whiteSpace","clim","setClimStep","format","bottom","sxClim","climRef","useRef","climMinDragging","setClimMinDragging","useState","climMaxDragging","setClimMaxDragging","x","y","dx","dy","init","scale","draggingFunction","pageX","pageY","prev","min","handleMouseDown","target","document","body","setAttribute","addEventListener","updater","removeEventListener","useEffect","listener","code","current","activeElement","preventDefault","focus","increment","decrement","ClimMin","tabIndex","styles","borderBottom","primary","onMouseDown","ClimMax","Flex","flexDirection","flexGrow","Gradient","InlineColor","Colors","Meta","title","description","card","theme","colormode","useThemeUI","titleProp","descriptionProp","cardProp","Head","content","rel","crossOrigin","property","Logo","stroke","viewBox","Menu","IconButton","marginTop","flexShrink","xmlns","x1","y1","x2","y2","className","first","borderStyle","borderColor","borderWidth","borderBottomWidth","borderTopWidth","py","links","url","HoverArrow","pointerEvents","left","Nav","link","mode","nav","setExpanded","NavGroup","Header","status","menuItems","expanded","pt","zIndex","right","maxHeight","Container","Monogram","Dimmer","colorMode","setColorMode","useColorMode","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","rawColors","secondary","shortSha","substring","Separator","Text","r","cx","cy","setDisplay","toFixed","setFromEvent","clientX","clientY","documnt","scrollY","offsetHeight","scrollFraction","Metadata","transformOrigin","Value","num","pad","toString","padStart","fade","keyframes","from","to","FadeIn","duration","delay","delegated","animationDuration","animationDelay","animationName","animationFillMode","getScrollbarWidth","outer","visibility","appendChild","inner","offsetWidth","parentNode","removeChild","delta","Scrollbar","classList","add","getElementsByTagName","Guide","handler","metaKey","GuideColumns","indices","colorCycle","outerGuideColumn","borderLeftWidth","borderRightWidth","innerGuideColumn","borderLeftColor","borderRightColor","Layout","settings","footer","header","metadata","dimmer","guide","scrollbar","container","printable","hideOnPrint","query","matchMedia","breakpoints","onchange","matches","push","Settings","flex","Footer","Custom404","Styled","h1","PoopSad","p","Figure","my","breakInside","onDoubleClick","isClickable","m","duplicateOptions","options","defaultValue","overrides","Object","keys","reduce","o","assign","isAll","option","updateValues","values","multiSelect","setValues","isAllAlreadySelected","isSelectingAll","updatedToggle","Filter","showAll","Tag","Sidenote","Heading","sidenote","descriptionStart","descriptionWidth","titleWidth","WebkitAppearance","outline","ThemedInput","LinkGroup","flexWrap","Button","RotatingArrow","sxSelect","onChange","omitOnChange","test","k","next","blur","MozAppearance","borderBottomStyle","borderBottomColor","ThemeSlider","boxShadow","reset","row","index","entry","Table","data","borderTop","column","j","disabled","Tracking","async","dangerouslySetInnerHTML","__html","Tray","pl","defaultOptions","month","day","year","formatDateElement","date","element","result","toLocaleString","formatDate","_options$separator","Date","Boolean","separator","useScrollbarClass","setClassName"],"mappings":"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"}