Merge branch 'master' into algolia

pull/26459/head^2
Paul Wackerow 2 years ago
commit b527950e6d
No known key found for this signature in database
GPG Key ID: BB63E296FE9CAB8D
  1. 2
      docs/developers/contributing.md
  2. 1
      docs/developers/geth-developer/code-review-guidelines.md
  3. 3
      docs/fundamentals/command-line-options.md
  4. 2
      docs/fundamentals/peer-to-peer.md
  5. 2
      docs/interacting-with-geth/rpc/ns-debug.md
  6. 2
      docs/interacting-with-geth/rpc/ns-personal-deprecation.md
  7. 4
      docs/monitoring/metrics.md
  8. 2
      docs/tools/puppeth.md
  9. 20
      next.config.js
  10. 3
      package.json
  11. 246
      redirects.js
  12. 13
      src/components/UI/ButtonLinkSecondary.tsx
  13. 82
      src/components/UI/DataTable.tsx
  14. 31
      src/components/UI/Header.tsx
  15. 4
      src/components/UI/HeaderButtons.tsx
  16. 8
      src/components/UI/docs/Breadcrumbs.tsx
  17. 133
      src/components/UI/docs/DocsLinks.tsx
  18. 24
      src/components/UI/docs/DocsNav.tsx
  19. 38
      src/components/UI/docs/DocumentNav.tsx
  20. 35
      src/components/UI/docs/LinkList.tsx
  21. 62
      src/components/UI/docs/LinksList.tsx
  22. 80
      src/components/UI/docs/MDComponents.tsx
  23. 2
      src/components/UI/docs/index.ts
  24. 11
      src/components/UI/downloads/DownloadsHero.tsx
  25. 15
      src/components/UI/downloads/DownloadsTable.tsx
  26. 8
      src/components/UI/homepage/HomeHero.tsx
  27. 6
      src/components/UI/homepage/QuickLinks.tsx
  28. 2
      src/components/UI/icons/DiscordIcon.tsx
  29. 2
      src/components/UI/icons/GitHubIcon.tsx
  30. 6
      src/components/UI/icons/HamburgerIcon.tsx
  31. 4
      src/components/UI/icons/LensIcon.tsx
  32. 2
      src/components/UI/icons/LinuxPenguin.tsx
  33. 2
      src/components/UI/icons/MacosLogo.tsx
  34. 4
      src/components/UI/icons/MoonIcon.tsx
  35. 2
      src/components/UI/icons/SourceBranch.tsx
  36. 24
      src/components/UI/icons/SunIcon.tsx
  37. 2
      src/components/UI/icons/TwitterIcon.tsx
  38. 2
      src/components/UI/icons/WindowsLogo.tsx
  39. 21
      src/components/UI/svgs/AddIcon.tsx
  40. 34
      src/components/UI/svgs/GlyphHome.tsx
  41. 2767
      src/components/UI/svgs/GopherDownloads.tsx
  42. 2564
      src/components/UI/svgs/GopherHomeFront.tsx
  43. 2388
      src/components/UI/svgs/GopherHomeLinks.tsx
  44. 1682
      src/components/UI/svgs/GopherHomeNodes.tsx
  45. 18
      src/components/UI/svgs/MinusIcon.tsx
  46. 2
      src/components/UI/svgs/index.ts
  47. 89
      src/components/layouts/Footer.tsx
  48. 1
      src/components/layouts/MobileMenu.tsx
  49. 2
      src/constants.ts
  50. 15
      src/data/documentation-links.yaml
  51. 34
      src/pages/[...slug].tsx
  52. 11
      src/pages/_app.tsx
  53. 4
      src/pages/_document.tsx
  54. 39
      src/pages/downloads.tsx
  55. 4
      src/pages/index.tsx
  56. 6
      src/theme/components/Link.ts
  57. 8
      src/theme/foundations/colors.ts
  58. 41
      src/theme/foundations/textStyles.ts
  59. 2
      src/theme/index.ts
  60. 2
      src/types.ts
  61. 7
      src/utils/getKebabCaseFromName.ts
  62. 11
      src/utils/getOS.ts
  63. 8
      src/utils/index.ts
  64. 8
      src/utils/isDarwinPrimaryRelease.ts
  65. 8
      src/utils/isLinuxPrimaryRelease.ts
  66. 8
      src/utils/isMobilePrimaryRelease.ts
  67. 8
      src/utils/isWindowsPrimaryRelease.ts
  68. 26
      src/utils/parseHeadingId.ts
  69. 117
      url-list.csv
  70. 388
      yarn.lock

@ -25,7 +25,7 @@ We encourage an early pull request approach, meaning pull requests are created a
## Contributing to the Geth website {#contributing-to-website}
The Geth website is hosted separately from Geth itself. The contribution guidelines are the same. Please for the Geth website GitHub repository and raise pull requests for the maintainers to review and merge.
The Geth website is hosted separately from Geth itself. The contribution guidelines are the same. Please check out the [website repository](https://github.com/ethereum/geth-website) and raise pull requests for the maintainers to review and merge.
## License {#license}

@ -8,7 +8,6 @@ The only way to get code into Geth is to submit a pull request (PR). Those pull
## Terminology {#terminology}
- The **author** of a pull request is the entity who wrote the diff and submitted it to GitHub.
- The **team** consists of people with commit rights on the go-ethereum repository.
- The **reviewer** is the person assigned to review the diff. The reviewer must be a team member.
- The **code owner** is the person responsible for the subsystem being modified by the PR.

@ -3,8 +3,7 @@ title: Command-line Options
description: A list of commands for Geth
---
Geth is primarily controlled using the command line. Geth is started using the `geth` command. Geth is stopped by pressing `ctrl-c`. There are then many combinations of commands that configure precisely how geth will run. These commands are displayed below. The same information can be
obtained at any time from your Geth instance by running:
Geth is primarily controlled using the command line. Geth is started using the `geth` command. Geth is stopped by pressing `ctrl-c`. There are then many combinations of commands that configure precisely how geth will run. These commands are displayed below. The same information can be obtained at any time from your Geth instance by running:
```sh
geth --help

@ -3,7 +3,7 @@ title: Connecting To The Network
description: Guide to connecting Geth to a peer-to-peer network
---
The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simpyl by passing:
The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simply by passing:
- `--goerli`, Goerli proof-of-authority test network
- `--sepolia` Sepolia proof-of-work test network

@ -672,7 +672,7 @@ If set, the previous four arguments will be ignored.
Valid values are described [here](https://golang.org/pkg/time/#ParseDuration).
- `tracerConfig`: Config for the specified `tracer`. For example see callTracer's [config](/docs/developers/evm-tracing/built-in-tracers#config).
Geth comes with a bundle of [built-in tracers](/docs/developers/evm-tracing//built-in-tracers), each providing various data about a transaction. This method defaults to the [struct logger](/docs/developers/evm-tracing/built-in-tracers#structopcode-logger). The `tracer` field of the second parameter can be set to use any of the other tracers. Alternatively a [custom tracer](/docs/developers/evm-tracing/custom-tracer) can be implemented in either Go or Javascript.
Geth comes with a bundle of [built-in tracers](/docs/developers/evm-tracing/built-in-tracers), each providing various data about a transaction. This method defaults to the [struct logger](/docs/developers/evm-tracing/built-in-tracers#structopcode-logger). The `tracer` field of the second parameter can be set to use any of the other tracers. Alternatively a [custom tracer](/docs/developers/evm-tracing/custom-tracer) can be implemented in either Go or Javascript.
#### Example

@ -23,7 +23,7 @@ Unpair deletes a pairing between some specific types of smartcard wallet and Get
InitializeWallet is for initializing some specific types of smartcard wallet at a provided URL. There is not yet a corresponding method in Clef.
## Methods with replacements:
## Methods with replacements
### personal_listAccounts

@ -30,11 +30,11 @@ Timers are extensions of _meters_, the _duration_ of an event is collected along
- Percentile 80: general performance (these should be optimised)
- Percentile 95: worst case outliers (rare, just handle gracefully)
### Counters: {#counters}
### Counters {#counters}
A counter is a single int64 value that can be incremented and decremented. The current value of the counter can be queried.
### Gauges: {#guages}
### Gauges {#guages}
A gauge is a single int64 value. Its value can increment and decrement - as with a counter - but can also be set arbitrarily.

@ -1,5 +1,5 @@
---
title: puppeth
title: Puppeth
description: introduction to the private-network boot-strapping tool, Puppeth
---

@ -1,18 +1,12 @@
/** @type {import('next').NextConfig} */
const { redirects: redirectsList } = require('./redirects');
const withMDX = require('@next/mdx')({
extension: /\.mdx?$/,
options: {
remarkPlugins: [],
rehypePlugins: []
// If you use `MDXProvider`, uncomment the following line.
// providerImportSource: "@mdx-js/react",
}
});
module.exports = withMDX({
module.exports = {
reactStrictMode: true,
swcMinify: true,
// Append the default value with md extensions
pageExtensions: ['ts', 'tsx', 'md', 'mdx']
});
pageExtensions: ['ts', 'tsx', 'md'],
async redirects() {
return redirectsList;
}
};

@ -17,9 +17,6 @@
"@docsearch/react": "3",
"@emotion/react": "^11.10.4",
"@emotion/styled": "^11.10.4",
"@mdx-js/loader": "^2.1.3",
"@mdx-js/react": "^2.1.3",
"@next/mdx": "^12.3.0",
"algoliasearch": "^4.14.2",
"chakra-ui-markdown-renderer": "^4.1.0",
"fast-xml-parser": "^4.0.12",

@ -0,0 +1,246 @@
const redirects = [
{
source: '/docs/getting-started/dev-mode',
destination: '/docs/developers/geth-developer/dev-mode',
permanent: true
},
{
source: '/docs/install-and-build/installing-geth',
destination: '/docs/getting-started/installing-geth',
permanent: true
},
{
source: '/docs/install-and-build/backup-restore',
destination: '/docs/getting-started/backup-restore',
permanent: true
},
{
source: '/docs/interface/command-line-options',
destination: '/docs/fundamentals/command-line-options',
permanent: true
},
{
source: '/docs/interface/pruning',
destination: '/docs/fundamentals/pruning',
permanent: true
},
{
source: '/docs/interface/consensus-clients',
destination: '/docs/getting-started/consensus-client',
permanent: true
},
{
source: '/docs/interface/peer-to-peer',
destination: '/docs/fundamentals/peer-to-peer',
permanent: true
},
{
source: '/docs/interface/les',
destination: '/docs/fundamentals/les',
permanent: true
},
{
source: '/docs/interface/managing-your-accounts',
destination: '/docs/fundamentals/account-management',
permanent: true
},
{
source: '/docs/interface/javascript-console',
destination: '/docs/interacting-with-geth/javascript-console',
permanent: true
},
{
source: '/docs/interface/private-network',
destination: '/docs/developers/geth-developer/private-network',
permanent: true
},
{
source: '/docs/interface/mining',
destination: '/docs/fundamentals/mining',
permanent: true
},
{
source: '/docs/interface/metrics',
destination: '/docs/monitoring/metrics',
permanent: true
},
{
source: '/docs/dapp/native',
destination: '/docs/developers/dapp-developer/native',
permanent: true
},
{
source: '/docs/dapp/tracing',
destination: '/docs/developers/evm-tracing',
permanent: true
},
{
source: '/docs/dapp/custom-tracer',
destination: '/docs/developers/evm-tracing/custom-tracer',
permanent: true
},
{
source: '/docs/dapp/builtin-tracers',
destination: '/docs/developers/evm-tracing/built-in-tracers',
permanent: true
},
{
source: '/docs/dapp/native-accounts',
destination: '/docs/developers/dapp-developer/native-accounts',
permanent: true
},
{
source: '/docs/dapp/native-bindings',
destination: '/docs/developers/dapp-developer/native-bindings',
permanent: true
},
{
source: '/docs/dapp/mobile',
destination: '/docs/developers/dapp-developer/mobile',
permanent: true
},
{
source: '/docs/dapp/mobile-accounts',
destination: '/docs/developers/dapp-developer/mobile',
permanent: true
},
{
source: '/docs/rpc/server',
destination: '/docs/interacting-with-geth/rpc',
permanent: true
},
{
source: '/docs/rpc/pubsub',
destination: '/docs/interacting-with-geth/rpc/pubsub',
permanent: true
},
{
source: '/docs/rpc/batch',
destination: '/docs/interacting-with-geth/batch',
permanent: true
},
{
source: '/docs/rpc/graphql',
destination: '/docs/interacting-with-geth/rpc/graphql',
permanent: true
},
{
source: '/docs/rpc/ns-admin',
destination: '/docs/interacting-with-geth/rpc/ns-admin',
permanent: true
},
{
source: '/docs/rpc/ns-clique',
destination: '/docs/interacting-with-geth/rpc/ns-clique',
permanent: true
},
{
source: '/docs/rpc/ns-debug',
destination: '/docs/interacting-with-geth/rpc/ns-debug',
permanent: true
},
{
source: '/docs/rpc/ns-eth',
destination: '/docs/interacting-with-geth/rpc/ns-eth',
permanent: true
},
{
source: '/docs/rpc/ns-les',
destination: '/docs/interacting-with-geth/rpc/ns-les',
permanent: true
},
{
source: '/docs/rpc/ns-miner',
destination: '/docs/interacting-with-geth/rpc/ns-miner',
permanent: true
},
{
source: '/docs/rpc/ns-net',
destination: '/docs/interacting-with-geth/rpc/ns-net',
permanent: true
},
{
source: '/docs/rpc/ns-personal',
destination: '/docs/interacting-with-geth/rpc/ns-personal',
permanent: true
},
{
source: '/docs/rpc/ns-txpool',
destination: '/docs/interacting-with-geth/rpc/ns-txpool',
permanent: true
},
{
source: '/docs/rpc/objects',
destination: '/docs/interacting-with-geth/rpc/objects',
permanent: true
},
{
source: '/docs/developers/dev-guide',
destination: '/docs/developers/geth-developer/dev-guide',
permanent: true
},
{
source: '/docs/developers/code-review-guidelines',
destination: '/docs/developers/geth-developer/code-review-guidelines',
permanent: true
},
{
source: '/docs/developers/issue-handling-workflow',
destination: '/docs/developers/geth-developer/issue-handling-workflow',
permanent: true
},
{
source: '/docs/developers/dns-discovery-setup',
destination: '/docs/developers/geth-developer/dns-discovery-setup',
permanent: true
},
{
source: '/docs/clef/introduction',
destination: '/docs/tools/clef/introduction',
permanent: true
},
{
source: '/docs/clef/tutorial',
destination: '/docs/tools/clef/tutorial',
permanent: true
},
{
source: '/docs/clef/cliquesigning',
destination: '/docs/tools/clef/clique-signing',
permanent: true
},
{
source: '/docs/clef/rules',
destination: '/docs/tools/clef/rules',
permanent: true
},
{
source: '/docs/clef/setup',
destination: '/docs/tools/clef/setup',
permanent: true
},
{
source: '/docs/clef/apis',
destination: '/docs/tools/clef/apis',
permanent: true
},
{
source: '/docs/clef/datatypes',
destination: '/docs/tools/clef/datatypes',
permanent: true
},
{
source: '/docs/interface/sync-mode',
destination: '/docs/fundamentals/sync-modes',
permanent: true
},
{
source: '/docs/interface/hardware',
destination: '/docs/getting-started/hardware-requirements',
permanent: true
}
];
module.exports = {
redirects
};

@ -9,14 +9,21 @@ interface Props extends LinkProps {
export const ButtonLinkSecondary: React.FC<Props> = ({ href, children, ...restProps }) => {
const isExternal: boolean = href.toString().startsWith('http');
const variant = LinkTheme.variants['button-link-secondary'];
return (
<Stack sx={{ mt: '0 !important' }} {...variant}>
<NextLink href={href} passHref {...restProps}>
<Link variant='button-link-secondary' isExternal={isExternal}>
{isExternal ? (
<Link variant='button-link-secondary' href={href.toString()} isExternal>
<Text textStyle='home-section-link-label'>{children}</Text>
</Link>
</NextLink>
) : (
<NextLink href={href.toString()} passHref legacyBehavior {...restProps}>
<Link variant='button-link-secondary'>
<Text textStyle='home-section-link-label'>{children}</Text>
</Link>
</NextLink>
)}
</Stack>
);
};

@ -1,7 +1,26 @@
import { Link, Table, Thead, Tr, Th, TableContainer, Text, Tbody, Td } from '@chakra-ui/react';
import {
Link,
Table,
Thead,
Tr,
Th,
TableContainer,
Text,
Tbody,
Td,
Stack
} from '@chakra-ui/react';
import { FC } from 'react';
import {
getOS,
getParsedDate,
isDarwinPrimaryRelease,
isLinuxPrimaryRelease,
isMobilePrimaryRelease,
isWindowsPrimaryRelease
} from '../../utils';
import { OpenPGPSignaturesData, ReleaseData } from '../../types';
import { getParsedDate } from '../../utils';
interface Props {
columnHeaders: string[];
@ -30,33 +49,56 @@ export const DataTable: FC<Props> = ({ columnHeaders, data }) => {
pb={4}
>
<Table variant='unstyled'>
<Thead>
<Tr>
{columnHeaders.map((columnHeader, idx) => {
return (
<Th key={idx} textTransform='none' minW={'130.5px'} px={4}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
fontSize='md'
color='#868b87' //? Use theme color? Or add to theme?
>
{columnHeader}
</Text>
</Th>
);
})}
</Tr>
</Thead>
{data.length > 0 && (
<Thead>
<Tr>
{columnHeaders.map((columnHeader, idx) => {
return (
<Th key={idx} textTransform='none' minW={'130.5px'} px={4}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
fontSize='md'
color='#868b87' // TODO: Use theme color? Or add to theme?
>
{columnHeader}
</Text>
</Th>
);
})}
</Tr>
</Thead>
)}
<Tbody>
{data.length === 0 && (
<Stack justifyContent='center' alignItems='center' w='100%' minH={80}>
<Text textStyle='header4'>No builds found</Text>
</Stack>
)}
{dataType === 'Releases' &&
data.map((r: ReleaseData, idx: number) => {
const url = r?.release?.url;
const os = getOS(url);
const _isLinuxPrimaryRelease = isLinuxPrimaryRelease(r, os, data);
const _isDarwinPrimaryRelease = isDarwinPrimaryRelease(r, os, data);
const _isWindowsPrimaryRelease = isWindowsPrimaryRelease(r, os, data);
const _isMobilePrimaryRelease = isMobilePrimaryRelease(r, os, data);
const isPrimaryRelease =
_isLinuxPrimaryRelease ||
_isDarwinPrimaryRelease ||
_isWindowsPrimaryRelease ||
_isMobilePrimaryRelease;
return (
<Tr
key={idx}
transition={'all 0.5s'}
_hover={{ background: 'button-bg', transition: 'all 0.5s' }}
fontWeight={isPrimaryRelease ? 700 : 400}
>
{Object.entries(r).map((item, idx) => {
const objectItems = ['release', 'commit', 'signature'];

@ -20,22 +20,40 @@ export const Header: FC = () => {
justifyContent='space-between'
position='relative'
>
<Stack
<Flex
p={4}
justifyContent='center'
alignItems='flex-start'
justifyContent='flex-start'
alignItems='center'
borderRight='2px'
borderColor='primary'
flexGrow={2}
flex={1}
gap={6}
>
<NextLink href={'/'} passHref>
<NextLink href={'/'} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }}>
<Text textStyle='header-font' whiteSpace='nowrap'>
go-ethereum
</Text>
</Link>
</NextLink>
</Stack>
<Box
as='a'
href='#main-content'
pointerEvents='none'
w='0px'
opacity={0}
transition='opacity 200ms ease-in-out'
_focus={{
opacity: 1,
w: 'auto',
transition: 'opacity 200ms ease-in-out'
}}
>
<Text textStyle='header-font' whiteSpace='nowrap' fontSize='xs'>
skip to content
</Text>
</Box>
</Flex>
<Flex>
{/* HEADER BUTTONS */}
@ -59,6 +77,7 @@ export const Header: FC = () => {
bg: 'primary',
svg: { color: 'bg' }
}}
aria-label={`Toggle ${isDark ? 'light' : 'dark'} mode`}
>
{isDark ? <SunIcon color='primary' /> : <MoonIcon color='primary' />}
</Box>

@ -25,7 +25,7 @@ export const HeaderButtons: FC<Props> = ({ close }) => {
return (
<Flex direction={{ base: 'column', md: 'row' }}>
{/* DOWNLOADS */}
<NextLink href={DOWNLOADS_PAGE} passHref>
<NextLink href={DOWNLOADS_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }} onClick={close}>
<Stack {...menuItemStyles}>
<Text textStyle={{ base: 'header-mobile-button', md: 'header-button' }}>downloads</Text>
@ -34,7 +34,7 @@ export const HeaderButtons: FC<Props> = ({ close }) => {
</NextLink>
{/* DOCUMENTATION */}
<NextLink href={DOCS_PAGE} passHref>
<NextLink href={DOCS_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }} onClick={close}>
<Stack {...menuItemStyles}>
<Text textStyle={{ base: 'header-mobile-button', md: 'header-button' }}>

@ -6,7 +6,7 @@ import { FC } from 'react';
export const Breadcrumbs: FC = () => {
const router = useRouter();
let pathSplit = router.asPath.split('/');
let pathSplit = router.asPath.split('#')[0].split('/');
pathSplit = pathSplit.splice(1, pathSplit.length);
return (
@ -16,7 +16,11 @@ export const Breadcrumbs: FC = () => {
{pathSplit.map((path: string, idx: number) => {
return (
<BreadcrumbItem key={path}>
<NextLink href={`/${pathSplit.slice(0, idx + 1).join('/')}`} passHref>
<NextLink
href={`/${pathSplit.slice(0, idx + 1).join('/')}`}
passHref
legacyBehavior
>
<BreadcrumbLink color={idx + 1 === pathSplit.length ? 'body' : 'primary'}>
{path}
</BreadcrumbLink>

@ -9,8 +9,9 @@ import {
Stack,
Text
} from '@chakra-ui/react';
import { AddIcon, MinusIcon } from '@chakra-ui/icons';
import { AddIcon, MinusIcon } from '../svgs/';
import NextLink from 'next/link';
import { useRouter } from 'next/router';
import { LinksList } from './';
@ -18,64 +19,86 @@ import { NavLink } from '../../../types';
interface Props {
navLinks: NavLink[];
toggleMobileAccordion: () => void;
}
export const DocsLinks: FC<Props> = ({ navLinks }) => (
<Stack border='2px' borderColor='primary'>
{navLinks.map(({ id, to, items }, idx) => {
return (
<Accordion key={id} allowToggle mt='0 !important' defaultIndex={[0]}>
<AccordionItem border='none'>
{({ isExpanded }) => (
<>
<AccordionButton
borderBottom={navLinks.length - 1 === idx ? 'none' : '2px'}
p={0}
borderColor='primary'
justifyContent='space-between'
placeContent='flex-end'
bg='button-bg'
>
<Stack
p={4}
borderRight={items ? '2px' : 'none'}
export const DocsLinks: FC<Props> = ({ navLinks, toggleMobileAccordion }) => {
const router = useRouter();
const { slug } = router.query;
return (
<Stack border='2px' borderColor='primary'>
{navLinks.map(({ id, to, items }, idx) => {
const split = to?.split('/');
const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1];
return (
<Accordion key={id} allowToggle mt='0 !important'>
<AccordionItem border='none'>
{({ isExpanded }) => (
<>
<AccordionButton
borderBottom={navLinks.length - 1 === idx ? 'none' : '2px'}
p={0}
borderColor='primary'
w='100%'
bg='bg'
justifyContent='space-between'
placeContent='flex-end'
bg='button-bg'
data-group
>
{to ? (
<NextLink href={to} passHref>
<Link>
<Text textStyle='docs-nav-dropdown'>{id}</Text>
</Link>
</NextLink>
) : (
<Text textStyle='docs-nav-dropdown'>{id}</Text>
)}
</Stack>
<Stack
p={4}
borderRight={items ? '2px' : 'none'}
borderColor='primary'
w='100%'
bg='bg'
_groupHover={{ background: 'primary', color: 'bg', textDecoration: 'none' }}
>
{to ? (
<NextLink href={to} passHref legacyBehavior>
<Link textDecoration='none !important' onClick={toggleMobileAccordion}>
<Text
textStyle='docs-nav-dropdown'
color={isActive ? 'primary' : 'unset'}
_before={{
content: '"■"',
verticalAlign: '-1.25px',
marginInlineEnd: 2,
fontSize: 'lg',
display: isActive ? 'unset' : 'none'
}}
_groupHover={{ color: 'bg' }}
>
{id}
</Text>
</Link>
</NextLink>
) : (
<Text textStyle='docs-nav-dropdown'>{id}</Text>
)}
</Stack>
{items && (
<Stack minW='61px'>
<Center>
{isExpanded ? (
<MinusIcon w='24px' h='24px' color='primary' />
) : (
<AddIcon w='24px' h='24px' color='primary' />
)}
</Center>
</Stack>
)}
</AccordionButton>
{items && (
<Stack minW='61px'>
<Center>
{isExpanded ? (
<MinusIcon w='20px' h='20px' color='primary' />
) : (
<AddIcon w='20px' h='20px' color='primary' />
)}
</Center>
</Stack>
<AccordionPanel borderBottom='2px solid' borderColor='primary' px={0} py={4}>
<LinksList links={items} toggleMobileAccordion={toggleMobileAccordion} />
</AccordionPanel>
)}
</AccordionButton>
{items && (
<AccordionPanel borderBottom='2px solid' borderColor='primary' px={0} py={4}>
<LinksList links={items} />
</AccordionPanel>
)}
</>
)}
</AccordionItem>
</Accordion>
);
})}
</Stack>
);
</>
)}
</AccordionItem>
</Accordion>
);
})}
</Stack>
);
};

@ -1,4 +1,4 @@
import { FC } from 'react';
import { FC, useState } from 'react';
import {
Accordion,
AccordionButton,
@ -17,14 +17,24 @@ interface Props {
}
export const DocsNav: FC<Props> = ({ navLinks }) => {
const [isMobileAccordionOpen, setMobileAccordionState] = useState(false);
const toggleMobileAccordion = () => {
setMobileAccordionState(prev => !prev);
};
return (
<Stack w={{ base: '100%', lg: 72 }}>
<Stack w={{ base: '100%', lg: 72 }} as='aside'>
<Stack display={{ base: 'none', lg: 'block' }}>
<DocsLinks navLinks={navLinks} />
<DocsLinks navLinks={navLinks} toggleMobileAccordion={toggleMobileAccordion} />
</Stack>
<Stack display={{ base: 'block', lg: 'none' }}>
<Accordion allowToggle>
<Accordion
allowToggle
index={isMobileAccordionOpen ? 0 : -1}
onChange={toggleMobileAccordion}
>
<AccordionItem border='none'>
<AccordionButton
display='flex'
@ -43,13 +53,11 @@ export const DocsNav: FC<Props> = ({ navLinks }) => {
color: 'bg'
}}
>
<Text as='h4' textStyle='docs-nav-dropdown'>
Documentation
</Text>
<Text textStyle='docs-nav-dropdown'>Documentation</Text>
<AccordionIcon />
</AccordionButton>
<AccordionPanel p={0}>
<DocsLinks navLinks={navLinks} />
<DocsLinks navLinks={navLinks} toggleMobileAccordion={toggleMobileAccordion} />
</AccordionPanel>
</AccordionItem>
</Accordion>

@ -1,5 +1,5 @@
import { FC } from 'react';
import { Divider, Link, Stack, Text } from '@chakra-ui/react';
import { Box, Divider, Link, Text } from '@chakra-ui/react';
import NextLink from 'next/link';
import { parseHeadingId } from '../../../utils/parseHeadingId';
@ -13,25 +13,41 @@ export const DocumentNav: FC<Props> = ({ content }) => {
const parsedHeadings = content
.split('\n\n')
.map(item => item.replace(/[\n\r]/g, ''))
.filter(item => item.startsWith('#'))
.filter(item => item.startsWith('##'))
.map(item => parseHeadingId([item]))
.filter(item => item);
const activeHash = useActiveHash(parsedHeadings.map(heading => heading!.headingId));
return (
<Stack position='sticky' top='4'>
<Text as='h5' textStyle='document-nav-title'>
on this page
</Text>
return parsedHeadings.length ? (
<Box as='aside' position='sticky' top='4'>
<Text textStyle='document-nav-title'>on this page</Text>
<Divider borderColor='primary' my={`4 !important`} />
{parsedHeadings.map((heading, idx) => {
return (
<NextLink key={`${idx} ${heading?.title}`} href={`#${heading?.headingId}`}>
<Link m={0}>
<NextLink key={`${idx} ${heading?.title}`} href={`#${heading?.headingId}`} legacyBehavior>
<Link m={0} textDecoration='none !important'>
<Text
color={activeHash === heading?.headingId ? 'body' : 'primary'}
textStyle='document-nav-link'
mb={3.5}
_hover={{
background: 'primary',
boxShadow: '0 0 0 6px var(--chakra-colors-primary)',
color: 'bg'
}}
_focus={{
background: 'primary',
boxShadow: '0 0 0 6px var(--chakra-colors-primary) !important',
color: 'bg',
outline: '2px solid var(--chakra-colors-secondary) !important',
outlineOffset: '4px'
}}
_active={{
background: 'secondary',
boxShadow: '0 0 0 6px var(--chakra-colors-secondary)',
color: 'bg'
}}
>
{heading?.title}
</Text>
@ -39,6 +55,6 @@ export const DocumentNav: FC<Props> = ({ content }) => {
</NextLink>
);
})}
</Stack>
);
</Box>
) : null;
};

