diff --git a/.all-contributorsrc b/.all-contributorsrc index e0016ac2fd4..237e64c03df 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -12260,7 +12260,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/112751524?v=4", "profile": "https://github.com/Shiva-Sai-ssb", "contributions": [ - "bug" + "bug", + "maintenance" ] }, { @@ -12343,6 +12344,15 @@ "contributions": [ "content" ] + }, + { + "login": "0xV4L3NT1N3", + "name": "0xV4L3NT1N3", + "avatar_url": "https://avatars.githubusercontent.com/u/33112835?v=4", + "profile": "https://github.com/0xV4L3NT1N3", + "contributions": [ + "tool" + ] } ], "contributorsPerLine": 7, diff --git a/.github/ISSUE_TEMPLATE/suggest_wallet.yaml b/.github/ISSUE_TEMPLATE/suggest_wallet.yaml index 68e9a0c0d3d..1f356b336e1 100644 --- a/.github/ISSUE_TEMPLATE/suggest_wallet.yaml +++ b/.github/ISSUE_TEMPLATE/suggest_wallet.yaml @@ -264,7 +264,7 @@ body: - type: input id: wallet_l2_support attributes: - label: Does the wallet support Ethereum layer 2 networks? + label: Which Ethereum Layer 2 networks does the wallet support? description: Please provide documentation on Ethereum layer 2 networks this wallet supports. validations: required: true diff --git a/README.md b/README.md index 70cfbea64f2..88a6358239c 100644 --- a/README.md +++ b/README.md @@ -1873,7 +1873,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d abonnaudet-ledger
abonnaudet-ledger

๐Ÿ› Jacob Sharples
Jacob Sharples

๐Ÿ–‹ omahs
omahs

๐ŸŒ ๐Ÿšง - Shiva Sai
Shiva Sai

๐Ÿ› + Shiva Sai
Shiva Sai

๐Ÿ› ๐Ÿšง Saurabh Burade
Saurabh Burade

๐Ÿ’ป @@ -1887,6 +1887,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Krishnakumar Chavan
Krishnakumar Chavan

๐Ÿ–‹ + 0xV4L3NT1N3
0xV4L3NT1N3

