@carbonplan/components 11.1.4 → 11.2.0-develop.3

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