@ -1,35 +0,0 @@
import { FC } from 'react';
import { Link, Stack, Text } from '@chakra-ui/react';
import NextLink from 'next/link';
import { NavLink } from '../../../types';
interface LinksListProps {
links: NavLink[];
}
export const LinksList: FC<LinksListProps> = ({ links }) => (
<Stack px={4}>
{links.map(({ id, to, items }) => {
return to ? (
<Stack key={id}>
<NextLink href={to} passHref key={id}>
<Link>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
</Link>
</NextLink>
{items && <LinksList links={items} />}
</Stack>
) : (
<Stack key={id}>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
{items && <LinksList links={items} />}
</Stack>
);
})}
</Stack>
);

@ -0,0 +1,62 @@
import { FC } from 'react';
import { Link, Stack, Text } from '@chakra-ui/react';
import NextLink from 'next/link';
import { useRouter } from 'next/router';
import { NavLink } from '../../../types';
interface LinksListProps {
links: NavLink[];
toggleMobileAccordion: () => void;
}
export const LinksList: FC<LinksListProps> = ({ links, toggleMobileAccordion }) => {
const router = useRouter();
const { slug } = router.query;
return (
<Stack px={4}>
{links.map(({ id, to, items }) => {
const split = to?.split('/');
const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1];
return to ? (
<Stack
key={id}
pb={items ? 6 : 0}
_hover={{ background: 'primary', color: 'bg' }}
data-group
>
<NextLink href={to} passHref key={id} legacyBehavior>
<Link textDecoration='none !important' onClick={toggleMobileAccordion}>
<Text
textStyle='docs-nav-links'
color={items || isActive ? 'primary' : 'body'}
_before={{
content: '"■"',
verticalAlign: '-1.25px',
marginInlineEnd: 2,
fontSize: 'lg',
display: isActive ? 'unset' : 'none'
}}
_groupHover={{
color: 'bg',
boxShadow: '0 0 0 var(--chakra-space-2) var(--chakra-colors-primary)'
}}
>
{id}
</Text>
</Link>
</NextLink>
{items && <LinksList links={items} toggleMobileAccordion={toggleMobileAccordion} />}
</Stack>
) : (
<Stack key={id} pb={6}>
<Text textStyle='docs-nav-links' color={items ? 'primary' : 'body'}>
{id}
</Text>
{items && <LinksList links={items} toggleMobileAccordion={toggleMobileAccordion} />}
</Stack>
);
})}
</Stack>
);
};