๐Ÿ”ง diff --git a/package.json b/package.json index 7c97536588b..152c4c47894 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "@hookform/resolvers": "^3.8.0", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-navigation-menu": "^1.2.0", + "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-visually-hidden": "^1.1.0", "@socialgouv/matomo-next": "^1.8.0", @@ -121,7 +122,8 @@ "tsconfig-paths-webpack-plugin": "4.1.0", "typescript": "^5.5.2", "unified": "^10.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "usehooks-ts": "^3.1.0" }, "resolutions": { "jackspeak": "2.1.1", diff --git a/public/content/defi/index.md b/public/content/defi/index.md index b940700a7e7..50c42acc22f 100644 --- a/public/content/defi/index.md +++ b/public/content/defi/index.md @@ -334,7 +334,7 @@ DeFi is an open-source movement. The DeFi protocols and applications are all ope More on building dapps -## Further reading {#futher-reading} +## Further reading {#further-reading} ### DeFi data {#defi-data} diff --git a/public/content/developers/docs/apis/backend/index.md b/public/content/developers/docs/apis/backend/index.md index dc858857217..7bfdb6cac91 100644 --- a/public/content/developers/docs/apis/backend/index.md +++ b/public/content/developers/docs/apis/backend/index.md @@ -52,6 +52,9 @@ These libraries abstract away much of the complexity of interacting directly wit - [cloudflare-eth.com](https://www.cloudflare.com/application-services/products/web3/) +**Etherscan - Block Explorer and Transaction APIs** +- [Documentation](https://docs.etherscan.io/) + **GetBlock-** **_Blockchain-as-a-service for Web3 development_** - [GetBlock.io](https://getblock.io/) diff --git a/public/content/developers/docs/oracles/index.md b/public/content/developers/docs/oracles/index.md index 2572a3f4dab..15e0d8c95e4 100644 --- a/public/content/developers/docs/oracles/index.md +++ b/public/content/developers/docs/oracles/index.md @@ -388,6 +388,8 @@ There are multiple oracle applications you can integrate into your Ethereum dapp **[Chainlink](https://chain.link/)** - _Chainlink decentralized oracle networks provide tamper-proof inputs, outputs, and computations to support advanced smart contracts on any blockchain._ +**[Chronicle](https://chroniclelabs.org/)** - _Chronicle overcomes the current limitations of transferring data on-chain by developing truly scalable, cost-efficient, decentralized, and verifiable oracles._ + **[Witnet](https://witnet.io/)** - _Witnet is a permissionless, decentralized, and censorship-resistant oracle helping smart contracts to react to real world events with strong crypto-economic guarantees._ **[UMA Oracle](https://uma.xyz)** - _UMA's optimistic oracle allows smart contracts to quickly and receive any kind of data for different applications, including insurance, financial derivatives, and prediction markets._ @@ -424,6 +426,7 @@ There are multiple oracle applications you can integrate into your Ethereum dapp **Tutorials** - [How to Fetch the Current Price of Ethereum in Solidity](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) โ€” _Chainlink_ +- [Consuming Oracle Data](https://docs.chroniclelabs.org/Developers/tutorials/Remix) โ€” _Chronicle_ **Example projects** diff --git a/public/content/roadmap/danksharding/index.md b/public/content/roadmap/danksharding/index.md index 8bb974c0ce0..534f95c8665 100644 --- a/public/content/roadmap/danksharding/index.md +++ b/public/content/roadmap/danksharding/index.md @@ -43,7 +43,7 @@ KZG stands for Kate-Zaverucha-Goldberg - the names of the three [original author The KZG ceremony was a way for many people from across the Ethereum community to collectively generate a secret random string of numbers that can be used to verify some data. It is very important that this string of numbers is not known and cannot be recreated by anyone. To ensure this, each person that participated in the ceremony received a string from the previous participant. They then created some new random values (e.g. by allowing their browser to measure the movement of their mouse) and mix it in with the previous value. They then sent the value on to the next participant and destroyed it from their local machine. As long as one person in the ceremony did this honestly, the final value will be unknowable to an attacker. -The EIP-4844 KZG ceremony was open to the public and tens of thousands of people participated to add their own entropy (randomness). In total there were over 140,000 contributions, making it the worlds largest ceremony of its kind. For the ceremony to be undermined, 100% of those participants would have to be actively dishonest. From the perspective of the participants, if they know they were honest, there is no need to trust anyone else because they know that they secured the ceremony (they individually satisfied the 1-out-of-N honest participant requirement). +The EIP-4844 KZG ceremony was open to the public and tens of thousands of people participated to add their own entropy (randomness). In total there were over 140,000 contributions, making it the world's largest ceremony of its kind. For the ceremony to be undermined, 100% of those participants would have to be actively dishonest. From the perspective of the participants, if they know they were honest, there is no need to trust anyone else because they know that they secured the ceremony (they individually satisfied the 1-out-of-N honest participant requirement). @@ -58,7 +58,7 @@ If someone knows the random locations used for the commitment, it is easy for th - Neither Danksharding nor Proto-Danksharding follow the traditional "sharding" model that aimed to split the blockchain into multiple parts. Shard chains are no longer part of the roadmap. Instead, Danksharding uses distributed data sampling across blobs to scale Ethereum. This is much simpler to implement. This model has sometimes been referred to as "data-sharding". + Neither Danksharding nor Proto-Danksharding follow the traditional "sharding" model that aims to split the blockchain into multiple parts. Shard chains are no longer part of the roadmap. Instead, Danksharding uses distributed data sampling across blobs to scale Ethereum. This is much simpler to implement. This model has sometimes been referred to as "data-sharding". ## What is Danksharding? {#what-is-danksharding} diff --git a/public/content/roadmap/future-proofing/index.md b/public/content/roadmap/future-proofing/index.md index 3ff72b4cc9a..8570938bab3 100644 --- a/public/content/roadmap/future-proofing/index.md +++ b/public/content/roadmap/future-proofing/index.md @@ -29,7 +29,7 @@ Similarly, there are updates that can be made to other parts of present-day Ethe ## Current progress {#current-progress} -Most of the upgrades required for future-proofing Ethereum are **still in the research phase and may be several years away** from being implemented. Upgrades such as removing SELF-DESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography. +Most of the upgrades required for future-proofing Ethereum are **still in the research phase and may be several years away** from being implemented. Upgrades such as removing SELFDESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography. **Further reading** diff --git a/public/content/roadmap/index.md b/public/content/roadmap/index.md index f1c9cb9900f..8c06c14c23a 100644 --- a/public/content/roadmap/index.md +++ b/public/content/roadmap/index.md @@ -76,7 +76,7 @@ The roadmap is mostly the result of years of work by researchers and developers **Yesโ€”almost definitely**. The roadmap is the current plan for upgrading Ethereum, covering both near-term and future plans. We expect the roadmap to change as new information and technology become available. -Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesize of Ethereum's most optimal path forward. +Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesis of Ethereum's most optimal path forward. ## When will the roadmap be finished? {#when-will-the-roadmap-be-finished} diff --git a/public/content/roadmap/merge/index.md b/public/content/roadmap/merge/index.md index 3c23d5bfffb..aff0da7d792 100644 --- a/public/content/roadmap/merge/index.md +++ b/public/content/roadmap/merge/index.md @@ -108,7 +108,7 @@ For more information, check out this blog post by Tim Beiko on & { isExpanded: boolean + offsetBottom?: boolean + suppressScale?: boolean } -const FixedDot = ({ bottomOffset, isExpanded, ...props }: FixedDotProps) => { - const { t } = useTranslation("common") - const size = "12" - return ( - - ) -} + + + + ) + } +) + +FixedDot.displayName = "FixedDot" export default FixedDot diff --git a/src/components/FeedbackWidget/index.tsx b/src/components/FeedbackWidget/index.tsx index 336ce5086f6..f0fd51214cb 100644 --- a/src/components/FeedbackWidget/index.tsx +++ b/src/components/FeedbackWidget/index.tsx @@ -1,27 +1,24 @@ import { useTranslation } from "next-i18next" +import { MdClose } from "react-icons/md" + import { - AlertDialog, - AlertDialogBody, - AlertDialogCloseButton, - AlertDialogContent, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogOverlay, - Box, - Button, - HStack, -} from "@chakra-ui/react" + Popover, + PopoverClose, + PopoverContent, + PopoverTrigger, +} from "../ui/popover" import FixedDot from "./FixedDot" import { useFeedbackWidget } from "./useFeedbackWidget" +import { Button } from "@/../tailwind/ui/buttons/Button" + const FeedbackWidget = () => { const { t } = useTranslation("common") const { - bottomOffset, + offsetBottom, cancelRef, feedbackSubmitted, - getButtonProps, handleClose, handleOpen, handleSubmit, @@ -31,99 +28,74 @@ const FeedbackWidget = () => { } = useFeedbackWidget() return ( <> - - - (open ? handleOpen : handleClose)()} + open={isOpen} > - - - - - - {feedbackSubmitted - ? t("feedback-widget-thank-you-title") - : t("feedback-widget-prompt")} - - - + + + + + +
+
+ {feedbackSubmitted + ? t("feedback-widget-thank-you-title") + : t("feedback-widget-prompt")} +
+ + + +
- {/* Body: */} - {feedbackSubmitted && ( - <> - - {t("feedback-widget-thank-you-subtitle")} - - - {t("feedback-widget-thank-you-timing")} - - - )} + {feedbackSubmitted && ( + <> +
+ {t("feedback-widget-thank-you-subtitle")} +
+
+ {t("feedback-widget-thank-you-timing")} +
+ + )} - - {feedbackSubmitted ? ( - - ) : ( - <> - - - - )} - -
-
-
-
+
+ {feedbackSubmitted ? ( + + ) : ( + <> + + + + )} +
+ + ) } diff --git a/src/components/FeedbackWidget/useFeedbackWidget.ts b/src/components/FeedbackWidget/useFeedbackWidget.ts index 8d70d364636..225327ddb77 100644 --- a/src/components/FeedbackWidget/useFeedbackWidget.ts +++ b/src/components/FeedbackWidget/useFeedbackWidget.ts @@ -1,9 +1,9 @@ import { useEffect, useMemo, useRef, useState } from "react" import { useRouter } from "next/router" -import { useDisclosure } from "@chakra-ui/react" import { trackCustomEvent } from "@/lib/utils/matomo" +import useDisclosure from "@/hooks/useDisclosure" import { useSurvey } from "@/hooks/useSurvey" export const useFeedbackWidget = () => { @@ -12,7 +12,7 @@ export const useFeedbackWidget = () => { const [isExpanded, setIsExpanded] = useState(false) const [feedbackSubmitted, setFeedbackSubmitted] = useState(false) - const { getButtonProps, isOpen, onClose, onOpen } = useDisclosure() + const { isOpen, onClose, onOpen } = useDisclosure() const cancelRef = useRef(null) @@ -29,16 +29,15 @@ export const useFeedbackWidget = () => { const surveyUrl = useSurvey(feedbackSubmitted) - const bottomOffset = useMemo(() => { + const offsetBottom = useMemo(() => { const pathsWithBottomNav = ["/staking", "/dao", "/defi", "/nft"] - const CONDITIONAL_OFFSET = 6.75 - let offset = 0 + let shouldOffset = false pathsWithBottomNav.forEach((path) => { if (asPath.includes(path)) { - offset = CONDITIONAL_OFFSET + shouldOffset = true } }) - return offset + return shouldOffset }, [asPath]) const handleClose = (): void => { @@ -80,10 +79,9 @@ export const useFeedbackWidget = () => { } return { - bottomOffset, + offsetBottom, cancelRef, feedbackSubmitted, - getButtonProps, handleClose, handleOpen, handleSubmit, diff --git a/src/components/Nav/Menu/index.tsx b/src/components/Nav/Menu/index.tsx index 3b3a5b6c85a..52d7b74c780 100644 --- a/src/components/Nav/Menu/index.tsx +++ b/src/components/Nav/Menu/index.tsx @@ -1,6 +1,6 @@ +import { BaseHTMLAttributes } from "react" import { motion } from "framer-motion" import dynamic from "next/dynamic" -import { Box, type BoxProps, Text, UnorderedList } from "@chakra-ui/react" import { Item, List, @@ -9,15 +9,16 @@ import { Viewport, } from "@radix-ui/react-navigation-menu" -import { Button } from "@/components/Buttons" +import { cn } from "@/lib/utils/cn" -import { MAIN_NAV_ID, NAV_PY, SECTION_LABELS } from "@/lib/constants" +import { MAIN_NAV_ID, SECTION_LABELS } from "@/lib/constants" +import { Button } from "../../../../tailwind/ui/buttons/Button" import type { NavSections } from "../types" import { useNavMenu } from "./useNavMenu" -type NavMenuProps = BoxProps & { +type NavMenuProps = BaseHTMLAttributes & { sections: NavSections } @@ -28,73 +29,53 @@ const Menu = ({ sections, ...props }: NavMenuProps) => { const MenuContent = dynamic(() => import("./MenuContent")) return ( - +
- - - {SECTION_LABELS.map((sectionKey) => { - const { label, items } = sections[sectionKey] - const isActive = activeSection === sectionKey + + {SECTION_LABELS.map((sectionKey) => { + const { label, items } = sections[sectionKey] + const isActive = activeSection === sectionKey - return ( - - - - - {/* Desktop Menu content */} - - - ) - })} - + return ( + + + + + {/* Desktop Menu content */} + + + ) + })} - +
) } diff --git a/src/components/Nav/index.tsx b/src/components/Nav/index.tsx index b282eebcd87..60057e10703 100644 --- a/src/components/Nav/index.tsx +++ b/src/components/Nav/index.tsx @@ -65,7 +65,7 @@ const Nav = () => { {/* avoid rendering desktop Menu version on mobile */} {isClient && isDesktopFlag ? ( - + ) : ( )} diff --git a/src/components/Table/stories/mockMdxData.tsx b/src/components/Table/stories/mockMdxData.tsx index d9d3e186e54..2120502701c 100644 --- a/src/components/Table/stories/mockMdxData.tsx +++ b/src/components/Table/stories/mockMdxData.tsx @@ -80,10 +80,7 @@ export const MdxEnergyConsumpData = () => ( 131 50,000x - + source @@ -93,10 +90,7 @@ export const MdxEnergyConsumpData = () => ( 131 50,000x - + source diff --git a/src/components/icons/Icons.stories.tsx b/src/components/icons/Icons.stories.tsx index 5718ad2117e..7fc2be8ea02 100644 --- a/src/components/icons/Icons.stories.tsx +++ b/src/components/icons/Icons.stories.tsx @@ -3,7 +3,6 @@ import { Center, Flex, Icon, SimpleGrid } from "@chakra-ui/react" import type { Meta, StoryObj } from "@storybook/react" import { EthHomeIcon } from "./EthHomeIcon" -import { FeedbackGlyphIcon } from "./FeedbackGlyphIcon" import { FeedbackThumbsUpIcon } from "./FeedbackThumbsUpIcon" import { HighlightDarkIcon } from "./HighlightDarkIcon" import { HighlightIcon } from "./HighlightIcon" @@ -171,7 +170,6 @@ const iconsDefinitions = [ SwapIcon, WithdrawCryptoIcon, EthHomeIcon, - FeedbackGlyphIcon, FeedbackThumbsUpIcon, HighlightDarkIcon, HighlightIcon, diff --git a/src/components/icons/FeedbackGlyphIcon.tsx b/src/components/icons/feedback-glyph-icon.svg similarity index 67% rename from src/components/icons/FeedbackGlyphIcon.tsx rename to src/components/icons/feedback-glyph-icon.svg index 0b2778d0c72..410ec68f28b 100644 --- a/src/components/icons/FeedbackGlyphIcon.tsx +++ b/src/components/icons/feedback-glyph-icon.svg @@ -1,28 +1,5 @@ -/* eslint-disable react/jsx-key */ -import * as React from "react" -import { createIcon } from "@chakra-ui/react" - -export const FeedbackGlyphIcon = createIcon({ - displayName: "FeedbackGlyphIcon", - viewBox: "0 0 26 32", - defaultProps: { - width: "26px", - height: "32px", - }, - path: [ - , - , - , - ], -}) + + + + + \ No newline at end of file diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts index 0fb88afd7a7..f72356310a8 100644 --- a/src/components/icons/index.ts +++ b/src/components/icons/index.ts @@ -1,6 +1,6 @@ // General Icons import { EthHomeIcon } from "./EthHomeIcon" -import { FeedbackGlyphIcon } from "./FeedbackGlyphIcon" +import FeedbackGlyphIcon from "./feedback-glyph-icon.svg" import { FeedbackThumbsUpIcon } from "./FeedbackThumbsUpIcon" import { HighlightDarkIcon } from "./HighlightDarkIcon" import { HighlightIcon } from "./HighlightIcon" diff --git a/src/components/ui/popover.tsx b/src/components/ui/popover.tsx new file mode 100644 index 00000000000..ee8322f3345 --- /dev/null +++ b/src/components/ui/popover.tsx @@ -0,0 +1,33 @@ +import * as React from "react" +import * as PopoverPrimitive from "@radix-ui/react-popover" + +import { cn } from "@/lib/utils/cn" + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +const PopoverClose = PopoverPrimitive.Close + +PopoverClose.displayName = "PopoverClose" + +export { Popover, PopoverClose, PopoverContent, PopoverTrigger } diff --git a/src/data/community-events.json b/src/data/community-events.json index f73ed962311..1e555958598 100644 --- a/src/data/community-events.json +++ b/src/data/community-events.json @@ -368,6 +368,14 @@ "location": "Tokyo, JPN", "description": "EDCON is committed to serving the Ethereum ecosystem by boosting communication and engagement between Ethereum communities worldwide" }, + { + "title": "ETH Shenzhen 2024", + "startDate": "2024-8-16", + "endDate": "2024-8-18", + "to": "https://ethshenzhen.org", + "location": "Shenzhen, China", + "description": "ETH Shenzhen is an Ethereum Developer Conference and Hackathon event aimed at connecting, inspiring, and educating developers from the Guangdong-Hong Kong-Macao Greater Bay Area and beyond, while also fostering connections with the SEA community." + }, { "title": "ETHOnline 2024", "href": "https://ethglobal.com/events/ethonline2024", @@ -612,4 +620,4 @@ "location": "Santa Cruz de la Sierra, Bolivia", "description": "La Buildathon Ethereum Bolivia, el primero en su tipo, es un evento que congrega a desarrolladores, entusiastas blockchain, con el fin de convertir ideas en Productos Mรญnimo Viables, brindando ademรกs seminarios y talleres relacionados." } -] \ No newline at end of file +] diff --git a/src/data/quizzes/index.ts b/src/data/quizzes/index.ts index aab9d0d672c..42dc14f80f8 100644 --- a/src/data/quizzes/index.ts +++ b/src/data/quizzes/index.ts @@ -88,11 +88,6 @@ export const usingEthereumQuizzes: QuizzesSection[] = [ { id: "nfts", level: "beginner", - next: "scaling", - }, - { - id: "scaling", - level: "intermediate", next: "layer-2", }, { @@ -108,6 +103,11 @@ export const usingEthereumQuizzes: QuizzesSection[] = [ { id: "run-a-node", level: "intermediate", + next: "scaling", + }, + { + id: "scaling", + level: "advanced", next: "solo-staking", }, { diff --git a/src/hooks/useDisclosure.ts b/src/hooks/useDisclosure.ts new file mode 100644 index 00000000000..2bb5612be23 --- /dev/null +++ b/src/hooks/useDisclosure.ts @@ -0,0 +1,18 @@ +import { useBoolean } from "usehooks-ts" + +/** + * Hook that provides a more semantic API for managing the open/close state of a + * modal, dropdown, or any other component that can be opened and closed. + */ +function useDisclosure(defaultValue = false) { + const { value, setTrue, setFalse, toggle } = useBoolean(defaultValue) + + return { + isOpen: value, + onOpen: setTrue, + onClose: setFalse, + onToggle: toggle, + } +} + +export default useDisclosure diff --git a/src/layouts/Translatathon.tsx b/src/layouts/Translatathon.tsx index de898d6c896..49a3931003a 100644 --- a/src/layouts/Translatathon.tsx +++ b/src/layouts/Translatathon.tsx @@ -16,6 +16,7 @@ import { Page, } from "@/components/MdComponents" import { ApplyNow } from "@/components/Translatathon/ApplyNow" +import { APPLICATION_URL } from "@/components/Translatathon/constants" import { CountdownBanner } from "@/components/Translatathon/CountdownBanner" import { DatesAndTimeline } from "@/components/Translatathon/DatesAndTimeline" import { LocalCommunitiesList } from "@/components/Translatathon/LocalCommunitiesList" @@ -208,7 +209,7 @@ export const TranslatathonLayout = ({ different languages. - Apply to translate + Apply to translate } diff --git a/tailwind.config.ts b/tailwind.config.ts index ff73a988ca2..b1ebe4aef13 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -113,6 +113,7 @@ const config = { 7.5: "1.875rem", 10.5: "2.625rem", 19: "4.75rem", // Nav height + 31: "7.75rem", // FeedbackWidget conditional bottom offset }, keyframes: { "accordion-down": { diff --git a/yarn.lock b/yarn.lock index df397a85ac5..7f37c99eb51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3454,6 +3454,14 @@ dependencies: "@floating-ui/utils" "^0.2.1" +"@floating-ui/dom@^1.0.0": + version "1.6.8" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.8.tgz#45e20532b6d8a061b356a4fb336022cf2609754d" + integrity sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.5" + "@floating-ui/dom@^1.0.1": version "1.6.1" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.1.tgz#d552e8444f77f2d88534372369b3771dc3a2fa5d" @@ -3462,11 +3470,23 @@ "@floating-ui/core" "^1.6.0" "@floating-ui/utils" "^0.2.1" +"@floating-ui/react-dom@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.1.tgz#cca58b6b04fc92b4c39288252e285e0422291fb0" + integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg== + dependencies: + "@floating-ui/dom" "^1.0.0" + "@floating-ui/utils@^0.2.1": version "0.2.1" resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== +"@floating-ui/utils@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.5.tgz#105c37d9d9620ce69b7f692a20c821bf1ad2cbf9" + integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ== + "@hookform/resolvers@^3.8.0": version "3.9.0" resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-3.9.0.tgz#cf540ac21c6c0cd24a40cf53d8e6d64391fb753d" @@ -3762,6 +3782,13 @@ "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-use-controllable-state" "1.1.0" +"@radix-ui/react-arrow@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz#744f388182d360b86285217e43b6c63633f39e7a" + integrity sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-collapsible@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-1.1.0.tgz#4d49ddcc7b7d38f6c82f1fd29674f6fab5353e77" @@ -3866,6 +3893,11 @@ dependencies: "@babel/runtime" "^7.13.10" +"@radix-ui/react-focus-guards@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz#8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13" + integrity sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw== + "@radix-ui/react-focus-scope@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz#2ac45fce8c5bb33eb18419cdc1905ef4f1906525" @@ -3876,6 +3908,15 @@ "@radix-ui/react-primitive" "1.0.3" "@radix-ui/react-use-callback-ref" "1.0.1" +"@radix-ui/react-focus-scope@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz#ebe2891a298e0a33ad34daab2aad8dea31caf0b2" + integrity sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-id@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0" @@ -3911,6 +3952,43 @@ "@radix-ui/react-use-previous" "1.1.0" "@radix-ui/react-visually-hidden" "1.1.0" +"@radix-ui/react-popover@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.1.1.tgz#604b783cdb3494ed4f16a58c17f0e81e61ab7775" + integrity sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-popper@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.0.tgz#a3e500193d144fe2d8f5d5e60e393d64111f2a7a" + integrity sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg== + dependencies: + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-rect" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/rect" "1.1.0" + "@radix-ui/react-portal@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.4.tgz#df4bfd353db3b1e84e639e9c63a5f2565fb00e15" @@ -3919,6 +3997,14 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.3" +"@radix-ui/react-portal@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.1.tgz#1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f" + integrity sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-presence@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.1.tgz#491990ba913b8e2a5db1b06b203cb24b5cdef9ba" @@ -4025,6 +4111,20 @@ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c" integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og== +"@radix-ui/react-use-rect@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz#13b25b913bd3e3987cc9b073a1a164bb1cf47b88" + integrity sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ== + dependencies: + "@radix-ui/rect" "1.1.0" + +"@radix-ui/react-use-size@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz#b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b" + integrity sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-visually-hidden@1.1.0", "@radix-ui/react-visually-hidden@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz#ad47a8572580f7034b3807c8e6740cd41038a5a2" @@ -4032,6 +4132,11 @@ dependencies: "@radix-ui/react-primitive" "2.0.0" +"@radix-ui/rect@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" + integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== + "@rushstack/eslint-patch@^1.3.3": version "1.7.2" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" @@ -12365,7 +12470,7 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-remove-scroll@^2.5.6: +react-remove-scroll@2.5.7, react-remove-scroll@^2.5.6: version "2.5.7" resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== @@ -14288,6 +14393,13 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" +usehooks-ts@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/usehooks-ts/-/usehooks-ts-3.1.0.tgz#156119f36efc85f1b1952616c02580f140950eca" + integrity sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw== + dependencies: + lodash.debounce "^4.0.8" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"