@carbonplan/components 13.2.2 → 13.3.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.d.mts +503 -0
- package/dst/index.d.ts +503 -0
- package/dst/index.js +3651 -2
- package/dst/index.js.map +1 -1
- package/dst/index.mjs +3585 -0
- package/dst/index.mjs.map +1 -0
- package/package.json +14 -7
- package/dst/index.esm.js +0 -2
- package/dst/index.esm.js.map +0 -1
- package/dst/index.modern.js +0 -2
- package/dst/index.modern.js.map +0 -1
package/dst/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/avatar.js","../src/row.js","../src/column.js","../src/group.js","../src/avatar-group.js","../src/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/figure-caption.js","../src/tag.js","../src/filter.js","../src/sidenote.js","../src/input.js","../src/slider.js","../src/table.js","../src/table-caption.js","../src/toggle.js","../src/utils/format-date.js","../src/custom-404.js","../src/expander.js","../src/figure.js","../src/heading.js","../src/link-group.js","../src/select.js","../src/utils/get-props.js","../src/tray.js","../src/utils/use-scrollbar-class.js"],"sourcesContent":["import React from 'react'\nimport { Box, Image } from 'theme-ui'\n\nconst Avatar = ({\n color = 'transparent',\n width = '90px',\n maxWidth,\n name,\n github,\n alt,\n src,\n sx,\n ...props\n}) => {\n if (!name && !src && !github) {\n console.warn('must specify either name, github, or src')\n }\n\n let srcProp, altProp\n if (name) {\n srcProp = `https://images.carbonplan.org/team/${name\n .toLowerCase()\n .replaceAll(' ', '-')}.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 overflow: 'hidden',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n ...sx,\n }}\n {...props}\n >\n <Image\n alt={altProp}\n src={srcProp}\n sx={{\n filter:\n color && color !== 'transparent'\n ? 'grayscale(100%) contrast(200%) brightness(100%)'\n : 'none',\n width: '100%',\n display: 'block',\n }}\n />\n {color && color !== 'transparent' && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n bg: color,\n width: '100%',\n height: '100%',\n opacity: 0.75,\n pointerEvents: 'none',\n }}\n />\n )}\n </Box>\n )\n}\n\nexport default Avatar\n","import React from 'react'\nimport { Grid } from 'theme-ui'\n\nconst Row = ({ children, sx, columns, gap, ...props }) => {\n const makeArray = (input) => {\n if (!Array.isArray(input)) {\n input = [input, input, input, input]\n }\n if (Array.isArray(input) && ![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d]).flat()\n }\n if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n return input\n }\n\n let columnGap, rowGap\n if (Number.isInteger(gap) || Array.isArray(gap)) {\n gap = makeArray(gap)\n columnGap = gap\n rowGap = gap\n } else {\n columnGap = [4, 5, 5, 6]\n rowGap = [0, 0, 0, 0]\n }\n\n if (Number.isInteger(columns) || Array.isArray(columns)) {\n columns = makeArray(columns)\n } else {\n columns = [6, 8, 12, 12]\n }\n\n return (\n <Grid\n {...props}\n columns={columns}\n sx={{\n columnGap: columnGap,\n rowGap: rowGap,\n ...sx,\n }}\n >\n {children}\n </Grid>\n )\n}\n\nexport default Row\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Column = ({ start, width, dl, dr, children, sx, ...props }) => {\n start = start || 'auto'\n width = width || 'auto'\n\n const makeArray = (input) => {\n if (input && !Array.isArray(input)) {\n input = [input]\n }\n\n if (![1, 2, 4].includes(input.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n\n if (Array.isArray(input) && input.length == 1) {\n input = input.map((d) => [d, d, d, d]).flat()\n } else if (Array.isArray(input) && input.length == 2) {\n input = input.map((d) => [d, d]).flat()\n }\n\n return input\n }\n\n start = makeArray(start)\n width = makeArray(width)\n\n const end = start.map((d, i) => {\n if (d == 'auto') return 'auto'\n return d + width[i]\n })\n\n let ml, mr\n\n if (dl) {\n if (![0.5, 1].includes(dl)) {\n throw new Error('dl must be 0.5 or 1')\n }\n if (dl === 0.5) {\n ml = ['-12px', -3, -3, -4]\n }\n if (dl === 1) {\n ml = [-4, -5, -5, -6]\n }\n }\n\n if (dr) {\n if (![0.5, 1].includes(dr)) {\n throw new Error('dr must be 0.5 or 1')\n }\n if (dr === 0.5) {\n mr = ['-12px', -3, -3, -4]\n }\n if (dr === 1) {\n mr = [-4, -5, -5, -6]\n }\n }\n\n return (\n <Box\n {...props}\n sx={{\n gridColumnStart: start,\n gridColumnEnd: end,\n ml: ml,\n mr: mr,\n ...sx,\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default Column\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\nconst Group = ({ children, direction = 'vertical', spacing = 'md', sx }) => {\n let marginValue\n if (typeof spacing === 'string' && sizes.hasOwnProperty(spacing)) {\n marginValue = sizes[spacing]\n } else {\n marginValue = spacing\n }\n\n if (!['horizontal', 'vertical'].includes(direction)) {\n throw new Error(\n 'Invalid direction value. Must be either horizontal or vertical'\n )\n }\n\n const marginProperty = direction === 'vertical' ? 'mb' : 'mr'\n const additionalStyles =\n direction === 'horizontal' ? { display: 'inline-block' } : {}\n return (\n <Box sx={sx}>\n {React.Children.map(children, (child, i) => {\n return (\n <Box\n sx={{\n [marginProperty]: i < children.length - 1 ? marginValue : 0,\n ...additionalStyles,\n }}\n >\n {child}\n </Box>\n )\n })}\n </Box>\n )\n}\n\nexport default Group\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Avatar from './avatar'\nimport Row from './row'\nimport Column from './column'\nimport Group from './group'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\n\nconst Blank = ({ overflow, maxWidth }) => {\n return (\n <Box\n sx={{\n bg: 'muted',\n height: '100%',\n maxWidth: maxWidth,\n borderRadius: '50%',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Box\n sx={{\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [3, 3, 3, 4],\n }}\n >\n +{overflow}\n </Box>\n </Box>\n </Box>\n )\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n limit,\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\n}) => {\n let gap\n if (sizes.hasOwnProperty(spacing)) {\n gap = sizes[spacing]\n } else {\n gap = spacing\n }\n\n let start = (idx) => 'auto'\n if (align) {\n if (!Array.isArray(align)) {\n align = [align]\n }\n start = (idx) =>\n align.map((d) => {\n if (d === 'left') {\n return 'auto'\n } else if (d === 'right') {\n const offset = Math.max(0, fixedCount - members.length)\n return ((offset + idx) % fixedCount) + 1\n } else {\n throw Error(`alignment '${d}' not recognized`)\n }\n })\n }\n\n const excess = members.length > limit\n const overflow = members.length - limit + 1\n\n return (\n <>\n {fixedCount && (\n <Row columns={fixedCount} gap={gap} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Column key={idx} start={start(idx)}>\n {(!excess || idx < limit - 1) && (\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n )}\n {excess && idx === limit - 1 && (\n <Blank overflow={overflow} maxWidth={maxWidth} />\n )}\n </Column>\n ))}\n </Row>\n )}\n {!fixedCount && (\n <Group direction={direction} spacing={spacing} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Avatar key={idx} {...props} width={width} maxWidth={maxWidth} />\n ))}\n </Group>\n )}\n </>\n )\n}\n\nexport default AvatarGroup\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\n\nconst Badge = ({ sx, children, ...props }) => {\n const color = sx && sx.color ? sx.color : 'primary'\n return (\n <Box\n sx={{\n display: 'inline-block',\n width: 'fit-content',\n height: ['24px', '24px', '24px', '26px'],\n borderRadius: '5px',\n backgroundColor:\n color == 'primary' || color == 'secondary'\n ? 'muted'\n : transparentize(color, 0.7),\n textAlign: 'center',\n userSelect: 'none',\n fontSize: [2, 2, 2, 3],\n ...sx,\n }}\n {...props}\n >\n <Box\n sx={{\n letterSpacing: '0.02em',\n fontFamily: 'mono',\n mt: ['1px', '1px', '1px', '0px'],\n px: [1, 1, 1, '5px'],\n color: color,\n }}\n >\n {children}\n </Box>\n </Box>\n )\n}\n\nexport default Badge\n","import React, { Children } from 'react'\nimport { Box } from 'theme-ui'\n\nconst specialChars = ['“', '\"', \"'\", '‘']\n\nconst Blockquote = ({ children }) => {\n return (\n <Box variant='styles.blockquote'>\n {Children.map(children, (d, i) => {\n let firstChar = ''\n let remaining = children\n\n if (d.props && typeof d.props.children === 'string') {\n firstChar = d.props.children.slice(0, 1)\n remaining = d.props.children.slice(1)\n } else if (typeof d === 'string') {\n firstChar = d.slice(0, 1)\n remaining = d.slice(1)\n }\n\n return (\n <>\n {specialChars.includes(firstChar) && (\n <Box as='span' sx={{ position: 'absolute', ml: '-0.4em' }}>\n {firstChar}\n </Box>\n )}\n {specialChars.includes(firstChar) ? remaining : d}\n </>\n )\n })}\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 Link = ({ href, children, internal = false, ...props }, ref) => {\n if (internal || (href && href.startsWith('/'))) {\n return (\n <NextLink href={href} passHref legacyBehavior>\n <ThemedLink ref={ref} {...props}>\n {children}\n </ThemedLink>\n </NextLink>\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 ...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 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, 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 ref={ref} href={href} internal={internal} sx={style} {...props}>\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 '& a': { color: 'secondary' },\n '& a:hover': { color: 'primary' },\n '& > p': {\n display: 'inline',\n fontSize: [2, 2, 2, 3],\n },\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 hexToRgb = (hex) => {\n let result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result\n ? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(\n result[3],\n 16\n )}`\n : null\n}\n\nconst Gradient = ({ colormap, discrete, horizontal, width, height }) => {\n const step = (1 / colormap.length) * 100\n const isHex = String(colormap[0]).startsWith('#')\n const values = colormap.map((color, i) => {\n const rgbColor = isHex ? hexToRgb(color) : color\n const position = `${i * step}% ${\n discrete && i < colormap.length - 1 ? `${(i + 1) * step}%` : ''\n }`\n return `rgb(${rgbColor}) ${position}`\n })\n\n const css = `linear-gradient(to ${\n horizontal ? 'right' : 'top'\n }, ${values.join(',')})`\n\n return (\n <Box\n sx={{\n ...(horizontal\n ? {\n width: width || DIMENSIONS.height,\n height: height || DIMENSIONS.width,\n }\n : {\n width: width || DIMENSIONS.width,\n minHeight: height || DIMENSIONS.height,\n }),\n mt: horizontal ? ['1px', '1px', '1px', 0] : 0,\n border: ({ colors }) => `solid 1px ${colors.hinted}`,\n background: css,\n }}\n />\n )\n}\n\nconst Label = ({ label, units, horizontal }) => (\n <Box\n sx={\n !horizontal && {\n width: ['13px', '17px', '17px', '19px'],\n alignSelf: 'flex-end',\n }\n }\n >\n <Box\n sx={{\n mb: horizontal ? 0 : ['-4px', '-4px', '-4px', '-3px'],\n fontFamily: 'mono',\n fontSize: ['9px', 0, 0, 1],\n letterSpacing: 'smallcaps',\n textTransform: 'uppercase',\n ...(horizontal\n ? {}\n : {\n writingMode: 'vertical-rl',\n transform: 'rotate(180deg)',\n whiteSpace: 'nowrap',\n display: 'inline-block',\n overflow: 'visible',\n }),\n }}\n >\n {label}{' '}\n <Box\n as='span'\n sx={{\n textTransform: 'none',\n color: 'secondary',\n display: 'inline-block',\n }}\n >\n {units}\n </Box>\n </Box>\n </Box>\n)\n\nconst Colorbar = ({\n colormap,\n label,\n clim,\n setClim,\n setClimStep = 1,\n discrete,\n units,\n width,\n height,\n format = (d) => d,\n horizontal = false,\n bottom = false,\n sx,\n sxClim,\n ...props\n}) => {\n if (!Array.isArray(colormap)) {\n throw new Error(`expected array for colormap, got '${colormap}'.`)\n }\n\n const climRef = [useRef(), useRef()]\n const [climMinDragging, setClimMinDragging] = useState(false)\n const [climMaxDragging, setClimMaxDragging] = useState(false)\n\n let x,\n y,\n dx,\n dy = 0\n let id = null\n let init = [0, 0]\n let scale = setClimStep\n\n const draggingFunction = (e) => {\n if (id === 'min' && !climMinDragging) setClimMinDragging(true)\n if (id === 'max' && !climMaxDragging) setClimMaxDragging(true)\n dx = e.pageX - x\n dy = e.pageY - y\n if (horizontal) {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] + dx * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] + dx * scale, init[0])])\n } else {\n if (id === 'min')\n setClim((prev) => [Math.min(init[0] - dy * scale, init[1]), prev[1]])\n if (id === 'max')\n setClim((prev) => [prev[0], Math.max(init[1] - dy * scale, init[0])])\n }\n }\n\n const handleMouseDown = (e) => {\n y = e.pageY\n x = e.pageX\n id = e.target.id\n init = clim\n\n document.body.setAttribute(\n 'style',\n horizontal\n ? 'cursor: ew-resize !important'\n : 'cursor: ns-resize !important'\n )\n document.addEventListener('mousemove', draggingFunction)\n const updater = () => {\n document.body.setAttribute('style', 'cursor: unset')\n document.removeEventListener('mousemove', draggingFunction)\n window.removeEventListener('mouseup', updater)\n if (id === 'min') setClimMinDragging(false)\n if (id === 'max') setClimMaxDragging(false)\n }\n window.addEventListener('mouseup', updater)\n }\n\n const increment = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] + scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] + scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n const decrement = (e) => {\n if (climRef[0].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [Math.min(prev[0] - scale, prev[1]), prev[1]])\n climRef[0].current.focus()\n }\n if (climRef[1].current === document.activeElement) {\n e.preventDefault()\n setClim((prev) => [prev[0], Math.max(prev[1] - scale, prev[0])])\n climRef[1].current.focus()\n }\n }\n\n useEffect(() => {\n const listener = (e) => {\n if (\n ['ArrowUp', 'ArrowRight'].includes(e.code) ||\n ['ArrowUp', 'ArrowRight'].includes(e.key)\n ) {\n increment(e)\n }\n if (\n ['ArrowDown', 'ArrowLeft'].includes(e.code) ||\n ['ArrowDown', 'ArrowLeft'].includes(e.key)\n ) {\n decrement(e)\n }\n }\n window.addEventListener('keydown', listener)\n\n return () => {\n window.removeEventListener('keydown', listener)\n }\n }, [clim])\n\n const ClimMin = () => {\n return (\n <Box\n id='min'\n as={setClim ? 'button' : 'div'}\n ref={climRef[0]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: label\n ? horizontal\n ? bottom\n ? '0px'\n : '10px'\n : ['2px', '1px', '1px', '2px']\n : 0,\n mr: horizontal ? ['2px', '1px', '1px', '2px'] : 0,\n mb: horizontal ? 0 : ['-2px', '-2px', '-2px', '-3px'],\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[0].current.focus()}\n >\n {format(clim[0])}\n </Box>\n )\n }\n\n const ClimMax = () => {\n return (\n <Box\n id='max'\n as={setClim ? 'button' : 'div'}\n ref={climRef[1]}\n tabIndex={0}\n sx={{\n ...styles.clim(setClim),\n ml: horizontal\n ? ['2px', '1px', '1px', '2px']\n : ['2px', '1px', '1px', '2px'],\n mt: horizontal ? 0 : ['-2px', '-3px', '-3px', '-3px'],\n borderBottom: setClim\n ? ({ colors }) => `solid 1px ${colors.primary}`\n : 'unset',\n cursor: setClim\n ? horizontal\n ? 'ew-resize'\n : 'ns-resize'\n : 'default',\n ...sxClim,\n }}\n onMouseDown={setClim ? handleMouseDown : () => {}}\n onClick={() => climRef[1].current.focus()}\n >\n {format(clim[1])}\n </Box>\n )\n }\n\n return (\n <Flex\n {...props}\n sx={{\n flexDirection: 'row',\n alignItems: 'start',\n justifyContent: 'flex-start',\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n ...sx,\n }}\n >\n {label && <Label label={label} units={units} horizontal={horizontal} />}\n <Flex\n sx={{\n flexGrow: horizontal ? 1 : 'unset',\n flexDirection: 'column',\n ml: bottom && label ? '4px' : '0px',\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n <Flex\n sx={{\n gap: ['3px', '6px', '6px', '7px'],\n height: !horizontal ? '100%' : 'unset',\n }}\n >\n {horizontal && clim && !bottom && <ClimMin />}\n <Gradient\n colormap={colormap}\n horizontal={horizontal}\n discrete={discrete}\n width={width}\n height={height}\n />\n {horizontal && clim && !bottom && <ClimMax />}\n </Flex>\n {horizontal && clim && bottom && (\n <Flex sx={{ justifyContent: 'space-between' }}>\n <ClimMin />\n <ClimMax />\n </Flex>\n )}\n </Flex>\n\n {!horizontal && (\n <Flex\n sx={{\n flexDirection: 'column-reverse',\n justifyContent: 'space-between',\n height: height || DIMENSIONS.height,\n }}\n >\n {clim && <ClimMin />}\n {clim && <ClimMax />}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default Colorbar\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst InlineColor = ({ sx, color, children, ...props }) => {\n return (\n <Box\n as='span'\n sx={{ display: 'inline-block', color: color, ...sx }}\n {...props}\n >\n {children}\n </Box>\n )\n}\n\nconst Colors = {}\n\nColors.Primary = (props) => {\n return <InlineColor color='primary' {...props} />\n}\n\nColors.Secondary = (props) => {\n return <InlineColor color='secondary' {...props} />\n}\n\nColors.Background = (props) => {\n return <InlineColor color='background' {...props} />\n}\n\nColors.Red = (props) => {\n return <InlineColor color='red' {...props} />\n}\n\nColors.Orange = (props) => {\n return <InlineColor color='orange' {...props} />\n}\n\nColors.Yellow = (props) => {\n return <InlineColor color='yellow' {...props} />\n}\n\nColors.Green = (props) => {\n return <InlineColor color='green' {...props} />\n}\n\nColors.Teal = (props) => {\n return <InlineColor color='teal' {...props} />\n}\n\nColors.Blue = (props) => {\n return <InlineColor color='blue' {...props} />\n}\n\nColors.Purple = (props) => {\n return <InlineColor color='purple' {...props} />\n}\n\nColors.Pink = (props) => {\n return <InlineColor color='pink' {...props} />\n}\n\nColors.Grey = (props) => {\n return <InlineColor color='grey' {...props} />\n}\n\nexport default Colors\n","import React from 'react'\nimport Head from 'next/head'\nimport { useThemeUI } from 'theme-ui'\n\nconst Meta = ({ title, description, card, url }) => {\n const { theme, colorMode } = useThemeUI()\n if (!description) {\n console.warn(\n 'a custom description should be used for search engine optimization'\n )\n }\n if (!title) {\n console.warn('a custom title should be used for search engine optimization')\n }\n const titleProp = title || 'CarbonPlan'\n const descriptionProp =\n description ||\n 'Improving the transparency and scientific integrity of climate solutions with open data and tools.'\n const cardProp = card || 'https://images.carbonplan.org/social/homepage.png'\n const urlProp = url || 'https://carbonplan.org'\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 {url && <link rel='canonical' href={url} />}\n <link\n rel='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\n <link\n rel='icon'\n type='image/svg+xml'\n href='https://images.carbonplan.org/favicon.svg'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-medium-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-mono-11-pitch-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-faux-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link rel='manifest' href='https://images.carbonplan.org/manifest.json' />\n <meta name='theme-color' content={theme.colors.background} />\n <meta\n name='color-scheme'\n content={colorMode === 'light' ? 'light' : 'dark'}\n />\n <link\n rel='mask-icon'\n href='https://images.carbonplan.org/safari-pinned-tab.svg'\n color='#000000'\n />\n <link\n rel='apple-touch-icon'\n sizes='180x180'\n href='https://images.carbonplan.org/apple-touch-icon.png'\n />\n <meta name='msapplication-TileColor' content={theme.colors.background} />\n <meta\n name='msapplication-TileImage'\n content='https://images.carbonplan.org/mstile-144x144.png'\n />\n <meta\n name='msapplication-config'\n content='https://images.carbonplan.org/browserconfig.xml'\n />\n <meta property='og:title' content={titleProp} />\n <meta property='og:description' content={descriptionProp} />\n <meta property='og:image' content={cardProp} />\n <meta property='og:url' content={urlProp} />\n <meta name='twitter:title' content={titleProp} />\n <meta name='twitter:description' content={descriptionProp} />\n <meta name='twitter:image' content={cardProp} />\n <meta name='twitter:card' content='summary_large_image' />\n <meta name='format-detection' content='telephone=no' />\n </Head>\n )\n}\n\nexport default Meta\n","import React from 'react'\nimport { Box } from 'theme-ui'\n\nconst Logo = ({ ...props }) => {\n return (\n <Box\n as='svg'\n width='150'\n fill='currentColor'\n stroke='none'\n viewBox='0 0 151.1 28.8'\n {...props}\n >\n <g>\n <g>\n <path\n d='M9.7,20.1c-1.3-1.4-2-3.1-2-5.2c0-2.1,0.7-3.9,2-5.2c1.3-1.4,3-2,5.1-2c1.7,0,3.1,0.4,4.3,1.3\n c1.1,0.9,1.8,2.1,2.1,3.5c0,0.1,0,0.2,0,0.3s-0.1,0.2-0.2,0.2h-2.3c-0.2,0-0.3-0.1-0.4-0.2c-0.3-0.8-0.7-1.4-1.3-1.8\n c-0.6-0.4-1.4-0.6-2.2-0.6c-1.3,0-2.3,0.4-3,1.2c-0.8,0.8-1.1,1.9-1.1,3.4c0,1.5,0.4,2.6,1.1,3.4c0.8,0.8,1.8,1.2,3,1.2\n c0.8,0,1.6-0.2,2.2-0.6c0.6-0.4,1.1-1,1.3-1.8c0.1-0.2,0.2-0.2,0.4-0.3H21c0.1,0,0.2,0.1,0.2,0.2c0,0.1,0,0.2,0,0.3\n c-0.3,1.4-1,2.6-2.1,3.5c-1.1,0.9-2.5,1.3-4.3,1.3C12.7,22.1,11,21.4,9.7,20.1z'\n />\n </g>\n <g>\n <path\n d='M22.5,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1C30.6,7.6,32,8.1,33,9c1,0.9,1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C23,20.1,22.5,19,22.5,17.6z M25.4,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C25.7,16.3,25.4,16.8,25.4,17.5z'\n />\n </g>\n <g>\n <path\n d='M37,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.1c1-1.1,2.3-1.6,3.7-1.6\n c0.8,0,1.7,0.1,2.5,0.4c0.2,0.1,0.3,0.3,0.3,0.5v2.2c0,0.2-0.1,0.3-0.2,0.3c0,0-0.1,0-0.2-0.1c-1.1-0.5-2-0.8-2.9-0.8\n c-0.9,0-1.7,0.4-2.3,1.1c-0.6,0.7-0.9,1.7-0.9,3v7.3c0,0.2-0.1,0.3-0.3,0.3h-2.2C37.1,21.8,37,21.7,37,21.6z'\n />\n </g>\n <g>\n <path\n d='M47.6,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3H50c0.2,0,0.3,0.1,0.3,0.3v6.5c1.3-1.1,2.7-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2c1.1,1.3,1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.8,0-3.2-0.5-4.3-1.6v1\n c0,0.2-0.1,0.3-0.3,0.3h-2.2C47.7,21.8,47.6,21.7,47.6,21.6z M51.2,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3\n s1.7,1.3,2.9,1.3c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3\n C52.9,10.2,51.9,10.7,51.2,11.5z'\n />\n </g>\n <g>\n <path\n d='M64.3,20.1c-1.4-1.4-2.1-3.1-2.1-5.2c0-2.1,0.7-3.9,2.1-5.2c1.4-1.4,3.1-2,5.2-2c2.1,0,3.8,0.7,5.2,2\n c1.4,1.4,2.1,3.1,2.1,5.2c0,2.1-0.7,3.9-2.1,5.2c-1.4,1.4-3.1,2-5.2,2C67.4,22.1,65.7,21.4,64.3,20.1z M66.4,11.5\n c-0.8,0.8-1.2,2-1.2,3.4c0,1.4,0.4,2.5,1.2,3.4s1.9,1.3,3.1,1.3c1.3,0,2.3-0.4,3.1-1.3c0.8-0.8,1.2-2,1.2-3.4\n c0-1.4-0.4-2.5-1.2-3.4c-0.8-0.8-1.9-1.3-3.1-1.3C68.2,10.2,67.2,10.7,66.4,11.5z'\n />\n </g>\n <g>\n <path\n d='M78.7,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C78.7,21.8,78.7,21.7,78.7,21.6z'\n />\n </g>\n <g>\n <path\n d='M101.7,27.1V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1c1.1-1.1,2.5-1.6,4.3-1.6\n c1.9,0,3.4,0.7,4.6,2s1.7,3.1,1.7,5.3c0,2.2-0.6,4-1.7,5.3c-1.1,1.3-2.7,2-4.6,2c-1.5,0-3-0.5-4.3-1.6v6.6c0,0.2-0.1,0.3-0.3,0.3\n H102C101.8,27.3,101.7,27.2,101.7,27.1z M105.3,11.5c-0.7,0.9-1.1,2-1.1,3.3c0,1.4,0.4,2.5,1.1,3.3s1.7,1.3,2.9,1.3\n c1.2,0,2.2-0.4,2.9-1.3c0.7-0.9,1.1-2,1.1-3.3c0-1.4-0.4-2.5-1.1-3.3c-0.7-0.9-1.7-1.3-2.9-1.3C107,10.2,106,10.7,105.3,11.5z'\n />\n </g>\n <g>\n <path\n d='M117.2,21.6V2.7c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v18.9c0,0.2-0.1,0.3-0.3,0.3h-2.2\n C117.3,21.8,117.2,21.7,117.2,21.6z'\n />\n </g>\n <g>\n <path\n d='M122,17.6c0-1.5,0.5-2.6,1.6-3.5c1.1-0.8,2.4-1.2,4.1-1.2c1.1,0,2.4,0.2,3.7,0.6V13c0-0.9-0.3-1.6-0.8-2.1\n c-0.5-0.5-1.2-0.8-2.2-0.8c-1.4,0-2.4,0.6-2.9,1.8c-0.1,0.2-0.2,0.2-0.4,0.2h-2.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0-0.2,0-0.3\n c0.3-1.2,0.9-2.2,1.9-2.9c1-0.8,2.3-1.1,3.8-1.1c1.7,0,3.1,0.5,4.2,1.4s1.5,2.2,1.5,3.8V19c0,1.1,0.2,1.9,0.5,2.6\n c0,0.1,0.1,0.1,0.1,0.1c0,0.1-0.1,0.1-0.3,0.1h-2.8c-0.2,0-0.3-0.1-0.3-0.3v-1c-1.1,1.1-2.5,1.6-4.3,1.6c-1.4,0-2.6-0.4-3.6-1.2\n C122.5,20.1,122,19,122,17.6z M124.9,17.5c0,0.6,0.2,1.1,0.7,1.5c0.4,0.4,1.1,0.5,1.9,0.5c1.1,0,2-0.3,2.8-0.9\n c0.8-0.6,1.1-1.5,1.1-2.6c-1.3-0.4-2.5-0.6-3.6-0.6c-0.8,0-1.5,0.2-2.1,0.5C125.2,16.3,124.9,16.8,124.9,17.5z'\n />\n </g>\n <g>\n <path\n d='M136.9,21.6V8.2c0-0.2,0.1-0.3,0.3-0.3h2.2c0.2,0,0.3,0.1,0.3,0.3v1.3c1.3-1.2,2.7-1.8,4.4-1.8\n c1.5,0,2.7,0.4,3.5,1.3c0.8,0.9,1.3,2,1.3,3.6v9.1c0,0.2-0.1,0.3-0.3,0.3h-2.2c-0.2,0-0.3-0.1-0.3-0.3v-8.3c0-2-0.9-3.1-2.8-3.1\n c-1.1,0-1.9,0.4-2.7,1.2c-0.7,0.8-1.1,2-1.1,3.5v6.6c0,0.2-0.1,0.3-0.3,0.3h-2.2C137,21.8,136.9,21.7,136.9,21.6z'\n />\n </g>\n <path\n d='M97.6,14.9c0,4.2-0.6,8.3-1.6,12.3c0,0.1-0.1,0.2-0.2,0.2h-2.4c-0.1,0-0.2-0.1-0.2-0.3c1.1-3.9,1.7-8,1.7-12.2\n s-0.6-8.3-1.7-12.2c0-0.1,0.1-0.3,0.2-0.3l2.4,0c0.1,0,0.2,0.1,0.2,0.2C97.1,6.5,97.6,10.6,97.6,14.9z'\n />\n <path\n d='M1.4,14.9C1.4,10.6,2,6.5,3,2.6c0-0.1,0.1-0.2,0.2-0.2l2.4,0c0.1,0,0.2,0.1,0.2,0.3c-1.1,3.9-1.7,8-1.7,12.2\n s0.6,8.3,1.7,12.2c0,0.1-0.1,0.3-0.2,0.3H3.3c-0.1,0-0.2-0.1-0.2-0.2C2,23.2,1.4,19.1,1.4,14.9z'\n />\n </g>\n </Box>\n )\n}\n\nexport default Logo\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Menu = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='52' y1='29.9' x2='16' y2='29.9' />\n <line x1='52' y1='6.1' x2='16' y2='6.1' />\n <line x1='52' y1='18' x2='16' y2='18' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Menu\n","import React, { useState } from 'react'\nimport { default as NextLink } from 'next/link'\nimport { Box, Flex, Container, Link } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Logo from './logo'\nimport Row from './row'\nimport Column from './column'\nimport Menu from './menu'\n\nconst sx = {\n link: (current, label, first = false) => {\n return {\n width: 'auto',\n color: current === label ? 'secondary' : 'text',\n fontSize: [6, 6, 7, 8],\n fontFamily: 'heading',\n letterSpacing: 'heading',\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderTopWidth: first ? '1px' : '0px',\n py: [3, 3, 4, 5],\n textDecoration: 'none',\n display: 'block',\n position: 'relative',\n transition: 'color 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover > #arrow': {\n opacity: 1,\n },\n },\n '&:hover': {\n color: current == label ? 'secondary' : 'text',\n },\n }\n },\n}\n\nconst links = [\n { url: 'about', display: 'About' },\n { url: 'research', display: 'Research' },\n { url: 'blog', display: 'Blog' },\n { url: 'press', display: 'Press' },\n]\n\nconst HoverArrow = () => {\n return (\n <Arrow\n id='arrow'\n sx={{\n pointerEvents: 'none',\n display: 'inline-block',\n position: 'absolute',\n left: ['-60px', '-68px', '-80px', '-104px'],\n top: ['32px', '32px', '46px', '62px'],\n opacity: 0,\n transition: 'opacity 0.2s ease-out',\n transform: 'rotate(45deg)',\n width: [36, 36, 48, 56],\n height: [36, 36, 48, 56],\n }}\n />\n )\n}\n\nconst Nav = ({ link, mode, nav, first, setExpanded }) => {\n const { url, display } = link\n const href = mode === 'remote' ? 'https://carbonplan.org/' + url : '/' + url\n\n if (mode === 'homepage' || (mode === 'local' && nav === url)) {\n return (\n <NextLink href={href} passHref legacyBehavior>\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 legacyBehavior>\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, { useState, useEffect } from 'react'\nimport { Box, Flex, 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 const [year, setYear] = useState(null)\n useEffect(() => {\n setYear(new Date().getFullYear())\n }, [])\n\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 NEWSLETTER\n </Box>\n <Link\n href='https://carbonplan.org/newsletter'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n Subscribe\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 nonprofit public benefit corporation in\n 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 display: 'inline-block',\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 <Flex\n sx={{\n flexDirection: ['column', 'column', 'row', 'row'],\n gap: [0, 0, '10px', '12px'],\n }}\n >\n <Box>(c) {year}</Box>\n <Box>CARBONPLAN</Box>\n </Flex>\n </Box>\n </Box>\n </Column>\n <Column\n start={[4, 3, 5, 5]}\n width={[3, 3, 4, 4]}\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 pt: [2],\n }}\n >\n <Flex\n sx={{\n color: 'secondary',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n flexDirection: ['column', 'column', 'row', 'row'],\n gap: [0, 0, '10px', '12px'],\n }}\n >\n <NextLink href='/terms' passHref legacyBehavior>\n <Box\n as='a'\n sx={{\n color: 'secondary',\n '&:hover': {\n color: 'primary',\n },\n }}\n >\n TERMS OF USE\n </Box>\n </NextLink>\n <Box sx={{ display: ['none', 'none', 'initial', 'initial'] }}>\n {' / '}\n </Box>\n <NextLink href='/privacy' passHref legacyBehavior>\n <Box\n as='a'\n sx={{\n color: 'secondary',\n '&:hover': {\n color: 'primary',\n },\n }}\n >\n PRIVACY POLICY\n </Box>\n </NextLink>\n </Flex>\n </Box>\n </Column>\n <Column\n start={[5, 7, 9, 9]}\n width={[2, 2, 3, 3]}\n sx={{ display: ['none', 'initial', 'initial', 'initial'] }}\n >\n <Monogram\n sx={{\n width: 80,\n height: 80,\n mt: [0, '-10px', 4, 5],\n mb: ['-12px'],\n }}\n />\n </Column>\n </Row>\n </Box>\n )\n}\n\nexport default Footer\n","import React from 'react'\nimport { Box, IconButton, useColorMode } from 'theme-ui'\nimport { useCallback } from 'react'\nimport { Sun } from '@carbonplan/icons'\n\nconst Dimmer = ({ sx, ...props }) => {\n const [colorMode, setColorMode] = useColorMode()\n\n const toggle = useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light')\n }, [colorMode])\n\n return (\n <IconButton\n aria-label='Toggle dark mode'\n onClick={toggle}\n role='checkbox'\n sx={{\n width: 32,\n height: 32,\n display: 'inline-block',\n cursor: 'pointer',\n color: 'secondary',\n ...sx,\n }}\n {...props}\n >\n <Sun\n sx={{\n strokeWidth: '1.75',\n transition: 'stroke 0.15s',\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover': {\n stroke: 'primary',\n },\n },\n }}\n />\n </IconButton>\n )\n}\n\nexport default Dimmer\n","import React from 'react'\nimport { Box, Text, Link, useThemeUI } from 'theme-ui'\n\nconst GitSha = () => {\n const sha = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA\n const owner = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER\n const slug = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG\n\n const { theme } = useThemeUI()\n\n const color = theme.rawColors.secondary\n\n if (sha && owner && slug) {\n const shortSha = sha.substring(0, 7)\n const href = 'https://github.com/' + owner + '/' + slug + '/tree/' + sha\n\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Link\n href={href}\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n textDecoration: 'none',\n }}\n >\n {shortSha}\n </Link>\n </Box>\n )\n } else {\n // fallback\n return (\n <Box sx={{ display: 'inline-block', width: '87px' }}>\n <Separator color={color} />\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n ml: [2],\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: color,\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {color}\n </Text>\n </Box>\n )\n }\n}\n\nconst Separator = ({ color }) => {\n return (\n <svg fill={color} opacity='0.8' viewBox='0 0 24 24' width='24' height='24'>\n <circle r={5} cx={19} cy={19} />\n </svg>\n )\n}\n\nexport default GitSha\n","import React from 'react'\nimport { Box, Text } from 'theme-ui'\nimport { useState, useEffect } from 'react'\nimport GitSha from './gitsha'\n\nconst Value = ({ mode }) => {\n const [display, setDisplay] = useState(init(mode))\n\n useEffect(() => {\n if (mode === 'mouse') {\n const setFromEvent = (e) => {\n const x = format(e.clientX, 4)\n const y = format(e.clientY, 4)\n setDisplay(`X,Y: ${x},${y}`)\n }\n window.addEventListener('mousemove', setFromEvent)\n return () => {\n window.removeEventListener('mousemove', setFromEvent)\n }\n }\n if (mode === 'scroll') {\n const setFromEvent = (e) => {\n const y = scrollFraction(window, document)\n setDisplay(`SCROLL: 0.${format((y * 100).toFixed(0), 2)}`)\n }\n window.addEventListener('scroll', setFromEvent)\n const y = scrollFraction(window, document)\n return () => {\n window.removeEventListener('scroll', setFromEvent)\n }\n }\n }, [])\n\n return (\n <Text\n sx={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n mr: '-6px',\n fontFamily: 'mono',\n letterSpacing: 'body',\n color: 'secondary',\n fontSize: [1],\n textTransform: 'uppercase',\n }}\n >\n {display}\n </Text>\n )\n}\n\nconst Metadata = ({ mode }) => {\n return (\n <Box\n sx={{\n userSelect: 'none',\n position: 'fixed',\n bottom: '42px',\n right: '24px',\n transformOrigin: 'right',\n transform: 'rotate(90deg)',\n display: ['none', 'none', 'initial'],\n }}\n >\n <Value mode={mode} />\n <GitSha />\n </Box>\n )\n}\n\nfunction init(mode) {\n if (mode === 'mouse') {\n return `X,Y: ${format(0, 4)},${format(0, 4)}`\n } else if (mode === 'scroll') {\n return `SCROLL: 0.${format((0).toFixed(0), 2)}`\n } else {\n return mode\n }\n}\n\nfunction format(num, pad) {\n return num.toString().padStart(pad, '0')\n}\n\nfunction scrollFraction(window, documnt) {\n return Math.min(window.scrollY / (document.body.offsetHeight - 770), 0.99)\n}\n\nexport default Metadata\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { keyframes } from '@emotion/react'\n\nconst fade = keyframes({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n})\n\nconst FadeIn = ({ duration = 300, delay = 0, children, ...delegated }) => {\n return (\n <Box\n {...delegated}\n sx={{\n animationDuration: duration + 'ms',\n animationDelay: delay + 'ms',\n animationName: fade.toString(),\n animationFillMode: 'backwards',\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default FadeIn\n","const getScrollbarWidth = (document) => {\n const outer = document.createElement('div')\n outer.style.visibility = 'hidden'\n outer.style.width = '100px'\n document.body.appendChild(outer)\n outer.style.overflow = 'scroll'\n const inner = document.createElement('div')\n inner.style.width = '100%'\n outer.appendChild(inner)\n const delta = outer.offsetWidth - inner.offsetWidth\n outer.parentNode.removeChild(outer)\n return delta\n}\n\nexport default getScrollbarWidth\n","import React, { useEffect } from 'react'\nimport getScrollbarWidth from './utils/get-scrollbar-width'\n\nconst Scrollbar = () => {\n useEffect(() => {\n if (typeof document !== 'undefined') {\n const delta = getScrollbarWidth(document)\n if (delta > 0) {\n document.body.classList.add('custom-scrollbar')\n document\n .getElementsByTagName('html')[0]\n .classList.add('custom-scrollbar')\n }\n }\n }, [])\n return null\n}\n\nexport default Scrollbar\n","import React, { useState, useEffect } from 'react'\nimport { Box, Container } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Guide = ({ color = 'muted' }) => {\n const [display, setDisplay] = useState(false)\n\n useEffect(() => {\n function handler(event) {\n const { key, keyCode, metaKey } = event\n if (key === ';' && metaKey) {\n setDisplay((prev) => !prev)\n }\n }\n\n document.addEventListener('keydown', handler)\n return () => {\n document.removeEventListener('keydown', handler)\n }\n }, [])\n\n return (\n <Box\n sx={{\n position: 'fixed',\n width: '100%',\n left: 0,\n top: 0,\n zIndex: color === 'teal' ? 5000 : -1,\n pointerEvents: 'none',\n display: display ? 'initial' : 'none',\n }}\n >\n <Container>\n <Box sx={{ display: ['none', 'none', 'initial', 'initial'] }}>\n <GuideColumns\n indices={[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}\n color={color}\n />\n </Box>\n <Box sx={{ display: ['none', 'initial', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6, 7, 8]} color={color} />\n </Box>\n <Box sx={{ display: ['initial', 'none', 'none', 'none'] }}>\n <GuideColumns indices={[1, 2, 3, 4, 5, 6]} color={color} />\n </Box>\n </Container>\n </Box>\n )\n}\n\nconst colorCycle = [\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'teal',\n 'blue',\n 'purple',\n 'pink',\n]\n\nfunction GuideColumns({ indices, color }) {\n const sx = {\n outerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: color === 'teal' ? '0px' : '1px',\n borderRightWidth: color === 'teal' ? '0px' : '1px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n innerGuideColumn: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderLeftWidth: '0px',\n borderRightWidth: '0px',\n opacity: color == 'teal' ? 0.4 : 1,\n },\n }\n\n return (\n <Row>\n {indices.map((i) => {\n return (\n <Column\n key={i}\n start={[i]}\n width={[1, 1]}\n dl={0.5}\n dr={0.5}\n sx={{\n bg: color === 'teal' ? 'teal' : 'transparent',\n height: '100vh',\n ...sx.innerGuideColumn,\n }}\n >\n <Box\n sx={{\n mx: ['12px', 3, 3, 4],\n bg: color === 'teal' ? 'background' : 'transparent',\n height: '100%',\n borderLeftColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n borderRightColor:\n color === 'rainbow' ? colorCycle[i % 8] : 'muted',\n ...sx.outerGuideColumn,\n }}\n ></Box>\n </Column>\n )\n })}\n </Row>\n )\n}\n\nexport default Guide\n","import React from 'react'\nimport { IconButton } from 'theme-ui'\n\nconst Settings = ({ value, sx, ...props }) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='24' y1='2.1' x2='24' y2='6.1' />\n <line x1='24' y1='24.1' x2='24' y2='33.9' />\n <line x1='44' y1='2.1' x2='44' y2='12.1' />\n <line x1='44' y1='30.1' x2='44' y2='33.9' />\n <circle cx='24' cy='15.1' r='5' />\n <circle cx='44' cy='21.1' r='5' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Settings\n","import React, { useEffect } from 'react'\nimport { useThemeUI, Container, Flex, Box } from 'theme-ui'\nimport Meta from './meta'\nimport Header from './header'\nimport Footer from './footer'\nimport Dimmer from './dimmer'\nimport Metadata from './metadata'\nimport FadeIn from './fade-in'\nimport Scrollbar from './scrollbar'\nimport Guide from './guide'\nimport Settings from './settings'\n\nconst Layout = ({\n title,\n description,\n url,\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 = false,\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} url={url} />\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 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\nFigureCaption.displayName = 'FigureCaption'\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, { useMemo } 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 order,\n labels,\n showAll = false,\n multiSelect = false,\n ...props\n}) => {\n const keys = useMemo(() => {\n if (order) {\n return order\n } else {\n return Object.keys(values)\n }\n }, [order, ...Object.keys(values).sort()])\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 {keys.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 {labels ? labels[d] : d}\n </Tag>\n ))}\n </Box>\n </Box>\n )\n}\n\nexport default Filter\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Column from './column'\n\nconst Sidenote = ({ children, variant = 'h1' }) => {\n let mt\n if (variant === 'h1') mt = [4, '27px', '42px', '54px']\n if (variant === 'h2') mt = [4, 4, '14px', '25px']\n return (\n <>\n <Column start={[1, 4, 8, 8]} width={[1, 1, 1, 1]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n textAlign: 'right',\n }}\n >\n /\n </Box>\n </Column>\n <Column start={[2, 5, 9, 9]} width={[3, 3, 2, 2]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n height: ['100%', '0px', '0px', '0px'],\n }}\n >\n {children}\n </Box>\n </Column>\n </>\n )\n}\n\nexport default Sidenote\n","import React, { forwardRef } from 'react'\nimport { Input as ThemedInput } from 'theme-ui'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst Input = ({ size = 'sm', inverted, sx, ...props }, ref) => {\n const defaultColor = inverted ? 'secondary' : 'primary'\n\n const styles = {\n color: defaultColor,\n borderColor: 'secondary',\n borderStyle: 'solid',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n borderRadius: '0px',\n transition: 'border 0.15s',\n borderBottomWidth: '1px',\n width: 'calc(min(15ch, 100%))',\n p: [0],\n py: ['2px'],\n 'input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n 'input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n ':focus': {\n borderColor: 'primary',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: 'none !important',\n },\n ...getSizeStyles(size),\n ...sx,\n }\n return <ThemedInput {...props} ref={ref} sx={styles} />\n}\n\nexport default forwardRef(Input)\n","import React, { forwardRef } from 'react'\nimport { useThemeUI, Slider as ThemeSlider } from 'theme-ui'\n\nconst Slider = ({ sx, ...props }, ref) => {\n const color = sx && sx.color ? sx.color : 'primary'\n const {\n theme: { rawColors: colors },\n } = useThemeUI()\n\n return (\n <ThemeSlider\n ref={ref}\n sx={{\n '&::-webkit-slider-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n '&::-moz-range-thumb': {\n height: [22, 18, 16],\n width: [22, 18, 16],\n boxShadow: `0 0 0 0px ${colors.secondary}`,\n transition: 'box-shadow .15s ease',\n },\n ':focus-visible': {\n outline: 'none !important',\n background: `${colors.secondary} !important`,\n },\n ':focus': {\n color: color,\n '&::-webkit-slider-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n '&::-moz-range-thumb': {\n boxShadow: `0 0 0 4px ${colors.secondary}`,\n },\n },\n color: color,\n ...sx,\n }}\n {...props}\n />\n )\n}\n\nexport default forwardRef(Slider)\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst styles = {\n reset: {\n verticalAlign: 'baseline',\n border: 0,\n outline: 0,\n margin: 0,\n padding: 0,\n },\n row: {\n borderStyle: 'solid',\n borderWidth: '0px',\n borderTopWidth: '1px',\n borderColor: 'muted',\n pt: [3, 3, 3, '20px'],\n pb: [3, 3, 3, '20px'],\n mb: ['2px'],\n },\n header: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n index: {\n display: 'block',\n textTransform: 'uppercase',\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n entry: {\n display: 'block',\n fontSize: [2, 2, 2, 3],\n fontFamily: 'faux',\n letterSpacing: 'faux',\n mb: ['1px'],\n mt: [2, 0, 0, 0],\n },\n}\n\nconst Table = ({\n data,\n sx,\n color,\n header,\n columns,\n start,\n width,\n index = true,\n borderBottom = true,\n borderTop = true,\n}) => {\n if (!start || !columns || !width) {\n throw new Error('Must provide columns, start, and width')\n }\n return (\n <Box as='table' sx={{ display: 'block', ...sx }}>\n <Box as='tbody' sx={{ display: 'block' }}>\n {header && (\n <Row\n as='tr'\n sx={{\n ...styles.reset,\n ...styles.header,\n ...styles.row,\n color: color,\n borderTopWidth: !borderTop ? '0px' : '1px',\n }}\n >\n <Column as='td' start={[1]} width={columns} sx={styles.index}>\n {header}\n </Column>\n </Row>\n )}\n {data.map((row, i) => {\n return (\n <Row\n as='tr'\n columns={columns}\n key={i}\n sx={{\n ...styles.reset,\n ...styles.row,\n pb:\n borderBottom && i === data.length - 1\n ? ['18px', '18px', '18px', '22px']\n : [3, 3, 3, '20px'],\n borderBottomWidth:\n borderBottom && i === data.length - 1 ? '1px' : '0px',\n borderTopWidth:\n !borderTop && i === 0 && !header ? '0px' : '1px',\n }}\n >\n {row.map((column, j) => {\n return (\n <Column\n as='td'\n key={j}\n start={start[j]}\n width={width[j]}\n sx={\n j == 0 && index\n ? { ...styles.reset, ...styles.index }\n : { ...styles.reset, ...styles.entry }\n }\n >\n {column}\n </Column>\n )\n })}\n </Row>\n )\n })}\n </Box>\n </Box>\n )\n}\n\nexport default Table\n","import React 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\nTableCaption.displayName = 'TableCaption'\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","const defaultOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n}\n\nconst formatDateElement = (date, element, option) => {\n if (!option) {\n return null\n }\n\n const format = typeof option === 'string' ? option : defaultOptions[element]\n\n const result = date.toLocaleString('default', {\n [element]: format,\n })\n\n if (format === 'numeric' && ['day', 'month'].includes(element)) {\n return result.padStart(2, '0')\n } else {\n return result\n }\n}\nconst formatDate = (date, options = defaultOptions) => {\n const d = new Date(date.replace(/-/g, '/'))\n\n const month = formatDateElement(d, 'month', options.month)\n const day = formatDateElement(d, 'day', options.day)\n const year = formatDateElement(d, 'year', options.year)\n\n return [month, day, year].filter(Boolean).join(options.separator ?? ' ')\n}\n\nexport default formatDate\n","import React from 'react'\nimport { Box } from 'theme-ui'\nimport { 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 <Box as='h1' variant='styles.h1'>\n Oops!\n </Box>\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)' : 'rotate(0deg)',\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 // try to use figure/table number as id for anchoring\n const childrenArray = React.Children.toArray(children)\n const captionElement = childrenArray.find(\n (child) =>\n React.isValidElement(child) &&\n child.type?.displayName &&\n (child.type.displayName === 'FigureCaption' ||\n child.type.displayName === 'TableCaption')\n )\n\n const elementNumber = captionElement?.props?.number\n const elementType =\n captionElement?.type?.displayName === 'TableCaption' ? 'table' : 'figure'\n const id = elementNumber ? `${elementType}-${elementNumber}` : undefined\n\n return (\n <Box\n as={as}\n id={id}\n sx={{\n my: [6, 6, 6, 7],\n scrollMarginTop: '60px', // account for header height\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 { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\nimport Sidenote from './sidenote'\n\nconst Heading = ({\n children,\n sidenote,\n variant = 'h1',\n description,\n descriptionStart = [1, 3, 5, 5],\n descriptionWidth = [5, 5, 5, 4],\n sx,\n}) => {\n let titleWidth = [6, 6, 6, 6]\n if (description) {\n titleWidth[1] = descriptionStart[1] - 1\n titleWidth[2] = descriptionStart[2] - 2\n titleWidth[3] = descriptionStart[3] - 2\n }\n\n if (!['h1', 'h2'].includes(variant)) {\n throw new Error(`variant must be 'h1' or 'h2' but got '${variant}'`)\n }\n\n return (\n <Row sx={{ mt: [5, 6, 7, 8], mb: [5, 6, 7, 8], ...sx }}>\n <Column start={[1, 1, 2, 2]} width={titleWidth}>\n {variant === 'h1' && (\n <Box as='h1' variant='styles.h1' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n {variant === 'h2' && (\n <Box as='h2' variant='styles.h2' sx={{ my: [0, 0, 0, 0] }}>\n {children}\n </Box>\n )}\n </Column>\n {sidenote && <Sidenote variant={variant}>{sidenote}</Sidenote>}\n {description && (\n <Column start={descriptionStart} width={descriptionWidth}>\n <Box\n sx={{\n mt: [4, '5px', '20px', '31px'],\n fontSize: [2, 2, 2, 3],\n }}\n >\n {description}\n </Box>\n </Column>\n )}\n </Row>\n )\n}\n\nexport default Heading\n","import React from 'react'\nimport { Flex } from 'theme-ui'\nimport { RotatingArrow } from '@carbonplan/icons'\nimport Button from './button'\n\nconst LinkGroup = ({\n members,\n color,\n inverted,\n 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 >\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 from 'react'\nimport { Box } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nconst Tray = ({ expanded, sx, children }) => {\n return (\n <>\n <Box\n sx={{\n position: 'fixed',\n top: '56px',\n bottom: '0px',\n left: '0px',\n width: 'calc(100vw)',\n mt: ['56px'],\n bg: 'background',\n zIndex: 1000,\n transition: 'opacity 0.15s',\n opacity: expanded ? 0.9 : 0,\n pointerEvents: expanded ? 'all' : 'none',\n }}\n />\n <Box\n sx={{\n position: 'fixed',\n width: 'calc(100vw)',\n top: '0px',\n mt: ['56px'],\n pb: [6, 7, 7, 8],\n pt: [5, 6, 7, 8],\n bg: 'background',\n zIndex: 1100,\n borderStyle: 'solid',\n borderColor: 'muted',\n borderWidth: '0px',\n borderBottomWidth: '1px',\n transition: 'transform 0.15s',\n ml: [-3, -4, -5, -6],\n pl: [3, 4, 5, 6],\n pr: [3, 4, 5, 6],\n transform: expanded ? 'translateY(0)' : 'translateY(-100%)',\n ...sx,\n }}\n >\n <Row>\n <Column start={[1, 1, 1, 1]} width={[6, 8, 10, 10]}>\n {children}\n </Column>\n </Row>\n </Box>\n </>\n )\n}\n\nexport default Tray\n","import { useEffect, useState } from 'react'\n\nimport getScrollbarWidth from './get-scrollbar-width'\n\nconst useScrollbarClass = () => {\n const [className, setClassName] = useState(null)\n\n useEffect(() => {\n if (document && getScrollbarWidth(document) > 0) {\n setClassName('custom-scrollbar')\n }\n }, [])\n\n return className\n}\n\nexport default useScrollbarClass\n"],"names":["_excluded","Avatar","_ref","srcProp","altProp","_ref$color","color","_ref$width","width","maxWidth","name","github","alt","src","sx","props","_objectWithoutPropertiesLoose","console","warn","toLowerCase","replaceAll","React","createElement","Box","_extends","height","borderRadius","overflow","position","display","verticalAlign","Image","filter","top","bg","opacity","pointerEvents","Row","columnGap","rowGap","children","columns","gap","makeArray","input","Array","isArray","includes","length","Error","map","d","flat","Number","isInteger","Grid","start","dl","dr","mr","end","i","ml","gridColumnStart","gridColumnEnd","xs","sm","md","lg","xl","Group","marginValue","_ref$direction","direction","spacing","_ref$spacing","sizes","hasOwnProperty","marginProperty","additionalStyles","Children","child","_extends2","Blank","justifyContent","alignItems","fontFamily","letterSpacing","fontSize","Link$1","forwardRef","ref","href","internal","_ref$internal","startsWith","NextLink","passHref","legacyBehavior","ThemedLink","getSizeStyles","size","lineHeight","offset","margin","strokeWidth","_ref$size","prefix","suffix","inverted","align","prefixHover","suffixHover","prefixAlign","suffixAlign","prefixOffset","suffixOffset","_ref2","sxProp","_excluded2","baseColor","hoverColor","transform","type","hover","cloneElement","id","transition","style","sizeStyles","border","background","padding","textAlign","cursor","Inner","Fragment","as","Link","textDecoration","label","mb","fill","pb","textTransform","Arrow","_ref$as","number","_ref$label","mx","pr","styles","setClim","px","userSelect","minWidth","DIMENSIONS","Gradient","colormap","discrete","horizontal","step","isHex","String","values","result","exec","parseInt","css","join","minHeight","mt","colors","hinted","Label","_ref3","units","alignSelf","writingMode","whiteSpace","InlineColor","Colors","Meta","title","description","card","url","_useThemeUI","useThemeUI","theme","colorMode","titleProp","descriptionProp","cardProp","urlProp","Head","content","rel","crossOrigin","property","Logo","_objectDestructuringEmpty","stroke","viewBox","Menu","value","IconButton","marginTop","flexShrink","xmlns","x1","y1","x2","y2","className","current","first","borderStyle","borderColor","borderWidth","borderBottomWidth","borderTopWidth","py","links","HoverArrow","left","Nav","link","mode","nav","setExpanded","onClick","NavGroup","key","Header","status","menuItems","_useState","useState","expanded","pt","Column","zIndex","Flex","e","right","bottom","maxHeight","backgroundColor","Container","Monogram","Footer","year","setYear","useEffect","Date","getFullYear","flexDirection","Dimmer","useColorMode","setColorMode","_useColorMode","toggle","useCallback","role","Sun","GitSha","process","env","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","owner","NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER","slug","NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG","rawColors","secondary","sha","shortSha","substring","Separator","Text","r","cx","cy","format","toFixed","init","setDisplay","setFromEvent","x","clientX","clientY","y","window","addEventListener","removeEventListener","_setFromEvent","documnt","Math","min","scrollY","document","body","offsetHeight","scrollFraction","transformOrigin","Value","num","pad","toString","padStart","fade","keyframes","from","to","FadeIn","duration","_ref$duration","delay","_ref$delay","delegated","animationDuration","animationDelay","animationName","animationFillMode","getScrollbarWidth","outer","visibility","appendChild","inner","delta","offsetWidth","parentNode","removeChild","Scrollbar","classList","add","getElementsByTagName","Guide","handler","event","metaKey","prev","GuideColumns","indices","colorCycle","outerGuideColumn","borderLeftWidth","borderRightWidth","innerGuideColumn","borderLeftColor","borderRightColor","Settings","Layout","settings","footer","_ref$footer","_ref$header","header","_ref$metadata","metadata","_ref$links","dimmer","_ref$dimmer","guide","_ref$guide","_ref$scrollbar","scrollbar","container","_ref$container","printable","_ref$printable","_ref$fade","hideOnPrint","query","matchMedia","breakpoints","onchange","matches","push","flex","Metadata","FigureCaption","Caption","displayName","Tag","isClickable","onDoubleClick","m","duplicateOptions","options","defaultValue","overrides","keys","reduce","o","_Object$assign","Object","assign","isAll","option","updateValues","updatedToggle","multiSelect","setValues","isAllAlreadySelected","isSelectingAll","_duplicateOptions","Sidenote","variant","_ref$variant","p","WebkitAppearance","outline","ThemedInput","Input","ThemeSlider","boxShadow","reset","row","index","entry","TableCaption","disabled","transparentize","defaultOptions","month","day","formatDateElement","date","element","_date$toLocaleString","toLocaleString","members","_ref2$direction","_ref2$spacing","limit","fixedCount","idx","max","excess","remaining","firstChar","slice","specialChars","_ref4","clim","_ref4$setClimStep","setClimStep","_ref4$format","_ref4$horizontal","_ref4$bottom","sxClim","dx","climRef","useRef","climMinDragging","setClimMinDragging","climMaxDragging","_useState2","setClimMaxDragging","dy","scale","draggingFunction","pageX","pageY","handleMouseDown","target","setAttribute","updater","listener","code","activeElement","preventDefault","focus","increment","decrement","ClimMin","tabIndex","borderBottom","primary","onMouseDown","ClimMax","_ref6","flexGrow","PoopSad","captionElement","toArray","find","isValidElement","_child$type","elementNumber","_captionElement$props","_captionElement$type","elementType","undefined","my","scrollMarginTop","breakInside","order","labels","showAll","_ref2$showAll","_ref2$multiSelect","useMemo","concat","sort","sidenote","descriptionStart","_ref$descriptionStart","_ref$descriptionWidth","descriptionWidth","titleWidth","_ref$rowGap","_ref$columnGap","flexWrap","Button","RotatingArrow","test","sxSelect","onChange","omitOnChange","k","next","blur","MozAppearance","borderBottomStyle","borderBottomColor","data","_ref$index","_ref$borderBottom","borderTop","_ref$borderTop","column","j","pl","replace","Boolean","separator","_options$separator","setClassName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/avatar.tsx","../src/avatar-group.tsx","../src/row.tsx","../src/column.tsx","../src/group.tsx","../src/badge.tsx","../src/utils/get-sx-color.ts","../src/blockquote.tsx","../src/button.tsx","../src/link.tsx","../src/utils/get-size-styles.ts","../src/callout.tsx","../src/caption.tsx","../src/colorbar.tsx","../src/colors.tsx","../src/custom-404.tsx","../src/layout.tsx","../src/meta.tsx","../src/header.tsx","../src/logo.tsx","../src/menu.tsx","../src/footer.tsx","../src/monogram.tsx","../src/dimmer.tsx","../src/metadata.tsx","../src/gitsha.tsx","../src/fade-in.tsx","../src/scrollbar.tsx","../src/utils/get-scrollbar-width.ts","../src/guide.tsx","../src/settings.tsx","../src/expander.tsx","../src/figure.tsx","../src/figure-caption.tsx","../src/filter.tsx","../src/tag.tsx","../src/heading.tsx","../src/sidenote.tsx","../src/input.tsx","../src/link-group.tsx","../src/select.tsx","../src/slider.tsx","../src/table.tsx","../src/table-caption.tsx","../src/toggle.tsx","../src/tray.tsx","../src/utils/format-date.ts","../src/utils/use-scrollbar-class.ts"],"sourcesContent":["export { default as Avatar, type AvatarProps } from './avatar'\nexport { default as AvatarGroup, type AvatarGroupProps } from './avatar-group'\nexport { default as Badge, type BadgeProps } from './badge'\nexport { default as Blockquote, type BlockquoteProps } from './blockquote'\nexport { default as Button, type ButtonProps } from './button'\nexport { default as Callout, type CalloutProps } from './callout'\nexport { default as Caption, type CaptionProps } from './caption'\nexport { default as Colorbar, type ColorbarProps } from './colorbar'\nexport * as Colors from './colors'\nexport { default as Column, type ColumnProps } from './column'\nexport { default as Custom404 } from './custom-404'\nexport { default as Dimmer, type DimmerProps } from './dimmer'\nexport { default as Expander, type ExpanderProps } from './expander'\nexport { default as FadeIn, type FadeInProps } from './fade-in'\nexport { default as Figure, type FigureProps } from './figure'\nexport {\n default as FigureCaption,\n type FigureCaptionProps,\n} from './figure-caption'\nexport { default as Filter, type FilterProps } from './filter'\nexport { default as Footer } from './footer'\nexport { default as Group, type GroupProps } from './group'\nexport { default as Guide, type GuideProps } from './guide'\nexport { default as Header, type HeaderProps } from './header'\nexport { default as Heading, type HeadingProps } from './heading'\nexport { default as Input, type InputProps } from './input'\nexport { default as Layout, type LayoutProps } from './layout'\nexport { default as Link, type LinkProps } from './link'\nexport { default as LinkGroup, type LinkGroupProps } from './link-group'\nexport { default as Logo, type LogoProps } from './logo'\nexport { default as Menu, type MenuProps } from './menu'\nexport { default as Meta, type MetaProps } from './meta'\nexport { default as Metadata, type MetadataProps } from './metadata'\nexport { default as Monogram, type MonogramProps } from './monogram'\nexport { default as Row, type RowProps } from './row'\nexport { default as Scrollbar } from './scrollbar'\nexport { default as Select, type SelectProps } from './select'\nexport { default as Settings, type SettingsProps } from './settings'\nexport { default as Sidenote, type SidenoteProps } from './sidenote'\nexport { default as Slider, type SliderProps } from './slider'\nexport { default as Table, type TableProps } from './table'\nexport {\n default as TableCaption,\n type TableCaptionProps,\n} from './table-caption'\nexport { default as Tag, type TagProps } from './tag'\nexport { default as Toggle, type ToggleProps } from './toggle'\nexport { default as Tray, type TrayProps } from './tray'\nexport { formatDate, getScrollbarWidth, useScrollbarClass } from './utils'\n","import React from 'react'\nimport { Box, Image, BoxProps } from 'theme-ui'\n\nexport interface AvatarProps extends BoxProps {\n color?: string\n width?: string\n maxWidth?: string | number\n name?: string\n github?: string\n alt?: string\n src?: string\n}\n\nconst Avatar = ({\n color = 'transparent',\n width = '90px',\n maxWidth,\n name,\n github,\n alt,\n src,\n sx,\n ...props\n}: AvatarProps) => {\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 .replaceAll(' ', '-')}.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 overflow: 'hidden',\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'top',\n ...sx,\n }}\n {...props}\n >\n <Image\n alt={altProp}\n src={srcProp}\n sx={{\n filter:\n color && color !== 'transparent'\n ? 'grayscale(100%) contrast(200%) brightness(100%)'\n : 'none',\n width: '100%',\n display: 'block',\n }}\n />\n {color && color !== 'transparent' && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n bg: color,\n width: '100%',\n height: '100%',\n opacity: 0.75,\n pointerEvents: 'none',\n }}\n />\n )}\n </Box>\n )\n}\n\nexport default Avatar\n","import React from 'react'\nimport { Box, GridProps } from 'theme-ui'\nimport Avatar, { AvatarProps } from './avatar'\nimport Row, { RowProps } from './row'\nimport Column from './column'\nimport Group, { GroupProps } from './group'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\n\ntype SizeKey = keyof typeof sizes\n\ntype BlankProps = {\n overflow: number\n maxWidth?: string | number\n}\n\nconst Blank = ({ overflow, maxWidth }: BlankProps) => {\n return (\n <Box\n sx={{\n bg: 'muted',\n height: '100%',\n maxWidth: maxWidth,\n borderRadius: '50%',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Box\n sx={{\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [3, 3, 3, 4],\n }}\n >\n +{overflow}\n </Box>\n </Box>\n </Box>\n )\n}\n\ntype Alignment = 'left' | 'right'\n\ntype StartValue = 'auto' | number | (number | 'auto')[]\n\nexport interface AvatarGroupProps extends RowProps, GroupProps {\n members: AvatarProps[]\n direction?: 'horizontal' | 'vertical'\n align?: Alignment | Alignment[]\n spacing?: SizeKey | GridProps['gap']\n limit?: number\n width?: string\n maxWidth?: string | number\n fixedCount?: number\n}\n\nconst AvatarGroup = ({\n members,\n direction = 'horizontal',\n align,\n spacing = 'md',\n limit,\n width,\n maxWidth,\n fixedCount,\n sx,\n ...props\n}: AvatarGroupProps) => {\n let gap\n\n if (typeof spacing === 'string' && spacing in sizes) {\n gap = sizes[spacing as SizeKey]\n } else {\n gap = spacing\n }\n\n let start = (_idx: number): StartValue => 'auto'\n if (align) {\n const alignArray = Array.isArray(align) ? align : [align]\n start = (idx) => {\n return alignArray.map((d) => {\n if (d === 'left') {\n return 'auto'\n } else if (d === 'right') {\n const offset = Math.max(0, (fixedCount ?? 0) - members.length)\n return ((offset + idx) % (fixedCount ?? 1)) + 1\n } else {\n throw Error(`alignment '${d}' not recognized`)\n }\n })\n }\n }\n\n const excess = limit !== undefined && members.length > limit\n const overflow = limit !== undefined ? members.length - limit + 1 : 0\n\n return (\n <>\n {fixedCount && (\n <Row columns={fixedCount} gap={gap} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Column key={idx} start={start(idx)}>\n {(!excess || (limit !== undefined && idx < limit - 1)) && (\n <Avatar {...props} width={width} maxWidth={maxWidth} />\n )}\n {excess && limit !== undefined && idx === limit - 1 && (\n <Blank overflow={overflow} maxWidth={maxWidth} />\n )}\n </Column>\n ))}\n </Row>\n )}\n {!fixedCount && (\n <Group direction={direction} spacing={spacing} sx={sx} {...props}>\n {members.map((props, idx) => (\n <Avatar key={idx} {...props} width={width} maxWidth={maxWidth} />\n ))}\n </Group>\n )}\n </>\n )\n}\n\nexport default AvatarGroup\n","import React from 'react'\nimport { Grid, GridProps } from 'theme-ui'\n\nexport type RowProps = GridProps\n\nconst Row = ({ children, sx, columns, gap, ...props }: GridProps) => {\n const makeArray = (input: GridProps['gap']): GridProps['gap'] => {\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: GridProps['gap'], rowGap: GridProps['gap']\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, BoxProps, ThemeUICSSObject } from 'theme-ui'\n\nexport interface ColumnProps extends BoxProps {\n start?: number | 'auto' | (number | 'auto')[]\n width?: number | 'auto' | (number | 'auto')[]\n dl?: 0.5 | 1\n dr?: 0.5 | 1\n}\n\ntype GridValue = number | 'auto'\n\nconst Column = ({\n start,\n width,\n dl,\n dr,\n children,\n sx,\n ...props\n}: ColumnProps) => {\n start = start || 'auto'\n width = width || 'auto'\n\n const makeArray = (input: GridValue | GridValue[]): GridValue[] => {\n let arr: GridValue[] = Array.isArray(input) ? input : [input]\n\n if (![1, 2, 4].includes(arr.length)) {\n throw new Error('Array length must be 1, 2, or 4')\n }\n\n if (arr.length === 1) {\n arr = arr.map((d) => [d, d, d, d]).flat()\n } else if (arr.length === 2) {\n arr = arr.map((d) => [d, d]).flat()\n }\n\n return arr\n }\n\n const startArray = makeArray(start)\n const widthArray = makeArray(width)\n\n const end = startArray.map((d, i) => {\n if (d === 'auto' || widthArray[i] === 'auto') return 'auto'\n return d + widthArray[i]\n })\n\n let ml: ThemeUICSSObject['ml'], mr: ThemeUICSSObject['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: startArray,\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, ResponsiveStyleValue, ThemeUIStyleObject } from 'theme-ui'\n\nconst sizes = {\n xs: [1],\n sm: [3],\n md: [5],\n lg: [7],\n xl: [9],\n}\n\ntype SizeKey = keyof typeof sizes\ntype Direction = 'horizontal' | 'vertical'\ntype SpacingValue = SizeKey | ResponsiveStyleValue<number | string>\n\nexport interface GroupProps {\n children?: React.ReactNode\n direction?: Direction\n spacing?: SpacingValue\n sx?: ThemeUIStyleObject\n}\n\nconst Group = ({\n children,\n direction = 'vertical',\n spacing = 'md',\n sx,\n}: GroupProps) => {\n let marginValue\n\n if (typeof spacing === 'string' && spacing in sizes) {\n marginValue = sizes[spacing as SizeKey]\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 const childrenCount = React.Children.count(children)\n return (\n <Box\n sx={{\n [marginProperty]: i < childrenCount - 1 ? marginValue : 0,\n ...additionalStyles,\n }}\n >\n {child}\n </Box>\n )\n })}\n </Box>\n )\n}\n\nexport default Group\n","import React from 'react'\nimport { Box, BoxProps } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\nimport getSxColor from './utils/get-sx-color'\n\nexport type BadgeProps = BoxProps\n\nconst Badge = ({ sx, children, ...props }: BadgeProps) => {\n const color = getSxColor(sx)\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 { ThemeUIStyleObject } from 'theme-ui'\n\nconst getSxColor = (sx?: ThemeUIStyleObject, fallback = 'primary'): string =>\n sx && typeof sx === 'object' && 'color' in sx && typeof sx.color === 'string'\n ? sx.color\n : fallback\n\nexport default getSxColor\n","import React, { Children, PropsWithChildren } from 'react'\nimport { Box } from 'theme-ui'\n\nexport type BlockquoteProps = PropsWithChildren<{}>\n\nconst specialChars = ['“', '\"', \"'\", '‘']\n\nconst Blockquote = ({ children }: BlockquoteProps) => {\n return (\n <Box variant='styles.blockquote'>\n {Children.map(children, (d: React.ReactNode) => {\n let firstChar = ''\n let remaining: React.ReactNode = d\n if (React.isValidElement(d) && typeof d.props.children === 'string') {\n firstChar = d.props.children.slice(0, 1)\n remaining = d.props.children.slice(1)\n } else if (typeof d === 'string') {\n firstChar = d.slice(0, 1)\n remaining = d.slice(1)\n }\n\n return (\n <>\n {specialChars.includes(firstChar) && (\n <Box as='span' sx={{ position: 'absolute', ml: '-0.4em' }}>\n {firstChar}\n </Box>\n )}\n {specialChars.includes(firstChar) ? remaining : d}\n </>\n )\n })}\n </Box>\n )\n}\n\nexport default Blockquote\n","import React, { forwardRef, cloneElement } from 'react'\nimport { Box, BoxProps, ThemeUIStyleObject } from 'theme-ui'\nimport Link, { LinkProps } from './link'\nimport getSizeStyles from './utils/get-size-styles'\n\nconst hasHoverProp = (comp: unknown): comp is { hover: ThemeUIStyleObject } => {\n if (comp == null) return false\n const isObjectOrFunction =\n typeof comp === 'object' || typeof comp === 'function'\n return isObjectOrFunction && 'hover' in comp\n}\n\nexport interface ButtonProps\n extends Omit<BoxProps, 'prefix'>,\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof BoxProps | 'prefix'\n > {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n align?:\n | 'baseline'\n | 'sub'\n | 'super'\n | 'text-top'\n | 'text-bottom'\n | 'middle'\n | 'top'\n | 'bottom'\n | 'initial'\n suffix?: (React.ReactElement & { props?: { sx?: ThemeUIStyleObject } }) | null\n prefix?: (React.ReactElement & { props?: { sx?: ThemeUIStyleObject } }) | null\n inverted?: boolean\n href?: string\n internal?: boolean\n}\n\nconst Button = (\n {\n size = 'sm',\n prefix,\n suffix,\n inverted,\n sx,\n children,\n align,\n href,\n internal,\n ...props\n }: ButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\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 const { color: sxColor, ...sxProp } = sx && typeof sx === 'object' ? sx : {}\n const baseColor =\n (typeof sxColor === 'string' && sxColor) ||\n (inverted ? 'secondary' : 'primary')\n const hoverColor = sxColor ? 'primary' : inverted ? 'primary' : 'secondary'\n\n const sizeConfig = {\n 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 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 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 offset: {},\n },\n 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 offset: {},\n },\n 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 offset: {},\n },\n }\n\n const { margin, height, width, strokeWidth, offset } = sizeConfig[size]\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 let clonedPrefix, clonedSuffix\n\n if (prefix) {\n prefixHover = {\n '&:hover > #prefix-span > #prefix': {\n color: hoverColor,\n ...(hasHoverProp(prefix.type) ? prefix.type.hover : {}),\n },\n }\n clonedPrefix = 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 ...(hasHoverProp(suffix.type) ? suffix.type.hover : {}),\n },\n }\n clonedSuffix = 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' as const,\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 {clonedPrefix}\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 {clonedSuffix}\n </Box>\n </>\n )\n\n if (href) {\n return (\n <Link\n ref={ref as React.Ref<HTMLAnchorElement>}\n internal={internal}\n sx={{\n ...style,\n textDecoration: 'none',\n }}\n {...(props as LinkProps)}\n href={href}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box\n ref={ref as React.Ref<HTMLButtonElement>}\n as='button'\n sx={style}\n {...props}\n >\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef<HTMLAnchorElement | HTMLButtonElement, ButtonProps>(\n Button\n)\n","import React, { forwardRef } from 'react'\nimport { Link as ThemedLink, LinkProps as ThemedLinkProps } from 'theme-ui'\nimport { default as NextLink } from 'next/link'\n\nexport interface LinkProps extends ThemedLinkProps {\n href?: string\n internal?: boolean\n}\n\nconst Link = (\n { href, children, internal = false, ...props }: LinkProps,\n ref: React.Ref<HTMLAnchorElement>\n) => {\n if (href && (internal || href.startsWith('/'))) {\n return (\n <NextLink href={href} passHref legacyBehavior>\n <ThemedLink ref={ref} {...props}>\n {children}\n </ThemedLink>\n </NextLink>\n )\n } else {\n return (\n <ThemedLink ref={ref} href={href} {...props}>\n {children}\n </ThemedLink>\n )\n }\n}\n\nexport default forwardRef<HTMLAnchorElement, LinkProps>(Link)\n","const getSizeStyles = (size: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => {\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, ReactNode } from 'react'\nimport { Box, ThemeUIStyleObject } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport Link from './link'\n\nexport interface CalloutProps\n extends React.AnchorHTMLAttributes<HTMLElement>,\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof React.AnchorHTMLAttributes<HTMLElement>\n > {\n label: ReactNode\n children: ReactNode\n inverted?: boolean\n internal?: boolean\n sx?: ThemeUIStyleObject\n}\n\ntype RefType = React.Ref<HTMLAnchorElement | HTMLButtonElement>\n\nconst Callout = (\n {\n label,\n children,\n inverted,\n color,\n href,\n internal,\n sx,\n ...props\n }: CalloutProps,\n ref: RefType\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' as const,\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 as React.Ref<HTMLAnchorElement>}\n href={href}\n internal={internal}\n sx={style}\n {...props}\n >\n {Inner}\n </Link>\n )\n } else {\n return (\n <Box\n ref={ref as React.Ref<HTMLButtonElement>}\n as='button'\n sx={style}\n {...props}\n >\n {Inner}\n </Box>\n )\n }\n}\n\nexport default forwardRef<HTMLAnchorElement | HTMLButtonElement, CalloutProps>(\n Callout\n)\n","import React, { ReactNode } from 'react'\nimport { Box, BoxProps } from 'theme-ui'\n\nexport interface CaptionProps {\n as?: BoxProps['as']\n number?: number\n children: ReactNode\n label?: string\n}\n\nconst Caption = ({\n as = 'figcaption',\n number,\n children,\n label = 'figure',\n}: CaptionProps) => {\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 '& a': { color: 'secondary' },\n '& a:hover': { color: 'primary' },\n '& > p': {\n display: 'inline',\n fontSize: [2, 2, 2, 3],\n },\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, {\n useState,\n useEffect,\n useRef,\n ReactNode,\n MouseEventHandler,\n} from 'react'\nimport {\n Box,\n Flex,\n FlexProps,\n ThemeUICSSObject,\n ThemeUIStyleObject,\n get,\n} from 'theme-ui'\n\ntype SetClim = (setter: (prev: [number, number]) => [number, number]) => void\n\nexport interface ColorbarProps extends FlexProps {\n colormap: string[]\n label?: ReactNode\n clim?: [number, number]\n setClim?: SetClim\n setClimStep?: number\n units?: ReactNode\n width?: ThemeUICSSObject['width']\n height?: ThemeUICSSObject['height']\n format?: (d: number) => ReactNode\n discrete?: boolean\n horizontal?: boolean\n bottom?: boolean\n sxClim?: ThemeUIStyleObject\n}\nconst styles = {\n clim: (setClim?: SetClim): ThemeUIStyleObject => {\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' as const,\n transition: 'border 0.15s',\n // !important suffix isn't representable in CSS property types\n userSelect: setClim ? ('none !important' as 'none') : '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 hexToRgb = (hex: string) => {\n let result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result\n ? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(\n result[3],\n 16\n )}`\n : null\n}\n\nconst Gradient = ({\n colormap,\n discrete,\n horizontal,\n width,\n height,\n}: Pick<\n ColorbarProps,\n 'colormap' | 'discrete' | 'horizontal' | 'width' | 'height'\n>) => {\n const hasColors = colormap.length > 0\n const step = hasColors ? (1 / colormap.length) * 100 : 0\n const firstColor = colormap[0]\n const isHex = typeof firstColor === 'string' && firstColor.startsWith('#')\n const values = colormap.map((color, i) => {\n const normalizedColor = String(color)\n const rgbColor = isHex ? hexToRgb(normalizedColor) : normalizedColor\n const position = `${i * step}% ${\n discrete && i < colormap.length - 1 ? `${(i + 1) * step}%` : ''\n }`\n return `rgb(${rgbColor}) ${position}`\n })\n\n const css =\n values.length > 0\n ? `linear-gradient(to ${horizontal ? 'right' : 'top'}, ${values.join(\n ','\n )})`\n : 'none'\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: (t) => `solid 1px ${get(t, 'colors.hinted')}`,\n background: css,\n }}\n />\n )\n}\n\nconst Label = ({\n label,\n units,\n horizontal,\n}: Pick<ColorbarProps, 'label' | 'units' | 'horizontal'>) => (\n <Box\n sx={\n horizontal\n ? undefined\n : {\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}: ColorbarProps) => {\n if (!Array.isArray(colormap)) {\n throw new Error(`expected array for colormap, got '${colormap}'.`)\n }\n\n const climRef = [useRef<HTMLDivElement>(), useRef<HTMLDivElement>()]\n const [climMinDragging, setClimMinDragging] = useState(false)\n const [climMaxDragging, setClimMaxDragging] = useState(false)\n\n let x: number,\n y: number,\n dx: number,\n dy: number = 0\n let id: null | string = null\n let init: [number, number] = [0, 0]\n let scale = setClimStep\n\n const draggingFunction = (e: MouseEvent) => {\n if (!setClim) return\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: MouseEventHandler<HTMLDivElement> = (e) => {\n y = e.pageY\n x = e.pageX\n id = e.currentTarget.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: KeyboardEvent) => {\n if (!setClim) return\n\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: KeyboardEvent) => {\n if (!setClim) return\n\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: KeyboardEvent) => {\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 ? (t) => `solid 1px ${get(t, '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 ? (t) => `solid 1px ${get(t, '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, { ReactNode } from 'react'\nimport { Box, BoxProps } from 'theme-ui'\n\ninterface InlineColorProps extends BoxProps {\n color: string\n children: ReactNode\n}\nconst InlineColor = ({ sx, color, children, ...props }: InlineColorProps) => {\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\ntype ColorProps = Omit<InlineColorProps, 'color'>\n\nexport const Primary = (props: ColorProps) => {\n return <InlineColor color='primary' {...props} />\n}\n\nexport const Secondary = (props: ColorProps) => {\n return <InlineColor color='secondary' {...props} />\n}\n\nexport const Background = (props: ColorProps) => {\n return <InlineColor color='background' {...props} />\n}\n\nexport const Red = (props: ColorProps) => {\n return <InlineColor color='red' {...props} />\n}\n\nexport const Orange = (props: ColorProps) => {\n return <InlineColor color='orange' {...props} />\n}\n\nexport const Yellow = (props: ColorProps) => {\n return <InlineColor color='yellow' {...props} />\n}\n\nexport const Green = (props: ColorProps) => {\n return <InlineColor color='green' {...props} />\n}\n\nexport const Teal = (props: ColorProps) => {\n return <InlineColor color='teal' {...props} />\n}\n\nexport const Blue = (props: ColorProps) => {\n return <InlineColor color='blue' {...props} />\n}\n\nexport const Purple = (props: ColorProps) => {\n return <InlineColor color='purple' {...props} />\n}\n\nexport const Pink = (props: ColorProps) => {\n return <InlineColor color='pink' {...props} />\n}\n\nexport const Grey = (props: ColorProps) => {\n return <InlineColor color='grey' {...props} />\n}\n","import React from 'react'\nimport { Box } 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 <Box as='h1' variant='styles.h1'>\n Oops!\n </Box>\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, { useEffect, ReactNode } 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, { SettingsProps } from './settings'\n\nexport interface LayoutProps {\n title?: string\n description?: string\n url?: string\n card?: string\n children?: ReactNode\n status?: string\n nav?: string\n settings?: SettingsProps\n footer?: boolean\n header?: boolean\n metadata?: 'mouse' | 'scroll' | boolean\n links?: 'remote' | 'local' | 'homepage'\n dimmer?: 'bottom' | 'top'\n guide?: boolean | string\n scrollbar?: boolean\n fade?: boolean\n container?: boolean\n printable?: boolean\n}\n\nconst Layout = ({\n title,\n description,\n url,\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 = false,\n fade = true,\n container = true,\n printable = false,\n}: LayoutProps) => {\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: MediaQueryListEvent) => {\n if (e.matches && settings?.value && settings?.onClick) {\n settings.onClick()\n }\n }\n\n const query = window.matchMedia(\n `(min-width: ${theme?.breakpoints?.[1] || '64em'})`\n )\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={typeof guide === 'string' ? guide : undefined} />}\n {scrollbar && <Scrollbar />}\n <Meta card={card} description={description} title={title} url={url} />\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 && (\n <Metadata mode={typeof metadata === 'string' ? metadata : 'mouse'} />\n )}\n </Flex>\n </>\n )\n}\n\nexport default Layout\n","import React from 'react'\nimport Head from 'next/head'\nimport { useThemeUI } from 'theme-ui'\n\nexport interface MetaProps {\n title?: string\n description?: string\n card?: string\n url?: string\n}\n\nconst Meta = ({ title, description, card, url }: MetaProps) => {\n const { theme, colorMode } = useThemeUI()\n if (!description) {\n console.warn(\n 'a custom description should be used for search engine optimization'\n )\n }\n if (!title) {\n console.warn('a custom title should be used for search engine optimization')\n }\n const titleProp = title || 'CarbonPlan'\n const descriptionProp =\n description ||\n 'Improving the transparency and scientific integrity of climate solutions with open data and tools.'\n const cardProp = card || 'https://images.carbonplan.org/social/homepage.png'\n const urlProp = url || 'https://carbonplan.org'\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 {url && <link rel='canonical' href={url} />}\n <link\n rel='alternate icon'\n type='image/png'\n href='https://images.carbonplan.org/favicon.png'\n />\n <link\n rel='icon'\n type='image/svg+xml'\n href='https://images.carbonplan.org/favicon.svg'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-medium-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-mono-11-pitch-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link\n rel='preload'\n href='https://fonts.carbonplan.org/relative/relative-faux-book-pro.woff2'\n as='font'\n type='font/woff2'\n crossOrigin='anonymous'\n />\n <link rel='manifest' href='https://images.carbonplan.org/manifest.json' />\n <meta\n name='theme-color'\n content={\n typeof theme.colors?.background === 'string'\n ? theme.colors.background\n : ''\n }\n />\n <meta\n name='color-scheme'\n content={colorMode === 'light' ? 'light' : 'dark'}\n />\n <link\n rel='mask-icon'\n href='https://images.carbonplan.org/safari-pinned-tab.svg'\n color='#000000'\n />\n <link\n rel='apple-touch-icon'\n sizes='180x180'\n href='https://images.carbonplan.org/apple-touch-icon.png'\n />\n <meta\n name='msapplication-TileColor'\n content={\n typeof theme.colors?.background === 'string'\n ? theme.colors.background\n : ''\n }\n />\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={urlProp} />\n <meta name='twitter:title' content={titleProp} />\n <meta name='twitter:description' content={descriptionProp} />\n <meta name='twitter:image' content={cardProp} />\n <meta name='twitter:card' content='summary_large_image' />\n <meta name='format-detection' content='telephone=no' />\n </Head>\n )\n}\n\nexport default Meta\n","import React, { useState, ReactNode } from 'react'\nimport { default as NextLink } from 'next/link'\nimport { Box, Flex, Container, Link, ThemeUIStyleObject } 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: (\n current: string | undefined,\n label: string,\n first = false\n ): ThemeUIStyleObject => {\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\nexport interface LinkItem {\n url: string\n display: string\n}\n\nconst links: LinkItem[] = [\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\nexport interface NavProps {\n link: LinkItem\n mode?: 'homepage' | 'local' | 'remote'\n nav?: string\n first: boolean\n setExpanded: (expanded: boolean) => void\n}\n\nconst Nav = ({ link, mode, nav, first, setExpanded }: NavProps) => {\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 legacyBehavior>\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\nexport interface NavGroupProps {\n links: LinkItem[]\n nav?: string\n mode?: 'homepage' | 'local' | 'remote'\n setExpanded: (expanded: boolean) => void\n}\n\nconst NavGroup = ({ links, nav, mode, setExpanded }: NavGroupProps) => {\n return (\n <>\n {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 )\n}\n\nexport interface HeaderProps {\n status?: string\n mode?: 'homepage' | 'local' | 'remote'\n nav?: string\n menuItems?: ReactNode\n}\n\nconst Header = ({ status, mode, nav, menuItems }: HeaderProps) => {\n const [expanded, setExpanded] = useState(false)\n\n const toggle = () => {\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 legacyBehavior>\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, BoxProps } from 'theme-ui'\n\nexport type LogoProps = BoxProps\n\nconst Logo = ({ ...props }: LogoProps) => {\n return (\n <Box\n as='svg'\n {...{\n width: '150',\n fill: 'currentColor',\n stroke: 'none',\n viewBox: '0 0 151.1 28.8',\n }}\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, IconButtonProps } from 'theme-ui'\n\nexport interface MenuProps extends Omit<IconButtonProps, 'value'> {\n value?: boolean\n}\n\nconst Menu = ({ value, sx, ...props }: MenuProps) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='52' y1='29.9' x2='16' y2='29.9' />\n <line x1='52' y1='6.1' x2='16' y2='6.1' />\n <line x1='52' y1='18' x2='16' y2='18' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Menu\n","import React, { useState, useEffect } from 'react'\nimport { Box, Flex, 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 const [year, setYear] = useState<number | null>(null)\n useEffect(() => {\n setYear(new Date().getFullYear())\n }, [])\n\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 NEWSLETTER\n </Box>\n <Link\n href='https://carbonplan.org/newsletter'\n sx={{\n textDecoration: 'none',\n fontSize: [2, 2, 2, 3],\n }}\n >\n Subscribe\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 nonprofit public benefit corporation in\n 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 display: 'inline-block',\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 <Flex\n sx={{\n flexDirection: ['column', 'column', 'row', 'row'],\n gap: [0, 0, '10px', '12px'],\n }}\n >\n <Box>(c) {year}</Box>\n <Box>CARBONPLAN</Box>\n </Flex>\n </Box>\n </Box>\n </Column>\n <Column\n start={[4, 3, 5, 5]}\n width={[3, 3, 4, 4]}\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 pt: [2],\n }}\n >\n <Flex\n sx={{\n color: 'secondary',\n fontSize: [1, 1, 1, 2],\n fontFamily: 'mono',\n letterSpacing: 'mono',\n flexDirection: ['column', 'column', 'row', 'row'],\n gap: [0, 0, '10px', '12px'],\n }}\n >\n <NextLink href='/terms' passHref legacyBehavior>\n <Box\n as='a'\n sx={{\n color: 'secondary',\n '&:hover': {\n color: 'primary',\n },\n }}\n >\n TERMS OF USE\n </Box>\n </NextLink>\n <Box sx={{ display: ['none', 'none', 'initial', 'initial'] }}>\n {' / '}\n </Box>\n <NextLink href='/privacy' passHref legacyBehavior>\n <Box\n as='a'\n sx={{\n color: 'secondary',\n '&:hover': {\n color: 'primary',\n },\n }}\n >\n PRIVACY POLICY\n </Box>\n </NextLink>\n </Flex>\n </Box>\n </Column>\n <Column\n start={[5, 7, 9, 9]}\n width={[2, 2, 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, BoxProps } from 'theme-ui'\n\nexport type MonogramProps = BoxProps\n\nconst Monogram = ({ ...props }: MonogramProps) => {\n return (\n <Box\n as='svg'\n {...{\n width: '80',\n stroke: 'none',\n fill: 'currentColor',\n viewBox: '0 0 32 32',\n }}\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 { IconButton, useColorMode, IconButtonProps } from 'theme-ui'\nimport { useCallback } from 'react'\nimport { Sun } from '@carbonplan/icons'\n\nexport type DimmerProps = IconButtonProps\n\nconst Dimmer = ({ sx = {}, ...props }: DimmerProps) => {\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 } from 'theme-ui'\nimport { useState, useEffect } from 'react'\nimport GitSha from './gitsha'\n\nexport interface MetadataProps {\n mode: 'mouse' | 'scroll'\n}\n\nconst Value = ({ mode }: MetadataProps) => {\n const [display, setDisplay] = useState(init(mode))\n\n useEffect(() => {\n if (mode === 'mouse') {\n const setFromEvent = (e: MouseEvent) => {\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 = () => {\n const y = scrollFraction(window, document)\n setDisplay(`SCROLL: 0.${format((y * 100).toFixed(0), 2)}`)\n }\n window.addEventListener('scroll', setFromEvent)\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 }: MetadataProps) => {\n return (\n <Box\n sx={{\n userSelect: 'none' as const,\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: MetadataProps['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: number | string, pad: number) {\n return num.toString().padStart(pad, '0')\n}\n\nfunction scrollFraction(window: Window, document: Document) {\n return Math.min(window.scrollY / (document.body.offsetHeight - 770), 0.99)\n}\n\nexport default Metadata\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={typeof color === 'string' ? color : undefined} />\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={typeof color === 'string' ? color : undefined} />\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 {typeof color === 'string' ? color : ''}\n </Text>\n </Box>\n )\n }\n}\n\nconst Separator = ({ color = 'secondary' }: { color?: string }) => {\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, BoxProps } 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\nexport interface FadeInProps extends BoxProps {\n duration?: number\n delay?: number\n}\n\nconst FadeIn = ({\n duration = 300,\n delay = 0,\n children,\n ...delegated\n}: FadeInProps) => {\n return (\n <Box\n {...delegated}\n sx={{\n animationDuration: duration + 'ms',\n animationDelay: delay + 'ms',\n animationName: fade.toString(),\n animationFillMode: 'backwards',\n WebkitTransform: 'translateZ(0)',\n }}\n >\n {children}\n </Box>\n )\n}\n\nexport default FadeIn\n","import { 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","const getScrollbarWidth = (document: 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 document.body.removeChild(outer)\n return delta\n}\n\nexport default getScrollbarWidth\n","import React, { useState, useEffect } from 'react'\nimport { Box, Container } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nexport interface GuideProps {\n color?: string\n}\n\nconst Guide = ({ color = 'muted' }: GuideProps) => {\n const [display, setDisplay] = useState(false)\n\n useEffect(() => {\n function handler(event: KeyboardEvent) {\n const { key, 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({\n indices,\n color,\n}: {\n indices: number[]\n color: string\n}) {\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, IconButtonProps } from 'theme-ui'\n\nexport interface SettingsProps\n extends Omit<IconButtonProps, 'value' | 'onClick'> {\n value: boolean\n onClick?: (e?: React.MouseEvent<HTMLButtonElement>) => void\n}\n\nconst Settings = ({ value, sx, ...props }: SettingsProps) => {\n return (\n <IconButton\n sx={{\n cursor: 'pointer',\n fill: 'none',\n strokeWidth: '2px',\n stroke: 'text',\n '.paren': {\n opacity: '0',\n },\n '@media (hover: hover) and (pointer: fine)': {\n '&:hover .paren': {\n opacity: '1',\n },\n },\n ...sx,\n }}\n aria-label='Toggle Menu'\n {...props}\n >\n {!value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='24' y1='2.1' x2='24' y2='6.1' />\n <line x1='24' y1='24.1' x2='24' y2='33.9' />\n <line x1='44' y1='2.1' x2='44' y2='12.1' />\n <line x1='44' y1='30.1' x2='44' y2='33.9' />\n <circle cx='24' cy='15.1' r='5' />\n <circle cx='44' cy='21.1' r='5' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n {value && (\n <svg\n style={{\n width: '50px',\n height: '30px',\n marginTop: '-3px',\n flexShrink: 0,\n }}\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 68 36'\n >\n <line x1='50.85' y1='29.79' x2='17.15' y2='6.21' />\n <line x1='17.15' y1='29.79' x2='50.85' y2='6.21' />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M6.4,1.2c-6.3,10.3-6.3,23.3,0,33.6'\n />\n <path\n style={{ transition: 'all 0.2s' }}\n className='paren'\n d='M61.6,34.8c6.3-10.3,6.3-23.3,0-33.6'\n />\n </svg>\n )}\n </IconButton>\n )\n}\n\nexport default Settings\n","import React from 'react'\nimport { IconButton, IconButtonProps } from 'theme-ui'\n\nexport interface ExpanderProps {\n value: IconButtonProps['aria-checked']\n id?: IconButtonProps['id']\n onClick: IconButtonProps['onClick']\n sx?: IconButtonProps['sx']\n}\nconst Expander = ({ value, id, onClick, sx }: ExpanderProps) => {\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)' : 'rotate(0deg)',\n }}\n />\n </svg>\n </IconButton>\n )\n}\n\nexport default Expander\n","import React from 'react'\nimport { Box, ThemeUIStyleObject } from 'theme-ui'\n\nimport Group from './group'\n\nexport interface FigureProps {\n as?: React.ElementType\n children?: React.ReactNode\n sx?: ThemeUIStyleObject\n}\n\nconst Figure = ({ as = 'figure', children, sx }: FigureProps) => {\n // try to use figure/table number as id for anchoring\n const childrenArray = React.Children.toArray(children)\n const captionElement = childrenArray.find((child) => {\n if (!React.isValidElement(child)) return false\n const type = child.type\n return (\n typeof type !== 'string' &&\n 'displayName' in type &&\n (type.displayName === 'FigureCaption' ||\n type.displayName === 'TableCaption')\n )\n })\n\n const captionProps = React.isValidElement<{ number?: number }>(captionElement)\n ? captionElement.props\n : undefined\n const captionType = React.isValidElement(captionElement)\n ? captionElement.type\n : undefined\n const elementNumber = captionProps?.number\n const elementType =\n typeof captionType !== 'string' &&\n captionType &&\n 'displayName' in captionType &&\n captionType.displayName === 'TableCaption'\n ? 'table'\n : 'figure'\n const id = elementNumber ? `${elementType}-${elementNumber}` : undefined\n\n return (\n <Box\n as={as}\n id={id}\n sx={{\n my: [6, 6, 6, 7],\n scrollMarginTop: '60px', // account for header height\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, { CaptionProps } from './caption'\n\nexport type FigureCaptionProps = CaptionProps\n\nconst FigureCaption = ({\n as = 'figcaption',\n number,\n children,\n}: CaptionProps) => {\n return (\n <Caption as={as} number={number} label='figure'>\n {children}\n </Caption>\n )\n}\n\nFigureCaption.displayName = 'FigureCaption'\n\nexport default FigureCaption\n","import React, { ReactNode, useMemo } from 'react'\nimport { Box, BoxProps } from 'theme-ui'\nimport Tag from './tag'\n\nexport interface FilterProps<T> extends BoxProps {\n values: { [Property in keyof T]: boolean }\n setValues: (updated: { [Property in keyof T]: boolean }) => void\n order?: (keyof T)[]\n colors?: { [Property in keyof T]: string }\n labels?: { [Property in keyof T]: ReactNode }\n label?: ReactNode\n showAll?: boolean\n multiSelect?: boolean\n}\nconst sx = {\n label: {\n fontFamily: 'mono',\n letterSpacing: 'mono',\n fontSize: [1, 1, 1, 2],\n color: 'secondary',\n userSelect: 'none' as const,\n textTransform: 'uppercase' as const,\n },\n}\n\nconst duplicateOptions = <T,>(\n options: { [Property in keyof T]: boolean },\n defaultValue: boolean,\n overrides: Partial<{ [Property in keyof T]: boolean }> = {}\n): { [Property in keyof T]: boolean } => {\n let result = { ...options }\n Object.keys(options).forEach((key) => {\n result[key as keyof T] = !!overrides[key as keyof T] || defaultValue\n })\n\n return result\n}\n\nconst isAll = <T,>(option: FilterProps<T>['values']) => {\n return (\n Object.keys(option).filter((d) => option[d as keyof T]).length ===\n Object.keys(option).length\n )\n}\n\nconst updateValues = <T,>({\n values,\n multiSelect,\n setValues,\n value,\n}: {\n values: FilterProps<T>['values']\n multiSelect: FilterProps<T>['multiSelect']\n setValues: FilterProps<T>['setValues']\n value: keyof T | 'all'\n}) => {\n const isAllAlreadySelected = isAll(values)\n\n let updatedToggle\n\n if (value === 'all') {\n if (!isAllAlreadySelected) {\n // select all\n updatedToggle = duplicateOptions(values, true)\n } else if (multiSelect) {\n // deselect all\n updatedToggle = duplicateOptions(values, false)\n }\n // else: !multiSelect && isAllAlreadySelected -> do nothing\n } else if (multiSelect) {\n // de/select value, inherit other values\n updatedToggle = { ...values, [value]: !values[value] }\n } else {\n // select only value\n updatedToggle = duplicateOptions(values, false, {\n [value]: true,\n } as Partial<{ [Property in keyof T]: boolean }>)\n }\n\n if (updatedToggle) {\n setValues(updatedToggle)\n }\n}\n\nconst Filter = <T,>({\n values,\n setValues,\n label,\n colors,\n order,\n labels,\n showAll = false,\n multiSelect = false,\n ...props\n}: FilterProps<T>) => {\n const keys = useMemo(() => {\n if (order) {\n return order\n } else {\n return Object.keys(values) as (keyof T)[]\n }\n }, [order, ...Object.keys(values).sort()])\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 label='all'\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 {keys.map((d, i) => (\n <Tag\n label={String(d)}\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 {labels ? labels[d] : String(d)}\n </Tag>\n ))}\n </Box>\n </Box>\n )\n}\n\nexport default Filter\n","import React from 'react'\nimport { Box, BoxProps } from 'theme-ui'\nimport getSxColor from './utils/get-sx-color'\n\nexport interface TagProps\n extends BoxProps,\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof BoxProps | 'value'\n > {\n label?: BoxProps['aria-label']\n value?: boolean\n}\nconst Tag = ({ label, value, sx, children, ...props }: TagProps) => {\n const color = getSxColor(sx)\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, { ReactNode } from 'react'\nimport { Box, ThemeUIStyleObject } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\nimport Sidenote from './sidenote'\n\nexport interface HeadingProps {\n children: ReactNode\n sidenote?: ReactNode\n variant?: 'h1' | 'h2'\n description?: ReactNode\n descriptionStart?: number[]\n descriptionWidth?: number[]\n sx?: ThemeUIStyleObject\n}\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}: HeadingProps) => {\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, { ReactNode } from 'react'\nimport { Box } from 'theme-ui'\nimport Column from './column'\n\nexport interface SidenoteProps {\n children: ReactNode\n variant?: 'h1' | 'h2'\n}\n\nconst Sidenote = ({ children, variant = 'h1' }: SidenoteProps) => {\n let mt\n if (variant === 'h1') mt = [4, '27px', '42px', '54px']\n if (variant === 'h2') mt = [4, 4, '14px', '25px']\n return (\n <>\n <Column start={[1, 4, 8, 8]} width={[1, 1, 1, 1]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n textAlign: 'right',\n }}\n >\n /\n </Box>\n </Column>\n <Column start={[2, 5, 9, 9]} width={[3, 3, 2, 2]}>\n <Box\n sx={{\n mt: mt,\n fontFamily: 'faux',\n letterSpacing: 'faux',\n fontSize: [2, 2, 2, 3],\n height: ['100%', '0px', '0px', '0px'],\n }}\n >\n {children}\n </Box>\n </Column>\n </>\n )\n}\n\nexport default Sidenote\n","import React, { forwardRef } from 'react'\nimport { Input as ThemedInput } from 'theme-ui'\nimport getSizeStyles from './utils/get-size-styles'\n\nexport interface InputProps\n extends Omit<React.ComponentPropsWithRef<typeof ThemedInput>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n inverted?: boolean\n}\n\nconst Input = (\n { size = 'sm', inverted, sx, ...props }: InputProps,\n ref: React.Ref<HTMLInputElement>\n) => {\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 width: 'calc(min(15ch, 100%))',\n p: [0],\n py: ['2px'],\n 'input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none' as const,\n margin: 0,\n },\n 'input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none' as const,\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<HTMLInputElement, InputProps>(Input)\n","import React from 'react'\nimport { Flex, ThemeUICSSObject, ThemeUIStyleObject } from 'theme-ui'\nimport { RotatingArrow } from '@carbonplan/icons'\nimport Button from './button'\n\nexport interface LinkGroupProps {\n members: { href: string; label: string }[]\n color?: string\n inverted?: boolean\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n rowGap?: ThemeUICSSObject['rowGap']\n columnGap?: ThemeUICSSObject['columnGap']\n direction?: 'horizontal' | 'vertical'\n sx?: ThemeUIStyleObject\n}\n\nconst LinkGroup = ({\n members,\n color,\n inverted,\n size = 'xs',\n rowGap = [2, 2, 2, 3],\n columnGap = [3, 3, 3, 4],\n direction = 'horizontal',\n sx,\n}: LinkGroupProps) => {\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 size={size}\n sx={{ color: color }}\n inverted={inverted}\n suffix={<RotatingArrow />}\n >\n {d.label}\n </Button>\n )\n })}\n </Flex>\n )\n}\n\nexport default LinkGroup\n","import React, { useRef } from 'react'\nimport { Box, BoxProps, ThemeUIStyleObject } from 'theme-ui'\nimport { Arrow } from '@carbonplan/icons'\nimport getSizeStyles from './utils/get-size-styles'\nimport getSxColor from './utils/get-sx-color'\n\nexport interface SelectProps\n extends Omit<BoxProps, 'onChange'>,\n Omit<\n React.SelectHTMLAttributes<HTMLSelectElement>,\n keyof BoxProps | 'onChange' | 'size'\n > {\n size?: 'xs' | 'sm' | 'md'\n sxSelect?: ThemeUIStyleObject\n onChange?: React.ChangeEventHandler<HTMLSelectElement>\n}\n\nconst Select = ({\n children,\n size = 'sm',\n sx,\n sxSelect,\n onChange,\n ...props\n}: SelectProps) => {\n const color = getSxColor(sx)\n const sizeStyles = getSizeStyles(size)\n const ref = useRef<HTMLSelectElement>(null)\n\n if (!['xs', 'sm', 'md'].includes(size)) {\n throw new Error('Size must be xs, sm, or md')\n }\n\n const sizeConfig = {\n xs: {\n height: [14, 14, 14, 16],\n width: [14, 14, 14, 14],\n top: ['1px'],\n ml: ['-14px', '-14px', '-14px', '-16px'],\n },\n sm: {\n height: [15, 15, 15, 20],\n width: [15, 15, 15, 20],\n top: ['1px'],\n ml: ['-16px', '-16px', '-16px', '-20px'],\n },\n 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\n const { height, width, top, ml } = sizeConfig[size]\n const 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 // theme-ui Box doesn't narrow event types for `as='select'`\n if (onChange)\n onChange(e as unknown as React.ChangeEvent<HTMLSelectElement>)\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 width: 'fit-content',\n color: color,\n userSelect: 'none' as const,\n '@media (hover: none) and (pointer: coarse)': {\n '&:focus-visible': {\n outline: 'none !important',\n background: 'transparent !important',\n },\n },\n ...sxSelect,\n }}\n {...props}\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","import React, { forwardRef } from 'react'\nimport { useThemeUI, Slider as ThemeSlider } from 'theme-ui'\nimport getSxColor from './utils/get-sx-color'\n\nexport type SliderProps = React.ComponentPropsWithRef<typeof ThemeSlider>\n\nconst Slider = (\n { sx, ...props }: SliderProps,\n ref: React.Ref<HTMLInputElement>\n) => {\n const color = getSxColor(sx)\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<HTMLInputElement, SliderProps>(Slider)\n","import React, { ReactNode } from 'react'\nimport { Box, ThemeUIStyleObject } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\n/**\n * A responsive value that maps to screen breakpoints\n * `[mobile (<40em), tablet (≥40em), desktop (≥64em), large (≥102em)]`.\n * A single number applies to all breakpoints; an array specifies per-breakpoint values.\n *\n * Arrays of length 1, 2, or 4 are supported:\n * - `[n]` — same value at all breakpoints\n * - `[a, b]` — `a` for mobile and tablet, `b` for desktop and large\n * - `[mobile, tablet, desktop, large]` — explicit value at each breakpoint\n *\n * Note: this differs from theme-ui's native responsive arrays (e.g. in `sx`),\n * where the last value carries forward to all larger breakpoints. Here, `[a, b]`\n * is expanded to `[a, a, b, b]` (split at 64em), whereas theme-ui would treat it\n * as `a` below 40em and `b` at 40em+ (split at 40em).\n */\ntype ResponsiveNumber = number | number[]\n\nconst styles = {\n reset: {\n verticalAlign: 'baseline' as const,\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' as const,\n letterSpacing: 'smallcaps',\n fontFamily: 'heading',\n fontSize: [2, 2, 2, 3],\n },\n index: {\n display: 'block',\n textTransform: 'uppercase' as const,\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\n/**\n * A table built on the CarbonPlan grid system.\n *\n * `start` and `width` are arrays with one entry per table column.\n * Each entry is a {@link ResponsiveNumber} controlling that column's\n * grid position or span.\n *\n * @example\n * // 2-column table: stacked on mobile, side-by-side on tablet+\n * // (from soil-protocols-explainer/metric-table)\n * <Table\n * columns={[6]}\n * start={[\n * [1, 1, 1, 1],\n * [1, 3, 3, 3],\n * ]}\n * width={[\n * [6, 2, 2, 2],\n * [6, 4, 4, 4],\n * ]}\n * data={[\n * ['Rigor', 'Approach to quantifying soil carbon...'],\n * ['Additionality', 'Approach to analyzing causal relationship...'],\n * ]}\n * />\n */\nexport interface TableProps {\n /**\n * The tabular data as a 2D array: `data[row][tableColumn]`.\n * Each inner array is a row; each element becomes a `<td>`.\n * Elements can be strings, numbers, or React nodes.\n */\n data: ReactNode[][]\n /**\n * Total number of grid columns the table spans, as a responsive value.\n * This is passed to the underlying `Row` component and controls the\n * grid template, not the number of visible table columns.\n *\n * @example\n * columns={[6]} // 6 grid columns at all breakpoints\n * columns={[4, 6, 6, 6]} // 4 on mobile, 6 on tablet+\n */\n columns: ResponsiveNumber\n /**\n * Grid column where each table column starts, as an array with one entry\n * per table column. Each entry is a {@link ResponsiveNumber}.\n *\n * - Outer array length = number of table columns (must match `data[n].length`)\n * - Inner value = grid column start position, optionally responsive\n *\n * @example\n * // 2 table columns: stacked on mobile, side-by-side on tablet+\n * // (from soil-protocols-explainer/metric-table)\n * start={[\n * [1, 1, 1, 1], // table col 0 starts at grid col 1 at all breakpoints\n * [1, 3, 3, 3], // table col 1 starts at grid col 1 on mobile, 3 on tablet+\n * ]}\n *\n * // 5 table columns: stacked on mobile, spread across grid on tablet+\n * // (from ton-year-explainer/examples-table)\n * start={[\n * [1, 1, 1, 1], // table col 0 at grid col 1\n * [1, 3, 3, 3], // table col 1 at grid col 1 on mobile, 3 on tablet+\n * [2, 4, 4, 4], // table col 2 at grid col 2 on mobile, 4 on tablet+\n * [3, 5, 5, 5], // ...\n * [4, 6, 6, 6],\n * ]}\n */\n start: ResponsiveNumber[]\n /**\n * Number of grid columns each table column spans, as an array with one\n * entry per table column. Each entry is a {@link ResponsiveNumber}.\n *\n * - Outer array length = number of table columns (must match `data[n].length`)\n * - Inner value = grid column span, optionally responsive\n *\n * @example\n * // 2 table columns: full-width on mobile, split on tablet+\n * // (from soil-protocols-explainer/metric-table)\n * width={[\n * [6, 2, 2, 2], // table col 0 spans 6 grid cols on mobile, 2 on tablet+\n * [6, 4, 4, 4], // table col 1 spans 6 grid cols on mobile, 4 on tablet+\n * ]}\n *\n * // 5 table columns: label full-width on mobile, all 1-col on tablet+\n * // (from ton-year-explainer/examples-table)\n * width={[\n * [4, 2, 2, 2], // table col 0 (label) spans 4 on mobile, 2 on tablet+\n * [1, 1, 1, 1], // table cols 1-4 always span 1 grid col\n * [1, 1, 1, 1],\n * [1, 1, 1, 1],\n * [1, 1, 1, 1],\n * ]}\n */\n width: ResponsiveNumber[]\n /** Whether to style the first table column as an index with uppercase heading font. @default true */\n index?: boolean\n /** Whether to render a border below the last row. @default true */\n borderBottom?: boolean\n /** Whether to render a border above the first row. @default true */\n borderTop?: boolean\n /** Theme UI style overrides applied to the outer `<table>` element. */\n sx?: ThemeUIStyleObject\n /** Theme UI color for the header row text (e.g. `'secondary'`, `'orange'`). */\n color?: string\n /** Content rendered in a header row above the data rows. */\n header?: ReactNode\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}: TableProps) => {\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, { ReactNode } from 'react'\nimport { BoxProps } from 'theme-ui'\nimport Caption from './caption'\n\nexport interface TableCaptionProps {\n as?: BoxProps['as']\n number?: number\n children: ReactNode\n}\n\nconst TableCaption = ({\n as = 'figcaption',\n number,\n children,\n}: TableCaptionProps) => {\n return (\n <Caption as={as} number={number} label='table'>\n {children}\n </Caption>\n )\n}\n\nTableCaption.displayName = 'TableCaption'\n\nexport default TableCaption\n","import React, { forwardRef } from 'react'\nimport { Box, BoxProps } from 'theme-ui'\nimport { transparentize } from '@theme-ui/color'\nimport getSxColor from './utils/get-sx-color'\n\nexport interface ToggleProps\n extends Omit<BoxProps, 'value'>,\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof BoxProps | 'value'\n > {\n value?: boolean\n}\n\nconst Toggle = (\n { value, onClick, disabled, sx, ...props }: ToggleProps,\n ref: React.Ref<HTMLButtonElement>\n) => {\n const color = getSxColor(sx)\n const active = disabled ? false : value\n return (\n <Box\n ref={ref}\n as='button'\n onClick={onClick}\n role='checkbox'\n aria-checked={active}\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: active\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: active ? '32px' : '4px',\n top: '3px',\n backgroundColor: active ? color : 'secondary',\n transition: '0.15s',\n }}\n ></Box>\n </Box>\n </Box>\n )\n}\n\nexport default forwardRef<HTMLButtonElement, ToggleProps>(Toggle)\n","import React, { ReactNode } from 'react'\nimport { Box, ThemeUIStyleObject } from 'theme-ui'\nimport Row from './row'\nimport Column from './column'\n\nexport interface TrayProps {\n expanded: boolean\n sx?: ThemeUIStyleObject\n children: ReactNode\n}\n\nconst Tray = ({ expanded, sx, children }: TrayProps) => {\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","interface FormatDateOptions {\n month?: string | boolean\n day?: string | boolean\n year?: string | boolean\n separator?: string\n}\n\nconst defaultOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n}\n\nconst formatDateElement = (\n date: Date,\n element: 'month' | 'day' | 'year',\n option: string | boolean | undefined\n) => {\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 = (\n date: string,\n options: FormatDateOptions = defaultOptions\n) => {\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<string | null>(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"],"mappings":"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","names":["sx","React","import_react","import_theme_ui","import_react","import_theme_ui","sx","React","import_react","import_theme_ui","sx","React","import_react","import_theme_ui","sx","React","sizes","React","sx","props","import_react","import_theme_ui","sx","sx","React","import_react","import_theme_ui","React","import_react","import_theme_ui","import_react","import_theme_ui","React","NextLink","ThemedLink","sx","_b","_a","React","import_react","import_theme_ui","sx","React","import_react","import_theme_ui","React","import_react","import_theme_ui","React","format","sx","init","_a","import_react","import_theme_ui","sx","React","import_react","import_theme_ui","import_react","import_theme_ui","import_react","import_theme_ui","React","Head","import_react","import_link","import_theme_ui","import_icons","import_react","import_theme_ui","React","import_react","import_theme_ui","sx","React","React","NextLink","links","import_react","import_theme_ui","import_link","import_react","import_theme_ui","React","React","NextLink","import_react","import_theme_ui","import_icons","sx","React","import_react","import_theme_ui","import_react","import_theme_ui","React","React","window","document","import_react","import_theme_ui","React","import_react","document","import_react","import_theme_ui","React","sx","import_react","import_theme_ui","sx","React","links","fade","React","React","import_react","import_theme_ui","sx","React","import_react","import_theme_ui","sx","React","import_react","React","import_react","import_theme_ui","import_react","import_theme_ui","sx","React","sx","React","import_react","import_theme_ui","import_react","import_theme_ui","React","sx","React","import_react","import_theme_ui","sx","styles","React","ThemedInput","import_react","import_theme_ui","import_icons","sx","React","import_react","import_theme_ui","import_icons","sx","React","_a","import_react","import_theme_ui","sx","React","ThemeSlider","import_react","import_theme_ui","styles","sx","React","import_react","React","import_react","import_theme_ui","import_color","sx","React","import_react","import_theme_ui","sx","React","format","import_react"]}
|