@ -15,7 +15,7 @@ import { Code, Note } from '.';
import { textStyles } from '../../../theme/foundations';
import { parseHeadingId } from '../../../utils/parseHeadingId';
const { header1, header2, header3, header4 } = textStyles;
const { h1, h2, h3, h4 } = textStyles;
const MDComponents = {
// paragraphs
@ -28,80 +28,64 @@ const MDComponents = {
},
// links
a: ({ children, href }: any) => {
return (
<NextLink href={href} passHref>
<Link
isExternal={href.startsWith('http') && !href.includes('geth.ethereum.org')}
variant='light'
>
{children}
</Link>
const isExternal = href.startsWith('http') && !href.includes('geth.ethereum.org');
return isExternal ? (
<Link href={href} isExternal variant='light'>
{children}
</Link>
) : (
<NextLink href={href} passHref legacyBehavior>
<Link variant='light'>{children}</Link>
</NextLink>
);
},
// headings
h1: ({ children }: any) => {
const heading = parseHeadingId(children);
const { children: parsedChildren, headingId } = parseHeadingId(children);
return heading ? (
<Heading as='h1' textAlign='start' mb='5 !important' {...header1} id={heading.headingId}>
{heading.children}
</Heading>
) : (
<Heading as='h1' textAlign='start' mb='5 !important' {...header1}>
{children}
return (
<Heading as='h1' textAlign='start' mb='5 !important' {...h1} id={headingId}>
{parsedChildren}
</Heading>
);
},
h2: ({ children }: any) => {
const heading = parseHeadingId(children);
const { children: parsedChildren, headingId } = parseHeadingId(children);
return heading ? (
return (
<Heading
as='h2'
textAlign='start'
mt='16 !important'
mt={{ base: '12 !important', md: '16 !important' }}
mb='4 !important'
{...header2}
id={heading.headingId}
{...h2}
id={headingId}
>
{heading.children}
</Heading>
) : (
<Heading as='h2' textAlign='start' mt='16 !important' mb='4 !important' {...header2}>
{children}
{parsedChildren}
</Heading>
);
},
h3: ({ children }: any) => {
const heading = parseHeadingId(children);
return heading ? (
<Heading as='h3' mt='5 !important' mb='2.5 !important' {...header3} id={heading.headingId}>
{heading.children}
</Heading>
) : (
<Heading as='h3' mt='5 !important' mb='2.5 !important' {...header3}>
{children}
const { children: parsedChildren, headingId } = parseHeadingId(children);
return (
<Heading as='h3' mt='5 !important' mb='2.5 !important' {...h3} id={headingId}>
{parsedChildren}
</Heading>
);
},
h4: ({ children }: any) => {
const heading = parseHeadingId(children);
const { children: parsedChildren, headingId } = parseHeadingId(children);
return heading ? (
<Heading as='h4' mb='2.5 !important' {...header4} id={heading.headingId}>
{heading.children}
</Heading>
) : (
<Heading as='h4' mb='2.5 !important' {...header4}>
{children}
return (
<Heading as='h4' mb='2.5 !important' {...h4} id={headingId}>
{parsedChildren}
</Heading>
);
},
// tables
table: ({ children }: any) => (
<Flex maxW='min(100%, 100vw)' overflowX='auto'>
<Flex overflowX='auto'>
<Table
variant='striped'
colorScheme='greenAlpha'
@ -117,8 +101,8 @@ const MDComponents = {
),
// pre
pre: ({ children }: any) => (
<Stack mb={5}>
<pre>{children}</pre>
<Stack mb={5} whiteSpace='pre'>
{children}
</Stack>
),
// code
@ -143,7 +127,7 @@ const MDComponents = {
);
},
li: ({ children }: any) => {
return <ListItem color='primary'>{children}</ListItem>;
return <ListItem>{children}</ListItem>;
},
note: ({ children }: any) => {
return <Note>{children}</Note>;

@ -3,6 +3,6 @@ export * from './Code';
export * from './DocsLinks';
export * from './DocsNav';
export * from './DocumentNav';
export * from './LinkList';
export * from './LinksList';
export * from './Note';
export { default } from './MDComponents';

@ -80,12 +80,17 @@ export const DownloadsHero: FC<DownloadsHero> = ({
<Grid templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }} gap={4}>
{Object.keys(DOWNLOAD_HEADER_BUTTONS).map((key: string) => {
const { name, buildURL, Svg, ariaLabel } = DOWNLOAD_HEADER_BUTTONS[key];
return (
<NextLink key={key} href={buildURL} passHref>
<Button as='a' variant='downloadsHeader' width={{ base: '100%' }} h={16}>
<NextLink key={key} href={buildURL} passHref legacyBehavior>
<Button as='a' variant='downloadsHeader' width={{ base: '100%' }} h={16} data-group>
<HStack spacing={4}>
<Stack alignItems='center'>
<Svg aria-label={ariaLabel} maxH='44px' />
<Svg
aria-label={ariaLabel}
maxH='44px'
_groupHover={{ color: 'yellow.50' }}
/>
</Stack>
<Box>
<Text textStyle='downloads-button-label'>For {name}</Text>

@ -12,6 +12,7 @@ interface Props {
windowsData: ReleaseData[];
iOSData: ReleaseData[];
androidData: ReleaseData[];
totalReleasesNumber: number;
amountOfReleasesToShow: number;
setTotalReleases: (idx: number) => void;
}
@ -22,6 +23,7 @@ export const DownloadsTable: FC<Props> = ({
windowsData,
iOSData,
androidData,
totalReleasesNumber,
amountOfReleasesToShow,
setTotalReleases
}) => {
@ -33,8 +35,17 @@ export const DownloadsTable: FC<Props> = ({
androidData.length
];
const LAST_2_LINUX_RELEASES = amountOfReleasesToShow + 12;
return (
<Stack sx={{ mt: '0 !important' }} borderBottom='2px solid' borderColor='primary'>
<Stack
sx={{ mt: '0 !important' }}
borderBottom={
amountOfReleasesToShow < totalReleasesNumber
? '2px solid var(--chakra-colors-primary)'
: 'none'
}
>
<Tabs variant='unstyled' onChange={idx => setTotalReleases(totalReleases[idx])}>
<TabList color='primary' bg='button-bg'>
{DOWNLOADS_TABLE_TABS.map((tab, idx) => {
@ -61,7 +72,7 @@ export const DownloadsTable: FC<Props> = ({
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOADS_TABLE_TAB_COLUMN_HEADERS}
data={linuxData.slice(0, amountOfReleasesToShow)}
data={linuxData.slice(0, LAST_2_LINUX_RELEASES)}
/>
</TabPanel>
<TabPanel p={0}>

@ -36,8 +36,8 @@ export const HomeHero: FC = () => {
alignItems={{ base: 'center', md: 'flex-start' }}
>
<Flex direction='column' alignItems='center' mr={{ md: 6 }}>
<NextLink href={DOWNLOADS_PAGE} passHref>
<Button variant='primary' as='a' mb={1}>
<NextLink href={DOWNLOADS_PAGE} passHref legacyBehavior>
<Button variant='primary' as='a' mb={1} data-group>
<Text textStyle='homepage-primary-label'>Download</Text>
</Button>
</NextLink>
@ -48,8 +48,8 @@ export const HomeHero: FC = () => {
</Flex>
<Flex direction='column' alignItems='center'>
<NextLink href={DOCS_PAGE} passHref>
<Button variant='primary' as='a' mb={1}>
<NextLink href={DOCS_PAGE} passHref legacyBehavior>
<Button variant='primary' as='a' mb={1} data-group>
<Text textStyle='homepage-primary-label'>Documentation</Text>
</Button>
</NextLink>

@ -28,7 +28,7 @@ export const QuickLinks: FC = () => {
</Stack>
</GridItem>
<GridItem borderBottom='2px solid' borderColor='primary'>
<NextLink href={`${DOCS_PAGE}/getting-started`} passHref>
<NextLink href={`${DOCS_PAGE}/getting-started`} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }}>
<Stack
data-group
@ -66,7 +66,7 @@ export const QuickLinks: FC = () => {
</Stack>
</GridItem>
<GridItem borderBottom='2px solid' borderColor='primary'>
<NextLink href={FAQ_PAGE} passHref>
<NextLink href={FAQ_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }}>
<Stack
data-group
@ -104,7 +104,7 @@ export const QuickLinks: FC = () => {
</Stack>
</GridItem>
<GridItem>
<NextLink href={CONTRIBUTING_PAGE} passHref>
<NextLink href={CONTRIBUTING_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }}>
<Stack
data-group

@ -6,7 +6,7 @@ export const DiscordIcon = createIcon({
path: (
<svg width='32' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M26.9846 2.02697C26.9758 2.01 26.9612 1.99671 26.9435 1.98947C24.8961 1.05243 22.7354 0.384243 20.5157 0.00163895C20.4955 -0.00210093 20.4747 0.000597065 20.4561 0.00934923C20.4376 0.0181014 20.4223 0.0324621 20.4124 0.0503891C20.1182 0.583045 19.8511 1.13017 19.6122 1.68968C17.2194 1.32737 14.7855 1.32737 12.3927 1.68968C12.1522 1.12875 11.8808 0.581488 11.5799 0.0503891C11.5696 0.0328517 11.5542 0.0188217 11.5357 0.0101264C11.5173 0.0014311 11.4967 -0.0015265 11.4765 0.00163895C9.25655 0.38344 7.09577 1.05167 5.0486 1.98952C5.03107 1.99693 5.01629 2.00958 5.00628 2.02573C0.912331 8.12422 -0.209155 14.0728 0.341008 19.9476C0.342556 19.962 0.346991 19.976 0.354049 19.9886C0.361107 20.0013 0.370644 20.0124 0.382093 20.0213C2.76596 21.7819 5.43234 23.1259 8.26746 23.9957C8.28743 24.0017 8.30875 24.0014 8.32855 23.9949C8.34836 23.9885 8.36571 23.9761 8.37825 23.9595C8.98718 23.133 9.52673 22.2579 9.99142 21.3429C9.9978 21.3304 10.0014 21.3166 10.0021 21.3026C10.0028 21.2885 10.0005 21.2745 9.99528 21.2614C9.99011 21.2483 9.98221 21.2364 9.97212 21.2266C9.96202 21.2167 9.94994 21.2091 9.93669 21.2043C9.08586 20.8796 8.26216 20.4881 7.47331 20.0336C7.45898 20.0252 7.44695 20.0134 7.43827 19.9993C7.42959 19.9851 7.42454 19.9691 7.42356 19.9525C7.42257 19.936 7.42569 19.9194 7.43264 19.9044C7.43958 19.8893 7.45014 19.8762 7.46338 19.8661C7.6289 19.7424 7.79453 19.6138 7.95258 19.4838C7.96662 19.4723 7.98362 19.4649 8.00164 19.4624C8.01967 19.46 8.03802 19.4627 8.05462 19.4701C13.2227 21.8228 18.8178 21.8228 23.9247 19.4701C23.9414 19.4622 23.9599 19.4592 23.9782 19.4614C23.9965 19.4636 24.0138 19.4709 24.028 19.4826C24.1861 19.6125 24.3517 19.7424 24.5185 19.8661C24.5318 19.8761 24.5424 19.8891 24.5495 19.9041C24.5565 19.9191 24.5598 19.9356 24.5589 19.9522C24.5581 19.9687 24.5531 19.9848 24.5446 19.999C24.536 20.0132 24.524 20.0251 24.5098 20.0336C23.7227 20.4919 22.8983 20.8832 22.0452 21.2031C22.032 21.2081 22.0199 21.2159 22.0099 21.2259C21.9999 21.2358 21.9921 21.2478 21.987 21.261C21.9819 21.2742 21.9797 21.2884 21.9805 21.3025C21.9813 21.3166 21.985 21.3304 21.9915 21.3429C22.464 22.2528 23.0027 23.1268 23.6034 23.958C23.6156 23.9751 23.6329 23.9879 23.6528 23.9946C23.6727 24.0014 23.6942 24.0017 23.7142 23.9955C26.5544 23.1287 29.2255 21.7846 31.6123 20.0213C31.624 20.0128 31.6336 20.002 31.6407 19.9895C31.6478 19.977 31.6521 19.9632 31.6534 19.9489C32.3121 13.1569 30.5507 7.25711 26.9846 2.02697ZM10.7632 16.3704C9.20726 16.3704 7.92519 14.9461 7.92519 13.1969C7.92519 11.4477 9.18239 10.0233 10.7632 10.0233C12.3564 10.0233 13.6261 11.4601 13.6012 13.1968C13.6012 14.9461 12.344 16.3704 10.7632 16.3704ZM21.2563 16.3704C19.7004 16.3704 18.4183 14.9461 18.4183 13.1969C18.4183 11.4477 19.6755 10.0233 21.2563 10.0233C22.8496 10.0233 24.1192 11.4601 24.0943 13.1968C24.0943 14.9461 22.8496 16.3704 21.2563 16.3704Z'
d='M26.985 2.027a.08.08 0 0 0-.041-.038A26.099 26.099 0 0 0 20.515.002a.098.098 0 0 0-.104.048c-.294.533-.56 1.08-.8 1.64a24.112 24.112 0 0 0-7.22 0c-.24-.561-.511-1.109-.812-1.64a.101.101 0 0 0-.104-.048c-2.22.381-4.38 1.05-6.427 1.988a.092.092 0 0 0-.043.036C.912 8.124-.209 14.073.341 19.948a.108.108 0 0 0 .041.073 26.216 26.216 0 0 0 7.885 3.975.102.102 0 0 0 .111-.037 18.644 18.644 0 0 0 1.613-2.616.1.1 0 0 0-.054-.139 17.266 17.266 0 0 1-2.464-1.17.101.101 0 0 1-.04-.13.101.101 0 0 1 .03-.038c.166-.124.332-.252.49-.382a.099.099 0 0 1 .102-.014c5.168 2.353 10.763 2.353 15.87 0a.098.098 0 0 1 .103.013c.158.13.324.26.49.383a.102.102 0 0 1 .04.086.1.1 0 0 1-.048.082c-.787.458-1.612.85-2.465 1.17a.1.1 0 0 0-.054.139 20.94 20.94 0 0 0 1.612 2.615.1.1 0 0 0 .111.038 26.126 26.126 0 0 0 7.898-3.975.1.1 0 0 0 .041-.072c.66-6.792-1.102-12.692-4.668-17.922zM10.763 16.37c-1.556 0-2.838-1.424-2.838-3.173 0-1.75 1.257-3.174 2.838-3.174 1.593 0 2.863 1.437 2.838 3.174 0 1.75-1.257 3.173-2.838 3.173zm10.493 0c-1.556 0-2.838-1.424-2.838-3.173 0-1.75 1.258-3.174 2.838-3.174 1.594 0 2.863 1.437 2.838 3.174 0 1.75-1.244 3.173-2.838 3.173z'
fill='currentColor'
/>
</svg>

@ -6,7 +6,7 @@ export const GitHubIcon = createIcon({
path: (
<svg width='26' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M8.82878 19.3248C8.82878 19.424 8.71193 19.5034 8.56459 19.5034C8.39693 19.5183 8.28007 19.4389 8.28007 19.3248C8.28007 19.2255 8.39693 19.1461 8.54427 19.1461C8.69669 19.1312 8.82878 19.2106 8.82878 19.3248ZM7.2487 19.1014C7.21314 19.2007 7.31475 19.3148 7.46717 19.3446C7.59927 19.3942 7.75169 19.3446 7.78217 19.2454C7.81265 19.1461 7.71612 19.032 7.5637 18.9873C7.43161 18.9526 7.28427 19.0022 7.2487 19.1014ZM9.49435 19.0171C9.34701 19.0518 9.2454 19.1461 9.26064 19.2603C9.27588 19.3595 9.40798 19.424 9.5604 19.3893C9.70774 19.3545 9.80935 19.2603 9.79411 19.161C9.77886 19.0667 9.64169 19.0022 9.49435 19.0171ZM12.8374 0C5.79056 0 0.399994 5.22573 0.399994 12.109C0.399994 17.6126 3.94628 22.3222 9.01169 23.9798C9.66201 24.0939 9.89064 23.7019 9.89064 23.3793C9.89064 23.0716 9.8754 21.3744 9.8754 20.3322C9.8754 20.3322 6.31895 21.0766 5.57209 18.8533C5.57209 18.8533 4.9929 17.4092 4.15967 17.037C4.15967 17.037 2.9962 16.2578 4.24096 16.2727C4.24096 16.2727 5.50604 16.372 6.20209 17.5531C7.31475 19.4687 9.17935 18.9178 9.90588 18.5903C10.0227 17.7963 10.353 17.2454 10.7188 16.9179C7.8787 16.6102 5.01322 16.2082 5.01322 11.4341C5.01322 10.0693 5.39935 9.38447 6.21225 8.51103C6.08015 8.18846 5.6483 6.85846 6.34435 5.14136C7.4062 4.81878 9.84999 6.48129 9.84999 6.48129C10.8661 6.20338 11.9585 6.05946 13.0406 6.05946C14.1228 6.05946 15.2152 6.20338 16.2313 6.48129C16.2313 6.48129 18.6751 4.81382 19.7369 5.14136C20.433 6.86342 20.0011 8.18846 19.869 8.51103C20.6819 9.38943 21.1798 10.0743 21.1798 11.4341C21.1798 16.2231 18.1873 16.6052 15.3473 16.9179C15.8147 17.3099 16.211 18.0543 16.211 19.2205C16.211 20.893 16.1957 22.9624 16.1957 23.3694C16.1957 23.6919 16.4294 24.084 17.0747 23.9699C22.1553 22.3222 25.6 17.6126 25.6 12.109C25.6 5.22573 19.8843 0 12.8374 0ZM5.33838 17.1164C5.27233 17.166 5.28757 17.2801 5.37395 17.3744C5.45524 17.4538 5.57209 17.4886 5.63814 17.424C5.70419 17.3744 5.68895 17.2603 5.60257 17.166C5.52128 17.0866 5.40443 17.0518 5.33838 17.1164ZM4.78967 16.7144C4.75411 16.7789 4.80491 16.8583 4.90653 16.9079C4.98782 16.9576 5.08943 16.9427 5.12499 16.8732C5.16056 16.8087 5.10975 16.7293 5.00814 16.6796C4.90653 16.6499 4.82524 16.6648 4.78967 16.7144ZM6.4358 18.4811C6.35451 18.5456 6.38499 18.6945 6.50185 18.7888C6.6187 18.9029 6.76604 18.9178 6.83209 18.8384C6.89814 18.7739 6.86765 18.625 6.76604 18.5307C6.65427 18.4166 6.50185 18.4017 6.4358 18.4811ZM5.85661 17.7516C5.77532 17.8012 5.77532 17.9302 5.85661 18.0444C5.9379 18.1585 6.07507 18.2082 6.14112 18.1585C6.22241 18.094 6.22241 17.965 6.14112 17.8508C6.06999 17.7367 5.9379 17.6871 5.85661 17.7516Z'
d='M8.829 19.325c0 .099-.117.178-.264.178-.168.015-.285-.064-.285-.178 0-.1.117-.179.264-.179.153-.015.285.065.285.179zm-1.58-.224c-.036.1.066.214.218.244.132.05.285 0 .315-.1.03-.099-.066-.213-.218-.258-.132-.034-.28.015-.315.114zm2.245-.084c-.147.035-.249.13-.233.243.015.1.147.164.3.13.147-.035.248-.13.233-.229-.015-.094-.152-.159-.3-.144zM12.837 0C5.791 0 .4 5.226.4 12.109c0 5.504 3.546 10.213 8.612 11.87.65.115.879-.277.879-.6 0-.307-.016-2.005-.016-3.047 0 0-3.556.745-4.303-1.479 0 0-.58-1.444-1.412-1.816 0 0-1.164-.78.081-.764 0 0 1.265.099 1.961 1.28 1.113 1.916 2.977 1.365 3.704 1.037.117-.794.447-1.345.813-1.672-2.84-.308-5.706-.71-5.706-5.484 0-1.365.386-2.05 1.2-2.923-.133-.323-.565-1.653.131-3.37 1.062-.322 3.506 1.34 3.506 1.34a12.203 12.203 0 0 1 3.19-.422c1.083 0 2.175.144 3.191.422 0 0 2.444-1.667 3.506-1.34.696 1.722.264 3.047.132 3.37.813.878 1.31 1.563 1.31 2.923 0 4.79-2.992 5.171-5.832 5.484.468.392.864 1.136.864 2.303 0 1.672-.015 3.741-.015 4.148 0 .323.233.715.879.6 5.08-1.647 8.525-6.356 8.525-11.86C25.6 5.226 19.884 0 12.837 0zM5.338 17.116c-.066.05-.05.164.036.258.081.08.198.115.264.05.066-.05.051-.164-.035-.258-.082-.08-.199-.114-.265-.05zm-.548-.402c-.036.065.015.144.117.194.08.05.182.035.218-.035.036-.064-.015-.144-.117-.193-.101-.03-.183-.015-.218.034zm1.646 1.767c-.081.065-.051.213.066.308.117.114.264.129.33.05.066-.065.036-.214-.066-.308-.112-.114-.264-.13-.33-.05zm-.58-.73c-.08.05-.08.18 0 .293.082.114.22.164.285.114.081-.064.081-.193 0-.307-.071-.114-.203-.164-.284-.1z'
fill='currentColor'
/>
</svg>

@ -4,11 +4,9 @@ export const HamburgerIcon = createIcon({
displayName: 'HamburgerIcon',
viewBox: '0 0 22 14',
path: (
<svg width={22} height={14} fill='none' xmlns='http://www.w3.org/2000/svg'>
<svg width='22' height='14' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M0 .5h22v.97H0V.5Zm0 6.017h22v.97H0v-.97Zm22 6.013H0v.97h22v-.97Z'
d='M0 .5h22v.97H0V.5zm0 6.017h22v.97H0v-.97zm22 6.013H0v.97h22v-.97z'
fill='currentColor'
/>
</svg>

@ -4,9 +4,9 @@ export const LensIcon = createIcon({
displayName: 'LensIcon',
viewBox: '0 0 17 18',
path: (
<svg width={17} height={18} fill='none' xmlns='http://www.w3.org/2000/svg'>
<svg width='17' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M12.15 11.192h-.768l-.272-.263a6.29 6.29 0 0 0 1.526-4.111 6.317 6.317 0 1 0-6.318 6.318 6.29 6.29 0 0 0 4.111-1.526l.263.272v.768l4.86 4.85L17 16.052l-4.85-4.86Zm-5.832 0a4.368 4.368 0 0 1-4.374-4.374 4.368 4.368 0 0 1 4.374-4.374 4.368 4.368 0 0 1 4.374 4.374 4.368 4.368 0 0 1-4.374 4.374Z'
d='M12.15 11.192h-.768l-.272-.263a6.29 6.29 0 0 0 1.526-4.111 6.317 6.317 0 1 0-6.318 6.318 6.29 6.29 0 0 0 4.111-1.526l.263.272v.768l4.86 4.85L17 16.052l-4.85-4.86zm-5.832 0a4.368 4.368 0 0 1-4.374-4.374 4.368 4.368 0 0 1 4.374-4.374 4.368 4.368 0 0 1 4.374 4.374 4.368 4.368 0 0 1-4.374 4.374z'
fill='currentColor'
/>
</svg>

@ -9,7 +9,7 @@ const Icon = createIcon({
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M26.305 28.2798C25.4843 27.6294 25.8036 26.1929 24.9516 25.4842C25.7768 20.5769 23.4638 16.2515 20.7061 13.4792C18.3916 11.1531 19.1378 8.88979 19.1378 6.93125C19.1378 3.80167 17.8231 0.5 13.8403 0.5C9.5829 0.5 8.41597 3.97083 8.37418 5.95125C8.27271 10.7083 9.35758 11.945 6.50887 15.4071C3.15729 19.4802 2.66335 23.5431 3.41992 25.6985C3.06626 26.101 2.58874 26.5473 1.69637 26.9163C-0.768819 27.9663 1.03829 29.7235 0.356336 30.9704C0.162343 31.3248 0.0698242 31.6952 0.0698242 32.0496C0.0698242 33.1433 0.959204 34.0898 2.57531 33.9483C4.75548 33.7588 6.76703 35.2681 8.06827 35.2681C9.2173 35.2681 10.1604 34.6294 10.5991 33.75C12.654 33.2556 15.1908 33.3183 17.2441 33.836C17.6127 34.8438 18.6125 35.5 19.7242 35.5C22.1581 35.5 22.6266 32.8035 25.4186 31.8906C26.4244 31.5625 26.9303 30.6088 26.9303 29.7206C26.9303 29.1519 26.7229 28.6108 26.305 28.2798ZM12.6554 13.0183C12.1794 13.0183 11.7855 12.6421 11.1632 12.19C10.3753 11.6183 9.57395 11.2888 9.58291 10.6879C9.58291 10.2752 10.1485 10.1483 10.8797 9.69479C11.6646 9.20917 11.9705 8.71625 12.7435 8.71625C13.5344 8.71625 13.7731 9.10708 14.8476 9.56063C15.9041 10.0083 16.6397 10.1833 16.6397 10.6879C16.6397 11.2056 15.534 11.576 14.9117 11.9538C13.997 12.505 13.5269 13.0183 12.6554 13.0183ZM15.14 5.41313C16.4562 5.61875 16.6039 7.87917 15.9742 8.99187L15.4445 8.78042C15.719 7.98854 15.7146 6.68479 14.7953 6.60167C14.2119 6.54917 13.8358 7.30167 13.7552 7.94625C13.5269 7.85292 13.2777 7.78583 12.9748 7.76104C13.0673 6.415 13.9567 5.22792 15.14 5.41313ZM10.0619 5.89583C11.0707 5.65083 11.6661 6.79708 11.6706 7.98854L11.208 8.26562C11.1453 7.76542 10.917 6.9575 10.344 7.12958C9.73064 7.31625 9.83062 8.70896 10.1723 8.99479L9.71572 9.24271C9.08897 8.21167 9.09046 6.13208 10.0619 5.89583ZM6.90581 33.9585C3.97653 32.6563 2.9812 32.9523 2.42161 32.9523C1.26213 32.9523 0.883099 32.1079 1.31884 31.3088C1.68891 30.6306 1.57401 29.9204 1.48298 29.3502C1.34271 28.4767 1.31734 28.1923 2.19628 27.816C3.41246 27.3115 3.95265 26.6625 4.35556 26.1769C5.48668 24.8104 6.62825 26.96 7.56389 28.8748C8.17124 30.1158 9.36653 30.7444 9.73512 32.1196C10.0739 33.3898 8.67562 34.746 6.90581 33.9585ZM17.3321 31.2256C15.2669 32.2071 12.636 32.6577 10.6678 31.6617C10.3768 30.8406 9.9112 30.3098 9.4098 29.776C10.2141 29.569 10.811 28.589 10.0962 27.6046C9.3337 26.5531 7.77579 25.8196 6.20147 24.6296C4.72862 23.5169 4.26304 20.7738 6.26862 17.7083C5.2912 20.4237 5.86273 22.9263 6.35368 23.6423C6.45515 22.2015 6.57155 19.7952 8.58608 16.9121C9.6023 15.4567 9.61723 13.5346 9.63961 12.3329L10.5648 12.9513C11.2453 13.4427 11.8153 13.9838 12.6331 13.9838C13.8418 13.9838 14.5103 13.3042 15.4415 12.7398C15.8056 12.521 16.3562 12.2994 16.8188 11.9917C17.5948 15.6025 20.8091 19.9454 20.9896 22.4188C21.7373 20.9137 20.7778 17.2942 20.7778 17.2942C22.0342 19.1681 22.1342 20.73 22.1894 22.6462C23.0684 22.9977 24.0115 23.9135 24.098 25.1196L23.7324 25.0788C23.5444 23.7385 19.8421 21.7698 19.5093 24.2927C17.7336 24.5567 18.3797 27.3056 18.0216 29.0877C17.8574 29.9029 17.553 30.5475 17.3321 31.2256ZM24.5636 31.1658C23.0937 31.72 22.1014 32.8969 21.4194 33.6275C20.1062 35.0363 18.3693 34.361 18.1842 33.0427C17.9887 31.634 18.7214 30.8654 19.0378 29.289C19.3258 27.8496 19.0035 25.6344 19.6809 25.3981C20.1212 27.9546 22.7639 26.8798 23.3668 26.1827C24.3472 26.1827 24.4293 26.5065 24.6486 27.4033C24.7859 27.9648 24.9754 28.4373 25.5112 28.9929C26.1349 29.6448 25.9439 30.6452 24.5636 31.1658ZM12.6256 12.1988C11.6541 12.1988 10.9274 11.5673 10.3365 11.0773C10.0336 10.8279 10.4111 10.3671 10.714 10.6179C11.2915 11.0963 11.8735 11.6023 12.6256 11.6023C13.5314 11.6023 14.3297 10.8454 15.4116 10.4283C15.7802 10.2869 15.9906 10.844 15.625 10.9854C14.5745 11.3894 13.7314 12.1988 12.6256 12.1988Z'
d='M26.305 28.28c-.82-.65-.501-2.087-1.353-2.796.825-4.907-1.488-9.233-4.246-12.005-2.314-2.326-1.568-4.59-1.568-6.548C19.138 3.801 17.823.5 13.84.5 9.583.5 8.416 3.97 8.374 5.951c-.101 4.757.984 5.994-1.865 9.456-3.352 4.073-3.846 8.136-3.09 10.291-.353.403-.83.85-1.723 1.218-2.465 1.05-.658 2.808-1.34 4.054a2.25 2.25 0 0 0-.286 1.08c0 1.093.89 2.04 2.505 1.898 2.18-.19 4.192 1.32 5.493 1.32 1.15 0 2.092-.639 2.531-1.518 2.055-.494 4.592-.432 6.645.086.369 1.008 1.369 1.664 2.48 1.664 2.434 0 2.903-2.697 5.695-3.61 1.005-.328 1.511-1.281 1.511-2.17 0-.568-.207-1.11-.625-1.44zm-13.65-15.262c-.476 0-.87-.376-1.492-.828-.788-.572-1.59-.901-1.58-1.502 0-.413.566-.54 1.297-.993.785-.486 1.09-.979 1.863-.979.791 0 1.03.391 2.105.845 1.056.447 1.792.622 1.792 1.127 0 .518-1.106.888-1.728 1.266-.915.551-1.385 1.064-2.257 1.064zm2.485-7.605c1.316.206 1.464 2.466.834 3.579l-.53-.212c.275-.791.27-2.095-.649-2.178-.583-.053-.96.7-1.04 1.344a2.564 2.564 0 0 0-.78-.185c.092-1.346.982-2.533 2.165-2.348zm-5.078.483c1.009-.245 1.604.901 1.609 2.093l-.463.277c-.063-.5-.291-1.309-.864-1.136-.613.186-.513 1.579-.172 1.865l-.456.248c-.627-1.031-.626-3.11.346-3.347zM6.906 33.959c-2.93-1.303-3.925-1.007-4.484-1.007-1.16 0-1.539-.844-1.103-1.643.37-.678.255-1.389.164-1.959-.14-.873-.166-1.158.713-1.534 1.216-.505 1.757-1.153 2.16-1.64 1.13-1.366 2.272.784 3.208 2.699.607 1.24 1.803 1.87 2.171 3.245.339 1.27-1.06 2.626-2.83 1.839zm10.426-2.733c-2.065.981-4.696 1.432-6.664.436-.291-.821-.757-1.352-1.258-1.886.804-.207 1.401-1.187.686-2.171-.762-1.052-2.32-1.785-3.895-2.975-1.472-1.113-1.938-3.856.068-6.922-.978 2.716-.406 5.218.085 5.934.101-1.44.218-3.847 2.232-6.73 1.016-1.455 1.031-3.377 1.054-4.58l.925.62c.68.49 1.25 1.032 2.068 1.032 1.209 0 1.877-.68 2.809-1.244.364-.219.914-.44 1.377-.748.776 3.61 3.99 7.953 4.17 10.427.748-1.505-.211-5.125-.211-5.125 1.256 1.874 1.356 3.436 1.411 5.352.88.352 1.823 1.267 1.909 2.474l-.366-.041c-.188-1.34-3.89-3.31-4.223-.786-1.775.264-1.13 3.013-1.487 4.795-.165.815-.469 1.46-.69 2.138zm7.232-.06c-1.47.554-2.463 1.73-3.145 2.461-1.313 1.41-3.05.734-3.235-.584-.195-1.409.537-2.178.854-3.754.288-1.44-.035-3.655.643-3.89.44 2.556 3.083 1.48 3.686.784.98 0 1.062.323 1.282 1.22.137.562.326 1.034.862 1.59.624.652.433 1.652-.947 2.173zM12.626 12.199c-.972 0-1.699-.632-2.29-1.122-.302-.25.075-.71.378-.46.577.48 1.16.985 1.912.985.905 0 1.704-.757 2.786-1.174.368-.141.579.416.213.557-1.05.404-1.894 1.214-3 1.214z'
fill='currentColor'
/>
</svg>

@ -9,7 +9,7 @@ const Icon = createIcon({
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M25.0003 22.0095C24.0178 24.8596 21.0764 29.906 18.0463 29.961C16.0363 29.9997 15.39 28.7697 13.0924 28.7697C10.7961 28.7697 10.0773 29.9235 8.17728 29.9985C4.96217 30.1222 -0.000488281 22.7145 -0.000488281 16.2543C-0.000488281 10.3203 4.13465 7.37899 7.74726 7.32524C9.68483 7.29024 11.5149 8.63153 12.6962 8.63153C13.8825 8.63153 16.105 7.01898 18.4414 7.25523C19.4189 7.29649 22.1652 7.649 23.9278 10.2266C19.2514 13.2792 19.9802 19.6631 25.0003 22.0095ZM18.4726 0C14.94 0.142505 12.0574 3.84887 12.4599 6.91397C15.725 7.16773 18.8576 3.50761 18.4726 0Z'
d='M25 22.01c-.982 2.85-3.924 7.896-6.954 7.951-2.01.039-2.656-1.191-4.954-1.191-2.296 0-3.015 1.154-4.915 1.229C4.962 30.122 0 22.715 0 16.254 0 10.32 4.135 7.38 7.747 7.325c1.938-.035 3.768 1.307 4.95 1.307 1.186 0 3.408-1.613 5.744-1.377.978.041 3.724.394 5.487 2.972C19.25 13.279 19.98 19.663 25 22.009zM18.473 0c-3.533.143-6.416 3.849-6.013 6.914 3.265.254 6.398-3.406 6.013-6.914z'
fill='currentColor'
/>
</svg>

@ -4,9 +4,9 @@ export const MoonIcon = createIcon({
displayName: 'MoonIcon',
viewBox: '0 0 22 22',
path: (
<svg width={22} height={22} fill='none' xmlns='http://www.w3.org/2000/svg'>
<svg width='22' height='22' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M8.333.334C6.392.334 4.568.867 3 1.774c3.19 1.845 5.333 5.28 5.333 9.227 0 3.946-2.144 7.381-5.333 9.226a10.638 10.638 0 0 0 5.333 1.44C14.221 21.667 19 16.89 19 11.001 19 5.113 14.221.334 8.333.334Z'
d='M8.333.334C6.392.334 4.568.867 3 1.774c3.19 1.845 5.333 5.28 5.333 9.227 0 3.946-2.144 7.381-5.333 9.226a10.638 10.638 0 0 0 5.333 1.44C14.221 21.667 19 16.89 19 11.001 19 5.113 14.221.334 8.333.334z'
fill='currentColor'
/>
</svg>

@ -9,7 +9,7 @@ const Icon = createIcon({
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M21.875 4.125C21.875 2.12279 20.2522 0.5 18.25 0.5C16.2478 0.5 14.625 2.12279 14.625 4.125C14.625 5.72363 15.6654 7.06488 17.1021 7.547C17.3051 12.7368 14.66 13.3035 11.0628 14.0611C8.99779 14.4961 6.66208 14.9976 4.95833 16.5805V7.52767C6.36363 7.02863 7.375 5.70188 7.375 4.125C7.375 2.12279 5.75221 0.5 3.75 0.5C1.74779 0.5 0.125 2.12279 0.125 4.125C0.125 5.70188 1.13638 7.02863 2.54167 7.52767V22.4711C1.13638 22.9714 0.125 24.2981 0.125 25.875C0.125 27.8772 1.74779 29.5 3.75 29.5C5.75221 29.5 7.375 27.8772 7.375 25.875C7.375 24.3102 6.37933 22.9895 4.99096 22.482C5.31721 17.7429 8.09637 17.1557 11.5607 16.4258C15.2316 15.6525 19.7459 14.6834 19.5103 7.51196C20.889 6.99842 21.875 5.68254 21.875 4.125ZM1.575 4.125C1.575 2.92513 2.55013 1.95 3.75 1.95C4.94988 1.95 5.925 2.92513 5.925 4.125C5.925 5.32488 4.94988 6.3 3.75 6.3C2.55013 6.3 1.575 5.32488 1.575 4.125ZM5.925 25.875C5.925 27.0749 4.94988 28.05 3.75 28.05C2.55013 28.05 1.575 27.0749 1.575 25.875C1.575 24.6751 2.55013 23.7 3.75 23.7C4.94988 23.7 5.925 24.6751 5.925 25.875ZM18.25 6.3C17.0501 6.3 16.075 5.32488 16.075 4.125C16.075 2.92513 17.0501 1.95 18.25 1.95C19.4499 1.95 20.425 2.92513 20.425 4.125C20.425 5.32488 19.4499 6.3 18.25 6.3Z'
d='M21.875 4.125a3.625 3.625 0 1 0-7.25 0c0 1.599 1.04 2.94 2.477 3.422.203 5.19-2.442 5.756-6.04 6.514-2.064.435-4.4.937-6.104 2.52V7.527a3.612 3.612 0 0 0 2.417-3.403 3.625 3.625 0 1 0-7.25 0 3.612 3.612 0 0 0 2.417 3.403V22.47a3.615 3.615 0 0 0-2.417 3.404 3.625 3.625 0 1 0 7.25 0 3.614 3.614 0 0 0-2.384-3.393c.326-4.74 3.105-5.326 6.57-6.056 3.67-.773 8.185-1.743 7.95-8.914a3.615 3.615 0 0 0 2.364-3.387zm-20.3 0c0-1.2.975-2.175 2.175-2.175 1.2 0 2.175.975 2.175 2.175 0 1.2-.975 2.175-2.175 2.175-1.2 0-2.175-.975-2.175-2.175zm4.35 21.75c0 1.2-.975 2.175-2.175 2.175-1.2 0-2.175-.975-2.175-2.175 0-1.2.975-2.175 2.175-2.175 1.2 0 2.175.975 2.175 2.175zM18.25 6.3c-1.2 0-2.175-.975-2.175-2.175 0-1.2.975-2.175 2.175-2.175 1.2 0 2.175.975 2.175 2.175 0 1.2-.975 2.175-2.175 2.175z'
fill='currentColor'
/>
</svg>

@ -4,29 +4,9 @@ export const SunIcon = createIcon({
displayName: 'SunIcon',
viewBox: '0 0 44 44',
path: (
<svg width='44' height='44' viewBox='0 0 44 44' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path d='M21 0H23V12H21V0Z' fill='currentColor' />
<path d='M0 23V21H12V23H0Z' fill='currentColor' />
<path d='M44 21H32V23H44V21Z' fill='currentColor' />
<path d='M21 32H23V44H21V32Z' fill='currentColor' />
<svg width='44' height='44' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M7.15074 5.73633L5.73653 7.15054L14.2218 15.6358L15.636 14.2216L7.15074 5.73633Z'
fill='currentColor'
/>
<path
d='M36.8493 5.73618L38.2635 7.15039L29.7782 15.6357L28.364 14.2215L36.8493 5.73618Z'
fill='currentColor'
/>
<path
d='M29.7782 28.3643L28.364 29.7785L36.8492 38.2638L38.2635 36.8495L29.7782 28.3643Z'
fill='currentColor'
/>
<path
d='M14.2218 28.3641L15.636 29.7783L7.15076 38.2636L5.73655 36.8494L14.2218 28.3641Z'
fill='currentColor'
/>
<path
d='M30 22C30 26.4183 26.4183 30 22 30C17.5817 30 14 26.4183 14 22C14 17.5817 17.5817 14 22 14C26.4183 14 30 17.5817 30 22Z'
d='M21 0h2v12h-2V0zM0 23v-2h12v2H0zM44 21H32v2h12v-2zM21 32h2v12h-2V32zM7.15 5.736 5.738 7.151l8.485 8.485 1.414-1.414-8.485-8.486zM36.85 5.736l1.413 1.414-8.485 8.486-1.414-1.414 8.485-8.486zM29.778 28.364l-1.414 1.415 8.485 8.485 1.415-1.415-8.486-8.485zM14.222 28.364l1.414 1.414-8.485 8.486-1.414-1.415 8.485-8.485zM30 22a8 8 0 1 1-16 0 8 8 0 0 1 16 0z'
fill='currentColor'
/>
</svg>

@ -6,7 +6,7 @@ export const TwitterIcon = createIcon({
path: (
<svg width='28' height='22' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M24.7247 5.48279C24.7418 5.72341 24.7418 5.96407 24.7418 6.20469C24.7418 13.5437 19.1739 22 8.99749 22C5.86232 22 2.94989 21.089 0.5 19.5078C0.945449 19.5594 1.37371 19.5766 1.83629 19.5766C4.42319 19.5766 6.80458 18.7 8.70624 17.2047C6.27349 17.1531 4.23477 15.5547 3.53234 13.3547C3.87501 13.4062 4.21763 13.4406 4.57744 13.4406C5.07425 13.4406 5.57112 13.3718 6.03365 13.2516C3.49812 12.7359 1.5964 10.5016 1.5964 7.80312V7.73439C2.33305 8.14689 3.18973 8.4047 4.09766 8.43904C2.60717 7.44214 1.63068 5.7406 1.63068 3.81559C1.63068 2.78436 1.90474 1.83904 2.38447 1.01404C5.10848 4.38278 9.20305 6.58275 13.7944 6.82341C13.7087 6.41091 13.6573 5.98127 13.6573 5.55157C13.6573 2.49216 16.1244 0 19.191 0C20.7843 0 22.2233 0.670311 23.2341 1.75312C24.4847 1.51251 25.684 1.04843 26.7462 0.412503C26.335 1.70159 25.4613 2.78441 24.3135 3.47186C25.4271 3.35161 26.5064 3.04216 27.5 2.61252C26.7463 3.71247 25.804 4.69212 24.7247 5.48279Z'
d='M24.725 5.483c.017.24.017.481.017.722C24.742 13.544 19.174 22 8.997 22A15.6 15.6 0 0 1 .5 19.508c.445.051.874.069 1.336.069a11.06 11.06 0 0 0 6.87-2.372 5.546 5.546 0 0 1-5.174-3.85 6.96 6.96 0 0 0 1.045.086c.497 0 .994-.07 1.457-.19a5.548 5.548 0 0 1-4.438-5.448v-.069a5.56 5.56 0 0 0 2.502.705A5.552 5.552 0 0 1 1.63 3.816c0-1.032.274-1.977.753-2.802a15.712 15.712 0 0 0 11.41 5.81 6.282 6.282 0 0 1-.137-1.272c0-3.06 2.467-5.552 5.534-5.552 1.593 0 3.032.67 4.043 1.753 1.25-.24 2.45-.705 3.512-1.34a5.533 5.533 0 0 1-2.432 3.059c1.113-.12 2.192-.43 3.186-.86a11.917 11.917 0 0 1-2.775 2.87z'
fill='currentColor'
/>
</svg>

@ -9,7 +9,7 @@ const Icon = createIcon({
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M0.5 12V3.354L10.5 1.999V12H0.5ZM11.5 12H24.5V0L11.5 1.807V12ZM10.5 13H0.5V20.646L10.5 22.001V13ZM11.5 13V22.194L24.5 24V13H11.5Z'
d='M.5 12V3.354l10-1.355V12H.5zm11 0h13V0l-13 1.807V12zm-1 1H.5v7.646l10 1.355V13zm1 0v9.194L24.5 24V13h-13z'
fill='currentColor'
/>
</svg>

@ -0,0 +1,21 @@
import { IconProps } from '@chakra-ui/react';
import { createIcon } from '@chakra-ui/icons';
const [w, h] = [24, 24];
const Icon = createIcon({
displayName: 'AddIcon',
viewBox: `0 0 ${w} ${h}`,
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<g fill='currentColor'>
<path d='M2 11h20v2H2z' />
<path d='M11 2h2v20h-2z' />
</g>
</svg>
)
});
export const AddIcon: React.FC<IconProps> = props => (
<Icon h={h} w={w} color='primary' {...props} />
);

@ -9,40 +9,8 @@ const Icon = createIcon({
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M90.0002 276.5V207.379L2.76453 157.376L90.0002 276.5Z'
d='M90 276.5v-69.121L2.765 157.376 90 276.5zM90 276.5v-69.121l87.236-50.003L90 276.5zM90 190.325v-87.442L1.5 141.27 90 190.325zM90 190.325v-87.442l88.5 38.387L90 190.325zM1.5 140.901 90 1.5v100.76L1.5 140.901zM178.5 140.901 90 1.5v100.76l88.5 38.641z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
<path
d='M90.0001 276.5V207.379L177.236 157.376L90.0001 276.5Z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
<path
d='M89.9999 190.325V102.883L1.5 141.27L89.9999 190.325Z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
<path
d='M90.0001 190.325V102.883L178.5 141.27L90.0001 190.325Z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
<path
d='M1.5 140.901L89.9999 1.5V102.26L1.5 140.901Z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
<path
d='M178.5 140.901L90.0001 1.5V102.26L178.5 140.901Z'
stroke='currentColor'
strokeWidth='2'
strokeLinejoin='round'
/>
</svg>
)

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,18 @@
import { IconProps } from '@chakra-ui/react';
import { createIcon } from '@chakra-ui/icons';
const [w, h] = [24, 24];
const Icon = createIcon({
displayName: 'MinusIcon',
viewBox: `0 0 ${w} ${h}`,
path: (
<svg width={w} height={h} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path d='M2 11h20v2H2z' fill='currentColor' />
</svg>
)
});
export const MinusIcon: React.FC<IconProps> = props => (
<Icon h={h} w={w} color='primary' {...props} />
);

@ -1,5 +1,7 @@
export * from './AddIcon';
export * from './GlyphHome';
export * from './GopherDownloads';
export * from './GopherHomeFront';
export * from './GopherHomeLinks';
export * from './GopherHomeNodes';
export * from './MinusIcon';

@ -12,6 +12,12 @@ import {
import { DiscordIcon, GitHubIcon, TwitterIcon } from '../UI/icons';
const hoverStyles = {
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
};
export const Footer: FC = () => {
return (
<Flex mt={4} direction={{ base: 'column', lg: 'row' }}>
@ -32,17 +38,12 @@ export const Footer: FC = () => {
<Center
flex={1}
color='primary'
_hover={{
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
}}
_hover={hoverStyles}
borderRight='2px solid'
borderColor='primary'
p={4}
>
<NextLink href={DOWNLOADS_PAGE} passHref>
<Link _hover={{ textDecoration: 'none' }}>
<NextLink href={DOWNLOADS_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }} p={4}>
<Text textStyle='footer-link-label'>DOWNLOADS</Text>
</Link>
</NextLink>
@ -51,20 +52,15 @@ export const Footer: FC = () => {
<Center
flex={1}
color='primary'
_hover={{
textDecoration: 'none',
bg: 'primary',
color: 'bg !important'
}}
_hover={hoverStyles}
borderRight={{
base: 'none',
md: '2px solid'
}}
borderColor='primary'
p={4}
>
<NextLink href={DOCS_PAGE} passHref>
<Link _hover={{ textDecoration: 'none' }}>
<NextLink href={DOCS_PAGE} passHref legacyBehavior>
<Link _hover={{ textDecoration: 'none' }} p={4}>
<Text textStyle='footer-link-label'>DOCUMENTATION</Text>
</Link>
</NextLink>
@ -81,49 +77,48 @@ export const Footer: FC = () => {
lg: 'none'
}}
borderColor='primary !important'
_hover={{
bg: 'primary'
}}
p={4}
_hover={hoverStyles}
>
<NextLink href={GETH_TWITTER_URL} passHref>
<Link isExternal>
<TwitterIcon w={8} height='22px' _groupHover={{ color: 'bg' }} color='primary' />
</Link>
</NextLink>
<Link href={GETH_TWITTER_URL} isExternal p={4}>
<TwitterIcon
w={8}
height='22px'
_groupHover={{ color: 'bg' }}
color='primary'
aria-label='Twitter'
/>
</Link>
</Center>
<Center
data-group
flex={1}
_hover={{
bg: 'primary'
}}
_hover={hoverStyles}
borderWidth='2px'
borderStyle='none solid'
borderColor='primary'
p={4}
>
<NextLink href={GETH_DISCORD_URL} passHref>
<Link isExternal>
<DiscordIcon w={8} height='22px' _groupHover={{ color: 'bg' }} color='primary' />
</Link>
</NextLink>
<Link href={GETH_DISCORD_URL} isExternal p={4}>
<DiscordIcon
w={8}
height='22px'
_groupHover={{ color: 'bg' }}
color='primary'
aria-label='Discord'
/>
</Link>
</Center>
<Center
data-group
flex={1}
_hover={{
bg: 'primary'
}}
p={4}
>
<NextLink href={GETH_REPO_URL} passHref>
<Link isExternal>
<GitHubIcon w={7} height='22px' _groupHover={{ color: 'bg' }} color='primary' />
</Link>
</NextLink>
<Center data-group flex={1} _hover={hoverStyles}>
<Link href={GETH_REPO_URL} isExternal p={4}>
<GitHubIcon
w={7}
height='22px'
_groupHover={{ color: 'bg' }}
color='primary'
aria-label='GitHub'
/>
</Link>
</Center>
</Flex>
</Flex>

@ -28,6 +28,7 @@ export const MobileMenu: React.FC = () => {
color='primary'
_hover={{ bg: 'primary', color: 'bg' }}
onClick={onOpen}
aria-label='Open mobile menu'
>
<HamburgerIcon />
</Box>

@ -20,7 +20,7 @@ export const GETH_DISCORD_URL = 'https://discord.com/invite/nthXNEv';
export const GO_URL = 'https://go.dev/';
// Downloads
export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 10;
export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 12;
export const DOWNLOAD_HEADER_BUTTONS: {
[index: string]: {
name: string;

@ -1,6 +1,7 @@
- id: Getting started
to: /docs/getting-started
items:
- id: Introduction
to: /docs/getting-started
- id: Hardware requirements
to: /docs/getting-started/hardware-requirements
- id: Installing Geth
@ -8,8 +9,9 @@
- id: Consensus clients
to: /docs/getting-started/consensus-clients
- id: Fundamentals
to: /docs/fundamentals
items:
- id: Introduction
to: /docs/fundamentals
- id: Node architecture
to: /docs/fundamentals/node-architecture
- id: Command-line options
@ -35,8 +37,9 @@
- id: Interacting with Geth
items:
- id: JSON-RPC Server
to: /docs/interacting-with-geth/rpc
items:
- id: Introduction
to: /docs/interacting-with-geth/rpc
- id: Batch requests
to: /docs/interacting-with-geth/rpc/batch
- id: GraphQL server
@ -70,8 +73,9 @@
- id: 'JavaScript Console 2: Contracts'
to: /docs/interacting-with-geth/javascript-console-contracts
- id: Developers
to: /docs/developers
items:
- id: Introduction
to: /docs/developers
- id: Dapp developers
items:
- id: Go API
@ -83,8 +87,9 @@
- id: Geth for Mobile
to: /docs/developers/dapp-developer/mobile
- id: EVM tracing
to: /docs/developers/evm-tracing
items:
- id: Introduction
to: /docs/developers/evm-tracing
- id: Basic traces
to: /docs/developers/evm-tracing/basic-traces
- id: Built-in tracers

@ -1,7 +1,7 @@
import fs from 'fs';
import matter from 'gray-matter';
import yaml from 'js-yaml';
import { Flex, Stack, Heading, Text } from '@chakra-ui/react';
import { Box, Grid, Stack, Heading, Text } from '@chakra-ui/react';
import ChakraUIRenderer from 'chakra-ui-markdown-renderer';
import ReactMarkdown from 'react-markdown';
import { useRouter } from 'next/router';
@ -63,7 +63,7 @@ export const getStaticProps: GetStaticProps = async context => {
content,
navLinks,
lastModified: getParsedDate(lastModified.mtime, {
month: 'numeric',
month: 'long',
day: 'numeric',
year: 'numeric'
})
@ -99,24 +99,34 @@ const DocPage: NextPage<Props> = ({ frontmatter, content, navLinks, lastModified
<PageMetadata title={frontmatter.title} description={frontmatter.description} />
<main>
<Flex direction={{ base: 'column', lg: 'row' }} gap={{ base: 4, lg: 8 }}>
<Grid
gap={{ base: 4, lg: 8 }}
templateColumns={{ base: 'repeat(1, 1fr)', lg: '288px 1fr' }}
>
<Stack>
<DocsNav navLinks={navLinks} />
</Stack>
<Stack pb={4} width='100%'>
<Stack pb={4} width='100%' id='main-content'>
<Stack mb={16}>
<Breadcrumbs />
<Heading as='h1' mt='4 !important' mb={0} {...textStyles.header1}>
<Heading as='h1' mt='4 !important' mb={0} {...textStyles.h1}>
{frontmatter.title}
</Heading>
<Text as='span' mt='0 !important'>
last edited {lastModified}
Last edited on {lastModified}
</Text>
</Stack>
<Flex width='100%' placeContent='space-between'>
<Stack maxW='768px' sx={{ '*:first-child': { marginTop: '0 !important' } }}>
<Grid
gap={{ base: 4, lg: 8 }}
templateColumns={{ base: 'repeat(1, 1fr)', xl: '1fr 192px' }}
>
<Box
w='min(100%, 768px)'
sx={{ '*:first-of-type': { marginTop: '0 !important' } }}
overflow='auto'
>
<ReactMarkdown
remarkPlugins={[gfm]}
rehypePlugins={[rehypeRaw]}
@ -124,14 +134,14 @@ const DocPage: NextPage<Props> = ({ frontmatter, content, navLinks, lastModified
>
{content}
</ReactMarkdown>
</Stack>
</Box>
<Stack display={{ base: 'none', xl: 'block' }} w={48}>
<Stack display={{ base: 'none', xl: 'block' }}>
<DocumentNav content={content} />
</Stack>
</Flex>
</Grid>
</Stack>
</Flex>
</Grid>
</main>
</>
);

@ -1,11 +1,8 @@
import { ChakraProvider } from '@chakra-ui/react';
import { AppProps } from 'next/app';
import { MDXProvider } from '@mdx-js/react';
import { Layout } from '../components/layouts';
import MDComponents from '../components/UI/docs';
import 'focus-visible/dist/focus-visible';
import theme from '../theme';
@ -15,11 +12,9 @@ import '../theme/search.css';
export default function App({ Component, pageProps }: AppProps) {
return (
<ChakraProvider theme={theme}>
<MDXProvider components={MDComponents}>
<Layout>
<Component {...pageProps} />
</Layout>
</MDXProvider>
<Layout>
<Component {...pageProps} />
</Layout>
</ChakraProvider>
);
}

@ -2,7 +2,7 @@ import { Html, Head, Main, NextScript } from 'next/document';
export default function Document() {
return (
<Html>
<Html lang='en'>
<Head>
{/* fonts are being loaded here to enable optimization (https://nextjs.org/docs/basic-features/font-optimization) */}
{/* JetBrains Mono */}
@ -15,7 +15,7 @@ export default function Document() {
{/* Inter */}
<link
href='https://fonts.googleapis.com/css2?family=Inter&display=swap'
href='https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap'
rel='stylesheet'
></link>
</Head>

@ -287,18 +287,18 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
const [totalDevBuilds, setTotalDevBuilds] = useState(ALL_LINUX_DEV_BUILDS.length);
const showMoreStableReleases = () => {
setAmountStableReleases(amountStableReleases + 10);
setAmountStableReleases(amountStableReleases + 12);
};
const showMoreDevBuilds = () => {
setAmountDevBuilds(amountDevBuilds + 10);
setAmountDevBuilds(amountDevBuilds + 12);
};
return (
<>
<PageMetadata title={METADATA.DOWNLOADS_TITLE} description={METADATA.DOWNLOADS_DESCRIPTION} />
<main>
<main id='main-content'>
<Stack spacing={4}>
<DownloadsHero
currentBuild={LATEST_RELEASES_DATA.releaseName}
@ -368,31 +368,21 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
windowsData={ALL_WINDOWS_STABLE_RELEASES}
iOSData={ALL_IOS_STABLE_RELEASES}
androidData={ALL_ANDROID_STABLE_RELEASES}
totalReleasesNumber={totalStableReleases}
amountOfReleasesToShow={amountStableReleases}
setTotalReleases={setTotalStableReleases}
/>
<Flex
sx={{ mt: '0 !important' }}
flexDirection={{ base: 'column', md: 'row' }}
justifyContent='space-between'
justifyContent='flex-end'
alignItems='center'
>
<Stack p={4} display={{ base: 'none', md: 'block' }} mx='auto'>
<Text textStyle='hero-text-small'>
{totalStableReleases > 0
? `Showing ${Math.min(
amountStableReleases,
totalStableReleases
)} latest releases of
a total ${totalStableReleases} releases`
: `No releases`}
</Text>
</Stack>
{totalStableReleases > amountStableReleases && (
<Stack
sx={{ mt: '0 !important' }}
borderLeft={{ base: 'none', md: '2px solid #11866f' }}
borderLeft={{ base: 'none', md: '2px solid var(--chakra-colors-primary)' }}
w={{ base: '100%', md: 'auto' }}
>
<Link
as='button'
@ -434,28 +424,21 @@ const DownloadsPage: NextPage<Props> = ({ data }) => {
windowsData={ALL_WINDOWS_DEV_BUILDS}
iOSData={ALL_IOS_DEV_BUILDS}
androidData={ALL_ANDROID_DEV_BUILDS}
totalReleasesNumber={totalDevBuilds}
amountOfReleasesToShow={amountDevBuilds}
setTotalReleases={setTotalDevBuilds}
/>
<Flex
sx={{ mt: '0 !important' }}
flexDirection={{ base: 'column', md: 'row' }}
justifyContent='space-between'
justifyContent='flex-end'
alignItems='center'
>
<Stack p={4} display={{ base: 'none', md: 'block' }} mx='auto'>
<Text textStyle='hero-text-small'>
{totalDevBuilds > 0
? `Showing ${Math.min(amountDevBuilds, totalDevBuilds)} latest releases of
a total ${totalDevBuilds} releases`
: `No releases`}
</Text>
</Stack>
{totalDevBuilds > amountDevBuilds && (
<Stack
sx={{ mt: '0 !important' }}
borderLeft={{ base: 'none', md: '2px solid #11866f' }}
borderLeft={{ base: 'none', md: '2px solid var(--chakra-colors-primary)' }}
w={{ base: '100%', md: 'auto' }}
>
<Link as='button' variant='button-link-secondary' onClick={showMoreDevBuilds}>
<Text

@ -28,7 +28,7 @@ const HomePage: NextPage = ({}) => {
<>
<PageMetadata title={METADATA.HOME_TITLE} description={METADATA.HOME_DESCRIPTION} />
<main>
<main id='main-content'>
<Stack spacing={4}>
<HomeHero />
@ -44,7 +44,7 @@ const HomePage: NextPage = ({}) => {
>
<Text textStyle='quick-link-text'>
Geth (go-ethereum) is a{' '}
<Link href={GO_URL} isExternal variant='light'>
<Link href={GO_URL} isExternal variant='light' aria-label='Go lang'>
Go
</Link>{' '}
implementation of{' '}

@ -15,13 +15,13 @@ export const Link = {
light: {
textDecoration: 'underline',
color: 'primary',
_hover: { color: 'body', textDecorationColor: 'body' },
_hover: { color: 'body', textDecorationColor: 'secondary' },
_focus: {
color: 'primary',
boxShadow: '0 0 0 1px var(--chakra-colors-primary)',
boxShadow: '0 0 0 1px var(--chakra-colors-primary) !important',
textDecoration: 'none'
},
_pressed: {
_active: {
color: 'secondary',
textDecorationColor: 'secondary'
}

@ -7,14 +7,14 @@ export const colors = {
400: '#1FD3B0',
500: '#2EBDA1',
600: '#11866f',
700: '#08715C',
800: '#25453f',
900: '#02211B'
700: '#25534A',
800: '#173C35',
900: '#01100D'
},
gray: {
800: '#1d242c'
},
yellow: {
50: '#f0f2e2'
50: '#FBFDEF'
}
};

@ -2,56 +2,41 @@ export const textStyles = {
h1: {
fontFamily: 'heading',
fontWeight: 700,
fontSize: '2.75rem',
fontSize: { base: '2.175rem', md: '2.875rem' },
lineHeight: '3.375rem',
letterSpacing: { base: '0.03rem', md: '0.04rem' },
color: 'body'
},
h2: {
fontFamily: 'heading',
fontWeight: 400,
fontSize: { base: '1.5rem', md: '1.75rem' },
lineHeight: 'normal',
letterSpacing: { base: '0.03rem', md: '0.04rem' },
color: 'body'
},
header1: {
fontFamily: 'heading',
fontWeight: 700,
fontSize: { base: '1.875rem', md: '2.125rem' },
letterSpacing: { base: '0.03rem', md: '0.04rem' },
lineHeight: 'normal',
color: 'body'
},
header2: {
fontFamily: 'heading',
fontSize: { base: '1.5rem', md: '1.75rem' },
letterSpacing: { base: '0.03rem', md: '0.04rem' },
lineHeight: 'normal',
letterSpacing: { base: '0.03rem', md: '0.04rem' },
color: 'body'
},
header3: {
h3: {
fontFamily: 'heading',
fontSize: { base: '1.25rem', md: '1.375rem' },
letterSpacing: { base: '0.03rem', md: '0.04rem' },
lineHeight: 'normal',
color: 'body'
},
header4: {
h4: {
fontFamily: 'heading',
fontSize: '1.125rem',
letterSpacing: { base: '0.03rem', md: '0.04rem' },
lineHeight: 'normal',
color: 'body'
},
header5: {
h5: {
fontFamily: 'heading',
fontSize: '1rem',
letterSpacing: '0.02rem',
lineHeight: 'normal',
color: 'body'
},
header6: {
h6: {
fontFamily: 'heading',
fontSize: '0.875rem',
letterSpacing: '0.02rem',
@ -77,7 +62,8 @@ export const textStyles = {
fontFamily: 'heading',
color: 'bg',
fontWeight: 700,
textTransform: 'uppercase'
textTransform: 'uppercase',
_groupHover: { color: 'yellow.50' }
},
'home-section-link-label': {
fontFamily: 'heading',
@ -124,20 +110,22 @@ export const textStyles = {
fontFamily: 'heading',
color: 'bg',
fontSize: { base: 'md', lg: 'xl' },
textTransform: 'uppercase'
textTransform: 'uppercase',
_groupHover: { color: 'yellow.50' }
},
'downloads-button-sublabel': {
fontFamily: 'heading',
color: 'bg',
fontSize: { base: 'xs', lg: 'sm' },
textTransform: 'uppercase'
textTransform: 'uppercase',
_groupHover: { color: 'yellow.50' }
},
'download-tab-label': {
fontFamily: 'heading',
fontWeight: 700,
textTransform: 'uppercase',
textAlign: 'center',
fontSize: 'sm'
fontSize: { base: 'xs', sm: 'sm' }
},
'docs-nav-dropdown': {
fontFamily: 'heading',
@ -190,8 +178,7 @@ export const textStyles = {
fontWeight: 400,
fontSize: '13px',
lineHeight: 5,
letterSpacing: '1%',
mb: 4
letterSpacing: '1%'
},
'note-text': {
fontFamily: 'body',

@ -27,7 +27,7 @@ const overrides = {
textStyles,
semanticTokens: {
colors: {
primary: { _light: 'green.600', _dark: 'green.200' },
primary: { _light: 'green.700', _dark: 'green.200' },
secondary: { _light: 'green.800', _dark: 'green.600' },
'button-bg': { _light: 'green.50', _dark: 'green.900' },
body: { _light: 'gray.800', _dark: 'yellow.50' },

@ -50,3 +50,5 @@ export interface OpenPGPSignaturesData {
};
fingerprint: string;
}
export type OS = 'linux' | 'darwin' | 'windows' | 'mobile';

@ -0,0 +1,7 @@
export const getKebabCaseFromName = (name: string): string =>
name
.replace(/[#]/g, '')
.trim()
.toLowerCase()
.replace(/ /g, '-')
.replace(/[^a-z0-9-]/g, '');

@ -0,0 +1,11 @@
import { OS } from '../types';
// slice to get the last part of the url that includes the os
export const getOS = (url: string): OS =>
url?.slice(46).includes('darwin')
? 'darwin'
: url?.slice(46).includes('linux')
? 'linux'
: url?.slice(46).includes('windows')
? 'windows'
: 'mobile';

@ -2,8 +2,10 @@ export { compareReleasesFn } from './compareReleasesFn';
export { fetchLatestReleaseCommit } from './fetchLatestReleaseCommit';
export { fetchLatestReleaseVersionAndName } from './fetchLatestReleaseVersionAndName';
export { fetchXMLData } from './fetchXMLData';
export { getLatestBinaryURL } from './getLatestBinaryURL';
export { getChecksum } from './getChecksum';
export { getKebabCaseFromName } from './getKebabCaseFromName';
export { getLatestBinaryURL } from './getLatestBinaryURL';
export { getOS } from './getOS';
export { getParsedDate } from './getParsedDate';
export { getProgrammingLanguageName } from './getProgrammingLanguageName';
export { getReleaseArch } from './getReleaseArch';
@ -15,4 +17,8 @@ export { getReleaseSize } from './getReleaseSize';
export { getReleaseURL } from './getReleaseURL';
export { getSignatureURL } from './getSignatureURL';
export { getSortedReleases } from './getSortedReleases';
export { isDarwinPrimaryRelease } from './isDarwinPrimaryRelease';
export { isLinuxPrimaryRelease } from './isLinuxPrimaryRelease';
export { isMobilePrimaryRelease } from './isMobilePrimaryRelease';
export { isWindowsPrimaryRelease } from './isWindowsPrimaryRelease';
export { mapReleasesData } from './mapReleasesData';

@ -0,0 +1,8 @@
import { OS, ReleaseData } from '../types';
export const isDarwinPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
os === 'darwin' &&
data
.slice(0, 2) // get latest build to filter on
.filter((e: ReleaseData) => e.arch === '64-bit')
.includes(r);

@ -0,0 +1,8 @@
import { OS, ReleaseData } from '../types';
export const isLinuxPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
os === 'linux' &&
data
.slice(0, 12) // get latest build to filter on
.filter((e: ReleaseData) => e.arch === '64-bit')
.includes(r);

@ -0,0 +1,8 @@
import { OS, ReleaseData } from '../types';
export const isMobilePrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
os === 'mobile' &&
data
.filter((e: ReleaseData) => e.arch === 'all')
.slice(0, 1) // get latest build
.includes(r);

@ -0,0 +1,8 @@
import { OS, ReleaseData } from '../types';
export const isWindowsPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
os === 'windows' &&
data
.slice(0, 6) // get latest build to filter on
.filter((e: ReleaseData) => e.kind === 'Installer' && e.arch === '64-bit')
.includes(r);

@ -1,18 +1,22 @@
const check = '{#';
import { getKebabCaseFromName } from './';
export const parseHeadingId = (children: string[]) => {
if (children[children.length - 1].includes(check)) {
const temp = children[children.length - 1].split(check);
const headingId = temp[temp.length - 1].split('}')[0];
children[children.length - 1] = temp[0];
const CHECK = '{#';
const lastChild = children[children.length - 1];
const split = lastChild.split(CHECK);
if (lastChild.includes(CHECK)) {
const headingId = split[split.length - 1].split('}')[0];
const newChildren = [...children];
newChildren[newChildren.length - 1] = split[0];
return {
children,
title: temp[0].replaceAll('#', ''),
children: newChildren,
title: split[0].replaceAll('#', ''),
headingId
};
}
return null;
return {
children,
title: split[0].replaceAll('#', ''),
headingId: getKebabCaseFromName(split[0])
};
};

@ -1,60 +1,57 @@
OLD Geth website URLS,Equivalent NEW website URLs,Relative path to markdown file,Notes
https://geth.ethereum.org/,https://geth.ethereum.org,src/pages/homepage,will be react page
https://geth.ethereum.org/downloads/,https://geth.ethereum.org/downloads,src/pages/downloads,will be react page
https://geth.ethereum.org/docs/,https://geth.ethereum.org/docs,src/pages/docs/index.md,n/a
https://geth.ethereum.org/docs/getting-started,https://geth.ethereum.org/docs/getting_started/getting-started,src/pages/docs/getting_started/getting_started.md,n/a
https://geth.ethereum.org/docs/getting-started/geth-and-clef,https://geth.ethereum.org/docs/getting_started_with_clef,src/pages/docs/getting_started/getting-started-with-clef.md,n/a
https://geth.ethereum.org/docs/getting-started/dev-mode,https://geth.ethereum.org/docs/developers/geth-developers/dev-mode,src/pages/docs/developers/geth-developer/dev-mode.md,n/a
https://geth.ethereum.org/docs/install-and-build/installing-geth,https://geth.ethereum.org/docs/getting_started/install-geth,src/pages/docs/getting_started/backup-restore.md,n/a
https://geth.ethereum.org/docs/install-and-build/backup-restore,https://geth.ethereum.org/docs/getting_started/backup-restore,src/pages/docs/getting_started/installing-geth.md,n/a
https://geth.ethereum.org/docs/install-and-build/cross-compile,page removed,page removed,n/a
https://geth.ethereum.org/docs/interface/command-line-options,https://geth.ethereum.org/fundamentals/command-line-options,src/pages/docs/fundamentals/command-line-options.md,n/a
https://geth.ethereum.org/docs/interface/pruning,https://geth.ethereum.org/docs/fundamentals/pruning,src/pages/docs/fundamentals/pruning.md,n/a
https://geth.ethereum.org/docs/interface/merge,page removed,page removed,n/a
https://geth.ethereum.org/docs/interface/consensus-clients,https://geth.ethereum.org/docs/getting_started/consensus-client,src/pages/docs/getting_started/consensus-clients.md,n/a
https://geth.ethereum.org/docs/interface/peer-to-peer,https://geth.ethereum.org/docs/fundamentals/peer-to-peer,src/pages/docs/fundamentals/peer-to-peer.md,n/a
https://geth.ethereum.org/docs/interface/les,https://geth.ethereum.org/docs/fundamentals/les,src/pages/docs/fundamentals/les.md,n/a
https://geth.ethereum.org/docs/interface/managing-your-accounts,https://geth.ethereum.org/docs/fundamentals/account-management,src/pages/docs/fundamentals/account-management.md,n/a
https://geth.ethereum.org/docs/faq,https://geth.ethereum.org/docs/faq,src/pages/docs/faq.md,n/a
https://geth.ethereum.org/docs/interface/javascript-console,https://geth.ethereum.org/docs/interacting-with-geth/javascript-console,src/pages/docs/interacting-with-geth/javascript-console.md,n/a
https://geth.ethereum.org/docs/interface/private-network,https://geth.ethereum.org/docs/developers/geth-developer/private-network,src/pages/docs/developers/geth-developer/private-network.md,n/a
https://geth.ethereum.org/docs/interface/mining,page removed,page removed,n/a
https://geth.ethereum.org/docs/interface/metrics,https://geth.ethereum.org/docs/monitoring/metrics,src/pages/docs/monitoring/metrics.md,n/a
https://geth.ethereum.org/docs/dapp/native,https://geth.ethereum.org/docs/developers/dapp-developer/native,src/pages/docs/developers/dapp-developer/native.md,n/a
https://geth.ethereum.org/docs/dapp/tracing,https://geth.ethereum.org/docs/developers/dapp-developer/tracing,src/pages/docs/developers/dapp-developer/tracing.md,n/a
https://geth.ethereum.org/docs/dapp/custom-tracer,https://geth.ethereum.org/docs/developers/dapp-developer/custom-tracer,src/pages/docs/developers/dapp-developer/custom-tracer.md,n/a
https://geth.ethereum.org/docs/dapp/builtin-tracers,https://geth.ethereum.org/docs/developers/dapp-developer/built-in-tracer,src/pages/docs/developers/dapp-developer/built-in-tracers.md,n/a
https://geth.ethereum.org/docs/dapp/native-accounts,https://geth.ethereum.org/docs/developers/dapp-developer/native-accounts,src/pages/docs/developers/dapp-developer/native-accounts.md,n/a
https://geth.ethereum.org/docs/dapp/native-bindings,https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings,src/pages/docs/developers/dapp-developer/native-bindings.md,n/a
https://geth.ethereum.org/docs/dapp/mobile,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,src/pages/docs/developers/dapp-developer/mobile.md,n/a
https://geth.ethereum.org/docs/dapp/mobile-accounts,page removed,page removed,n/a
https://geth.ethereum.org/docs/rpc/server,https://geth.ethereum.org/docs/interacting-with-geth/rpc/server,src/pages/docs/interacting-with-geth/rpc/server.md,n/a
https://geth.ethereum.org/docs/rpc/pubsub,https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub,src/pages/docs/interacting-with-geth/rpc/pubsub.md,n/a
https://geth.ethereum.org/docs/rpc/batch,https://geth.ethereum.org/docs//interacting-with-geth/rpc/batch,src/pages/docs/interacting-with-geth/rpc/batch.md,n/a
https://geth.ethereum.org/docs/rpc/graphql,https://geth.ethereum.org/docs/interacting_with_geth/rpc/graphql,src/pages/docs/interacting-with-geth/rpc/graphql.md,n/a
https://geth.ethereum.org/docs/rpc/ns-admin,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-admin,src/pages/docs/interacting-with-geth/rpc/ns-admin.md,n/a
https://geth.ethereum.org/docs/rpc/ns-clique,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-clique,src/pages/docs/interacting-with-geth/rpc/ns-clique.md,n/a
https://geth.ethereum.org/docs/rpc/ns-debug,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-debug,src/pages/docs/interacting-with-geth/rpc/ns-debug.md,n/a
https://geth.ethereum.org/docs/rpc/ns-eth,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-eth,src/pages/docs/interacting-with-geth/rpc/ns-eth.md,n/a
https://geth.ethereum.org/docs/rpc/ns-les,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-les,src/pages/docs/interacting-with-geth/rpc/ns-les.md,n/a
https://geth.ethereum.org/docs/rpc/ns-miner,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-miner,src/pages/docs/interacting-with-geth/rpc/ns-miner.md,n/a
https://geth.ethereum.org/docs/rpc/ns-net,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-net,src/pages/docs/interacting-with-geth/rpc/ns-net.md,n/a
https://geth.ethereum.org/docs/rpc/ns-personal,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-personal,src/pages/docs/interacting-with-geth/rpc/ns-personalmd,n/a
https://geth.ethereum.org/docs/rpc/ns-txpool,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-txpool,src/pages/docs/interacting-with-geth/rpc/ns-txpool.md,n/a
https://geth.ethereum.org/docs/rpc/objects,https://geth.ethereum.org/docs/interacting_with_geth/rpc/objects,src/pages/docs/interacting-with-geth/rpc/objects.md,n/a
https://geth.ethereum.org/docs/developers/dev-guide,https://geth.ethereum.org/docs/developers/geth-developer/dev-guide,src/pages/docs/developers/geth-developer/devguide.md,n/a
https://geth.ethereum.org/docs/developers/code-review-guidelines,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,src/pages/docs/developers/geth-developer/code-review-guidelines.md,n/a
https://geth.ethereum.org/docs/developers/issue-handling-workflow,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,src/pages/docs/developers/geth-developer/issue-handling-workflow.md,n/a
https://geth.ethereum.org/docs/developers/dns-discovery-setup,https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup,src/pages/docs/developers/geth-developer/dns-discovery-workflow.md,n/a
https://geth.ethereum.org/docs/clef/introduction,https://geth.ethereum.org/docs/tools/clef/introduction,src/pages/docs/tools/clef/introduction.md,n/a
https://geth.ethereum.org/docs/clef/tutorial,https://geth.ethereum.org/docs/tools/clef/tutorial,src/pages/docs/tools/clef/tutorial.md,n/a
https://geth.ethereum.org/docs/clef/cliquesigning,https://geth.ethereum.org/docs/tools/clef/clique-signing,src/pages/docs/tools/clef/clique-signing.md,n/a
https://geth.ethereum.org/docs/clef/rules,https://geth.ethereum.org/docs/tools/clef/rules,src/pages/docs/tools/clef/rules.md,n/a
https://geth.ethereum.org/docs/clef/setup,https://geth.ethereum.org/docs/tools/clef/setup,src/pages/docs/tools/clef/setup.md,n/a
https://geth.ethereum.org/docs/clef/apis,https://geth.ethereum.org/docs/tools/clef/apis,src/pages/docs/tools/clef/apis.md,n/a
https://geth.ethereum.org/docs/clef/datatypes,https://geth.ethereum.org/docs/tools/clef/datatypes,src/pages/docs/tools/clef/datatypes.md,n/a
https://geth.ethereum.org/docs/interface/sync-modes,https://geth.ethereum.org/docs/interface/sync-modes,src/pages/docs/fundamentals/sync-modes.md,n/a
https://geth.ethereum.org/docs/interface/hardware,https://geth.ethereum.org/docs/interface/getting_started/hardware-requirements.md,,
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,src/pages/docs/vulnerabilities/vulnerabilities.json,must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,src/pages/docs/vulnerabilities/vulnerabilities.json.minisig,must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md,https://geth.ethereum.org/docs/developers/geth-developers/discloures,src/pages/docs/developers/geth-developers/disclosures,moved to /docs and renamed
OLD Geth website URLS,Equivalent NEW website URLs,,Notes
https://geth.ethereum.org/,https://geth.ethereum.org,,will be react page
https://geth.ethereum.org/downloads/,https://geth.ethereum.org/downloads,,will be react page
https://geth.ethereum.org/docs/,https://geth.ethereum.org/docs,,n/a
https://geth.ethereum.org/docs/getting-started,https://geth.ethereum.org/docs/getting-started/backup-restore,,n/a
https://geth.ethereum.org/docs/getting-started/dev-mode,https://geth.ethereum.org/docs/developers/geth-developer/dev-mode,,n/a
https://geth.ethereum.org/docs/install-and-build/installing-geth,https://geth.ethereum.org/docs/getting-started/install-geth,,n/a
https://geth.ethereum.org/docs/install-and-build/backup-restore,https://geth.ethereum.org/docs/getting-started/backup-restore,,n/a
https://geth.ethereum.org/docs/interface/command-line-options,https://geth.ethereum.org/docs/fundamentals/command-line-options,,n/a
https://geth.ethereum.org/docs/interface/pruning,https://geth.ethereum.org/docs/fundamentals/pruning,,n/a
https://geth.ethereum.org/docs/interface/consensus-clients,https://geth.ethereum.org/docs/getting-started/consensus-client,,n/a
https://geth.ethereum.org/docs/interface/peer-to-peer,https://geth.ethereum.org/docs/fundamentals/peer-to-peer,,n/a
https://geth.ethereum.org/docs/interface/les,https://geth.ethereum.org/docs/fundamentals/les,,n/a
https://geth.ethereum.org/docs/interface/managing-your-accounts,https://geth.ethereum.org/docs/fundamentals/account-management,,n/a
https://geth.ethereum.org/docs/faq,https://geth.ethereum.org/docs/faq,,n/a
https://geth.ethereum.org/docs/interface/javascript-console,https://geth.ethereum.org/docs/interacting-with-geth/javascript-console,,n/a
https://geth.ethereum.org/docs/interface/private-network,https://geth.ethereum.org/docs/developers/geth-developer/private-network,,n/a
https://geth.ethereum.org/docs/interface/mining,https://geth.ethereum.org/docs/fundamentals/mining,,n/a
https://geth.ethereum.org/docs/interface/metrics,https://geth.ethereum.org/docs/monitoring/metrics,,n/a
https://geth.ethereum.org/docs/dapp/native,https://geth.ethereum.org/docs/developers/dapp-developer/native,,n/a
https://geth.ethereum.org/docs/dapp/tracing,https://geth.ethereum.org/docs/developers/evm-tracing,,n/a
https://geth.ethereum.org/docs/dapp/custom-tracer,https://geth.ethereum.org/docs/developers/evm-tracing/custom-tracer,,n/a
https://geth.ethereum.org/docs/dapp/builtin-tracers,https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers,,n/a
https://geth.ethereum.org/docs/dapp/native-accounts,https://geth.ethereum.org/docs/docs/developers/dapp-developer/native-accounts,,n/a
https://geth.ethereum.org/docs/dapp/native-bindings,https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings,,n/a
https://geth.ethereum.org/docs/dapp/mobile,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,,n/a
https://geth.ethereum.org/docs/dapp/mobile-accounts,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,,n/a
https://geth.ethereum.org/docs/rpc/server,https://geth.ethereum.org/docs/interacting-with-geth/rpc,,n/a
https://geth.ethereum.org/docs/rpc/pubsub,https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub,,n/a
https://geth.ethereum.org/docs/rpc/batch,https://geth.ethereum.org/docs/interacting-with-geth/rpc/batch,,n/a
https://geth.ethereum.org/docs/rpc/graphql,https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql,,n/a
https://geth.ethereum.org/docs/rpc/ns-admin,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin,,n/a
https://geth.ethereum.org/docs/rpc/ns-clique,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-clique,,n/a
https://geth.ethereum.org/docs/rpc/ns-debug,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug,,n/a
https://geth.ethereum.org/docs/rpc/ns-eth,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth,,n/a
https://geth.ethereum.org/docs/rpc/ns-les,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-les,,n/a
https://geth.ethereum.org/docs/rpc/ns-miner,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner,,n/a
https://geth.ethereum.org/docs/rpc/ns-net,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-net,,n/a
https://geth.ethereum.org/docs/rpc/ns-personal,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal,,n/a
https://geth.ethereum.org/docs/rpc/ns-txpool,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool,,n/a
https://geth.ethereum.org/docs/rpc/objects,https://geth.ethereum.org/docs/interacting-with-geth/rpc/objects,,n/a
https://geth.ethereum.org/docs/developers/dev-guide,https://geth.ethereum.org/docs/developers/geth-developer/dev-guide,,n/a
https://geth.ethereum.org/docs/developers/code-review-guidelines,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,,n/a
https://geth.ethereum.org/docs/developers/issue-handling-workflow,https://geth.ethereum.org/docs/developers/geth-developer/issue-handling-workflow,,n/a
https://geth.ethereum.org/docs/developers/dns-discovery-setup,https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup,,n/a
https://geth.ethereum.org/docs/clef/introduction,https://geth.ethereum.org/docs/tools/clef/introduction,,n/a
https://geth.ethereum.org/docs/clef/tutorial,https://geth.ethereum.org/docs/tools/clef/tutorial,,n/a
https://geth.ethereum.org/docs/clef/cliquesigning,https://geth.ethereum.org/docs/tools/clef/clique-signing,,n/a
https://geth.ethereum.org/docs/clef/rules,https://geth.ethereum.org/docs/tools/clef/rules,,n/a
https://geth.ethereum.org/docs/clef/setup,https://geth.ethereum.org/docs/tools/clef/setup,,n/a
https://geth.ethereum.org/docs/clef/apis,https://geth.ethereum.org/docs/tools/clef/apis,,n/a
https://geth.ethereum.org/docs/clef/datatypes,https://geth.ethereum.org/docs/tools/clef/datatypes,,n/a
https://geth.ethereum.org/docs/interface/sync-modes,https://geth.ethereum.org/docs/fundamentals/sync-modes,,n/a
https://geth.ethereum.org/docs/interface/hardware,https://geth.ethereum.org/docs/getting-started/hardware-requirements,,
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md,https://geth.ethereum.org/docs/developers/geth-developer/disclosures,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",moved to /docs and renamed
1 OLD Geth website URLS Equivalent NEW website URLs Relative path to markdown file Notes
2 https://geth.ethereum.org/ https://geth.ethereum.org src/pages/homepage will be react page
3 https://geth.ethereum.org/downloads/ https://geth.ethereum.org/downloads src/pages/downloads will be react page
4 https://geth.ethereum.org/docs/ https://geth.ethereum.org/docs src/pages/docs/index.md n/a
5 https://geth.ethereum.org/docs/getting-started https://geth.ethereum.org/docs/getting_started/getting-started https://geth.ethereum.org/docs/getting-started/backup-restore src/pages/docs/getting_started/getting_started.md n/a
6 https://geth.ethereum.org/docs/getting-started/geth-and-clef https://geth.ethereum.org/docs/getting-started/dev-mode https://geth.ethereum.org/docs/getting_started_with_clef https://geth.ethereum.org/docs/developers/geth-developer/dev-mode src/pages/docs/getting_started/getting-started-with-clef.md n/a
7 https://geth.ethereum.org/docs/getting-started/dev-mode https://geth.ethereum.org/docs/install-and-build/installing-geth https://geth.ethereum.org/docs/developers/geth-developers/dev-mode https://geth.ethereum.org/docs/getting-started/install-geth src/pages/docs/developers/geth-developer/dev-mode.md n/a
8 https://geth.ethereum.org/docs/install-and-build/installing-geth https://geth.ethereum.org/docs/install-and-build/backup-restore https://geth.ethereum.org/docs/getting_started/install-geth https://geth.ethereum.org/docs/getting-started/backup-restore src/pages/docs/getting_started/backup-restore.md n/a
9 https://geth.ethereum.org/docs/install-and-build/backup-restore https://geth.ethereum.org/docs/interface/command-line-options https://geth.ethereum.org/docs/getting_started/backup-restore https://geth.ethereum.org/docs/fundamentals/command-line-options src/pages/docs/getting_started/installing-geth.md n/a
10 https://geth.ethereum.org/docs/install-and-build/cross-compile https://geth.ethereum.org/docs/interface/pruning page removed https://geth.ethereum.org/docs/fundamentals/pruning page removed n/a
11 https://geth.ethereum.org/docs/interface/command-line-options https://geth.ethereum.org/docs/interface/consensus-clients https://geth.ethereum.org/fundamentals/command-line-options https://geth.ethereum.org/docs/getting-started/consensus-client src/pages/docs/fundamentals/command-line-options.md n/a
12 https://geth.ethereum.org/docs/interface/pruning https://geth.ethereum.org/docs/interface/peer-to-peer https://geth.ethereum.org/docs/fundamentals/pruning https://geth.ethereum.org/docs/fundamentals/peer-to-peer src/pages/docs/fundamentals/pruning.md n/a
13 https://geth.ethereum.org/docs/interface/merge https://geth.ethereum.org/docs/interface/les page removed https://geth.ethereum.org/docs/fundamentals/les page removed n/a
14 https://geth.ethereum.org/docs/interface/consensus-clients https://geth.ethereum.org/docs/interface/managing-your-accounts https://geth.ethereum.org/docs/getting_started/consensus-client https://geth.ethereum.org/docs/fundamentals/account-management src/pages/docs/getting_started/consensus-clients.md n/a
15 https://geth.ethereum.org/docs/interface/peer-to-peer https://geth.ethereum.org/docs/faq https://geth.ethereum.org/docs/fundamentals/peer-to-peer https://geth.ethereum.org/docs/faq src/pages/docs/fundamentals/peer-to-peer.md n/a
16 https://geth.ethereum.org/docs/interface/les https://geth.ethereum.org/docs/interface/javascript-console https://geth.ethereum.org/docs/fundamentals/les https://geth.ethereum.org/docs/interacting-with-geth/javascript-console src/pages/docs/fundamentals/les.md n/a
17 https://geth.ethereum.org/docs/interface/managing-your-accounts https://geth.ethereum.org/docs/interface/private-network https://geth.ethereum.org/docs/fundamentals/account-management https://geth.ethereum.org/docs/developers/geth-developer/private-network src/pages/docs/fundamentals/account-management.md n/a
18 https://geth.ethereum.org/docs/faq https://geth.ethereum.org/docs/interface/mining https://geth.ethereum.org/docs/faq https://geth.ethereum.org/docs/fundamentals/mining src/pages/docs/faq.md n/a
19 https://geth.ethereum.org/docs/interface/javascript-console https://geth.ethereum.org/docs/interface/metrics https://geth.ethereum.org/docs/interacting-with-geth/javascript-console https://geth.ethereum.org/docs/monitoring/metrics src/pages/docs/interacting-with-geth/javascript-console.md n/a
20 https://geth.ethereum.org/docs/interface/private-network https://geth.ethereum.org/docs/dapp/native https://geth.ethereum.org/docs/developers/geth-developer/private-network https://geth.ethereum.org/docs/developers/dapp-developer/native src/pages/docs/developers/geth-developer/private-network.md n/a
21 https://geth.ethereum.org/docs/interface/mining https://geth.ethereum.org/docs/dapp/tracing page removed https://geth.ethereum.org/docs/developers/evm-tracing page removed n/a
22 https://geth.ethereum.org/docs/interface/metrics https://geth.ethereum.org/docs/dapp/custom-tracer https://geth.ethereum.org/docs/monitoring/metrics https://geth.ethereum.org/docs/developers/evm-tracing/custom-tracer src/pages/docs/monitoring/metrics.md n/a
23 https://geth.ethereum.org/docs/dapp/native https://geth.ethereum.org/docs/dapp/builtin-tracers https://geth.ethereum.org/docs/developers/dapp-developer/native https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers src/pages/docs/developers/dapp-developer/native.md n/a
24 https://geth.ethereum.org/docs/dapp/tracing https://geth.ethereum.org/docs/dapp/native-accounts https://geth.ethereum.org/docs/developers/dapp-developer/tracing https://geth.ethereum.org/docs/docs/developers/dapp-developer/native-accounts src/pages/docs/developers/dapp-developer/tracing.md n/a
25 https://geth.ethereum.org/docs/dapp/custom-tracer https://geth.ethereum.org/docs/dapp/native-bindings https://geth.ethereum.org/docs/developers/dapp-developer/custom-tracer https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings src/pages/docs/developers/dapp-developer/custom-tracer.md n/a
26 https://geth.ethereum.org/docs/dapp/builtin-tracers https://geth.ethereum.org/docs/dapp/mobile https://geth.ethereum.org/docs/developers/dapp-developer/built-in-tracer https://geth.ethereum.org/docs/developers/dapp-developer/mobile src/pages/docs/developers/dapp-developer/built-in-tracers.md n/a
27 https://geth.ethereum.org/docs/dapp/native-accounts https://geth.ethereum.org/docs/dapp/mobile-accounts https://geth.ethereum.org/docs/developers/dapp-developer/native-accounts https://geth.ethereum.org/docs/developers/dapp-developer/mobile src/pages/docs/developers/dapp-developer/native-accounts.md n/a
28 https://geth.ethereum.org/docs/dapp/native-bindings https://geth.ethereum.org/docs/rpc/server https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings https://geth.ethereum.org/docs/interacting-with-geth/rpc src/pages/docs/developers/dapp-developer/native-bindings.md n/a
29 https://geth.ethereum.org/docs/dapp/mobile https://geth.ethereum.org/docs/rpc/pubsub https://geth.ethereum.org/docs/developers/dapp-developer/mobile https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub src/pages/docs/developers/dapp-developer/mobile.md n/a
30 https://geth.ethereum.org/docs/dapp/mobile-accounts https://geth.ethereum.org/docs/rpc/batch page removed https://geth.ethereum.org/docs/interacting-with-geth/rpc/batch page removed n/a
31 https://geth.ethereum.org/docs/rpc/server https://geth.ethereum.org/docs/rpc/graphql https://geth.ethereum.org/docs/interacting-with-geth/rpc/server https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql src/pages/docs/interacting-with-geth/rpc/server.md n/a
32 https://geth.ethereum.org/docs/rpc/pubsub https://geth.ethereum.org/docs/rpc/ns-admin https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin src/pages/docs/interacting-with-geth/rpc/pubsub.md n/a
33 https://geth.ethereum.org/docs/rpc/batch https://geth.ethereum.org/docs/rpc/ns-clique https://geth.ethereum.org/docs//interacting-with-geth/rpc/batch https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-clique src/pages/docs/interacting-with-geth/rpc/batch.md n/a
34 https://geth.ethereum.org/docs/rpc/graphql https://geth.ethereum.org/docs/rpc/ns-debug https://geth.ethereum.org/docs/interacting_with_geth/rpc/graphql https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug src/pages/docs/interacting-with-geth/rpc/graphql.md n/a
35 https://geth.ethereum.org/docs/rpc/ns-admin https://geth.ethereum.org/docs/rpc/ns-eth https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-admin https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth src/pages/docs/interacting-with-geth/rpc/ns-admin.md n/a
36 https://geth.ethereum.org/docs/rpc/ns-clique https://geth.ethereum.org/docs/rpc/ns-les https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-clique https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-les src/pages/docs/interacting-with-geth/rpc/ns-clique.md n/a
37 https://geth.ethereum.org/docs/rpc/ns-debug https://geth.ethereum.org/docs/rpc/ns-miner https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-debug https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner src/pages/docs/interacting-with-geth/rpc/ns-debug.md n/a
38 https://geth.ethereum.org/docs/rpc/ns-eth https://geth.ethereum.org/docs/rpc/ns-net https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-eth https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-net src/pages/docs/interacting-with-geth/rpc/ns-eth.md n/a
39 https://geth.ethereum.org/docs/rpc/ns-les https://geth.ethereum.org/docs/rpc/ns-personal https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-les https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal src/pages/docs/interacting-with-geth/rpc/ns-les.md n/a
40 https://geth.ethereum.org/docs/rpc/ns-miner https://geth.ethereum.org/docs/rpc/ns-txpool https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-miner https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool src/pages/docs/interacting-with-geth/rpc/ns-miner.md n/a
41 https://geth.ethereum.org/docs/rpc/ns-net https://geth.ethereum.org/docs/rpc/objects https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-net https://geth.ethereum.org/docs/interacting-with-geth/rpc/objects src/pages/docs/interacting-with-geth/rpc/ns-net.md n/a
42 https://geth.ethereum.org/docs/rpc/ns-personal https://geth.ethereum.org/docs/developers/dev-guide https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-personal https://geth.ethereum.org/docs/developers/geth-developer/dev-guide src/pages/docs/interacting-with-geth/rpc/ns-personalmd n/a
43 https://geth.ethereum.org/docs/rpc/ns-txpool https://geth.ethereum.org/docs/developers/code-review-guidelines https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-txpool https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines src/pages/docs/interacting-with-geth/rpc/ns-txpool.md n/a
44 https://geth.ethereum.org/docs/rpc/objects https://geth.ethereum.org/docs/developers/issue-handling-workflow https://geth.ethereum.org/docs/interacting_with_geth/rpc/objects https://geth.ethereum.org/docs/developers/geth-developer/issue-handling-workflow src/pages/docs/interacting-with-geth/rpc/objects.md n/a
45 https://geth.ethereum.org/docs/developers/dev-guide https://geth.ethereum.org/docs/developers/dns-discovery-setup https://geth.ethereum.org/docs/developers/geth-developer/dev-guide https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup src/pages/docs/developers/geth-developer/devguide.md n/a
46 https://geth.ethereum.org/docs/developers/code-review-guidelines https://geth.ethereum.org/docs/clef/introduction https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines https://geth.ethereum.org/docs/tools/clef/introduction src/pages/docs/developers/geth-developer/code-review-guidelines.md n/a
47 https://geth.ethereum.org/docs/developers/issue-handling-workflow https://geth.ethereum.org/docs/clef/tutorial https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines https://geth.ethereum.org/docs/tools/clef/tutorial src/pages/docs/developers/geth-developer/issue-handling-workflow.md n/a
48 https://geth.ethereum.org/docs/developers/dns-discovery-setup https://geth.ethereum.org/docs/clef/cliquesigning https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup https://geth.ethereum.org/docs/tools/clef/clique-signing src/pages/docs/developers/geth-developer/dns-discovery-workflow.md n/a
49 https://geth.ethereum.org/docs/clef/introduction https://geth.ethereum.org/docs/clef/rules https://geth.ethereum.org/docs/tools/clef/introduction https://geth.ethereum.org/docs/tools/clef/rules src/pages/docs/tools/clef/introduction.md n/a
50 https://geth.ethereum.org/docs/clef/tutorial https://geth.ethereum.org/docs/clef/setup https://geth.ethereum.org/docs/tools/clef/tutorial https://geth.ethereum.org/docs/tools/clef/setup src/pages/docs/tools/clef/tutorial.md n/a
51 https://geth.ethereum.org/docs/clef/cliquesigning https://geth.ethereum.org/docs/clef/apis https://geth.ethereum.org/docs/tools/clef/clique-signing https://geth.ethereum.org/docs/tools/clef/apis src/pages/docs/tools/clef/clique-signing.md n/a
52 https://geth.ethereum.org/docs/clef/rules https://geth.ethereum.org/docs/clef/datatypes https://geth.ethereum.org/docs/tools/clef/rules https://geth.ethereum.org/docs/tools/clef/datatypes src/pages/docs/tools/clef/rules.md n/a
53 https://geth.ethereum.org/docs/clef/setup https://geth.ethereum.org/docs/interface/sync-modes https://geth.ethereum.org/docs/tools/clef/setup https://geth.ethereum.org/docs/fundamentals/sync-modes src/pages/docs/tools/clef/setup.md n/a
54 https://geth.ethereum.org/docs/clef/apis https://geth.ethereum.org/docs/interface/hardware https://geth.ethereum.org/docs/tools/clef/apis https://geth.ethereum.org/docs/getting-started/hardware-requirements src/pages/docs/tools/clef/apis.md n/a
55 https://geth.ethereum.org/docs/clef/datatypes https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json https://geth.ethereum.org/docs/tools/clef/datatypes https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json src/pages/docs/tools/clef/datatypes.md Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org) n/a must be served at original URL
56 https://geth.ethereum.org/docs/interface/sync-modes https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig https://geth.ethereum.org/docs/interface/sync-modes https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig src/pages/docs/fundamentals/sync-modes.md Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org) n/a must be served at original URL
57 https://geth.ethereum.org/docs/interface/hardware https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md https://geth.ethereum.org/docs/interface/getting_started/hardware-requirements.md https://geth.ethereum.org/docs/developers/geth-developer/disclosures Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org) moved to /docs and renamed
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json src/pages/docs/vulnerabilities/vulnerabilities.json must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig src/pages/docs/vulnerabilities/vulnerabilities.json.minisig must be served at original URL
https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md https://geth.ethereum.org/docs/developers/geth-developers/discloures src/pages/docs/developers/geth-developers/disclosures moved to /docs and renamed

@ -1108,45 +1108,6 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@mdx-js/loader@^2.1.3":
version "2.1.3"
resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.1.3.tgz"
integrity sha512-7LtklcfzZC9aWWFREop0ivemhwcp/cke2tICHEhnDyGn+hTg7LIbWCfSos68kJv9w7Z47KYfNcg9/8zBD+8eXA==
dependencies:
"@mdx-js/mdx" "^2.0.0"
source-map "^0.7.0"
"@mdx-js/mdx@^2.0.0":
version "2.1.3"
resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.1.3.tgz"
integrity sha512-ahbb47HJIJ4xnifaL06tDJiSyLEy1EhFAStO7RZIm3GTa7yGW3NGhZaj+GUCveFgl5oI54pY4BgiLmYm97y+zg==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/mdx" "^2.0.0"
estree-util-build-jsx "^2.0.0"
estree-util-is-identifier-name "^2.0.0"
estree-util-to-js "^1.1.0"
estree-walker "^3.0.0"
hast-util-to-estree "^2.0.0"
markdown-extensions "^1.0.0"
periscopic "^3.0.0"
remark-mdx "^2.0.0"
remark-parse "^10.0.0"
remark-rehype "^10.0.0"
unified "^10.0.0"
unist-util-position-from-estree "^1.0.0"
unist-util-stringify-position "^3.0.0"
unist-util-visit "^4.0.0"
vfile "^5.0.0"
"@mdx-js/react@^2.1.3":
version "2.1.3"
resolved "https://registry.npmjs.org/@mdx-js/react/-/react-2.1.3.tgz"
integrity sha512-11n4lTvvRyxq3OYbWJwEYM+7q6PE0GxKbk0AwYIIQmrRkxDeljIsjDQkKOgdr/orgRRbYy5zi+iERdnwe01CHQ==
dependencies:
"@types/mdx" "^2.0.0"
"@types/react" ">=16"
"@motionone/animation@^10.13.1":
version "10.14.0"
resolved "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz"
@ -1212,11 +1173,6 @@
dependencies:
glob "7.1.7"
"@next/mdx@^12.3.0":
version "12.3.0"
resolved "https://registry.npmjs.org/@next/mdx/-/mdx-12.3.0.tgz"
integrity sha512-XyzLhgsKa4lKb3dw8HFtj4MM0jilDStKtosFrkt8AX44zEwxPoJPaIvMCWNsRwq72YTzQLqh1gjepIe9zCKZwQ==
"@next/swc-android-arm-eabi@13.0.2":
version "13.0.2"
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.2.tgz#66669b8aab5062f554b8e9905d855679aabf0342"
@ -1320,13 +1276,6 @@
dependencies:
tslib "^2.4.0"
"@types/acorn@^4.0.0":
version "4.0.6"
resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz"
integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==
dependencies:
"@types/estree" "*"
"@types/debug@^4.0.0":
version "4.1.7"
resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz"
@ -1334,18 +1283,6 @@
dependencies:
"@types/ms" "*"
"@types/estree-jsx@^1.0.0":
version "1.0.0"
resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz"
integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==
dependencies:
"@types/estree" "*"
"@types/estree@*", "@types/estree@^1.0.0":
version "1.0.0"
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz"
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
"@types/hast@^2.0.0":
version "2.3.4"
resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz"
@ -1387,11 +1324,6 @@
resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz"
integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==
"@types/mdx@^2.0.0":
version "2.0.2"
resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.2.tgz"
integrity sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==
"@types/ms@*":
version "0.7.31"
resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz"
@ -1431,7 +1363,7 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@18.0.18", "@types/react@>=16":
"@types/react@*", "@types/react@18.0.18":
version "18.0.18"
resolved "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz"
integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==
@ -1504,12 +1436,12 @@
resolved "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.1.0.tgz"
integrity sha512-PeaBcTmdZWcFf7n1aM+oiOdZc+sy14qi0emPIeUuGMTjbP0xLGrZu43kdpHnWSXy7/r4Ubp/vlg50MCV8+9Isg==
acorn-jsx@^5.0.0, acorn-jsx@^5.3.2:
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.0.0, acorn@^8.8.0:
acorn@^8.8.0:
version "8.8.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz"
integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
@ -1631,11 +1563,6 @@ ast-types-flow@^0.0.7:
resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
astring@^1.8.0:
version "1.8.3"
resolved "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz"
integrity sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==
axe-core@^4.4.3:
version "4.4.3"
resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz"
@ -1727,21 +1654,11 @@ chalk@^4.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
character-entities-html4@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz"
integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==
character-entities-legacy@^1.0.0:
version "1.1.4"
resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz"
integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==
character-entities-legacy@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz"
integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==
character-entities@^1.0.0:
version "1.2.4"
resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz"
@ -1757,11 +1674,6 @@ character-reference-invalid@^1.0.0:
resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz"
integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
character-reference-invalid@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz"
integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==
client-only@0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz"
@ -2233,49 +2145,6 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
estree-util-attach-comments@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz"
integrity sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==
dependencies:
"@types/estree" "^1.0.0"
estree-util-build-jsx@^2.0.0:
version "2.2.0"
resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.0.tgz"
integrity sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ==
dependencies:
"@types/estree-jsx" "^1.0.0"
estree-util-is-identifier-name "^2.0.0"
estree-walker "^3.0.0"
estree-util-is-identifier-name@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz"
integrity sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==
estree-util-to-js@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz"
integrity sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A==
dependencies:
"@types/estree-jsx" "^1.0.0"
astring "^1.8.0"
source-map "^0.7.0"
estree-util-visit@^1.0.0:
version "1.2.0"
resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.0.tgz"
integrity sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/unist" "^2.0.0"
estree-walker@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.1.tgz"
integrity sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
@ -2646,27 +2515,6 @@ hast-util-raw@^7.2.0:
web-namespaces "^2.0.0"
zwitch "^2.0.0"
hast-util-to-estree@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.1.0.tgz"
integrity sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g==
dependencies:
"@types/estree" "^1.0.0"
"@types/estree-jsx" "^1.0.0"
"@types/hast" "^2.0.0"
"@types/unist" "^2.0.0"
comma-separated-tokens "^2.0.0"
estree-util-attach-comments "^2.0.0"
estree-util-is-identifier-name "^2.0.0"
hast-util-whitespace "^2.0.0"
mdast-util-mdx-expression "^1.0.0"
mdast-util-mdxjs-esm "^1.0.0"
property-information "^6.0.0"
space-separated-tokens "^2.0.0"
style-to-object "^0.3.0"
unist-util-position "^4.0.0"
zwitch "^2.0.0"
hast-util-to-parse5@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.0.0.tgz#a39808e69005d10afeed1866029a1fb137df3f7c"
@ -2785,11 +2633,6 @@ is-alphabetical@^1.0.0:
resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz"
integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
is-alphabetical@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz"
integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==
is-alphanumerical@^1.0.0:
version "1.0.4"
resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz"
@ -2798,14 +2641,6 @@ is-alphanumerical@^1.0.0:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
is-alphanumerical@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz"
integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==
dependencies:
is-alphabetical "^2.0.0"
is-decimal "^2.0.0"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
@ -2855,11 +2690,6 @@ is-decimal@^1.0.0:
resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz"
integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
is-decimal@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz"
integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==
is-extendable@^0.1.0:
version "0.1.1"
resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
@ -2882,11 +2712,6 @@ is-hexadecimal@^1.0.0:
resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz"
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
is-hexadecimal@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz"
integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==
is-negative-zero@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
@ -2909,13 +2734,6 @@ is-plain-obj@^4.0.0:
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
is-reference@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/is-reference/-/is-reference-3.0.0.tgz"
integrity sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q==
dependencies:
"@types/estree" "*"
is-regex@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
@ -3086,11 +2904,6 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
markdown-extensions@^1.0.0:
version "1.1.1"
resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz"
integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==
markdown-table@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c"
@ -3190,53 +3003,6 @@ mdast-util-gfm@^2.0.0:
mdast-util-gfm-task-list-item "^1.0.0"
mdast-util-to-markdown "^1.0.0"
mdast-util-mdx-expression@^1.0.0:
version "1.3.0"
resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.0.tgz"
integrity sha512-9kTO13HaL/ChfzVCIEfDRdp1m5hsvsm6+R8yr67mH+KS2ikzZ0ISGLPTbTswOFpLLlgVHO9id3cul4ajutCvCA==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/hast" "^2.0.0"
"@types/mdast" "^3.0.0"
mdast-util-from-markdown "^1.0.0"
mdast-util-to-markdown "^1.0.0"
mdast-util-mdx-jsx@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz"
integrity sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/hast" "^2.0.0"
"@types/mdast" "^3.0.0"
ccount "^2.0.0"
mdast-util-to-markdown "^1.3.0"
parse-entities "^4.0.0"
stringify-entities "^4.0.0"
unist-util-remove-position "^4.0.0"
unist-util-stringify-position "^3.0.0"
vfile-message "^3.0.0"
mdast-util-mdx@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz"
integrity sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==
dependencies:
mdast-util-mdx-expression "^1.0.0"
mdast-util-mdx-jsx "^2.0.0"
mdast-util-mdxjs-esm "^1.0.0"
mdast-util-mdxjs-esm@^1.0.0:
version "1.3.0"
resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz"
integrity sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/hast" "^2.0.0"
"@types/mdast" "^3.0.0"
mdast-util-from-markdown "^1.0.0"
mdast-util-to-markdown "^1.0.0"
mdast-util-to-hast@^12.1.0:
version "12.2.1"
resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz"
@ -3384,69 +3150,6 @@ micromark-extension-gfm@^2.0.0:
micromark-util-combine-extensions "^1.0.0"
micromark-util-types "^1.0.0"
micromark-extension-mdx-expression@^1.0.0:
version "1.0.3"
resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz"
integrity sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==
dependencies:
micromark-factory-mdx-expression "^1.0.0"
micromark-factory-space "^1.0.0"
micromark-util-character "^1.0.0"
micromark-util-events-to-acorn "^1.0.0"
micromark-util-symbol "^1.0.0"
micromark-util-types "^1.0.0"
uvu "^0.5.0"
micromark-extension-mdx-jsx@^1.0.0:
version "1.0.3"
resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz"
integrity sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==
dependencies:
"@types/acorn" "^4.0.0"
estree-util-is-identifier-name "^2.0.0"
micromark-factory-mdx-expression "^1.0.0"
micromark-factory-space "^1.0.0"
micromark-util-character "^1.0.0"
micromark-util-symbol "^1.0.0"
micromark-util-types "^1.0.0"
uvu "^0.5.0"
vfile-message "^3.0.0"
micromark-extension-mdx-md@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz"
integrity sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==
dependencies:
micromark-util-types "^1.0.0"
micromark-extension-mdxjs-esm@^1.0.0:
version "1.0.3"
resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz"
integrity sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==
dependencies:
micromark-core-commonmark "^1.0.0"
micromark-util-character "^1.0.0"
micromark-util-events-to-acorn "^1.0.0"
micromark-util-symbol "^1.0.0"
micromark-util-types "^1.0.0"
unist-util-position-from-estree "^1.1.0"
uvu "^0.5.0"
vfile-message "^3.0.0"
micromark-extension-mdxjs@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz"
integrity sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==
dependencies:
acorn "^8.0.0"
acorn-jsx "^5.0.0"
micromark-extension-mdx-expression "^1.0.0"
micromark-extension-mdx-jsx "^1.0.0"
micromark-extension-mdx-md "^1.0.0"
micromark-extension-mdxjs-esm "^1.0.0"
micromark-util-combine-extensions "^1.0.0"
micromark-util-types "^1.0.0"
micromark-factory-destination@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz"
@ -3466,20 +3169,6 @@ micromark-factory-label@^1.0.0:
micromark-util-types "^1.0.0"
uvu "^0.5.0"
micromark-factory-mdx-expression@^1.0.0:
version "1.0.6"
resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.6.tgz"
integrity sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==
dependencies:
micromark-factory-space "^1.0.0"
micromark-util-character "^1.0.0"
micromark-util-events-to-acorn "^1.0.0"
micromark-util-symbol "^1.0.0"
micromark-util-types "^1.0.0"
unist-util-position-from-estree "^1.0.0"
uvu "^0.5.0"
vfile-message "^3.0.0"
micromark-factory-space@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz"
@ -3563,19 +3252,6 @@ micromark-util-encode@^1.0.0:
resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz"
integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==
micromark-util-events-to-acorn@^1.0.0:
version "1.2.0"
resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.0.tgz"
integrity sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==
dependencies:
"@types/acorn" "^4.0.0"
"@types/estree" "^1.0.0"
estree-util-visit "^1.0.0"
micromark-util-types "^1.0.0"
uvu "^0.5.0"
vfile-location "^4.0.0"
vfile-message "^3.0.0"
micromark-util-html-tag-name@^1.0.0:
version "1.1.0"
resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz"
@ -3835,20 +3511,6 @@ parse-entities@^2.0.0:
is-decimal "^1.0.0"
is-hexadecimal "^1.0.0"
parse-entities@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.0.tgz"
integrity sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==
dependencies:
"@types/unist" "^2.0.0"
character-entities "^2.0.0"
character-entities-legacy "^3.0.0"
character-reference-invalid "^2.0.0"
decode-named-character-reference "^1.0.0"
is-alphanumerical "^2.0.0"
is-decimal "^2.0.0"
is-hexadecimal "^2.0.0"
parse-json@^5.0.0:
version "5.2.0"
resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
@ -3889,14 +3551,6 @@ path-type@^4.0.0:
resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
periscopic@^3.0.0:
version "3.0.4"
resolved "https://registry.npmjs.org/periscopic/-/periscopic-3.0.4.tgz"
integrity sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==
dependencies:
estree-walker "^3.0.0"
is-reference "^3.0.0"
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
@ -4133,14 +3787,6 @@ remark-gfm@^3.0.1:
micromark-extension-gfm "^2.0.0"
unified "^10.0.0"
remark-mdx@^2.0.0:
version "2.1.3"
resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.1.3.tgz"
integrity sha512-3SmtXOy9+jIaVctL8Cs3VAQInjRLGOwNXfrBB9KCT+EpJpKD3PQiy0x8hUNGyjQmdyOs40BqgPU7kYtH9uoR6w==
dependencies:
mdast-util-mdx "^2.0.0"
micromark-extension-mdxjs "^1.0.0"
remark-parse@^10.0.0:
version "10.0.1"
resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz"
@ -4277,11 +3923,6 @@ source-map@^0.5.7:
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
source-map@^0.7.0:
version "0.7.4"
resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
space-separated-tokens@^1.0.0:
version "1.1.5"
resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz"
@ -4329,14 +3970,6 @@ string.prototype.trimstart@^1.0.5:
define-properties "^1.1.4"
es-abstract "^1.19.5"
stringify-entities@^4.0.0:
version "4.0.3"
resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz"
integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==
dependencies:
character-entities-html4 "^2.0.0"
character-entities-legacy "^3.0.0"
strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
@ -4536,13 +4169,6 @@ unist-util-is@^5.0.0:
resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz"
integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==
unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0:
version "1.1.1"
resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz"
integrity sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==
dependencies:
"@types/unist" "^2.0.0"
unist-util-position@^4.0.0:
version "4.0.3"
resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz"
@ -4550,14 +4176,6 @@ unist-util-position@^4.0.0:
dependencies:
"@types/unist" "^2.0.0"
unist-util-remove-position@^4.0.0:
version "4.0.1"
resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz"
integrity sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==
dependencies:
"@types/unist" "^2.0.0"
unist-util-visit "^4.0.0"
unist-util-stringify-position@^3.0.0:
version "3.0.2"
resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz"

Loading…
Cancel
Save