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